diff --git a/.gitkeep b/.gitkeep new file mode 100644 index 00000000..e69de29b diff --git a/.nojekyll b/.nojekyll new file mode 100644 index 00000000..e69de29b diff --git a/CNAME b/CNAME new file mode 100644 index 00000000..7d787fe0 --- /dev/null +++ b/CNAME @@ -0,0 +1 @@ +k9n.dev diff --git a/assets/2019-07-progressive-web-app-BfG9ycTX.js b/assets/2019-07-progressive-web-app-BfG9ycTX.js new file mode 100644 index 00000000..0076c885 --- /dev/null +++ b/assets/2019-07-progressive-web-app-BfG9ycTX.js @@ -0,0 +1,451 @@ +const e=`--- +title: 'Mach aus deiner Angular-App eine PWA' +description: 'Immer häufiger stößt man im Webumfeld auf den Begriff der Progessive Web App – kurz: PWA. Doch was genau steckt dahinter und welche Vorteile hat eine PWA gegenüber einer herkömmlichen Webanwendung oder einer App? +Als Progressive Web App bezeichnen wir eine Webanwendung, die beim Aufruf einer Website als App auf einem lokalen Gerät installiert werden kann – zum Beispiel auf dem Telefon oder Tablet. +Die PWA lässt sich wie jede andere App nutzen, inklusive Push-Benachrichtigungen!' +published: true +author: + name: Danny Koppenhagen + mail: mail@k9n.dev +created: 2019-07-24 +updated: 2019-07-24 +publishedAt: + name: angular-buch.com + url: https://angular-buch.com/blog/2019-07-progressive-web-app + logo: https://angular-buch.com/assets/img/brand-400.png +keywords: + - PWA + - Progressive Web App + - Angular + - Service Worker + - Web App Manifest + - Caching + - Push Notification +language: de +thumbnail: + header: images/blog/pwaheader.jpg + card: images/blog/pwaheader-small.jpg +series: angular-pwa +--- + +

Immer häufiger stößt man im Webumfeld auf den Begriff der Progessive Web App – kurz: PWA. Doch was genau steckt dahinter und welche Vorteile hat eine PWA gegenüber einer herkömmlichen Webanwendung oder einer App? +Als Progressive Web App bezeichnen wir eine Webanwendung, die beim Aufruf einer Website als App auf einem lokalen Gerät installiert werden kann – zum Beispiel auf dem Telefon oder Tablet. +Die PWA lässt sich wie jede andere App nutzen, inklusive Push-Benachrichtigungen!

+

Webanwendung vs. PWA vs. App

+

Wir wollen zunächst den Begriff der PWA etwas konkreter einordnen. Dazu schauen wir uns den Unterschied einer PWA im Vergleich zu einer herkömmlichen Webanwendung und einer App an. +Mithilfe einer Webanwendung kann ein Nutzer über eine URL im Browser Informationen abrufen und verarbeiten. Eine App erfüllt einen ähnlichen Zweck, wird allerdings auf einem Gerät lokal installiert und benötigt in der Regel keinen Browser zur Informationsverarbeitung. Weiterhin kann eine App prinzipiell auch offline genutzt werden, und sie hat oft Zugriff auf native Funktionen des Geräts: Push Notifications und Zugriff auf das Dateisystem sowie Kamera und Sensorik. Eine PWA stellt nun eine Art Mix von beidem dar: Es handelt sich grundlegend auch um eine Webanwendung, sie wird allerdings durch den Nutzer heruntergeladen und auf dem lokalen Gerät gespeichert. Weiterhin sorgt eine PWA dafür, dass die wichtigsten Daten im Client gecacht werden. Somit bleiben Informationen, die die Anwendung liefert, stets abrufbar – auch wenn ggf. keine durchgängige Internetverbindung vorhanden ist. Außerdem kann eine PWA auch Push Notifications erhalten und anzeigen.

+

Die drei wichtigsten Charakteristiken einer PWA sind also folgende:

+ +

Service Worker

+

Als Grundvoraussetzung, um eine PWA offlinefähig zu machen und Push-Benachrichtigungen zu versenden, werden die sogenannten Service Worker benötigt. Service Worker sind gewissermaßen kleine Helfer des Browsers, die bestimmte Aufgaben im Hintergrund übernehmen. +Hierzu zählen das Speichern und Abrufen der Daten auf einem Endgerät. Service Worker prüfen beispielsweise, ob eine Netzwerkverbindung besteht, und senden – je nach Konfiguration – Daten aus dem Cache an die Anwendung, oder versuchen, die Daten online abzurufen. +Eine weitere Aufgabe ist das Empfangen von Push-Benachrichtigungen vom Server.

+

Eine bestehende Angular-Anwendung in eine PWA verwandeln

+

Schauen wir uns das Ganze an einem Beispiel an. +Wie wollen das Beispielprojekt BookMonkey aus dem Angular-Buch in eine PWA verwandeln. Somit können Nutzer die App auf ihrem Gerät installieren und erhalten stets Buchdaten, auch wenn gerade keine Netzwerkkonnektivität vorhanden ist. Zunächst klonen wir uns hierfür die bestehende Webanwendung in ein lokales Repository:

+
git clone git@github.com:book-monkey3/iteration-7-i18n.git BookMonkey-PWA
+cd BookMonkey-PWA
+

Als Nächstes fügen wir das Paket @angular/pwa mithilfe von ng add zum Projekt hinzu. +Die dahinterliegenden Schematics nehmen uns bereits einen Großteil der Arbeit zum Erzeugen der PWA ab:

+ +
ng add @angular/pwa --project BookMonkey
+

Soweit so gut – das wichtigste ist bereits erledigt. Wir können jetzt schon unsere Anwendung in Form einer PWA erzeugen und nutzen. +Wichtig ist, dass die Anwendung immer im Produktivmodus gebaut wird, denn der Service Worker ist im Entwicklungsmodus nicht aktiv.

+
ng build --prod
+

Nach dem Build der Anwendung wollen wir uns das Ergebnis im Browser ansehen. Dafür können wir das Paket angular-http-server nutzen, das einen einfachen Webserver bereitstellt.

+
+

Der angular-http-server leitet im Gegensatz zum http-server alle Anfragen zu nicht existierenden Verzeichnissen oder Dateien an die Datei index.html weiter. +Dies ist notwendig, da das Routing durch Angular und nicht durch den Webserver durchgeführt wird.

+
+
npm i angular-http-server --save-dev
+npx angular-http-server --path=dist/BookMonkey
+

Um nun zu testen, ob wir tatsächlich eine PWA erhalten haben, rufen wir am besten die Google Chrome Developer Tools auf. Dort können wir im Tab Network die Checkbox Offline setzen. +Anschließend laden wir die Seite neu. +Wir sehen, dass trotz des Offline-Modus die Startseite unserer App angezeigt wird, da der Service Worker ein Caching erwirkt hat. +Navigieren wir allerdings zur Buchliste, so können keine Bücher angezeigt werden.

+

Screenshot BookMonkey PWA, Offline-Modus in den Google Chrome Developer Tools aktivieren

+
+

Achtung: Die PWA verwendet Service Worker. Diese können ausschließlich über gesicherte Verbindungen mit HTTPS oder über eine localhost-Verbindung genutzt werden. Rufen Sie die App, die mittels angular-http-server ohne SSL ausgeliefert wird, also über ein anderes Gerät auf, so werden die Service Worker nicht wie gewünscht funktionieren.

+
+

Add to Homescreen

+

Prinzipiell kann jede Website unter Android oder iOS zum Homescreen hinzugefügt werden. +Sie erhält dann ein eigenes App-Icon erhält und sieht zunächst schon wie eine native App aus. +Unter iOS wird hierfür der Safari-Browser benötigt. +Im Safari kann über den Button Teilen (kleines Rechteck mit einem Pfeil nach oben) ein Menü geöffnet werden, in dem die Auswahl "Zum Home-Bildschirm" zu finden ist. +Nach Bestätigung des Dialogfelds wird eine Verknüfung auf dem Homescreen angelegt. +Aber: Haben wir hier noch keine speziellen Icons hinterlegt, wird ggf. nur eine Miniatur der Website als Icon angezeigt.

+

Das Web App Manifest anpassen (manifest.json)

+

Das Web App Manifest ist eine JSON-Datei, die dem Browser mitteilt, wie sich die Anwendung verhalten soll, wenn Sie installiert wird. Hier wird beispielsweise eine Hintergrundfarbe für die Menüleiste auf den nativen Endgeräten hinterlegt, und es werden die Pfade zu hinterlegten Icons angegeben.

+

Wir wollen die Standard-Datei, die von den PWA Schematics generiert wurde, noch etwas anpassen. Um dies nicht händisch zu tun, verwenden wir am besten einen Generator wie den Web App Manifest Generator. +Hierbei sollten wir bei der Einstellung Display Mode die Auswahl Standalone nutzen, da wir eine eigenständige App erhalten wollen, die nicht als Browser erkennbar ist. +Wollen wir das Standard-Icon ändern, laden wir hier einfach ein Bild hoch und lassen die zugehörigen Bilder erzeugen. Nach dem Entpacken der ZIP-Datei speichern wir die Icons in unserem Projekt unter src/assets/icons ab. Anschließend sollten wir noch einmal die Pfade in der Datei manifest.json prüfen.

+

Screenshot Web App Manifest Generator

+

Anpassungen für iOS (index.html)

+

Wollen wir unsere PWA unter iOS installieren, sind noch einige Anpassungen an der Datei index.html notwendig. +iOS-Geräte benötigen spezielle meta- und link-Tags zur Identifizierung der zugehörigen Icons, denn sie extrahieren diese Informationen nicht aus dem Web-Manifest.

+

Um das Icon für den Homescreen zu definieren, müssen die folgenden Zeilen in die Datei index.html eingefügt werden:

+
<head>
+  ...
+  <link rel="apple-touch-icon" href="assets/icons/icon-512x512.png">
+  <link rel="apple-touch-icon" sizes="152x152" href="assets/icons/icon-152x152.png">
+</head>
+

Wir geben den entsprechenden Pfad zum genutzten Icon an. Über das Attribut sizes können wir Icons mit bestimmten Größen hinterlegen. Weitere gängige Größen für iOS sind z. B. 180x180 und 167x167.

+

Weiterhin können wir über die link-Tags für iOS ein Splashscreen-Bild hinterlegen. Dieses wird angezeigt, sobald wir die App vom Homescreen aus starten. +Auch hierfür existiert ein Generator, der uns die Bilder in den entsprechenden Größen erzeugt und und die generierten link-Tags anzeigt: iOS Splash Screen Generator.

+

Anschließend fügen wir die Tags ebenfalls in die index.html ein. Wir müssen an dieser Stelle noch den Pfad zu den Bildern so anpassen, dass er korrekt auf die tatsächlichen Dateien zeigt. +Die erste Zeile teilt iOS-Geräten mit, dass die Webanwendung als App genutzt werden kann. Nur wenn diese Zeile in der index.html angegeben wurde, liest das iOS-Gerät den link-Tag mit der Angabe zum Splashscreen aus.

+
<head>
+  <!-- ... -->
+  <meta name="mobile-web-app-capable" content="yes">
+  <!-- ... -->
+  <link href="assets/splashscreens/iphone5_splash.png" media="(device-width: 320px) and (device-height: 568px) and (-webkit-device-pixel-ratio: 2)" rel="apple-touch-startup-image">
+  <link href="assets/splashscreens/iphone6_splash.png" media="(device-width: 375px) and (device-height: 667px) and (-webkit-device-pixel-ratio: 2)" rel="apple-touch-startup-image">
+  <link href="assets/splashscreens/iphoneplus_splash.png" media="(device-width: 621px) and (device-height: 1104px) and (-webkit-device-pixel-ratio: 3)" rel="apple-touch-startup-image">
+  <link href="assets/splashscreens/iphonex_splash.png" media="(device-width: 375px) and (device-height: 812px) and (-webkit-device-pixel-ratio: 3)" rel="apple-touch-startup-image">
+  <link href="assets/splashscreens/iphonexr_splash.png" media="(device-width: 414px) and (device-height: 896px) and (-webkit-device-pixel-ratio: 2)" rel="apple-touch-startup-image">
+  <link href="assets/splashscreens/iphonexsmax_splash.png" media="(device-width: 414px) and (device-height: 896px) and (-webkit-device-pixel-ratio: 3)" rel="apple-touch-startup-image">
+  <link href="assets/splashscreens/ipad_splash.png" media="(device-width: 768px) and (device-height: 1024px) and (-webkit-device-pixel-ratio: 2)" rel="apple-touch-startup-image">
+  <link href="assets/splashscreens/ipadpro1_splash.png" media="(device-width: 834px) and (device-height: 1112px) and (-webkit-device-pixel-ratio: 2)" rel="apple-touch-startup-image">
+  <link href="assets/splashscreens/ipadpro3_splash.png" media="(device-width: 834px) and (device-height: 1194px) and (-webkit-device-pixel-ratio: 2)" rel="apple-touch-startup-image">
+  <link href="assets/splashscreens/ipadpro2_splash.png" media="(device-width: 1024px) and (device-height: 1366px) and (-webkit-device-pixel-ratio: 2)" rel="apple-touch-startup-image">
+</head>
+

Als Letztes haben wir noch die Möglichkeit, die Statusbar der App hinsichtlich ihrer Farbe anzupassen. Dazu führen wir das folgende Metatag zur index.html hinzu.

+
<head>
+  <!-- ... -->
+  <meta name="apple-mobile-web-app-status-bar-style" content="black">
+  <!-- ... -->
+</head>
+

Wir können als Wert für content zwischen den folgenden Einstellungen wählen:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Text- und IconfarbeHintergrundfarbe
defaultSchwarzWeiß
whiteSchwarzWeiß
blackWeißSchwarz
black-translucentWeißHintergrundfarbe der App (body-Element)
+

Wir schauen uns das Ergebnis nun im Safari-Browser unter iOS an. Nach dem Öffnen der Seite können wir diese über die Funktion "Add to Homescreen" auf dem Apple-Gerät speichern. +Wir sehen, dass die App die korrekten Icons nutzt und uns nach der Installation und dem Start zunächst kurz den Splashscreen zeigt, bevor die App vollflächig dargestellt wird. Die Statusbar ist in unserem Fall Schwarz, wie zuvor angegeben.

+

Der BookMonkey als PWA mit Splashscreen unter iOS

+

Offline-Funktionalität

+

Die Anwendung verhält sich nun wie eine normale Webanwendung. Um mehr das Gefühl einer nativen App zu erzeugen, betrachten wir als Nächstes die Offline-Fähigkeit der App.

+

Konfiguration für Angular Service Worker anpassen (ngsw-config.json)

+

Der Angular Service Worker besitzt die Konfigurationsdatei ngsw-config.json +. +Hier wird definiert, welche Ressourcen und Pfade gecacht werden sollen und welche Strategie hierfür verwendet wird. +Eine ausführliche Beschreibung der einzelnen Parameter finden Sie in der offiziellen Dokumentation auf angular.io.

+

Die beiden großen Blöcke der Konfiguration sind die assetGroups und die dataGroup. Im Array assetGroups ist die Konfiguration zu Ressourcen enthalten, die zur App selbst gehören. Hierzu zählen zum Beispiel statische Bilder, CSS-Stylesheets, Third-Party-Ressourcen, die von CDNs geladen werden etc. +Das Array dataGroup, beinhaltet Ressourcen, die nicht zur App selbst gehören, zum Beispiel API-Aufrufe und andere Daten-Abhängigkeiten.

+

Wir wollen bei unserer Beispielanwendung zunächst erwirken, dass die Antworten von der HTTP-API gecacht werden: die Liste der Bücher, bereits angesehene einzelne Bücher und auch die Suchresultate. +Diese Ergebnisse können dann also auch angezeigt werden, wenn keine Netzwerkverbindung besteht. +Dazu passen wir die Datei ngsw-config.json an und erweitern diese wie folgt:

+
+

Achtung! Wenn Sie Änderungen am Quellcode durchführen, werden Ihnen ggf. beim Aktualisieren der Anwendung im Browser alte (gecachte) Daten angezeigt. Sie sollten deshalb während der Entwicklung stets einen neuen Incognito-Tab im Browser nutzen. Schließen Sie den Tab und laden die Anwendung neu, erhalten Sie eine "frische" Anwendung. Achten Sie auch darauf, dass in den Google Chrome Developer Tools die Option Disable Cache deaktiviert ist.

+
+
{
+  "$schema": "./node_modules/@angular/service-worker/config/schema.json",
+  "index": "/index.html",
+  "assetGroups": [ /* ... */ ],
+  "dataGroups": [
+    {
+      "name": "Books",
+      "urls": [
+        "/secure/books",
+        "/secure/books/search/**",
+        "/secure/book/**"
+      ],
+      "cacheConfig": {
+        "strategy": "freshness",
+        "maxSize": 50,
+        "maxAge": "1d2h",
+        "timeout": "3s"
+      }
+    }
+  ]
+}
+

Wir verwenden an dieser Stelle den Block dataGroups, da unsere Buchdatenbank keine statischen Daten enthält, die direkt zur App gehören. +Dem neuen Abschnitt in dataGroups geben wir die selbst festgelegte Bezeichnung Books. Wir definieren damit, dass alle Aufrufe unter /secure/books vom Service Worker behandelt werden sollen. Dasselbe gilt auch für alle anderen definierten Pfade zur HTTP-API. +Im letzten Schritt definieren wir das Verhalten des Caches. Wir wollen hier die Strategie freshness verwenden: Sie besagt, dass idealerweise die aktuellen Daten abgerufen werden, bevor sie aus dem Cache bezogen werden. +Erhalten wir jedoch ein Netzwerk-Timeout nach Ablauf der definierten Zeit im Parameter timeout, werden die zuletzt gecachten Daten ausgeliefert. Die Strategie eignet sich vor allem für dynamische Daten, die über eine API bezogen werden, und die möglichst immer im aktuellen Stand repräsentiert werden sollen. +Die Option maxSize definiert die maximale Anzahl von Einträgen im Cache. maxAge gibt die maximale Gültigkeit der Daten im Cache an, in unserem Fall sollen die Daten einen Tag und 2 Stunden gültig sein.

+

Eine zweite mögliche Strategie für den Cache ist die Einstellung performance. Diese liefert immer zunächst die Daten aus dem Cache, solange diese gültig sind. +Erst wenn der timeout abläuft, werden die Daten im Cache aktualisiert. Diese Strategie eignet sich für Daten, die nicht sehr oft geändert werden müssen oder bei denen eine hohe Aktualität keine große Relevanz hat.

+

Schauen wir uns nun wieder unsere Anwendung an und deaktivieren die Netzwerkverbindung nach dem erstmaligen Abrufen der Buchliste, so sehen wir, dass weiterhin Buchdaten angezeigt werden, wenn wir die Anwendung neu laden oder in ihr navigieren.

+

Die PWA updaten

+

Ein Service Worker wird automatisch im Browser installiert und ist dort aktiv. +Stellt der Server eine neue Version zur Verfügung, so muss der Service Worker im Browser aktualisiert werden. +Solche Updates werden in Angular über den Service SwUpdate behandelt. Dieser liefert uns Informationen über ein verfügbares bzw. durchgeführtes Update, auf die wir reagieren können. In der Regel werden Service Worker im Hintergrund geupdatet und die Nutzer bekommen davon nichts mit. +Es kann jedoch hilfreich sein, dem Nutzer mitzuteilen, dass ein Update vorliegt, um beispielsweise über Neuerungen zu informieren. +Wir wollen genau diesen Fall implementieren.

+

Zunächst passen wir dafür die Datei ngsw-config.json an. Hier fügen wir den Abschnitt appData ein. Dieser kann Informationen wie eine Beschreibung, die Version und weitere Metadaten zur Anwendung enthalten. Wir wollen in diesem Abschnitt eine Versionsnummer sowie einen Changelog hinterlegen, den wir später bei einem Update den Nutzern anzeigen wollen.

+
+

Achtung: Die Versionsnummer dient lediglich als Nutzerinformation. Hinter den Kulissen erfolgt jedoch ein Binärvergleich des erzeugten Service Workers aus der ngsw-config.json. Jede kleinste Änderung an der ngsw-config.json führt somit zu einem neuen Service Worker unabhängig von der von uns hinterlegten Versionsnummer.

+
+
{
+  "$schema": "./node_modules/@angular/service-worker/config/schema.json",
+  "index": "/index.html",
+  "appData": {
+    "version": "1.1.0",
+    "changelog": "aktuelle Version"
+  },
+  // ...
+}
+

Anschließend bauen wir die Anwendung (ng build --prod) und rufen sie im Browser auf – bis hierhin ist alles wie gehabt. +Nun wollen wir, dass der Nutzer über Änderungen informiert wird. +Dafür nutzen wir den Service SwUpdate. Er stellt das Observable available zur Verfügung, das wir abonnieren können. +Sobald ein neuer Service Worker verfügbar ist, wird dieses Event ausgelöst. +Wir können nun einen Confirm-Dialog anzeigen und den Nutzer fragen, ob ein Update durchgeführt werden soll. +Das Event aus dem Observable liefert uns außerdem die komplette Konfiguration von appData aus der ngsw-config.json in der aktuellen Version sowie in der neuen Version des Service Workers. +Bestätigt der Nutzer nun den Dialog mit OK, erfolgt ein Neuladen der Seite, was ein Update des Service Workers zur Folge hat.

+
import { Component, OnInit } from '@angular/core';
+import { SwUpdate } from '@angular/service-worker';
+
+@Component({ /* ... */ })
+export class AppComponent implements OnInit {
+
+  constructor(private swUpdate: SwUpdate) {}
+
+  ngOnInit() {
+    if (this.swUpdate.isEnabled) {
+      this.swUpdate.available.subscribe((evt) => {
+        const updateApp = window.confirm(\`
+          Ein Update ist verfügbar (\${evt.current.appData['version']} => \${evt.available.appData['version']}).
+          Änderungen: \${evt.current.appData['changelog']}
+          Wollen Sie das Update jetzt installieren?
+        \`);
+        if (updateApp) { window.location.reload(); }
+      });
+    }
+  }
+}
+

Um nun tatsächlich einen neuen Service Worker zu erhalten, müssen wir noch Änderungen an der ngsw-config.json vornehmen, damit nach dem Binärvergleich eine neue Version des Service Workers erzeugt wird. Wir ändern hier lediglich die Versionsnummer sowie das Changelog.

+
+

An dieser Stelle sei nochmals angemerkt, dass die Versionsnummer keine tatsächliche Version des Service Workers darstellt. Wir könnten hier auch eine niedrigere Versionsnummer angeben, und es würde trotzdem ein Update des Service Workers erfolgen.

+
+
{
+  // ...
+  "appData": {
+    "version": "2.0.0",
+    "changelog": "Caching bereits abgerufener Bücher"
+  },
+  // ...
+}
+

Erzeugen wir die Anwendung neu und starten wieder den Webserver, so sehen wir, dass kurz nach dem Laden der Seite ein Hinweis zum Update erscheint. Bestätigen wir mit OK, wird die Seite neu geladen und es wird fortan der neu erzeugte Service Worker verwendet.

+

Screenshot Anzeige eines Updates der PWA

+

Push Notifications

+

Zum Abschluss wollen wir uns noch der dritten wichtigen Charakteristik von PWAs widmen: den Push Notifications. +Diese ermöglichen es uns, vom Server aus Benachrichtigungen an Clients zu senden, die zuvor den Benachrichtigungsdienst aktiviert haben. +Push Notifications werden ebenfalls mithilfe von Service Workern implementiert.

+

Die nachfolgende Abbildung stellt den Ablauf von Push-Benachrichtigungen schematisch dar. Im ersten Schritt abonnieren ein oder mehrere Clients die Benachrichtigungen (1). +Anschließend soll in unserem Fall das Anlegen eines neuen Buchs auf dem Server (2) dazu führen, dass alle Abonnenten darüber benachrichtigt werden (3). In Schritt 4 wollen wir reagieren, wenn die Benachrichtigung angeklickt wird und wollen das neu angelegte Buch öffnen (4).

+

Flow: PWA Push Notifications

+

Um Push-Benachrichtigungen vom Server an die Clients zu schicken, kommt die sogenannte Push API zum Einsatz, die moderne Browser nativ unterstützen. +Die Technologie wird auch WebPush genannt.

+

Wir legen als Erstes einen neuen Service an, der sich um die Push Notifications kümmern soll: ng generate service web-notification. +Das read-only Property VAPID_PUBLIC_KEY enthält den Public-Key der BookMonkey API. Dieser wird für die Kommunikation zwischen dem Service Worker und dem Server mit WebPush zwingend benötigt.

+

Angular stellt den Service SwPush zur Verfügung, der die native Funktionalität kapselt. +Über isEnabled greifen wir auf SwPush zu, und wir erhalten Aufschluss darüber, ob der verwendete Browser bzw. das genutzte Gerät grundsätzlich Push Notifications unterstützt. +Die Methode requestSubscription() von SwPush fordert an, dass Push-Nachrichten im Browser aktiviert werden. +Dazu muss der Public-Key des Servers übermittelt werden. +Der Nutzer muss daraufhin im Browser bestätigen, dass die Anwendung Push-Nachrichten an das Gerät schicken darf. +Stimmt der Nutzer zu, wird die Methode sendToServer() mit dem zurückgelieferten Objekt vom Typ PushSubscriptionJSON aufgerufen. +Das Objekt enthält die notwendigen Abonnement-Daten, die der Server für die Speicherung und Adressierung der einzelnen Abonnenten benötigt. +Wir übermitteln das Objekt mit einem HTTP-POST-Request an den Server.

+
// ...
+import { HttpClient } from '@angular/common/http';
+import { SwPush } from '@angular/service-worker';
+
+@Injectable({ /* ... */ })
+export class WebNotificationService {
+  readonly VAPID_PUBLIC_KEY = 'BGk2Rx3DEjXdRv9qP8aKrypFoNjISAZ54l-3V05xpPOV-5ZQJvVH9OB9Rz5Ug7H_qH6CEr40f4Pi3DpjzYLbfCA';
+  private baseUrl = 'https://api3.angular-buch.com/notifications';
+
+  constructor(
+    private http: HttpClient,
+    private swPush: SwPush
+  ) { }
+
+  get isEnabled() {
+    return this.swPush.isEnabled;
+  }
+
+  subscribeToNotifications(): Promise<any> {
+    return this.swPush.requestSubscription({
+      serverPublicKey: this.VAPID_PUBLIC_KEY
+    })
+    .then(sub => this.sendToServer(sub))
+    .catch(err => console.error('Could not subscribe to notifications', err));
+  }
+
+  private sendToServer(params: PushSubscriptionJSON) {
+    this.http.post(this.baseUrl, params).subscribe();
+  }
+}
+

Im nächsten Schritt wollen wir den neuen Service einsetzen und navigieren dazu zurück in den Code der app.component.ts. +Wir legen das Property permission als Hilfe an, um den Nutzern später im Template den entsprechenden Status der Push Notifications anzuzeigen. +Über das globale Objekt Notification.permission erhalten wir vom Browser den Wert default, sofern noch keine Auswahl getroffen wurde, ob Benachrichtigungen durch den Nutzer genehmigt wurden. +Bestätigt ein Nutzer die Nachfrage, wird der Wert granted gesetzt. Bei Ablehnung erhalten wir den Wert denied. +Als initialen Wert verwenden wir null – derselbe Wert wird ebenso verwendet, wenn der Benachrichtigungsdienst nicht unterstützt wird. +Zum Abschluss benötigen wir noch eine Methode, mit der der initiale Request gestellt wird, die Push-Nachrichten zu aktivieren: submitNotification(). Die Methode soll beim Klick auf einen Button ausgeführt werden und nutzt den eben erstellen WebNotificationService. +Sobald der Nutzer eine Auswahl getroffen hat, wollen wir den Wert des Propertys permission updaten.

+
// ...
+import { WebNotificationService } from './shared/web-notification.service';
+
+@Component({/* ... */})
+export class AppComponent implements OnInit {
+  permission: NotificationPermission | null = null;
+
+  constructor(
+    private swUpdate: SwUpdate,
+    private webNotificationService: WebNotificationService
+  ) {}
+
+  ngOnInit() {
+    // ...
+    this.permission = this.webNotificationService.isEnabled ? Notification.permission : null;
+  }
+
+  submitNotification() {
+    this.webNotificationService.subscribeToNotifications()
+      .then(() => this.permission = Notification.permission);
+  }
+}
+

Zum Schluss fehlen nur noch ein paar kleine Anpassungen am Template (app.component.html). +Hier wollen wir einen Menüpunkt mit einem Button im rechten Bereich der Menüleiste einfügen. +Der Button soll deaktiviert sein, sofern keine Push Notifications unterstützt werden (z. B. im Development-Modus von Angular oder wenn der genutzte Browser diese Funktion nicht unterstützt). +Wird die Funktion unterstützt, prüfen wir noch auf die drei Zustände default, granted und denied. Die CSS-Klassen von Semantic UI sorgen für das entsprechende Styling. +Die CSS-Klasse mini im übergeordneten <div> macht das Menü etwas kleiner, sodass es auch auf dem Smartphone gut aussieht.

+
<div class="ui mini menu">
+  <!-* ... -->
+  <div class="right menu">
+    <div class="item">
+      <div class="ui button"
+        (click)="submitNotification()"
+        [ngClass]="{
+          'disabled': !permission,
+          'default':  permission === 'default',
+          'positive': permission === 'granted',
+          'negative': permission === 'denied'
+        }"
+      >Benachrichtigungen</div>
+    </div>
+  </div>
+</div>
+<router-outlet></router-outlet>
+

Geschafft! Schauen wir uns nun das Resultat im Development-Modus an, sehen wir, dass der Button ausgegraut und nicht klickbar ist, da hier die Notifications nicht unterstützt werden.

+

Screenshot: PWA Push Notifications disabled

+

Bauen wir die Anwendung hingegen im Production-Modus und starten den angular-http-server, so ist der Button klickbar und ist zunächst im Zustand default. +Klicken wir den Button an, fragt uns der Browser, ob wir Push Notifications aktivieren wollen.

+

Screenshot: PWA Access to Push Notifications default

+

Wenn wir den Zugriff gewähren, wird der Button durch die CSS-Klasse success grün, und wir erhalten vom Server direkt eine erste Bestätigung, dass die Benachrichtigungen aktiviert wurden.

+

Screenshot: PWA Success Push Notification

+

Screenshot: PWA Access to Push Notifications granted

+

Der API-Server unterstützt bereits WebPush: Wird nun ein neues Buch zur API hinzugefügt, erhalten wir eine Push-Benachrichtigung! Sie können das Feature ausprobieren, indem Sie entweder über die App selbst ein Buch hinzufügen, oder indem Sie die BookMonkey API dafür nutzen.

+

Screenshot: PWA Push Notification bei einem neuen Buch

+

Lehnen wir hingegen ab, Benachrichtigungen zu erhalten, so färbt sich der Button rot, und wir werden nicht über neue Bücher informiert.

+

Screenshot: PWA Access to Push Notifications denied

+

Unter iOS wird die Funktionalität nicht unterstützt, daher bleibt der Button ausgegraut:

+ + + + + + + + + + + +
Screenshot AndroidScreenshot iOS
Screenshot Android Benachrichtigungen werden unterstütztScreenshot iOS Benachrichtigungen werden nicht unterstützt
+

Auf die Push Notification reagieren

+

Wir wollen zum Abschluss noch einen Schritt weiter gehen und darauf reagieren, dass ein Nutzer auf die angezeigte Benachrichtigung klickt. +Hierfür stellt der Service SwPush das Observable notificationClicks zur Verfügung. +Mit der Benachrichtigung wird im Property data eine URL angegeben, die zur Seite des neu angelegten Buchs führt. +Wir wollen diese URL nutzen und ein neues Browser-Fenster mit der angegebenen URL öffen.

+
+

Achtung: An dieser Stelle müssen wir window.open() nutzen und nicht den Angular-Router, da die Methode notificationClicks() im Service Worker aufgerufen wird und die Benachrichtigung ggf. erst erscheint, wenn wir die App bereits geschlossen haben.

+
+
// ...
+@Injectable({ /* ... */ })
+export class WebNotificationService {
+  // ...
+  constructor(
+    private http: HttpClient,
+    private swPush: SwPush
+  ) {
+    this.swPush.notificationClicks.subscribe(event => {
+      const url = event.notification.data.url;
+      window.open(url, '_blank');
+    });
+  }
+  // ...
+}
+

Die Push Notifications aus dem Service Worker sind ein effektiver Weg, um die Aufmerksamkeit des Nutzers gezielt auf die Anwendung zu lenken. +Die Nachricht verhält sich wie eine native Benachrichtigung jeder anderen App. +Im Hintergrund wird die Technologie WebPush eingesetzt, die fest mit dem Angular-Service SwPush verdrahtet ist. +SwPush bietet also keine einfache Möglichkeit, eine Nachricht aus einer lokalen Quelle anzuzeigen.

+

Ein Blick unter die Haube von Push Notifications

+

Haben wir alle Teile korrekt implementiert, kann der Client Push-Nachrichten vom Server empfangen. +Wir wiederholen kurz dem Ablauf: +Der Client macht sich zunächst beim Server bekannt, indem er ein Objekt vom Typ PushSubscription an den Server übermittelt. +In unserem Beispiel haben wir dazu die Service-Methode sendToServer() verwendet. +Der Server speichert dieses Objekt und verwendet es, um Nachrichten an den registrieren Service Worker zu übermitteln. +So wird es ermöglicht, dass auch Nachrichten empfangen werden können, wenn die Anwendung geschlossen ist.

+

Aber wie funktioniert der Rückkanal vom Server zum Client? +Dazu schauen wir uns das automatisch generierte Objekt vom Typ PushSubscription einmal genauer an:

+
{
+  "endpoint": "https://fcm.googleapis.com/fcm/send/erSmNAsF0ew:APA91bGfjlCRi8nIpG9fvxezt_2E0JcfJ0I_4gnm2M29JQ3kF3d_XxUqrlQatWNGotPtsW-M57vsLxhNz9vRz0IQr3KB50Dm2wjm7gAbVo1c00VpDv7-2JynXNGk1RqimZ-TfYzzAjdu",
+  "expirationTime": null,
+  "keys": {
+    "p256dh":"BO4BdhfvZ4bo3hh7NBJDb--OZWcQ37M0O8XZY6lJ67g3x7JvmzMJhz_w_EaEVKFLskkDccO3iKsXkxtlSromdzU",
+    "auth":"IH-eOcRdlxZ8P8uLl-2e6g"
+  }
+}
+

Besonders interessant ist das Property endpoint: Der Browser übermittelt eine URL, über die der Server Nachrichten an den Client schicken kann. +Der Server sendet dazu lediglich einen HTTP-Request an diese URL. +Die Notwendigkeit der Verschlüsselung mit den VAPID-Keys wird hier noch einmal deutlicher.

+

Ebenso interessant ist, dass die Endpoint-URL aus dem Universum des Browserherstellers kommt. +Bitte behalten Sie diesen Punkt stets im Hinterkopf: Alle Push-Nachrichten werden immer durch einen fremden Server zum Client gebracht.

+

Zusammenfassung

+

Wie Sie sehen, gelingt der Einstieg in die Entwicklung von Progressive Web Apps ohne Probleme. +Dank der vorbereiteten Schematics können wir uns auf die eigentliche Implementierung von Features konzentrieren. +Dies war aber nur ein kleiner Einblick in Progressive Web Apps mit Angular. +Wer noch mehr zum Thema erfahren möchte, dem sei der Blogpost "Build a production ready PWA with Angular and Firebase" von Önder Ceylan empfohlen.

+

Den vollständigen Quelltext aus diesem Artikel können Sie auf auf GitHub herunterladen. +Eine Demo des BookMonkey als PWA finden Sie unter der https://bm3-pwa.angular-buch.com – probieren Sie die App am Besten auf Ihrem Smartphone aus!

+

Viel Spaß beim Programmieren!

+
+

Titelbild: Photo by rawpixel.com from Pexels, angepasst

+`;export{e as default}; diff --git a/assets/2019-11-20-angular-tag-cloud-module-ZeuwSo_T.js b/assets/2019-11-20-angular-tag-cloud-module-ZeuwSo_T.js new file mode 100644 index 00000000..c080daeb --- /dev/null +++ b/assets/2019-11-20-angular-tag-cloud-module-ZeuwSo_T.js @@ -0,0 +1,25 @@ +const a=`--- +title: angular-tag-cloud-module — Generated word clouds for your Angular app +description: My module angular-tag-cloud-module lets you generate word clouds / tag clouds for your Angular app +published: true +author: + name: Danny Koppenhagen + mail: mail@k9n.dev +updated: 2020-04-09 +keywords: + - Angular + - Angular CLI + - word cloud + - tag cloud +language: en +thumbnail: + header: images/projects/angular-tag-cloud-module.png + card: images/projects/angular-tag-cloud-module-small.png +--- + +

My project angular-tag-cloud-module gives you an Angular module for setting up a tag cloud / word cloud easily. +It will take an array of words or links and put them randomly into a container. +You can specify some styling options for the whole word cloud or for each tag cloud item.

+

You can try out the module, and it's configuration at the Github Pages Demo Site.

+

The official documentation for angular-tag-cloud-module can be found on Github or NPM.

+`;export{a as default}; diff --git a/assets/2019-11-ngx-semantic-version-DjbCChSC.js b/assets/2019-11-ngx-semantic-version-DjbCChSC.js new file mode 100644 index 00000000..377ef7ee --- /dev/null +++ b/assets/2019-11-ngx-semantic-version-DjbCChSC.js @@ -0,0 +1,193 @@ +const e=`--- +title: 'ngx-semantic-version: enhance your git and release workflow'\r +description: 'In this article I will introduce the new tool ngx-semantic-version.\r +This new Angular Schematic allows you to set up all necessary tooling for consistent git commit messages and publishing new versions.\r +It will help you to keep your CHANGELOG.md file up to date and to release new tagged versions. All this is done by leveraging great existing tools like commitizen, commitlint and standard-version.'\r +published: true\r +author:\r + name: Danny Koppenhagen\r + mail: mail@k9n.dev\r +created: 2019-11-06\r +updated: 2019-11-06\r +publishedAt:\r + name: angular.schule.com\r + url: https://angular.schule/blog/2019-11-ngx-semantic-version\r + logo: https://angular.schule/assets/img/logo-angular-schule-gradient-600.png\r +keywords:\r + - Angular\r + - Angular CLI\r + - Angular Schematics\r + - release\r + - commit\r + - commitlint\r + - husky\r + - commitizen\r + - standard-version\r + - semver\r + - Semantic Version\r + - Conventional Commits\r + - Conventional Changelog\r +language: en\r +thumbnail:\r + header: images/blog/ngx-semantic-version-header.jpg\r + card: images/blog/ngx-semantic-version-header-small.jpg +--- + +

In this article I will introduce the new tool ngx-semantic-version. +This new Angular Schematic allows you to set up all necessary tooling for consistent git commit messages and publishing new versions. +It will help you to keep your CHANGELOG.md file up to date and to release new tagged versions. All this is done by leveraging great existing tools like commitizen, commitlint and standard-version.

+
+ +

TL;DR

+

ngx-semantic-version is an Angular Schematic that will add and configure commitlint, commitizen, husky and standard-version to enforce commit messages in the conventional commit format and to automate your release and Changelog generation by respecting semver. +All you have to do for the setup is to execute this command in your Angular CLI project:

+
ng add ngx-semantic-version
+

Introduction

+

Surviving in the stressful day-to-day life of a developer is not easy. +One feature follows the other, bug fixes and breaking changes come in on a regular basis. +With all the hustle and bustle, there's literally no time to write proper commit messages.

+

If we don't take this job serious, at the end of the day our git history will look like this:

+
* 65f597a (HEAD -> master) adjust readme
+* f874d16 forgot to bump up version
+* 3fa9f1e release
+* d09e4ee now it's fixed!
+* 70c7a9b this should really fix the build
+* 5f91dab let the build work (hopefully)
+* 44c45b7 adds some file
+* 7ac82d3 lots of stuff
+* 1e34db6 initial commit

When you see such a history you know almost nothing: neither what features have been integrated nor if there was a bugfix or a breaking change. There is almost no meaningful context.

+

Wouldn't it be nice to have a cleaner git history that will follow a de facto standard which is commonly used?

+

But more than this: having a clean and well-formatted git history can help us releasing new software versions respecting semantic versioning and generating a changelog that includes all the changes we made and references to the commits.

+

No more struggle with forgotten version increasements in your package.json. No more manual changes in the CHANGELOG.md and missing references to necessary git commits. Wouldn't it be nice to automate the release process and generate the changelog and the package version by just checking and building it from a clean git history? And wouldn't it be nice to add all this stuff with one very simple single line command to your Angular project?

+

ngx-semantic-version will give you all that.

+

What does it do?

+

ngx-semantic-version will add and configure the following packages for you. +We will take a look at each tool in this article.

+ +

commitlint: Enforcing conventional commit messages

+

Commitlint will give you the ability to check your commit messages for a common pattern. A very prominent project following this pattern is the Angular repository itself. The conventional-commit pattern requires us to follow this simple syntax:

+
[optional scope]: 
+
+[optional body]
+
+[optional footer]

Let's see what is the meaning of these parameters:

+ +

An example message could look like that:

+
refactor(footer): move footer widget into separate module
+
+BREAKING CHANGES
+The footer widget needs to be imported from \`widgets/FootWidgetModule\` instead of \`common\` now.
+
+closes #45

Following this pattern allows us to extract valuable information from the git history later. +We can generate a well-formatted changelog file without any manual effort. +It can easily be determined what version part will be increased and much more.

+
+

You may think now: "Wow, that style looks complicated and hard to remember." But don't worry: you will get used to it soon! In a second you will see how creating these messages can be simplified using commitizen.

+
+

If you want to try you commitlint separately, you can even try it out using npx:

+

commitlint cli

+

ngx-semantic-version will add the configuration file commitlint.config.js which can be adjusted later by your personal needs.

+

husky: Hook into the git lifecycle

+

Husky allows us to hook into the git lifecycle using Node.js. +We can use husky in combination with commitlint to check a commit message right before actually commiting it. +This is what ngx-semantic-version configures in our application. +It will add this part to your package.json:

+
...
+"husky": {
+  "hooks": {
+    "commit-msg": "commitlint -E HUSKY_GIT_PARAMS"
+  }
+},
+

Husky uses the environment variable HUSKY_GIT_PARAMS containing the current git message you entered and it will pass this through commitlint so it can be evaluated.

+

Whenever you commit, commitlint will now automatically check your message.

+

commitizen: Easily write conventional commit messages

+

Defining a well-formed message text can be quite hard when you are not used to the conventional-changelog style. +The tool commitizen is there to help beginners and to prevent your own negligence. +It introduces a lots of restrictions for our commit messages so that it's easier for developers to follow the pattern. +Commitizen will help you to always define a commit message in the appropriate format using an interactive CLI:

+

commitizen cli

+

When adding ngx-semantic-version it will configure commitizen to use the conventional changelog style as well:

+
// package.json
+...
+"config": {
+  "commitizen": {
+    "path": "./node_modules/cz-conventional-changelog"
+  }
+}
+

If you are using Visual Studio Code, you can also use the extension Visual Studio Code Commitizen Support which will let you type the commit message directly in the editor:

+

commitizen vscode plugin

+

standard-version: Generate changelogs from the git history

+

Standard-version is the cherry on the cake and takes advantage of a well-formed git history. +It will extract the commit message information like fix, feature and BREAKING CHANGES and use this information to automatically create a CHANGELOG.md file. +The tool will also determine the next version number for the project, according to the rules of semantic versioning.

+

ngx-semantic-version will configure a new script in your package.json that can be used for releasing a new version:

+
...
+"scripts": {
+  "release": "standard-version",
+},
+

Whenever you want to release a version, you should use standard-version to keep your versioning clean and the CHANGELOG.md up-to-date. +Furthermore, it references both commits and closed issues in your CHANGELOG.md, so that it's easier to understand what is part of in the release. +The tool will also tag the version in the git repo so that all versions will be available as releases via GitHub, Gitlab or whatever you are using.

+

How to use ngx-semantic-version

+

Are you excited, too? Then let's get started! +Configuring all mentioned tools manually can be quite tedious. +Here is where ngx-semantic-version enters the game: It is an Angular schematic that will add and configure all the tools for you.

+

All we need it to run the following command:

+
ng add ngx-semantic-version
+

After installation, your package.json file will be updated. +You will also find a new file commitlint.config.js which includes the basic rule set for conventional commits. +You can adjust the configuration to satisfy your needs even more.

+

Try it out and make some changes to your project! +Commitlint will now check the commit message and tell you if it is valid or not. +It prevents you from commiting with a "bad" message. +To make things easier, commitizen will support you by building the message in the right format and it even explicitly asks you for issue references and breaking changes.

+

If you typically use npm version to cut a new release, now you do this instead:

+
npm run release
+

You should also consider using one of the following commands:

+
npm run release -- --first-release  # create the initial release and create the \`CHANGELOG.md\`
+npm run release -- --prerelease     # create a pre-release instead of a regular one
+

standard-version will now do the following:

+
    +
  1. "Bump" the version in package.json
  2. +
  3. Update the CHANGELOG.md file
  4. +
  5. Commit the package.json and CHANGELOG.md files
  6. +
  7. Tag a new release in the git history
  8. +
+

Check out the official documentation of standard-version for further information.

+

Conclusion

+

I hope that ngx-semantic-version will make your daily work easier! +If you have a problem, please feel free to open an issue. +And if you have any improvements, I'm particularly happy about a pull request.

+

Happy coding, committing and releasing!

+
+ +

Thank you

+

Special thanks go to Ferdinand Malcher and Johannes Hoppe for revising this article and discussing things.

+`;export{e as default}; diff --git a/assets/2020-01-angular-scully-DknRVLvX.js b/assets/2020-01-angular-scully-DknRVLvX.js new file mode 100644 index 00000000..862beb66 --- /dev/null +++ b/assets/2020-01-angular-scully-DknRVLvX.js @@ -0,0 +1,327 @@ +const e=`--- +title: Create powerful fast pre-rendered Angular Apps using Scully static site generator +description: 'You probably heard of the JAMStack. It is a new way of building websites and apps via static site generators that deliver better performance and higher security. With this blog post, I will show you how you can easily create a blogging app by using the power of Angular and the help of Scully static site generator. It will automatically detect all app routes and create static pages out of them that are ready to ship for production.' +published: true +author: + name: Danny Koppenhagen + mail: mail@k9n.dev +created: 2020-01-01 +updated: 2021-11-01 +keywords: + - Angular + - Angular CLI + - Angular Schematics + - Scully + - SSR + - SSG + - Pre-rendering + - JAM Stack +linked: + devTo: https://dev.to/dkoppenhagen/create-powerfull-fast-pre-rendered-angular-apps-using-scully-static-site-generator-31fb + medium: https://danny-koppenhagen.medium.com/create-powerful-fast-pre-rendered-angular-apps-using-scully-static-site-generator-79832a549787 +language: en +thumbnail: + header: images/blog/scully/scully-header.jpg + card: images/blog/scully/scully-header-small.jpg +series: scully +--- + +

Create powerful fast pre-rendered Angular Apps using Scully static site generator

+

You probably heard of the JAMStack. It's a new way of building websites and apps via static site generators that deliver better performance and higher security. There have been tools for many platforms, but surprisingly not yet for Angular. These times are finally over. With this blog post, I want to show you how you can easily create an Angular blogging app by to pre-render your complete app.

+
+

On Dec 16, 2019 the static site generator Scully for Angular was presented. +Scully automatically detects all app routes and creates static sites out of it that are ready to ship for production. +This blog post is based on versions of Angular and Scully:

+
"@angular/core": "~13.0.0",
+"@angular/cli": "~13.0.3",
+"@scullyio/init": "^2.0.5",
+"@scullyio/ng-lib": "^2.0.0",
+"@scullyio/scully": "^2.0.0",
+"@scullyio/scully-plugin-puppeteer": "^2.0.0",
+
+ +

About Scully

+

Scully is a static site generator (SSG) for Angular apps. +It analyses a compiled Angular app and detects all the routes of the app. +It will then call every route it found, visit the page in the browser, renders the page and finally put the static rendered page to the file system. +This process is also known as pre-rendering – but with a new approach. +The result compiled and pre-rendered app ready for shipping to your web server.

+
+

Good to know: Scully does not use Angular Universal for the pre-rendering. +It uses a Chromium browser to visit and check all routes it found.

+
+

All pre-rendered pages contain just plain HTML and CSS. +In fact, when deploying it, a user will be able to instantly access all routes and see the content with almost no delay. +The resulting sites are very small static sites (just a few KBs) so that even the access from a mobile device with a very low bandwidth is pretty fast. +It's significantly faster compared to the hundreds of KBs that you are downloading when calling a “normal” Angular app on initial load.

+

But that’s not all: Once the pre-rendered page is shipped to the user, Scully loads and bootstraps the “real” Angular app in the background on top of the existing view. +In fact Scully will unite two great things: +The power of pre-rendering and very fast access to sites and the power of a fully functional Single Page Application (SPA) written in Angular.

+

Get started

+

The first thing we have to do is to set up our Angular app. +As Scully detects the content from the routes, we need to configure the Angular router as well. +Therefore, we add the appropriate flag --routing (we can also choose this option when the CLI prompts us).

+
npx -p @angular/cli ng new scully-blog --routing # create an angular workspace
+cd scully-blog  # navigate into the project
+

The next step is to set up our static site generator Scully. +Therefore, we are using the provided Angular schematic:

+
ng add @scullyio/init  # add Scully to the project
+

Et voilà here it is: We now have a very minimalistic Angular app that uses the power of Scully to automatically find all app routes, visit them and generate static pages out of them. +It's ready for us to preview. +Let's try it out by building our site and running Scully.

+
npm run build     # build our Angular app
+npx scully        # let Scully run over our app and build it
+npx scully serve  # serve the scully results
+
+

Scully will run only once by default. To let Scully run and watch for file changes, just add the --watch option (npx scully --watch).

+
+

After Scully has checked our app, it will add the generated static assets to our dist/static directory by default. +Let's quickly compare the result generated from Scully with the result from the initial Angular build (dist/scully-blog):

+
dist/
+┣ scully-blog/
+┃ ┣ assets/
+┃ ┣ ...
+┃ ┗ styles.ef46db3751d8e999.css
+┗ static/
+  ┣ assets/
+  ┃ ┗ scully-routes.json
+  ┣ ...
+  ┗ styles.ef46db3751d8e999.css

If we take a look at it, except of the file scully-routes.json, that contains the configured routes used by Scully, we don't see any differences between the two builds. +This is because currently we only have the root route configured, and no further content was created.

+

Nonetheless, when running npx scully serve or npx scully --watch we can check out the result by visiting the following URL: localhost:1668. +This server serves the static generated pages from the dist/static directory like a normal web server (e.g. nginx or apache).

+

The ScullyLibModule

+

You may have realized, that after running the Scully schematic, the ScullyLibModule has been added to your AppComponent:

+
// ...
+import { ScullyLibModule } from '@scullyio/ng-lib';
+
+@NgModule({
+  // ...
+  imports: [
+    // ...
+    ScullyLibModule
+  ]
+})
+export class AppModule { }
+

This module is used by Scully to hook into the angular router and to determine once the page Scully tries to enter is fully loaded and ready to be rendered by using the IdleMonitorService from Scully internally. +If we remove the import of the module, Scully will still work, but it takes much longer to render your site as it will use a timeout for accessing the pages. +So in that case even if a page has been fully loaded, Scully would wait until the timer is expired.

+

Turn it into a blog

+

Let’s go a bit further and turn our site into a simple blog that will render our blog posts from separate Markdown documents. +Scully brings this feature out of the box, and it’s very easy to set it up:

+
ng g @scullyio/init:blog                      # setup up the \`BlogModule\` and related sources
+ng g @scullyio/init:post --name="First post"  # create a new blog post
+

After these two steps we can see that Scully has now added the blog directory to our project root. +Here we can find the markdown files for creating the blog posts — one file for each post. +We now have two files there: The initially created example file from Scully and this one we created with ng g @scullyio/init:post.

+

Let's go further

+

Now that we've got Scully installed and working, let's modify our Angular app to look more like an actual blog, and not just like the default Angular app. +Therefore, we want to get rid of the Angular auto generated content in the AppComponent first. +We can simply delete all the content of app.component.html except of the router-outlet:

+
<router-outlet></router-outlet>
+

Let’s run the build again and have a look at the results. +Scully assumes by default the route configuration hasn't changed meanwhile, and it can happen that it's not detecting the new bog entry we just created. +To be sure it will re-scan the routes, we will pass through the parameter --scan:

+
npm run build       # Angular build
+npx scully --scan   # generate static build and force checking new routes
+npx scully serve    # serve the scully results
+

When checking out our dist/static directory we can see that there are new subdirectories for the routes of our static blogging sites. +But what's that: When we will check the directory dist/static/blog/, we see somewhat like this:

+
blog/
+┣ ___UNPUBLISHED___k9pg4tmo_2DDScsUiieFlld4R2FwvnJHEBJXcgulw
+  ┗ index.html

This feels strange, doesn't it? +But Checking the content of the file index.html inside will tell us it contains actually the content of the just created blog post. +This is by intention: This Scully schematic created the markdown file with a meta flag called published that is by default set to false. +The internally used renderer plugin from Scully will handle this flag, and it creates an unguessable name for the route. +This allows us to create blog post drafts that we can already publish and share by using the link for example to let someone else review the article. +You can also use this route if you don't care about the route name. +But normally you would just like to change the metadata in the Markdown file to:

+
published: true
+

After this, run the build process again and the files index.html in dist/static/blog/<post-name>/ contain now our static pages ready to be served. +When we are visiting the route path /blog/first-post we can see the content of our markdown source file blog/first-post.md is rendered as HTML.

+

If you want to prove that the page is actually really pre-rendered, just disable JavaScript by using your Chrome Developer Tools. +You can reload the page and see that the content is still displayed. +Awesome, isn't it?

+

a simple blog created with Scully

+
+

When JavaScript is enabled, Scully configures your static sites in that way, that you will see initially the static content. +In the background it will bootstrap your Angular app, and refresh the content with it. +You won't see anything flickering.

+
+

Hold on a minute! 😳

+

You may have realized: We haven’t written one line of code manually yet, and we have already a fully functional blogging site that’s server site rendered. Isn’t that cool? +Setting up an Angular based blog has never been easier.

+
+

Good to know: Scully also detects new routes we are adding manually to our app, and it will create static sites for all those pages.

+
+

Use the ScullyRoutesService

+

We want to take the next step. +Now we want to list an overview of all existing blog posts we have and link to their sites in our AppComponent. +Therefore, we can easily inject the ScullyRoutesService. +It will return us a list of all routes Scully found with the parsed information as a ScullyRoute array within the available$ observable. +We can easily inject the service and display the information as a list in our AppComponent.

+
import { Component } from '@angular/core';
+import { ScullyRoutesService, ScullyRoute } from '@scullyio/ng-lib';
+import { Observable } from 'rxjs';
+
+@Component({
+  selector: 'app-root',
+  templateUrl: './app.component.html',
+  styleUrls: ['./app.component.css']
+})
+export class AppComponent {
+  links$: Observable<ScullyRoute[]> = this.scully.available$;
+
+  constructor(private scully: ScullyRoutesService) {}
+}
+

To display the results, we can simply use ngFor with the async pipe and list the results. +A ScullyRoute will give us the routing path inside the route key and all other markdown metadata inside their appropriate key names. +So we can extend for example our markdown metadata block with more keys (e.g. thumbnail: assets/thumb.jpg) and we can access them via those (blog.thumbnail in our case). +We can extend app.component.html like this:

+
<ul>
+  <li *ngFor="let link of links$ | async">
+    <a [routerLink]="link.route">{{ link.title }}</a>
+  </li>
+</ul>
+
+<hr />
+
+<router-outlet></router-outlet>
+

This will give us a fully routed blog page:

+

a simple blog created with scully

+

The ScullyRoutesService contains all the available routes in your app. +In fact, any route that we add to our Angular app will be detected by Scully and made available via the ScullyRoutesService.available$ observable. +To list only blog posts from the blog route and directory we can just filter the result:

+
/* ... */
+import { map, Observable } from 'rxjs';
+/* ... */
+export class AppComponent {
+  links$: Observable<ScullyRoute[]> = this.scully.available$.pipe(
+    map(routeList => {
+      return routeList.filter((route: ScullyRoute) =>
+        route.route.startsWith(\`/blog/\`),
+      );
+    })
+  );
+
+  constructor(private scully: ScullyRoutesService) {}
+}
+

Wow! That was easy, wasn’t it? +Now you just need to add a bit of styling and content and your blog is ready for getting visited.

+

Fetch dynamic information from an API

+

As you may have realized: Scully needs a data source to fetch all dynamic routes in an app. +In case of our blog example Scully uses the :slug router parameter as a placeholder. +Scully will fill this placeholder with appropriate content to visit and pre-render the site. +The content for the placeholder comes in our blog example from the files in the /blog directory. +This has been configured from the schematics we ran before in the file scully.scully-blog.config.ts:

+
import { ScullyConfig } from '@scullyio/scully';
+
+/** this loads the default render plugin, remove when switching to something else. */
+import '@scullyio/scully-plugin-puppeteer';
+
+export const config: ScullyConfig = {
+  projectRoot: "./src",
+  projectName: "scully-blog",
+  outDir: './dist/static',
+  routes: {
+    '/blog/:slug': {
+      type: 'contentFolder',
+      slug: {
+        folder: "./blog"
+      }
+    },
+  }
+};
+

I would like to show a second example. +Imagine we want to display information about books from an external API. +So our app needs another route called /books/:isbn. +To visit this route and pre-render it, we need a way to fill the isbn parameter. +Luckily Scully helps us with this too. +We can configure Router Plugin that will call an API, fetch the data from it and pluck the isbn from the array of results to fill it in the router parameter.

+

In the following example we will use the public service BookMonkey API (we provide this service for the readers of our German Angular book) as an API to fetch a list of books:

+
/* ... */
+
+export const config: ScullyConfig = {
+  /* ... */
+  routes: {
+    /* ... */
+    '/books/:isbn': {
+      'type': 'json',
+      'isbn': {
+        'url': 'https://api3.angular-buch.com/books',
+        'property': 'isbn'
+      }
+    }
+  }
+};
+

The result from the API will have this shape:

+
[
+  {
+    "title": "Angular",
+    "subtitle": "Grundlagen, fortgeschrittene Themen und Best Practices – mit NativeScript und NgRx",
+    "isbn": "9783864906466",
+    // ...
+  },
+  {
+    "title": "Angular",
+    "subtitle": "Grundlagen, fortgeschrittene Techniken und Best Practices mit TypeScript - ab Angular 4, inklusive NativeScript und Redux",
+    "isbn": "9783864903571",
+    // ...
+  },
+  // ...
+]
+

After Scully plucks the ISBN, it will just iterate over the final array: ['9783864906466', '9783864903571']. +In fact, when running Scully using npx scully, it will visit the following routes, after we have configured the route /books/:isbn in the Angular router (otherwise non-used routes will be skipped).

+
/books/9783864906466
+/books/9783864903571

We can see the result in the log:

+
enable reload on port 2667
+ ☺   new Angular build imported
+ ☺   Started servers in background
+--------------------------------------------------
+Watching blog for change.
+--------------------------------------------------
+ ☺   new Angular build imported
+Finding all routes in application.
+Using stored unhandled routes
+Pull in data to create additional routes.
+Finding files in folder "//blog"
+Route list created in files:
+  "//src/assets/scully-routes.json",
+  "//dist/static/assets/scully-routes.json",
+  "//dist/scully-blog/assets/scully-routes.json"
+
+Route "/books/9783864903571" rendered into file: "//dist/static/books/9783864903571/index.html"
+Route "/books/9783864906466" rendered into file: "//dist/static/books/9783864906466/index.html"
+Route "/blog/12-27-2019-blog" rendered into file: "//dist/static/blog/12-27-2019-blog/index.html"
+Route "/blog/first-post" rendered into file: "//dist/static/blog/first-post/index.html"
+Route "/" rendered into file: "//dist/static/index.html"
+
+Generating took 3.3 seconds for 7 pages:
+  That is 2.12 pages per second,
+  or 473 milliseconds for each page.
+
+  Finding routes in the angular app took 0 milliseconds
+  Pulling in route-data took 26 milliseconds
+  Rendering the pages took 2.58 seconds

This is great. We have efficiently pre-rendered normal dynamic content! +And that was it for today. +With the shown examples, it's possible to create a full-fledged website with Scully.

+
+

Did you know that this blogpost and the overall website you are right now reading has also been created using Scully? +Feel free to check out the sources at: +github.com/d-koppenhagen/k9n.dev

+
+

If you want to follow all the development steps in detail, check out my provided GitHub repository +scully-blog-example.

+

Conclusion

+

Scully is an awesome tool if you need a pre-rendered Angular SPA where all routes can be accessed immediately without loading the whole app at once. +This is a great benefit for users as they don’t need to wait until the bunch of JavaScript has been downloaded to their devices. +Visitors and search engines have instantly access to the sites' information. +Furthermore, Scully offers a way to create very easily a blog and renders all posts written in Markdown. +It will handle and pre-render dynamic routes by fetching API data from placeholders and visiting every route filled by this placeholder.

+

Compared to "classic" pre-rending by using Angular Universal, Scully is much easier to use, and it doesn't require you to write a specific flavor of Angular. +Also, Scully can easily pre-render hybrid Angular apps or Angular apps with plugins like jQuery in comparison to Angular Universal. +If you want to compare Scully with Angular Universal in detail, check out the blog post from Sam Vloeberghs: Scully or Angular Universal, what is the difference?

+

If you want to dig a bit deeper into the features Scully offers, check out my second article.

+

Thank you

+

Special thanks go to Aaron Frost (Frosty ⛄️) from the Scully core team, Ferdinand Malcher and Johannes Hoppe for revising this article.

+`;export{e as default}; diff --git a/assets/2020-02-02-vscode-file-tree-to-text-generator-CGjK4Tnk.js b/assets/2020-02-02-vscode-file-tree-to-text-generator-CGjK4Tnk.js new file mode 100644 index 00000000..8379aab3 --- /dev/null +++ b/assets/2020-02-02-vscode-file-tree-to-text-generator-CGjK4Tnk.js @@ -0,0 +1,35 @@ +const e=`--- +title: vscode-file-tree-to-text-generator — A Visual Studio Code Extension to generate file trees +description: Generate file trees from your VS Code Explorer for different Markdown, LaTeX, ASCII or a userdefined format +published: true +author: + name: Danny Koppenhagen + mail: mail@k9n.dev +updated: 2020-02-02 +keywords: + - Markdown + - ASCII + - asciitree + - latex + - dirtree + - tree + - filtre + - vscode + - Visual Studio Code +language: en +thumbnail: + header: images/projects/file-tree-header-image.jpg + card: images/projects/file-tree-header-image-small.jpg +--- + +

My project vscode-file-tree-to-text-generator will give you tha ability to generate file / directory trees for different targets directly from you Visual Studio Code explorer. +It supports the following formats out-of-the-box:

+ +

File Tree To Text Gif

+

Furthermore it allows you also to create custom directory tree output formats or changes the defaults to satisfy your custom needs.

+

Check out the official documentation on Github or Visual Studio Marketplace.

+`;export{e as default}; diff --git a/assets/2020-02-26-scully-plugin-toc-BTga7qO0.js b/assets/2020-02-26-scully-plugin-toc-BTga7qO0.js new file mode 100644 index 00000000..7c1ccca9 --- /dev/null +++ b/assets/2020-02-26-scully-plugin-toc-BTga7qO0.js @@ -0,0 +1,29 @@ +const e=`--- +title: 'scully-plugin-toc — A Plugin for generating table of contents' +description: 'This plugin for Scully will insert a table of contents (TOC) for your Markdown content automatically' +published: true +author: + name: 'Danny Koppenhagen' + mail: mail@k9n.dev +updated: 2021-12-20 +keywords: + - Angular + - Scully + - SSR + - SSG + - 'JAM Stack' + - TOC +language: en +thumbnail: + header: images/projects/toc.jpg + card: images/projects/toc-small.jpg +--- + +

My Scully.io plugin scully-plugin-toc will insert a table of contents (TOC) for your Markdown content automatically.

+

You need just to define a placeholder at the place where the TOC should appear. +The plugin will generate a TOC for all the headings it will find (you can also specify the level) and then insert the generated TOC at the place where you put the placeholder for it.

+

Check out how to set it up by reading the docs in the Github repository.

+
+

You haven't heard about Scully yet? Check out my article series about the static site generator Scully.

+
+`;export{e as default}; diff --git a/assets/2020-02-angular9-BsHiAmHR.js b/assets/2020-02-angular9-BsHiAmHR.js new file mode 100644 index 00000000..a18f0efc --- /dev/null +++ b/assets/2020-02-angular9-BsHiAmHR.js @@ -0,0 +1,30 @@ +const n=`--- +title: 'Angular 9 ist da! Die wichtigsten Neuerungen im Überblick' +description: 'Am 6. Februar 2020 wurde bei Google in Kalifornien der "rote Knopf" gedrückt: Das lang erwartete neue Release ist da – die neue Major-Version Angular 9.0! Wir werden Ihnen in diesem Artikel die wichtigsten Neuerungen vorstellen.' +published: true +author: + name: Angular Buch Team + mail: team@angular-buch.com +created: 2020-02-10 +updated: 2020-02-10 +publishedAt: + name: angular-buch.com + url: https://angular-buch.com/blog/2020-02-angular9 + logo: https://angular-buch.com/assets/img/brand-400.png + linkExternal: true +keywords: + - Angular + - Angular 9 + - Ivy + - TestBed + - i18n + - SSR + - TypeScript +language: de +thumbnail: + header: images/blog/ng9/angular9.jpg + card: images/blog/ng9/angular9-small.jpg +series: angular-update +--- + +`;export{n as default}; diff --git a/assets/2020-03-12-dotfiles-RIMXoDbX.js b/assets/2020-03-12-dotfiles-RIMXoDbX.js new file mode 100644 index 00000000..b5bd889d --- /dev/null +++ b/assets/2020-03-12-dotfiles-RIMXoDbX.js @@ -0,0 +1,26 @@ +const e=`--- +title: .dotfiles — My default configuration files for macOS +description: I collected all my .bash, .zsh, .vscode, .vim, macOS, homebrew and iterm configuration files in one repository for easily setup a new macOS system with a great developer experience. +published: true +author: + name: Danny Koppenhagen + mail: mail@k9n.dev +updated: 2020-03-12T00:00:00.000Z +keywords: + - zsh + - bash + - vscode + - Visual Studio Code + - vim + - macOS + - iterm + - iterm2 +language: en +thumbnail: + header: images/projects/dotfiles-header.jpg + card: images/projects/dotfiles-header-small.jpg +--- + +

I collected all my .bash, .zsh, .vscode, .vim, macOS, homebrew and iterm2 configuration files in one repository for an easy setup of a new macOS system with and having a great developer experience.

+

Check out the official documentation and all stored configurations on Github.

+`;export{e as default}; diff --git a/assets/2020-03-dig-deeper-into-scully-ssg-CGEsmJ5D.js b/assets/2020-03-dig-deeper-into-scully-ssg-CGEsmJ5D.js new file mode 100644 index 00000000..e2b321af --- /dev/null +++ b/assets/2020-03-dig-deeper-into-scully-ssg-CGEsmJ5D.js @@ -0,0 +1,176 @@ +const e=`--- +title: Dig deeper into static site generation with Scully and use the most out of it +description: 'In this article about Scully, I will introduce some more advanced features. +You will learn how you can setup a custom Markdown module and how you can use AsciiDoc with Scully. +I will guide you through the process of how to handle protected routes using a custom route plugin.' +published: true +author: + name: Danny Koppenhagen + mail: mail@k9n.dev +created: 2020-03-02 +updated: 2021-05-18 +keywords: + - Angular + - Angular CLI + - Angular Schematics + - Scully + - SSR + - SSG + - Server-Side Rendering + - Static Site Generator + - Pre-rendering + - JAM Stack +linked: + devTo: https://dev.to/dkoppenhagen/dig-deeper-into-static-site-generation-with-scully-and-use-the-most-out-of-it-4cn5 + medium: https://danny-koppenhagen.medium.com/dig-deeper-into-static-site-generation-with-scully-and-use-the-most-out-of-it-ac86f216a6a7 +language: en +thumbnail: + header: images/blog/scully/scully-header2.jpg + card: images/blog/scully/scully-header2-small.jpg +series: scully +--- + +

Dig deeper into static site generation with Scully and use the most out of it

+

If you haven't heard about Scully yet, you should first check out my introduction article about it: »Create powerful fast pre-rendered Angular Apps using Scully static site generator«.

+

In my last blog post I gave you a short introduction to Scully and how to easily set up a very simple blogging website that is server-side rendered and ready to be shipped for production. +In the following article I will introduce some more advanced things you can do with Scully. +You will learn how you can setup a custom Markdown module or even use Asciidoc instead of Markdown. +I will guide you through the process of how to handle protected routes using a custom route plugin.

+
+

This blog post is based on versions:

+
@scullyio/ng-lib: 1.1.1
+@scullyio/init: 1.1.4
+@scullyio/scully: 1.1.1
+
+ +

Generate a post with a meta data template

+

As we already created our blogging site using Scully, we want to fill it with content now. +We already learned how we can use the @scullyio/init:post schematic to easily generate a new blog post. +Often posts do not only need the content, but also some meta information like thumbnail or author. +This meta information can be processed by the ScullyRouteService and it will be converted to JSON. +It can be quite handy to always remember to add such information right after creating a new post. +To make things easier we can specify a YAML template file with the meta information that will always be added when creating a new blog post using the schematic, like the following one:

+
description: <fill in a short description for the overview page>
+published: false
+author:
+  name: Danny Koppenhagen
+  mail: mail@k9n.dev
+updated: dd.mm.yyyy
+keywords:
+  - Angular
+language: en
+thumbnail: images/default.jpg
+

We can use the template when calling the @scullyio/init:post schematic:

+
ng g @scullyio/init:post --name="a new post" --meta-data-file=meta.yml
+

When we check our blog directory now we will see that the schematic added our YAML template to the meta data section of the newly created post file a-new-post.md.

+
+

If you have trouble remembering to add the meta-data-file option, just add a script to your package.json without the name option. +When you call the script using npm run <script-name> you will be prompted to input the file name.

+
+

Generate a custom Markdown module

+

Let's assume we want to add another module to our blogging website. +We want to have a projects section in our site that lists some information about current projects we are working on. +Like for our blog section, we want to easily write our content using Markdown. +To do so, we can use the @scullyio/init:markdown schematic:

+
ng g @scullyio/init:markdown --name=projects --slug=projectId --sourceDir=projects --route=projects
+

Let's have a look at the options we set:

+ +
+

Good to know: Under the hood the @scullyio/init:blog schematic just calls @scullyio/init:markdown with default options set. So in fact it's just a shortcut.

+
+

The basic things we need for our projects page are now available. +Let's have a look at it and see if it's working:

+
npm run build                   # Angular build
+npm run scully -- --scanRoutes  # generate static build and force checking new routes
+npm run scully serve            # serve the scully results
+

the initial projects post generated with the Markdown schematic

+

The AsciiDoc File Handler Plugin

+

Scully provides another File Handler Plugin out-of-the-box: The AsciiDoc plugin. +When you want to put the generated post files in a specific directory (not blog), you can define this via the target option.

+
ng g @scullyio/init:post --name="asciidoc example" --target=projects
+

The generated file will be a Markdown file initially. +Let's change the file extension, rename it to *.adoc and add a bit of content after it has been generated:

+
:title: 2020-01-21-projects
+:description: blog description
+:published: false
+
+= 2020-01-21-projects
+
+Let's show some source code!
+
+.index.html
+[#src-listing]
+[source,html]
+----
+<div>
+  <span>Hello World!</span>
+</div>
+----
+

And finally we build our project again and see if it works:

+
npm run build                   # Angular build
+npm run scully -- --scanRoutes  # generate static build and force checking new routes
+npm run scully serve            # serve the scully results
+

Great, as we can see: AsciiDoc files will be rendered as well out-of-the-box.

+

a scully rendered asciidoc file

+

You can also define your own File Handler Plugin for other content formats. +Check out the official docs for it to see how it works.

+

Protect your routes with a custom plugin

+

Let's assume we have a protected section at our site that should only be visible for specific users. +For sure we can secure this space using an Angular Route Guard that checks if we have the correct permissions to see the pages.

+

Scully will by default try to identify all available app routes. +In fact it will also try to visit the protected pages and pre-render the result. +When Scully tries to do this, the Angular route guard kicks in and redirects us to an error or login page. +The page shown after the redirect is the page Scully will see and render. +This default behaviour is pretty okay, as Scully won't expose any protected information by creating static content from the protected data. +However, on the other hand, we don't want to pre-render such pages at all, so we need a way to tell Scully what pages to exclude from the rendering. +Another scenario you can imagine is when a page displays a prompt or a confirm dialog. +When Scully tries to render such pages it runs into a timeout and cannot render the page:

+
...
+Puppeteer error while rendering "/secure" TimeoutError: Navigation timeout of 30000 ms exceeded

To prevent Scully from rendering specific pages we can simply create a custom plugin that will skip some routes.

+

To do so, we will create a new directory extraPlugin with the file skip.js inside:

+
const { registerPlugin, log, yellow } = require('@scullyio/scully');
+
+function skipPlugin(route, config = {}) {
+  log(\`Skip Route "\${yellow(route)}"\`);
+  return Promise.resolve([]);
+}
+
+const validator = async conf => [];
+registerPlugin('router', 'skip', skipPlugin, validator);
+module.exports.skipPlugin = skipPlugin;
+

We will import the function registerPlugin() which will register a new router plugin called skip. +The last parameter is the plugin function skipPlugin() that will return a promise resolving the routes. +It receives the route and options for the route that should be handled. +We will simply return an empty array as we won't proceed routes handled by the plugin. +We can use the exported log() function from Scully to log the action in a nice way.

+

Last but not least we will use the skip plugin in our scully.scully-blog.config.ts configuration file and tell the plugin which routes to handle:

+
import { ScullyConfig } from '@scullyio/scully';
+
+require('./extraPlugin/skip');
+
+export const config: ScullyConfig = {
+  // ...
+  routes: {
+    // ...
+    '/secure': { type: 'skip' },
+  }
+};
+

Checking the plugin by running npm run scully will output us the following result:

+
 ☺   new Angular build imported
+ ☺   Started servers in background
+Finding all routes in application.
+...
+Skip Route "/secure"
+...

Perfect! As you can see the route is ignored by Scully now.

+

You can have a look at a more detailed example in my scully-blog-example repository.

+

Conclusion

+

In this follow-up article you learned how to add a custom Markdown module to Scully and how you can use the AsciiDoc plugin for rendering adoc files. +What is more, you can now handle protected routes by using a custom Scully route plugin.

+

Thank you

+

Special thanks go to Jorge Cano from the Scully core team and Ferdinand Malcher for revising this article.

+`;export{e as default}; diff --git a/assets/2020-04-09-ngx-semantic-version-xRBVxcYT.js b/assets/2020-04-09-ngx-semantic-version-xRBVxcYT.js new file mode 100644 index 00000000..4c52ce6b --- /dev/null +++ b/assets/2020-04-09-ngx-semantic-version-xRBVxcYT.js @@ -0,0 +1,37 @@ +const n=`--- +title: ngx-semantic-version — An Angular Schematic to enhance your release workflow +description: Simply add and configure commitlint, husky, commitizen and standard-version for your Angular project by using Angular Schematics +published: true +author: + name: Danny Koppenhagen + mail: mail@k9n.dev +updated: 2020-04-09 +keywords: + - Angular + - Angular CLI + - Angular Schematics + - release + - commit + - commitlint + - husky + - commitizen + - standard-version + - semver + - Semantic Version + - Conventional Commits + - Conventional Changelog +language: en +thumbnail: + header: images/projects/semver-header.jpg + card: images/projects/semver-header-small.jpg +--- + +

My project ngx-semantic-version is an Angular Schematic that will add and configure commitlint, commitizen, husky and standard-version to enforce commit messages in the conventional commit format and to automate your release and Changelog generation by respecting semver. +All you have to do for the setup is to execute this command in your Angular CLI project:

+
ng add ngx-semantic-version
+
+ +

commitizen

+

Check out my article ngx-semantic-version: enhance your git and release workflow to learn more about it.

+

The official documentation for ngx-semantic-version can be found on Github or NPM.

+`;export{n as default}; diff --git a/assets/2020-05-22-vscode-code-review-M0aEEAaq.js b/assets/2020-05-22-vscode-code-review-M0aEEAaq.js new file mode 100644 index 00000000..71e184f2 --- /dev/null +++ b/assets/2020-05-22-vscode-code-review-M0aEEAaq.js @@ -0,0 +1,39 @@ +const e=`--- +title: 'vscode-code-review — Create exportable code reviews in vscode' +description: 'Create exportable code reviews in Visual Studio Code including automatic file and line references' +published: true +author: + name: Danny Koppenhagen + mail: mail@k9n.dev +updated: 2020-05-22T00:00:00.000Z +keywords: + - code review + - vscode + - Visual Studio Code +language: en +thumbnail: + header: images/projects/code-review.jpg + card: images/projects/code-review-small.jpg +--- + +

It my job it happens from time to time that customers asking me about doing an expert review by checking their source code. +Sometimes I will get access to their git repository but mostly with very limited permissions (read access). +But it can happen also that I will just receive a *.zip file containing all the source code.

+

When I was working on a review I had always to copy the file and line references my comments were related to — which can be quite exhausting. +In the end, everything was landing in a good old Excel sheet which isn't leading in a good-looking report.

+

Another way to create a review would be to add code comments and create a pull/merge request at customers site. +But in the end all my comments would be part of the code and probably never cleaned up.

+

So I was looking for a way to easily create code reviews that can be exported and delivered to the customer without copying file and line references manually. +As I am used to work with Visual Studio Code, I thought to search for some appropriate extensions but I wasn't successful. +In the end I decided: let's take the scepter and develop an extension by myself that will satisfy my and probably also your needs.

+

The result is my extensions vscode-code-review.

+

Features

+

You can simply install the extension via the Visual Studio Code Marketplace.

+

Once installed, it will add a new menu option called 'Code Review: Add Note' when being on an active file. +When you click this menu, a view opens to the right side with a form where you can enter your notes. The notes will be stored by default in the file code-review.csv on the top level of your project. +It includes automatically the relative file path as well as the cursor position and/or the marked text range(s).

+

When you finished your review, you can either process the .csv file by yourself and import it somewhere or generate an HTML report by using the extension (see GIF below).

+

Demo

+

You are also able to use an adjusted template for report generation. +Check out all the options in my related Github repository.

+`;export{e as default}; diff --git a/assets/2020-06-angular10-D5EAafI7.js b/assets/2020-06-angular10-D5EAafI7.js new file mode 100644 index 00000000..06c5c29a --- /dev/null +++ b/assets/2020-06-angular10-D5EAafI7.js @@ -0,0 +1,30 @@ +const n=`--- +title: 'Angular 10 ist da! Die wichtigsten Neuerungen im Überblick' +description: 'Nach nur vier Monaten Entwicklungszeit wurde am 24. Juni 2020 die neue Major-Version Angular 10.0 veröffentlicht! Wir werden Ihnen in diesem Artikel die wichtigsten Neuerungen vorstellen.' +published: true +author: + name: Angular Buch Team + mail: team@angular-buch.com +created: 2020-06-29 +updated: 2020-06-29 +publishedAt: + name: angular-buch.com + url: https://angular-buch.com/blog/2020-06-angular10 + logo: https://angular-buch.com/assets/img/brand-400.png + linkExternal: true +keywords: + - Angular + - Angular 10 + - TypeScript + - TSLint + - Browserslist + - tsconfig + - CommonJS +language: de +thumbnail: + header: images/blog/ng10/angular10.jpg + card: images/blog/ng10/angular10-small.jpg +series: angular-update +--- + +`;export{n as default}; diff --git a/assets/2020-08-my-development-setup-DkTVmgfw.js b/assets/2020-08-my-development-setup-DkTVmgfw.js new file mode 100644 index 00000000..2b28adda --- /dev/null +++ b/assets/2020-08-my-development-setup-DkTVmgfw.js @@ -0,0 +1,572 @@ +const e=`--- +title: 'My Development Setup' +description: 'In this article I will present you what tools I am using during my day-to-day development. Also I will show you a list of extensions and their purpose that help me (and probably you too!) to be more productive.' +published: true +author: + name: Danny Koppenhagen + mail: mail@k9n.dev +created: 2020-08-27 +updated: 2022-07-17 +keywords: + - Angular + - Vue.js + - Console + - Development + - Setup + - VSCode + - 'Visual Studio Code' + - 'Google Chrome' + - Extension + - macOS +language: en +thumbnail: + header: images/blog/dev-setup/dev-setup-header.jpg + card: images/blog/dev-setup/dev-setup-header-small.jpg +linked: + devTo: https://dev.to/dkoppenhagen/my-development-setup-1ne2 +--- + +

In the following article I will present you what tools I am using during my day-to-day development workflow. +Also, I will show you a list of extensions and their purpose that will help me and probably you too being more productive.

+

Introduction

+

As a developer I always give my best to be productive, to write good and well documented source code and to share my knowledge. +For all this, I use great tools and extensions that will help me to get the most of it and working faster and cleaner. +Those tools and extensions help me during my everyday life as a developer for:

+ +

Both at work and in my free time I am working on an Apple MacBook Pro. +But most of the tools and software listed here is available for Windows, macOS and Linux distributions.

+

Software

+

Let's get started with some basic software that I use.

+

iTerm2

+

The default Terminal app for macOS fulfills its purpose but for being more productive I can recommend the terminal application iTerm2.

+

I am using iTerm2 since a long time and it's a great tool with lots of configuration options. +You can create tabs, use profiles and customize styles and layouts.

+

Screenshot: iTerm2

+

Cakebrew – macOS only

+

If you are on a Mac, you probably know Homebrew – the package manager for macOS. +If you don't know Homebrew: You should definitely check it out. +Personally I prefer to install most of my Software via Homebrew as I can easily manage updates later without having to manually download the packages. +However, since I don't remember all Homebrew commands all the time and to get an overview of the installed packages, I use a Homebrew GUI called CakeBrew. +This lets me easily update and manage my installed Homebrew packages.

+

Screenshot: CakeBrew

+

NVM

+

Working on multiple projects requires sometimes different environments. +As a web developer Node.js is essential and should always be up-to-date but sometimes you need to use different versions of Node.js and NPM for different projects. +NVM (Node Version Manager) let's you easily install and switch between multiple Node.js Versions. +My recommendation is also to check-in the .nvmrc file in every project to help other team members to use the right version of Node.js automatically.

+

Fork

+

As a developer, version control with Git is essential for your development workflow. +Personally I do all of the basic operations via the command line, like creating commits, adding files to the staging area, pulling and pushing. +However, there are some things where I prefer to use a GUI for assistance:

+ +

Fork is a very nice, clean and powerful Git GUI that helps you to control Git in an easy and interactive way.

+

Screenshot: Fork

+

Visual Studio Code

+

In the last years, Microsoft has improved its free IDE Visual Studio Code a lot, and with every frequent release it gets even more powerful. +One of the things that makes VSCode such a great IDE is the wide range of available extensions and plugins. +VSCode is a very universal and adoptable IDE which has great support and tools for lots of programming languages. +So it doesn't matter if you develop a web application, a mobile app using e.g. Flutter, a C# or a Python app: You can use VSCode for all of that and you don't need to get start using a new specific IDE for each and every specific language.

+

Screenshot: VSCode

+

Later in this article, I will present you a list of my favorite extensions for VSCode.

+

Chrome

+

As a web developer, a modern browser like Google Chrome is essential. +In my opinion the developer and debugging tools are more mature compared to Firefox. +Chrome is also very up-to-date in terms of the latest JavaScript features and it has a wide range of extensions you can install that will help you to even be more productive developing web applications.

+

Screenshot: Google Chrome

+

A list of my favorite extensions for Google Chrome can be found further down in this article.

+

Insomnia

+

Insomnia is a great and simple tools that's very easy to use when you want to interact with REST or GraphQL endpoints. It has a very simple UI but it's powerful nonetheless. +You can call endpoints, check their responses and also create batch requests or save your requests for using them later again. +I personally prefer Insomnia over Postman which I used before and which is also very powerful. +However, in my opinion the UI of Postman got a bit confusing during the last years by introducing new features.

+

Screenshot: Insomnia

+

draw.io

+

From time to time as a developer you need to illustrate things and flows. +For this, I mostly use draw.io. It's available as a web application but also as an installable desktop version. +Draw.io provides a lot of basic icons and vector graphics for network illustrations, UML, diagrams, engineering icons for circuits and much more.

+

Screenshot: draw.io

+

RecordIt

+

When I develop extensions for VSCode or other tools I always give my best to present users how to use these tools. +The best way to present things is in a visual way as a screenshot or a GIF / video screencast. +This supplements the textual description and thus, can be processed more easily by users. +RecordIt lets you record your screen and create small screencasts that can be shared via a simple URL as a video or GIF.

+

Screenshot: RecordIt

+

KeyCastr

+

Recording screencasts can be supplemented by displaying the keys you are pressing during the recording. +This is a great way to present keyboard shortcuts without having to manually explain which keys you're using. +For that purpose I use the tool KeyCastr.

+

Screenshot: KeyCastr

+

Visual Studio Code Extensions

+

Since Visual Studio Code Version 1.48.0 the Feature Settings Sync became stable and available for everyone. +This feature allows you to sync your settings between different installations of VSCode using your Microsoft or GitHub account. +When you've installed VSCode on multiple machines and you always want to have the instances in sync, you should definitely set up this feature.

+

The next part is all about the VSCode extensions I am using so let's walk quickly over the plugins I've installed on my VSCode instances:

+

Appearance

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Bracket Pair Colorizer 2
This tool will colorize opening and closing brackets in different colors, so you get a better overview in your code.
Note: Visual Studio Code now includes native support for bracket pair colorization which is way faster than using the extension.
Color Highlight
After installing this extension it will highlight all valid web color values with their appropriate color so that you can directly see the color.
Image Preview
After installing this plugin, you will see a little preview image right next to your code line number when a source code line contains a valid image file path.
Indented Block Highlighting
This extensions highlights the intented area that contains the cursor.
Indent Rainbow
This plugin colorizes the different indentation levels. This is especially helpful when writing YAML files or Python applications where the indentations play an important role for the code semantics.
Log File Highlighter
If you ever have to investigate a bunch of log files you will love this plugin. It highlights log information like the severity or timestamps so it will be easier for you to inspect them.
Peacock
Peacock is great when you are working with multiple VSCode windows at the same time. You can simply colorize them to quickly find out which project is currently open.
Rainbow CSV
This extension will colorize each column in a CSV file in a different color, so you can better read the file contents.
TODO Highlight
This extension will highlight TODO, FIXME and some other annotations within comments in your code.
+ + +

Docs

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
AsciiDoc
The AsciiDoc Plugin gives you syntax highlighting, a preview and snippets for the AsciiDoc format.
Code Review
This is an extension I wrote by myself. It allows you to create expert reviews / code reviews for a workspace that can be exported as a formatted HTML report or importable CSV/JSON file.
This extension is pretty helpful if you are doing for example one-time code reviews for customers or probably students but you don't have direct access to a Gitlab or GitHub repository where you can directly add comments in a merge/pull request.
emojisense
I personally like using emojis and I use them in README.md files for my open source projects at GitHub. However, one thing I always have to look up are the emjoykey for the supported GitHub emojis. With this extension I have an autocompletion and I can search for them.
File Tree to Text Generator
An extension I created by myself: It lets you generate file / directory trees for Markdown, LaTeX, ASCII or even a custom format right from your VSCode file explorer.
Markdown Preview Mermaid support
Have you ever visualized things in your README.md file? Thanks to Mermaid.js you can easily create beautiful flowcharts, sequence diagrams and more. This plugin enables the preview support in VSCode for mermaid diagrams embedded in your markdown files.
Markdown All in One
This extension enables some great helpful features when writing Markdown files such as table of contents generation, auto-formatting the document and it gives you a great autocompletion feature.
+ + +

Graphics

+ + + + + + + + + + + + + + + +
Draw.io Integration
This extension integrates the draw.io editor in VSCode. You can directly edit draw.io associated files.
SVG
This extension will give you SVG code highlight and preview support. You can even export the SVG directly from the preview as a *.png graphic.
+ + +

JavaScript / TypeScript

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ESLint
This extensions detects your ESLint configuration for code conventions and displays the violations. Furthermore, it offers you to quick fix detected violations against some rules.
Import Cost
With this plugin installed, projects using webpack will be analyzed for their imports and the bundle size they will have. The resulting size is displayed right next to the import. This helps you to identify very big imported libs.
JavaScript (ES6) code snippets
This extension brings some great snippets for JavaScript / TypeScript like a short snippet clg for writing console.log() or imp for import <foo> from '<foo>';.
Jest
The Jest extension gives you auto completion and color indicators for successful / failing Jest tests.
Vitest
A Test Explorer and helper for Tests using Vite and Vitest.
JS Refactor
This extension gives you a lot of JavaScript refactoring utilities like convert to arrow function or rename variable.
LintLens
With this extension, metadata and usage information for ESLint rules will be displayed beside each rule.
npm
This extension let's you run your NPM scripts right from your package.json file.
Sort JSON Objects
With this extension you can simply right click on a JSON object and sort the items inside.
Visual Studio IntelliCode
Installing this extension will give you an even better IntelliSense which is AI-assisted.
Version Lens
With Version Lens you can directly see the currently installed and the latest versions of a package in your package.json file.
+ + +

HTML/Handlebars/CSS/SASS/SCSS/LESS

+ + + + + + + + + + + + + + + + + + + + + + + +
CSS Peak
With this extension you can see and edit your CSS definitions from a related stylesheet directly from your HTML files.
IntelliSense for CSS class names in HTML
This plugin gives you auto suggestions for CSS class names in your HTML templates.
Web Accessibility
Using this plugin helps you to find accessibility violations in your markup and displays hints for WAI-ARIA best practices.
stylelint
Lint CSS/SCSS/SASS/Less Style definitions
+ + +

Angular

+ + + + + + + + + + + + + + + +
Angular Language Service
When you are developing an Angular app, this extension is essential: It gives you quick info, autocompletion and diagnostic information.
Angular Follow Selector
This extensions allows you to click on Angular selectors in the template and get redirected to their definition in the component.
+ + +

Vue.js

+ + + + + + + + + + + + + + + + + + + +
Volar
Volar gives you tooling for Vue3 development.
Vetur
Vetur gives you tooling for Vue2 development.
Vue Peak
This extension gives you Go To Definition and Peek Definition support for Vue components.
+ + +

Handlebars

+ + + + + + + + + + + + + + + +
Handlebars
This extension provides you with code snippets for Handlebars files as well as with syntax highlighting.
Handlebars Preview
With the Handlebars Preview extension you can put a JSON file right next to your Handlebars template and the plugin will inject the data into the template to display a preview of how it would look like.
+ + + +

Git

+ + + + + + + + + + + + + + + +
Git Temporal
Git Temporal is a great plugin for interactively searching in your git history based on a timeline. You can even mark ranges on a timeline to see all the changes in between the chosen time range.
GitLens
Show the authorship of code lines right next to them. This can help you a lot if you may not understand some part of the code: just check out who created it and ask for support.
+ + +

Other

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Auto Correct
You may be like me and there are some words you'll always spell wrong or you making the same typo all the time. One of my common mistakes is to write seperate instead of separate. With this plugin you can define such words or patterns that will be automatically replaced with the correctly spelled word.
Code Spell Checker
With this extension your code is checked for common typos and such unknown words will be highlighted as you may know it from Microsoft Word or other text editor software.
DotENV
This extensions highlights the configuration in .env files
Excel Viewer
If you open and edit CSV or Excel files from VSCode, you will probably need this extension. This allows you to display the data in a formatted table that you can sort and filter.
Debugger for Chrome
This debugger extensions allows you to debug your JavaScript code in the Google Chrome browser from your code editor.
Docker
The Docker extension easily lets you create, manage, and debug your applications containerized with Docker. It also gives you IntelliSense for your related Docker configuration files.
EditorConfig
This plugin will check your workspace for an EditorConfig configuration file and applies these settings to your workspace.
Live Server
With the Live Server extension you can open an HTML file in the browser and the server watches for changes and refreshes the Browser preview.
Nx Console
This plugin gives you a UI for Nx Monorepos and the Nx CLI.
Path Intellisense
This plugin brings you autocompletion for filenames.
Polacode
With Polacode you can mark code lines and create screenshots from the selection. This is great for e.g. presentations or sharing stuff on Twitter.
Prettier
Prettier is – in my opinion – the best code formatter especially when working with JavaScript / TypeScript. The extension for Prettier will allow you to set up Prettier as default formatter for VSCode or just for specific programming languages.
{
"editor.defaultFormatter": "esbenp.prettier-vscode",
"[javascript]": {
"editor.defaultFormatter": "esbenp.prettier-vscode"
}
}
Regexp Explain
Running this extension will let you explore regular expressions visually in a realtime preivew editor
Visual Studio Code Commitizen Support
This plugin adds a command panel for creating Conventional Commits with support.
vsc-nvm
Automatically use the right Node.js version form the NVM.
YAML
This extension gives you a comprehensive YAML language support.
Zeplin
If you work with Zeplin, this official plugin provides you with quick access to your designs.
httpYac
This is a very powerful tool to place directly executable API call snippets next to your code. You can even use environment variables for dynamic replacement of part of URLs, headers oder the body of an HTTP call.
+ + +

Google Chrome Extensions

+

Google Chrome is great and it already brings a lot of possibilities that help developers to improve their web apps. +However, there are some really great plugins I am using that I can recommend:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Angular DevTools
A must have addon for all Angular Developers that will help you profile and debug and optimize your Angular app.
Vue.js DevTools
This extension helps you to profile, debug and optimize your Vue app.
Aqua Buddy
Stay hydrated by using Aqua Buddy! It will notify you to drink some water frequently.
Axe
Axe helps you to improve the grade of accessibility of your site.
Chrome Capture
This extension lets you record and share screenshots, videos and GIFs from a website.
Chrome Regex Search
Ever wanted to search on a site for more complex expressions? With this extension you can search a sites content by entering regular expressions.
Export Selective Bookmarks
This extensions lets you select specific directories and bookmarks from all your bookmarks to export them. Perfect if you want to help colleagues to onboard in your team or project.
JSON Viewer Awesome
This extension will automatically detect and format JSON files once you open them by calling the URL.
Lighthouse
Lighthouse analyzes your site for performance, accessibility and other common things and gives you a site score as well as some useful information how to improve your site.
Pesticide
Activating these extension lets you outline all elements on a site so that you can easier analyze paddings, margins and borders.
Web Developer
With this extension you will get a toolbox for website manipulation and testing tools. You can e.g. easily disable JavaScript or styles to see how your site behaves.
+ + + +

Scripts and other tools

+

Dotfiles

+

Personally, I like to keep my Mac up-to-date and therefore I will install most of my software via the Homebrew package manager. +Also, to be more efficient I use the oh-my-zsh framework for managing my shell configuration. +Most of my configurations is also published in my GitHub repository called .dotfiles.

+

Exclude all node_modules from TimeMachine backups (macOS only)

+

One thing I learned during my career is: backup, backup, backup. +It's better to have one more backup than data loss. +Fortunately, on a macOS system it's possible to set up Apple's TimeMachine for creating continuous system backups. +However, backing up everything takes a lot of time and there are things you don't need to back up like directories syncing with a cloud provider like Dropbox, Sharepoint, etc. +Those directories can easily be excluded from the TimeMachine backup by configuration. +This will keep the backups smaller and also in case of a restore, the system ready to use after a much shorter time. +But what about node_modules directories? +For sure: You can exclude them in the same way, but this is very sophisticated and you always need to remember this step once you create a new project. +Therefore, I am using a simple script. +It looks for all node_modules directories in my development directory (~/dev in my case) and excludes them from the backup:

+
#!/bin/bash
+# exclude all \`node_modules\` folders within the dev directory
+find "$HOME/dev" -name 'node_modules' -prune -type d -exec tmutil addexclusion {} \\; -exec tmutil isexcluded {} \\;
+echo "Done. The excluded files won't be part of a time machine backup anymore."
+

To be sure the script updates the list of excluded directories frequently, I added a cronjob:

+
crontab -e
+

The actual cronjob config is the following:

+
0 12 * * *  cd $HOME/dev/.dotfiles && ./time-machine-excludes.sh # every day at 12:00
+

Feedback

+

Now as you know my dev setup, it's your turn! Is there any great tool or plugin you can recommend? +Then just contact me via E-Mail or Bluesky and let me know!

+

Thank you

+

Special thanks goes to Ferdinand Malcher for revising this article.

+
+ +

Photo by Todd Quackenbush on Unsplash

+`;export{e as default}; diff --git a/assets/2020-09-12-scully-plugin-mermaid-H0uwjVS8.js b/assets/2020-09-12-scully-plugin-mermaid-H0uwjVS8.js new file mode 100644 index 00000000..3c43b3d7 --- /dev/null +++ b/assets/2020-09-12-scully-plugin-mermaid-H0uwjVS8.js @@ -0,0 +1,64 @@ +const e=`--- +title: 'scully-plugin-mermaid — A PostRenderer Plugin for Mermaid' +description: 'Add a Scully.io PostRenderer plugin for Mermaid.js graphs, charts and diagrams embedded in Markdown files.' +published: true +author: + name: 'Danny Koppenhagen' + mail: mail@k9n.dev +updated: 2021-12-20 +keywords: + - Angular + - Scully + - SSR + - SSG + - JAM Stack + - Mermaid +language: en +thumbnail: + header: images/projects/mermaid.jpg + card: images/projects/mermaid-small.jpg +--- + +

My Scully.io plugin scully-plugin-mermaid will provide a PostRenderer for Mermaid.js graphs, charts and diagrams embedded in Markdown files.

+

With this PostRenderer you can write Mermaid.js syntax inside code snippets in your Markdown files that will be rendered by Scully and post-rendered by Mermaid.js. +So in fact descriptions like the following in your Markdown files will be converted into SVG graphics:

+
\`\`\`mermaid
+sequenceDiagram
+    Alice ->> Bob: Hello Bob, how are you?
+    Bob-->>John: How about you John?
+    Bob--x Alice: I am good thanks!
+    Bob-x John: I am good thanks!
+    Note right of John: Some note.
+
+    Bob-->Alice: Checking with John...
+    Alice->John: Yes... John, how are you?
+\`\`\`
+ +

The above example will result in a graphic like this one:

+
%%{
+  init: {
+    'theme': 'base',
+    'themeVariables': {
+      'primaryColor': '#2d2d2d',
+      'primaryTextColor': '#fff',
+      'primaryBorderColor': '#ffffff',
+      'lineColor': '#F8B229',
+      'secondaryColor': '#006100',
+      'tertiaryColor': '#ffffff'
+    }
+  }
+}%%
+sequenceDiagram
+    Alice ->> Bob: Hello Bob, how are you?
+    Bob-->>John: How about you John?
+    Bob--x Alice: I am good thanks!
+    Bob-x John: I am good thanks!
+    Note right of John: Some note.
+
+    Bob-->Alice: Checking with John...
+    Alice->John: Yes... John, how are you?
+

Check out how to set it up by reading the docs in the Github repository.

+
+

You haven't heard about Scully yet? Check out my article series about the static site generator Scully.

+
+`;export{e as default}; diff --git a/assets/2020-09-angular-schematics-common-helpers-DQZx-Np-.js b/assets/2020-09-angular-schematics-common-helpers-DQZx-Np-.js new file mode 100644 index 00000000..cbd7e7f4 --- /dev/null +++ b/assets/2020-09-angular-schematics-common-helpers-DQZx-Np-.js @@ -0,0 +1,809 @@ +const s=`--- +title: 'Speed up your Angular schematics development with useful helper functions' +description: 'Angular CLI schematics offer us a way to add, scaffold and update app-related files and modules. In this article I will guide you through some common but currently undocumented helper functions you can use to achieve your goal.' +published: true +author: + name: 'Danny Koppenhagen' + mail: mail@k9n.dev +created: 2020-09-14 +updated: 2021-05-19 +publishedAt: + name: inDepth.dev + url: https://indepth.dev/speed-up-your-angular-schematics-development-with-useful-helper-functions + logo: images/InDepthdev-white.svg +keywords: + - Angular + - 'Angular CLI' + - Schematics +language: en +thumbnail: + header: images/blog/schematics-helpers/schematics-helpers.jpg + card: images/blog/schematics-helpers/schematics-helpers-small.jpg +linked: + devTo: https://dev.to/dkoppenhagen/speed-up-your-angular-schematics-development-with-useful-helper-functions-1kb2 +--- + +

Angular CLI schematics offer us a way to add, scaffold and update app-related files and modules. However, there are some common things we will probably want integrate in our schematics: updating your package.json file, adding or removing an Angular module or updating component imports.

+

Currently, the way of authoring an Angular Schematic is documented on angular.io. +However, there is one big thing missing there: the way of integrating typical and repeating tasks. +The Angular CLI itself uses schematics for e.g. generating modules and components, adding imports or modifying the package.json file. +Under the hood each of the schematics uses some very common utils which are not yet documented but available for all developers anyway. +In the past, I've seen some Angular CLI Schematic projects where people were trying to implement almost the same common util methods on their own. +However, since some of these are already implemented in the Angular CLI, I want to show you some of those typical helpers that you can use for you Angular CLI Schematic project to prevent any pitfalls.

+

⚠️ Attention: not officially supported

+

The helper functions I present you in this article are neither documented nor officially supported, and they may change in the future. +Alan Agius, member of the Angular CLI core team replied in a related issue (#15335) for creating a public schematics API reference:

+
+

[...] those utils are not considered as part of the public API and might break without warning in any release.

+
+

So, there are plans to provide some utilities via a public API but this is still in the planning stage. +While things evolve, it's my intention to keep this article as up-to-date as possible.

+
+

The following Angular CLI schematics util functions are based on the Angular CLI version 12.0.0.

+
+

If you use these functions and they will break in the future, you can check out the source code changes for the utility functions and adjust your code.

+

🕹 Examples and playground on GitHub

+

To follow and try out the examples I present you in this article, I prepared a playground repository on GitHub. +Clone this repo and check out the README.md inside to get started with the playground. 🚀

+

Create an Angular schematics example project

+

First things first: We need a project where we can try things out. +You can either use an existing schematics project or simply create a new blank one:

+
npx @angular-devkit/schematics-cli blank --name=playground
+
+

If you are not familar with the basics of authoring schematics, I recommend you to read the Angular Docs and the blog post "Total Guide To Custom Angular schematics" by Tomas Trajan first as well as the article series "Angular Schematics from 0 to publishing your own library" by Natalia Venditto first.

+
+

After setting up the new blank project we should have this file available: src/playground/index.ts.

+
import { Rule, SchematicContext, Tree } from '@angular-devkit/schematics';
+
+export function playground(_options: any): Rule {
+  return (tree: Tree, _context: SchematicContext) => {
+    console.log('schematic works');
+    return tree;
+  };
+}
+

This is the base for the following examples and explanations. +Please make sure that you can execute the blank schematic by calling it on the console:

+
npx @angular-devkit/schematics-cli .:playground
+

or if you installed the schematics CLI globally via npm i @angular-devkit/schematics-cli:

+
schematics .:playground
+

The . refers to the current directory where our schematics project lives.

+

Check out the basic example in the playground repository on GitHub

+

Basic types

+

In case you are not familiar with the structure of schematics, I will just explain some very basic things shortly:

+ +

Install the helpers from @schematics/angular

+

A second thing we need to do is to install the package @schematics/angular which contains all the utils we need for the next steps. +This package contains all the schematics the Angular CLI uses by itself when running commands like ng generate or ng new etc.

+
npm i --save @schematics/angular
+

Changing the package.json: Get, Add and Remove (dev-, peer-) dependencies

+

A very common thing when authoring a schematic is adding a dependency to the package.json file. +Of course, we can implement a function that parses and writes to/from our JSON file. +But why should we solve a problem that's already solved?

+

For this, we can use the functions provided by @schematics/angular/utility/dependencies to handle dependency operations. +The function addPackageJsonDependency() allows us to add a dependency object of type NodeDependency to the package.json file. +The property type must contain a value of the NodeDependencyType enum. +Its values represent the different sections of a package.json file:

+ +

The first parameter to this util function is the Tree with all its files. +The function will not just append the dependency to the appropriate section, it will also insert the dependency at the right position, so that the dependencies list is ordered ascending by its keys.

+

We can use the getPackageJsonDependency() function to request the dependency configuration as a NodeDependency object. +The good thing here is: We don't need to know in which of the sections a dependency is located. It will look up the dependency in sections of the package.json file: dependencies, devDependencies, peerDependencies and optionalDependencies.

+

The third function I want to show is removePackageJsonDependency(). +Just like getPackageJsonDependency(), it can be called with a Tree and the package name and it will remove this dependency from the package.json file.

+

By default, all these functions will use the package.json file in the root of the tree, but we can pass a third parameter containing a specific path to another package.json file.

+

Last but not least we don't want our users to manually run npm install on the console after adding dependencies. +Therefore, we can add a new NodePackageInstallTask via the addTask method on our context.

+
import { Rule, SchematicContext, Tree } from '@angular-devkit/schematics';
+import { NodePackageInstallTask } from '@angular-devkit/schematics/tasks';
+import {
+  NodeDependency,
+  NodeDependencyType,
+  getPackageJsonDependency,
+  addPackageJsonDependency,
+  removePackageJsonDependency,
+} from '@schematics/angular/utility/dependencies';
+
+export function playground(_options: any): Rule {
+  return (tree: Tree, context: SchematicContext) => {
+    const dep: NodeDependency = {
+      type: NodeDependencyType.Dev,
+      name: 'moment',
+      version: '~2.27.0',
+      overwrite: true,
+    };
+
+    addPackageJsonDependency(tree, dep);
+    console.log(getPackageJsonDependency(tree, 'moment'))
+    // { type: 'devDependencies', name: 'moment', version: '~2.27.0' }
+
+    removePackageJsonDependency(tree, 'protractor');
+    console.log(getPackageJsonDependency(tree, 'protractor'))
+    // null
+
+    context.addTask(new NodePackageInstallTask(), []);
+
+    return tree;
+  };
+}
+

To really check that the NodePackageInstallTask is properly executed, you need to disable the schematics debug mode that's enabled by default during development and local execution:

+
schematics .:playground --debug=false
+ +

Add content on a specific position

+

Sometimes we need to change some contents of a file. +Independently of the type of a file, we can use the InsertChange class. +This class returns a change object which contains the content to be added and the position where the change is being inserted.

+

In the following example we will create a new file called my-file.extension with the content const a = 'foo'; inside the virtual tree. +First, we will instantiate a new InsertChange with the file path, the position where we want to add the change and finally the content we want to add. +The next step for us is to start the update process for the file using the beginUpdate() method on our tree. +This method returns an object of type UpdateRecorder. +We can now use the insertLeft() method and hand over the position and the content (toAdd) from the InsertChange. +The change is now marked but not proceeded yet. +To really update the file's content we need to call the commitUpdate() method on our tree with the exportRecorder. +When we now call tree.get(filePath) we can log the file's content and see that the change has been proceeded. +To delete a file inside the virtual tree, we can use the delete() method with the file path on the tree.

+

Let's have a look at an implementation example:

+
import { Rule, SchematicContext, Tree } from '@angular-devkit/schematics/';
+import { InsertChange } from '@schematics/angular/utility/change';
+
+export function playground(_options: any): Rule {
+  return (tree: Tree, _context: SchematicContext) => {
+    const filePath = 'my-file.extension';
+    tree.create(filePath, \`const a = 'foo';\`);
+
+    // insert a new change
+    const insertChange = new InsertChange(filePath, 16, '\\nconst b = \\'bar\\';');
+    const exportRecorder = tree.beginUpdate(filePath);
+    exportRecorder.insertLeft(insertChange.pos, insertChange.toAdd);
+    tree.commitUpdate(exportRecorder);
+    console.log(tree.get(filePath)?.content.toString())
+    // const a = 'foo';
+    // const b = 'bar';
+
+    tree.delete(filePath); // cleanup (if not running schematic in debug mode)
+    return tree;
+  };
+}
+ +

Determine relative path to the project root

+

You might want to determine the relative path to your project root e.g. for using it in a template you want to apply in some location of your application. +To determine the correct relative import path string for the target, you can use the helper function relativePathToWorkspaceRoot().

+
import {
+  Rule,
+  SchematicContext,
+  Tree,
+  url,
+  apply,
+  template,
+  mergeWith
+} from '@angular-devkit/schematics/';
+import { relativePathToWorkspaceRoot } from '@schematics/angular/utility/paths';
+
+export function playground(_options: any): Rule {
+  return (_tree: Tree, _context: SchematicContext) => {
+    const nonRootPathDefinition = 'foo/bar/'; // "./foo/bar" | "foo/bar/" work also
+    const rootPathDefinition = ''; // "." | "./" work also
+    console.log(relativePathToWorkspaceRoot(nonRootPathDefinition));
+    // "../.."
+    console.log(relativePathToWorkspaceRoot(rootPathDefinition));
+    // "."
+
+    const sourceTemplates = url('./files');
+    return mergeWith(
+      apply(
+        sourceTemplates, [
+          template({
+            relativePathToWorkspaceRoot: relativePathToWorkspaceRoot(nonRootPathDefinition),
+          }),
+        ]
+      )
+    );
+  };
+}
+

If you have e.g. a JSON file template in the directory files and you want to insert the path, you can use the helper function in the template as follows:

+
{
+  "foo": "<%= relativePathToWorkspaceRoot %>/my-file-ref.json"
+}
+

For more details about how to use and apply templates in your own schematics, check out the blog post by Tomas Trajan: "Total Guide To Custom Angular schematics" and the article series "Angular Schematics from 0 to publishing your own library" by Natalia Venditto.

+ +

Add TypeScript imports

+

In the previous section we learned how to add content to some file. +However, this way for changing a file isn't the best and only works well when we know the exact position where to add some content. +Now imagine a user changes the format of the file before: This would lead to problems with finding the correct file position.

+

In many cases we want to modify TypeScript files and insert code into them. +And indeed there are also lots of utils that will help us to manage such operations.

+

Imagine you want the schematic to import the class Bar in a specific file from the file bar.ts; +You could simply add the whole import line but there are edge cases: +What if the target file already contains an import or even a default import from bar.ts. +In that case we would have multiple import lines for bar.ts which causes problems.

+

Luckily there is another great helper that takes care of adding imports or updating existing ones. +The function insertImport() needs the source file to update and the path to the file followed by the import name and the file path for the import to be added. +The last parameter is optional – if set to true, the import will be added as a default import.

+
import * as ts from 'typescript';
+import { Rule, SchematicContext, Tree } from '@angular-devkit/schematics/';
+import { insertImport } from '@schematics/angular/utility/ast-utils';
+import { InsertChange } from '@schematics/angular/utility/change';
+
+export function playground(_options: any): Rule {
+  return (tree: Tree, _context: SchematicContext) => {
+    const filePath = 'some-file.ts';
+    const fileContent = \`import { Foo } from 'foo';
+const bar = 'bar;
+\`;
+    tree.create(filePath, fileContent);
+    const source = ts.createSourceFile(
+      filePath,
+      fileContent,
+      ts.ScriptTarget.Latest,
+      true
+    );
+    const updateRecorder = tree.beginUpdate(filePath);
+    const change = insertImport(source, filePath, 'Bar', './bar', true);
+    if (change instanceof InsertChange) {
+      updateRecorder.insertRight(change.pos, change.toAdd);
+    }
+    tree.commitUpdate(updateRecorder);
+    console.log(tree.get(filePath)?.content.toString())
+    return tree;
+  };
+}
+

The example above will add the content import Bar from './bar'; right before the constant. +As we marked it as default import, the import name is not put in curly braces ({ }).

+ +

Update NgModule

+

Now we know how we can modify TypeScript imports using the util functions. +However, just importing something isn't enough in most cases. +There are common things like importing a component and adding it to the NgModule in the declarations array or inserting a module in the imports section. +Luckily, there are some helpers provided for these operations. +These function also based on the insertImport() function, so that they will handle existing file imports and just update the import lists accordingly.

+

Add a declaration to a module

+

The first thing I want to show you is how you can add a component to the declarations of an NgModule. +For this, let's assume you create a schematic that adds a new DashboardComponent to your project. +You don't need to add the import manually and then determine the right place to insert the component to the declarations of the NgModule. +Instead, you can use the addDeclarationToModule() function exported from @schematics/angular/utility/ast-utils.

+

In the following example we will create an AppModule from the moduleContent using ts.createSourceFile() first. +Then we will register the updateRecorder as learned in the examples before. +Now we call the addDeclarationToModule() function with the source file and the module path followed by the name of the component we want to import and the relative path to the module where we can find the component. +As a result it returns us an array of Change objects that contain the positions and the contents for the change. +Finally, we can handle these changes one-by-one by iterating over the array. +For all changes of type InsertChange we can now call the method updateRecorder.insertleft() with the position of the change and the content to be added.

+
import * as ts from 'typescript';
+import { Rule, SchematicContext, Tree } from '@angular-devkit/schematics/';
+import { addDeclarationToModule } from '@schematics/angular/utility/ast-utils';
+import { InsertChange } from '@schematics/angular/utility/change';
+
+export function playground(_options: any): Rule {
+  return (tree: Tree, _context: SchematicContext) => {
+    const modulePath = 'app.module.ts';
+    const moduleContent = \`import { BrowserModule } from '@angular/platform-browser';
+import { NgModule } from '@angular/core';
+import { AppComponent } from './app.component';
+
+@NgModule({
+  declarations: [
+    AppComponent
+  ],
+  imports: [
+    BrowserModule
+  ],
+  providers: [],
+  bootstrap: [AppComponent]
+})
+export class AppModule { }
+\`;
+    tree.create(modulePath, moduleContent);
+
+    const source = ts.createSourceFile(
+      modulePath,
+      moduleContent,
+      ts.ScriptTarget.Latest,
+      true
+    );
+    const updateRecorder = tree.beginUpdate(modulePath);
+    const changes = addDeclarationToModule(
+      source,
+      modulePath,
+      'DashboardComponent',
+      './dashboard.component'
+    ) as InsertChange[];
+    for (const change of changes) {
+      if (change instanceof InsertChange) {
+        updateRecorder.insertLeft(change.pos, change.toAdd);
+      }
+    }
+    tree.commitUpdate(updateRecorder);
+    console.log(tree.get(modulePath)?.content.toString())
+
+    return tree;
+  };
+}
+

When we execute this schematic now, we can see in the log that the following import line has been added to the file:

+
/* ... */
+import { DashboardComponent } from './dashboard.component';
+
+@NgModule({
+  declarations: [
+    AppComponent,
+    DashboardComponent
+  ],
+  /* ... */
+})
+export class AppModule { }
+

NgModule: add imports, exports, providers, and bootstrap

+

Similar to the previous example we can re-export something we imported by using the addExportToModule() function and adding an import to the NgModule by using addImportToModule(). +We can also modify the providers, and bootstrap arrays by using addProviderToModule() and addBootstrapToModule(). +Again, it will take care of all the things necessary such as extending and creating imports, checking for existing entries in the NgModule metadata and much more.

+
/* ... */
+import {
+  addImportToModule,
+  addExportToModule,
+  addProviderToModule,
+  addBootstrapToModule
+} from '@schematics/angular/utility/ast-utils';
+/* ... */
+
+export function playground(_options: any): Rule {
+  return (tree: Tree, _context: SchematicContext) => {
+    /* ... */
+    const exportChanges = addExportToModule(
+      source,
+      modulePath,
+      'FooModule',
+      './foo.module'
+    ) as InsertChange[];
+    const importChanges = addImportToModule(
+      source,
+      modulePath,
+      'BarModule',
+      './bar.module'
+    ) as InsertChange[];
+    const providerChanges = addProviderToModule(
+      source,
+      modulePath,
+      'MyProvider',
+      './my-provider.ts'
+    ) as InsertChange[];
+    const bootstrapChanges = addBootstrapToModule(
+      source,
+      modulePath,
+      'MyComponent',
+      './my.component.ts'
+    ) as  InsertChange[];
+    /* ... */
+    console.log(tree.get(modulePath)?.content.toString())
+    return tree;
+  };
+}
+

Our result will now look like this:

+
import { BrowserModule } from '@angular/platform-browser';
+import { NgModule } from '@angular/core';
+import { AppComponent } from './app.component';
+import { FooModule } from './foo.module';
+import { BarModule } from './bar.module';
+import { MyProvider } from './my-provider.ts';
+import { MyComponent } from './my.component.ts';
+import { BazComponent } from './baz.component.ts';
+
+@NgModule({
+  declarations: [
+    AppComponent
+  ],
+  imports: [
+    BrowserModule,
+    BarModule
+  ],
+  providers: [MyProvider],
+  bootstrap: [MyComponent],
+  exports: [FooModule]
+})
+export class AppModule { }
+

Add route declarations

+

Let's have a look at another common scenario: We want our schematic to insert a route definition to a module that calls RouterModule.forRoot() or .forChild() with a route definition array. +For this, we can use the helper function addRouteDeclarationToModule() which returns a Change object which we need to handle as an InsertChange.

+
import * as ts from 'typescript';
+import { Rule, SchematicContext, Tree } from '@angular-devkit/schematics/';
+import { addRouteDeclarationToModule } from '@schematics/angular/utility/ast-utils';
+import { InsertChange } from '@schematics/angular/utility/change';
+
+export function playground(_options: any): Rule {
+  return (tree: Tree, _context: SchematicContext) => {
+    const modulePath = 'my-routing.module.ts';
+    const moduleContent = \`import { NgModule } from '@angular/core';
+
+    const myRoutes = [
+      { path: 'foo', component: FooComponent }
+    ];
+
+    @NgModule({
+      imports: [
+        RouterModule.forChild(myRoutes)
+      ],
+    })
+    export class MyRoutingModule { }
+\`;
+    tree.create(modulePath, moduleContent);
+
+    const source = ts.createSourceFile(
+      modulePath,
+      moduleContent,
+      ts.ScriptTarget.Latest,
+      true
+    );
+    const updateRecorder = tree.beginUpdate(modulePath);
+    const change = addRouteDeclarationToModule(
+      source,
+      './src/app',
+      \`{ path: 'bar', component: BarComponent }\`
+    ) as InsertChange;
+    updateRecorder.insertLeft(change.pos, change.toAdd);
+    tree.commitUpdate(updateRecorder);
+    console.log(tree.get(modulePath)?.content.toString())
+
+    return tree;
+  };
+}
+

The example above will insert the route definition object { path: 'bar', component: BarComponent } into the myRoutes array by finding the variable associated in forRoot() or forChild().

+ +

Retrieve the Angular workspace configuration

+

Each Angular app lives in an Angular workspace containing an angular.json configuration file. +If we want to get either the path to the workspace configuration file or the configuration from the file itself, we can use the getWorkspacePath() and getWorkspace() functions by passing in the current Tree object.

+
import { Rule, SchematicContext, Tree } from '@angular-devkit/schematics';
+import { getWorkspacePath, getWorkspace } from '@schematics/angular/utility/config';
+
+export function playground(_options: any): Rule {
+  return (tree: Tree, _context: SchematicContext) => {
+    // returns the path to the Angular configuration file
+    // ('/angular.json' or probably \`.angular.json\` for older Angular projects)
+    console.log(getWorkspacePath(tree));
+
+    // returns the whole configuration object from the 'angular.json' file
+    console.log(JSON.stringify(getWorkspace(tree), null, 2));
+  };
+}
+

To try out things locally, we need to execute the schematics from an Angular app root path on our system. +To do so, navigate into an existing Angular app or create a new one for testing purposes. +Then, execute the schematic from there by using the relative path to the src/collection.json file and adding the schematic name after the colon (:).

+
ng new some-test-project --routing  # create a new test project
+cd some-test-project      # be sure to be in the root of the angular project
+# assume the schematics project itself is located relatively to the angular project in '../playground'
+schematics ../playground/src/collection.json:playground # execute the 'playground' schematic
+ +

Get default path for an app inside the workspace

+

An Angular workspace can contain multiple applications or libraries. +To find their appropriate main paths, you can use the helper function createDefaultPath(). +We need to pass in the Tree object and the name of the app or library we want to get the path for.

+
import { Rule, SchematicContext, Tree } from '@angular-devkit/schematics';
+import { createDefaultPath } from '@schematics/angular/utility/workspace';
+
+export function playground(_options: any): Rule {
+  return async (tree: Tree, _context: SchematicContext) => {
+    const defaultPath = await createDefaultPath(tree, 'my-lib');
+    console.log(defaultPath); // '/projects/my-lib/src/lib'
+  };
+}
+

Let's create a new library inside our testing Angular app called my-lib, to try it out:

+
ng g lib my-lib  # create a new library inside the Angular workspace
+# assume the schematics project itself is located relatively to the angular project in '../playground'
+schematics ../playground/src/collection.json:playground # execute the 'playground' schematic
+ +

Call schematics from schematics

+

If you run a schematic, you may come to the point where one schematic should execute another one. +For example: You create schematics for generating a specific component. +You also develop a ng add or ng new schematic to set up things for you and create an example component by default. +In such cases you may want to combine multiple schematics.

+

Run local schematics using the RunSchematicTask

+

First we want to use the RunSchematicTask class to achieve our goal. +Let's say we have a collection file like the following:

+
{
+  "$schema": "../node_modules/@angular-devkit/schematics/collection-schema.json",
+  "schematics": {
+    "ng-add": {
+      "description": "Demo that calls the 'playground' schematic inside",
+      "factory": "./ng-add/index#ngAdd"
+    },
+    "playground": {
+      "description": "An example schematic.",
+      "factory": "./playground/index#playground"
+    }
+  }
+}
+

The factory for ng-add is located in src/ng-add/index.ts. +Then inside this schematic we can call a new RunSchematicTask with the name of the schematic we want to execute and the project name from the Angular workspace. +To really execute the operation we need to pass the task to the context.

+
import { Rule, SchematicContext, Tree } from '@angular-devkit/schematics';
+import { RunSchematicTask } from '@angular-devkit/schematics/tasks';
+
+export function ngAdd(_options: any): Rule {
+  return (tree: Tree, _context: SchematicContext) => {
+    context.addTask(
+      new RunSchematicTask('playground', { project: 'test-workspace' })
+    );
+    return tree;
+  };
+}
+

To check if it works we can fill our playground (src/playground/index.ts) schematic as follows and log the call:

+
import { Rule, SchematicContext, Tree } from '@angular-devkit/schematics';
+
+export function playground(_options: any): Rule {
+  return (tree: Tree, _context: SchematicContext) => {
+    console.log('schematic \\'playground\\' called');
+    return tree;
+  };
+}
+

If we now run schematics ../playground/src/collection.json:ng-add --debug=false from our example Angular project, we can see that the ng-add schematic has called the playground schematic.

+

With this knowledge you can define small atomic schematics that can be executed "standalone" or from another Schematic that combines multiple standalone schematics and calls them with specific parameters.

+ +

Run schematics by using the schematic() and externalSchematic() function

+

Perfect, we can now execute and combine our schematics. +But what if we want to combine external schematics developed by others and integrate them in our own schematics? +Users are lazy, so we don't want to leave it up to them to manually execute some other things before running our schematics.

+

Imagine you are working in a big company with multiple different Angular projects. +This company already has its own standardized UI library, but all the applications are very different and ran by different teams (so not really a use case for a Monorepo). +However, there are also things they all have in common like a Single Sign-On. +Also, the basic design always looks similar – at least the header and the footer of all the apps.

+

I've often seen companies building a reference implementation for such apps that's then cloned / copied and adjusted by all developers. +However, there are some problems with this kind of workflow:

+ +

Thus, a better solution in my opinion is to use schematics for the whole integration and upgrade workflow. +You can create an ng new schematic that will scaffold the whole project code for you. +But you don't want to start from scratch, so you probably want to combine things like these:

+ +

Alright, we already know how we can achieve most of these things. +However, there's one thing we haven't learned yet: How to run other (external) schematics? +We can use the externalSchematic function for this.

+

But first things first, let's check if our collection file is ready to start:

+
{
+  "$schema": "../node_modules/@angular-devkit/schematics/collection-schema.json",
+  "schematics": {
+    "ng-add": {
+      "description": "Call other schematics from the same or other packages",
+      "factory": "./ng-add/index#playground"
+    },
+    "ng-new": {
+      "description": "Execute \`ng new\` with predefined options and run other stuff",
+      "factory": "./ng-new/index#playground"
+    }
+  }
+}
+
+

Using the special Schematic names ng-add and ng-new let's you later use the schematic by just executing ng add/ng new (instead of other schematics called with ng generate). +There is also a special Schematic named ng-update which will be called in the end with the ng update Angular CLI command.

+
+

After we defined the schema, we can now start to implement our schematics. +To execute an external Schematic, it must be available in the scope of the project.. +However, since we want to create a completely new project with the ng new Schematic, we don't have any node_modules installed in the target directory where we want to initialize the Angular workspace. +To run an external command we can use the spawn method from child_process (available globally for Node.js). +This creates a new process that executes a command (in our case: npm install @schematics/angular). +To make things look synchronous we wrap the method call into a Promise and await for the Promise to be resolved. +Now we listen to the close event from spawn and check that there was no error during install (code equals 0). +If everything worked fine, we will resolve the Promise, otherwise we can throw an error. +The last step is to chain all of our Rules: +We first use the externalSchematic() function to run the ng new Schematic from Angular itself and set up the basic app. +We will hand over some default options here such a using SCSS, support legacy browsers, strict mode, etc. +Angulars ng new schematic requires also, that we define the specific version for their schematic to be used. +In our case we want to use the ng new schematic from the Angular CLI version 12.0.0. +The second call is our ng add Schematic that adds our company specific components, UI libs and so on to the project.

+
+

We've already learned how to run a local Schematic by using the RunSchematicTask class that we need to add to our context object. +In this example we are using the schematic() function to achieve the same goal. +Why are there two ways? To be honest: I actually don't know. +I found both implementations in the source code of Angular CLI.

+
+
import {
+  Rule,
+  SchematicContext,
+  Tree,
+  externalSchematic,
+  schematic,
+  chain
+} from '@angular-devkit/schematics';
+import {
+  Schema as AngularNgNewSchema,
+  PackageManager,
+  Style
+} from '@schematics/angular/ng-new/schema';
+import { spawn } from 'child_process';
+
+export function playground(options: AngularNgNewSchema): Rule {
+  return async (_tree: Tree, _context: SchematicContext) => {
+    const angularSchematicsPackage = '@schematics/angular';
+    const ngNewOptions: AngularNgNewSchema = {
+      version: '12.0.0',
+      name: options.name,
+      routing: true,
+      strict: true,
+      legacyBrowsers: true,
+      style: Style.Scss,
+      packageManager: PackageManager.Npm
+    }
+    await new Promise<boolean>((resolve) => {
+      console.log('📦 Installing packages...');
+      spawn('npm', ['install', angularSchematicsPackage])
+        .on('close', (code: number) => {
+          if (code === 0) {
+            console.log('📦 Packages installed successfully ✅');
+            resolve(true);
+          } else {
+            throw new Error(
+              \`❌ install Angular schematics from '\${angularSchematicsPackage}' failed\`
+            );
+          }
+        });
+    });
+    return chain([
+      externalSchematic(angularSchematicsPackage, 'ng-new', ngNewOptions),
+      schematic('ng-add', {})
+    ]);
+  };
+}
+

When we now run the ng new Schematic from somewhere outside an Angular workspace, we can see that first of all the Angular ng new Schematic is executed with our predefined settings. +After this, the ng add schematics is called.

+
schematics ./playground/src/collection.json:ng-new --debug=false
+📦 Installing packages...
+📦 Packages installed successfully
+? What name would you like to use for the new workspace and initial project? my-project
+CREATE my-project/README.md (1027 bytes)
+CREATE my-project/.editorconfig (274 bytes)
+CREATE my-project/.gitignore (631 bytes)
+CREATE my-project/angular.json (3812 bytes)
+...
+CREATE my-project/src/app/app.component.scss (0 bytes)
+CREATE my-project/src/app/app.component.html (25757 bytes)
+CREATE my-project/src/app/app.component.spec.ts (1069 bytes)
+CREATE my-project/src/app/app.component.ts (215 bytes)
+CREATE my-project/src/app/package.json (816 bytes)
+CREATE my-project/e2e/protractor.conf.js (869 bytes)
+CREATE my-project/e2e/tsconfig.json (294 bytes)
+CREATE my-project/e2e/src/app.e2e-spec.ts (643 bytes)
+CREATE my-project/e2e/src/app.po.ts (301 bytes)
+ Installing packages...
+ Packages installed successfully.
+schematic works
+

After you have deployed the Schematic, you can now execute it by running:

+
npm i -g my-schematic-package-name # install the Schematic so it's available globally
+ng new my-app --collection=my-schematic-package-name # Run the Angular CLI's \`ng new\` Schematic with the defined collection
+

Similar to this example you can call the ng add Schematic from the collection if you are in an existing Angular workspace:

+
ng add my-schematic-package-name
+ +

Conclusion

+

The presented util functions are great and comfortable helpers you can use to create your own Angular CLI schematics. +However, as they aren't officially published until now, you should keep track of any changes by keeping an eye on the documentation issue (#15335) and changes on the related code.

+

Summary

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FunctionDescription
getPackageJsonDependency()Get a package configuration from the package.json (dev-, peer-, optional-) dependencies config.
addPackageJsonDependency()Add a NPM package to the package.json as (dev-, peer-, optional-) dependency.
removePackageJsonDependency()Remove a NPM package from the package.json (dev-, peer-, optional-) dependencies.
relativePathToWorkspaceRoot()Get the relative import path to the root of the workspace for a given file inside the workspace.
insertImport()Insert an import statement for a file to an existing TypeScript file.
addDeclarationToModule()Import a declaration (e.g. Component or Directive) and add it to the declarations array of an Angular module.
addImportToModule()Import an Angular Module and add it to the imports array of another Angular module.
addExportToModule()Import an Angular Module and add it to the exports array of another Angular module.
addProviderToModule()Import a service / provider and add it to the providers array of an Angular module.
addBootstrapToModule()Import a Component and add it to the bootstrap array of an Angular module.
addRouteDeclarationToModule()Add a route definition to the router configuration in an Angular routing module.
getWorkspacePath()Retrieve the path to the Angular workspace configuration file (angular.json).
getWorkspace()Get the configuration object from the Angular workspace configuration file (angular.json)
createDefaultPath()Get the default application / library path for a project inside an Angular workspace.
+ + + + + + + + + + + + + + + + + + + +
ClassDescription
InsertChangeThis class returns a change object with the content to be added and the position where a change is being inserted.
NodePackageInstallTaskA task instance that will perform a npm install once instantiated and added to the context via addTask().
RunSchematicTaskA task that runs another schematic after instantiation and adding it to the context via addTask().
+

Thank you

+

Special thanks goes to Minko Gechev, Tomas Trajan and Ferdinand Malcher for the feedback and revising this article.

+
+`;export{s as default}; diff --git a/assets/2020-11-angular11-CpvOuYVb.js b/assets/2020-11-angular11-CpvOuYVb.js new file mode 100644 index 00000000..5416f523 --- /dev/null +++ b/assets/2020-11-angular11-CpvOuYVb.js @@ -0,0 +1,29 @@ +const n=`--- +title: 'Angular 11 ist da! Die wichtigsten Neuerungen im Überblick' +description: 'Es hätte kein schöneres Datum sein können: am 11.11.2020 wurde die neue Major-Version Angular 11.0 veröffentlicht. Wir werden Ihnen in diesem Artikel die wichtigsten Neuerungen vorstellen.' +published: true +author: + name: Angular Buch Team + mail: team@angular-buch.com +created: 2020-11-11 +updated: 2020-11-11 +publishedAt: + name: angular-buch.com + url: https://angular-buch.com/blog/2020-11-angular11 + logo: https://angular-buch.com/assets/img/brand-400.png + linkExternal: true +keywords: + - Angular + - Angular 11 + - TypeScript + - TSLint + - ESLint + - Hot Module Reloading +language: de +thumbnail: + header: images/blog/ng11/angular11.jpg + card: images/blog/ng11/angular11-small.jpg +series: angular-update +--- + +`;export{n as default}; diff --git a/assets/2020-11-twa-Ba-oUIuh.js b/assets/2020-11-twa-Ba-oUIuh.js new file mode 100644 index 00000000..3e389290 --- /dev/null +++ b/assets/2020-11-twa-Ba-oUIuh.js @@ -0,0 +1,366 @@ +const e=`--- +title: 'Trusted Web Activitys (TWA) mit Angular' +description: 'Progressive Web Apps sind in den letzten Jahren immer populärer geworden. In diesem Blogpost werde ich Ihnen zeigen, wie Sie Ihre PWA auf einfachem Weg in den Google Play Store für Android bringen können, ohne eine echte Android-App mit Webview zu entwickeln, die lediglich eine Website aufruft.' +published: true +author: + name: Danny Koppenhagen + mail: mail@k9n.dev +created: 2020-11-17 +updated: 2020-11-17 +publishedAt: + name: angular-buch.com + url: https://angular-buch.com/blog/2020-11-twa + logo: https://angular-buch.com/assets/img/brand-400.png +keywords: + - TWA + - Trusted Web Activity + - PWA + - Progressive Web App + - Angular + - Android + - Android Store +language: de +thumbnail: + header: images/blog/twa/header-twa.jpg + card: images/blog/twa/header-twa-small.jpg +series: angular-pwa +--- + +

Progressive Web Apps sind in den letzten Jahren immer populärer geworden. +Sie erlauben es uns, Webanwendungen auf dem Home-Bildschirm des Smartphones zu installieren und wie eine nativ installierte App zu benutzen. +Mit einer PWA können wir Daten mithilfe eines Service Workers cachen, um die Anwendung auch offline zu verwenden. +Weiterhin kann eine PWA im Hintergrund Push-Benachrichtigungen vom Server empfangen und anzeigen.

+
+

Wenn Sie noch keine Erfahrung mit der Umsetzung einer Angular-App als PWA haben, schauen Sie sich unseren Blog-Post "Mach aus deiner Angular-App eine PWA" an oder werfen Sie einen Blick in unser Angular-Buch, wo wir dieses Thema detailliert erläutern.

+
+

Nach der Entwicklung einer PWA bleibt jedoch eine Hürde bestehen: Nutzer der Anwendung müssen die URL kennen, über welche die PWA abrufbar ist und installiert werden kann. +Viele Smartphone-Nutzer sind jedoch einen anderen Weg gewohnt, um eine App zu installieren: +Sie suchen danach in einem App Store wie dem Google Play Store unter Android oder App Store unter iOS.

+

In diesem Blogpost wollen wir Ihnen zeigen, wie Sie Ihre PWA auf einfachem Weg in den Google Play Store für Android bringen können, ohne eine echte Android-App mit Webview zu entwickeln, die lediglich eine Website aufruft.

+
+

Zur Zeit gibt es noch keine Möglichkeit, PWAs in Apples App Store zu deployen.

+
+

Trusted Web Activities vs. Webview-Integration

+

Um PWAs als Android-App bereitzustellen, benötigen wir eine Art App-Wrapper, der schließlich die PWA aufruft und somit unsere Webanwendung darstellen kann.

+

In der Vergangenheit wurde dies oft durch Android-Apps umgesetzt, die lediglich einen sogenannten WebView integrieren. +Hinter diesem Feature versteckt sich ein integrierter Webbrowser in der Android-App, der lediglich den Inhalt der Website darstellt. +Dieser Weg funktioniert für eine Vielzahl von Websites, gerät jedoch an seine Grenzen, wenn es sich bei der Website um eine PWA handelt. +Der Grund: In einem Webview funktionieren die essenziellen Service Worker nicht. +Somit können wir Features wie die Offlinefähigkeit nicht einfach in die Anwendung integrieren. +Weiterhin birgt ein Webview ein gewisses Sicherheitsrisiko, weil lediglich die URL den Inhalt der Anwendung bestimmt und keinerlei Überprüfung des tatsächlichen Contents stattfindet. +Wird also beispielsweise eine Website "gekapert", bekommt der Nutzer ggf. den Inhalt einer falschen Seite angezeigt.

+

Bei einer TWA hingegen wird die PWA lediglich so erweitert, dass sie als Android-App direkt deployt werden kann. +Über einen Sicherheitsschlüssel kann verifiziert werden, dass die aufgerufene URL zur App passt.

+

TWAs im Detail

+

Die Grundidee einer TWA ist schnell erklärt: Statt einer vollumfänglichen Android-App, die einen Browser implementiert und eine URL aufruft, wird bei einer TWA leidglich die PWA um eine App-Schicht erweitert, sodass sie im Google Play Store veröffentlicht werden kann. +Es muss also auch kein eingebetteter Browser in der App integriert werden, sondern es wird auf den vorhandenen Google Chrome Browser zurückgegriffen. +Voraussetzung hierfür ist, dass auf dem Android-Gerät die Version 72 oder höher von Google Chrome verfügbar ist. +Beim Öffnen der PWA wird Chrome mit der hinterlegten URL geöffnet, und es werden sämtliche UI-Elemente des Browsers ausgeblendet. +Im Prinzip passiert also genau das, was auch geschieht, wenn wir eine PWA über die Funktion "Add To Homescreen" auf Smartphone speichern, jedoch in Form einer App, die über den Google Play Store gefunden und installiert werden kann. +Somit bleiben Features wie Push-Benachrichtigungen, Hintergrundsynchronisierungen, Autofill bei Eingabeformularen, Media Source Extensions oder die Sharing API vollumfänglich erhalten. +Ein weiterer Vorteil einer solchen TWA ist, dass Session-Daten und der Cache im Google Chrome geteilt werden. +Haben wir uns also beispielsweise bei unserer Web-Anwendung zuvor im Browser angemeldet, so belibt die Anmeldung in der Android-App (TWA) bestehen.

+

Die Bezeichnung "Trusted Web Activity" lässt bereits darauf schließen: TWAs sind trusted, also vertraulich. +Durch eine spezielle Datei, die mit der Webanwendung ausgeliefert wird und die einen Fingerprint enthält, kann sichergestellt werden, dass die Anwendung vertrauenswürdig ist, und der Inhalt kann somit sicher geladen werden.

+

Eine PWA als TWA in den Android Store bringen

+

Genug der Theorie -- wir wollen nun erfahren, wie wir eine PWA im Android Store als TWA bereitstellen können.

+

Dafür müssen wir folgende Schritte durchführen:

+ +

Wir wollen als Grundlage für dieses Beispiel die Angular-Anwendung BookMonkey aus dem Angular-Buch verwenden, die bereits als PWA vorliegt. +Möchten Sie die Schritte selbst nachvollziehen, können Sie die Anwendung über GitHub herunterladen:

+

https://github.com/book-monkey4/book-monkey4-pwa

+
git clone https://ng-buch.de/bm4-pwa.git

Die Online-Version der PWA können Sie unter der folgenden URL abrufen:

+

https://bm4-pwa.angular-buch.com/

+

Weiterhin benötigen Sie für die Erstellung der TWA folgende Voraussetzungen auf dem Entwicklungssystem:

+ +

Einen Android Developer Account registrieren

+
+

Sofern Sie bereits einen Account für die Google Play Console besitzen, können Sie diesen Schritt überspringen.

+
+

Um eine App im Google Play Store einzustellen, benötigen wir zunächst einen Account für die Google Play Console. +Den Account können Sie über den folgenden Link registrieren:

+

https://play.google.com/apps/publish/signup

+

Bei der Registrierung wird eine einmalige Registrierungsgebühr in Höhe von 25 USD erhoben. Diese Gebühr gilt für sämtliche Apps, die Sie mit dem hinterlegten Google-Account registrieren wollen.

+

Google Play Console: Registrierung

+

Die Android-App in der Google Play Console erstellen

+

Nach der Registierungs müssen wir uns in der Google Play Console einloggen. +Anschließend können wir über den Menüpunkt "Alle Apps" mit dem Button "App erstellen" eine neue Anwendung anlegen. +Hier legen wir den Namen der Anwendung, die Standardsprache, den Anwendungstypen (App oder Spiel) sowie den Preis der Anwendung fest. +Weiterhin müssen wir den Programmierrichtlinien für Entwickler sowie den Exportbestimmungen der USA zustimmen.

+

Google Play Console: Eine neue Anwendung erzeugen

+

Danach gelangen wir zum Dashboard für die neue Android-App. +Hier arbeiten wir uns im folgenden durch die Ersteinrichtung der App durch. +Jeder abgeschlossene Punkt wird entsprechend in der Liste markiert. +Alle Einstellungen finden sich auch im Nachhinein links im Menü wieder und können auch noch später angepasst werden.

+

Google Play Console: Dashboard - Ersteinrichtung

+ +

Haben wir alle Punkte für die Ersteinrichtung abgeschlossen, verschwindet der Abschnitt auf unserem Dashboard und wir können uns der Bereitstellung der App widmen. +Dafür benötigen wir ein Release und eine App-Signatur.

+

Die App-Signatur und das Release erzeugen

+

Nach der Ersteinrichtung gilt es unsere App im Play Store bereitzustellen. +Befinden wir uns auf dem Dashboard, so wird uns eine Übersicht über verschiedene Möglichkeiten zur Veröffentlichung der Anwendung gezeigt.

+

Google Play Console: Dashboard - App veröffentlichen

+

Diese Wege repräsentieren die sogenannten Tracks. +Ein solcher Track kann verschiedene Ausprägungen haben:

+ +

In unserem Szenario wollen wir unsere App direkt bis in den Google Play Store bringen, um zu verifizieren, dass diese auch tatsächlich von allen Nutzern gefunden und installiert werden kann. +Hierfür nutzen wir den Track für den offenen Test und erstellen ein Beta-Release. +Dafür klicken wir unter der Überschrift "Beliebigen Nutzern die Registrierung für das Testen deiner App bei Google Play erlauben" auf "Aufgaben einblenden". +Hier klicken wir zunächst auf "Länder und Regionen auswählen".

+

Google Play Console: Dashboard - Einen offenen Track anlegen

+

Wir gelangen nun in das Untermenü zur Erstellung eines offenen Test Tracks und legen die Länder fest, in denen unsere Anwendung im Google Play Store verfügbar sein soll. +Anschließend erstellen wir ein neues Release.

+

Im nächsten Schritt benötigen wir nun die App, die wir unter "App Bundles und APKs" hinterlegen müssen. +Damit diese App jedoch erzeugt und verifiziert werden kann, erzeugen wir zunächst unter dem Abschnitt App-Signatur von Google Play über den Button "Weiter" eine neue App Signatur.

+

Google Play Console: Offenes Testrelease erstellen

+

Den App-Signaturschlüssel in der PWA hinterlegen

+

Wir verlassen zunächst wieder den Menüpunkt zur Erzeugung des Releases und gehen ins Menü "Einrichten" > "App-Signatur". +Hier kopieren wir uns den Fingerabdruck des SHA-256-Zertifikats in die Zwischenablage.

+

Google Play Console: Kopieren des App-Signaturschlüssels

+

Dieser Fingerabdruck stellt später sicher, dass beim Aufruf der PWA durch unsere TWA verifiziert werden kann, dass die Anwendung trusted ist, also von Google verifiziert.

+

Um den Fingerabdruck aufspüren zu können, müssen wir diesen über die spezielle Datei assetlinks.json bereitstellen. +Weiterhin muss die Datei und ihr Inhalt über die spezielle URL https://my-app.com/.well-known/assetlinks.json aufrufbar sein.

+

Dafür erzeugen wir in unserem Angular-Workspace ein neues Verzeichnis .well-known unter src. +Darin legen wir die Datei assetlinks.json mit dem folgenden Inhalt an:

+
[
+  {
+    "relation": ["delegate_permission/common.handle_all_urls"],
+    "target": {
+      "namespace": "allfront",
+      "package_name": "com.angular_buch.book_monkey4",
+      "sha256_cert_fingerprints": [
+        "D1:63:25:CE...A4:FF:79:C0"
+      ]
+    }
+  }
+]
+

Als package_name legen wir die Anwendungs-ID fest, die im Google Play Store eindeutig sein muss und genau auf eine App zeigt. +Die ID wird in der Regel aus einer Domain gebildet und rückwärts gelistet. +Sie muss mindestens einen Punkt enthalten, Zeichen hinter einem Punkt dürfen nur Buchstaben sein, und die gesamte ID darf lediglich Alphanumerische Zeichen enthalten. +Zeichen wie "-" sind nicht erlaubt. +Alle Regeln zur Definition einer validen ID können Sie der Android Entwicklerdokumentstion entnehmen.

+

Unter sha256_cert_fingerprints müssen wir außerdem den kopierten App-Signaturschlüssel eintragen.

+

Jetzt müssen wir der Angular CLI noch beibringen, dass der URL-Pfad /.well-known/assetlinks.json nicht durch den Angular-Router behandelt und umgeleitet werden soll, sondern dass sich dahinter ein statisches Asset verbrigt, das direkt über die URL aufrufbar sein soll.

+

Dafür bearbeiten wir die Datei angular.json: Im Abschnitt build > options ergänzen wir den Eintrag assets. +Dort geben wir an, dass alle Dateien unter src/.well-known über den relativen Pfad /.well-known/ bereitgestellt werden sollen:

+
{
+  // ...
+  "projects": {
+    "book-monkey": {
+      // ...
+      "architect": {
+        "build": {
+          // ...
+          "options": {
+            // ...
+            "assets": [
+              // ...
+              {
+                "glob": "**/*",
+                "input": "src/.well-known/",
+                "output": "/.well-known/"
+              }
+              // ...
+            ],
+            // ...
+          },
+          // ...
+        },
+        // ...
+      },
+      // ...
+    },
+    // ...
+  },
+  // ...
+}
+

Wir überprüfen das Ergebnis am Besten, indem wir einen Produktiv-Build ausführen und einen einfachen Webserver starten:

+
ng build --prod
+cd dist/book-monkey
+npx http-server
+

Rufen wir nun die URL http://localhost:8080/.well-known/assetlinks.json im Browser auf, sehen wir, dass unsere Datei assetlinks.json dargestellt wird:

+

Test der Auslieferung der Datei \`assetlinks.json\` im Browser

+

War der Test erfolgreich, können wir unsere PWA deployen. +Wichtig ist, dass diese zwingend per HTTPS ausgeleifert werden muss.

+
+

Achtung: Nutzen Sie beispielsweise GitHub Pages zur Auslieferung Ihrer Anwendung, so müssen Sie vor dem Deployment im dist-Verzeichnis (dist/book-monkey) eine Datei _config.yml mit dem Inhalt include: [".well-known"] anlegen, da alle Verzeichnisse beginnend mit "." per Default von GitHub Pages ignoriert werden. Diesen Schritt integrieren Sie am besten in Ihre Deployment-Pipeline.

+
+

Überprüfen Sie nach dem Deployment am Besten noch einmal, ob Sie die URL http://mydomain/.well-known/assetlinks.json aufrufen können. +In unserem Fall wäre das: https://bm4-pwa.angular-buch.com/.well-known/assetlinks.json.

+

Die TWA mit der Bubblewrap CLI erzeugen

+

Wir haben nun unsere PWA so vorbereitet, dass sie als TWA genutzt werden kann. Alle nötigen Vorbereitungen in der Google Play Console haben wir getroffen. +Als nächstes wollen wir die Android-App erstellen, die unsere PWA als TWA aufruft und als eigenständige App kapselt.

+

Hierfür nutzen wir die Bubblewrap CLI: +Wir können das Tool direkt als NPM-Paket über npx aufrufen und so die App erzeugen lassen. +Der interaktive Wizard führt uns durch das Setup:

+
mkdir monkey4-pwa-twa-wrapper
+cd monkey4-pwa-twa-wrapper
+npx @bubblewrap/cli init --manifest https://bm4-pwa.angular-buch.com/manifest.json
+

Nutzen wir die Bubblewrap CLI zum ersten Mal, so werden wir in den ersten zwei Schritten nach den Verzeichnissen für das Java OpenJDK und das AndroidSDK gefragt. +Hier geben wir die Pfade zu den entsprechenden Verzeichnissen an. +Unter macOS lauten sie zum Beispiel:

+
? Path to the JDK: /Library/Java/JavaVirtualMachines/adoptopenjdk-8.jdk
+? Path to the Android SDK: /Users/my-user/Library/Android/sdk
+
+

Diese Angaben werden für spätere Installationen in der Datei ~/.llama-pack/llama-pack-config.json gespeichert und können bei Bedarf angepasst werden.

+
+

Im nächsten Schritt liest die Bubblewrap CLI das Web App Manifest unserer PWA aus und stellt einige Fragen zu den Metadaten der App: Bezeichnung, hinterlegte Icons und Pfade. +Diese Einstellungen werden in der Regel schon korrekt ausgelesen und müssen nicht manuell angepasst werden:

+
init Fetching Manifest:  https://bm4-pwa.angular-buch.com/manifest.json
+? Domain being opened in the TWA: bm4-pwa.angular-buch.com
+? Name of the application: BookMonkey 4 PWA
+? Name to be shown on the Android Launcher: BookMonkey
+? Color to be used for the status bar: #DB2828
+? Color to be used for the splash screen background: #FAFAFA
+? Relative path to open the TWA: /
+? URL to an image that is at least 512x512px: https://bm4-pwa.angular-buch.com/assets/icons/icon-512x512.png
+? URL to an image that is at least 512x512px to be used when generating maskable icons undefined
+? Include app shortcuts?
+  Yes
+? Android Package Name (or Application ID): com.angular_buch.bm4_pwa.twa
+

In der nächsten Abfrage müssen wir den Schlüssel zur Signierung der App angeben. +Haben wir hier noch keinen Schlüssel erzeugt, werden wir darauf hingewiesen und können einen neuen Schlüssel anlegen. +Dafür müssen wir einige Infos zum Ersteller des Schlüssels hinterlegen. +Außerdem müssen wir ein Passwort für den Key Store und eines für den einzelnen Key der Anwendung angeben. +Dieses benötigen wir später beim Build und beim Signieren der App erneut.

+
? Location of the Signing Key: ./android.keystore
+? Key name: android
+...
+? Signing Key could not be found at "./android.keystore". Do you want to create one now? Yes
+? First and Last names (eg: John Doe): John Doe
+? Organizational Unit (eg: Engineering Dept): Engineering Dept
+? Organization (eg: Company Name): My Company
+? Country (2 letter code): DE
+? Password for the Key Store: [hidden]
+? Password for the Key: [hidden]
+keytool Signing Key created successfully
+init
+init Project generated successfully. Build it by running "@bubblewrap/cli build"
+

Im Ergebnis sollten wir folgende Dateistruktur erhalten:

+

Dateistruktur nach Erzeugung der TWA mithilfe der Bubblewrap CLI

+

Prinzipiell sind wir damit auch schon fertig. +Wir müssen nun noch die fertige Android-App (*.apk-Datei) erzeugen.

+

Das Ergebnis der TWA-Generierung können Sie auch in folgendem Repository nachvollziehen:

+

https://github.com/book-monkey4/book-monkey4-pwa-twa-wrapper

+

Die signierte App bauen

+

Wir können unsere signierte Android-App entwerder direkt mithilfe der Bubblewrap CLI bauen, oder wir nutzen hierfür Android Studio.

+

Mit der Bublewrap CLI

+

Wir rufen das build-Kommando der Bubblewrap CLI auf. +Hier müssen wir zunächst das von uns vergebene Passwort für den Key Store und anschließend das Passwort für den konkreten Key eingeben:

+
npx @bubblewrap/cli build
+? KeyStore password: ********
+? Key password: ********
+build Building the Android-App...
+build Zip Aligning...
+build Checking PWA Quality Criteria...
+build
+build Check the full PageSpeed Insights report at:
+build - https://developers.google.com/speed/pagespeed/insights/?url=https%3A%2F%2Fbm4-pwa.angular-buch.com%2F
+build
+build
+build Quality Criteria scores
+build Lighthouse Performance score: ................... 80
+build Lighthouse PWA check: ........................... NO
+build
+build Web Vitals
+build Largest Contentful Paint (LCP) .................. 3.7 s
+build Maximum Potential First Input Delay (Max FID) ... 391 ms
+build Cumulative Layout Shift (CLS) ................... 0.00
+build
+build Other scores
+build Lighthouse Accessibility score................... 67
+build
+build Summary
+build Overall result: ................................. FAIL
+build WARNING PWA Quality Criteria check failed.
+build Signing...
+build Signed Android-App generated at "./app-release-signed.apk"
+build Digital Asset Links file generated at ./assetlinks.json
+build Read more about setting up Digital Asset Links at https://developers.google.com/web/android/trusted-web-activity/quick-start#creating-your-asset-link-file
+

Wenn wir keinen Fehler erhalten, sollte sich die fertige signierte App im Hauptverzeichnis befinden und app-release-signed.apk heißen.

+

Vereinzelt kann es dazu kommen, dass wir eine Fehlermeldung wie die folgende erhalten:

+
UnhandledPromiseRejectionWarning: Error: Error calling the PageSpeed Insights API: Error: Failed to run the PageSpeed Insight report

In diesem Fall schlägt die Analyse der App fehl, weil beispielsweise die Website gerade nicht erreichbar ist. Wir können den Build erneut aufrufen und das Flag --skipPwaValidation verwenden, um die Überprüfung der PWA zu überspringen.

+
npx @bubblewrap/cli build --skipPwaValidation
+? KeyStore password: ********
+? Key password: ********
+build Building the Android-App...
+build Zip Aligning...
+build Signing...
+build Signed Android-App generated at "./app-release-signed.apk"
+build Digital Asset Links file generated at ./assetlinks.json
+build Read more about setting up Digital Asset Links at https://developers.google.com/web/android/trusted-web-activity/quick-start#creating-your-asset-link-file
+

Kommt es zu dem nachfolgenden Fehler, prüfen Sie bitte den Pfad unter jdkPath in der Datei ~/.llama-pack/llama-pack-config.json. +Dieser sollte auf das lokale Hauptverzeichnis des Java JDK 8 zeigen. +Alternativ können Sie den Build mithilfe von Android Studio anstoßen.

+
cli ERROR Command failed: ./gradlew assembleRelease --stacktrace
+

Mithilfe von Android Studio

+

Bei dieser Variante öffnen wir zunächst das Projektverzeichnis in Android Studio. +Nun warten wir ab, bis der automatische Gradle-Build nach dem Öffnen des Projekts durchgelaufen ist. +Den Fortschritt können wir unten rechts in Android Studio betrachten. +Anschließend klicken wür im Menü "Build" auf "Generate Signed Bundle / APK".

+

Android Studio: Signierte APK erstellen

+

Wir wählen hier den Punkt "APK" aus und klicken auf "Next".

+

Android Studio: Signierte APK erstellen

+

Im nächsten Schritt wählen wir den erstellten Keystore (android.keystore) aus dem Projektverzeichnis aus und geben das festgelegte Passwort ein. +Alternativ können wir auch einen neuen Keystore erstellen. +Anschließend können wir aus dem Keystore den "Key alias" auswählen (android). +Auch hier müssen wir das Passwort eingeben, das wir zuvor für den konkreten Key vergeben haben. +Haben wir alle Angaben korrekt getätigt, gehen wir weiter mit "Next".

+

Android Studio: Signierte APK erstellen

+

Im nächsten Schritt wählen wir als Build-Variante release aus und setzen die beiden Checkboxen bei "V1 (Jar Signature)" und "V2 (Full APK Signature)". +Anschließend können wir die Erzeugung mit "Finish" starten.

+

Android Studio: Signierte APK erstellen

+

Die erzeugte APK befindet sich nun unter ./app/release/app-release.apk.

+
+

Kommt es beim Erzeugen der signierten APK zu einem Fehler, kann dies ggf. an einem defekten/falschen Keystore liegen. Versuchen Sie in diesem Fall, einen neuen Keystore während der vorherigen Schritte zu erzeugen.

+
+

Die App über die Google Play Console veröffentlichen

+

Im letzten Schritt müssen wir unsere signierte und erzeugte Android-App noch bereitstellen und veröffentlichen. +Dazu gehen wir in der Google Play Console in das Menü "Test" > "Offene Tests" und öffnen unser zuvor bereits vorbereitetes Release im Abschnitt "Releases", welches im Status "Entwurf" ist durch Klick auf den Button "Bearbeiten".

+

Im nächsten Schritt können wir nun die zuvor erzeugte APK-Datei hochladen. +Weiterhin geben wir eine Versionsnummer und eine Beschreibung zum Release an. +Haben wir alles ausgefüllt, klicken wir auf "Überprüfen".

+

Jetzt haben wir es fast geschafft: +Das Beta-Release wurde erstellt. +Auf der nächsten Seite können wir die App nun veröffentlichen.

+

Google Play Console: Das Beta-Release veröffentlichen

+

Haben wir diesen Schritt erledigt, ändert sich unser Menü auf der linken Seite ein wenig, und wir können unter "Übersicht" den aktuellen Status zur Veröffentlichung der Android-App einsehen. +Bis die App tatsächlich veröffentlicht und freigegeben wird, können ggf. ein paar Tage vergehen.

+

Google Play Console: Übersicht mit Veröffentlichungsstatus

+

Geschafft! Wir haben nun erfolgreich unsere Angular-PWA in eine Android-App integriert und sie im Google Play Store veröffentlicht. +Dabei haben wir das Konzept der Trusted Web Activity (TWA) genutzt. +Nun müssen wir nur noch auf die Freigabe warten, und wir können unsere App im Store finden und installieren.

+

Viel Spaß wünschen +Johannes, Danny und Ferdinand

+`;export{e as default}; diff --git a/assets/2021-06-angular12-Bz5-cQEb.js b/assets/2021-06-angular12-Bz5-cQEb.js new file mode 100644 index 00000000..4eda242d --- /dev/null +++ b/assets/2021-06-angular12-Bz5-cQEb.js @@ -0,0 +1,29 @@ +const n=`--- +title: Angular 12 ist da! Die wichtigsten Neuerungen im Überblick +description: Am 12.05.2021 wurde die neue Major-Version Angular 12.0 veröffentlicht – ein halbes Jahr nach dem Release von Angular 11. In diesem Artikel stellen wir wieder die wichtigsten Neuerungen vor. +published: true +author: + name: Angular Buch Team + mail: team@angular-buch.com +created: 2021-06-07 +updated: 2021-07-03 +publishedAt: + name: angular-buch.com + url: https://angular-buch.com/blog/2021-06-angular12 + logo: https://angular-buch.com/assets/img/brand-400.png + linkExternal: true +keywords: + - Angular + - Angular 12 + - Angular DevTools + - TypeScript + - Protractor + - E2E + - Strict Mode +language: de +thumbnail: + header: https://website-articles.angular-buch.com/2021-06-angular12/angular12.jpg +series: angular-update +--- + +`;export{n as default}; diff --git a/assets/2021-09-14-ngx-lipsum-B-kOlESX.js b/assets/2021-09-14-ngx-lipsum-B-kOlESX.js new file mode 100644 index 00000000..2dfea978 --- /dev/null +++ b/assets/2021-09-14-ngx-lipsum-B-kOlESX.js @@ -0,0 +1,32 @@ +const e=`--- +title: ngx-lipsum +description: Easily use lorem ipsum dummy texts in your angular app +published: true +author: + name: Danny Koppenhagen + mail: mail@k9n.dev +updated: 2021-09-14 +keywords: + - Angular + - lorem-ipsum + - ngx-lipsum + - directive + - service + - component +language: en +thumbnail: + header: images/projects/ngx-lipsum.svg + card: images/projects/ngx-lipsum.svg +--- + +

My Angular package ngx-lipsum let's you easily fill your angular app with dummy texts for demo or prototyping purpose. +The name lipsum is a mix of the words lorem ipsum which is a common phrase used for placeholder texts.

+

The package provides you three different ways to generate and insert lorem ipsum texts:

+
    +
  1. by adding the lipsum directive to HTML elements
  2. +
  3. by inserting the <ngx-lipsum> component into your HTML template
  4. +
  5. by using the LipsumService to retrieve the text programmatically
  6. +
+

Under the hood the package uses the lorem-ipsum library which is also available on NPM.

+

Check out how to set it up by reading the docs in the Github repository.

+`;export{e as default}; diff --git a/assets/2021-11-angular13-B0642yDu.js b/assets/2021-11-angular13-B0642yDu.js new file mode 100644 index 00000000..8a6477d7 --- /dev/null +++ b/assets/2021-11-angular13-B0642yDu.js @@ -0,0 +1,29 @@ +const n=`--- +title: Angular 13 ist da! Die wichtigsten Neuerungen im Überblick +description: Anfang November 2021 erschien die neue Major-Version 13 von Angular. In diesem Artikel stellen wir wie immer die wichtigsten Neuigkeiten vor. +published: true +author: + name: Angular Buch Team + mail: team@angular-buch.com +created: 2021-11-03 +updated: 2021-11-03 +publishedAt: + name: angular-buch.com + url: https://angular-buch.com/blog/2021-11-angular13 + logo: https://angular-buch.com/assets/img/brand-400.png + linkExternal: true +keywords: + - Angular + - Angular 13 + - RxJS 7 + - TypeScript + - Dynamic Components + - Persistent Cache + - Ivy +language: de +thumbnail: + header: https://website-articles.angular-buch.com/2021-11-angular13/angular13.jpg +series: angular-update +--- + +`;export{n as default}; diff --git a/assets/2022-06-angular14-pxhso9J3.js b/assets/2022-06-angular14-pxhso9J3.js new file mode 100644 index 00000000..57702b62 --- /dev/null +++ b/assets/2022-06-angular14-pxhso9J3.js @@ -0,0 +1,29 @@ +const n=`--- +title: Angular 14 ist da! Die wichtigsten Neuerungen im Überblick +description: Am 2. Juni 2022 erschien die neue Major-Version Angular 14! Während die letzten Hauptreleases vor allem interne Verbesserungen für das Tooling mitbrachten, hat Angular 14 einige spannende neue Features mit an Bord. In diesem Artikel stellen wir wie immer die wichtigsten Neuigkeiten vor. +published: true +author: + name: Angular Buch Team + mail: team@angular-buch.com +created: 2022-06-02 +updated: 2022-06-02 +publishedAt: + name: angular-buch.com + url: https://angular-buch.com/blog/2022-06-angular14 + logo: https://angular-buch.com/assets/img/brand-400.png + linkExternal: true +keywords: + - Angular + - Angular 14 + - Standalone Components + - Strict Typed Forms + - Router Title + - ng completion + - inject +language: de +thumbnail: + header: https://website-articles.angular-buch.com/2022-06-angular14/angular14.jpg +series: angular-update +--- + +`;export{n as default}; diff --git a/assets/2022-11-angular15-BMz8-QKb.js b/assets/2022-11-angular15-BMz8-QKb.js new file mode 100644 index 00000000..d75b4dbb --- /dev/null +++ b/assets/2022-11-angular15-BMz8-QKb.js @@ -0,0 +1,30 @@ +const e=`--- +title: Angular 15 ist da! Die wichtigsten Neuerungen im Überblick +description: "Am 16. November 2022 erschien die neue Major-Version Angular 15! Im Fokus des neuen Releases standen vor allem diese Themen: Stabilisierung der Standalone Components, funktionale Guards, Resolver und Interceptors sowie die Vereinfachung der initial generierten Projektdateien." +published: true +author: + name: Angular Buch Team + mail: team@angular-buch.com +created: 2022-11-25 +updated: 2022-11-25 +publishedAt: + name: angular-buch.com + url: https://angular-buch.com/blog/2022-11-angular15 + logo: https://angular-buch.com/assets/img/brand-400.png + linkExternal: true +keywords: + - Angular + - Angular 15 + - Standalone Components + - Guards + - Resolver + - Interceptoren + - Directive Composition + - Image Directive +language: de +thumbnail: + header: https://website-articles.angular-buch.com/2022-11-angular15/angular15.jpg +series: angular-update +--- + +`;export{e as default}; diff --git a/assets/2022-12-vue-route-based-nav-menu-BXQuWdx3.js b/assets/2022-12-vue-route-based-nav-menu-BXQuWdx3.js new file mode 100644 index 00000000..0d0e43d1 --- /dev/null +++ b/assets/2022-12-vue-route-based-nav-menu-BXQuWdx3.js @@ -0,0 +1,251 @@ +const s=`--- +title: 'Route based navigation menus in Vue' +description: 'Learn how to build a dynamic navigation menu based on the route configuration using Vue3 and Vue Router.' +published: true +author: + name: 'Danny Koppenhagen' + mail: mail@k9n.dev +created: 2022-12-19 +updated: 2022-12-19 +keywords: + - Vue + - Vue 3 + - Vue Router +language: en +thumbnail: + header: images/blog/vue-route-menu/vue-route-menu.jpg + card: images/blog/vue-route-menu/vue-route-menu-small.jpg +linked: + devTo: 'https://dev.to/dkoppenhagen/route-based-navigation-menus-in-vue-od2' +--- + +

Recently while working on a Vue app, I asked myself: Isn’t the main navigation menu somehow related to the configuration of the routes and routing tree? And can't it be built dynamically from the router configuration?

+

With this question in my mind, I started to work on a very simple but representative example of how to achieve this by enriching the route configuration using the meta option.

+

The following example allows you to easily place big parts of your app into a module that is self contained and only exposes a bit of route configuration which can be imported and included in the main router configuration.

+

The app has a simple navigation component that extracts all available routes provided by the Vue Router. +These routes have all the information needed by a navigation item to build a menu point and define the routing target.

+

The following picture shows an high level overview of the architecture.

+

Planned structure

+

TL;DR

+

You can check out the complete working example with the source code in the following Stackblitz project:

+

https://stackblitz.com/edit/vue3-dynamic-menu

+

basic app setup

+

Let's create a simple Vue project using Vue3 and Vue-Router.

+
npm init vue@latest
+npm i vue-router@4
+

Setup the router

+

First we need the basic route configuration which represents the routing tree and in the end our menu structure.

+

We want to focus on the basic menu configuration and the initial page we are loading. +Therefore we will create the MainPage component which we can place in the src/components directory. +The component should simply display its name for demonstartion purpose:

+
<script setup lang="ts"></script>
+
+<template>
+  <div>MainPage.vue</div>
+</template>
+

The next thing we want to do is to setup the route for this component. +Therefore we are creating the router.ts file within the src directory. +We are importing the MainPage component and using it for the route main. +Furthermore we are adding a redirect to "/main" when the root-route "/" is opened. +To be able to get the displayble menu label later, we add the meta object to the route configuration containing the label.

+
import { createRouter, createWebHistory, type RouteRecordRaw } from 'vue-router';
+
+import MainPage from './components/MainPage.vue';
+
+export const routes: RouteRecordRaw[] = [
+  //default route redirection
+  { path: '/', redirect: { name: 'main' } },
+  // common app routes
+  {
+    path: '/main',
+    name: 'main',
+    component: MainPage,
+    meta: {
+      label: 'Main Page',
+    },
+  }
+];
+
+export const router = createRouter({
+  history: createWebHistory(),
+  routes,
+});
+

The exported router must now be used in the main.ts file:

+
import { createApp } from 'vue';
+import './style.css';
+import App from './App.vue';
+import { getRouter } from './router';
+import { routes } from './app-section-1/routes';
+
+const app = createApp(App);
+
+app.use(getRouter(routes));
+
+app.mount('#app');
+

Now we have to add the <router-view /> to our App.vue file to be able to render the correct component routed by the Vue Router.

+
<script setup lang="ts"></script>
+
+<template>
+  <router-view />
+</template>
+

Build the menu items based on route meta

+

So far so good: we’ve configured our first route so that we can later build a single menu item using the route configuration.

+

The next step is to create the navigation component (AppNav) that extracts the meta information from the route for the menu item and renders it. Therefore we have to filter for the occurrence of our provided meta data as we only want to display menu items that have a label configured in the meta information.

+

The result is an array of all relevant routes. +We iterate over the items with v-for and pass each element to a new component NavItem that takes a route configuration object for rendering a single navigation menu item.

+
<script setup lang="ts">
+import { useRouter, useRoute } from 'vue-router';
+
+import NavItem from './NavItem.vue';
+
+const router = useRouter();
+const filteredRoutes = router.options.routes.filter((r) => r.meta?.label);
+</script>
+
+<template>
+  <nav>
+    <ul>
+      <NavItem
+        v-for="(routeConfig, index) in filteredRoutes"
+        :key="index"
+        :route-config="routeConfig"
+      />
+    </ul>
+  </nav>
+</template>
+

Before we forget, let's add the AppNav component to our App component above the <router-view />:

+
<script setup lang="ts">
+import AppNav from './components/AppNav.vue';
+</script>
+
+<template>
+  <AppNav />
+  <hr />
+  <router-view />
+</template>
+

Next, we create the NavItem component. +We are defining a single prop which gets passed by the parent component called routeConfig which contains a whole route configuration record. +Now we can focus on the template: +Add a <router-link> and pass the route target using the unique name. +For the label of the link we can use the label from our meta information object which we defined in the router configuration.

+
<script setup lang="ts">
+import { computed } from 'vue';
+import type { RouteRecordRaw } from 'vue-router';
+
+const props = defineProps<{
+  routeConfig: RouteRecordRaw;
+}>();
+</script>
+
+<template>
+  <li class="nav-item">
+    <router-link :to="{ name: routeConfig.name }" aria-current-value="page">
+      {{ routeConfig.meta.label }}
+    </router-link>
+  </li>
+</template>
+

Great! The hardest part is now done (wasn't that tricky right?) and probably this solution already fit's for the majority. +However there are two things I would like to describe in advance, as they may be relevant for you:

+
    +
  1. How to make the navigation easily extensible
  2. +
  3. How to implement child menu items
  4. +
+

Make the navigation extensible

+

Let's assume we have an extensible app where we outsource some pages and its child route configurations and make them includable in our app. +This could for example be relevent when adding complete menus and pages for specific users with appropriate permissions.

+

Therefore we want to make our route configuration extensible, so we can pass additional routes and child routes linked with their components to our router.

+

To do this, we simply move the exported route into a function that accepts a list of route configurations as a Rest parameter.

+
/* ... */
+export function getConfiguredRouter(...pluginRoutes: RouteRecordRaw[][]) {
+  return createRouter({
+    history: createWebHistory(),
+    routes: [...routes, ...pluginRoutes.flat()],
+  });
+}
+

Next we need to adjust our main.ts file. +We pass the result received from getConfiguredRouter() containing the additional routes we want to add.

+
/* ... */
+import { getConfiguredRouter } from './router';
+import { routes } from './app-section-1/routes';
+/* ... */
+app.use(getConfiguredRouter(routes));
+/* ... */
+

Let's create a new folder app-section-1 simulating this kind of app plugin or modules containing the extensible part for our app. +Here we create another routes.ts file that holds the route configuration for this app part.

+

The configuration defines a base route that represents the main navigation item and redirects to its first child route page-1. +Here, we configure two child routes linked to their corresponding components which are created in the next step.

+
import type { RouteRecordRaw } from 'vue-router';
+
+import Page1 from './components/Page1.vue';
+import Page2 from './components/Page2.vue';
+
+export const routes: RouteRecordRaw[] = [
+  {
+    path: '/app-section-1',
+    name: 'appSection1',
+    redirect: { name: 'appSection1Page1' },
+    meta: { label: 'App Section 1' },
+    children: [
+      {
+        path: 'page-1',
+        name: 'appSection1Page1',
+        component: Page1,
+        meta: { label: 'Page 1' },
+      },
+      {
+        path: 'page-2',
+        name: 'appSection1Page2',
+        component: Page2,
+        meta: { label: 'Page 2' },
+      },
+    ],
+  },
+];
+

We are creating the components Page1 and Page2 wihtin the /src/app-section-1/components directory.

+

Their implementation follows the one of the MainPage component: They simply display their component names in the template for demo purposes.

+

Render child menu items

+

With the current version, we will already see both main navigation menu entries. +But as we configured child elements with labels, we also want to display them in the menu too. +Therefore we simply add the appropriate template in the NavItem component, as we already have everything we need by receiving the route configuration of the parent which contains all the information to render the child items.

+
<!-- ... -->
+<template>
+  <li class="nav-item">
+    <router-link :to="{ name: routeConfig.name }">
+      {{ routeConfig.meta.label }}
+    </router-link>
+    <ul v-if="routeConfig.children">
+      <li
+        class="child-item"
+        v-for="(r, index) in routeConfig.children"
+        :key="index"
+      >
+        <router-link :to="{ name: r.name }" aria-current-value="page">
+          {{ r.meta.label }}
+        </router-link>
+      </li>
+    </ul>
+  </li>
+</template>
+ +

To highlight the active menu items, we can now use the two automatically created CSS classes router-link-active and router-link-exact-active.

+ +
a.router-link-active {
+  background-color: lightblue;
+}
+a.router-link-exact-active {
+  background-color: #f3aff8;
+}
+

Conclusion

+

Passing meta information like label to the vue router configuration lets us easily build dynamic generated menus. +We no longer have to manually adjust our main navigation when adding new sites to our page as the menu is automatically extended by accessing the routes meta information. +This approach can reduce some template boilerplate.

+

You can use this approach to loosely couple whole parts of your app by adding them as separate modules without the need to add internals like the navigation titles to the main app part.

+

The whole working example can be seen in the following Stackblitz project:

+

https://stackblitz.com/edit/vue3-dynamic-menu

+
+

Thanks for Darren Cooper and Joachim Schirrmacher for reviewing this article.

+
+`;export{s as default}; diff --git a/assets/2023-04-05-vue3-openlayers-CSGWQytr.js b/assets/2023-04-05-vue3-openlayers-CSGWQytr.js new file mode 100644 index 00000000..3d0d83e5 --- /dev/null +++ b/assets/2023-04-05-vue3-openlayers-CSGWQytr.js @@ -0,0 +1,30 @@ +const e=`--- +title: 'Maintainer: vue3-openlayers' +description: Since April 2023, I am actively maintaining and evolving the vue3-openlayers library — An OpenLayers Wrapper for Vue3. +published: true +author: + name: Danny Koppenhagen + mail: mail@k9n.dev +updated: 2023-04-05 +keywords: + - Vue + - Vue3 + - OpenLayers +language: en +thumbnail: + header: images/projects/vue3-openlayers.png + card: images/projects/vue3-openlayers-small.png +--- + +

Since April 2023, I am actively maintaining and evolving the vue3-openlayers library — An OpenLayers Wrapper for Vue3. +My original intention was just to fix some bugs and add some features I needed this time in my current project. +But after a while using this project I really loved it and was motivated enough to get more involved into the project. +I contributed actively and got in touch with Melih Altıntaş, the creator of this library. +He was really supportive and made me an official Maintainer of the project. +Since then I shifted the whole project to be based on TypeScript, streamlined the APIs and added several new features and bug fixes.

+ +`;export{e as default}; diff --git a/assets/2023-05-angular16-Tmm4iENP.js b/assets/2023-05-angular16-Tmm4iENP.js new file mode 100644 index 00000000..faba5484 --- /dev/null +++ b/assets/2023-05-angular16-Tmm4iENP.js @@ -0,0 +1,27 @@ +const n=`--- +title: Angular 16 ist da! Die wichtigsten Neuerungen im Überblick +description: "Am 4. Mai 2023 erschien die neue Major-Version von Angular: Angular 16! Das Angular-Team hat einige neue Features und Konzepte in diesem Release verpackt. Die größte Neuerung sind die Signals, die als erste Developer Preview in der neuen Version ausprobiert werden können." +published: true +author: + name: Angular Buch Team + mail: team@angular-buch.com +created: 2023-05-22 +updated: 2023-05-22 +publishedAt: + name: angular-buch.com + url: https://angular-buch.com/blog/2023-05-angular16 + logo: https://angular-buch.com/assets/img/brand-400.png + linkExternal: true +keywords: + - Angular + - Angular 16 + - Signals + - Hydration + - Standalone Components +language: de +thumbnail: + header: https://website-articles.angular-buch.com/2023-05-angular16/angular16.jpg +series: angular-update +--- + +`;export{n as default}; diff --git a/assets/2023-10-vue2-vue3-migration-DtQUtC3O.js b/assets/2023-10-vue2-vue3-migration-DtQUtC3O.js new file mode 100644 index 00000000..7252462d --- /dev/null +++ b/assets/2023-10-vue2-vue3-migration-DtQUtC3O.js @@ -0,0 +1,27 @@ +const e=`--- +title: 'How we migrated our Vue 2 enterprise project to Vue 3' +description: 'Even if Vue 3 isn’t a new thing anymore, there are still a lot of Vue 2 apps which haven’t been migrated yet. In this blog post I will give you an insight into how my team mastered the migration and what pitfalls we faced.' +published: true +author: + name: Danny Koppenhagen + mail: mail@k9n.dev +created: 2023-10-26 +updated: 2023-10-26 +publishedAt: + name: DB Systel Tech Stories + url: https://dbsystel.github.io/tech-stories/blog/2023/2023-08-21-vue2-vue3-migration.html + logo: https://dbsystel.github.io/tech-stories/images/home.png + linkExternal: true +keywords: + - Vue + - Vue 2 + - Vue 3 + - Migration + - Pinia + - Vite +language: en +thumbnail: + header: https://dbsystel.github.io/tech-stories/images/home.png +--- + +`;export{e as default}; diff --git a/assets/2023-11-20-einfuehrung-barrierefreiheit-web-Dr0M48LC.js b/assets/2023-11-20-einfuehrung-barrierefreiheit-web-Dr0M48LC.js new file mode 100644 index 00000000..d731aa8d --- /dev/null +++ b/assets/2023-11-20-einfuehrung-barrierefreiheit-web-Dr0M48LC.js @@ -0,0 +1,26 @@ +const e=`--- +title: 'A11y: EAA, BFSG, WCAG, WAI, ARIA, WTF? – it’s for the people stupid!' +description: 'Accessibility betrifft uns täglich und immer, wenn wir Software verwenden. Es ist an uns, diese umzusetzen. In unserem Talk von der W-JAX am 07.11.2023 zeigen wir euch, wie ihr eure Webanwendungen von Beginn an mit einfachen Mitteln zu einem hohen Grad barrierefrei gestaltet und entwickelt.' +published: true +author: + name: Danny Koppenhagen + mail: mail@k9n.dev +created: 2023-11-20 +updated: 2023-11-20 +publishedAt: + name: DB Systel Tech Stories + url: https://techstories.dbsystel.de/blog/2023/2023-11-20-einfuehrung-barrierefreiheit-web.html + logo: https://dbsystel.github.io/tech-stories/images/home.png + linkExternal: true +keywords: + - JavaScript + - Semantic HTML + - a11y + - Barrierefreiheit + - accessibility +language: de +thumbnail: + header: https://dbsystel.github.io/tech-stories/images/home.png +--- + +`;export{e as default}; diff --git a/assets/2023-11-angular17-CZIpHVew.js b/assets/2023-11-angular17-CZIpHVew.js new file mode 100644 index 00000000..1930e706 --- /dev/null +++ b/assets/2023-11-angular17-CZIpHVew.js @@ -0,0 +1,31 @@ +const n=`--- +title: Angular 17 ist da! Die wichtigsten Neuerungen im Überblick +description: "Es ist wieder ein halbes Jahr vorbei: Anfang November 2023 erschien die neue Major-Version Angular 17! Der neue Control Flow und Deferred Loading sind nur einige der neuen Features. Wir fassen die wichtigsten Neuigkeiten zu Angular 17 in diesem Blogpost zusammen." +published: true +author: + name: Angular Buch Team + mail: team@angular-buch.com +created: 2023-11-06 +updated: 2023-11-08 +publishedAt: + name: angular-buch.com + url: https://angular-buch.com/blog/2023-11-angular17 + logo: https://angular-buch.com/assets/img/brand-400.png + linkExternal: true +keywords: + - Angular + - Angular 17 + - Signals + - Control Flow + - Deferrable Views + - View Transition API + - ESBuild + - Logo + - angular.dev +language: de +thumbnail: + header: https://website-articles.angular-buch.com/2023-11-angular17/angular17.jpg +series: angular-update +--- + +`;export{n as default}; diff --git a/assets/2023-12-29-analog-publish-gh-pages-DFCPSQAw.js b/assets/2023-12-29-analog-publish-gh-pages-DFCPSQAw.js new file mode 100644 index 00000000..12a5ece8 --- /dev/null +++ b/assets/2023-12-29-analog-publish-gh-pages-DFCPSQAw.js @@ -0,0 +1,33 @@ +const e=`--- +title: 'Analog Publish GitHub Pages' +description: When I migrated my personal website/blog to use AnalogJS, I created a GitHub Action which simplifies the deployment at GitHub Pages. +published: true +author: + name: Danny Koppenhagen + mail: mail@k9n.dev +updated: 2023-12-29 +keywords: + - AnalogJS + - GitHub Pages + - Angular + - SSG + - SSR +language: en +thumbnail: + header: images/projects/analog-publish-gh-pages.png + card: images/projects/analog-publish-gh-pages-small.png +--- + +

When I migrated my personal website/blog (this site) to use AnalogJS in December 2023, I created a GitHub Action which simplifies the deployment at GitHub Pages.

+

Analog is a meta-framework on top of Angular which includes a static site generator, file based routing and other opinionated features. +I decided to switch from Scully to Analog since Scullys evolvement seems currently to stuck and it was hard to update my site to newer major Angular versions (16/17). +I like to have an almost evergreen environment and since I followed the development from Analog by Brandon Roberts, wanted to try it out. +Since then, I really love to use AnalogJS: it's modern, opinionated and comes with all the features I need for my site and blog.

+

The action encapsulates the issues I ran into when I deployed my site the first time +(e. g. resources that couldn't be found because of a missing .nojekyll file which caused a side effect that files starting with an underscore (_) are being ignored). +I made this action quite simple, so it will install the dependencies, build the static site and deploy it by copying over the static site artifacts into the gh-pages branch.

+ +`;export{e as default}; diff --git a/assets/2024-01-16-accessibility-in-angular-B6Ndc1Hv.js b/assets/2024-01-16-accessibility-in-angular-B6Ndc1Hv.js new file mode 100644 index 00000000..fec0374b --- /dev/null +++ b/assets/2024-01-16-accessibility-in-angular-B6Ndc1Hv.js @@ -0,0 +1,27 @@ +const e=`--- +title: 'Accessibility in Angular – Angulars features for a better and more inclusive web' +description: 'The Angular Framework brings us some built-in features to help in creating accessible components and applications by wrapping common best practices and techniques. In this talk at the Angular Berlin Meetup, I presented these concepts and features.' +published: true +author: + name: Danny Koppenhagen + mail: mail@k9n.dev +created: 2024-01-16 +updated: 2024-01-16 +publishedAt: + name: DB Systel Tech Stories + url: https://techstories.dbsystel.de/blog/2024/2024-01-16-Accessibility-in-Angular.html + logo: https://dbsystel.github.io/tech-stories/images/home.png + linkExternal: true +keywords: + - Angular + - JavaScript + - TypeScript + - Semantic HTML + - a11y + - accessibility +language: en +thumbnail: + header: https://techstories.dbsystel.de/images/20240116-a11y-Angular/a11y-angular.png +--- + +`;export{e as default}; diff --git a/assets/2024-05-modern-angular-bm-C3SrdMxH.js b/assets/2024-05-modern-angular-bm-C3SrdMxH.js new file mode 100644 index 00000000..4b29c871 --- /dev/null +++ b/assets/2024-05-modern-angular-bm-C3SrdMxH.js @@ -0,0 +1,36 @@ +const n=`--- +title: 'Modern Angular: den BookMonkey migrieren' +description: | + Angular erlebt einen Aufschwung: + Mit den letzten Major-Versionen des Frameworks wurden einige wichtige neue Konzepte und Features eingeführt. + Wir berichten darüber regelmäßig in unseren Blogposts zu den Angular-Releases. + In diesem Artikel wollen wir das Beispielprojekt "BookMonkey" aus dem Angular-Buch aktualisieren und die neuesten Konzepte von Angular praktisch einsetzen. +published: true +author: + name: Danny Koppenhagen und Ferdinand Malcher + mail: team@angular-buch.com +created: 2024-05-05 +updated: 2024-05-05 +publishedAt: + name: angular-buch.com + url: https://angular-buch.com/blog/2024-05-modern-angular-bm + logo: https://angular-buch.com/assets/img/brand-400.png + linkExternal: true +keywords: + - ESBuild + - Application Builder + - Standalone Components + - inject + - Functional Interceptor + - Control Flow + - Signals + - Router Input Binding + - Functional Outputs + - NgOptimizedImage + - BookMonkey +language: de +thumbnail: + header: https://website-articles.angular-buch.com/2024-05-modern-angular-bm/header-modernangular.jpg +--- + +`;export{n as default}; diff --git a/assets/2024-06-angular18-BefWe54R.js b/assets/2024-06-angular18-BefWe54R.js new file mode 100644 index 00000000..84c4c6fc --- /dev/null +++ b/assets/2024-06-angular18-BefWe54R.js @@ -0,0 +1,28 @@ +const e=`--- +title: "Angular 18 ist da: Signals, Signals, Signals!" +description: "Und schon wieder ist ein halbes Jahr vergangen: Angular Version 18 ist jetzt verfügbar! In den letzten Versionen wurden viele neue Funktionen und Verbesserungen eingeführt. Diesmal lag der Fokus darauf, die bereits ausgelieferten APIs zu stabilisieren, diverse Feature Requests zu bearbeiten und eines der am meisten nachgefragten Projekte auf der Roadmap experimentell zu veröffentlichen: die Zoneless Change Detection." +published: true +author: + name: Angular Buch Team + mail: team@angular-buch.com +created: 2024-06-14 +updated: 2024-06-14 +publishedAt: + name: angular-buch.com + url: https://angular-buch.com/blog/2024-06-angular18 + logo: https://angular-buch.com/assets/img/brand-400.png + linkExternal: true +keywords: + - Angular + - Angular 18 + - Zoneless + - Zoneless Change Detection + - Signals + - Material 3 +language: de +thumbnail: + header: https://website-articles.angular-buch.com/2024-06-angular18/angular18.jpg +series: angular-update +--- + +`;export{e as default}; diff --git a/assets/2024-07-angular-push-notifications-C4TXHUcO.js b/assets/2024-07-angular-push-notifications-C4TXHUcO.js new file mode 100644 index 00000000..3d335580 --- /dev/null +++ b/assets/2024-07-angular-push-notifications-C4TXHUcO.js @@ -0,0 +1,24 @@ +const n=`--- +title: 'Supercharge Your Angular PWA with Push Notifications: From Setup to Debugging' +description: 'In modern web applications, push notifications have become an essential feature for engaging users. Service workers are crucial in enabling this functionality by running scripts in the background, independent of a web page. This guide will walk you through setting up a service worker with push notifications in Angular, including testing, verifying, debugging, and avoiding common pitfalls.' +published: true +author: + name: Danny Koppenhagen + mail: mail@k9n.dev +created: 2024-07-02 +updated: 2024-07-02 +publishedAt: + name: DB Systel Tech Stories + url: https://techstories.dbsystel.de/blog/2024/2024-07-02-Angular-Push-Notifications.html + logo: https://dbsystel.github.io/tech-stories/images/home.png + linkExternal: true +keywords: + - Angular + - WebPush + - PWA +language: en +thumbnail: + header: https://dbsystel.github.io/tech-stories/images/home.png +--- + +`;export{n as default}; diff --git a/assets/2024-11-angular19-C7RcREZl.js b/assets/2024-11-angular19-C7RcREZl.js new file mode 100644 index 00000000..ebd4058c --- /dev/null +++ b/assets/2024-11-angular19-C7RcREZl.js @@ -0,0 +1,28 @@ +const e=`--- +title: "Angular 19 ist da!" +description: "Neben grauen Herbsttagen hat der November in Sachen Angular einiges zu bieten: Am 19. November 2024 wurde die neue Major-Version Angular 19 releaset! Angular bringt mit der Resource API und dem Linked Signal einige neue Features mit. Standalone Components müssen außerdem nicht mehr explizit als solche markiert werden. Wir stellen in diesem Blogpost alle wichtigen Neuerungen vor!" +published: true +author: + name: Angular Buch Team + mail: team@angular-buch.com +created: 2024-11-19 +updated: 2024-11-19 +publishedAt: + name: angular-buch.com + url: https://angular-buch.com/blog/2024-11-angular19 + logo: https://angular-buch.com/assets/img/brand-400.png + linkExternal: true +keywords: + - Angular + - Angular 19 + - Linked Signal + - Resource API + - Standalone Components + - Effects +language: de +thumbnail: + header: https://website-articles.angular-buch.com/2024-11-angular19/angular19.jpg +series: angular-update +--- + +`;export{e as default}; diff --git a/assets/Tableau10-B-NsZVaP.js b/assets/Tableau10-B-NsZVaP.js new file mode 100644 index 00000000..4223ec34 --- /dev/null +++ b/assets/Tableau10-B-NsZVaP.js @@ -0,0 +1 @@ +function o(e){for(var c=e.length/6|0,n=new Array(c),a=0;athis.metaService.createMetaDataForPost("projects",t)))}editOnGithubLink(t){return`https://github.com/d-koppenhagen/k9n.dev/edit/main${t}.md`}};e.ɵfac=function(n){return new(n||e)},e.ɵcmp=C({type:e,selectors:[["ng-component"]],decls:4,vars:3,consts:[[1,"wrapper","alt"],[1,"inner"],[1,"project-header"],["alt","",3,"src"],[1,"project-content"],["classes","markdown-content",3,"lang","content"],[1,"edit-on-github"],["target","_blank","rel","noopener noreferrer",3,"href"]],template:function(n,r){if(n&1&&(o(0,"article",0)(1,"div",1),_(2,O,9,5),w(3,"async"),s()()),n&2){let p;i(2),m((p=M(3,1,r.post$))?2:-1,p)}},dependencies:[k,P],styles:[`.wrapper[_ngcontent-%COMP%] { + margin-top: 0; +} + +h1[_ngcontent-%COMP%] { + font-size: 1.4em; +} + +h2.sub-heading[_ngcontent-%COMP%] { + font-size: 0.9em; +} + +.actions[_ngcontent-%COMP%] { + display: flex; + flex-wrap: wrap; + gap: 0.2rem; +} + +.edit-on-github[_ngcontent-%COMP%] { + margin: 30px 0; +} + +[_ngcontent-%COMP%]::slotted(h1) { + color: rgb(51, 6, 37); + background-color: rgb(248, 211, 236); + padding: 5px; + border-radius: 5px; + font-size: 1.4em; + width: fit-content; +} + +.project-header[_ngcontent-%COMP%] img[_ngcontent-%COMP%] { + display: block; + inline-size: 100%; + block-size: auto; + object-fit: cover; + border-radius: 1ch; + overflow: hidden; + box-shadow: 0 3px 2px hsla(0, 0%, 0%, 0.02), 0 7px 5px hsla(0, 0%, 0%, 0.03), 0 13px 10px hsla(0, 0%, 0%, 0.04), 0 22px 18px hsla(0, 0%, 0%, 0.05), 0 42px 33px hsla(0, 0%, 0%, 0.06), 0 100px 80px hsla(0, 0%, 0%, 0.07); + margin-bottom: 1rem; +}`]});let d=e;export{d as default}; diff --git a/assets/_slug_.page-D8Ukg_aG.js b/assets/_slug_.page-D8Ukg_aG.js new file mode 100644 index 00000000..4582dd8d --- /dev/null +++ b/assets/_slug_.page-D8Ukg_aG.js @@ -0,0 +1,108 @@ +import{j as m,P as k,a8 as O,a9 as w,l as y,ɵ as v,w as d,aa as f,x as l,ab as x,ac as T,ad as A,ae as B,a4 as S,a as o,e as u,b as _,d as a,G as s,y as i,I as r,W as C,a5 as p,Q as I,R as j,T as z,V as P,a7 as L,M}from"./index-Be9IN4QR.js";import{S as F,a as D}from"./sticky-navigation.component-CKipR5YJ.js";import{M as G}from"./meta.service-T2YaP4d8.js";const $=t=>({keyword:t});function R(t,e){if(t&1&&u(0,"img",4),t&2){const n=s(2);r("src",n.attributes.thumbnail.header,p)}}function q(t,e){if(t&1&&(o(0,"span")(1,"time",16),_(2),f(3,"date"),a()()),t&2){const n=s(3);i(2),C(x(3,1,n.attributes.updated))}}function E(t,e){if(t&1&&(o(0,"span")(1,"button",17),_(2),a()()),t&2){const n=e.$implicit;i(),r("queryParams",L(3,$,n)),M("aria-label","Stichwort: "+n),i(),P(" ",n," ")}}function H(t,e){if(t&1&&u(0,"img",19),t&2){const n=s(4);r("src",n.attributes.publishedAt.logo,p)}}function N(t,e){if(t&1&&(o(0,"div",15)(1,"div")(2,"a",18),d(3,H,1,1,"img",19),a()(),o(4,"div"),_(5," Original veröffentlicht auf "),o(6,"a",20),_(7),a(),_(8,". "),a()()),t&2){const n=s(3);i(2),r("href",n.attributes.publishedAt.url,p)("lang",n.attributes.language||"de"),M("aria-label","Original veröffentlicht auf "+n.attributes.publishedAt.name),i(),l(n.attributes.publishedAt.logo?3:-1),i(3),r("href",n.attributes.publishedAt.url,p)("lang",n.attributes.language||"de"),i(),C(n.attributes.publishedAt.name)}}function Q(t,e){if(t&1&&(o(0,"section",5)(1,"div",12),d(2,q,4,3,"span"),o(3,"h2",13),_(4,"Stichwörter"),a()(),o(5,"div",14),I(6,E,3,5,"span",null,j),a(),d(8,N,9,7,"div",15),a()),t&2){const n=s(2);i(2),l(n.attributes.updated?2:-1),i(4),z(n.attributes.keywords),i(2),l(n.attributes.publishedAt&&n.attributes.publishedAt.name&&n.attributes.publishedAt.url?8:-1)}}function U(t,e){if(t&1&&(o(0,"a",20),_(1,"Dev.to"),a()),t&2){const n=s(3);r("href",n.attributes.linked.devTo,p)("lang",n.attributes.language||"de")}}function V(t,e){t&1&&_(0," | ")}function W(t,e){if(t&1&&(o(0,"a",20),_(1,"Medium.com"),a()),t&2){const n=s(3);r("href",n.attributes.linked.medium,p)("lang",n.attributes.language||"de")}}function Z(t,e){if(t&1&&(o(0,"section",6),d(1,U,2,2,"a",20)(2,V,1,0)(3,W,2,2,"a",20),a()),t&2){const n=s(2);i(),l(n.attributes.linked.devTo?1:-1),i(),l(n.attributes.linked.devTo&&n.attributes.linked.medium?2:-1),i(),l(n.attributes.linked.medium?3:-1)}}function J(t,e){if(t&1&&u(0,"dk-series-list",7),t&2){const n=s(2);r("series",n.attributes.series)}}function K(t,e){if(t&1&&(o(0,"a",10),_(1),a()),t&2){const n=s(2);r("href",n.attributes.publishedAt.url,p)("lang",n.attributes.language||"de"),i(),P("Zum externen Artikel auf ",n.attributes.publishedAt.name,"")}}function X(t,e){if(t&1&&(o(0,"div",11)(1,"a",21),_(2," Auf GitHub bearbeiten "),a()()),t&2){const n=s(2),g=s();i(),r("href",g.editOnGithubLink(n.filename),p)}}function Y(t,e){if(t&1&&(o(0,"article",0),u(1,"dk-sticky-navigation",1),o(2,"div",2)(3,"h1"),_(4),a(),o(5,"section",3),d(6,R,1,1,"img",4),a(),d(7,Q,9,2,"section",5)(8,Z,4,3,"section",6)(9,J,1,1,"dk-series-list",7),o(10,"section",8),u(11,"analog-markdown",9),d(12,K,2,3,"a",10)(13,X,3,1,"div",11),a()()()),t&2){const n=s();i(),r("content",n.content),i(3),C(n.attributes.title),i(2),l(n.attributes.thumbnail&&n.attributes.thumbnail.header?6:-1),i(),l(n.attributes.keywords?7:-1),i(),l(n.attributes.linked?8:-1),i(),l(n.attributes.series?9:-1),i(2),r("lang",n.attributes.language||"de")("content",n.content),i(),l(!n.content&&n.attributes.publishedAt&&n.attributes.publishedAt.name&&n.attributes.publishedAt.url?12:13)}}function nn(t,e){if(t&1&&d(0,Y,14,9,"article",0),t&2){const n=e;l(n.attributes&&n.content?0:-1)}}const c=class c{constructor(){this.metaService=m(G),this.platformId=m(k),this.post$=O({param:"slug",subdirectory:"blog"}).pipe(w(e=>(console.log("post",e),this.metaService.createMetaDataForPost("blog",e)))),this.isBrowser=y(this.platformId)}editOnGithubLink(e){return`https://github.com/d-koppenhagen/k9n.dev/edit/main${e}.md`}};c.ɵfac=function(n){return new(n||c)},c.ɵcmp=v({type:c,selectors:[["ng-component"]],decls:2,vars:3,consts:[[1,"wrapper","alt"],[3,"content"],[1,"inner"],[1,"blog-header"],["alt","",1,"adaptive-glass",3,"src"],[1,"extra-section"],[1,"external-links"],[3,"series"],[1,"blog-content"],["classes","markdown-content",3,"lang","content"],["target","_blank",1,"external-article",3,"href","lang"],[1,"edit-on-github"],[1,"extra-info"],[1,"sub-heading"],[1,"actions"],[1,"published-at"],["datetime","2001-05-15 19:00"],["routerLink","/blog",1,"button","xs",3,"queryParams"],[1,"published-at-link",3,"href","lang"],["alt","",1,"published-at-logo",3,"src"],[3,"href","lang"],["target","_blank","rel","noopener noreferrer",3,"href"]],template:function(n,g){if(n&1&&(d(0,nn,1,1),f(1,"async")),n&2){let b;l((b=x(1,1,g.post$))?0:-1,b)}},dependencies:[T,A,B,S,F,D],styles:[`.wrapper[_ngcontent-%COMP%] { + margin-top: 0; +} + +h1[_ngcontent-%COMP%] { + font-size: 1.4em; +} + +.extra-info[_ngcontent-%COMP%] { + display: flex; + flex-direction: row-reverse; + justify-content: space-between; + align-content: baseline; +} + +.actions[_ngcontent-%COMP%] { + display: flex; + flex-wrap: wrap; + gap: 0.2rem; +} + +.published-at[_ngcontent-%COMP%], +.external-links[_ngcontent-%COMP%], +.edit-on-github[_ngcontent-%COMP%] { + margin: 30px 0; +} + +.published-at[_ngcontent-%COMP%] { + height: 50px; +} + +.published-at[_ngcontent-%COMP%] { + display: flex; + align-items: center; + line-height: 1.2em; +} + +.published-at[_ngcontent-%COMP%] .published-at-link[_ngcontent-%COMP%] { + text-decoration: none; + border: none; + min-width: 120px; +} + +.published-at[_ngcontent-%COMP%] .published-at-link[_ngcontent-%COMP%] .published-at-logo[_ngcontent-%COMP%] { + padding-right: 20px; + max-height: 60px; +} + +.external-article[_ngcontent-%COMP%] { + font-weight: bold; + font-size: 1.2rem; +} + +.extra-section[_ngcontent-%COMP%] .actions[_ngcontent-%COMP%] { + padding-bottom: 10px; +} + +span.image[_ngcontent-%COMP%] > img.thumbnail[_ngcontent-%COMP%] { + max-width: 80px; +} + +@media screen and (max-width: 560px) { + .blog-footer[_ngcontent-%COMP%] { + position: fixed; + bottom: 0px; + left: 0; + width: 100%; + background: #2e3141; + opacity: 0.9; + z-index: 1; + padding: 0 35px; + } + .blog-footer[_ngcontent-%COMP%] > h2[_ngcontent-%COMP%], + .blog-footer[_ngcontent-%COMP%] h3[_ngcontent-%COMP%] { + display: none; + } + .blog-footer[_ngcontent-%COMP%] > ul[_ngcontent-%COMP%] { + margin: 10px 0px; + display: flex; + justify-content: space-between; + } + .blog-footer[_ngcontent-%COMP%] > ul[_ngcontent-%COMP%] > li[_ngcontent-%COMP%] { + padding-left: 0px; + } +} + +@media screen and (max-width: 460px) { + .extra-info[_ngcontent-%COMP%] { + display: block; + } +} + +@media screen and (max-width: 360px) { + .blog-footer[_ngcontent-%COMP%] { + padding: 0 24px; + } +} + +.blog-header[_ngcontent-%COMP%] img[_ngcontent-%COMP%] { + display: block; + inline-size: 100%; + block-size: auto; + object-fit: cover; + border-radius: 1ch; + overflow: hidden; + box-shadow: 0 3px 2px hsla(0, 0%, 0%, 0.02), 0 7px 5px hsla(0, 0%, 0%, 0.03), 0 13px 10px hsla(0, 0%, 0%, 0.04), 0 22px 18px hsla(0, 0%, 0%, 0.05), 0 42px 33px hsla(0, 0%, 0%, 0.06), 0 100px 80px hsla(0, 0%, 0%, 0.07); + margin-bottom: 1rem; +}`]});let h=c;export{h as default}; diff --git a/assets/_slug_.page-RrGMKIoL.js b/assets/_slug_.page-RrGMKIoL.js new file mode 100644 index 00000000..700cca82 --- /dev/null +++ b/assets/_slug_.page-RrGMKIoL.js @@ -0,0 +1,41 @@ +import{j as h,P,a8 as v,a9 as w,l as y,ɵ as A,w as d,aa as C,x as s,ab as k,ac as M,ad as O,ae as S,a4 as I,a as i,e as p,b as l,d as o,y as n,I as r,W as m,G as _,a5 as c,Q as z,R as L,T as j,V as x,a7 as B,M as T}from"./index-Be9IN4QR.js";import{S as F,a as D}from"./sticky-navigation.component-CKipR5YJ.js";import{M as G}from"./meta.service-T2YaP4d8.js";const $=e=>({keyword:e});function R(e,a){if(e&1&&p(0,"img",4),e&2){const t=_();r("src",t.attributes.thumbnail.header,c)}}function q(e,a){if(e&1&&(i(0,"span")(1,"time",16),l(2),C(3,"date"),o()()),e&2){const t=_(2);n(2),m(k(3,1,t.attributes.updated))}}function E(e,a){if(e&1&&(i(0,"span")(1,"button",17),l(2),o()()),e&2){const t=a.$implicit;n(),r("queryParams",B(3,$,t)),T("aria-label","Stichwort: "+t),n(),x(" ",t," ")}}function H(e,a){if(e&1&&p(0,"img",19),e&2){const t=_(3);r("src",t.attributes.publishedAt.logo,c)}}function N(e,a){if(e&1&&(i(0,"div",15)(1,"div")(2,"a",18),d(3,H,1,1,"img",19),o()(),i(4,"div"),l(5," Original veröffentlicht auf "),i(6,"a",20),l(7),o(),l(8,". "),o()()),e&2){const t=_(2);n(2),r("href",t.attributes.publishedAt.url,c)("lang",t.attributes.language||"de"),T("aria-label","Original veröffentlicht auf "+t.attributes.publishedAt.name),n(),s(t.attributes.publishedAt.logo?3:-1),n(3),r("href",t.attributes.publishedAt.url,c)("lang",t.attributes.language||"de"),n(),m(t.attributes.publishedAt.name)}}function Q(e,a){if(e&1&&(i(0,"section",5)(1,"div",12),d(2,q,4,3,"span"),i(3,"h2",13),l(4,"Stichwörter"),o()(),i(5,"div",14),z(6,E,3,5,"span",null,L),o(),d(8,N,9,7,"div",15),o()),e&2){const t=_();n(2),s(t.attributes.updated?2:-1),n(4),j(t.attributes.keywords),n(2),s(t.attributes.publishedAt&&t.attributes.publishedAt.name&&t.attributes.publishedAt.url?8:-1)}}function U(e,a){if(e&1&&(i(0,"a",20),l(1,"Dev.to"),o()),e&2){const t=_(2);r("href",t.attributes.linked.devTo,c)("lang",t.attributes.language||"de")}}function V(e,a){e&1&&l(0," | ")}function W(e,a){if(e&1&&(i(0,"a",20),l(1,"Medium.com"),o()),e&2){const t=_(2);r("href",t.attributes.linked.medium,c)("lang",t.attributes.language||"de")}}function Z(e,a){if(e&1&&(i(0,"section",6),d(1,U,2,2,"a",20)(2,V,1,0)(3,W,2,2,"a",20),o()),e&2){const t=_();n(),s(t.attributes.linked.devTo?1:-1),n(),s(t.attributes.linked.devTo&&t.attributes.linked.medium?2:-1),n(),s(t.attributes.linked.medium?3:-1)}}function J(e,a){if(e&1&&p(0,"dk-series-list",7),e&2){const t=_();r("series",t.attributes.series)}}function K(e,a){if(e&1&&(i(0,"a",10),l(1),o()),e&2){const t=_();r("href",t.attributes.publishedAt.url,c)("lang",t.attributes.language||"de"),n(),x("Zum externen Artikel auf ",t.attributes.publishedAt.name,"")}}function X(e,a){if(e&1&&(i(0,"div",11)(1,"a",21),l(2," Auf GitHub bearbeiten "),o()()),e&2){const t=_(),b=_();n(),r("href",b.editOnGithubLink(t.filename),c)}}function Y(e,a){if(e&1&&(i(0,"article",0),p(1,"dk-sticky-navigation",1),i(2,"div",2)(3,"h1"),l(4),o(),i(5,"section",3),d(6,R,1,1,"img",4),o(),d(7,Q,9,2,"section",5)(8,Z,4,3,"section",6)(9,J,1,1,"dk-series-list",7),i(10,"section",8),p(11,"analog-markdown",9),d(12,K,2,3,"a",10)(13,X,3,1,"div",11),o()()()),e&2){const t=a;n(),r("content",t.content),n(3),m(t.attributes.title),n(2),s(t.attributes.thumbnail&&t.attributes.thumbnail.header?6:-1),n(),s(t.attributes.keywords?7:-1),n(),s(t.attributes.linked?8:-1),n(),s(t.attributes.series?9:-1),n(2),r("lang",t.attributes.language||"de")("content",t.content),n(),s(!t.content&&t.attributes.publishedAt&&t.attributes.publishedAt.name&&t.attributes.publishedAt.url?12:13)}}const u=class u{constructor(){this.metaService=h(G),this.platformId=h(P),this.post$=v({param:"slug",subdirectory:"talks"}).pipe(w(a=>this.metaService.createMetaDataForPost("talks",a))),this.isBrowser=!1,this.isBrowser=y(this.platformId)}editOnGithubLink(a){return`https://github.com/d-koppenhagen/k9n.dev/edit/main${a}.md`}};u.ɵfac=function(t){return new(t||u)},u.ɵcmp=A({type:u,selectors:[["ng-component"]],decls:2,vars:3,consts:[[1,"wrapper","alt"],[3,"content"],[1,"inner"],[1,"blog-header"],["alt","",1,"adaptive-glass",3,"src"],[1,"extra-section"],[1,"external-links"],[3,"series"],[1,"blog-content"],["classes","markdown-content",3,"lang","content"],["target","_blank",1,"external-article",3,"href","lang"],[1,"edit-on-github"],[1,"extra-info"],[1,"sub-heading"],[1,"actions"],[1,"published-at"],["datetime","2001-05-15 19:00"],["routerLink","/blog",1,"button","xs",3,"queryParams"],[1,"published-at-link",3,"href","lang"],["alt","",1,"published-at-logo",3,"src"],[3,"href","lang"],["target","_blank","rel","noopener noreferrer",3,"href"]],template:function(t,b){if(t&1&&(d(0,Y,14,9,"article",0),C(1,"async")),t&2){let g;s((g=k(1,1,b.post$))?0:-1,g)}},dependencies:[M,O,S,I,F,D],styles:[`.wrapper[_ngcontent-%COMP%] { + margin-top: 0; +} + +h1[_ngcontent-%COMP%] { + font-size: 1.4em; +} + +h2.sub-heading[_ngcontent-%COMP%] { + font-size: 0.9em; +} + +.actions[_ngcontent-%COMP%] { + display: flex; + flex-wrap: wrap; + gap: 0.2rem; +} + +.edit-on-github[_ngcontent-%COMP%] { + margin: 30px 0; +} + +[_ngcontent-%COMP%]::slotted(h1) { + color: rgb(51, 6, 37); + background-color: rgb(248, 211, 236); + padding: 5px; + border-radius: 5px; + font-size: 1.4em; + width: fit-content; +} + +.project-header[_ngcontent-%COMP%] img[_ngcontent-%COMP%] { + display: block; + inline-size: 100%; + block-size: auto; + object-fit: cover; + border-radius: 1ch; + overflow: hidden; + box-shadow: 0 3px 2px hsla(0, 0%, 0%, 0.02), 0 7px 5px hsla(0, 0%, 0%, 0.03), 0 13px 10px hsla(0, 0%, 0%, 0.04), 0 22px 18px hsla(0, 0%, 0%, 0.05), 0 42px 33px hsla(0, 0%, 0%, 0.06), 0 100px 80px hsla(0, 0%, 0%, 0.07); + margin-bottom: 1rem; +}`]});let f=u;export{f as default}; diff --git a/assets/arc-DLmlFMgC.js b/assets/arc-DLmlFMgC.js new file mode 100644 index 00000000..6867adc6 --- /dev/null +++ b/assets/arc-DLmlFMgC.js @@ -0,0 +1 @@ +import{w as ln,c as Q}from"./path-CbwjOpE9.js";import{aM as an,aN as X,aO as I,aP as rn,aQ as y,aI as on,aR as B,aS as _,aT as un,aU as t,aV as sn,aW as tn,aX as fn}from"./mermaid.core-B_tqKmhs.js";function cn(l){return l.innerRadius}function yn(l){return l.outerRadius}function gn(l){return l.startAngle}function mn(l){return l.endAngle}function pn(l){return l&&l.padAngle}function dn(l,h,q,O,v,R,U,a){var D=q-l,i=O-h,n=U-v,m=a-R,r=m*D-n*i;if(!(r*ru*u+W*W&&(M=w,N=d),{cx:M,cy:N,x01:-n,y01:-m,x11:M*(v/T-1),y11:N*(v/T-1)}}function vn(){var l=cn,h=yn,q=Q(0),O=null,v=gn,R=mn,U=pn,a=null,D=ln(i);function i(){var n,m,r=+l.apply(this,arguments),s=+h.apply(this,arguments),f=v.apply(this,arguments)-rn,c=R.apply(this,arguments)-rn,V=un(c-f),o=c>f;if(a||(a=n=D()),sy))a.moveTo(0,0);else if(V>on-y)a.moveTo(s*X(f),s*I(f)),a.arc(0,0,s,f,c,!o),r>y&&(a.moveTo(r*X(c),r*I(c)),a.arc(0,0,r,c,f,o));else{var p=f,g=c,A=f,T=c,P=V,E=V,M=U.apply(this,arguments)/2,N=M>y&&(O?+O.apply(this,arguments):B(r*r+s*s)),w=_(un(s-r)/2,+q.apply(this,arguments)),d=w,x=w,e,u;if(N>y){var W=sn(N/r*I(M)),C=sn(N/s*I(M));(P-=W*2)>y?(W*=o?1:-1,A+=W,T-=W):(P=0,A=T=(f+c)/2),(E-=C*2)>y?(C*=o?1:-1,p+=C,g-=C):(E=0,p=g=(f+c)/2)}var j=s*X(p),z=s*I(p),F=r*X(T),G=r*I(T);if(w>y){var H=s*X(g),J=s*I(g),L=r*X(A),Y=r*I(A),S;if(Vy?x>y?(e=K(L,Y,j,z,s,x,o),u=K(H,J,F,G,s,x,o),a.moveTo(e.cx+e.x01,e.cy+e.y01),xy)||!(P>y)?a.lineTo(F,G):d>y?(e=K(F,G,H,J,r,-d,o),u=K(j,z,L,Y,r,-d,o),a.lineTo(e.cx+e.x01,e.cy+e.y01),d"u"&&(w.yylloc={});var J=w.yylloc;t.push(J);var me=w.options&&w.options.ranges;typeof K.yy.parseError=="function"?this.parseError=K.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function _e(){var P;return P=u.pop()||w.lex()||C,typeof P!="number"&&(P instanceof Array&&(u=P,P=u.pop()),P=s.symbols_[P]||P),P}for(var I,M,z,Q,W={},X,B,ae,G;;){if(M=i[i.length-1],this.defaultActions[M]?z=this.defaultActions[M]:((I===null||typeof I>"u")&&(I=_e()),z=m[M]&&m[M][I]),typeof z>"u"||!z.length||!z[0]){var $="";G=[];for(X in m[M])this.terminals_[X]&&X>F&&G.push("'"+this.terminals_[X]+"'");w.showPosition?$="Parse error on line "+(R+1)+`: +`+w.showPosition()+` +Expecting `+G.join(", ")+", got '"+(this.terminals_[I]||I)+"'":$="Parse error on line "+(R+1)+": Unexpected "+(I==C?"end of input":"'"+(this.terminals_[I]||I)+"'"),this.parseError($,{text:w.match,token:this.terminals_[I]||I,line:w.yylineno,loc:J,expected:G})}if(z[0]instanceof Array&&z.length>1)throw new Error("Parse Error: multiple actions possible at state: "+M+", token: "+I);switch(z[0]){case 1:i.push(I),h.push(w.yytext),t.push(w.yylloc),i.push(z[1]),I=null,Y=w.yyleng,r=w.yytext,R=w.yylineno,J=w.yylloc;break;case 2:if(B=this.productions_[z[1]][1],W.$=h[h.length-B],W._$={first_line:t[t.length-(B||1)].first_line,last_line:t[t.length-1].last_line,first_column:t[t.length-(B||1)].first_column,last_column:t[t.length-1].last_column},me&&(W._$.range=[t[t.length-(B||1)].range[0],t[t.length-1].range[1]]),Q=this.performAction.apply(W,[r,Y,R,K.yy,z[1],h,t].concat(Le)),typeof Q<"u")return Q;B&&(i=i.slice(0,-1*B*2),h=h.slice(0,-1*B),t=t.slice(0,-1*B)),i.push(this.productions_[z[1]][0]),h.push(W.$),t.push(W._$),ae=m[i[i.length-2]][i[i.length-1]],i.push(ae);break;case 3:return!0}}return!0}},A=function(){var D={EOF:1,parseError:function(s,i){if(this.yy.parser)this.yy.parser.parseError(s,i);else throw new Error(s)},setInput:function(o,s){return this.yy=s||this.yy||{},this._input=o,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var o=this._input[0];this.yytext+=o,this.yyleng++,this.offset++,this.match+=o,this.matched+=o;var s=o.match(/(?:\r\n?|\n).*/g);return s?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),o},unput:function(o){var s=o.length,i=o.split(/(?:\r\n?|\n)/g);this._input=o+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-s),this.offset-=s;var u=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),i.length-1&&(this.yylineno-=i.length-1);var h=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:i?(i.length===u.length?this.yylloc.first_column:0)+u[u.length-i.length].length-i[0].length:this.yylloc.first_column-s},this.options.ranges&&(this.yylloc.range=[h[0],h[0]+this.yyleng-s]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true). +`+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},less:function(o){this.unput(this.match.slice(o))},pastInput:function(){var o=this.matched.substr(0,this.matched.length-this.match.length);return(o.length>20?"...":"")+o.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var o=this.match;return o.length<20&&(o+=this._input.substr(0,20-o.length)),(o.substr(0,20)+(o.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var o=this.pastInput(),s=new Array(o.length+1).join("-");return o+this.upcomingInput()+` +`+s+"^"},test_match:function(o,s){var i,u,h;if(this.options.backtrack_lexer&&(h={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(h.yylloc.range=this.yylloc.range.slice(0))),u=o[0].match(/(?:\r\n?|\n).*/g),u&&(this.yylineno+=u.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:u?u[u.length-1].length-u[u.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+o[0].length},this.yytext+=o[0],this.match+=o[0],this.matches=o,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(o[0].length),this.matched+=o[0],i=this.performAction.call(this,this.yy,this,s,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),i)return i;if(this._backtrack){for(var t in h)this[t]=h[t];return!1}return!1},next:function(){if(this.done)return this.EOF;this._input||(this.done=!0);var o,s,i,u;this._more||(this.yytext="",this.match="");for(var h=this._currentRules(),t=0;ts[0].length)){if(s=i,u=t,this.options.backtrack_lexer){if(o=this.test_match(i,h[t]),o!==!1)return o;if(this._backtrack){s=!1;continue}else return!1}else if(!this.options.flex)break}return s?(o=this.test_match(s,h[u]),o!==!1?o:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text. +`+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var s=this.next();return s||this.lex()},begin:function(s){this.conditionStack.push(s)},popState:function(){var s=this.conditionStack.length-1;return s>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(s){return s=this.conditionStack.length-1-Math.abs(s||0),s>=0?this.conditionStack[s]:"INITIAL"},pushState:function(s){this.begin(s)},stateStackSize:function(){return this.conditionStack.length},options:{},performAction:function(s,i,u,h){switch(u){case 0:return 10;case 1:return s.getLogger().debug("Found space-block"),31;case 2:return s.getLogger().debug("Found nl-block"),31;case 3:return s.getLogger().debug("Found space-block"),29;case 4:s.getLogger().debug(".",i.yytext);break;case 5:s.getLogger().debug("_",i.yytext);break;case 6:return 5;case 7:return i.yytext=-1,28;case 8:return i.yytext=i.yytext.replace(/columns\s+/,""),s.getLogger().debug("COLUMNS (LEX)",i.yytext),28;case 9:this.pushState("md_string");break;case 10:return"MD_STR";case 11:this.popState();break;case 12:this.pushState("string");break;case 13:s.getLogger().debug("LEX: POPPING STR:",i.yytext),this.popState();break;case 14:return s.getLogger().debug("LEX: STR end:",i.yytext),"STR";case 15:return i.yytext=i.yytext.replace(/space\:/,""),s.getLogger().debug("SPACE NUM (LEX)",i.yytext),21;case 16:return i.yytext="1",s.getLogger().debug("COLUMNS (LEX)",i.yytext),21;case 17:return 43;case 18:return"LINKSTYLE";case 19:return"INTERPOLATE";case 20:return this.pushState("CLASSDEF"),40;case 21:return this.popState(),this.pushState("CLASSDEFID"),"DEFAULT_CLASSDEF_ID";case 22:return this.popState(),this.pushState("CLASSDEFID"),41;case 23:return this.popState(),42;case 24:return this.pushState("CLASS"),44;case 25:return this.popState(),this.pushState("CLASS_STYLE"),45;case 26:return this.popState(),46;case 27:return this.pushState("STYLE_STMNT"),47;case 28:return this.popState(),this.pushState("STYLE_DEFINITION"),48;case 29:return this.popState(),49;case 30:return this.pushState("acc_title"),"acc_title";case 31:return this.popState(),"acc_title_value";case 32:return this.pushState("acc_descr"),"acc_descr";case 33:return this.popState(),"acc_descr_value";case 34:this.pushState("acc_descr_multiline");break;case 35:this.popState();break;case 36:return"acc_descr_multiline_value";case 37:return 30;case 38:return this.popState(),s.getLogger().debug("Lex: (("),"NODE_DEND";case 39:return this.popState(),s.getLogger().debug("Lex: (("),"NODE_DEND";case 40:return this.popState(),s.getLogger().debug("Lex: ))"),"NODE_DEND";case 41:return this.popState(),s.getLogger().debug("Lex: (("),"NODE_DEND";case 42:return this.popState(),s.getLogger().debug("Lex: (("),"NODE_DEND";case 43:return this.popState(),s.getLogger().debug("Lex: (-"),"NODE_DEND";case 44:return this.popState(),s.getLogger().debug("Lex: -)"),"NODE_DEND";case 45:return this.popState(),s.getLogger().debug("Lex: (("),"NODE_DEND";case 46:return this.popState(),s.getLogger().debug("Lex: ]]"),"NODE_DEND";case 47:return this.popState(),s.getLogger().debug("Lex: ("),"NODE_DEND";case 48:return this.popState(),s.getLogger().debug("Lex: ])"),"NODE_DEND";case 49:return this.popState(),s.getLogger().debug("Lex: /]"),"NODE_DEND";case 50:return this.popState(),s.getLogger().debug("Lex: /]"),"NODE_DEND";case 51:return this.popState(),s.getLogger().debug("Lex: )]"),"NODE_DEND";case 52:return this.popState(),s.getLogger().debug("Lex: )"),"NODE_DEND";case 53:return this.popState(),s.getLogger().debug("Lex: ]>"),"NODE_DEND";case 54:return this.popState(),s.getLogger().debug("Lex: ]"),"NODE_DEND";case 55:return s.getLogger().debug("Lexa: -)"),this.pushState("NODE"),36;case 56:return s.getLogger().debug("Lexa: (-"),this.pushState("NODE"),36;case 57:return s.getLogger().debug("Lexa: ))"),this.pushState("NODE"),36;case 58:return s.getLogger().debug("Lexa: )"),this.pushState("NODE"),36;case 59:return s.getLogger().debug("Lex: ((("),this.pushState("NODE"),36;case 60:return s.getLogger().debug("Lexa: )"),this.pushState("NODE"),36;case 61:return s.getLogger().debug("Lexa: )"),this.pushState("NODE"),36;case 62:return s.getLogger().debug("Lexa: )"),this.pushState("NODE"),36;case 63:return s.getLogger().debug("Lexc: >"),this.pushState("NODE"),36;case 64:return s.getLogger().debug("Lexa: (["),this.pushState("NODE"),36;case 65:return s.getLogger().debug("Lexa: )"),this.pushState("NODE"),36;case 66:return this.pushState("NODE"),36;case 67:return this.pushState("NODE"),36;case 68:return this.pushState("NODE"),36;case 69:return this.pushState("NODE"),36;case 70:return this.pushState("NODE"),36;case 71:return this.pushState("NODE"),36;case 72:return this.pushState("NODE"),36;case 73:return s.getLogger().debug("Lexa: ["),this.pushState("NODE"),36;case 74:return this.pushState("BLOCK_ARROW"),s.getLogger().debug("LEX ARR START"),38;case 75:return s.getLogger().debug("Lex: NODE_ID",i.yytext),32;case 76:return s.getLogger().debug("Lex: EOF",i.yytext),8;case 77:this.pushState("md_string");break;case 78:this.pushState("md_string");break;case 79:return"NODE_DESCR";case 80:this.popState();break;case 81:s.getLogger().debug("Lex: Starting string"),this.pushState("string");break;case 82:s.getLogger().debug("LEX ARR: Starting string"),this.pushState("string");break;case 83:return s.getLogger().debug("LEX: NODE_DESCR:",i.yytext),"NODE_DESCR";case 84:s.getLogger().debug("LEX POPPING"),this.popState();break;case 85:s.getLogger().debug("Lex: =>BAE"),this.pushState("ARROW_DIR");break;case 86:return i.yytext=i.yytext.replace(/^,\s*/,""),s.getLogger().debug("Lex (right): dir:",i.yytext),"DIR";case 87:return i.yytext=i.yytext.replace(/^,\s*/,""),s.getLogger().debug("Lex (left):",i.yytext),"DIR";case 88:return i.yytext=i.yytext.replace(/^,\s*/,""),s.getLogger().debug("Lex (x):",i.yytext),"DIR";case 89:return i.yytext=i.yytext.replace(/^,\s*/,""),s.getLogger().debug("Lex (y):",i.yytext),"DIR";case 90:return i.yytext=i.yytext.replace(/^,\s*/,""),s.getLogger().debug("Lex (up):",i.yytext),"DIR";case 91:return i.yytext=i.yytext.replace(/^,\s*/,""),s.getLogger().debug("Lex (down):",i.yytext),"DIR";case 92:return i.yytext="]>",s.getLogger().debug("Lex (ARROW_DIR end):",i.yytext),this.popState(),this.popState(),"BLOCK_ARROW_END";case 93:return s.getLogger().debug("Lex: LINK","#"+i.yytext+"#"),15;case 94:return s.getLogger().debug("Lex: LINK",i.yytext),15;case 95:return s.getLogger().debug("Lex: LINK",i.yytext),15;case 96:return s.getLogger().debug("Lex: LINK",i.yytext),15;case 97:return s.getLogger().debug("Lex: START_LINK",i.yytext),this.pushState("LLABEL"),16;case 98:return s.getLogger().debug("Lex: START_LINK",i.yytext),this.pushState("LLABEL"),16;case 99:return s.getLogger().debug("Lex: START_LINK",i.yytext),this.pushState("LLABEL"),16;case 100:this.pushState("md_string");break;case 101:return s.getLogger().debug("Lex: Starting string"),this.pushState("string"),"LINK_LABEL";case 102:return this.popState(),s.getLogger().debug("Lex: LINK","#"+i.yytext+"#"),15;case 103:return this.popState(),s.getLogger().debug("Lex: LINK",i.yytext),15;case 104:return this.popState(),s.getLogger().debug("Lex: LINK",i.yytext),15;case 105:return s.getLogger().debug("Lex: COLON",i.yytext),i.yytext=i.yytext.slice(1),27}},rules:[/^(?:block-beta\b)/,/^(?:block\s+)/,/^(?:block\n+)/,/^(?:block:)/,/^(?:[\s]+)/,/^(?:[\n]+)/,/^(?:((\u000D\u000A)|(\u000A)))/,/^(?:columns\s+auto\b)/,/^(?:columns\s+[\d]+)/,/^(?:["][`])/,/^(?:[^`"]+)/,/^(?:[`]["])/,/^(?:["])/,/^(?:["])/,/^(?:[^"]*)/,/^(?:space[:]\d+)/,/^(?:space\b)/,/^(?:default\b)/,/^(?:linkStyle\b)/,/^(?:interpolate\b)/,/^(?:classDef\s+)/,/^(?:DEFAULT\s+)/,/^(?:\w+\s+)/,/^(?:[^\n]*)/,/^(?:class\s+)/,/^(?:(\w+)+((,\s*\w+)*))/,/^(?:[^\n]*)/,/^(?:style\s+)/,/^(?:(\w+)+((,\s*\w+)*))/,/^(?:[^\n]*)/,/^(?:accTitle\s*:\s*)/,/^(?:(?!\n||)*[^\n]*)/,/^(?:accDescr\s*:\s*)/,/^(?:(?!\n||)*[^\n]*)/,/^(?:accDescr\s*\{\s*)/,/^(?:[\}])/,/^(?:[^\}]*)/,/^(?:end\b\s*)/,/^(?:\(\(\()/,/^(?:\)\)\))/,/^(?:[\)]\))/,/^(?:\}\})/,/^(?:\})/,/^(?:\(-)/,/^(?:-\))/,/^(?:\(\()/,/^(?:\]\])/,/^(?:\()/,/^(?:\]\))/,/^(?:\\\])/,/^(?:\/\])/,/^(?:\)\])/,/^(?:[\)])/,/^(?:\]>)/,/^(?:[\]])/,/^(?:-\))/,/^(?:\(-)/,/^(?:\)\))/,/^(?:\))/,/^(?:\(\(\()/,/^(?:\(\()/,/^(?:\{\{)/,/^(?:\{)/,/^(?:>)/,/^(?:\(\[)/,/^(?:\()/,/^(?:\[\[)/,/^(?:\[\|)/,/^(?:\[\()/,/^(?:\)\)\))/,/^(?:\[\\)/,/^(?:\[\/)/,/^(?:\[\\)/,/^(?:\[)/,/^(?:<\[)/,/^(?:[^\(\[\n\-\)\{\}\s\<\>:]+)/,/^(?:$)/,/^(?:["][`])/,/^(?:["][`])/,/^(?:[^`"]+)/,/^(?:[`]["])/,/^(?:["])/,/^(?:["])/,/^(?:[^"]+)/,/^(?:["])/,/^(?:\]>\s*\()/,/^(?:,?\s*right\s*)/,/^(?:,?\s*left\s*)/,/^(?:,?\s*x\s*)/,/^(?:,?\s*y\s*)/,/^(?:,?\s*up\s*)/,/^(?:,?\s*down\s*)/,/^(?:\)\s*)/,/^(?:\s*[xo<]?--+[-xo>]\s*)/,/^(?:\s*[xo<]?==+[=xo>]\s*)/,/^(?:\s*[xo<]?-?\.+-[xo>]?\s*)/,/^(?:\s*~~[\~]+\s*)/,/^(?:\s*[xo<]?--\s*)/,/^(?:\s*[xo<]?==\s*)/,/^(?:\s*[xo<]?-\.\s*)/,/^(?:["][`])/,/^(?:["])/,/^(?:\s*[xo<]?--+[-xo>]\s*)/,/^(?:\s*[xo<]?==+[=xo>]\s*)/,/^(?:\s*[xo<]?-?\.+-[xo>]?\s*)/,/^(?::\d+)/],conditions:{STYLE_DEFINITION:{rules:[29],inclusive:!1},STYLE_STMNT:{rules:[28],inclusive:!1},CLASSDEFID:{rules:[23],inclusive:!1},CLASSDEF:{rules:[21,22],inclusive:!1},CLASS_STYLE:{rules:[26],inclusive:!1},CLASS:{rules:[25],inclusive:!1},LLABEL:{rules:[100,101,102,103,104],inclusive:!1},ARROW_DIR:{rules:[86,87,88,89,90,91,92],inclusive:!1},BLOCK_ARROW:{rules:[77,82,85],inclusive:!1},NODE:{rules:[38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,78,81],inclusive:!1},md_string:{rules:[10,11,79,80],inclusive:!1},space:{rules:[],inclusive:!1},string:{rules:[13,14,83,84],inclusive:!1},acc_descr_multiline:{rules:[35,36],inclusive:!1},acc_descr:{rules:[33],inclusive:!1},acc_title:{rules:[31],inclusive:!1},INITIAL:{rules:[0,1,2,3,4,5,6,7,8,9,12,15,16,17,18,19,20,24,27,30,32,34,37,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,93,94,95,96,97,98,99,105],inclusive:!0}}};return D}();L.lexer=A;function k(){this.yy={}}return k.prototype=L,L.Parser=k,new k}();ee.parser=ee;const Pe=ee;let O={},ie=[],j={};const ce="color",ue="fill",Fe="bgFill",pe=",",Ke=he();let V={};const Me=e=>De.sanitizeText(e,Ke),Ye=function(e,a=""){V[e]===void 0&&(V[e]={id:e,styles:[],textStyles:[]});const d=V[e];a?.split(pe).forEach(c=>{const n=c.replace(/([^;]*);/,"$1").trim();if(c.match(ce)){const l=n.replace(ue,Fe).replace(ce,ue);d.textStyles.push(l)}d.styles.push(n)})},We=function(e,a=""){const d=O[e];a!=null&&(d.styles=a.split(pe))},je=function(e,a){e.split(",").forEach(function(d){let c=O[d];if(c===void 0){const n=d.trim();O[n]={id:n,type:"na",children:[]},c=O[n]}c.classes||(c.classes=[]),c.classes.push(a)})},fe=(e,a)=>{const d=e.flat(),c=[];for(const n of d){if(n.label&&(n.label=Me(n.label)),n.type==="classDef"){Ye(n.id,n.css);continue}if(n.type==="applyClass"){je(n.id,n?.styleClass||"");continue}if(n.type==="applyStyles"){n?.stylesStr&&We(n.id,n?.stylesStr);continue}if(n.type==="column-setting")a.columns=n.columns||-1;else if(n.type==="edge")j[n.id]?j[n.id]++:j[n.id]=1,n.id=j[n.id]+"-"+n.id,ie.push(n);else{n.label||(n.type==="composite"?n.label="":n.label=n.id);const g=!O[n.id];if(g?O[n.id]=n:(n.type!=="na"&&(O[n.id].type=n.type),n.label!==n.id&&(O[n.id].label=n.label)),n.children&&fe(n.children,n),n.type==="space"){const l=n.width||1;for(let f=0;f{S.debug("Clear called"),Ee(),U={id:"root",type:"composite",children:[],columns:-1},O={root:U},re=[],V={},ie=[],j={}};function Ue(e){switch(S.debug("typeStr2Type",e),e){case"[]":return"square";case"()":return S.debug("we have a round"),"round";case"(())":return"circle";case">]":return"rect_left_inv_arrow";case"{}":return"diamond";case"{{}}":return"hexagon";case"([])":return"stadium";case"[[]]":return"subroutine";case"[()]":return"cylinder";case"((()))":return"doublecircle";case"[//]":return"lean_right";case"[\\\\]":return"lean_left";case"[/\\]":return"trapezoid";case"[\\/]":return"inv_trapezoid";case"<[]>":return"block_arrow";default:return"na"}}function Xe(e){switch(S.debug("typeStr2Type",e),e){case"==":return"thick";default:return"normal"}}function Ge(e){switch(e.trim()){case"--x":return"arrow_cross";case"--o":return"arrow_circle";default:return"arrow_point"}}let de=0;const He=()=>(de++,"id-"+Math.random().toString(36).substr(2,12)+"-"+de),qe=e=>{U.children=e,fe(e,U),re=U.children},Ze=e=>{const a=O[e];return a?a.columns?a.columns:a.children?a.children.length:-1:-1},Je=()=>[...Object.values(O)],Qe=()=>re||[],$e=()=>ie,et=e=>O[e],tt=e=>{O[e.id]=e},st=()=>console,it=function(){return V},rt={getConfig:()=>se().block,typeStr2Type:Ue,edgeTypeStr2Type:Xe,edgeStrToEdgeData:Ge,getLogger:st,getBlocksFlat:Je,getBlocks:Qe,getEdges:$e,setHierarchy:qe,getBlock:et,setBlock:tt,getColumns:Ze,getClasses:it,clear:Ve,generateId:He},nt=rt,q=(e,a)=>{const d=Re,c=d(e,"r"),n=d(e,"g"),g=d(e,"b");return we(c,n,g,a)},at=e=>`.label { + font-family: ${e.fontFamily}; + color: ${e.nodeTextColor||e.textColor}; + } + .cluster-label text { + fill: ${e.titleColor}; + } + .cluster-label span,p { + color: ${e.titleColor}; + } + + + + .label text,span,p { + fill: ${e.nodeTextColor||e.textColor}; + color: ${e.nodeTextColor||e.textColor}; + } + + .node rect, + .node circle, + .node ellipse, + .node polygon, + .node path { + fill: ${e.mainBkg}; + stroke: ${e.nodeBorder}; + stroke-width: 1px; + } + .flowchart-label text { + text-anchor: middle; + } + // .flowchart-label .text-outer-tspan { + // text-anchor: middle; + // } + // .flowchart-label .text-inner-tspan { + // text-anchor: start; + // } + + .node .label { + text-align: center; + } + .node.clickable { + cursor: pointer; + } + + .arrowheadPath { + fill: ${e.arrowheadColor}; + } + + .edgePath .path { + stroke: ${e.lineColor}; + stroke-width: 2.0px; + } + + .flowchart-link { + stroke: ${e.lineColor}; + fill: none; + } + + .edgeLabel { + background-color: ${e.edgeLabelBackground}; + rect { + opacity: 0.5; + background-color: ${e.edgeLabelBackground}; + fill: ${e.edgeLabelBackground}; + } + text-align: center; + } + + /* For html labels only */ + .labelBkg { + background-color: ${q(e.edgeLabelBackground,.5)}; + // background-color: + } + + .node .cluster { + // fill: ${q(e.mainBkg,.5)}; + fill: ${q(e.clusterBkg,.5)}; + stroke: ${q(e.clusterBorder,.2)}; + box-shadow: rgba(50, 50, 93, 0.25) 0px 13px 27px -5px, rgba(0, 0, 0, 0.3) 0px 8px 16px -8px; + stroke-width: 1px; + } + + .cluster text { + fill: ${e.titleColor}; + } + + .cluster span,p { + color: ${e.titleColor}; + } + /* .cluster div { + color: ${e.titleColor}; + } */ + + div.mermaidTooltip { + position: absolute; + text-align: center; + max-width: 200px; + padding: 2px; + font-family: ${e.fontFamily}; + font-size: 12px; + background: ${e.tertiaryColor}; + border: 1px solid ${e.border2}; + border-radius: 2px; + pointer-events: none; + z-index: 100; + } + + .flowchartTitleText { + text-anchor: middle; + font-size: 18px; + fill: ${e.textColor}; + } +`,lt=at;function be(e,a,d=!1){var c,n,g;const l=e;let f="default";(((c=l?.classes)==null?void 0:c.length)||0)>0&&(f=(l?.classes||[]).join(" ")),f=f+" flowchart-label";let b=0,p="",x;switch(l.type){case"round":b=5,p="rect";break;case"composite":b=0,p="composite",x=0;break;case"square":p="rect";break;case"diamond":p="question";break;case"hexagon":p="hexagon";break;case"block_arrow":p="block_arrow";break;case"odd":p="rect_left_inv_arrow";break;case"lean_right":p="lean_right";break;case"lean_left":p="lean_left";break;case"trapezoid":p="trapezoid";break;case"inv_trapezoid":p="inv_trapezoid";break;case"rect_left_inv_arrow":p="rect_left_inv_arrow";break;case"circle":p="circle";break;case"ellipse":p="ellipse";break;case"stadium":p="stadium";break;case"subroutine":p="subroutine";break;case"cylinder":p="cylinder";break;case"group":p="rect";break;case"doublecircle":p="doublecircle";break;default:p="rect"}const y=ve(l?.styles||[]),T=l.label,v=l.size||{width:0,height:0,x:0,y:0};return{labelStyle:y.labelStyle,shape:p,labelText:T,rx:b,ry:b,class:f,style:y.style,id:l.id,directions:l.directions,width:v.width,height:v.height,x:v.x,y:v.y,positioned:d,intersect:void 0,type:l.type,padding:x??(((g=(n=se())==null?void 0:n.block)==null?void 0:g.padding)||0)}}async function ot(e,a,d){const c=be(a,d,!1);if(c.type==="group")return;const n=await ge(e,c),g=n.node().getBBox(),l=d.getBlock(c.id);l.size={width:g.width,height:g.height,x:0,y:0,node:n},d.setBlock(l),n.remove()}async function ct(e,a,d){const c=be(a,d,!0);d.getBlock(c.id).type!=="space"&&(await ge(e,c),a.intersect=c?.intersect,ze(c))}async function ne(e,a,d,c){for(const n of a)await c(e,n,d),n.children&&await ne(e,n.children,d,c)}async function ut(e,a,d){await ne(e,a,d,ot)}async function dt(e,a,d){await ne(e,a,d,ct)}async function ht(e,a,d,c,n){const g=new Ce({multigraph:!0,compound:!0});g.setGraph({rankdir:"TB",nodesep:10,ranksep:10,marginx:8,marginy:8});for(const l of d)l.size&&g.setNode(l.id,{width:l.size.width,height:l.size.height,intersect:l.intersect});for(const l of a)if(l.start&&l.end){const f=c.getBlock(l.start),b=c.getBlock(l.end);if(f?.size&&b?.size){const p=f.size,x=b.size,y=[{x:p.x,y:p.y},{x:p.x+(x.x-p.x)/2,y:p.y+(x.y-p.y)/2},{x:x.x,y:x.y}];await Ie(e,{v:l.start,w:l.end,name:l.id},{...l,arrowTypeEnd:l.arrowTypeEnd,arrowTypeStart:l.arrowTypeStart,points:y,classes:"edge-thickness-normal edge-pattern-solid flowchart-link LS-a1 LE-b1"},void 0,"block",g,n),l.label&&(await Oe(e,{...l,label:l.label,labelStyle:"stroke: #333; stroke-width: 1.5px;fill:none;",arrowTypeEnd:l.arrowTypeEnd,arrowTypeStart:l.arrowTypeStart,points:y,classes:"edge-thickness-normal edge-pattern-solid flowchart-link LS-a1 LE-b1"}),await Te({...l,x:y[1].x,y:y[1].y},{originalPath:y}))}}}const _=((oe=(le=he())==null?void 0:le.block)==null?void 0:oe.padding)||8;function gt(e,a){if(e===0||!Number.isInteger(e))throw new Error("Columns must be an integer !== 0.");if(a<0||!Number.isInteger(a))throw new Error("Position must be a non-negative integer."+a);if(e<0)return{px:a,py:0};if(e===1)return{px:0,py:a};const d=a%e,c=Math.floor(a/e);return{px:d,py:c}}const pt=e=>{let a=0,d=0;for(const c of e.children){const{width:n,height:g,x:l,y:f}=c.size||{width:0,height:0,x:0,y:0};S.debug("getMaxChildSize abc95 child:",c.id,"width:",n,"height:",g,"x:",l,"y:",f,c.type),c.type!=="space"&&(n>a&&(a=n/(e.widthInColumns||1)),g>d&&(d=g))}return{width:a,height:d}};function te(e,a,d=0,c=0){var n,g,l,f,b,p,x,y,T,v,N;S.debug("setBlockSizes abc95 (start)",e.id,(n=e?.size)==null?void 0:n.x,"block width =",e?.size,"sieblingWidth",d),(g=e?.size)!=null&&g.width||(e.size={width:d,height:c,x:0,y:0});let E=0,L=0;if(((l=e.children)==null?void 0:l.length)>0){for(const h of e.children)te(h,a);const A=pt(e);E=A.width,L=A.height,S.debug("setBlockSizes abc95 maxWidth of",e.id,":s children is ",E,L);for(const h of e.children)h.size&&(S.debug(`abc95 Setting size of children of ${e.id} id=${h.id} ${E} ${L} ${h.size}`),h.size.width=E*(h.widthInColumns||1)+_*((h.widthInColumns||1)-1),h.size.height=L,h.size.x=0,h.size.y=0,S.debug(`abc95 updating size of ${e.id} children child:${h.id} maxWidth:${E} maxHeight:${L}`));for(const h of e.children)te(h,a,E,L);const k=e.columns||-1;let D=0;for(const h of e.children)D+=h.widthInColumns||1;let o=e.children.length;k>0&&k0?Math.min(e.children.length,k):e.children.length;if(h>0){const t=(i-h*_-_)/h;S.debug("abc95 (growing to fit) width",e.id,i,(x=e.size)==null?void 0:x.width,t);for(const m of e.children)m.size&&(m.size.width=t)}}e.size={width:i,height:u,x:0,y:0}}S.debug("setBlockSizes abc94 (done)",e.id,(y=e?.size)==null?void 0:y.x,(T=e?.size)==null?void 0:T.width,(v=e?.size)==null?void 0:v.y,(N=e?.size)==null?void 0:N.height)}function xe(e,a){var d,c,n,g,l,f,b,p,x,y,T,v,N,E,L,A,k;S.debug(`abc85 layout blocks (=>layoutBlocks) ${e.id} x: ${(d=e?.size)==null?void 0:d.x} y: ${(c=e?.size)==null?void 0:c.y} width: ${(n=e?.size)==null?void 0:n.width}`);const D=e.columns||-1;if(S.debug("layoutBlocks columns abc95",e.id,"=>",D,e),e.children&&e.children.length>0){const o=((l=(g=e?.children[0])==null?void 0:g.size)==null?void 0:l.width)||0,s=e.children.length*o+(e.children.length-1)*_;S.debug("widthOfChildren 88",s,"posX");let i=0;S.debug("abc91 block?.size?.x",e.id,(f=e?.size)==null?void 0:f.x);let u=(b=e?.size)!=null&&b.x?((p=e?.size)==null?void 0:p.x)+(-((x=e?.size)==null?void 0:x.width)/2||0):-_,h=0;for(const t of e.children){const m=e;if(!t.size)continue;const{width:r,height:R}=t.size,{px:Y,py:F}=gt(D,i);if(F!=h&&(h=F,u=(y=e?.size)!=null&&y.x?((T=e?.size)==null?void 0:T.x)+(-((v=e?.size)==null?void 0:v.width)/2||0):-_,S.debug("New row in layout for block",e.id," and child ",t.id,h)),S.debug(`abc89 layout blocks (child) id: ${t.id} Pos: ${i} (px, py) ${Y},${F} (${(N=m?.size)==null?void 0:N.x},${(E=m?.size)==null?void 0:E.y}) parent: ${m.id} width: ${r}${_}`),m.size){const C=r/2;t.size.x=u+_+C,S.debug(`abc91 layout blocks (calc) px, pyid:${t.id} startingPos=X${u} new startingPosX${t.size.x} ${C} padding=${_} width=${r} halfWidth=${C} => x:${t.size.x} y:${t.size.y} ${t.widthInColumns} (width * (child?.w || 1)) / 2 ${r*(t?.widthInColumns||1)/2}`),u=t.size.x+C,t.size.y=m.size.y-m.size.height/2+F*(R+_)+R/2+_,S.debug(`abc88 layout blocks (calc) px, pyid:${t.id}startingPosX${u}${_}${C}=>x:${t.size.x}y:${t.size.y}${t.widthInColumns}(width * (child?.w || 1)) / 2${r*(t?.widthInColumns||1)/2}`)}t.children&&xe(t),i+=t?.widthInColumns||1,S.debug("abc88 columnsPos",t,i)}}S.debug(`layout blocks (<==layoutBlocks) ${e.id} x: ${(L=e?.size)==null?void 0:L.x} y: ${(A=e?.size)==null?void 0:A.y} width: ${(k=e?.size)==null?void 0:k.width}`)}function Se(e,{minX:a,minY:d,maxX:c,maxY:n}={minX:0,minY:0,maxX:0,maxY:0}){if(e.size&&e.id!=="root"){const{x:g,y:l,width:f,height:b}=e.size;g-f/2c&&(c=g+f/2),l+b/2>n&&(n=l+b/2)}if(e.children)for(const g of e.children)({minX:a,minY:d,maxX:c,maxY:n}=Se(g,{minX:a,minY:d,maxX:c,maxY:n}));return{minX:a,minY:d,maxX:c,maxY:n}}function ft(e){const a=e.getBlock("root");if(!a)return;te(a,e,0,0),xe(a),S.debug("getBlocks",JSON.stringify(a,null,2));const{minX:d,minY:c,maxX:n,maxY:g}=Se(a),l=g-c,f=n-d;return{x:d,y:c,width:f,height:l}}const bt=function(e,a){return a.db.getClasses()},xt=async function(e,a,d,c){const{securityLevel:n,block:g}=se(),l=c.db;let f;n==="sandbox"&&(f=H("#i"+a));const b=n==="sandbox"?H(f.nodes()[0].contentDocument.body):H("body"),p=n==="sandbox"?b.select(`[id="${a}"]`):H(`[id="${a}"]`);ke(p,["point","circle","cross"],c.type,a);const y=l.getBlocks(),T=l.getBlocksFlat(),v=l.getEdges(),N=p.insert("g").attr("class","block");await ut(N,y,l);const E=ft(l);if(await dt(N,y,l),await ht(N,v,T,l,a),E){const L=E,A=Math.max(1,Math.round(.125*(L.width/L.height))),k=L.height+A+10,D=L.width+10,{useMaxWidth:o}=g;ye(p,k,D,!!o),S.debug("Here Bounds",E,L),p.attr("viewBox",`${L.x-5} ${L.y-5} ${L.width+10} ${L.height+10}`)}Ae(Be)},St={draw:xt,getClasses:bt},zt={parser:Pe,db:nt,renderer:St,styles:lt};export{zt as diagram}; diff --git a/assets/c4Diagram-3d4e48cf-DdPIZlGU.js b/assets/c4Diagram-3d4e48cf-DdPIZlGU.js new file mode 100644 index 00000000..b3a43ef3 --- /dev/null +++ b/assets/c4Diagram-3d4e48cf-DdPIZlGU.js @@ -0,0 +1,10 @@ +import{s as we,g as Oe,a as Te,b as Re,c as Dt,d as ue,e as De,f as wt,h as Nt,l as le,i as Se,w as Pe,j as Kt,k as oe,m as Me}from"./mermaid.core-B_tqKmhs.js";import{d as Le,g as Ne}from"./svgDrawCommon-08f97a94-Dr3rJKJn.js";import"./index-Be9IN4QR.js";var Yt=function(){var e=function(bt,_,x,m){for(x=x||{},m=bt.length;m--;x[bt[m]]=_);return x},t=[1,24],a=[1,25],o=[1,26],l=[1,27],i=[1,28],s=[1,63],r=[1,64],n=[1,65],h=[1,66],f=[1,67],d=[1,68],p=[1,69],E=[1,29],O=[1,30],R=[1,31],S=[1,32],L=[1,33],Y=[1,34],Q=[1,35],H=[1,36],q=[1,37],G=[1,38],K=[1,39],J=[1,40],Z=[1,41],$=[1,42],tt=[1,43],et=[1,44],it=[1,45],nt=[1,46],st=[1,47],at=[1,48],rt=[1,50],lt=[1,51],ot=[1,52],ct=[1,53],ht=[1,54],ut=[1,55],dt=[1,56],ft=[1,57],pt=[1,58],yt=[1,59],gt=[1,60],At=[14,42],Vt=[14,34,36,37,38,39,40,41,42,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74],Ot=[12,14,34,36,37,38,39,40,41,42,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74],v=[1,82],k=[1,83],A=[1,84],C=[1,85],w=[12,14,42],ne=[12,14,33,42],Pt=[12,14,33,42,76,77,79,80],mt=[12,33],zt=[34,36,37,38,39,40,41,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74],Xt={trace:function(){},yy:{},symbols_:{error:2,start:3,mermaidDoc:4,direction:5,direction_tb:6,direction_bt:7,direction_rl:8,direction_lr:9,graphConfig:10,C4_CONTEXT:11,NEWLINE:12,statements:13,EOF:14,C4_CONTAINER:15,C4_COMPONENT:16,C4_DYNAMIC:17,C4_DEPLOYMENT:18,otherStatements:19,diagramStatements:20,otherStatement:21,title:22,accDescription:23,acc_title:24,acc_title_value:25,acc_descr:26,acc_descr_value:27,acc_descr_multiline_value:28,boundaryStatement:29,boundaryStartStatement:30,boundaryStopStatement:31,boundaryStart:32,LBRACE:33,ENTERPRISE_BOUNDARY:34,attributes:35,SYSTEM_BOUNDARY:36,BOUNDARY:37,CONTAINER_BOUNDARY:38,NODE:39,NODE_L:40,NODE_R:41,RBRACE:42,diagramStatement:43,PERSON:44,PERSON_EXT:45,SYSTEM:46,SYSTEM_DB:47,SYSTEM_QUEUE:48,SYSTEM_EXT:49,SYSTEM_EXT_DB:50,SYSTEM_EXT_QUEUE:51,CONTAINER:52,CONTAINER_DB:53,CONTAINER_QUEUE:54,CONTAINER_EXT:55,CONTAINER_EXT_DB:56,CONTAINER_EXT_QUEUE:57,COMPONENT:58,COMPONENT_DB:59,COMPONENT_QUEUE:60,COMPONENT_EXT:61,COMPONENT_EXT_DB:62,COMPONENT_EXT_QUEUE:63,REL:64,BIREL:65,REL_U:66,REL_D:67,REL_L:68,REL_R:69,REL_B:70,REL_INDEX:71,UPDATE_EL_STYLE:72,UPDATE_REL_STYLE:73,UPDATE_LAYOUT_CONFIG:74,attribute:75,STR:76,STR_KEY:77,STR_VALUE:78,ATTRIBUTE:79,ATTRIBUTE_EMPTY:80,$accept:0,$end:1},terminals_:{2:"error",6:"direction_tb",7:"direction_bt",8:"direction_rl",9:"direction_lr",11:"C4_CONTEXT",12:"NEWLINE",14:"EOF",15:"C4_CONTAINER",16:"C4_COMPONENT",17:"C4_DYNAMIC",18:"C4_DEPLOYMENT",22:"title",23:"accDescription",24:"acc_title",25:"acc_title_value",26:"acc_descr",27:"acc_descr_value",28:"acc_descr_multiline_value",33:"LBRACE",34:"ENTERPRISE_BOUNDARY",36:"SYSTEM_BOUNDARY",37:"BOUNDARY",38:"CONTAINER_BOUNDARY",39:"NODE",40:"NODE_L",41:"NODE_R",42:"RBRACE",44:"PERSON",45:"PERSON_EXT",46:"SYSTEM",47:"SYSTEM_DB",48:"SYSTEM_QUEUE",49:"SYSTEM_EXT",50:"SYSTEM_EXT_DB",51:"SYSTEM_EXT_QUEUE",52:"CONTAINER",53:"CONTAINER_DB",54:"CONTAINER_QUEUE",55:"CONTAINER_EXT",56:"CONTAINER_EXT_DB",57:"CONTAINER_EXT_QUEUE",58:"COMPONENT",59:"COMPONENT_DB",60:"COMPONENT_QUEUE",61:"COMPONENT_EXT",62:"COMPONENT_EXT_DB",63:"COMPONENT_EXT_QUEUE",64:"REL",65:"BIREL",66:"REL_U",67:"REL_D",68:"REL_L",69:"REL_R",70:"REL_B",71:"REL_INDEX",72:"UPDATE_EL_STYLE",73:"UPDATE_REL_STYLE",74:"UPDATE_LAYOUT_CONFIG",76:"STR",77:"STR_KEY",78:"STR_VALUE",79:"ATTRIBUTE",80:"ATTRIBUTE_EMPTY"},productions_:[0,[3,1],[3,1],[5,1],[5,1],[5,1],[5,1],[4,1],[10,4],[10,4],[10,4],[10,4],[10,4],[13,1],[13,1],[13,2],[19,1],[19,2],[19,3],[21,1],[21,1],[21,2],[21,2],[21,1],[29,3],[30,3],[30,3],[30,4],[32,2],[32,2],[32,2],[32,2],[32,2],[32,2],[32,2],[31,1],[20,1],[20,2],[20,3],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,1],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[35,1],[35,2],[75,1],[75,2],[75,1],[75,1]],performAction:function(_,x,m,g,T,u,Tt){var y=u.length-1;switch(T){case 3:g.setDirection("TB");break;case 4:g.setDirection("BT");break;case 5:g.setDirection("RL");break;case 6:g.setDirection("LR");break;case 8:case 9:case 10:case 11:case 12:g.setC4Type(u[y-3]);break;case 19:g.setTitle(u[y].substring(6)),this.$=u[y].substring(6);break;case 20:g.setAccDescription(u[y].substring(15)),this.$=u[y].substring(15);break;case 21:this.$=u[y].trim(),g.setTitle(this.$);break;case 22:case 23:this.$=u[y].trim(),g.setAccDescription(this.$);break;case 28:case 29:u[y].splice(2,0,"ENTERPRISE"),g.addPersonOrSystemBoundary(...u[y]),this.$=u[y];break;case 30:g.addPersonOrSystemBoundary(...u[y]),this.$=u[y];break;case 31:u[y].splice(2,0,"CONTAINER"),g.addContainerBoundary(...u[y]),this.$=u[y];break;case 32:g.addDeploymentNode("node",...u[y]),this.$=u[y];break;case 33:g.addDeploymentNode("nodeL",...u[y]),this.$=u[y];break;case 34:g.addDeploymentNode("nodeR",...u[y]),this.$=u[y];break;case 35:g.popBoundaryParseStack();break;case 39:g.addPersonOrSystem("person",...u[y]),this.$=u[y];break;case 40:g.addPersonOrSystem("external_person",...u[y]),this.$=u[y];break;case 41:g.addPersonOrSystem("system",...u[y]),this.$=u[y];break;case 42:g.addPersonOrSystem("system_db",...u[y]),this.$=u[y];break;case 43:g.addPersonOrSystem("system_queue",...u[y]),this.$=u[y];break;case 44:g.addPersonOrSystem("external_system",...u[y]),this.$=u[y];break;case 45:g.addPersonOrSystem("external_system_db",...u[y]),this.$=u[y];break;case 46:g.addPersonOrSystem("external_system_queue",...u[y]),this.$=u[y];break;case 47:g.addContainer("container",...u[y]),this.$=u[y];break;case 48:g.addContainer("container_db",...u[y]),this.$=u[y];break;case 49:g.addContainer("container_queue",...u[y]),this.$=u[y];break;case 50:g.addContainer("external_container",...u[y]),this.$=u[y];break;case 51:g.addContainer("external_container_db",...u[y]),this.$=u[y];break;case 52:g.addContainer("external_container_queue",...u[y]),this.$=u[y];break;case 53:g.addComponent("component",...u[y]),this.$=u[y];break;case 54:g.addComponent("component_db",...u[y]),this.$=u[y];break;case 55:g.addComponent("component_queue",...u[y]),this.$=u[y];break;case 56:g.addComponent("external_component",...u[y]),this.$=u[y];break;case 57:g.addComponent("external_component_db",...u[y]),this.$=u[y];break;case 58:g.addComponent("external_component_queue",...u[y]),this.$=u[y];break;case 60:g.addRel("rel",...u[y]),this.$=u[y];break;case 61:g.addRel("birel",...u[y]),this.$=u[y];break;case 62:g.addRel("rel_u",...u[y]),this.$=u[y];break;case 63:g.addRel("rel_d",...u[y]),this.$=u[y];break;case 64:g.addRel("rel_l",...u[y]),this.$=u[y];break;case 65:g.addRel("rel_r",...u[y]),this.$=u[y];break;case 66:g.addRel("rel_b",...u[y]),this.$=u[y];break;case 67:u[y].splice(0,1),g.addRel("rel",...u[y]),this.$=u[y];break;case 68:g.updateElStyle("update_el_style",...u[y]),this.$=u[y];break;case 69:g.updateRelStyle("update_rel_style",...u[y]),this.$=u[y];break;case 70:g.updateLayoutConfig("update_layout_config",...u[y]),this.$=u[y];break;case 71:this.$=[u[y]];break;case 72:u[y].unshift(u[y-1]),this.$=u[y];break;case 73:case 75:this.$=u[y].trim();break;case 74:let Et={};Et[u[y-1].trim()]=u[y].trim(),this.$=Et;break;case 76:this.$="";break}},table:[{3:1,4:2,5:3,6:[1,5],7:[1,6],8:[1,7],9:[1,8],10:4,11:[1,9],15:[1,10],16:[1,11],17:[1,12],18:[1,13]},{1:[3]},{1:[2,1]},{1:[2,2]},{1:[2,7]},{1:[2,3]},{1:[2,4]},{1:[2,5]},{1:[2,6]},{12:[1,14]},{12:[1,15]},{12:[1,16]},{12:[1,17]},{12:[1,18]},{13:19,19:20,20:21,21:22,22:t,23:a,24:o,26:l,28:i,29:49,30:61,32:62,34:s,36:r,37:n,38:h,39:f,40:d,41:p,43:23,44:E,45:O,46:R,47:S,48:L,49:Y,50:Q,51:H,52:q,53:G,54:K,55:J,56:Z,57:$,58:tt,59:et,60:it,61:nt,62:st,63:at,64:rt,65:lt,66:ot,67:ct,68:ht,69:ut,70:dt,71:ft,72:pt,73:yt,74:gt},{13:70,19:20,20:21,21:22,22:t,23:a,24:o,26:l,28:i,29:49,30:61,32:62,34:s,36:r,37:n,38:h,39:f,40:d,41:p,43:23,44:E,45:O,46:R,47:S,48:L,49:Y,50:Q,51:H,52:q,53:G,54:K,55:J,56:Z,57:$,58:tt,59:et,60:it,61:nt,62:st,63:at,64:rt,65:lt,66:ot,67:ct,68:ht,69:ut,70:dt,71:ft,72:pt,73:yt,74:gt},{13:71,19:20,20:21,21:22,22:t,23:a,24:o,26:l,28:i,29:49,30:61,32:62,34:s,36:r,37:n,38:h,39:f,40:d,41:p,43:23,44:E,45:O,46:R,47:S,48:L,49:Y,50:Q,51:H,52:q,53:G,54:K,55:J,56:Z,57:$,58:tt,59:et,60:it,61:nt,62:st,63:at,64:rt,65:lt,66:ot,67:ct,68:ht,69:ut,70:dt,71:ft,72:pt,73:yt,74:gt},{13:72,19:20,20:21,21:22,22:t,23:a,24:o,26:l,28:i,29:49,30:61,32:62,34:s,36:r,37:n,38:h,39:f,40:d,41:p,43:23,44:E,45:O,46:R,47:S,48:L,49:Y,50:Q,51:H,52:q,53:G,54:K,55:J,56:Z,57:$,58:tt,59:et,60:it,61:nt,62:st,63:at,64:rt,65:lt,66:ot,67:ct,68:ht,69:ut,70:dt,71:ft,72:pt,73:yt,74:gt},{13:73,19:20,20:21,21:22,22:t,23:a,24:o,26:l,28:i,29:49,30:61,32:62,34:s,36:r,37:n,38:h,39:f,40:d,41:p,43:23,44:E,45:O,46:R,47:S,48:L,49:Y,50:Q,51:H,52:q,53:G,54:K,55:J,56:Z,57:$,58:tt,59:et,60:it,61:nt,62:st,63:at,64:rt,65:lt,66:ot,67:ct,68:ht,69:ut,70:dt,71:ft,72:pt,73:yt,74:gt},{14:[1,74]},e(At,[2,13],{43:23,29:49,30:61,32:62,20:75,34:s,36:r,37:n,38:h,39:f,40:d,41:p,44:E,45:O,46:R,47:S,48:L,49:Y,50:Q,51:H,52:q,53:G,54:K,55:J,56:Z,57:$,58:tt,59:et,60:it,61:nt,62:st,63:at,64:rt,65:lt,66:ot,67:ct,68:ht,69:ut,70:dt,71:ft,72:pt,73:yt,74:gt}),e(At,[2,14]),e(Vt,[2,16],{12:[1,76]}),e(At,[2,36],{12:[1,77]}),e(Ot,[2,19]),e(Ot,[2,20]),{25:[1,78]},{27:[1,79]},e(Ot,[2,23]),{35:80,75:81,76:v,77:k,79:A,80:C},{35:86,75:81,76:v,77:k,79:A,80:C},{35:87,75:81,76:v,77:k,79:A,80:C},{35:88,75:81,76:v,77:k,79:A,80:C},{35:89,75:81,76:v,77:k,79:A,80:C},{35:90,75:81,76:v,77:k,79:A,80:C},{35:91,75:81,76:v,77:k,79:A,80:C},{35:92,75:81,76:v,77:k,79:A,80:C},{35:93,75:81,76:v,77:k,79:A,80:C},{35:94,75:81,76:v,77:k,79:A,80:C},{35:95,75:81,76:v,77:k,79:A,80:C},{35:96,75:81,76:v,77:k,79:A,80:C},{35:97,75:81,76:v,77:k,79:A,80:C},{35:98,75:81,76:v,77:k,79:A,80:C},{35:99,75:81,76:v,77:k,79:A,80:C},{35:100,75:81,76:v,77:k,79:A,80:C},{35:101,75:81,76:v,77:k,79:A,80:C},{35:102,75:81,76:v,77:k,79:A,80:C},{35:103,75:81,76:v,77:k,79:A,80:C},{35:104,75:81,76:v,77:k,79:A,80:C},e(w,[2,59]),{35:105,75:81,76:v,77:k,79:A,80:C},{35:106,75:81,76:v,77:k,79:A,80:C},{35:107,75:81,76:v,77:k,79:A,80:C},{35:108,75:81,76:v,77:k,79:A,80:C},{35:109,75:81,76:v,77:k,79:A,80:C},{35:110,75:81,76:v,77:k,79:A,80:C},{35:111,75:81,76:v,77:k,79:A,80:C},{35:112,75:81,76:v,77:k,79:A,80:C},{35:113,75:81,76:v,77:k,79:A,80:C},{35:114,75:81,76:v,77:k,79:A,80:C},{35:115,75:81,76:v,77:k,79:A,80:C},{20:116,29:49,30:61,32:62,34:s,36:r,37:n,38:h,39:f,40:d,41:p,43:23,44:E,45:O,46:R,47:S,48:L,49:Y,50:Q,51:H,52:q,53:G,54:K,55:J,56:Z,57:$,58:tt,59:et,60:it,61:nt,62:st,63:at,64:rt,65:lt,66:ot,67:ct,68:ht,69:ut,70:dt,71:ft,72:pt,73:yt,74:gt},{12:[1,118],33:[1,117]},{35:119,75:81,76:v,77:k,79:A,80:C},{35:120,75:81,76:v,77:k,79:A,80:C},{35:121,75:81,76:v,77:k,79:A,80:C},{35:122,75:81,76:v,77:k,79:A,80:C},{35:123,75:81,76:v,77:k,79:A,80:C},{35:124,75:81,76:v,77:k,79:A,80:C},{35:125,75:81,76:v,77:k,79:A,80:C},{14:[1,126]},{14:[1,127]},{14:[1,128]},{14:[1,129]},{1:[2,8]},e(At,[2,15]),e(Vt,[2,17],{21:22,19:130,22:t,23:a,24:o,26:l,28:i}),e(At,[2,37],{19:20,20:21,21:22,43:23,29:49,30:61,32:62,13:131,22:t,23:a,24:o,26:l,28:i,34:s,36:r,37:n,38:h,39:f,40:d,41:p,44:E,45:O,46:R,47:S,48:L,49:Y,50:Q,51:H,52:q,53:G,54:K,55:J,56:Z,57:$,58:tt,59:et,60:it,61:nt,62:st,63:at,64:rt,65:lt,66:ot,67:ct,68:ht,69:ut,70:dt,71:ft,72:pt,73:yt,74:gt}),e(Ot,[2,21]),e(Ot,[2,22]),e(w,[2,39]),e(ne,[2,71],{75:81,35:132,76:v,77:k,79:A,80:C}),e(Pt,[2,73]),{78:[1,133]},e(Pt,[2,75]),e(Pt,[2,76]),e(w,[2,40]),e(w,[2,41]),e(w,[2,42]),e(w,[2,43]),e(w,[2,44]),e(w,[2,45]),e(w,[2,46]),e(w,[2,47]),e(w,[2,48]),e(w,[2,49]),e(w,[2,50]),e(w,[2,51]),e(w,[2,52]),e(w,[2,53]),e(w,[2,54]),e(w,[2,55]),e(w,[2,56]),e(w,[2,57]),e(w,[2,58]),e(w,[2,60]),e(w,[2,61]),e(w,[2,62]),e(w,[2,63]),e(w,[2,64]),e(w,[2,65]),e(w,[2,66]),e(w,[2,67]),e(w,[2,68]),e(w,[2,69]),e(w,[2,70]),{31:134,42:[1,135]},{12:[1,136]},{33:[1,137]},e(mt,[2,28]),e(mt,[2,29]),e(mt,[2,30]),e(mt,[2,31]),e(mt,[2,32]),e(mt,[2,33]),e(mt,[2,34]),{1:[2,9]},{1:[2,10]},{1:[2,11]},{1:[2,12]},e(Vt,[2,18]),e(At,[2,38]),e(ne,[2,72]),e(Pt,[2,74]),e(w,[2,24]),e(w,[2,35]),e(zt,[2,25]),e(zt,[2,26],{12:[1,138]}),e(zt,[2,27])],defaultActions:{2:[2,1],3:[2,2],4:[2,7],5:[2,3],6:[2,4],7:[2,5],8:[2,6],74:[2,8],126:[2,9],127:[2,10],128:[2,11],129:[2,12]},parseError:function(_,x){if(x.recoverable)this.trace(_);else{var m=new Error(_);throw m.hash=x,m}},parse:function(_){var x=this,m=[0],g=[],T=[null],u=[],Tt=this.table,y="",Et=0,se=0,ve=2,ae=1,ke=u.slice.call(arguments,1),D=Object.create(this.lexer),vt={yy:{}};for(var Qt in this.yy)Object.prototype.hasOwnProperty.call(this.yy,Qt)&&(vt.yy[Qt]=this.yy[Qt]);D.setInput(_,vt.yy),vt.yy.lexer=D,vt.yy.parser=this,typeof D.yylloc>"u"&&(D.yylloc={});var Ht=D.yylloc;u.push(Ht);var Ae=D.options&&D.options.ranges;typeof vt.yy.parseError=="function"?this.parseError=vt.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function Ce(){var X;return X=g.pop()||D.lex()||ae,typeof X!="number"&&(X instanceof Array&&(g=X,X=g.pop()),X=x.symbols_[X]||X),X}for(var M,kt,N,qt,Ct={},Mt,z,re,Lt;;){if(kt=m[m.length-1],this.defaultActions[kt]?N=this.defaultActions[kt]:((M===null||typeof M>"u")&&(M=Ce()),N=Tt[kt]&&Tt[kt][M]),typeof N>"u"||!N.length||!N[0]){var Gt="";Lt=[];for(Mt in Tt[kt])this.terminals_[Mt]&&Mt>ve&&Lt.push("'"+this.terminals_[Mt]+"'");D.showPosition?Gt="Parse error on line "+(Et+1)+`: +`+D.showPosition()+` +Expecting `+Lt.join(", ")+", got '"+(this.terminals_[M]||M)+"'":Gt="Parse error on line "+(Et+1)+": Unexpected "+(M==ae?"end of input":"'"+(this.terminals_[M]||M)+"'"),this.parseError(Gt,{text:D.match,token:this.terminals_[M]||M,line:D.yylineno,loc:Ht,expected:Lt})}if(N[0]instanceof Array&&N.length>1)throw new Error("Parse Error: multiple actions possible at state: "+kt+", token: "+M);switch(N[0]){case 1:m.push(M),T.push(D.yytext),u.push(D.yylloc),m.push(N[1]),M=null,se=D.yyleng,y=D.yytext,Et=D.yylineno,Ht=D.yylloc;break;case 2:if(z=this.productions_[N[1]][1],Ct.$=T[T.length-z],Ct._$={first_line:u[u.length-(z||1)].first_line,last_line:u[u.length-1].last_line,first_column:u[u.length-(z||1)].first_column,last_column:u[u.length-1].last_column},Ae&&(Ct._$.range=[u[u.length-(z||1)].range[0],u[u.length-1].range[1]]),qt=this.performAction.apply(Ct,[y,se,Et,vt.yy,N[1],T,u].concat(ke)),typeof qt<"u")return qt;z&&(m=m.slice(0,-1*z*2),T=T.slice(0,-1*z),u=u.slice(0,-1*z)),m.push(this.productions_[N[1]][0]),T.push(Ct.$),u.push(Ct._$),re=Tt[m[m.length-2]][m[m.length-1]],m.push(re);break;case 3:return!0}}return!0}},Ee=function(){var bt={EOF:1,parseError:function(x,m){if(this.yy.parser)this.yy.parser.parseError(x,m);else throw new Error(x)},setInput:function(_,x){return this.yy=x||this.yy||{},this._input=_,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var _=this._input[0];this.yytext+=_,this.yyleng++,this.offset++,this.match+=_,this.matched+=_;var x=_.match(/(?:\r\n?|\n).*/g);return x?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),_},unput:function(_){var x=_.length,m=_.split(/(?:\r\n?|\n)/g);this._input=_+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-x),this.offset-=x;var g=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),m.length-1&&(this.yylineno-=m.length-1);var T=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:m?(m.length===g.length?this.yylloc.first_column:0)+g[g.length-m.length].length-m[0].length:this.yylloc.first_column-x},this.options.ranges&&(this.yylloc.range=[T[0],T[0]+this.yyleng-x]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true). +`+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},less:function(_){this.unput(this.match.slice(_))},pastInput:function(){var _=this.matched.substr(0,this.matched.length-this.match.length);return(_.length>20?"...":"")+_.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var _=this.match;return _.length<20&&(_+=this._input.substr(0,20-_.length)),(_.substr(0,20)+(_.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var _=this.pastInput(),x=new Array(_.length+1).join("-");return _+this.upcomingInput()+` +`+x+"^"},test_match:function(_,x){var m,g,T;if(this.options.backtrack_lexer&&(T={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(T.yylloc.range=this.yylloc.range.slice(0))),g=_[0].match(/(?:\r\n?|\n).*/g),g&&(this.yylineno+=g.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:g?g[g.length-1].length-g[g.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+_[0].length},this.yytext+=_[0],this.match+=_[0],this.matches=_,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(_[0].length),this.matched+=_[0],m=this.performAction.call(this,this.yy,this,x,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),m)return m;if(this._backtrack){for(var u in T)this[u]=T[u];return!1}return!1},next:function(){if(this.done)return this.EOF;this._input||(this.done=!0);var _,x,m,g;this._more||(this.yytext="",this.match="");for(var T=this._currentRules(),u=0;ux[0].length)){if(x=m,g=u,this.options.backtrack_lexer){if(_=this.test_match(m,T[u]),_!==!1)return _;if(this._backtrack){x=!1;continue}else return!1}else if(!this.options.flex)break}return x?(_=this.test_match(x,T[g]),_!==!1?_:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text. +`+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var x=this.next();return x||this.lex()},begin:function(x){this.conditionStack.push(x)},popState:function(){var x=this.conditionStack.length-1;return x>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(x){return x=this.conditionStack.length-1-Math.abs(x||0),x>=0?this.conditionStack[x]:"INITIAL"},pushState:function(x){this.begin(x)},stateStackSize:function(){return this.conditionStack.length},options:{},performAction:function(x,m,g,T){switch(g){case 0:return 6;case 1:return 7;case 2:return 8;case 3:return 9;case 4:return 22;case 5:return 23;case 6:return this.begin("acc_title"),24;case 7:return this.popState(),"acc_title_value";case 8:return this.begin("acc_descr"),26;case 9:return this.popState(),"acc_descr_value";case 10:this.begin("acc_descr_multiline");break;case 11:this.popState();break;case 12:return"acc_descr_multiline_value";case 13:break;case 14:c;break;case 15:return 12;case 16:break;case 17:return 11;case 18:return 15;case 19:return 16;case 20:return 17;case 21:return 18;case 22:return this.begin("person_ext"),45;case 23:return this.begin("person"),44;case 24:return this.begin("system_ext_queue"),51;case 25:return this.begin("system_ext_db"),50;case 26:return this.begin("system_ext"),49;case 27:return this.begin("system_queue"),48;case 28:return this.begin("system_db"),47;case 29:return this.begin("system"),46;case 30:return this.begin("boundary"),37;case 31:return this.begin("enterprise_boundary"),34;case 32:return this.begin("system_boundary"),36;case 33:return this.begin("container_ext_queue"),57;case 34:return this.begin("container_ext_db"),56;case 35:return this.begin("container_ext"),55;case 36:return this.begin("container_queue"),54;case 37:return this.begin("container_db"),53;case 38:return this.begin("container"),52;case 39:return this.begin("container_boundary"),38;case 40:return this.begin("component_ext_queue"),63;case 41:return this.begin("component_ext_db"),62;case 42:return this.begin("component_ext"),61;case 43:return this.begin("component_queue"),60;case 44:return this.begin("component_db"),59;case 45:return this.begin("component"),58;case 46:return this.begin("node"),39;case 47:return this.begin("node"),39;case 48:return this.begin("node_l"),40;case 49:return this.begin("node_r"),41;case 50:return this.begin("rel"),64;case 51:return this.begin("birel"),65;case 52:return this.begin("rel_u"),66;case 53:return this.begin("rel_u"),66;case 54:return this.begin("rel_d"),67;case 55:return this.begin("rel_d"),67;case 56:return this.begin("rel_l"),68;case 57:return this.begin("rel_l"),68;case 58:return this.begin("rel_r"),69;case 59:return this.begin("rel_r"),69;case 60:return this.begin("rel_b"),70;case 61:return this.begin("rel_index"),71;case 62:return this.begin("update_el_style"),72;case 63:return this.begin("update_rel_style"),73;case 64:return this.begin("update_layout_config"),74;case 65:return"EOF_IN_STRUCT";case 66:return this.begin("attribute"),"ATTRIBUTE_EMPTY";case 67:this.begin("attribute");break;case 68:this.popState(),this.popState();break;case 69:return 80;case 70:break;case 71:return 80;case 72:this.begin("string");break;case 73:this.popState();break;case 74:return"STR";case 75:this.begin("string_kv");break;case 76:return this.begin("string_kv_key"),"STR_KEY";case 77:this.popState(),this.begin("string_kv_value");break;case 78:return"STR_VALUE";case 79:this.popState(),this.popState();break;case 80:return"STR";case 81:return"LBRACE";case 82:return"RBRACE";case 83:return"SPACE";case 84:return"EOL";case 85:return 14}},rules:[/^(?:.*direction\s+TB[^\n]*)/,/^(?:.*direction\s+BT[^\n]*)/,/^(?:.*direction\s+RL[^\n]*)/,/^(?:.*direction\s+LR[^\n]*)/,/^(?:title\s[^#\n;]+)/,/^(?:accDescription\s[^#\n;]+)/,/^(?:accTitle\s*:\s*)/,/^(?:(?!\n||)*[^\n]*)/,/^(?:accDescr\s*:\s*)/,/^(?:(?!\n||)*[^\n]*)/,/^(?:accDescr\s*\{\s*)/,/^(?:[\}])/,/^(?:[^\}]*)/,/^(?:%%(?!\{)*[^\n]*(\r?\n?)+)/,/^(?:%%[^\n]*(\r?\n)*)/,/^(?:\s*(\r?\n)+)/,/^(?:\s+)/,/^(?:C4Context\b)/,/^(?:C4Container\b)/,/^(?:C4Component\b)/,/^(?:C4Dynamic\b)/,/^(?:C4Deployment\b)/,/^(?:Person_Ext\b)/,/^(?:Person\b)/,/^(?:SystemQueue_Ext\b)/,/^(?:SystemDb_Ext\b)/,/^(?:System_Ext\b)/,/^(?:SystemQueue\b)/,/^(?:SystemDb\b)/,/^(?:System\b)/,/^(?:Boundary\b)/,/^(?:Enterprise_Boundary\b)/,/^(?:System_Boundary\b)/,/^(?:ContainerQueue_Ext\b)/,/^(?:ContainerDb_Ext\b)/,/^(?:Container_Ext\b)/,/^(?:ContainerQueue\b)/,/^(?:ContainerDb\b)/,/^(?:Container\b)/,/^(?:Container_Boundary\b)/,/^(?:ComponentQueue_Ext\b)/,/^(?:ComponentDb_Ext\b)/,/^(?:Component_Ext\b)/,/^(?:ComponentQueue\b)/,/^(?:ComponentDb\b)/,/^(?:Component\b)/,/^(?:Deployment_Node\b)/,/^(?:Node\b)/,/^(?:Node_L\b)/,/^(?:Node_R\b)/,/^(?:Rel\b)/,/^(?:BiRel\b)/,/^(?:Rel_Up\b)/,/^(?:Rel_U\b)/,/^(?:Rel_Down\b)/,/^(?:Rel_D\b)/,/^(?:Rel_Left\b)/,/^(?:Rel_L\b)/,/^(?:Rel_Right\b)/,/^(?:Rel_R\b)/,/^(?:Rel_Back\b)/,/^(?:RelIndex\b)/,/^(?:UpdateElementStyle\b)/,/^(?:UpdateRelStyle\b)/,/^(?:UpdateLayoutConfig\b)/,/^(?:$)/,/^(?:[(][ ]*[,])/,/^(?:[(])/,/^(?:[)])/,/^(?:,,)/,/^(?:,)/,/^(?:[ ]*["]["])/,/^(?:[ ]*["])/,/^(?:["])/,/^(?:[^"]*)/,/^(?:[ ]*[\$])/,/^(?:[^=]*)/,/^(?:[=][ ]*["])/,/^(?:[^"]+)/,/^(?:["])/,/^(?:[^,]+)/,/^(?:\{)/,/^(?:\})/,/^(?:[\s]+)/,/^(?:[\n\r]+)/,/^(?:$)/],conditions:{acc_descr_multiline:{rules:[11,12],inclusive:!1},acc_descr:{rules:[9],inclusive:!1},acc_title:{rules:[7],inclusive:!1},string_kv_value:{rules:[78,79],inclusive:!1},string_kv_key:{rules:[77],inclusive:!1},string_kv:{rules:[76],inclusive:!1},string:{rules:[73,74],inclusive:!1},attribute:{rules:[68,69,70,71,72,75,80],inclusive:!1},update_layout_config:{rules:[65,66,67,68],inclusive:!1},update_rel_style:{rules:[65,66,67,68],inclusive:!1},update_el_style:{rules:[65,66,67,68],inclusive:!1},rel_b:{rules:[65,66,67,68],inclusive:!1},rel_r:{rules:[65,66,67,68],inclusive:!1},rel_l:{rules:[65,66,67,68],inclusive:!1},rel_d:{rules:[65,66,67,68],inclusive:!1},rel_u:{rules:[65,66,67,68],inclusive:!1},rel_bi:{rules:[],inclusive:!1},rel:{rules:[65,66,67,68],inclusive:!1},node_r:{rules:[65,66,67,68],inclusive:!1},node_l:{rules:[65,66,67,68],inclusive:!1},node:{rules:[65,66,67,68],inclusive:!1},index:{rules:[],inclusive:!1},rel_index:{rules:[65,66,67,68],inclusive:!1},component_ext_queue:{rules:[],inclusive:!1},component_ext_db:{rules:[65,66,67,68],inclusive:!1},component_ext:{rules:[65,66,67,68],inclusive:!1},component_queue:{rules:[65,66,67,68],inclusive:!1},component_db:{rules:[65,66,67,68],inclusive:!1},component:{rules:[65,66,67,68],inclusive:!1},container_boundary:{rules:[65,66,67,68],inclusive:!1},container_ext_queue:{rules:[65,66,67,68],inclusive:!1},container_ext_db:{rules:[65,66,67,68],inclusive:!1},container_ext:{rules:[65,66,67,68],inclusive:!1},container_queue:{rules:[65,66,67,68],inclusive:!1},container_db:{rules:[65,66,67,68],inclusive:!1},container:{rules:[65,66,67,68],inclusive:!1},birel:{rules:[65,66,67,68],inclusive:!1},system_boundary:{rules:[65,66,67,68],inclusive:!1},enterprise_boundary:{rules:[65,66,67,68],inclusive:!1},boundary:{rules:[65,66,67,68],inclusive:!1},system_ext_queue:{rules:[65,66,67,68],inclusive:!1},system_ext_db:{rules:[65,66,67,68],inclusive:!1},system_ext:{rules:[65,66,67,68],inclusive:!1},system_queue:{rules:[65,66,67,68],inclusive:!1},system_db:{rules:[65,66,67,68],inclusive:!1},system:{rules:[65,66,67,68],inclusive:!1},person_ext:{rules:[65,66,67,68],inclusive:!1},person:{rules:[65,66,67,68],inclusive:!1},INITIAL:{rules:[0,1,2,3,4,5,6,8,10,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,81,82,83,84,85],inclusive:!0}}};return bt}();Xt.lexer=Ee;function Wt(){this.yy={}}return Wt.prototype=Xt,Xt.Parser=Wt,new Wt}();Yt.parser=Yt;const Be=Yt;let U=[],_t=[""],P="global",j="",V=[{alias:"global",label:{text:"global"},type:{text:"global"},tags:null,link:null,parentBoundary:""}],St=[],te="",ee=!1,It=4,jt=2;var de;const Ye=function(){return de},Ie=function(e){de=ue(e,Dt())},je=function(e,t,a,o,l,i,s,r,n){if(e==null||t===void 0||t===null||a===void 0||a===null||o===void 0||o===null)return;let h={};const f=St.find(d=>d.from===t&&d.to===a);if(f?h=f:St.push(h),h.type=e,h.from=t,h.to=a,h.label={text:o},l==null)h.techn={text:""};else if(typeof l=="object"){let[d,p]=Object.entries(l)[0];h[d]={text:p}}else h.techn={text:l};if(i==null)h.descr={text:""};else if(typeof i=="object"){let[d,p]=Object.entries(i)[0];h[d]={text:p}}else h.descr={text:i};if(typeof s=="object"){let[d,p]=Object.entries(s)[0];h[d]=p}else h.sprite=s;if(typeof r=="object"){let[d,p]=Object.entries(r)[0];h[d]=p}else h.tags=r;if(typeof n=="object"){let[d,p]=Object.entries(n)[0];h[d]=p}else h.link=n;h.wrap=xt()},Ue=function(e,t,a,o,l,i,s){if(t===null||a===null)return;let r={};const n=U.find(h=>h.alias===t);if(n&&t===n.alias?r=n:(r.alias=t,U.push(r)),a==null?r.label={text:""}:r.label={text:a},o==null)r.descr={text:""};else if(typeof o=="object"){let[h,f]=Object.entries(o)[0];r[h]={text:f}}else r.descr={text:o};if(typeof l=="object"){let[h,f]=Object.entries(l)[0];r[h]=f}else r.sprite=l;if(typeof i=="object"){let[h,f]=Object.entries(i)[0];r[h]=f}else r.tags=i;if(typeof s=="object"){let[h,f]=Object.entries(s)[0];r[h]=f}else r.link=s;r.typeC4Shape={text:e},r.parentBoundary=P,r.wrap=xt()},Fe=function(e,t,a,o,l,i,s,r){if(t===null||a===null)return;let n={};const h=U.find(f=>f.alias===t);if(h&&t===h.alias?n=h:(n.alias=t,U.push(n)),a==null?n.label={text:""}:n.label={text:a},o==null)n.techn={text:""};else if(typeof o=="object"){let[f,d]=Object.entries(o)[0];n[f]={text:d}}else n.techn={text:o};if(l==null)n.descr={text:""};else if(typeof l=="object"){let[f,d]=Object.entries(l)[0];n[f]={text:d}}else n.descr={text:l};if(typeof i=="object"){let[f,d]=Object.entries(i)[0];n[f]=d}else n.sprite=i;if(typeof s=="object"){let[f,d]=Object.entries(s)[0];n[f]=d}else n.tags=s;if(typeof r=="object"){let[f,d]=Object.entries(r)[0];n[f]=d}else n.link=r;n.wrap=xt(),n.typeC4Shape={text:e},n.parentBoundary=P},Ve=function(e,t,a,o,l,i,s,r){if(t===null||a===null)return;let n={};const h=U.find(f=>f.alias===t);if(h&&t===h.alias?n=h:(n.alias=t,U.push(n)),a==null?n.label={text:""}:n.label={text:a},o==null)n.techn={text:""};else if(typeof o=="object"){let[f,d]=Object.entries(o)[0];n[f]={text:d}}else n.techn={text:o};if(l==null)n.descr={text:""};else if(typeof l=="object"){let[f,d]=Object.entries(l)[0];n[f]={text:d}}else n.descr={text:l};if(typeof i=="object"){let[f,d]=Object.entries(i)[0];n[f]=d}else n.sprite=i;if(typeof s=="object"){let[f,d]=Object.entries(s)[0];n[f]=d}else n.tags=s;if(typeof r=="object"){let[f,d]=Object.entries(r)[0];n[f]=d}else n.link=r;n.wrap=xt(),n.typeC4Shape={text:e},n.parentBoundary=P},ze=function(e,t,a,o,l){if(e===null||t===null)return;let i={};const s=V.find(r=>r.alias===e);if(s&&e===s.alias?i=s:(i.alias=e,V.push(i)),t==null?i.label={text:""}:i.label={text:t},a==null)i.type={text:"system"};else if(typeof a=="object"){let[r,n]=Object.entries(a)[0];i[r]={text:n}}else i.type={text:a};if(typeof o=="object"){let[r,n]=Object.entries(o)[0];i[r]=n}else i.tags=o;if(typeof l=="object"){let[r,n]=Object.entries(l)[0];i[r]=n}else i.link=l;i.parentBoundary=P,i.wrap=xt(),j=P,P=e,_t.push(j)},Xe=function(e,t,a,o,l){if(e===null||t===null)return;let i={};const s=V.find(r=>r.alias===e);if(s&&e===s.alias?i=s:(i.alias=e,V.push(i)),t==null?i.label={text:""}:i.label={text:t},a==null)i.type={text:"container"};else if(typeof a=="object"){let[r,n]=Object.entries(a)[0];i[r]={text:n}}else i.type={text:a};if(typeof o=="object"){let[r,n]=Object.entries(o)[0];i[r]=n}else i.tags=o;if(typeof l=="object"){let[r,n]=Object.entries(l)[0];i[r]=n}else i.link=l;i.parentBoundary=P,i.wrap=xt(),j=P,P=e,_t.push(j)},We=function(e,t,a,o,l,i,s,r){if(t===null||a===null)return;let n={};const h=V.find(f=>f.alias===t);if(h&&t===h.alias?n=h:(n.alias=t,V.push(n)),a==null?n.label={text:""}:n.label={text:a},o==null)n.type={text:"node"};else if(typeof o=="object"){let[f,d]=Object.entries(o)[0];n[f]={text:d}}else n.type={text:o};if(l==null)n.descr={text:""};else if(typeof l=="object"){let[f,d]=Object.entries(l)[0];n[f]={text:d}}else n.descr={text:l};if(typeof s=="object"){let[f,d]=Object.entries(s)[0];n[f]=d}else n.tags=s;if(typeof r=="object"){let[f,d]=Object.entries(r)[0];n[f]=d}else n.link=r;n.nodeType=e,n.parentBoundary=P,n.wrap=xt(),j=P,P=t,_t.push(j)},Qe=function(){P=j,_t.pop(),j=_t.pop(),_t.push(j)},He=function(e,t,a,o,l,i,s,r,n,h,f){let d=U.find(p=>p.alias===t);if(!(d===void 0&&(d=V.find(p=>p.alias===t),d===void 0))){if(a!=null)if(typeof a=="object"){let[p,E]=Object.entries(a)[0];d[p]=E}else d.bgColor=a;if(o!=null)if(typeof o=="object"){let[p,E]=Object.entries(o)[0];d[p]=E}else d.fontColor=o;if(l!=null)if(typeof l=="object"){let[p,E]=Object.entries(l)[0];d[p]=E}else d.borderColor=l;if(i!=null)if(typeof i=="object"){let[p,E]=Object.entries(i)[0];d[p]=E}else d.shadowing=i;if(s!=null)if(typeof s=="object"){let[p,E]=Object.entries(s)[0];d[p]=E}else d.shape=s;if(r!=null)if(typeof r=="object"){let[p,E]=Object.entries(r)[0];d[p]=E}else d.sprite=r;if(n!=null)if(typeof n=="object"){let[p,E]=Object.entries(n)[0];d[p]=E}else d.techn=n;if(h!=null)if(typeof h=="object"){let[p,E]=Object.entries(h)[0];d[p]=E}else d.legendText=h;if(f!=null)if(typeof f=="object"){let[p,E]=Object.entries(f)[0];d[p]=E}else d.legendSprite=f}},qe=function(e,t,a,o,l,i,s){const r=St.find(n=>n.from===t&&n.to===a);if(r!==void 0){if(o!=null)if(typeof o=="object"){let[n,h]=Object.entries(o)[0];r[n]=h}else r.textColor=o;if(l!=null)if(typeof l=="object"){let[n,h]=Object.entries(l)[0];r[n]=h}else r.lineColor=l;if(i!=null)if(typeof i=="object"){let[n,h]=Object.entries(i)[0];r[n]=parseInt(h)}else r.offsetX=parseInt(i);if(s!=null)if(typeof s=="object"){let[n,h]=Object.entries(s)[0];r[n]=parseInt(h)}else r.offsetY=parseInt(s)}},Ge=function(e,t,a){let o=It,l=jt;if(typeof t=="object"){const i=Object.values(t)[0];o=parseInt(i)}else o=parseInt(t);if(typeof a=="object"){const i=Object.values(a)[0];l=parseInt(i)}else l=parseInt(a);o>=1&&(It=o),l>=1&&(jt=l)},Ke=function(){return It},Je=function(){return jt},Ze=function(){return P},$e=function(){return j},fe=function(e){return e==null?U:U.filter(t=>t.parentBoundary===e)},t0=function(e){return U.find(t=>t.alias===e)},e0=function(e){return Object.keys(fe(e))},pe=function(e){return e==null?V:V.filter(t=>t.parentBoundary===e)},i0=pe,n0=function(){return St},s0=function(){return te},a0=function(e){ee=e},xt=function(){return ee},r0=function(){U=[],V=[{alias:"global",label:{text:"global"},type:{text:"global"},tags:null,link:null,parentBoundary:""}],j="",P="global",_t=[""],St=[],_t=[""],te="",ee=!1,It=4,jt=2},l0={SOLID:0,DOTTED:1,NOTE:2,SOLID_CROSS:3,DOTTED_CROSS:4,SOLID_OPEN:5,DOTTED_OPEN:6,LOOP_START:10,LOOP_END:11,ALT_START:12,ALT_ELSE:13,ALT_END:14,OPT_START:15,OPT_END:16,ACTIVE_START:17,ACTIVE_END:18,PAR_START:19,PAR_AND:20,PAR_END:21,RECT_START:22,RECT_END:23,SOLID_POINT:24,DOTTED_POINT:25},o0={FILLED:0,OPEN:1},c0={LEFTOF:0,RIGHTOF:1,OVER:2},h0=function(e){te=ue(e,Dt())},Jt={addPersonOrSystem:Ue,addPersonOrSystemBoundary:ze,addContainer:Fe,addContainerBoundary:Xe,addComponent:Ve,addDeploymentNode:We,popBoundaryParseStack:Qe,addRel:je,updateElStyle:He,updateRelStyle:qe,updateLayoutConfig:Ge,autoWrap:xt,setWrap:a0,getC4ShapeArray:fe,getC4Shape:t0,getC4ShapeKeys:e0,getBoundaries:pe,getBoundarys:i0,getCurrentBoundaryParse:Ze,getParentBoundaryParse:$e,getRels:n0,getTitle:s0,getC4Type:Ye,getC4ShapeInRow:Ke,getC4BoundaryInRow:Je,setAccTitle:we,getAccTitle:Oe,getAccDescription:Te,setAccDescription:Re,getConfig:()=>Dt().c4,clear:r0,LINETYPE:l0,ARROWTYPE:o0,PLACEMENT:c0,setTitle:h0,setC4Type:Ie},ie=function(e,t){return Le(e,t)},ye=function(e,t,a,o,l,i){const s=e.append("image");s.attr("width",t),s.attr("height",a),s.attr("x",o),s.attr("y",l);let r=i.startsWith("data:image/png;base64")?i:Me.sanitizeUrl(i);s.attr("xlink:href",r)},u0=(e,t,a)=>{const o=e.append("g");let l=0;for(let i of t){let s=i.textColor?i.textColor:"#444444",r=i.lineColor?i.lineColor:"#444444",n=i.offsetX?parseInt(i.offsetX):0,h=i.offsetY?parseInt(i.offsetY):0,f="";if(l===0){let p=o.append("line");p.attr("x1",i.startPoint.x),p.attr("y1",i.startPoint.y),p.attr("x2",i.endPoint.x),p.attr("y2",i.endPoint.y),p.attr("stroke-width","1"),p.attr("stroke",r),p.style("fill","none"),i.type!=="rel_b"&&p.attr("marker-end","url("+f+"#arrowhead)"),(i.type==="birel"||i.type==="rel_b")&&p.attr("marker-start","url("+f+"#arrowend)"),l=-1}else{let p=o.append("path");p.attr("fill","none").attr("stroke-width","1").attr("stroke",r).attr("d","Mstartx,starty Qcontrolx,controly stopx,stopy ".replaceAll("startx",i.startPoint.x).replaceAll("starty",i.startPoint.y).replaceAll("controlx",i.startPoint.x+(i.endPoint.x-i.startPoint.x)/2-(i.endPoint.x-i.startPoint.x)/4).replaceAll("controly",i.startPoint.y+(i.endPoint.y-i.startPoint.y)/2).replaceAll("stopx",i.endPoint.x).replaceAll("stopy",i.endPoint.y)),i.type!=="rel_b"&&p.attr("marker-end","url("+f+"#arrowhead)"),(i.type==="birel"||i.type==="rel_b")&&p.attr("marker-start","url("+f+"#arrowend)")}let d=a.messageFont();W(a)(i.label.text,o,Math.min(i.startPoint.x,i.endPoint.x)+Math.abs(i.endPoint.x-i.startPoint.x)/2+n,Math.min(i.startPoint.y,i.endPoint.y)+Math.abs(i.endPoint.y-i.startPoint.y)/2+h,i.label.width,i.label.height,{fill:s},d),i.techn&&i.techn.text!==""&&(d=a.messageFont(),W(a)("["+i.techn.text+"]",o,Math.min(i.startPoint.x,i.endPoint.x)+Math.abs(i.endPoint.x-i.startPoint.x)/2+n,Math.min(i.startPoint.y,i.endPoint.y)+Math.abs(i.endPoint.y-i.startPoint.y)/2+a.messageFontSize+5+h,Math.max(i.label.width,i.techn.width),i.techn.height,{fill:s,"font-style":"italic"},d))}},d0=function(e,t,a){const o=e.append("g");let l=t.bgColor?t.bgColor:"none",i=t.borderColor?t.borderColor:"#444444",s=t.fontColor?t.fontColor:"black",r={"stroke-width":1,"stroke-dasharray":"7.0,7.0"};t.nodeType&&(r={"stroke-width":1});let n={x:t.x,y:t.y,fill:l,stroke:i,width:t.width,height:t.height,rx:2.5,ry:2.5,attrs:r};ie(o,n);let h=a.boundaryFont();h.fontWeight="bold",h.fontSize=h.fontSize+2,h.fontColor=s,W(a)(t.label.text,o,t.x,t.y+t.label.Y,t.width,t.height,{fill:"#444444"},h),t.type&&t.type.text!==""&&(h=a.boundaryFont(),h.fontColor=s,W(a)(t.type.text,o,t.x,t.y+t.type.Y,t.width,t.height,{fill:"#444444"},h)),t.descr&&t.descr.text!==""&&(h=a.boundaryFont(),h.fontSize=h.fontSize-2,h.fontColor=s,W(a)(t.descr.text,o,t.x,t.y+t.descr.Y,t.width,t.height,{fill:"#444444"},h))},f0=function(e,t,a){var o;let l=t.bgColor?t.bgColor:a[t.typeC4Shape.text+"_bg_color"],i=t.borderColor?t.borderColor:a[t.typeC4Shape.text+"_border_color"],s=t.fontColor?t.fontColor:"#FFFFFF",r="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAIAAADYYG7QAAACD0lEQVR4Xu2YoU4EMRCGT+4j8Ai8AhaH4QHgAUjQuFMECUgMIUgwJAgMhgQsAYUiJCiQIBBY+EITsjfTdme6V24v4c8vyGbb+ZjOtN0bNcvjQXmkH83WvYBWto6PLm6v7p7uH1/w2fXD+PBycX1Pv2l3IdDm/vn7x+dXQiAubRzoURa7gRZWd0iGRIiJbOnhnfYBQZNJjNbuyY2eJG8fkDE3bbG4ep6MHUAsgYxmE3nVs6VsBWJSGccsOlFPmLIViMzLOB7pCVO2AtHJMohH7Fh6zqitQK7m0rJvAVYgGcEpe//PLdDz65sM4pF9N7ICcXDKIB5Nv6j7tD0NoSdM2QrU9Gg0ewE1LqBhHR3BBdvj2vapnidjHxD/q6vd7Pvhr31AwcY8eXMTXAKECZZJFXuEq27aLgQK5uLMohCenGGuGewOxSjBvYBqeG6B+Nqiblggdjnc+ZXDy+FNFpFzw76O3UBAROuXh6FoiAcf5g9eTvUgzy0nWg6I8cXHRUpg5bOVBCo+KDpFajOf23GgPme7RSQ+lacIENUgJ6gg1k6HjgOlqnLqip4tEuhv0hNEMXUD0clyXE3p6pZA0S2nnvTlXwLJEZWlb7cTQH1+USgTN4VhAenm/wea1OCAOmqo6fE1WCb9WSKBah+rbUWPWAmE2Rvk0ApiB45eOyNAzU8xcTvj8KvkKEoOaIYeHNA3ZuygAvFMUO0AAAAASUVORK5CYII=";switch(t.typeC4Shape.text){case"person":r="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAIAAADYYG7QAAACD0lEQVR4Xu2YoU4EMRCGT+4j8Ai8AhaH4QHgAUjQuFMECUgMIUgwJAgMhgQsAYUiJCiQIBBY+EITsjfTdme6V24v4c8vyGbb+ZjOtN0bNcvjQXmkH83WvYBWto6PLm6v7p7uH1/w2fXD+PBycX1Pv2l3IdDm/vn7x+dXQiAubRzoURa7gRZWd0iGRIiJbOnhnfYBQZNJjNbuyY2eJG8fkDE3bbG4ep6MHUAsgYxmE3nVs6VsBWJSGccsOlFPmLIViMzLOB7pCVO2AtHJMohH7Fh6zqitQK7m0rJvAVYgGcEpe//PLdDz65sM4pF9N7ICcXDKIB5Nv6j7tD0NoSdM2QrU9Gg0ewE1LqBhHR3BBdvj2vapnidjHxD/q6vd7Pvhr31AwcY8eXMTXAKECZZJFXuEq27aLgQK5uLMohCenGGuGewOxSjBvYBqeG6B+Nqiblggdjnc+ZXDy+FNFpFzw76O3UBAROuXh6FoiAcf5g9eTvUgzy0nWg6I8cXHRUpg5bOVBCo+KDpFajOf23GgPme7RSQ+lacIENUgJ6gg1k6HjgOlqnLqip4tEuhv0hNEMXUD0clyXE3p6pZA0S2nnvTlXwLJEZWlb7cTQH1+USgTN4VhAenm/wea1OCAOmqo6fE1WCb9WSKBah+rbUWPWAmE2Rvk0ApiB45eOyNAzU8xcTvj8KvkKEoOaIYeHNA3ZuygAvFMUO0AAAAASUVORK5CYII=";break;case"external_person":r="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAIAAADYYG7QAAAB6ElEQVR4Xu2YLY+EMBCG9+dWr0aj0Wg0Go1Go0+j8Xdv2uTCvv1gpt0ebHKPuhDaeW4605Z9mJvx4AdXUyTUdd08z+u6flmWZRnHsWkafk9DptAwDPu+f0eAYtu2PEaGWuj5fCIZrBAC2eLBAnRCsEkkxmeaJp7iDJ2QMDdHsLg8SxKFEJaAo8lAXnmuOFIhTMpxxKATebo4UiFknuNo4OniSIXQyRxEA3YsnjGCVEjVXD7yLUAqxBGUyPv/Y4W2beMgGuS7kVQIBycH0fD+oi5pezQETxdHKmQKGk1eQEYldK+jw5GxPfZ9z7Mk0Qnhf1W1m3w//EUn5BDmSZsbR44QQLBEqrBHqOrmSKaQAxdnLArCrxZcM7A7ZKs4ioRq8LFC+NpC3WCBJsvpVw5edm9iEXFuyNfxXAgSwfrFQ1c0iNda8AdejvUgnktOtJQQxmcfFzGglc5WVCj7oDgFqU18boeFSs52CUh8LE8BIVQDT1ABrB0HtgSEYlX5doJnCwv9TXocKCaKbnwhdDKPq4lf3SwU3HLq4V/+WYhHVMa/3b4IlfyikAduCkcBc7mQ3/z/Qq/cTuikhkzB12Ae/mcJC9U+Vo8Ej1gWAtgbeGgFsAMHr50BIWOLCbezvhpBFUdY6EJuJ/QDW0XoMX60zZ0AAAAASUVORK5CYII=";break}const n=e.append("g");n.attr("class","person-man");const h=Ne();switch(t.typeC4Shape.text){case"person":case"external_person":case"system":case"external_system":case"container":case"external_container":case"component":case"external_component":h.x=t.x,h.y=t.y,h.fill=l,h.width=t.width,h.height=t.height,h.stroke=i,h.rx=2.5,h.ry=2.5,h.attrs={"stroke-width":.5},ie(n,h);break;case"system_db":case"external_system_db":case"container_db":case"external_container_db":case"component_db":case"external_component_db":n.append("path").attr("fill",l).attr("stroke-width","0.5").attr("stroke",i).attr("d","Mstartx,startyc0,-10 half,-10 half,-10c0,0 half,0 half,10l0,heightc0,10 -half,10 -half,10c0,0 -half,0 -half,-10l0,-height".replaceAll("startx",t.x).replaceAll("starty",t.y).replaceAll("half",t.width/2).replaceAll("height",t.height)),n.append("path").attr("fill","none").attr("stroke-width","0.5").attr("stroke",i).attr("d","Mstartx,startyc0,10 half,10 half,10c0,0 half,0 half,-10".replaceAll("startx",t.x).replaceAll("starty",t.y).replaceAll("half",t.width/2));break;case"system_queue":case"external_system_queue":case"container_queue":case"external_container_queue":case"component_queue":case"external_component_queue":n.append("path").attr("fill",l).attr("stroke-width","0.5").attr("stroke",i).attr("d","Mstartx,startylwidth,0c5,0 5,half 5,halfc0,0 0,half -5,halfl-width,0c-5,0 -5,-half -5,-halfc0,0 0,-half 5,-half".replaceAll("startx",t.x).replaceAll("starty",t.y).replaceAll("width",t.width).replaceAll("half",t.height/2)),n.append("path").attr("fill","none").attr("stroke-width","0.5").attr("stroke",i).attr("d","Mstartx,startyc-5,0 -5,half -5,halfc0,half 5,half 5,half".replaceAll("startx",t.x+t.width).replaceAll("starty",t.y).replaceAll("half",t.height/2));break}let f=v0(a,t.typeC4Shape.text);switch(n.append("text").attr("fill",s).attr("font-family",f.fontFamily).attr("font-size",f.fontSize-2).attr("font-style","italic").attr("lengthAdjust","spacing").attr("textLength",t.typeC4Shape.width).attr("x",t.x+t.width/2-t.typeC4Shape.width/2).attr("y",t.y+t.typeC4Shape.Y).text("<<"+t.typeC4Shape.text+">>"),t.typeC4Shape.text){case"person":case"external_person":ye(n,48,48,t.x+t.width/2-24,t.y+t.image.Y,r);break}let d=a[t.typeC4Shape.text+"Font"]();return d.fontWeight="bold",d.fontSize=d.fontSize+2,d.fontColor=s,W(a)(t.label.text,n,t.x,t.y+t.label.Y,t.width,t.height,{fill:s},d),d=a[t.typeC4Shape.text+"Font"](),d.fontColor=s,t.techn&&((o=t.techn)==null?void 0:o.text)!==""?W(a)(t.techn.text,n,t.x,t.y+t.techn.Y,t.width,t.height,{fill:s,"font-style":"italic"},d):t.type&&t.type.text!==""&&W(a)(t.type.text,n,t.x,t.y+t.type.Y,t.width,t.height,{fill:s,"font-style":"italic"},d),t.descr&&t.descr.text!==""&&(d=a.personFont(),d.fontColor=s,W(a)(t.descr.text,n,t.x,t.y+t.descr.Y,t.width,t.height,{fill:s},d)),t.height},p0=function(e){e.append("defs").append("symbol").attr("id","database").attr("fill-rule","evenodd").attr("clip-rule","evenodd").append("path").attr("transform","scale(.5)").attr("d","M12.258.001l.256.004.255.005.253.008.251.01.249.012.247.015.246.016.242.019.241.02.239.023.236.024.233.027.231.028.229.031.225.032.223.034.22.036.217.038.214.04.211.041.208.043.205.045.201.046.198.048.194.05.191.051.187.053.183.054.18.056.175.057.172.059.168.06.163.061.16.063.155.064.15.066.074.033.073.033.071.034.07.034.069.035.068.035.067.035.066.035.064.036.064.036.062.036.06.036.06.037.058.037.058.037.055.038.055.038.053.038.052.038.051.039.05.039.048.039.047.039.045.04.044.04.043.04.041.04.04.041.039.041.037.041.036.041.034.041.033.042.032.042.03.042.029.042.027.042.026.043.024.043.023.043.021.043.02.043.018.044.017.043.015.044.013.044.012.044.011.045.009.044.007.045.006.045.004.045.002.045.001.045v17l-.001.045-.002.045-.004.045-.006.045-.007.045-.009.044-.011.045-.012.044-.013.044-.015.044-.017.043-.018.044-.02.043-.021.043-.023.043-.024.043-.026.043-.027.042-.029.042-.03.042-.032.042-.033.042-.034.041-.036.041-.037.041-.039.041-.04.041-.041.04-.043.04-.044.04-.045.04-.047.039-.048.039-.05.039-.051.039-.052.038-.053.038-.055.038-.055.038-.058.037-.058.037-.06.037-.06.036-.062.036-.064.036-.064.036-.066.035-.067.035-.068.035-.069.035-.07.034-.071.034-.073.033-.074.033-.15.066-.155.064-.16.063-.163.061-.168.06-.172.059-.175.057-.18.056-.183.054-.187.053-.191.051-.194.05-.198.048-.201.046-.205.045-.208.043-.211.041-.214.04-.217.038-.22.036-.223.034-.225.032-.229.031-.231.028-.233.027-.236.024-.239.023-.241.02-.242.019-.246.016-.247.015-.249.012-.251.01-.253.008-.255.005-.256.004-.258.001-.258-.001-.256-.004-.255-.005-.253-.008-.251-.01-.249-.012-.247-.015-.245-.016-.243-.019-.241-.02-.238-.023-.236-.024-.234-.027-.231-.028-.228-.031-.226-.032-.223-.034-.22-.036-.217-.038-.214-.04-.211-.041-.208-.043-.204-.045-.201-.046-.198-.048-.195-.05-.19-.051-.187-.053-.184-.054-.179-.056-.176-.057-.172-.059-.167-.06-.164-.061-.159-.063-.155-.064-.151-.066-.074-.033-.072-.033-.072-.034-.07-.034-.069-.035-.068-.035-.067-.035-.066-.035-.064-.036-.063-.036-.062-.036-.061-.036-.06-.037-.058-.037-.057-.037-.056-.038-.055-.038-.053-.038-.052-.038-.051-.039-.049-.039-.049-.039-.046-.039-.046-.04-.044-.04-.043-.04-.041-.04-.04-.041-.039-.041-.037-.041-.036-.041-.034-.041-.033-.042-.032-.042-.03-.042-.029-.042-.027-.042-.026-.043-.024-.043-.023-.043-.021-.043-.02-.043-.018-.044-.017-.043-.015-.044-.013-.044-.012-.044-.011-.045-.009-.044-.007-.045-.006-.045-.004-.045-.002-.045-.001-.045v-17l.001-.045.002-.045.004-.045.006-.045.007-.045.009-.044.011-.045.012-.044.013-.044.015-.044.017-.043.018-.044.02-.043.021-.043.023-.043.024-.043.026-.043.027-.042.029-.042.03-.042.032-.042.033-.042.034-.041.036-.041.037-.041.039-.041.04-.041.041-.04.043-.04.044-.04.046-.04.046-.039.049-.039.049-.039.051-.039.052-.038.053-.038.055-.038.056-.038.057-.037.058-.037.06-.037.061-.036.062-.036.063-.036.064-.036.066-.035.067-.035.068-.035.069-.035.07-.034.072-.034.072-.033.074-.033.151-.066.155-.064.159-.063.164-.061.167-.06.172-.059.176-.057.179-.056.184-.054.187-.053.19-.051.195-.05.198-.048.201-.046.204-.045.208-.043.211-.041.214-.04.217-.038.22-.036.223-.034.226-.032.228-.031.231-.028.234-.027.236-.024.238-.023.241-.02.243-.019.245-.016.247-.015.249-.012.251-.01.253-.008.255-.005.256-.004.258-.001.258.001zm-9.258 20.499v.01l.001.021.003.021.004.022.005.021.006.022.007.022.009.023.01.022.011.023.012.023.013.023.015.023.016.024.017.023.018.024.019.024.021.024.022.025.023.024.024.025.052.049.056.05.061.051.066.051.07.051.075.051.079.052.084.052.088.052.092.052.097.052.102.051.105.052.11.052.114.051.119.051.123.051.127.05.131.05.135.05.139.048.144.049.147.047.152.047.155.047.16.045.163.045.167.043.171.043.176.041.178.041.183.039.187.039.19.037.194.035.197.035.202.033.204.031.209.03.212.029.216.027.219.025.222.024.226.021.23.02.233.018.236.016.24.015.243.012.246.01.249.008.253.005.256.004.259.001.26-.001.257-.004.254-.005.25-.008.247-.011.244-.012.241-.014.237-.016.233-.018.231-.021.226-.021.224-.024.22-.026.216-.027.212-.028.21-.031.205-.031.202-.034.198-.034.194-.036.191-.037.187-.039.183-.04.179-.04.175-.042.172-.043.168-.044.163-.045.16-.046.155-.046.152-.047.148-.048.143-.049.139-.049.136-.05.131-.05.126-.05.123-.051.118-.052.114-.051.11-.052.106-.052.101-.052.096-.052.092-.052.088-.053.083-.051.079-.052.074-.052.07-.051.065-.051.06-.051.056-.05.051-.05.023-.024.023-.025.021-.024.02-.024.019-.024.018-.024.017-.024.015-.023.014-.024.013-.023.012-.023.01-.023.01-.022.008-.022.006-.022.006-.022.004-.022.004-.021.001-.021.001-.021v-4.127l-.077.055-.08.053-.083.054-.085.053-.087.052-.09.052-.093.051-.095.05-.097.05-.1.049-.102.049-.105.048-.106.047-.109.047-.111.046-.114.045-.115.045-.118.044-.12.043-.122.042-.124.042-.126.041-.128.04-.13.04-.132.038-.134.038-.135.037-.138.037-.139.035-.142.035-.143.034-.144.033-.147.032-.148.031-.15.03-.151.03-.153.029-.154.027-.156.027-.158.026-.159.025-.161.024-.162.023-.163.022-.165.021-.166.02-.167.019-.169.018-.169.017-.171.016-.173.015-.173.014-.175.013-.175.012-.177.011-.178.01-.179.008-.179.008-.181.006-.182.005-.182.004-.184.003-.184.002h-.37l-.184-.002-.184-.003-.182-.004-.182-.005-.181-.006-.179-.008-.179-.008-.178-.01-.176-.011-.176-.012-.175-.013-.173-.014-.172-.015-.171-.016-.17-.017-.169-.018-.167-.019-.166-.02-.165-.021-.163-.022-.162-.023-.161-.024-.159-.025-.157-.026-.156-.027-.155-.027-.153-.029-.151-.03-.15-.03-.148-.031-.146-.032-.145-.033-.143-.034-.141-.035-.14-.035-.137-.037-.136-.037-.134-.038-.132-.038-.13-.04-.128-.04-.126-.041-.124-.042-.122-.042-.12-.044-.117-.043-.116-.045-.113-.045-.112-.046-.109-.047-.106-.047-.105-.048-.102-.049-.1-.049-.097-.05-.095-.05-.093-.052-.09-.051-.087-.052-.085-.053-.083-.054-.08-.054-.077-.054v4.127zm0-5.654v.011l.001.021.003.021.004.021.005.022.006.022.007.022.009.022.01.022.011.023.012.023.013.023.015.024.016.023.017.024.018.024.019.024.021.024.022.024.023.025.024.024.052.05.056.05.061.05.066.051.07.051.075.052.079.051.084.052.088.052.092.052.097.052.102.052.105.052.11.051.114.051.119.052.123.05.127.051.131.05.135.049.139.049.144.048.147.048.152.047.155.046.16.045.163.045.167.044.171.042.176.042.178.04.183.04.187.038.19.037.194.036.197.034.202.033.204.032.209.03.212.028.216.027.219.025.222.024.226.022.23.02.233.018.236.016.24.014.243.012.246.01.249.008.253.006.256.003.259.001.26-.001.257-.003.254-.006.25-.008.247-.01.244-.012.241-.015.237-.016.233-.018.231-.02.226-.022.224-.024.22-.025.216-.027.212-.029.21-.03.205-.032.202-.033.198-.035.194-.036.191-.037.187-.039.183-.039.179-.041.175-.042.172-.043.168-.044.163-.045.16-.045.155-.047.152-.047.148-.048.143-.048.139-.05.136-.049.131-.05.126-.051.123-.051.118-.051.114-.052.11-.052.106-.052.101-.052.096-.052.092-.052.088-.052.083-.052.079-.052.074-.051.07-.052.065-.051.06-.05.056-.051.051-.049.023-.025.023-.024.021-.025.02-.024.019-.024.018-.024.017-.024.015-.023.014-.023.013-.024.012-.022.01-.023.01-.023.008-.022.006-.022.006-.022.004-.021.004-.022.001-.021.001-.021v-4.139l-.077.054-.08.054-.083.054-.085.052-.087.053-.09.051-.093.051-.095.051-.097.05-.1.049-.102.049-.105.048-.106.047-.109.047-.111.046-.114.045-.115.044-.118.044-.12.044-.122.042-.124.042-.126.041-.128.04-.13.039-.132.039-.134.038-.135.037-.138.036-.139.036-.142.035-.143.033-.144.033-.147.033-.148.031-.15.03-.151.03-.153.028-.154.028-.156.027-.158.026-.159.025-.161.024-.162.023-.163.022-.165.021-.166.02-.167.019-.169.018-.169.017-.171.016-.173.015-.173.014-.175.013-.175.012-.177.011-.178.009-.179.009-.179.007-.181.007-.182.005-.182.004-.184.003-.184.002h-.37l-.184-.002-.184-.003-.182-.004-.182-.005-.181-.007-.179-.007-.179-.009-.178-.009-.176-.011-.176-.012-.175-.013-.173-.014-.172-.015-.171-.016-.17-.017-.169-.018-.167-.019-.166-.02-.165-.021-.163-.022-.162-.023-.161-.024-.159-.025-.157-.026-.156-.027-.155-.028-.153-.028-.151-.03-.15-.03-.148-.031-.146-.033-.145-.033-.143-.033-.141-.035-.14-.036-.137-.036-.136-.037-.134-.038-.132-.039-.13-.039-.128-.04-.126-.041-.124-.042-.122-.043-.12-.043-.117-.044-.116-.044-.113-.046-.112-.046-.109-.046-.106-.047-.105-.048-.102-.049-.1-.049-.097-.05-.095-.051-.093-.051-.09-.051-.087-.053-.085-.052-.083-.054-.08-.054-.077-.054v4.139zm0-5.666v.011l.001.02.003.022.004.021.005.022.006.021.007.022.009.023.01.022.011.023.012.023.013.023.015.023.016.024.017.024.018.023.019.024.021.025.022.024.023.024.024.025.052.05.056.05.061.05.066.051.07.051.075.052.079.051.084.052.088.052.092.052.097.052.102.052.105.051.11.052.114.051.119.051.123.051.127.05.131.05.135.05.139.049.144.048.147.048.152.047.155.046.16.045.163.045.167.043.171.043.176.042.178.04.183.04.187.038.19.037.194.036.197.034.202.033.204.032.209.03.212.028.216.027.219.025.222.024.226.021.23.02.233.018.236.017.24.014.243.012.246.01.249.008.253.006.256.003.259.001.26-.001.257-.003.254-.006.25-.008.247-.01.244-.013.241-.014.237-.016.233-.018.231-.02.226-.022.224-.024.22-.025.216-.027.212-.029.21-.03.205-.032.202-.033.198-.035.194-.036.191-.037.187-.039.183-.039.179-.041.175-.042.172-.043.168-.044.163-.045.16-.045.155-.047.152-.047.148-.048.143-.049.139-.049.136-.049.131-.051.126-.05.123-.051.118-.052.114-.051.11-.052.106-.052.101-.052.096-.052.092-.052.088-.052.083-.052.079-.052.074-.052.07-.051.065-.051.06-.051.056-.05.051-.049.023-.025.023-.025.021-.024.02-.024.019-.024.018-.024.017-.024.015-.023.014-.024.013-.023.012-.023.01-.022.01-.023.008-.022.006-.022.006-.022.004-.022.004-.021.001-.021.001-.021v-4.153l-.077.054-.08.054-.083.053-.085.053-.087.053-.09.051-.093.051-.095.051-.097.05-.1.049-.102.048-.105.048-.106.048-.109.046-.111.046-.114.046-.115.044-.118.044-.12.043-.122.043-.124.042-.126.041-.128.04-.13.039-.132.039-.134.038-.135.037-.138.036-.139.036-.142.034-.143.034-.144.033-.147.032-.148.032-.15.03-.151.03-.153.028-.154.028-.156.027-.158.026-.159.024-.161.024-.162.023-.163.023-.165.021-.166.02-.167.019-.169.018-.169.017-.171.016-.173.015-.173.014-.175.013-.175.012-.177.01-.178.01-.179.009-.179.007-.181.006-.182.006-.182.004-.184.003-.184.001-.185.001-.185-.001-.184-.001-.184-.003-.182-.004-.182-.006-.181-.006-.179-.007-.179-.009-.178-.01-.176-.01-.176-.012-.175-.013-.173-.014-.172-.015-.171-.016-.17-.017-.169-.018-.167-.019-.166-.02-.165-.021-.163-.023-.162-.023-.161-.024-.159-.024-.157-.026-.156-.027-.155-.028-.153-.028-.151-.03-.15-.03-.148-.032-.146-.032-.145-.033-.143-.034-.141-.034-.14-.036-.137-.036-.136-.037-.134-.038-.132-.039-.13-.039-.128-.041-.126-.041-.124-.041-.122-.043-.12-.043-.117-.044-.116-.044-.113-.046-.112-.046-.109-.046-.106-.048-.105-.048-.102-.048-.1-.05-.097-.049-.095-.051-.093-.051-.09-.052-.087-.052-.085-.053-.083-.053-.08-.054-.077-.054v4.153zm8.74-8.179l-.257.004-.254.005-.25.008-.247.011-.244.012-.241.014-.237.016-.233.018-.231.021-.226.022-.224.023-.22.026-.216.027-.212.028-.21.031-.205.032-.202.033-.198.034-.194.036-.191.038-.187.038-.183.04-.179.041-.175.042-.172.043-.168.043-.163.045-.16.046-.155.046-.152.048-.148.048-.143.048-.139.049-.136.05-.131.05-.126.051-.123.051-.118.051-.114.052-.11.052-.106.052-.101.052-.096.052-.092.052-.088.052-.083.052-.079.052-.074.051-.07.052-.065.051-.06.05-.056.05-.051.05-.023.025-.023.024-.021.024-.02.025-.019.024-.018.024-.017.023-.015.024-.014.023-.013.023-.012.023-.01.023-.01.022-.008.022-.006.023-.006.021-.004.022-.004.021-.001.021-.001.021.001.021.001.021.004.021.004.022.006.021.006.023.008.022.01.022.01.023.012.023.013.023.014.023.015.024.017.023.018.024.019.024.02.025.021.024.023.024.023.025.051.05.056.05.06.05.065.051.07.052.074.051.079.052.083.052.088.052.092.052.096.052.101.052.106.052.11.052.114.052.118.051.123.051.126.051.131.05.136.05.139.049.143.048.148.048.152.048.155.046.16.046.163.045.168.043.172.043.175.042.179.041.183.04.187.038.191.038.194.036.198.034.202.033.205.032.21.031.212.028.216.027.22.026.224.023.226.022.231.021.233.018.237.016.241.014.244.012.247.011.25.008.254.005.257.004.26.001.26-.001.257-.004.254-.005.25-.008.247-.011.244-.012.241-.014.237-.016.233-.018.231-.021.226-.022.224-.023.22-.026.216-.027.212-.028.21-.031.205-.032.202-.033.198-.034.194-.036.191-.038.187-.038.183-.04.179-.041.175-.042.172-.043.168-.043.163-.045.16-.046.155-.046.152-.048.148-.048.143-.048.139-.049.136-.05.131-.05.126-.051.123-.051.118-.051.114-.052.11-.052.106-.052.101-.052.096-.052.092-.052.088-.052.083-.052.079-.052.074-.051.07-.052.065-.051.06-.05.056-.05.051-.05.023-.025.023-.024.021-.024.02-.025.019-.024.018-.024.017-.023.015-.024.014-.023.013-.023.012-.023.01-.023.01-.022.008-.022.006-.023.006-.021.004-.022.004-.021.001-.021.001-.021-.001-.021-.001-.021-.004-.021-.004-.022-.006-.021-.006-.023-.008-.022-.01-.022-.01-.023-.012-.023-.013-.023-.014-.023-.015-.024-.017-.023-.018-.024-.019-.024-.02-.025-.021-.024-.023-.024-.023-.025-.051-.05-.056-.05-.06-.05-.065-.051-.07-.052-.074-.051-.079-.052-.083-.052-.088-.052-.092-.052-.096-.052-.101-.052-.106-.052-.11-.052-.114-.052-.118-.051-.123-.051-.126-.051-.131-.05-.136-.05-.139-.049-.143-.048-.148-.048-.152-.048-.155-.046-.16-.046-.163-.045-.168-.043-.172-.043-.175-.042-.179-.041-.183-.04-.187-.038-.191-.038-.194-.036-.198-.034-.202-.033-.205-.032-.21-.031-.212-.028-.216-.027-.22-.026-.224-.023-.226-.022-.231-.021-.233-.018-.237-.016-.241-.014-.244-.012-.247-.011-.25-.008-.254-.005-.257-.004-.26-.001-.26.001z")},y0=function(e){e.append("defs").append("symbol").attr("id","computer").attr("width","24").attr("height","24").append("path").attr("transform","scale(.5)").attr("d","M2 2v13h20v-13h-20zm18 11h-16v-9h16v9zm-10.228 6l.466-1h3.524l.467 1h-4.457zm14.228 3h-24l2-6h2.104l-1.33 4h18.45l-1.297-4h2.073l2 6zm-5-10h-14v-7h14v7z")},g0=function(e){e.append("defs").append("symbol").attr("id","clock").attr("width","24").attr("height","24").append("path").attr("transform","scale(.5)").attr("d","M12 2c5.514 0 10 4.486 10 10s-4.486 10-10 10-10-4.486-10-10 4.486-10 10-10zm0-2c-6.627 0-12 5.373-12 12s5.373 12 12 12 12-5.373 12-12-5.373-12-12-12zm5.848 12.459c.202.038.202.333.001.372-1.907.361-6.045 1.111-6.547 1.111-.719 0-1.301-.582-1.301-1.301 0-.512.77-5.447 1.125-7.445.034-.192.312-.181.343.014l.985 6.238 5.394 1.011z")},b0=function(e){e.append("defs").append("marker").attr("id","arrowhead").attr("refX",9).attr("refY",5).attr("markerUnits","userSpaceOnUse").attr("markerWidth",12).attr("markerHeight",12).attr("orient","auto").append("path").attr("d","M 0 0 L 10 5 L 0 10 z")},_0=function(e){e.append("defs").append("marker").attr("id","arrowend").attr("refX",1).attr("refY",5).attr("markerUnits","userSpaceOnUse").attr("markerWidth",12).attr("markerHeight",12).attr("orient","auto").append("path").attr("d","M 10 0 L 0 5 L 10 10 z")},x0=function(e){e.append("defs").append("marker").attr("id","filled-head").attr("refX",18).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L14,7 L9,1 Z")},m0=function(e){e.append("defs").append("marker").attr("id","sequencenumber").attr("refX",15).attr("refY",15).attr("markerWidth",60).attr("markerHeight",40).attr("orient","auto").append("circle").attr("cx",15).attr("cy",15).attr("r",6)},E0=function(e){const a=e.append("defs").append("marker").attr("id","crosshead").attr("markerWidth",15).attr("markerHeight",8).attr("orient","auto").attr("refX",16).attr("refY",4);a.append("path").attr("fill","black").attr("stroke","#000000").style("stroke-dasharray","0, 0").attr("stroke-width","1px").attr("d","M 9,2 V 6 L16,4 Z"),a.append("path").attr("fill","none").attr("stroke","#000000").style("stroke-dasharray","0, 0").attr("stroke-width","1px").attr("d","M 0,1 L 6,7 M 6,1 L 0,7")},v0=(e,t)=>({fontFamily:e[t+"FontFamily"],fontSize:e[t+"FontSize"],fontWeight:e[t+"FontWeight"]}),W=function(){function e(l,i,s,r,n,h,f){const d=i.append("text").attr("x",s+n/2).attr("y",r+h/2+5).style("text-anchor","middle").text(l);o(d,f)}function t(l,i,s,r,n,h,f,d){const{fontSize:p,fontFamily:E,fontWeight:O}=d,R=l.split(Kt.lineBreakRegex);for(let S=0;S=this.data.widthLimit||o>=this.data.widthLimit||this.nextData.cnt>ge)&&(a=this.nextData.startx+t.margin+b.nextLinePaddingX,l=this.nextData.stopy+t.margin*2,this.nextData.stopx=o=a+t.width,this.nextData.starty=this.nextData.stopy,this.nextData.stopy=i=l+t.height,this.nextData.cnt=1),t.x=a,t.y=l,this.updateVal(this.data,"startx",a,Math.min),this.updateVal(this.data,"starty",l,Math.min),this.updateVal(this.data,"stopx",o,Math.max),this.updateVal(this.data,"stopy",i,Math.max),this.updateVal(this.nextData,"startx",a,Math.min),this.updateVal(this.nextData,"starty",l,Math.min),this.updateVal(this.nextData,"stopx",o,Math.max),this.updateVal(this.nextData,"stopy",i,Math.max)}init(t){this.name="",this.data={startx:void 0,stopx:void 0,starty:void 0,stopy:void 0,widthLimit:void 0},this.nextData={startx:void 0,stopx:void 0,starty:void 0,stopy:void 0,cnt:0},$t(t.db.getConfig())}bumpLastMargin(t){this.data.stopx+=t,this.data.stopy+=t}}const $t=function(e){De(b,e),e.fontFamily&&(b.personFontFamily=b.systemFontFamily=b.messageFontFamily=e.fontFamily),e.fontSize&&(b.personFontSize=b.systemFontSize=b.messageFontSize=e.fontSize),e.fontWeight&&(b.personFontWeight=b.systemFontWeight=b.messageFontWeight=e.fontWeight)},Rt=(e,t)=>({fontFamily:e[t+"FontFamily"],fontSize:e[t+"FontSize"],fontWeight:e[t+"FontWeight"]}),Bt=e=>({fontFamily:e.boundaryFontFamily,fontSize:e.boundaryFontSize,fontWeight:e.boundaryFontWeight}),k0=e=>({fontFamily:e.messageFontFamily,fontSize:e.messageFontSize,fontWeight:e.messageFontWeight});function I(e,t,a,o,l){if(!t[e].width)if(a)t[e].text=Pe(t[e].text,l,o),t[e].textLines=t[e].text.split(Kt.lineBreakRegex).length,t[e].width=l,t[e].height=oe(t[e].text,o);else{let i=t[e].text.split(Kt.lineBreakRegex);t[e].textLines=i.length;let s=0;t[e].height=0,t[e].width=0;for(const r of i)t[e].width=Math.max(wt(r,o),t[e].width),s=oe(r,o),t[e].height=t[e].height+s}}const _e=function(e,t,a){t.x=a.data.startx,t.y=a.data.starty,t.width=a.data.stopx-a.data.startx,t.height=a.data.stopy-a.data.starty,t.label.y=b.c4ShapeMargin-35;let o=t.wrap&&b.wrap,l=Bt(b);l.fontSize=l.fontSize+2,l.fontWeight="bold";let i=wt(t.label.text,l);I("label",t,o,l,i),F.drawBoundary(e,t,b)},xe=function(e,t,a,o){let l=0;for(const i of o){l=0;const s=a[i];let r=Rt(b,s.typeC4Shape.text);switch(r.fontSize=r.fontSize-2,s.typeC4Shape.width=wt("«"+s.typeC4Shape.text+"»",r),s.typeC4Shape.height=r.fontSize+2,s.typeC4Shape.Y=b.c4ShapePadding,l=s.typeC4Shape.Y+s.typeC4Shape.height-4,s.image={width:0,height:0,Y:0},s.typeC4Shape.text){case"person":case"external_person":s.image.width=48,s.image.height=48,s.image.Y=l,l=s.image.Y+s.image.height;break}s.sprite&&(s.image.width=48,s.image.height=48,s.image.Y=l,l=s.image.Y+s.image.height);let n=s.wrap&&b.wrap,h=b.width-b.c4ShapePadding*2,f=Rt(b,s.typeC4Shape.text);if(f.fontSize=f.fontSize+2,f.fontWeight="bold",I("label",s,n,f,h),s.label.Y=l+8,l=s.label.Y+s.label.height,s.type&&s.type.text!==""){s.type.text="["+s.type.text+"]";let E=Rt(b,s.typeC4Shape.text);I("type",s,n,E,h),s.type.Y=l+5,l=s.type.Y+s.type.height}else if(s.techn&&s.techn.text!==""){s.techn.text="["+s.techn.text+"]";let E=Rt(b,s.techn.text);I("techn",s,n,E,h),s.techn.Y=l+5,l=s.techn.Y+s.techn.height}let d=l,p=s.label.width;if(s.descr&&s.descr.text!==""){let E=Rt(b,s.typeC4Shape.text);I("descr",s,n,E,h),s.descr.Y=l+20,l=s.descr.Y+s.descr.height,p=Math.max(s.label.width,s.descr.width),d=l-s.descr.textLines*5}p=p+b.c4ShapePadding,s.width=Math.max(s.width||b.width,p,b.width),s.height=Math.max(s.height||b.height,d,b.height),s.margin=s.margin||b.c4ShapeMargin,e.insert(s),F.drawC4Shape(t,s,b)}e.bumpLastMargin(b.c4ShapeMargin)};class B{constructor(t,a){this.x=t,this.y=a}}let ce=function(e,t){let a=e.x,o=e.y,l=t.x,i=t.y,s=a+e.width/2,r=o+e.height/2,n=Math.abs(a-l),h=Math.abs(o-i),f=h/n,d=e.height/e.width,p=null;return o==i&&al?p=new B(a,r):a==l&&oi&&(p=new B(s,o)),a>l&&o=f?p=new B(a,r+f*e.width/2):p=new B(s-n/h*e.height/2,o+e.height):a=f?p=new B(a+e.width,r+f*e.width/2):p=new B(s+n/h*e.height/2,o+e.height):ai?d>=f?p=new B(a+e.width,r-f*e.width/2):p=new B(s+e.height/2*n/h,o):a>l&&o>i&&(d>=f?p=new B(a,r-e.width/2*f):p=new B(s-e.height/2*n/h,o)),p},A0=function(e,t){let a={x:0,y:0};a.x=t.x+t.width/2,a.y=t.y+t.height/2;let o=ce(e,a);a.x=e.x+e.width/2,a.y=e.y+e.height/2;let l=ce(t,a);return{startPoint:o,endPoint:l}};const C0=function(e,t,a,o){let l=0;for(let i of t){l=l+1;let s=i.wrap&&b.wrap,r=k0(b);o.db.getC4Type()==="C4Dynamic"&&(i.label.text=l+": "+i.label.text);let h=wt(i.label.text,r);I("label",i,s,r,h),i.techn&&i.techn.text!==""&&(h=wt(i.techn.text,r),I("techn",i,s,r,h)),i.descr&&i.descr.text!==""&&(h=wt(i.descr.text,r),I("descr",i,s,r,h));let f=a(i.from),d=a(i.to),p=A0(f,d);i.startPoint=p.startPoint,i.endPoint=p.endPoint}F.drawRels(e,t,b)};function me(e,t,a,o,l){let i=new be(l);i.data.widthLimit=a.data.widthLimit/Math.min(Zt,o.length);for(let[s,r]of o.entries()){let n=0;r.image={width:0,height:0,Y:0},r.sprite&&(r.image.width=48,r.image.height=48,r.image.Y=n,n=r.image.Y+r.image.height);let h=r.wrap&&b.wrap,f=Bt(b);if(f.fontSize=f.fontSize+2,f.fontWeight="bold",I("label",r,h,f,i.data.widthLimit),r.label.Y=n+8,n=r.label.Y+r.label.height,r.type&&r.type.text!==""){r.type.text="["+r.type.text+"]";let O=Bt(b);I("type",r,h,O,i.data.widthLimit),r.type.Y=n+5,n=r.type.Y+r.type.height}if(r.descr&&r.descr.text!==""){let O=Bt(b);O.fontSize=O.fontSize-2,I("descr",r,h,O,i.data.widthLimit),r.descr.Y=n+20,n=r.descr.Y+r.descr.height}if(s==0||s%Zt===0){let O=a.data.startx+b.diagramMarginX,R=a.data.stopy+b.diagramMarginY+n;i.setData(O,O,R,R)}else{let O=i.data.stopx!==i.data.startx?i.data.stopx+b.diagramMarginX:i.data.startx,R=i.data.starty;i.setData(O,O,R,R)}i.name=r.alias;let d=l.db.getC4ShapeArray(r.alias),p=l.db.getC4ShapeKeys(r.alias);p.length>0&&xe(i,e,d,p),t=r.alias;let E=l.db.getBoundarys(t);E.length>0&&me(e,t,i,E,l),r.alias!=="global"&&_e(e,r,i),a.data.stopy=Math.max(i.data.stopy+b.c4ShapeMargin,a.data.stopy),a.data.stopx=Math.max(i.data.stopx+b.c4ShapeMargin,a.data.stopx),Ut=Math.max(Ut,a.data.stopx),Ft=Math.max(Ft,a.data.stopy)}}const w0=function(e,t,a,o){b=Dt().c4;const l=Dt().securityLevel;let i;l==="sandbox"&&(i=Nt("#i"+t));const s=l==="sandbox"?Nt(i.nodes()[0].contentDocument.body):Nt("body");let r=o.db;o.db.setWrap(b.wrap),ge=r.getC4ShapeInRow(),Zt=r.getC4BoundaryInRow(),le.debug(`C:${JSON.stringify(b,null,2)}`);const n=l==="sandbox"?s.select(`[id="${t}"]`):Nt(`[id="${t}"]`);F.insertComputerIcon(n),F.insertDatabaseIcon(n),F.insertClockIcon(n);let h=new be(o);h.setData(b.diagramMarginX,b.diagramMarginX,b.diagramMarginY,b.diagramMarginY),h.data.widthLimit=screen.availWidth,Ut=b.diagramMarginX,Ft=b.diagramMarginY;const f=o.db.getTitle();let d=o.db.getBoundarys("");me(n,"",h,d,o),F.insertArrowHead(n),F.insertArrowEnd(n),F.insertArrowCrossHead(n),F.insertArrowFilledHead(n),C0(n,o.db.getRels(),o.db.getC4Shape,o),h.data.stopx=Ut,h.data.stopy=Ft;const p=h.data;let O=p.stopy-p.starty+2*b.diagramMarginY;const S=p.stopx-p.startx+2*b.diagramMarginX;f&&n.append("text").text(f).attr("x",(p.stopx-p.startx)/2-4*b.diagramMarginX).attr("y",p.starty+b.diagramMarginY),Se(n,O,S,b.useMaxWidth);const L=f?60:0;n.attr("viewBox",p.startx-b.diagramMarginX+" -"+(b.diagramMarginY+L)+" "+S+" "+(O+L)),le.debug("models:",p)},he={drawPersonOrSystemArray:xe,drawBoundary:_e,setConf:$t,draw:w0},O0=e=>`.person { + stroke: ${e.personBorder}; + fill: ${e.personBkg}; + } +`,T0=O0,P0={parser:Be,db:Jt,renderer:he,styles:T0,init:({c4:e,wrap:t})=>{he.setConf(e),Jt.setWrap(t)}};export{P0 as diagram}; diff --git a/assets/channel-nQRcXLRS.js b/assets/channel-nQRcXLRS.js new file mode 100644 index 00000000..888c9738 --- /dev/null +++ b/assets/channel-nQRcXLRS.js @@ -0,0 +1 @@ +import{al as o,am as n}from"./mermaid.core-B_tqKmhs.js";const l=(a,r)=>o.lang.round(n.parse(a)[r]);export{l as c}; diff --git a/assets/classDiagram-70f12bd4-CxVN6dqg.js b/assets/classDiagram-70f12bd4-CxVN6dqg.js new file mode 100644 index 00000000..27dca6c2 --- /dev/null +++ b/assets/classDiagram-70f12bd4-CxVN6dqg.js @@ -0,0 +1,2 @@ +import{p as A,d as S,s as G}from"./styles-9a916d00-BOnhL2df.js";import{c as v,l as y,h as B,i as W,ao as $,z as M,ar as I}from"./mermaid.core-B_tqKmhs.js";import{G as O}from"./graph-Es7S6dYR.js";import{l as P}from"./layout-Cjy8fVPY.js";import{l as X}from"./line-CC-POSaO.js";import"./index-Be9IN4QR.js";import"./array-BKyUJesY.js";import"./path-CbwjOpE9.js";let H=0;const Y=function(i,a,t,o,p){const g=function(e){switch(e){case p.db.relationType.AGGREGATION:return"aggregation";case p.db.relationType.EXTENSION:return"extension";case p.db.relationType.COMPOSITION:return"composition";case p.db.relationType.DEPENDENCY:return"dependency";case p.db.relationType.LOLLIPOP:return"lollipop"}};a.points=a.points.filter(e=>!Number.isNaN(e.y));const s=a.points,c=X().x(function(e){return e.x}).y(function(e){return e.y}).curve($),n=i.append("path").attr("d",c(s)).attr("id","edge"+H).attr("class","relation");let r="";o.arrowMarkerAbsolute&&(r=window.location.protocol+"//"+window.location.host+window.location.pathname+window.location.search,r=r.replace(/\(/g,"\\("),r=r.replace(/\)/g,"\\)")),t.relation.lineType==1&&n.attr("class","relation dashed-line"),t.relation.lineType==10&&n.attr("class","relation dotted-line"),t.relation.type1!=="none"&&n.attr("marker-start","url("+r+"#"+g(t.relation.type1)+"Start)"),t.relation.type2!=="none"&&n.attr("marker-end","url("+r+"#"+g(t.relation.type2)+"End)");let f,h;const x=a.points.length;let b=M.calcLabelPosition(a.points);f=b.x,h=b.y;let u,m,w,k;if(x%2!==0&&x>1){let e=M.calcCardinalityPosition(t.relation.type1!=="none",a.points,a.points[0]),d=M.calcCardinalityPosition(t.relation.type2!=="none",a.points,a.points[x-1]);y.debug("cardinality_1_point "+JSON.stringify(e)),y.debug("cardinality_2_point "+JSON.stringify(d)),u=e.x,m=e.y,w=d.x,k=d.y}if(t.title!==void 0){const e=i.append("g").attr("class","classLabel"),d=e.append("text").attr("class","label").attr("x",f).attr("y",h).attr("fill","red").attr("text-anchor","middle").text(t.title);window.label=d;const l=d.node().getBBox();e.insert("rect",":first-child").attr("class","box").attr("x",l.x-o.padding/2).attr("y",l.y-o.padding/2).attr("width",l.width+o.padding).attr("height",l.height+o.padding)}y.info("Rendering relation "+JSON.stringify(t)),t.relationTitle1!==void 0&&t.relationTitle1!=="none"&&i.append("g").attr("class","cardinality").append("text").attr("class","type1").attr("x",u).attr("y",m).attr("fill","black").attr("font-size","6").text(t.relationTitle1),t.relationTitle2!==void 0&&t.relationTitle2!=="none"&&i.append("g").attr("class","cardinality").append("text").attr("class","type2").attr("x",w).attr("y",k).attr("fill","black").attr("font-size","6").text(t.relationTitle2),H++},J=function(i,a,t,o){y.debug("Rendering class ",a,t);const p=a.id,g={id:p,label:a.id,width:0,height:0},s=i.append("g").attr("id",o.db.lookUpDomId(p)).attr("class","classGroup");let c;a.link?c=s.append("svg:a").attr("xlink:href",a.link).attr("target",a.linkTarget).append("text").attr("y",t.textHeight+t.padding).attr("x",0):c=s.append("text").attr("y",t.textHeight+t.padding).attr("x",0);let n=!0;a.annotations.forEach(function(d){const l=c.append("tspan").text("«"+d+"»");n||l.attr("dy",t.textHeight),n=!1});let r=C(a);const f=c.append("tspan").text(r).attr("class","title");n||f.attr("dy",t.textHeight);const h=c.node().getBBox().height;let x,b,u;if(a.members.length>0){x=s.append("line").attr("x1",0).attr("y1",t.padding+h+t.dividerMargin/2).attr("y2",t.padding+h+t.dividerMargin/2);const d=s.append("text").attr("x",t.padding).attr("y",h+t.dividerMargin+t.textHeight).attr("fill","white").attr("class","classText");n=!0,a.members.forEach(function(l){_(d,l,n,t),n=!1}),b=d.node().getBBox()}if(a.methods.length>0){u=s.append("line").attr("x1",0).attr("y1",t.padding+h+t.dividerMargin+b.height).attr("y2",t.padding+h+t.dividerMargin+b.height);const d=s.append("text").attr("x",t.padding).attr("y",h+2*t.dividerMargin+b.height+t.textHeight).attr("fill","white").attr("class","classText");n=!0,a.methods.forEach(function(l){_(d,l,n,t),n=!1})}const m=s.node().getBBox();var w=" ";a.cssClasses.length>0&&(w=w+a.cssClasses.join(" "));const e=s.insert("rect",":first-child").attr("x",0).attr("y",0).attr("width",m.width+2*t.padding).attr("height",m.height+t.padding+.5*t.dividerMargin).attr("class",w).node().getBBox().width;return c.node().childNodes.forEach(function(d){d.setAttribute("x",(e-d.getBBox().width)/2)}),a.tooltip&&c.insert("title").text(a.tooltip),x&&x.attr("x2",e),u&&u.attr("x2",e),g.width=e,g.height=m.height+t.padding+.5*t.dividerMargin,g},C=function(i){let a=i.id;return i.type&&(a+="<"+I(i.type)+">"),a},Z=function(i,a,t,o){y.debug("Rendering note ",a,t);const p=a.id,g={id:p,text:a.text,width:0,height:0},s=i.append("g").attr("id",p).attr("class","classGroup");let c=s.append("text").attr("y",t.textHeight+t.padding).attr("x",0);const n=JSON.parse(`"${a.text}"`).split(` +`);n.forEach(function(x){y.debug(`Adding line: ${x}`),c.append("tspan").text(x).attr("class","title").attr("dy",t.textHeight)});const r=s.node().getBBox(),h=s.insert("rect",":first-child").attr("x",0).attr("y",0).attr("width",r.width+2*t.padding).attr("height",r.height+n.length*t.textHeight+t.padding+.5*t.dividerMargin).node().getBBox().width;return c.node().childNodes.forEach(function(x){x.setAttribute("x",(h-x.getBBox().width)/2)}),g.width=h,g.height=r.height+n.length*t.textHeight+t.padding+.5*t.dividerMargin,g},_=function(i,a,t,o){const{displayText:p,cssStyle:g}=a.getDisplayDetails(),s=i.append("tspan").attr("x",o.padding).text(p);g!==""&&s.attr("style",a.cssStyle),t||s.attr("dy",o.textHeight)},N={getClassTitleString:C,drawClass:J,drawEdge:Y,drawNote:Z};let T={};const E=20,L=function(i){const a=Object.entries(T).find(t=>t[1].label===i);if(a)return a[0]},R=function(i){i.append("defs").append("marker").attr("id","extensionStart").attr("class","extension").attr("refX",0).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("path").attr("d","M 1,7 L18,13 V 1 Z"),i.append("defs").append("marker").attr("id","extensionEnd").attr("refX",19).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 1,1 V 13 L18,7 Z"),i.append("defs").append("marker").attr("id","compositionStart").attr("class","extension").attr("refX",0).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L1,7 L9,1 Z"),i.append("defs").append("marker").attr("id","compositionEnd").attr("refX",19).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L1,7 L9,1 Z"),i.append("defs").append("marker").attr("id","aggregationStart").attr("class","extension").attr("refX",0).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L1,7 L9,1 Z"),i.append("defs").append("marker").attr("id","aggregationEnd").attr("refX",19).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L1,7 L9,1 Z"),i.append("defs").append("marker").attr("id","dependencyStart").attr("class","extension").attr("refX",0).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("path").attr("d","M 5,7 L9,13 L1,7 L9,1 Z"),i.append("defs").append("marker").attr("id","dependencyEnd").attr("refX",19).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L14,7 L9,1 Z")},z=function(i,a,t,o){const p=v().class;T={},y.info("Rendering diagram "+i);const g=v().securityLevel;let s;g==="sandbox"&&(s=B("#i"+a));const c=g==="sandbox"?B(s.nodes()[0].contentDocument.body):B("body"),n=c.select(`[id='${a}']`);R(n);const r=new O({multigraph:!0});r.setGraph({isMultiGraph:!0}),r.setDefaultEdgeLabel(function(){return{}});const f=o.db.getClasses(),h=Object.keys(f);for(const e of h){const d=f[e],l=N.drawClass(n,d,p,o);T[l.id]=l,r.setNode(l.id,l),y.info("Org height: "+l.height)}o.db.getRelations().forEach(function(e){y.info("tjoho"+L(e.id1)+L(e.id2)+JSON.stringify(e)),r.setEdge(L(e.id1),L(e.id2),{relation:e},e.title||"DEFAULT")}),o.db.getNotes().forEach(function(e){y.debug(`Adding note: ${JSON.stringify(e)}`);const d=N.drawNote(n,e,p,o);T[d.id]=d,r.setNode(d.id,d),e.class&&e.class in f&&r.setEdge(e.id,L(e.class),{relation:{id1:e.id,id2:e.class,relation:{type1:"none",type2:"none",lineType:10}}},"DEFAULT")}),P(r),r.nodes().forEach(function(e){e!==void 0&&r.node(e)!==void 0&&(y.debug("Node "+e+": "+JSON.stringify(r.node(e))),c.select("#"+(o.db.lookUpDomId(e)||e)).attr("transform","translate("+(r.node(e).x-r.node(e).width/2)+","+(r.node(e).y-r.node(e).height/2)+" )"))}),r.edges().forEach(function(e){e!==void 0&&r.edge(e)!==void 0&&(y.debug("Edge "+e.v+" -> "+e.w+": "+JSON.stringify(r.edge(e))),N.drawEdge(n,r.edge(e),r.edge(e).relation,p,o))});const u=n.node().getBBox(),m=u.width+E*2,w=u.height+E*2;W(n,w,m,p.useMaxWidth);const k=`${u.x-E} ${u.y-E} ${m} ${w}`;y.debug(`viewBox ${k}`),n.attr("viewBox",k)},F={draw:z},et={parser:A,db:S,renderer:F,styles:G,init:i=>{i.class||(i.class={}),i.class.arrowMarkerAbsolute=i.arrowMarkerAbsolute,S.clear()}};export{et as diagram}; diff --git a/assets/classDiagram-v2-f2320105-sxYuC2Nh.js b/assets/classDiagram-v2-f2320105-sxYuC2Nh.js new file mode 100644 index 00000000..21e4a1e5 --- /dev/null +++ b/assets/classDiagram-v2-f2320105-sxYuC2Nh.js @@ -0,0 +1,2 @@ +import{p as M,d as _,s as R}from"./styles-9a916d00-BOnhL2df.js";import{l as d,c,h as w,z as B,u as G,p as D,t as E,o as C,j as A}from"./mermaid.core-B_tqKmhs.js";import{G as z}from"./graph-Es7S6dYR.js";import{r as P}from"./index-3862675e-BNucB7R-.js";import"./layout-Cjy8fVPY.js";import"./index-Be9IN4QR.js";import"./clone-WSVs8Prh.js";import"./edges-e0da2a9e-CFrRRtuw.js";import"./createText-2e5e7dd3-CtNqJc9Q.js";import"./line-CC-POSaO.js";import"./array-BKyUJesY.js";import"./path-CbwjOpE9.js";const S=s=>A.sanitizeText(s,c());let k={dividerMargin:10,padding:5,textHeight:10,curve:void 0};const q=function(s,t,y,a){const e=Object.keys(s);d.info("keys:",e),d.info(s),e.forEach(function(i){var o,r;const l=s[i],p={shape:"rect",id:l.id,domId:l.domId,labelText:S(l.id),labelStyle:"",style:"fill: none; stroke: black",padding:((o=c().flowchart)==null?void 0:o.padding)??((r=c().class)==null?void 0:r.padding)};t.setNode(l.id,p),$(l.classes,t,y,a,l.id),d.info("setNode",p)})},$=function(s,t,y,a,e){const i=Object.keys(s);d.info("keys:",i),d.info(s),i.filter(o=>s[o].parent==e).forEach(function(o){var r,l;const n=s[o],p=n.cssClasses.join(" "),f=D(n.styles),h=n.label??n.id,u=0,b={labelStyle:f.labelStyle,shape:"class_box",labelText:S(h),classData:n,rx:u,ry:u,class:p,style:f.style,id:n.id,domId:n.domId,tooltip:a.db.getTooltip(n.id,e)||"",haveCallback:n.haveCallback,link:n.link,width:n.type==="group"?500:void 0,type:n.type,padding:((r=c().flowchart)==null?void 0:r.padding)??((l=c().class)==null?void 0:l.padding)};t.setNode(n.id,b),e&&t.setParent(n.id,e),d.info("setNode",b)})},F=function(s,t,y,a){d.info(s),s.forEach(function(e,i){var o,r;const l=e,n="",p={labelStyle:"",style:""},f=l.text,h=0,m={labelStyle:p.labelStyle,shape:"note",labelText:S(f),noteData:l,rx:h,ry:h,class:n,style:p.style,id:l.id,domId:l.id,tooltip:"",type:"note",padding:((o=c().flowchart)==null?void 0:o.padding)??((r=c().class)==null?void 0:r.padding)};if(t.setNode(l.id,m),d.info("setNode",m),!l.class||!(l.class in a))return;const b=y+i,x={id:`edgeNote${b}`,classes:"relation",pattern:"dotted",arrowhead:"none",startLabelRight:"",endLabelLeft:"",arrowTypeStart:"none",arrowTypeEnd:"none",style:"fill:none",labelStyle:"",curve:E(k.curve,C)};t.setEdge(l.id,l.class,x,b)})},H=function(s,t){const y=c().flowchart;let a=0;s.forEach(function(e){var i;a++;const o={classes:"relation",pattern:e.relation.lineType==1?"dashed":"solid",id:`id_${e.id1}_${e.id2}_${a}`,arrowhead:e.type==="arrow_open"?"none":"normal",startLabelRight:e.relationTitle1==="none"?"":e.relationTitle1,endLabelLeft:e.relationTitle2==="none"?"":e.relationTitle2,arrowTypeStart:N(e.relation.type1),arrowTypeEnd:N(e.relation.type2),style:"fill:none",labelStyle:"",curve:E(y?.curve,C)};if(d.info(o,e),e.style!==void 0){const r=D(e.style);o.style=r.style,o.labelStyle=r.labelStyle}e.text=e.title,e.text===void 0?e.style!==void 0&&(o.arrowheadStyle="fill: #333"):(o.arrowheadStyle="fill: #333",o.labelpos="c",((i=c().flowchart)==null?void 0:i.htmlLabels)??c().htmlLabels?(o.labelType="html",o.label=''+e.text+""):(o.labelType="text",o.label=e.text.replace(A.lineBreakRegex,` +`),e.style===void 0&&(o.style=o.style||"stroke: #333; stroke-width: 1.5px;fill:none"),o.labelStyle=o.labelStyle.replace("color:","fill:"))),t.setEdge(e.id1,e.id2,o,a)})},V=function(s){k={...k,...s}},W=async function(s,t,y,a){d.info("Drawing class - ",t);const e=c().flowchart??c().class,i=c().securityLevel;d.info("config:",e);const o=e?.nodeSpacing??50,r=e?.rankSpacing??50,l=new z({multigraph:!0,compound:!0}).setGraph({rankdir:a.db.getDirection(),nodesep:o,ranksep:r,marginx:8,marginy:8}).setDefaultEdgeLabel(function(){return{}}),n=a.db.getNamespaces(),p=a.db.getClasses(),f=a.db.getRelations(),h=a.db.getNotes();d.info(f),q(n,l,t,a),$(p,l,t,a),H(f,l),F(h,l,f.length+1,p);let u;i==="sandbox"&&(u=w("#i"+t));const m=i==="sandbox"?w(u.nodes()[0].contentDocument.body):w("body"),b=m.select(`[id="${t}"]`),x=m.select("#"+t+" g");if(await P(x,l,["aggregation","extension","composition","dependency","lollipop"],"classDiagram",t),B.insertTitle(b,"classTitleText",e?.titleTopMargin??5,a.db.getDiagramTitle()),G(l,b,e?.diagramPadding,e?.useMaxWidth),!e?.htmlLabels){const T=i==="sandbox"?u.nodes()[0].contentDocument:document,I=T.querySelectorAll('[id="'+t+'"] .edgeLabel .label');for(const g of I){const L=g.getBBox(),v=T.createElementNS("http://www.w3.org/2000/svg","rect");v.setAttribute("rx",0),v.setAttribute("ry",0),v.setAttribute("width",L.width),v.setAttribute("height",L.height),g.insertBefore(v,g.firstChild)}}};function N(s){let t;switch(s){case 0:t="aggregation";break;case 1:t="extension";break;case 2:t="composition";break;case 3:t="dependency";break;case 4:t="lollipop";break;default:t="none"}return t}const J={setConf:V,draw:W},se={parser:M,db:_,renderer:J,styles:R,init:s=>{s.class||(s.class={}),s.class.arrowMarkerAbsolute=s.arrowMarkerAbsolute,_.clear()}};export{se as diagram}; diff --git a/assets/clone-WSVs8Prh.js b/assets/clone-WSVs8Prh.js new file mode 100644 index 00000000..08096818 --- /dev/null +++ b/assets/clone-WSVs8Prh.js @@ -0,0 +1 @@ +import{a as r}from"./graph-Es7S6dYR.js";var a=4;function n(o){return r(o,a)}export{n as c}; diff --git a/assets/contact.page-C-JMbwcB.js b/assets/contact.page-C-JMbwcB.js new file mode 100644 index 00000000..94049b54 --- /dev/null +++ b/assets/contact.page-C-JMbwcB.js @@ -0,0 +1 @@ +import{ɵ as c}from"./index-Be9IN4QR.js";const t=class t{};t.ɵfac=function(e){return new(e||t)},t.ɵcmp=c({type:t,selectors:[["ng-component"]],decls:0,vars:0,template:function(e,a){},encapsulation:2});let n=t;export{n as default}; diff --git a/assets/createText-2e5e7dd3-CtNqJc9Q.js b/assets/createText-2e5e7dd3-CtNqJc9Q.js new file mode 100644 index 00000000..9c527f1c --- /dev/null +++ b/assets/createText-2e5e7dd3-CtNqJc9Q.js @@ -0,0 +1,7 @@ +import{l as At,an as zt,ap as It}from"./mermaid.core-B_tqKmhs.js";const Tt={};function Bt(n,r){const t=Tt,e=typeof t.includeImageAlt=="boolean"?t.includeImageAlt:!0,u=typeof t.includeHtml=="boolean"?t.includeHtml:!0;return et(n,e,u)}function et(n,r,t){if(Lt(n)){if("value"in n)return n.type==="html"&&!t?"":n.value;if(r&&"alt"in n&&n.alt)return n.alt;if("children"in n)return Vn(n.children,r,t)}return Array.isArray(n)?Vn(n,r,t):""}function Vn(n,r,t){const e=[];let u=-1;for(;++uu?0:u+r:r=r>u?u:r,t=t>0?t:0,e.length<1e4)l=Array.from(e),l.unshift(r,t),n.splice(...l);else for(t&&n.splice(r,t);i0?(tn(n,n.length,0,r),n):r}const Wn={}.hasOwnProperty;function Ot(n){const r={};let t=-1;for(;++tl))return;const T=r.events.length;let H=T,N,V;for(;H--;)if(r.events[H][0]==="exit"&&r.events[H][1].type==="chunkFlow"){if(N){V=r.events[H][1].end;break}N=!0}for(b(e),k=T;kF;){const _=t[D];r.containerState=_[1],_[0].exit.call(r,n)}t.length=F}function j(){u.write([null]),i=void 0,u=void 0,r.containerState._closeFlow=void 0}}function Ut(n,r,t){return O(n,n.attempt(this.parser.constructs.document,r,t),"linePrefix",this.parser.constructs.disable.null.includes("codeIndented")?void 0:4)}function Un(n){if(n===null||Z(n)||Ht(n))return 1;if(qt(n))return 2}function Ln(n,r,t){const e=[];let u=-1;for(;++u1&&n[t][1].end.offset-n[t][1].start.offset>1?2:1;const f=Object.assign({},n[e][1].end),x=Object.assign({},n[t][1].start);$n(f,-m),$n(x,m),l={type:m>1?"strongSequence":"emphasisSequence",start:f,end:Object.assign({},n[e][1].end)},a={type:m>1?"strongSequence":"emphasisSequence",start:Object.assign({},n[t][1].start),end:x},i={type:m>1?"strongText":"emphasisText",start:Object.assign({},n[e][1].end),end:Object.assign({},n[t][1].start)},u={type:m>1?"strong":"emphasis",start:Object.assign({},l.start),end:Object.assign({},a.end)},n[e][1].end=Object.assign({},l.start),n[t][1].start=Object.assign({},a.end),c=[],n[e][1].end.offset-n[e][1].start.offset&&(c=Y(c,[["enter",n[e][1],r],["exit",n[e][1],r]])),c=Y(c,[["enter",u,r],["enter",l,r],["exit",l,r],["enter",i,r]]),c=Y(c,Ln(r.parser.constructs.insideSpan.null,n.slice(e+1,t),r)),c=Y(c,[["exit",i,r],["enter",a,r],["exit",a,r],["exit",u,r]]),n[t][1].end.offset-n[t][1].start.offset?(p=2,c=Y(c,[["enter",n[t][1],r],["exit",n[t][1],r]])):p=0,tn(n,e-1,t-e+3,c),t=e+c.length-p-2;break}}for(t=-1;++t0&&z(k)?O(n,j,"linePrefix",i+1)(k):j(k)}function j(k){return k===null||C(k)?n.check(Yn,I,D)(k):(n.enter("codeFlowValue"),F(k))}function F(k){return k===null||C(k)?(n.exit("codeFlowValue"),j(k)):(n.consume(k),F)}function D(k){return n.exit("codeFenced"),r(k)}function _(k,T,H){let N=0;return V;function V(w){return k.enter("lineEnding"),k.consume(w),k.exit("lineEnding"),y}function y(w){return k.enter("codeFencedFence"),z(w)?O(k,S,"linePrefix",e.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(w):S(w)}function S(w){return w===a?(k.enter("codeFencedFenceSequence"),P(w)):H(w)}function P(w){return w===a?(N++,k.consume(w),P):N>=l?(k.exit("codeFencedFenceSequence"),z(w)?O(k,R,"whitespace")(w):R(w)):H(w)}function R(w){return w===null||C(w)?(k.exit("codeFencedFence"),T(w)):H(w)}}}function re(n,r,t){const e=this;return u;function u(l){return l===null?t(l):(n.enter("lineEnding"),n.consume(l),n.exit("lineEnding"),i)}function i(l){return e.parser.lazy[e.now().line]?t(l):r(l)}}const Cn={name:"codeIndented",tokenize:ue},ie={tokenize:le,partial:!0};function ue(n,r,t){const e=this;return u;function u(c){return n.enter("codeIndented"),O(n,i,"linePrefix",5)(c)}function i(c){const p=e.events[e.events.length-1];return p&&p[1].type==="linePrefix"&&p[2].sliceSerialize(p[1],!0).length>=4?l(c):t(c)}function l(c){return c===null?m(c):C(c)?n.attempt(ie,l,m)(c):(n.enter("codeFlowValue"),a(c))}function a(c){return c===null||C(c)?(n.exit("codeFlowValue"),l(c)):(n.consume(c),a)}function m(c){return n.exit("codeIndented"),r(c)}}function le(n,r,t){const e=this;return u;function u(l){return e.parser.lazy[e.now().line]?t(l):C(l)?(n.enter("lineEnding"),n.consume(l),n.exit("lineEnding"),u):O(n,i,"linePrefix",5)(l)}function i(l){const a=e.events[e.events.length-1];return a&&a[1].type==="linePrefix"&&a[2].sliceSerialize(a[1],!0).length>=4?r(l):C(l)?u(l):t(l)}}const ae={name:"codeText",tokenize:ce,resolve:oe,previous:se};function oe(n){let r=n.length-4,t=3,e,u;if((n[t][1].type==="lineEnding"||n[t][1].type==="space")&&(n[r][1].type==="lineEnding"||n[r][1].type==="space")){for(e=t;++e=4?r(l):n.interrupt(e.parser.constructs.flow,t,r)(l)}}function at(n,r,t,e,u,i,l,a,m){const c=m||Number.POSITIVE_INFINITY;let p=0;return f;function f(b){return b===60?(n.enter(e),n.enter(u),n.enter(i),n.consume(b),n.exit(i),x):b===null||b===32||b===41||An(b)?t(b):(n.enter(e),n.enter(l),n.enter(a),n.enter("chunkString",{contentType:"string"}),I(b))}function x(b){return b===62?(n.enter(i),n.consume(b),n.exit(i),n.exit(u),n.exit(e),r):(n.enter(a),n.enter("chunkString",{contentType:"string"}),h(b))}function h(b){return b===62?(n.exit("chunkString"),n.exit(a),x(b)):b===null||b===60||C(b)?t(b):(n.consume(b),b===92?A:h)}function A(b){return b===60||b===62||b===92?(n.consume(b),h):h(b)}function I(b){return!p&&(b===null||b===41||Z(b))?(n.exit("chunkString"),n.exit(a),n.exit(l),n.exit(e),r(b)):p999||h===null||h===91||h===93&&!m||h===94&&!a&&"_hiddenFootnoteSupport"in l.parser.constructs?t(h):h===93?(n.exit(i),n.enter(u),n.consume(h),n.exit(u),n.exit(e),r):C(h)?(n.enter("lineEnding"),n.consume(h),n.exit("lineEnding"),p):(n.enter("chunkString",{contentType:"string"}),f(h))}function f(h){return h===null||h===91||h===93||C(h)||a++>999?(n.exit("chunkString"),p(h)):(n.consume(h),m||(m=!z(h)),h===92?x:f)}function x(h){return h===91||h===92||h===93?(n.consume(h),a++,f):f(h)}}function st(n,r,t,e,u,i){let l;return a;function a(x){return x===34||x===39||x===40?(n.enter(e),n.enter(u),n.consume(x),n.exit(u),l=x===40?41:x,m):t(x)}function m(x){return x===l?(n.enter(u),n.consume(x),n.exit(u),n.exit(e),r):(n.enter(i),c(x))}function c(x){return x===l?(n.exit(i),m(l)):x===null?t(x):C(x)?(n.enter("lineEnding"),n.consume(x),n.exit("lineEnding"),O(n,c,"linePrefix")):(n.enter("chunkString",{contentType:"string"}),p(x))}function p(x){return x===l||x===null||C(x)?(n.exit("chunkString"),c(x)):(n.consume(x),x===92?f:p)}function f(x){return x===l||x===92?(n.consume(x),p):p(x)}}function dn(n,r){let t;return e;function e(u){return C(u)?(n.enter("lineEnding"),n.consume(u),n.exit("lineEnding"),t=!0,e):z(u)?O(n,e,t?"linePrefix":"lineSuffix")(u):r(u)}}function xn(n){return n.replace(/[\t\n\r ]+/g," ").replace(/^ | $/g,"").toLowerCase().toUpperCase()}const ke={name:"definition",tokenize:be},de={tokenize:ye,partial:!0};function be(n,r,t){const e=this;let u;return i;function i(h){return n.enter("definition"),l(h)}function l(h){return ot.call(e,n,a,t,"definitionLabel","definitionLabelMarker","definitionLabelString")(h)}function a(h){return u=xn(e.sliceSerialize(e.events[e.events.length-1][1]).slice(1,-1)),h===58?(n.enter("definitionMarker"),n.consume(h),n.exit("definitionMarker"),m):t(h)}function m(h){return Z(h)?dn(n,c)(h):c(h)}function c(h){return at(n,p,t,"definitionDestination","definitionDestinationLiteral","definitionDestinationLiteralMarker","definitionDestinationRaw","definitionDestinationString")(h)}function p(h){return n.attempt(de,f,f)(h)}function f(h){return z(h)?O(n,x,"whitespace")(h):x(h)}function x(h){return h===null||C(h)?(n.exit("definition"),e.parser.defined.push(u),r(h)):t(h)}}function ye(n,r,t){return e;function e(a){return Z(a)?dn(n,u)(a):t(a)}function u(a){return st(n,i,t,"definitionTitle","definitionTitleMarker","definitionTitleString")(a)}function i(a){return z(a)?O(n,l,"whitespace")(a):l(a)}function l(a){return a===null||C(a)?r(a):t(a)}}const Se={name:"hardBreakEscape",tokenize:Fe};function Fe(n,r,t){return e;function e(i){return n.enter("hardBreakEscape"),n.consume(i),u}function u(i){return C(i)?(n.exit("hardBreakEscape"),r(i)):t(i)}}const Ee={name:"headingAtx",tokenize:we,resolve:Ce};function Ce(n,r){let t=n.length-2,e=3,u,i;return n[e][1].type==="whitespace"&&(e+=2),t-2>e&&n[t][1].type==="whitespace"&&(t-=2),n[t][1].type==="atxHeadingSequence"&&(e===t-1||t-4>e&&n[t-2][1].type==="whitespace")&&(t-=e+1===t?2:4),t>e&&(u={type:"atxHeadingText",start:n[e][1].start,end:n[t][1].end},i={type:"chunkText",start:n[e][1].start,end:n[t][1].end,contentType:"text"},tn(n,e,t-e+1,[["enter",u,r],["enter",i,r],["exit",i,r],["exit",u,r]])),n}function we(n,r,t){let e=0;return u;function u(p){return n.enter("atxHeading"),i(p)}function i(p){return n.enter("atxHeadingSequence"),l(p)}function l(p){return p===35&&e++<6?(n.consume(p),l):p===null||Z(p)?(n.exit("atxHeadingSequence"),a(p)):t(p)}function a(p){return p===35?(n.enter("atxHeadingSequence"),m(p)):p===null||C(p)?(n.exit("atxHeading"),r(p)):z(p)?O(n,a,"whitespace")(p):(n.enter("atxHeadingText"),c(p))}function m(p){return p===35?(n.consume(p),m):(n.exit("atxHeadingSequence"),a(p))}function c(p){return p===null||p===35||Z(p)?(n.exit("atxHeadingText"),a(p)):(n.consume(p),c)}}const Ae=["address","article","aside","base","basefont","blockquote","body","caption","center","col","colgroup","dd","details","dialog","dir","div","dl","dt","fieldset","figcaption","figure","footer","form","frame","frameset","h1","h2","h3","h4","h5","h6","head","header","hr","html","iframe","legend","li","link","main","menu","menuitem","nav","noframes","ol","optgroup","option","p","param","search","section","summary","table","tbody","td","tfoot","th","thead","title","tr","track","ul"],Jn=["pre","script","style","textarea"],ze={name:"htmlFlow",tokenize:Le,resolveTo:Be,concrete:!0},Ie={tokenize:De,partial:!0},Te={tokenize:Oe,partial:!0};function Be(n){let r=n.length;for(;r--&&!(n[r][0]==="enter"&&n[r][1].type==="htmlFlow"););return r>1&&n[r-2][1].type==="linePrefix"&&(n[r][1].start=n[r-2][1].start,n[r+1][1].start=n[r-2][1].start,n.splice(r-2,2)),n}function Le(n,r,t){const e=this;let u,i,l,a,m;return c;function c(s){return p(s)}function p(s){return n.enter("htmlFlow"),n.enter("htmlFlowData"),n.consume(s),f}function f(s){return s===33?(n.consume(s),x):s===47?(n.consume(s),i=!0,I):s===63?(n.consume(s),u=3,e.interrupt?r:o):nn(s)?(n.consume(s),l=String.fromCharCode(s),M):t(s)}function x(s){return s===45?(n.consume(s),u=2,h):s===91?(n.consume(s),u=5,a=0,A):nn(s)?(n.consume(s),u=4,e.interrupt?r:o):t(s)}function h(s){return s===45?(n.consume(s),e.interrupt?r:o):t(s)}function A(s){const K="CDATA[";return s===K.charCodeAt(a++)?(n.consume(s),a===K.length?e.interrupt?r:S:A):t(s)}function I(s){return nn(s)?(n.consume(s),l=String.fromCharCode(s),M):t(s)}function M(s){if(s===null||s===47||s===62||Z(s)){const K=s===47,hn=l.toLowerCase();return!K&&!i&&Jn.includes(hn)?(u=1,e.interrupt?r(s):S(s)):Ae.includes(l.toLowerCase())?(u=6,K?(n.consume(s),b):e.interrupt?r(s):S(s)):(u=7,e.interrupt&&!e.parser.lazy[e.now().line]?t(s):i?j(s):F(s))}return s===45||v(s)?(n.consume(s),l+=String.fromCharCode(s),M):t(s)}function b(s){return s===62?(n.consume(s),e.interrupt?r:S):t(s)}function j(s){return z(s)?(n.consume(s),j):V(s)}function F(s){return s===47?(n.consume(s),V):s===58||s===95||nn(s)?(n.consume(s),D):z(s)?(n.consume(s),F):V(s)}function D(s){return s===45||s===46||s===58||s===95||v(s)?(n.consume(s),D):_(s)}function _(s){return s===61?(n.consume(s),k):z(s)?(n.consume(s),_):F(s)}function k(s){return s===null||s===60||s===61||s===62||s===96?t(s):s===34||s===39?(n.consume(s),m=s,T):z(s)?(n.consume(s),k):H(s)}function T(s){return s===m?(n.consume(s),m=null,N):s===null||C(s)?t(s):(n.consume(s),T)}function H(s){return s===null||s===34||s===39||s===47||s===60||s===61||s===62||s===96||Z(s)?_(s):(n.consume(s),H)}function N(s){return s===47||s===62||z(s)?F(s):t(s)}function V(s){return s===62?(n.consume(s),y):t(s)}function y(s){return s===null||C(s)?S(s):z(s)?(n.consume(s),y):t(s)}function S(s){return s===45&&u===2?(n.consume(s),U):s===60&&u===1?(n.consume(s),W):s===62&&u===4?(n.consume(s),J):s===63&&u===3?(n.consume(s),o):s===93&&u===5?(n.consume(s),en):C(s)&&(u===6||u===7)?(n.exit("htmlFlowData"),n.check(Ie,rn,P)(s)):s===null||C(s)?(n.exit("htmlFlowData"),P(s)):(n.consume(s),S)}function P(s){return n.check(Te,R,rn)(s)}function R(s){return n.enter("lineEnding"),n.consume(s),n.exit("lineEnding"),w}function w(s){return s===null||C(s)?P(s):(n.enter("htmlFlowData"),S(s))}function U(s){return s===45?(n.consume(s),o):S(s)}function W(s){return s===47?(n.consume(s),l="",G):S(s)}function G(s){if(s===62){const K=l.toLowerCase();return Jn.includes(K)?(n.consume(s),J):S(s)}return nn(s)&&l.length<8?(n.consume(s),l+=String.fromCharCode(s),G):S(s)}function en(s){return s===93?(n.consume(s),o):S(s)}function o(s){return s===62?(n.consume(s),J):s===45&&u===2?(n.consume(s),o):S(s)}function J(s){return s===null||C(s)?(n.exit("htmlFlowData"),rn(s)):(n.consume(s),J)}function rn(s){return n.exit("htmlFlow"),r(s)}}function Oe(n,r,t){const e=this;return u;function u(l){return C(l)?(n.enter("lineEnding"),n.consume(l),n.exit("lineEnding"),i):t(l)}function i(l){return e.parser.lazy[e.now().line]?t(l):r(l)}}function De(n,r,t){return e;function e(u){return n.enter("lineEnding"),n.consume(u),n.exit("lineEnding"),n.attempt(Sn,r,t)}}const Pe={name:"htmlText",tokenize:_e};function _e(n,r,t){const e=this;let u,i,l;return a;function a(o){return n.enter("htmlText"),n.enter("htmlTextData"),n.consume(o),m}function m(o){return o===33?(n.consume(o),c):o===47?(n.consume(o),_):o===63?(n.consume(o),F):nn(o)?(n.consume(o),H):t(o)}function c(o){return o===45?(n.consume(o),p):o===91?(n.consume(o),i=0,A):nn(o)?(n.consume(o),j):t(o)}function p(o){return o===45?(n.consume(o),h):t(o)}function f(o){return o===null?t(o):o===45?(n.consume(o),x):C(o)?(l=f,W(o)):(n.consume(o),f)}function x(o){return o===45?(n.consume(o),h):f(o)}function h(o){return o===62?U(o):o===45?x(o):f(o)}function A(o){const J="CDATA[";return o===J.charCodeAt(i++)?(n.consume(o),i===J.length?I:A):t(o)}function I(o){return o===null?t(o):o===93?(n.consume(o),M):C(o)?(l=I,W(o)):(n.consume(o),I)}function M(o){return o===93?(n.consume(o),b):I(o)}function b(o){return o===62?U(o):o===93?(n.consume(o),b):I(o)}function j(o){return o===null||o===62?U(o):C(o)?(l=j,W(o)):(n.consume(o),j)}function F(o){return o===null?t(o):o===63?(n.consume(o),D):C(o)?(l=F,W(o)):(n.consume(o),F)}function D(o){return o===62?U(o):F(o)}function _(o){return nn(o)?(n.consume(o),k):t(o)}function k(o){return o===45||v(o)?(n.consume(o),k):T(o)}function T(o){return C(o)?(l=T,W(o)):z(o)?(n.consume(o),T):U(o)}function H(o){return o===45||v(o)?(n.consume(o),H):o===47||o===62||Z(o)?N(o):t(o)}function N(o){return o===47?(n.consume(o),U):o===58||o===95||nn(o)?(n.consume(o),V):C(o)?(l=N,W(o)):z(o)?(n.consume(o),N):U(o)}function V(o){return o===45||o===46||o===58||o===95||v(o)?(n.consume(o),V):y(o)}function y(o){return o===61?(n.consume(o),S):C(o)?(l=y,W(o)):z(o)?(n.consume(o),y):N(o)}function S(o){return o===null||o===60||o===61||o===62||o===96?t(o):o===34||o===39?(n.consume(o),u=o,P):C(o)?(l=S,W(o)):z(o)?(n.consume(o),S):(n.consume(o),R)}function P(o){return o===u?(n.consume(o),u=void 0,w):o===null?t(o):C(o)?(l=P,W(o)):(n.consume(o),P)}function R(o){return o===null||o===34||o===39||o===60||o===61||o===96?t(o):o===47||o===62||Z(o)?N(o):(n.consume(o),R)}function w(o){return o===47||o===62||Z(o)?N(o):t(o)}function U(o){return o===62?(n.consume(o),n.exit("htmlTextData"),n.exit("htmlText"),r):t(o)}function W(o){return n.exit("htmlTextData"),n.enter("lineEnding"),n.consume(o),n.exit("lineEnding"),G}function G(o){return z(o)?O(n,en,"linePrefix",e.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(o):en(o)}function en(o){return n.enter("htmlTextData"),l(o)}}const Dn={name:"labelEnd",tokenize:Ne,resolveTo:He,resolveAll:qe},Me={tokenize:Ve},je={tokenize:We},Re={tokenize:Qe};function qe(n){let r=-1;for(;++r=3&&(c===null||C(c))?(n.exit("thematicBreak"),r(c)):t(c)}function m(c){return c===u?(n.consume(c),e++,m):(n.exit("thematicBreakSequence"),z(c)?O(n,a,"whitespace")(c):a(c))}}const $={name:"list",tokenize:ve,continuation:{tokenize:nr},exit:er},Ke={tokenize:rr,partial:!0},Xe={tokenize:tr,partial:!0};function ve(n,r,t){const e=this,u=e.events[e.events.length-1];let i=u&&u[1].type==="linePrefix"?u[2].sliceSerialize(u[1],!0).length:0,l=0;return a;function a(h){const A=e.containerState.type||(h===42||h===43||h===45?"listUnordered":"listOrdered");if(A==="listUnordered"?!e.containerState.marker||h===e.containerState.marker:zn(h)){if(e.containerState.type||(e.containerState.type=A,n.enter(A,{_container:!0})),A==="listUnordered")return n.enter("listItemPrefix"),h===42||h===45?n.check(bn,t,c)(h):c(h);if(!e.interrupt||h===49)return n.enter("listItemPrefix"),n.enter("listItemValue"),m(h)}return t(h)}function m(h){return zn(h)&&++l<10?(n.consume(h),m):(!e.interrupt||l<2)&&(e.containerState.marker?h===e.containerState.marker:h===41||h===46)?(n.exit("listItemValue"),c(h)):t(h)}function c(h){return n.enter("listItemMarker"),n.consume(h),n.exit("listItemMarker"),e.containerState.marker=e.containerState.marker||h,n.check(Sn,e.interrupt?t:p,n.attempt(Ke,x,f))}function p(h){return e.containerState.initialBlankLine=!0,i++,x(h)}function f(h){return z(h)?(n.enter("listItemPrefixWhitespace"),n.consume(h),n.exit("listItemPrefixWhitespace"),x):t(h)}function x(h){return e.containerState.size=i+e.sliceSerialize(n.exit("listItemPrefix"),!0).length,r(h)}}function nr(n,r,t){const e=this;return e.containerState._closeFlow=void 0,n.check(Sn,u,i);function u(a){return e.containerState.furtherBlankLines=e.containerState.furtherBlankLines||e.containerState.initialBlankLine,O(n,r,"listItemIndent",e.containerState.size+1)(a)}function i(a){return e.containerState.furtherBlankLines||!z(a)?(e.containerState.furtherBlankLines=void 0,e.containerState.initialBlankLine=void 0,l(a)):(e.containerState.furtherBlankLines=void 0,e.containerState.initialBlankLine=void 0,n.attempt(Xe,r,l)(a))}function l(a){return e.containerState._closeFlow=!0,e.interrupt=void 0,O(n,n.attempt($,r,t),"linePrefix",e.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(a)}}function tr(n,r,t){const e=this;return O(n,u,"listItemIndent",e.containerState.size+1);function u(i){const l=e.events[e.events.length-1];return l&&l[1].type==="listItemIndent"&&l[2].sliceSerialize(l[1],!0).length===e.containerState.size?r(i):t(i)}}function er(n){n.exit(this.containerState.type)}function rr(n,r,t){const e=this;return O(n,u,"listItemPrefixWhitespace",e.parser.constructs.disable.null.includes("codeIndented")?void 0:5);function u(i){const l=e.events[e.events.length-1];return!z(i)&&l&&l[1].type==="listItemPrefixWhitespace"?r(i):t(i)}}const Kn={name:"setextUnderline",tokenize:ur,resolveTo:ir};function ir(n,r){let t=n.length,e,u,i;for(;t--;)if(n[t][0]==="enter"){if(n[t][1].type==="content"){e=t;break}n[t][1].type==="paragraph"&&(u=t)}else n[t][1].type==="content"&&n.splice(t,1),!i&&n[t][1].type==="definition"&&(i=t);const l={type:"setextHeading",start:Object.assign({},n[u][1].start),end:Object.assign({},n[n.length-1][1].end)};return n[u][1].type="setextHeadingText",i?(n.splice(u,0,["enter",l,r]),n.splice(i+1,0,["exit",n[e][1],r]),n[e][1].end=Object.assign({},n[i][1].end)):n[e][1]=l,n.push(["exit",l,r]),n}function ur(n,r,t){const e=this;let u;return i;function i(c){let p=e.events.length,f;for(;p--;)if(e.events[p][1].type!=="lineEnding"&&e.events[p][1].type!=="linePrefix"&&e.events[p][1].type!=="content"){f=e.events[p][1].type==="paragraph";break}return!e.parser.lazy[e.now().line]&&(e.interrupt||f)?(n.enter("setextHeadingLine"),u=c,l(c)):t(c)}function l(c){return n.enter("setextHeadingLineSequence"),a(c)}function a(c){return c===u?(n.consume(c),a):(n.exit("setextHeadingLineSequence"),z(c)?O(n,m,"lineSuffix")(c):m(c))}function m(c){return c===null||C(c)?(n.exit("setextHeadingLine"),r(c)):t(c)}}const lr={tokenize:ar};function ar(n){const r=this,t=n.attempt(Sn,e,n.attempt(this.parser.constructs.flowInitial,u,O(n,n.attempt(this.parser.constructs.flow,u,n.attempt(pe,u)),"linePrefix")));return t;function e(i){if(i===null){n.consume(i);return}return n.enter("lineEndingBlank"),n.consume(i),n.exit("lineEndingBlank"),r.currentConstruct=void 0,t}function u(i){if(i===null){n.consume(i);return}return n.enter("lineEnding"),n.consume(i),n.exit("lineEnding"),r.currentConstruct=void 0,t}}const or={resolveAll:ht()},sr=ct("string"),cr=ct("text");function ct(n){return{tokenize:r,resolveAll:ht(n==="text"?hr:void 0)};function r(t){const e=this,u=this.parser.constructs[n],i=t.attempt(u,l,a);return l;function l(p){return c(p)?i(p):a(p)}function a(p){if(p===null){t.consume(p);return}return t.enter("data"),t.consume(p),m}function m(p){return c(p)?(t.exit("data"),i(p)):(t.consume(p),m)}function c(p){if(p===null)return!0;const f=u[p];let x=-1;if(f)for(;++x-1){const a=l[0];typeof a=="string"?l[0]=a.slice(e):l.shift()}i>0&&l.push(n[u].slice(0,i))}return l}function mr(n,r){let t=-1;const e=[];let u;for(;++t13&&t<32||t>126&&t<160||t>55295&&t<57344||t>64975&&t<65008||(t&65535)===65535||(t&65535)===65534||t>1114111?"�":String.fromCharCode(t)}const Ir=/\\([!-/:-@[-`{-~])|&(#(?:\d{1,7}|x[\da-f]{1,6})|[\da-z]{1,31});/gi;function Tr(n){return n.replace(Ir,Br)}function Br(n,r,t){if(r)return r;if(t.charCodeAt(0)===35){const u=t.charCodeAt(1),i=u===120||u===88;return pt(t.slice(i?2:1),i?16:10)}return On(t)||n}function yn(n){return!n||typeof n!="object"?"":"position"in n||"type"in n?vn(n.position):"start"in n||"end"in n?vn(n):"line"in n||"column"in n?Tn(n):""}function Tn(n){return nt(n&&n.line)+":"+nt(n&&n.column)}function vn(n){return Tn(n&&n.start)+"-"+Tn(n&&n.end)}function nt(n){return n&&typeof n=="number"?n:1}const ft={}.hasOwnProperty,mt=function(n,r,t){return typeof r!="string"&&(t=r,r=void 0),Lr(t)(zr(wr(t).document().write(Ar()(n,r,!0))))};function Lr(n){const r={transforms:[],canContainEols:["emphasis","fragment","heading","paragraph","strong"],enter:{autolink:a(Hn),autolinkProtocol:y,autolinkEmail:y,atxHeading:a(jn),blockQuote:a(Fn),characterEscape:y,characterReference:y,codeFenced:a(Mn),codeFencedFenceInfo:m,codeFencedFenceMeta:m,codeIndented:a(Mn,m),codeText:a(kt,m),codeTextData:y,data:y,codeFlowValue:y,definition:a(dt),definitionDestinationString:m,definitionLabelString:m,definitionTitleString:m,emphasis:a(bt),hardBreakEscape:a(Rn),hardBreakTrailing:a(Rn),htmlFlow:a(qn,m),htmlFlowData:y,htmlText:a(qn,m),htmlTextData:y,image:a(yt),label:m,link:a(Hn),listItem:a(St),listItemValue:A,listOrdered:a(Nn,h),listUnordered:a(Nn),paragraph:a(Ft),reference:hn,referenceString:m,resourceDestinationString:m,resourceTitleString:m,setextHeading:a(jn),strong:a(Et),thematicBreak:a(wt)},exit:{atxHeading:p(),atxHeadingSequence:T,autolink:p(),autolinkEmail:mn,autolinkProtocol:fn,blockQuote:p(),characterEscapeValue:S,characterReferenceMarkerHexadecimal:pn,characterReferenceMarkerNumeric:pn,characterReferenceValue:an,codeFenced:p(j),codeFencedFence:b,codeFencedFenceInfo:I,codeFencedFenceMeta:M,codeFlowValue:S,codeIndented:p(F),codeText:p(W),codeTextData:S,data:S,definition:p(),definitionDestinationString:k,definitionLabelString:D,definitionTitleString:_,emphasis:p(),hardBreakEscape:p(R),hardBreakTrailing:p(R),htmlFlow:p(w),htmlFlowData:S,htmlText:p(U),htmlTextData:S,image:p(en),label:J,labelText:o,lineEnding:P,link:p(G),listItem:p(),listOrdered:p(),listUnordered:p(),paragraph:p(),referenceString:Q,resourceDestinationString:rn,resourceTitleString:s,resource:K,setextHeading:p(V),setextHeadingLineSequence:N,setextHeadingText:H,strong:p(),thematicBreak:p()}};xt(r,(n||{}).mdastExtensions||[]);const t={};return e;function e(g){let d={type:"root",children:[]};const E={stack:[d],tokenStack:[],config:r,enter:c,exit:f,buffer:m,resume:x,setData:i,getData:l},B=[];let L=-1;for(;++L0){const X=E.tokenStack[E.tokenStack.length-1];(X[1]||tt).call(E,void 0,X[0])}for(d.position={start:sn(g.length>0?g[0][1].start:{line:1,column:1,offset:0}),end:sn(g.length>0?g[g.length-2][1].end:{line:1,column:1,offset:0})},L=-1;++L{p!==0&&(u++,e.push([])),c.split(" ").forEach(f=>{f&&e[u].push({content:f,type:a})})}):(l.type==="strong"||l.type==="emphasis")&&l.children.forEach(m=>{i(m,l.type)})}return t.forEach(l=>{l.type==="paragraph"&&l.children.forEach(a=>{i(a)})}),e}function _r(n){const{children:r}=mt(n);function t(e){return e.type==="text"?e.value.replace(/\n/g,"
"):e.type==="strong"?`${e.children.map(t).join("")}`:e.type==="emphasis"?`${e.children.map(t).join("")}`:e.type==="paragraph"?`

${e.children.map(t).join("")}

`:`Unsupported markdown: ${e.type}`}return r.map(t).join("")}function Mr(n){return Intl.Segmenter?[...new Intl.Segmenter().segment(n)].map(r=>r.segment):[...n]}function jr(n,r){const t=Mr(r.content);return gt(n,[],t,r.type)}function gt(n,r,t,e){if(t.length===0)return[{content:r.join(""),type:e},{content:"",type:e}];const[u,...i]=t,l=[...r,u];return n([{content:l.join(""),type:e}])?gt(n,l,i,e):(r.length===0&&u&&(r.push(u),t.shift()),[{content:r.join(""),type:e},{content:t.join(""),type:e}])}function Rr(n,r){if(n.some(({content:t})=>t.includes(` +`)))throw new Error("splitLineToFitWidth does not support newlines in the line");return Bn(n,r)}function Bn(n,r,t=[],e=[]){if(n.length===0)return e.length>0&&t.push(e),t.length>0?t:[];let u="";n[0].content===" "&&(u=" ",n.shift());const i=n.shift()??{content:" ",type:"normal"},l=[...e];if(u!==""&&l.push({content:u,type:"normal"}),l.push(i),r(l))return Bn(n,r,t,l);if(e.length>0)t.push(e),n.unshift(i);else if(i.content){const[a,m]=jr(r,i);t.push([a]),m.content&&n.unshift(m)}return Bn(n,r,t)}function qr(n,r){r&&n.attr("style",r)}function Hr(n,r,t,e,u=!1){const i=n.append("foreignObject"),l=i.append("xhtml:div"),a=r.label,m=r.isNode?"nodeLabel":"edgeLabel";l.html(` + "+a+""),qr(l,r.labelStyle),l.style("display","table-cell"),l.style("white-space","nowrap"),l.style("max-width",t+"px"),l.attr("xmlns","http://www.w3.org/1999/xhtml"),u&&l.attr("class","labelBkg");let c=l.node().getBoundingClientRect();return c.width===t&&(l.style("display","table"),l.style("white-space","break-spaces"),l.style("width",t+"px"),c=l.node().getBoundingClientRect()),i.style("width",c.width),i.style("height",c.height),i.node()}function Pn(n,r,t){return n.append("tspan").attr("class","text-outer-tspan").attr("x",0).attr("y",r*t-.1+"em").attr("dy",t+"em")}function Nr(n,r,t){const e=n.append("text"),u=Pn(e,1,r);_n(u,t);const i=u.node().getComputedTextLength();return e.remove(),i}function Qr(n,r,t){var e;const u=n.append("text"),i=Pn(u,1,r);_n(i,[{content:t,type:"normal"}]);const l=(e=i.node())==null?void 0:e.getBoundingClientRect();return l&&u.remove(),l}function Vr(n,r,t,e=!1){const i=r.append("g"),l=i.insert("rect").attr("class","background"),a=i.append("text").attr("y","-10.1");let m=0;for(const c of t){const p=x=>Nr(i,1.1,x)<=n,f=p(c)?[c]:Rr(c,p);for(const x of f){const h=Pn(a,m,1.1);_n(h,x),m++}}if(e){const c=a.node().getBBox(),p=2;return l.attr("x",-p).attr("y",-p).attr("width",c.width+2*p).attr("height",c.height+2*p),i.node()}else return a.node()}function _n(n,r){n.text(""),r.forEach((t,e)=>{const u=n.append("tspan").attr("font-style",t.type==="emphasis"?"italic":"normal").attr("class","text-inner-tspan").attr("font-weight",t.type==="strong"?"bold":"normal");e===0?u.text(t.content):u.text(" "+t.content)})}const Ur=(n,r="",{style:t="",isTitle:e=!1,classes:u="",useHtmlLabels:i=!0,isNode:l=!0,width:a=200,addSvgBackground:m=!1}={})=>{if(At.info("createText",r,t,e,u,i,l,m),i){const c=_r(r),p={isNode:l,label:zt(c).replace(/fa[blrs]?:fa-[\w-]+/g,x=>``),labelStyle:t.replace("fill:","color:")};return Hr(n,p,a,u,m)}else{const c=Pr(r);return Vr(a,n,c,m)}};export{Qr as a,Ur as c}; diff --git a/assets/edges-e0da2a9e-CFrRRtuw.js b/assets/edges-e0da2a9e-CFrRRtuw.js new file mode 100644 index 00000000..3f0342b0 --- /dev/null +++ b/assets/edges-e0da2a9e-CFrRRtuw.js @@ -0,0 +1,4 @@ +import{q as H,c as b,d as V,an as q,h as E,l as g,z as j,ao as lt}from"./mermaid.core-B_tqKmhs.js";import{c as st}from"./createText-2e5e7dd3-CtNqJc9Q.js";import{l as ct}from"./line-CC-POSaO.js";const ht=(e,t,a,i)=>{t.forEach(l=>{wt[l](e,a,i)})},ot=(e,t,a)=>{g.trace("Making markers for ",a),e.append("defs").append("marker").attr("id",a+"_"+t+"-extensionStart").attr("class","marker extension "+t).attr("refX",18).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("path").attr("d","M 1,7 L18,13 V 1 Z"),e.append("defs").append("marker").attr("id",a+"_"+t+"-extensionEnd").attr("class","marker extension "+t).attr("refX",1).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 1,1 V 13 L18,7 Z")},yt=(e,t,a)=>{e.append("defs").append("marker").attr("id",a+"_"+t+"-compositionStart").attr("class","marker composition "+t).attr("refX",18).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L1,7 L9,1 Z"),e.append("defs").append("marker").attr("id",a+"_"+t+"-compositionEnd").attr("class","marker composition "+t).attr("refX",1).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L1,7 L9,1 Z")},pt=(e,t,a)=>{e.append("defs").append("marker").attr("id",a+"_"+t+"-aggregationStart").attr("class","marker aggregation "+t).attr("refX",18).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L1,7 L9,1 Z"),e.append("defs").append("marker").attr("id",a+"_"+t+"-aggregationEnd").attr("class","marker aggregation "+t).attr("refX",1).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L1,7 L9,1 Z")},ft=(e,t,a)=>{e.append("defs").append("marker").attr("id",a+"_"+t+"-dependencyStart").attr("class","marker dependency "+t).attr("refX",6).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("path").attr("d","M 5,7 L9,13 L1,7 L9,1 Z"),e.append("defs").append("marker").attr("id",a+"_"+t+"-dependencyEnd").attr("class","marker dependency "+t).attr("refX",13).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L14,7 L9,1 Z")},xt=(e,t,a)=>{e.append("defs").append("marker").attr("id",a+"_"+t+"-lollipopStart").attr("class","marker lollipop "+t).attr("refX",13).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("circle").attr("stroke","black").attr("fill","transparent").attr("cx",7).attr("cy",7).attr("r",6),e.append("defs").append("marker").attr("id",a+"_"+t+"-lollipopEnd").attr("class","marker lollipop "+t).attr("refX",1).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("circle").attr("stroke","black").attr("fill","transparent").attr("cx",7).attr("cy",7).attr("r",6)},dt=(e,t,a)=>{e.append("marker").attr("id",a+"_"+t+"-pointEnd").attr("class","marker "+t).attr("viewBox","0 0 10 10").attr("refX",6).attr("refY",5).attr("markerUnits","userSpaceOnUse").attr("markerWidth",12).attr("markerHeight",12).attr("orient","auto").append("path").attr("d","M 0 0 L 10 5 L 0 10 z").attr("class","arrowMarkerPath").style("stroke-width",1).style("stroke-dasharray","1,0"),e.append("marker").attr("id",a+"_"+t+"-pointStart").attr("class","marker "+t).attr("viewBox","0 0 10 10").attr("refX",4.5).attr("refY",5).attr("markerUnits","userSpaceOnUse").attr("markerWidth",12).attr("markerHeight",12).attr("orient","auto").append("path").attr("d","M 0 5 L 10 10 L 10 0 z").attr("class","arrowMarkerPath").style("stroke-width",1).style("stroke-dasharray","1,0")},gt=(e,t,a)=>{e.append("marker").attr("id",a+"_"+t+"-circleEnd").attr("class","marker "+t).attr("viewBox","0 0 10 10").attr("refX",11).attr("refY",5).attr("markerUnits","userSpaceOnUse").attr("markerWidth",11).attr("markerHeight",11).attr("orient","auto").append("circle").attr("cx","5").attr("cy","5").attr("r","5").attr("class","arrowMarkerPath").style("stroke-width",1).style("stroke-dasharray","1,0"),e.append("marker").attr("id",a+"_"+t+"-circleStart").attr("class","marker "+t).attr("viewBox","0 0 10 10").attr("refX",-1).attr("refY",5).attr("markerUnits","userSpaceOnUse").attr("markerWidth",11).attr("markerHeight",11).attr("orient","auto").append("circle").attr("cx","5").attr("cy","5").attr("r","5").attr("class","arrowMarkerPath").style("stroke-width",1).style("stroke-dasharray","1,0")},ut=(e,t,a)=>{e.append("marker").attr("id",a+"_"+t+"-crossEnd").attr("class","marker cross "+t).attr("viewBox","0 0 11 11").attr("refX",12).attr("refY",5.2).attr("markerUnits","userSpaceOnUse").attr("markerWidth",11).attr("markerHeight",11).attr("orient","auto").append("path").attr("d","M 1,1 l 9,9 M 10,1 l -9,9").attr("class","arrowMarkerPath").style("stroke-width",2).style("stroke-dasharray","1,0"),e.append("marker").attr("id",a+"_"+t+"-crossStart").attr("class","marker cross "+t).attr("viewBox","0 0 11 11").attr("refX",-1).attr("refY",5.2).attr("markerUnits","userSpaceOnUse").attr("markerWidth",11).attr("markerHeight",11).attr("orient","auto").append("path").attr("d","M 1,1 l 9,9 M 10,1 l -9,9").attr("class","arrowMarkerPath").style("stroke-width",2).style("stroke-dasharray","1,0")},bt=(e,t,a)=>{e.append("defs").append("marker").attr("id",a+"_"+t+"-barbEnd").attr("refX",19).attr("refY",7).attr("markerWidth",20).attr("markerHeight",14).attr("markerUnits","strokeWidth").attr("orient","auto").append("path").attr("d","M 19,7 L9,13 L14,7 L9,1 Z")},wt={extension:ot,composition:yt,aggregation:pt,dependency:ft,lollipop:xt,point:dt,circle:gt,cross:ut,barb:bt},hr=ht;function mt(e,t){t&&e.attr("style",t)}function kt(e){const t=E(document.createElementNS("http://www.w3.org/2000/svg","foreignObject")),a=t.append("xhtml:div"),i=e.label,l=e.isNode?"nodeLabel":"edgeLabel";return a.html('"+i+""),mt(a,e.labelStyle),a.style("display","inline-block"),a.style("white-space","nowrap"),a.attr("xmlns","http://www.w3.org/1999/xhtml"),t.node()}const vt=(e,t,a,i)=>{let l=e||"";if(typeof l=="object"&&(l=l[0]),H(b().flowchart.htmlLabels)){l=l.replace(/\\n|\n/g,"
"),g.debug("vertexText"+l);const r={isNode:i,label:q(l).replace(/fa[blrs]?:fa-[\w-]+/g,n=>``),labelStyle:t.replace("fill:","color:")};return kt(r)}else{const r=document.createElementNS("http://www.w3.org/2000/svg","text");r.setAttribute("style",t.replace("color:","fill:"));let s=[];typeof l=="string"?s=l.split(/\\n|\n|/gi):Array.isArray(l)?s=l:s=[];for(const n of s){const c=document.createElementNS("http://www.w3.org/2000/svg","tspan");c.setAttributeNS("http://www.w3.org/XML/1998/namespace","xml:space","preserve"),c.setAttribute("dy","1em"),c.setAttribute("x","0"),a?c.setAttribute("class","title-row"):c.setAttribute("class","row"),c.textContent=n.trim(),r.appendChild(c)}return r}},R=vt,M=async(e,t,a,i)=>{let l;const r=t.useHtmlLabels||H(b().flowchart.htmlLabels);a?l=a:l="node default";const s=e.insert("g").attr("class",l).attr("id",t.domId||t.id),n=s.insert("g").attr("class","label").attr("style",t.labelStyle);let c;t.labelText===void 0?c="":c=typeof t.labelText=="string"?t.labelText:t.labelText[0];const o=n.node();let h;t.labelType==="markdown"?h=st(n,V(q(c),b()),{useHtmlLabels:r,width:t.width||b().flowchart.wrappingWidth,classes:"markdown-node-label"}):h=o.appendChild(R(V(q(c),b()),t.labelStyle,!1,i));let y=h.getBBox();const f=t.padding/2;if(H(b().flowchart.htmlLabels)){const p=h.children[0],d=E(h),k=p.getElementsByTagName("img");if(k){const x=c.replace(/]*>/g,"").trim()==="";await Promise.all([...k].map(u=>new Promise(S=>{function B(){if(u.style.display="flex",u.style.flexDirection="column",x){const C=b().fontSize?b().fontSize:window.getComputedStyle(document.body).fontSize,D=parseInt(C,10)*5+"px";u.style.minWidth=D,u.style.maxWidth=D}else u.style.width="100%";S(u)}setTimeout(()=>{u.complete&&B()}),u.addEventListener("error",B),u.addEventListener("load",B)})))}y=p.getBoundingClientRect(),d.attr("width",y.width),d.attr("height",y.height)}return r?n.attr("transform","translate("+-y.width/2+", "+-y.height/2+")"):n.attr("transform","translate(0, "+-y.height/2+")"),t.centerLabel&&n.attr("transform","translate("+-y.width/2+", "+-y.height/2+")"),n.insert("rect",":first-child"),{shapeSvg:s,bbox:y,halfPadding:f,label:n}},m=(e,t)=>{const a=t.node().getBBox();e.width=a.width,e.height=a.height};function I(e,t,a,i){return e.insert("polygon",":first-child").attr("points",i.map(function(l){return l.x+","+l.y}).join(" ")).attr("class","label-container").attr("transform","translate("+-t/2+","+a/2+")")}function Lt(e,t){return e.intersect(t)}function it(e,t,a,i){var l=e.x,r=e.y,s=l-i.x,n=r-i.y,c=Math.sqrt(t*t*n*n+a*a*s*s),o=Math.abs(t*a*s/c);i.x0}function Tt(e,t,a){var i=e.x,l=e.y,r=[],s=Number.POSITIVE_INFINITY,n=Number.POSITIVE_INFINITY;typeof t.forEach=="function"?t.forEach(function(d){s=Math.min(s,d.x),n=Math.min(n,d.y)}):(s=Math.min(s,t.x),n=Math.min(n,t.y));for(var c=i-e.width/2-s,o=l-e.height/2-n,h=0;h1&&r.sort(function(d,k){var x=d.x-a.x,u=d.y-a.y,S=Math.sqrt(x*x+u*u),B=k.x-a.x,C=k.y-a.y,X=Math.sqrt(B*B+C*C);return S{var a=e.x,i=e.y,l=t.x-a,r=t.y-i,s=e.width/2,n=e.height/2,c,o;return Math.abs(r)*s>Math.abs(l)*n?(r<0&&(n=-n),c=r===0?0:n*l/r,o=n):(l<0&&(s=-s),c=s,o=l===0?0:s*r/l),{x:a+c,y:i+o}},Et=Bt,w={node:Lt,circle:St,ellipse:it,polygon:Tt,rect:Et},Ct=async(e,t)=>{t.useHtmlLabels||b().flowchart.htmlLabels||(t.centerLabel=!0);const{shapeSvg:i,bbox:l,halfPadding:r}=await M(e,t,"node "+t.classes,!0);g.info("Classes = ",t.classes);const s=i.insert("rect",":first-child");return s.attr("rx",t.rx).attr("ry",t.ry).attr("x",-l.width/2-r).attr("y",-l.height/2-r).attr("width",l.width+t.padding).attr("height",l.height+t.padding),m(t,s),t.intersect=function(n){return w.rect(t,n)},i},$t=Ct,_t=e=>{const t=new Set;for(const a of e)switch(a){case"x":t.add("right"),t.add("left");break;case"y":t.add("up"),t.add("down");break;default:t.add(a);break}return t},Rt=(e,t,a)=>{const i=_t(e),l=2,r=t.height+2*a.padding,s=r/l,n=t.width+2*s+a.padding,c=a.padding/2;return i.has("right")&&i.has("left")&&i.has("up")&&i.has("down")?[{x:0,y:0},{x:s,y:0},{x:n/2,y:2*c},{x:n-s,y:0},{x:n,y:0},{x:n,y:-r/3},{x:n+2*c,y:-r/2},{x:n,y:-2*r/3},{x:n,y:-r},{x:n-s,y:-r},{x:n/2,y:-r-2*c},{x:s,y:-r},{x:0,y:-r},{x:0,y:-2*r/3},{x:-2*c,y:-r/2},{x:0,y:-r/3}]:i.has("right")&&i.has("left")&&i.has("up")?[{x:s,y:0},{x:n-s,y:0},{x:n,y:-r/2},{x:n-s,y:-r},{x:s,y:-r},{x:0,y:-r/2}]:i.has("right")&&i.has("left")&&i.has("down")?[{x:0,y:0},{x:s,y:-r},{x:n-s,y:-r},{x:n,y:0}]:i.has("right")&&i.has("up")&&i.has("down")?[{x:0,y:0},{x:n,y:-s},{x:n,y:-r+s},{x:0,y:-r}]:i.has("left")&&i.has("up")&&i.has("down")?[{x:n,y:0},{x:0,y:-s},{x:0,y:-r+s},{x:n,y:-r}]:i.has("right")&&i.has("left")?[{x:s,y:0},{x:s,y:-c},{x:n-s,y:-c},{x:n-s,y:0},{x:n,y:-r/2},{x:n-s,y:-r},{x:n-s,y:-r+c},{x:s,y:-r+c},{x:s,y:-r},{x:0,y:-r/2}]:i.has("up")&&i.has("down")?[{x:n/2,y:0},{x:0,y:-c},{x:s,y:-c},{x:s,y:-r+c},{x:0,y:-r+c},{x:n/2,y:-r},{x:n,y:-r+c},{x:n-s,y:-r+c},{x:n-s,y:-c},{x:n,y:-c}]:i.has("right")&&i.has("up")?[{x:0,y:0},{x:n,y:-s},{x:0,y:-r}]:i.has("right")&&i.has("down")?[{x:0,y:0},{x:n,y:0},{x:0,y:-r}]:i.has("left")&&i.has("up")?[{x:n,y:0},{x:0,y:-s},{x:n,y:-r}]:i.has("left")&&i.has("down")?[{x:n,y:0},{x:0,y:0},{x:n,y:-r}]:i.has("right")?[{x:s,y:-c},{x:s,y:-c},{x:n-s,y:-c},{x:n-s,y:0},{x:n,y:-r/2},{x:n-s,y:-r},{x:n-s,y:-r+c},{x:s,y:-r+c},{x:s,y:-r+c}]:i.has("left")?[{x:s,y:0},{x:s,y:-c},{x:n-s,y:-c},{x:n-s,y:-r+c},{x:s,y:-r+c},{x:s,y:-r},{x:0,y:-r/2}]:i.has("up")?[{x:s,y:-c},{x:s,y:-r+c},{x:0,y:-r+c},{x:n/2,y:-r},{x:n,y:-r+c},{x:n-s,y:-r+c},{x:n-s,y:-c}]:i.has("down")?[{x:n/2,y:0},{x:0,y:-c},{x:s,y:-c},{x:s,y:-r+c},{x:n-s,y:-r+c},{x:n-s,y:-c},{x:n,y:-c}]:[{x:0,y:0}]},K=e=>e?" "+e:"",_=(e,t)=>`node default${K(e.classes)} ${K(e.class)}`,P=async(e,t)=>{const{shapeSvg:a,bbox:i}=await M(e,t,_(t),!0),l=i.width+t.padding,r=i.height+t.padding,s=l+r,n=[{x:s/2,y:0},{x:s,y:-s/2},{x:s/2,y:-s},{x:0,y:-s/2}];g.info("Question main (Circle)");const c=I(a,s,s,n);return c.attr("style",t.style),m(t,c),t.intersect=function(o){return g.warn("Intersect called"),w.polygon(t,n,o)},a},Ht=(e,t)=>{const a=e.insert("g").attr("class","node default").attr("id",t.domId||t.id),i=28,l=[{x:0,y:i/2},{x:i/2,y:0},{x:0,y:-i/2},{x:-i/2,y:0}];return a.insert("polygon",":first-child").attr("points",l.map(function(s){return s.x+","+s.y}).join(" ")).attr("class","state-start").attr("r",7).attr("width",28).attr("height",28),t.width=28,t.height=28,t.intersect=function(s){return w.circle(t,14,s)},a},It=async(e,t)=>{const{shapeSvg:a,bbox:i}=await M(e,t,_(t),!0),l=4,r=i.height+t.padding,s=r/l,n=i.width+2*s+t.padding,c=[{x:s,y:0},{x:n-s,y:0},{x:n,y:-r/2},{x:n-s,y:-r},{x:s,y:-r},{x:0,y:-r/2}],o=I(a,n,r,c);return o.attr("style",t.style),m(t,o),t.intersect=function(h){return w.polygon(t,c,h)},a},Nt=async(e,t)=>{const{shapeSvg:a,bbox:i}=await M(e,t,void 0,!0),l=2,r=i.height+2*t.padding,s=r/l,n=i.width+2*s+t.padding,c=Rt(t.directions,i,t),o=I(a,n,r,c);return o.attr("style",t.style),m(t,o),t.intersect=function(h){return w.polygon(t,c,h)},a},Ot=async(e,t)=>{const{shapeSvg:a,bbox:i}=await M(e,t,_(t),!0),l=i.width+t.padding,r=i.height+t.padding,s=[{x:-r/2,y:0},{x:l,y:0},{x:l,y:-r},{x:-r/2,y:-r},{x:0,y:-r/2}];return I(a,l,r,s).attr("style",t.style),t.width=l+r,t.height=r,t.intersect=function(c){return w.polygon(t,s,c)},a},Wt=async(e,t)=>{const{shapeSvg:a,bbox:i}=await M(e,t,_(t),!0),l=i.width+t.padding,r=i.height+t.padding,s=[{x:-2*r/6,y:0},{x:l-r/6,y:0},{x:l+2*r/6,y:-r},{x:r/6,y:-r}],n=I(a,l,r,s);return n.attr("style",t.style),m(t,n),t.intersect=function(c){return w.polygon(t,s,c)},a},Xt=async(e,t)=>{const{shapeSvg:a,bbox:i}=await M(e,t,_(t),!0),l=i.width+t.padding,r=i.height+t.padding,s=[{x:2*r/6,y:0},{x:l+r/6,y:0},{x:l-2*r/6,y:-r},{x:-r/6,y:-r}],n=I(a,l,r,s);return n.attr("style",t.style),m(t,n),t.intersect=function(c){return w.polygon(t,s,c)},a},Yt=async(e,t)=>{const{shapeSvg:a,bbox:i}=await M(e,t,_(t),!0),l=i.width+t.padding,r=i.height+t.padding,s=[{x:-2*r/6,y:0},{x:l+2*r/6,y:0},{x:l-r/6,y:-r},{x:r/6,y:-r}],n=I(a,l,r,s);return n.attr("style",t.style),m(t,n),t.intersect=function(c){return w.polygon(t,s,c)},a},Dt=async(e,t)=>{const{shapeSvg:a,bbox:i}=await M(e,t,_(t),!0),l=i.width+t.padding,r=i.height+t.padding,s=[{x:r/6,y:0},{x:l-r/6,y:0},{x:l+2*r/6,y:-r},{x:-2*r/6,y:-r}],n=I(a,l,r,s);return n.attr("style",t.style),m(t,n),t.intersect=function(c){return w.polygon(t,s,c)},a},At=async(e,t)=>{const{shapeSvg:a,bbox:i}=await M(e,t,_(t),!0),l=i.width+t.padding,r=i.height+t.padding,s=[{x:0,y:0},{x:l+r/2,y:0},{x:l,y:-r/2},{x:l+r/2,y:-r},{x:0,y:-r}],n=I(a,l,r,s);return n.attr("style",t.style),m(t,n),t.intersect=function(c){return w.polygon(t,s,c)},a},jt=async(e,t)=>{const{shapeSvg:a,bbox:i}=await M(e,t,_(t),!0),l=i.width+t.padding,r=l/2,s=r/(2.5+l/50),n=i.height+s+t.padding,c="M 0,"+s+" a "+r+","+s+" 0,0,0 "+l+" 0 a "+r+","+s+" 0,0,0 "+-l+" 0 l 0,"+n+" a "+r+","+s+" 0,0,0 "+l+" 0 l 0,"+-n,o=a.attr("label-offset-y",s).insert("path",":first-child").attr("style",t.style).attr("d",c).attr("transform","translate("+-l/2+","+-(n/2+s)+")");return m(t,o),t.intersect=function(h){const y=w.rect(t,h),f=y.x-t.x;if(r!=0&&(Math.abs(f)t.height/2-s)){let p=s*s*(1-f*f/(r*r));p!=0&&(p=Math.sqrt(p)),p=s-p,h.y-t.y>0&&(p=-p),y.y+=p}return y},a},Ut=async(e,t)=>{const{shapeSvg:a,bbox:i,halfPadding:l}=await M(e,t,"node "+t.classes+" "+t.class,!0),r=a.insert("rect",":first-child"),s=t.positioned?t.width:i.width+t.padding,n=t.positioned?t.height:i.height+t.padding,c=t.positioned?-s/2:-i.width/2-l,o=t.positioned?-n/2:-i.height/2-l;if(r.attr("class","basic label-container").attr("style",t.style).attr("rx",t.rx).attr("ry",t.ry).attr("x",c).attr("y",o).attr("width",s).attr("height",n),t.props){const h=new Set(Object.keys(t.props));t.props.borders&&(Q(r,t.props.borders,s,n),h.delete("borders")),h.forEach(y=>{g.warn(`Unknown node property ${y}`)})}return m(t,r),t.intersect=function(h){return w.rect(t,h)},a},zt=async(e,t)=>{const{shapeSvg:a,bbox:i,halfPadding:l}=await M(e,t,"node "+t.classes,!0),r=a.insert("rect",":first-child"),s=t.positioned?t.width:i.width+t.padding,n=t.positioned?t.height:i.height+t.padding,c=t.positioned?-s/2:-i.width/2-l,o=t.positioned?-n/2:-i.height/2-l;if(r.attr("class","basic cluster composite label-container").attr("style",t.style).attr("rx",t.rx).attr("ry",t.ry).attr("x",c).attr("y",o).attr("width",s).attr("height",n),t.props){const h=new Set(Object.keys(t.props));t.props.borders&&(Q(r,t.props.borders,s,n),h.delete("borders")),h.forEach(y=>{g.warn(`Unknown node property ${y}`)})}return m(t,r),t.intersect=function(h){return w.rect(t,h)},a},Zt=async(e,t)=>{const{shapeSvg:a}=await M(e,t,"label",!0);g.trace("Classes = ",t.class);const i=a.insert("rect",":first-child"),l=0,r=0;if(i.attr("width",l).attr("height",r),a.attr("class","label edgeLabel"),t.props){const s=new Set(Object.keys(t.props));t.props.borders&&(Q(i,t.props.borders,l,r),s.delete("borders")),s.forEach(n=>{g.warn(`Unknown node property ${n}`)})}return m(t,i),t.intersect=function(s){return w.rect(t,s)},a};function Q(e,t,a,i){const l=[],r=n=>{l.push(n,0)},s=n=>{l.push(0,n)};t.includes("t")?(g.debug("add top border"),r(a)):s(a),t.includes("r")?(g.debug("add right border"),r(i)):s(i),t.includes("b")?(g.debug("add bottom border"),r(a)):s(a),t.includes("l")?(g.debug("add left border"),r(i)):s(i),e.attr("stroke-dasharray",l.join(" "))}const Gt=(e,t)=>{let a;t.classes?a="node "+t.classes:a="node default";const i=e.insert("g").attr("class",a).attr("id",t.domId||t.id),l=i.insert("rect",":first-child"),r=i.insert("line"),s=i.insert("g").attr("class","label"),n=t.labelText.flat?t.labelText.flat():t.labelText;let c="";typeof n=="object"?c=n[0]:c=n,g.info("Label text abc79",c,n,typeof n=="object");const o=s.node().appendChild(R(c,t.labelStyle,!0,!0));let h={width:0,height:0};if(H(b().flowchart.htmlLabels)){const k=o.children[0],x=E(o);h=k.getBoundingClientRect(),x.attr("width",h.width),x.attr("height",h.height)}g.info("Text 2",n);const y=n.slice(1,n.length);let f=o.getBBox();const p=s.node().appendChild(R(y.join?y.join("
"):y,t.labelStyle,!0,!0));if(H(b().flowchart.htmlLabels)){const k=p.children[0],x=E(p);h=k.getBoundingClientRect(),x.attr("width",h.width),x.attr("height",h.height)}const d=t.padding/2;return E(p).attr("transform","translate( "+(h.width>f.width?0:(f.width-h.width)/2)+", "+(f.height+d+5)+")"),E(o).attr("transform","translate( "+(h.width{const{shapeSvg:a,bbox:i}=await M(e,t,_(t),!0),l=i.height+t.padding,r=i.width+l/4+t.padding,s=a.insert("rect",":first-child").attr("style",t.style).attr("rx",l/2).attr("ry",l/2).attr("x",-r/2).attr("y",-l/2).attr("width",r).attr("height",l);return m(t,s),t.intersect=function(n){return w.rect(t,n)},a},qt=async(e,t)=>{const{shapeSvg:a,bbox:i,halfPadding:l}=await M(e,t,_(t),!0),r=a.insert("circle",":first-child");return r.attr("style",t.style).attr("rx",t.rx).attr("ry",t.ry).attr("r",i.width/2+l).attr("width",i.width+t.padding).attr("height",i.height+t.padding),g.info("Circle main"),m(t,r),t.intersect=function(s){return g.info("Circle intersect",t,i.width/2+l,s),w.circle(t,i.width/2+l,s)},a},Qt=async(e,t)=>{const{shapeSvg:a,bbox:i,halfPadding:l}=await M(e,t,_(t),!0),r=5,s=a.insert("g",":first-child"),n=s.insert("circle"),c=s.insert("circle");return s.attr("class",t.class),n.attr("style",t.style).attr("rx",t.rx).attr("ry",t.ry).attr("r",i.width/2+l+r).attr("width",i.width+t.padding+r*2).attr("height",i.height+t.padding+r*2),c.attr("style",t.style).attr("rx",t.rx).attr("ry",t.ry).attr("r",i.width/2+l).attr("width",i.width+t.padding).attr("height",i.height+t.padding),g.info("DoubleCircle main"),m(t,n),t.intersect=function(o){return g.info("DoubleCircle intersect",t,i.width/2+l+r,o),w.circle(t,i.width/2+l+r,o)},a},Vt=async(e,t)=>{const{shapeSvg:a,bbox:i}=await M(e,t,_(t),!0),l=i.width+t.padding,r=i.height+t.padding,s=[{x:0,y:0},{x:l,y:0},{x:l,y:-r},{x:0,y:-r},{x:0,y:0},{x:-8,y:0},{x:l+8,y:0},{x:l+8,y:-r},{x:-8,y:-r},{x:-8,y:0}],n=I(a,l,r,s);return n.attr("style",t.style),m(t,n),t.intersect=function(c){return w.polygon(t,s,c)},a},Jt=(e,t)=>{const a=e.insert("g").attr("class","node default").attr("id",t.domId||t.id),i=a.insert("circle",":first-child");return i.attr("class","state-start").attr("r",7).attr("width",14).attr("height",14),m(t,i),t.intersect=function(l){return w.circle(t,7,l)},a},tt=(e,t,a)=>{const i=e.insert("g").attr("class","node default").attr("id",t.domId||t.id);let l=70,r=10;a==="LR"&&(l=10,r=70);const s=i.append("rect").attr("x",-1*l/2).attr("y",-1*r/2).attr("width",l).attr("height",r).attr("class","fork-join");return m(t,s),t.height=t.height+t.padding/2,t.width=t.width+t.padding/2,t.intersect=function(n){return w.rect(t,n)},i},Kt=(e,t)=>{const a=e.insert("g").attr("class","node default").attr("id",t.domId||t.id),i=a.insert("circle",":first-child"),l=a.insert("circle",":first-child");return l.attr("class","state-start").attr("r",7).attr("width",14).attr("height",14),i.attr("class","state-end").attr("r",5).attr("width",10).attr("height",10),m(t,l),t.intersect=function(r){return w.circle(t,7,r)},a},Pt=(e,t)=>{const a=t.padding/2,i=4,l=8;let r;t.classes?r="node "+t.classes:r="node default";const s=e.insert("g").attr("class",r).attr("id",t.domId||t.id),n=s.insert("rect",":first-child"),c=s.insert("line"),o=s.insert("line");let h=0,y=i;const f=s.insert("g").attr("class","label");let p=0;const d=t.classData.annotations&&t.classData.annotations[0],k=t.classData.annotations[0]?"«"+t.classData.annotations[0]+"»":"",x=f.node().appendChild(R(k,t.labelStyle,!0,!0));let u=x.getBBox();if(H(b().flowchart.htmlLabels)){const v=x.children[0],L=E(x);u=v.getBoundingClientRect(),L.attr("width",u.width),L.attr("height",u.height)}t.classData.annotations[0]&&(y+=u.height+i,h+=u.width);let S=t.classData.label;t.classData.type!==void 0&&t.classData.type!==""&&(b().flowchart.htmlLabels?S+="<"+t.classData.type+">":S+="<"+t.classData.type+">");const B=f.node().appendChild(R(S,t.labelStyle,!0,!0));E(B).attr("class","classTitle");let C=B.getBBox();if(H(b().flowchart.htmlLabels)){const v=B.children[0],L=E(B);C=v.getBoundingClientRect(),L.attr("width",C.width),L.attr("height",C.height)}y+=C.height+i,C.width>h&&(h=C.width);const X=[];t.classData.members.forEach(v=>{const L=v.getDisplayDetails();let W=L.displayText;b().flowchart.htmlLabels&&(W=W.replace(//g,">"));const N=f.node().appendChild(R(W,L.cssStyle?L.cssStyle:t.labelStyle,!0,!0));let $=N.getBBox();if(H(b().flowchart.htmlLabels)){const F=N.children[0],A=E(N);$=F.getBoundingClientRect(),A.attr("width",$.width),A.attr("height",$.height)}$.width>h&&(h=$.width),y+=$.height+i,X.push(N)}),y+=l;const D=[];if(t.classData.methods.forEach(v=>{const L=v.getDisplayDetails();let W=L.displayText;b().flowchart.htmlLabels&&(W=W.replace(//g,">"));const N=f.node().appendChild(R(W,L.cssStyle?L.cssStyle:t.labelStyle,!0,!0));let $=N.getBBox();if(H(b().flowchart.htmlLabels)){const F=N.children[0],A=E(N);$=F.getBoundingClientRect(),A.attr("width",$.width),A.attr("height",$.height)}$.width>h&&(h=$.width),y+=$.height+i,D.push(N)}),y+=l,d){let v=(h-u.width)/2;E(x).attr("transform","translate( "+(-1*h/2+v)+", "+-1*y/2+")"),p=u.height+i}let nt=(h-C.width)/2;return E(B).attr("transform","translate( "+(-1*h/2+nt)+", "+(-1*y/2+p)+")"),p+=C.height+i,c.attr("class","divider").attr("x1",-h/2-a).attr("x2",h/2+a).attr("y1",-y/2-a+l+p).attr("y2",-y/2-a+l+p),p+=l,X.forEach(v=>{E(v).attr("transform","translate( "+-h/2+", "+(-1*y/2+p+l/2)+")");const L=v?.getBBox();p+=(L?.height??0)+i}),p+=l,o.attr("class","divider").attr("x1",-h/2-a).attr("x2",h/2+a).attr("y1",-y/2-a+l+p).attr("y2",-y/2-a+l+p),p+=l,D.forEach(v=>{E(v).attr("transform","translate( "+-h/2+", "+(-1*y/2+p)+")");const L=v?.getBBox();p+=(L?.height??0)+i}),n.attr("style",t.style).attr("class","outer title-state").attr("x",-h/2-a).attr("y",-(y/2)-a).attr("width",h+t.padding).attr("height",y+t.padding),m(t,n),t.intersect=function(v){return w.rect(t,v)},s},rt={rhombus:P,composite:zt,question:P,rect:Ut,labelRect:Zt,rectWithTitle:Gt,choice:Ht,circle:qt,doublecircle:Qt,stadium:Ft,hexagon:It,block_arrow:Nt,rect_left_inv_arrow:Ot,lean_right:Wt,lean_left:Xt,trapezoid:Yt,inv_trapezoid:Dt,rect_right_inv_arrow:At,cylinder:jt,start:Jt,end:Kt,note:$t,subroutine:Vt,fork:tt,join:tt,class_box:Pt};let Y={};const or=async(e,t,a)=>{let i,l;if(t.link){let r;b().securityLevel==="sandbox"?r="_top":t.linkTarget&&(r=t.linkTarget||"_blank"),i=e.insert("svg:a").attr("xlink:href",t.link).attr("target",r),l=await rt[t.shape](i,t,a)}else l=await rt[t.shape](e,t,a),i=l;return t.tooltip&&l.attr("title",t.tooltip),t.class&&l.attr("class","node default "+t.class),i.attr("data-node","true"),i.attr("data-id",t.id),Y[t.id]=i,t.haveCallback&&Y[t.id].attr("class",Y[t.id].attr("class")+" clickable"),i},yr=(e,t)=>{Y[t.id]=e},pr=()=>{Y={}},fr=e=>{const t=Y[e.id];g.trace("Transforming node",e.diff,e,"translate("+(e.x-e.width/2-5)+", "+e.width/2+")");const a=8,i=e.diff||0;return e.clusterNode?t.attr("transform","translate("+(e.x+i-e.width/2)+", "+(e.y-e.height/2-a)+")"):t.attr("transform","translate("+e.x+", "+e.y+")"),i},tr=({flowchart:e})=>{var t,a;const i=((t=e?.subGraphTitleMargin)==null?void 0:t.top)??0,l=((a=e?.subGraphTitleMargin)==null?void 0:a.bottom)??0,r=i+l;return{subGraphTitleTopMargin:i,subGraphTitleBottomMargin:l,subGraphTitleTotalMargin:r}},O={aggregation:18,extension:18,composition:18,dependency:6,lollipop:13.5,arrow_point:5.3};function U(e,t){if(e===void 0||t===void 0)return{angle:0,deltaX:0,deltaY:0};e=Z(e),t=Z(t);const[a,i]=[e.x,e.y],[l,r]=[t.x,t.y],s=l-a,n=r-i;return{angle:Math.atan(n/s),deltaX:s,deltaY:n}}const Z=e=>Array.isArray(e)?{x:e[0],y:e[1]}:e,rr=e=>({x:function(t,a,i){let l=0;if(a===0&&Object.hasOwn(O,e.arrowTypeStart)){const{angle:r,deltaX:s}=U(i[0],i[1]);l=O[e.arrowTypeStart]*Math.cos(r)*(s>=0?1:-1)}else if(a===i.length-1&&Object.hasOwn(O,e.arrowTypeEnd)){const{angle:r,deltaX:s}=U(i[i.length-1],i[i.length-2]);l=O[e.arrowTypeEnd]*Math.cos(r)*(s>=0?1:-1)}return Z(t).x+l},y:function(t,a,i){let l=0;if(a===0&&Object.hasOwn(O,e.arrowTypeStart)){const{angle:r,deltaY:s}=U(i[0],i[1]);l=O[e.arrowTypeStart]*Math.abs(Math.sin(r))*(s>=0?1:-1)}else if(a===i.length-1&&Object.hasOwn(O,e.arrowTypeEnd)){const{angle:r,deltaY:s}=U(i[i.length-1],i[i.length-2]);l=O[e.arrowTypeEnd]*Math.abs(Math.sin(r))*(s>=0?1:-1)}return Z(t).y+l}}),ar=(e,t,a,i,l)=>{t.arrowTypeStart&&at(e,"start",t.arrowTypeStart,a,i,l),t.arrowTypeEnd&&at(e,"end",t.arrowTypeEnd,a,i,l)},er={arrow_cross:"cross",arrow_point:"point",arrow_barb:"barb",arrow_circle:"circle",aggregation:"aggregation",extension:"extension",composition:"composition",dependency:"dependency",lollipop:"lollipop"},at=(e,t,a,i,l,r)=>{const s=er[a];if(!s){g.warn(`Unknown arrow type: ${a}`);return}const n=t==="start"?"Start":"End";e.attr(`marker-${t}`,`url(${i}#${l}_${r}-${s}${n})`)};let G={},T={};const xr=()=>{G={},T={}},dr=(e,t)=>{const a=H(b().flowchart.htmlLabels),i=t.labelType==="markdown"?st(e,t.label,{style:t.labelStyle,useHtmlLabels:a,addSvgBackground:!0}):R(t.label,t.labelStyle),l=e.insert("g").attr("class","edgeLabel"),r=l.insert("g").attr("class","label");r.node().appendChild(i);let s=i.getBBox();if(a){const c=i.children[0],o=E(i);s=c.getBoundingClientRect(),o.attr("width",s.width),o.attr("height",s.height)}r.attr("transform","translate("+-s.width/2+", "+-s.height/2+")"),G[t.id]=l,t.width=s.width,t.height=s.height;let n;if(t.startLabelLeft){const c=R(t.startLabelLeft,t.labelStyle),o=e.insert("g").attr("class","edgeTerminals"),h=o.insert("g").attr("class","inner");n=h.node().appendChild(c);const y=c.getBBox();h.attr("transform","translate("+-y.width/2+", "+-y.height/2+")"),T[t.id]||(T[t.id]={}),T[t.id].startLeft=o,z(n,t.startLabelLeft)}if(t.startLabelRight){const c=R(t.startLabelRight,t.labelStyle),o=e.insert("g").attr("class","edgeTerminals"),h=o.insert("g").attr("class","inner");n=o.node().appendChild(c),h.node().appendChild(c);const y=c.getBBox();h.attr("transform","translate("+-y.width/2+", "+-y.height/2+")"),T[t.id]||(T[t.id]={}),T[t.id].startRight=o,z(n,t.startLabelRight)}if(t.endLabelLeft){const c=R(t.endLabelLeft,t.labelStyle),o=e.insert("g").attr("class","edgeTerminals"),h=o.insert("g").attr("class","inner");n=h.node().appendChild(c);const y=c.getBBox();h.attr("transform","translate("+-y.width/2+", "+-y.height/2+")"),o.node().appendChild(c),T[t.id]||(T[t.id]={}),T[t.id].endLeft=o,z(n,t.endLabelLeft)}if(t.endLabelRight){const c=R(t.endLabelRight,t.labelStyle),o=e.insert("g").attr("class","edgeTerminals"),h=o.insert("g").attr("class","inner");n=h.node().appendChild(c);const y=c.getBBox();h.attr("transform","translate("+-y.width/2+", "+-y.height/2+")"),o.node().appendChild(c),T[t.id]||(T[t.id]={}),T[t.id].endRight=o,z(n,t.endLabelRight)}return i};function z(e,t){b().flowchart.htmlLabels&&e&&(e.style.width=t.length*9+"px",e.style.height="12px")}const gr=(e,t)=>{g.debug("Moving label abc88 ",e.id,e.label,G[e.id],t);let a=t.updatedPath?t.updatedPath:t.originalPath;const i=b(),{subGraphTitleTotalMargin:l}=tr(i);if(e.label){const r=G[e.id];let s=e.x,n=e.y;if(a){const c=j.calcLabelPosition(a);g.debug("Moving label "+e.label+" from (",s,",",n,") to (",c.x,",",c.y,") abc88"),t.updatedPath&&(s=c.x,n=c.y)}r.attr("transform",`translate(${s}, ${n+l/2})`)}if(e.startLabelLeft){const r=T[e.id].startLeft;let s=e.x,n=e.y;if(a){const c=j.calcTerminalLabelPosition(e.arrowTypeStart?10:0,"start_left",a);s=c.x,n=c.y}r.attr("transform",`translate(${s}, ${n})`)}if(e.startLabelRight){const r=T[e.id].startRight;let s=e.x,n=e.y;if(a){const c=j.calcTerminalLabelPosition(e.arrowTypeStart?10:0,"start_right",a);s=c.x,n=c.y}r.attr("transform",`translate(${s}, ${n})`)}if(e.endLabelLeft){const r=T[e.id].endLeft;let s=e.x,n=e.y;if(a){const c=j.calcTerminalLabelPosition(e.arrowTypeEnd?10:0,"end_left",a);s=c.x,n=c.y}r.attr("transform",`translate(${s}, ${n})`)}if(e.endLabelRight){const r=T[e.id].endRight;let s=e.x,n=e.y;if(a){const c=j.calcTerminalLabelPosition(e.arrowTypeEnd?10:0,"end_right",a);s=c.x,n=c.y}r.attr("transform",`translate(${s}, ${n})`)}},sr=(e,t)=>{const a=e.x,i=e.y,l=Math.abs(t.x-a),r=Math.abs(t.y-i),s=e.width/2,n=e.height/2;return l>=s||r>=n},ir=(e,t,a)=>{g.debug(`intersection calc abc89: + outsidePoint: ${JSON.stringify(t)} + insidePoint : ${JSON.stringify(a)} + node : x:${e.x} y:${e.y} w:${e.width} h:${e.height}`);const i=e.x,l=e.y,r=Math.abs(i-a.x),s=e.width/2;let n=a.xMath.abs(i-t.x)*c){let y=a.y{g.debug("abc88 cutPathAtIntersect",e,t);let a=[],i=e[0],l=!1;return e.forEach(r=>{if(!sr(t,r)&&!l){const s=ir(t,i,r);let n=!1;a.forEach(c=>{n=n||c.x===s.x&&c.y===s.y}),a.some(c=>c.x===s.x&&c.y===s.y)||a.push(s),l=!0}else i=r,l||a.push(r)}),a},ur=function(e,t,a,i,l,r,s){let n=a.points;g.debug("abc88 InsertEdge: edge=",a,"e=",t);let c=!1;const o=r.node(t.v);var h=r.node(t.w);h?.intersect&&o?.intersect&&(n=n.slice(1,a.points.length-1),n.unshift(o.intersect(n[0])),n.push(h.intersect(n[n.length-1]))),a.toCluster&&(g.debug("to cluster abc88",i[a.toCluster]),n=et(a.points,i[a.toCluster].node),c=!0),a.fromCluster&&(g.debug("from cluster abc88",i[a.fromCluster]),n=et(n.reverse(),i[a.fromCluster].node).reverse(),c=!0);const y=n.filter(C=>!Number.isNaN(C.y));let f=lt;a.curve&&(l==="graph"||l==="flowchart")&&(f=a.curve);const{x:p,y:d}=rr(a),k=ct().x(p).y(d).curve(f);let x;switch(a.thickness){case"normal":x="edge-thickness-normal";break;case"thick":x="edge-thickness-thick";break;case"invisible":x="edge-thickness-thick";break;default:x=""}switch(a.pattern){case"solid":x+=" edge-pattern-solid";break;case"dotted":x+=" edge-pattern-dotted";break;case"dashed":x+=" edge-pattern-dashed";break}const u=e.append("path").attr("d",k(y)).attr("id",a.id).attr("class"," "+x+(a.classes?" "+a.classes:"")).attr("style",a.style);let S="";(b().flowchart.arrowMarkerAbsolute||b().state.arrowMarkerAbsolute)&&(S=window.location.protocol+"//"+window.location.host+window.location.pathname+window.location.search,S=S.replace(/\(/g,"\\("),S=S.replace(/\)/g,"\\)")),ar(u,a,S,s,l);let B={};return c&&(B.updatedPath=n),B.originalPath=a.points,B};export{or as a,dr as b,ur as c,gr as d,pr as e,xr as f,tr as g,R as h,hr as i,Et as j,rr as k,M as l,ar as m,fr as p,yr as s,m as u}; diff --git a/assets/erDiagram-9861fffd-IEVO5HKD.js b/assets/erDiagram-9861fffd-IEVO5HKD.js new file mode 100644 index 00000000..f068184c --- /dev/null +++ b/assets/erDiagram-9861fffd-IEVO5HKD.js @@ -0,0 +1,51 @@ +import{c as Z,s as Et,g as mt,b as gt,a as kt,x as xt,y as Rt,l as V,A as Ot,h as rt,z as bt,i as Nt,ao as Tt,ar as At}from"./mermaid.core-B_tqKmhs.js";import{G as Mt}from"./graph-Es7S6dYR.js";import{l as St}from"./layout-Cjy8fVPY.js";import{l as wt}from"./line-CC-POSaO.js";import"./index-Be9IN4QR.js";import"./array-BKyUJesY.js";import"./path-CbwjOpE9.js";const It=/^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i;function Dt(t){return typeof t=="string"&&It.test(t)}const A=[];for(let t=0;t<256;++t)A.push((t+256).toString(16).slice(1));function vt(t,e=0){return A[t[e+0]]+A[t[e+1]]+A[t[e+2]]+A[t[e+3]]+"-"+A[t[e+4]]+A[t[e+5]]+"-"+A[t[e+6]]+A[t[e+7]]+"-"+A[t[e+8]]+A[t[e+9]]+"-"+A[t[e+10]]+A[t[e+11]]+A[t[e+12]]+A[t[e+13]]+A[t[e+14]]+A[t[e+15]]}function Lt(t){if(!Dt(t))throw TypeError("Invalid UUID");let e;const r=new Uint8Array(16);return r[0]=(e=parseInt(t.slice(0,8),16))>>>24,r[1]=e>>>16&255,r[2]=e>>>8&255,r[3]=e&255,r[4]=(e=parseInt(t.slice(9,13),16))>>>8,r[5]=e&255,r[6]=(e=parseInt(t.slice(14,18),16))>>>8,r[7]=e&255,r[8]=(e=parseInt(t.slice(19,23),16))>>>8,r[9]=e&255,r[10]=(e=parseInt(t.slice(24,36),16))/1099511627776&255,r[11]=e/4294967296&255,r[12]=e>>>24&255,r[13]=e>>>16&255,r[14]=e>>>8&255,r[15]=e&255,r}function Bt(t){t=unescape(encodeURIComponent(t));const e=[];for(let r=0;r>>32-e}function Ft(t){const e=[1518500249,1859775393,2400959708,3395469782],r=[1732584193,4023233417,2562383102,271733878,3285377520];if(typeof t=="string"){const f=unescape(encodeURIComponent(t));t=[];for(let o=0;o>>0;x=g,g=m,m=it(_,30)>>>0,_=h,h=I}r[0]=r[0]+h>>>0,r[1]=r[1]+_>>>0,r[2]=r[2]+m>>>0,r[3]=r[3]+g>>>0,r[4]=r[4]+x>>>0}return[r[0]>>24&255,r[0]>>16&255,r[0]>>8&255,r[0]&255,r[1]>>24&255,r[1]>>16&255,r[1]>>8&255,r[1]&255,r[2]>>24&255,r[2]>>16&255,r[2]>>8&255,r[2]&255,r[3]>>24&255,r[3]>>16&255,r[3]>>8&255,r[3]&255,r[4]>>24&255,r[4]>>16&255,r[4]>>8&255,r[4]&255]}const Wt=Yt("v5",80,Ft);var at=function(){var t=function(S,a,n,c){for(n=n||{},c=S.length;c--;n[S[c]]=a);return n},e=[6,8,10,20,22,24,26,27,28],r=[1,10],u=[1,11],l=[1,12],p=[1,13],f=[1,14],o=[1,15],h=[1,21],_=[1,22],m=[1,23],g=[1,24],x=[1,25],y=[6,8,10,13,15,18,19,20,22,24,26,27,28,41,42,43,44,45],N=[1,34],I=[27,28,46,47],F=[41,42,43,44,45],W=[17,34],C=[1,54],T=[1,53],M=[17,34,36,38],R={trace:function(){},yy:{},symbols_:{error:2,start:3,ER_DIAGRAM:4,document:5,EOF:6,line:7,SPACE:8,statement:9,NEWLINE:10,entityName:11,relSpec:12,":":13,role:14,BLOCK_START:15,attributes:16,BLOCK_STOP:17,SQS:18,SQE:19,title:20,title_value:21,acc_title:22,acc_title_value:23,acc_descr:24,acc_descr_value:25,acc_descr_multiline_value:26,ALPHANUM:27,ENTITY_NAME:28,attribute:29,attributeType:30,attributeName:31,attributeKeyTypeList:32,attributeComment:33,ATTRIBUTE_WORD:34,attributeKeyType:35,COMMA:36,ATTRIBUTE_KEY:37,COMMENT:38,cardinality:39,relType:40,ZERO_OR_ONE:41,ZERO_OR_MORE:42,ONE_OR_MORE:43,ONLY_ONE:44,MD_PARENT:45,NON_IDENTIFYING:46,IDENTIFYING:47,WORD:48,$accept:0,$end:1},terminals_:{2:"error",4:"ER_DIAGRAM",6:"EOF",8:"SPACE",10:"NEWLINE",13:":",15:"BLOCK_START",17:"BLOCK_STOP",18:"SQS",19:"SQE",20:"title",21:"title_value",22:"acc_title",23:"acc_title_value",24:"acc_descr",25:"acc_descr_value",26:"acc_descr_multiline_value",27:"ALPHANUM",28:"ENTITY_NAME",34:"ATTRIBUTE_WORD",36:"COMMA",37:"ATTRIBUTE_KEY",38:"COMMENT",41:"ZERO_OR_ONE",42:"ZERO_OR_MORE",43:"ONE_OR_MORE",44:"ONLY_ONE",45:"MD_PARENT",46:"NON_IDENTIFYING",47:"IDENTIFYING",48:"WORD"},productions_:[0,[3,3],[5,0],[5,2],[7,2],[7,1],[7,1],[7,1],[9,5],[9,4],[9,3],[9,1],[9,7],[9,6],[9,4],[9,2],[9,2],[9,2],[9,1],[11,1],[11,1],[16,1],[16,2],[29,2],[29,3],[29,3],[29,4],[30,1],[31,1],[32,1],[32,3],[35,1],[33,1],[12,3],[39,1],[39,1],[39,1],[39,1],[39,1],[40,1],[40,1],[14,1],[14,1],[14,1]],performAction:function(a,n,c,d,E,i,K){var s=i.length-1;switch(E){case 1:break;case 2:this.$=[];break;case 3:i[s-1].push(i[s]),this.$=i[s-1];break;case 4:case 5:this.$=i[s];break;case 6:case 7:this.$=[];break;case 8:d.addEntity(i[s-4]),d.addEntity(i[s-2]),d.addRelationship(i[s-4],i[s],i[s-2],i[s-3]);break;case 9:d.addEntity(i[s-3]),d.addAttributes(i[s-3],i[s-1]);break;case 10:d.addEntity(i[s-2]);break;case 11:d.addEntity(i[s]);break;case 12:d.addEntity(i[s-6],i[s-4]),d.addAttributes(i[s-6],i[s-1]);break;case 13:d.addEntity(i[s-5],i[s-3]);break;case 14:d.addEntity(i[s-3],i[s-1]);break;case 15:case 16:this.$=i[s].trim(),d.setAccTitle(this.$);break;case 17:case 18:this.$=i[s].trim(),d.setAccDescription(this.$);break;case 19:case 43:this.$=i[s];break;case 20:case 41:case 42:this.$=i[s].replace(/"/g,"");break;case 21:case 29:this.$=[i[s]];break;case 22:i[s].push(i[s-1]),this.$=i[s];break;case 23:this.$={attributeType:i[s-1],attributeName:i[s]};break;case 24:this.$={attributeType:i[s-2],attributeName:i[s-1],attributeKeyTypeList:i[s]};break;case 25:this.$={attributeType:i[s-2],attributeName:i[s-1],attributeComment:i[s]};break;case 26:this.$={attributeType:i[s-3],attributeName:i[s-2],attributeKeyTypeList:i[s-1],attributeComment:i[s]};break;case 27:case 28:case 31:this.$=i[s];break;case 30:i[s-2].push(i[s]),this.$=i[s-2];break;case 32:this.$=i[s].replace(/"/g,"");break;case 33:this.$={cardA:i[s],relType:i[s-1],cardB:i[s-2]};break;case 34:this.$=d.Cardinality.ZERO_OR_ONE;break;case 35:this.$=d.Cardinality.ZERO_OR_MORE;break;case 36:this.$=d.Cardinality.ONE_OR_MORE;break;case 37:this.$=d.Cardinality.ONLY_ONE;break;case 38:this.$=d.Cardinality.MD_PARENT;break;case 39:this.$=d.Identification.NON_IDENTIFYING;break;case 40:this.$=d.Identification.IDENTIFYING;break}},table:[{3:1,4:[1,2]},{1:[3]},t(e,[2,2],{5:3}),{6:[1,4],7:5,8:[1,6],9:7,10:[1,8],11:9,20:r,22:u,24:l,26:p,27:f,28:o},t(e,[2,7],{1:[2,1]}),t(e,[2,3]),{9:16,11:9,20:r,22:u,24:l,26:p,27:f,28:o},t(e,[2,5]),t(e,[2,6]),t(e,[2,11],{12:17,39:20,15:[1,18],18:[1,19],41:h,42:_,43:m,44:g,45:x}),{21:[1,26]},{23:[1,27]},{25:[1,28]},t(e,[2,18]),t(y,[2,19]),t(y,[2,20]),t(e,[2,4]),{11:29,27:f,28:o},{16:30,17:[1,31],29:32,30:33,34:N},{11:35,27:f,28:o},{40:36,46:[1,37],47:[1,38]},t(I,[2,34]),t(I,[2,35]),t(I,[2,36]),t(I,[2,37]),t(I,[2,38]),t(e,[2,15]),t(e,[2,16]),t(e,[2,17]),{13:[1,39]},{17:[1,40]},t(e,[2,10]),{16:41,17:[2,21],29:32,30:33,34:N},{31:42,34:[1,43]},{34:[2,27]},{19:[1,44]},{39:45,41:h,42:_,43:m,44:g,45:x},t(F,[2,39]),t(F,[2,40]),{14:46,27:[1,49],28:[1,48],48:[1,47]},t(e,[2,9]),{17:[2,22]},t(W,[2,23],{32:50,33:51,35:52,37:C,38:T}),t([17,34,37,38],[2,28]),t(e,[2,14],{15:[1,55]}),t([27,28],[2,33]),t(e,[2,8]),t(e,[2,41]),t(e,[2,42]),t(e,[2,43]),t(W,[2,24],{33:56,36:[1,57],38:T}),t(W,[2,25]),t(M,[2,29]),t(W,[2,32]),t(M,[2,31]),{16:58,17:[1,59],29:32,30:33,34:N},t(W,[2,26]),{35:60,37:C},{17:[1,61]},t(e,[2,13]),t(M,[2,30]),t(e,[2,12])],defaultActions:{34:[2,27],41:[2,22]},parseError:function(a,n){if(n.recoverable)this.trace(a);else{var c=new Error(a);throw c.hash=n,c}},parse:function(a){var n=this,c=[0],d=[],E=[null],i=[],K=this.table,s="",Q=0,st=0,ft=2,ot=1,yt=i.slice.call(arguments,1),b=Object.create(this.lexer),z={yy:{}};for(var J in this.yy)Object.prototype.hasOwnProperty.call(this.yy,J)&&(z.yy[J]=this.yy[J]);b.setInput(a,z.yy),z.yy.lexer=b,z.yy.parser=this,typeof b.yylloc>"u"&&(b.yylloc={});var $=b.yylloc;i.push($);var pt=b.options&&b.options.ranges;typeof z.yy.parseError=="function"?this.parseError=z.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function _t(){var Y;return Y=d.pop()||b.lex()||ot,typeof Y!="number"&&(Y instanceof Array&&(d=Y,Y=d.pop()),Y=n.symbols_[Y]||Y),Y}for(var w,H,D,tt,G={},j,P,lt,q;;){if(H=c[c.length-1],this.defaultActions[H]?D=this.defaultActions[H]:((w===null||typeof w>"u")&&(w=_t()),D=K[H]&&K[H][w]),typeof D>"u"||!D.length||!D[0]){var et="";q=[];for(j in K[H])this.terminals_[j]&&j>ft&&q.push("'"+this.terminals_[j]+"'");b.showPosition?et="Parse error on line "+(Q+1)+`: +`+b.showPosition()+` +Expecting `+q.join(", ")+", got '"+(this.terminals_[w]||w)+"'":et="Parse error on line "+(Q+1)+": Unexpected "+(w==ot?"end of input":"'"+(this.terminals_[w]||w)+"'"),this.parseError(et,{text:b.match,token:this.terminals_[w]||w,line:b.yylineno,loc:$,expected:q})}if(D[0]instanceof Array&&D.length>1)throw new Error("Parse Error: multiple actions possible at state: "+H+", token: "+w);switch(D[0]){case 1:c.push(w),E.push(b.yytext),i.push(b.yylloc),c.push(D[1]),w=null,st=b.yyleng,s=b.yytext,Q=b.yylineno,$=b.yylloc;break;case 2:if(P=this.productions_[D[1]][1],G.$=E[E.length-P],G._$={first_line:i[i.length-(P||1)].first_line,last_line:i[i.length-1].last_line,first_column:i[i.length-(P||1)].first_column,last_column:i[i.length-1].last_column},pt&&(G._$.range=[i[i.length-(P||1)].range[0],i[i.length-1].range[1]]),tt=this.performAction.apply(G,[s,st,Q,z.yy,D[1],E,i].concat(yt)),typeof tt<"u")return tt;P&&(c=c.slice(0,-1*P*2),E=E.slice(0,-1*P),i=i.slice(0,-1*P)),c.push(this.productions_[D[1]][0]),E.push(G.$),i.push(G._$),lt=K[c[c.length-2]][c[c.length-1]],c.push(lt);break;case 3:return!0}}return!0}},O=function(){var S={EOF:1,parseError:function(n,c){if(this.yy.parser)this.yy.parser.parseError(n,c);else throw new Error(n)},setInput:function(a,n){return this.yy=n||this.yy||{},this._input=a,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var a=this._input[0];this.yytext+=a,this.yyleng++,this.offset++,this.match+=a,this.matched+=a;var n=a.match(/(?:\r\n?|\n).*/g);return n?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),a},unput:function(a){var n=a.length,c=a.split(/(?:\r\n?|\n)/g);this._input=a+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-n),this.offset-=n;var d=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),c.length-1&&(this.yylineno-=c.length-1);var E=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:c?(c.length===d.length?this.yylloc.first_column:0)+d[d.length-c.length].length-c[0].length:this.yylloc.first_column-n},this.options.ranges&&(this.yylloc.range=[E[0],E[0]+this.yyleng-n]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true). +`+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},less:function(a){this.unput(this.match.slice(a))},pastInput:function(){var a=this.matched.substr(0,this.matched.length-this.match.length);return(a.length>20?"...":"")+a.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var a=this.match;return a.length<20&&(a+=this._input.substr(0,20-a.length)),(a.substr(0,20)+(a.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var a=this.pastInput(),n=new Array(a.length+1).join("-");return a+this.upcomingInput()+` +`+n+"^"},test_match:function(a,n){var c,d,E;if(this.options.backtrack_lexer&&(E={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(E.yylloc.range=this.yylloc.range.slice(0))),d=a[0].match(/(?:\r\n?|\n).*/g),d&&(this.yylineno+=d.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:d?d[d.length-1].length-d[d.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+a[0].length},this.yytext+=a[0],this.match+=a[0],this.matches=a,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(a[0].length),this.matched+=a[0],c=this.performAction.call(this,this.yy,this,n,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),c)return c;if(this._backtrack){for(var i in E)this[i]=E[i];return!1}return!1},next:function(){if(this.done)return this.EOF;this._input||(this.done=!0);var a,n,c,d;this._more||(this.yytext="",this.match="");for(var E=this._currentRules(),i=0;in[0].length)){if(n=c,d=i,this.options.backtrack_lexer){if(a=this.test_match(c,E[i]),a!==!1)return a;if(this._backtrack){n=!1;continue}else return!1}else if(!this.options.flex)break}return n?(a=this.test_match(n,E[d]),a!==!1?a:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text. +`+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var n=this.next();return n||this.lex()},begin:function(n){this.conditionStack.push(n)},popState:function(){var n=this.conditionStack.length-1;return n>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(n){return n=this.conditionStack.length-1-Math.abs(n||0),n>=0?this.conditionStack[n]:"INITIAL"},pushState:function(n){this.begin(n)},stateStackSize:function(){return this.conditionStack.length},options:{"case-insensitive":!0},performAction:function(n,c,d,E){switch(d){case 0:return this.begin("acc_title"),22;case 1:return this.popState(),"acc_title_value";case 2:return this.begin("acc_descr"),24;case 3:return this.popState(),"acc_descr_value";case 4:this.begin("acc_descr_multiline");break;case 5:this.popState();break;case 6:return"acc_descr_multiline_value";case 7:return 10;case 8:break;case 9:return 8;case 10:return 28;case 11:return 48;case 12:return 4;case 13:return this.begin("block"),15;case 14:return 36;case 15:break;case 16:return 37;case 17:return 34;case 18:return 34;case 19:return 38;case 20:break;case 21:return this.popState(),17;case 22:return c.yytext[0];case 23:return 18;case 24:return 19;case 25:return 41;case 26:return 43;case 27:return 43;case 28:return 43;case 29:return 41;case 30:return 41;case 31:return 42;case 32:return 42;case 33:return 42;case 34:return 42;case 35:return 42;case 36:return 43;case 37:return 42;case 38:return 43;case 39:return 44;case 40:return 44;case 41:return 44;case 42:return 44;case 43:return 41;case 44:return 42;case 45:return 43;case 46:return 45;case 47:return 46;case 48:return 47;case 49:return 47;case 50:return 46;case 51:return 46;case 52:return 46;case 53:return 27;case 54:return c.yytext[0];case 55:return 6}},rules:[/^(?:accTitle\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*\{\s*)/i,/^(?:[\}])/i,/^(?:[^\}]*)/i,/^(?:[\n]+)/i,/^(?:\s+)/i,/^(?:[\s]+)/i,/^(?:"[^"%\r\n\v\b\\]+")/i,/^(?:"[^"]*")/i,/^(?:erDiagram\b)/i,/^(?:\{)/i,/^(?:,)/i,/^(?:\s+)/i,/^(?:\b((?:PK)|(?:FK)|(?:UK))\b)/i,/^(?:(.*?)[~](.*?)*[~])/i,/^(?:[\*A-Za-z_][A-Za-z0-9\-_\[\]\(\)]*)/i,/^(?:"[^"]*")/i,/^(?:[\n]+)/i,/^(?:\})/i,/^(?:.)/i,/^(?:\[)/i,/^(?:\])/i,/^(?:one or zero\b)/i,/^(?:one or more\b)/i,/^(?:one or many\b)/i,/^(?:1\+)/i,/^(?:\|o\b)/i,/^(?:zero or one\b)/i,/^(?:zero or more\b)/i,/^(?:zero or many\b)/i,/^(?:0\+)/i,/^(?:\}o\b)/i,/^(?:many\(0\))/i,/^(?:many\(1\))/i,/^(?:many\b)/i,/^(?:\}\|)/i,/^(?:one\b)/i,/^(?:only one\b)/i,/^(?:1\b)/i,/^(?:\|\|)/i,/^(?:o\|)/i,/^(?:o\{)/i,/^(?:\|\{)/i,/^(?:\s*u\b)/i,/^(?:\.\.)/i,/^(?:--)/i,/^(?:to\b)/i,/^(?:optionally to\b)/i,/^(?:\.-)/i,/^(?:-\.)/i,/^(?:[A-Za-z_][A-Za-z0-9\-_]*)/i,/^(?:.)/i,/^(?:$)/i],conditions:{acc_descr_multiline:{rules:[5,6],inclusive:!1},acc_descr:{rules:[3],inclusive:!1},acc_title:{rules:[1],inclusive:!1},block:{rules:[14,15,16,17,18,19,20,21,22],inclusive:!1},INITIAL:{rules:[0,2,4,7,8,9,10,11,12,13,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55],inclusive:!0}}};return S}();R.lexer=O;function v(){this.yy={}}return v.prototype=R,R.Parser=v,new v}();at.parser=at;const Ut=at;let U={},nt=[];const zt={ZERO_OR_ONE:"ZERO_OR_ONE",ZERO_OR_MORE:"ZERO_OR_MORE",ONE_OR_MORE:"ONE_OR_MORE",ONLY_ONE:"ONLY_ONE",MD_PARENT:"MD_PARENT"},Ht={NON_IDENTIFYING:"NON_IDENTIFYING",IDENTIFYING:"IDENTIFYING"},dt=function(t,e=void 0){return U[t]===void 0?(U[t]={attributes:[],alias:e},V.info("Added new entity :",t)):U[t]&&!U[t].alias&&e&&(U[t].alias=e,V.info(`Add alias '${e}' to entity '${t}'`)),U[t]},Gt=()=>U,Kt=function(t,e){let r=dt(t),u;for(u=e.length-1;u>=0;u--)r.attributes.push(e[u]),V.debug("Added attribute ",e[u].attributeName)},Vt=function(t,e,r,u){let l={entityA:t,roleA:e,entityB:r,relSpec:u};nt.push(l),V.debug("Added new relationship :",l)},Xt=()=>nt,Qt=function(){U={},nt=[],Ot()},jt={Cardinality:zt,Identification:Ht,getConfig:()=>Z().er,addEntity:dt,addAttributes:Kt,getEntities:Gt,addRelationship:Vt,getRelationships:Xt,clear:Qt,setAccTitle:Et,getAccTitle:mt,setAccDescription:gt,getAccDescription:kt,setDiagramTitle:xt,getDiagramTitle:Rt},L={ONLY_ONE_START:"ONLY_ONE_START",ONLY_ONE_END:"ONLY_ONE_END",ZERO_OR_ONE_START:"ZERO_OR_ONE_START",ZERO_OR_ONE_END:"ZERO_OR_ONE_END",ONE_OR_MORE_START:"ONE_OR_MORE_START",ONE_OR_MORE_END:"ONE_OR_MORE_END",ZERO_OR_MORE_START:"ZERO_OR_MORE_START",ZERO_OR_MORE_END:"ZERO_OR_MORE_END",MD_PARENT_END:"MD_PARENT_END",MD_PARENT_START:"MD_PARENT_START"},qt=function(t,e){let r;t.append("defs").append("marker").attr("id",L.MD_PARENT_START).attr("refX",0).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L1,7 L9,1 Z"),t.append("defs").append("marker").attr("id",L.MD_PARENT_END).attr("refX",19).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L1,7 L9,1 Z"),t.append("defs").append("marker").attr("id",L.ONLY_ONE_START).attr("refX",0).attr("refY",9).attr("markerWidth",18).attr("markerHeight",18).attr("orient","auto").append("path").attr("stroke",e.stroke).attr("fill","none").attr("d","M9,0 L9,18 M15,0 L15,18"),t.append("defs").append("marker").attr("id",L.ONLY_ONE_END).attr("refX",18).attr("refY",9).attr("markerWidth",18).attr("markerHeight",18).attr("orient","auto").append("path").attr("stroke",e.stroke).attr("fill","none").attr("d","M3,0 L3,18 M9,0 L9,18"),r=t.append("defs").append("marker").attr("id",L.ZERO_OR_ONE_START).attr("refX",0).attr("refY",9).attr("markerWidth",30).attr("markerHeight",18).attr("orient","auto"),r.append("circle").attr("stroke",e.stroke).attr("fill","white").attr("cx",21).attr("cy",9).attr("r",6),r.append("path").attr("stroke",e.stroke).attr("fill","none").attr("d","M9,0 L9,18"),r=t.append("defs").append("marker").attr("id",L.ZERO_OR_ONE_END).attr("refX",30).attr("refY",9).attr("markerWidth",30).attr("markerHeight",18).attr("orient","auto"),r.append("circle").attr("stroke",e.stroke).attr("fill","white").attr("cx",9).attr("cy",9).attr("r",6),r.append("path").attr("stroke",e.stroke).attr("fill","none").attr("d","M21,0 L21,18"),t.append("defs").append("marker").attr("id",L.ONE_OR_MORE_START).attr("refX",18).attr("refY",18).attr("markerWidth",45).attr("markerHeight",36).attr("orient","auto").append("path").attr("stroke",e.stroke).attr("fill","none").attr("d","M0,18 Q 18,0 36,18 Q 18,36 0,18 M42,9 L42,27"),t.append("defs").append("marker").attr("id",L.ONE_OR_MORE_END).attr("refX",27).attr("refY",18).attr("markerWidth",45).attr("markerHeight",36).attr("orient","auto").append("path").attr("stroke",e.stroke).attr("fill","none").attr("d","M3,9 L3,27 M9,18 Q27,0 45,18 Q27,36 9,18"),r=t.append("defs").append("marker").attr("id",L.ZERO_OR_MORE_START).attr("refX",18).attr("refY",18).attr("markerWidth",57).attr("markerHeight",36).attr("orient","auto"),r.append("circle").attr("stroke",e.stroke).attr("fill","white").attr("cx",48).attr("cy",18).attr("r",6),r.append("path").attr("stroke",e.stroke).attr("fill","none").attr("d","M0,18 Q18,0 36,18 Q18,36 0,18"),r=t.append("defs").append("marker").attr("id",L.ZERO_OR_MORE_END).attr("refX",39).attr("refY",18).attr("markerWidth",57).attr("markerHeight",36).attr("orient","auto"),r.append("circle").attr("stroke",e.stroke).attr("fill","white").attr("cx",9).attr("cy",18).attr("r",6),r.append("path").attr("stroke",e.stroke).attr("fill","none").attr("d","M21,18 Q39,0 57,18 Q39,36 21,18")},B={ERMarkers:L,insertMarkers:qt},Jt=/[^\dA-Za-z](\W)*/g;let k={},X=new Map;const $t=function(t){const e=Object.keys(t);for(const r of e)k[r]=t[r]},te=(t,e,r)=>{const u=k.entityPadding/3,l=k.entityPadding/3,p=k.fontSize*.85,f=e.node().getBBox(),o=[];let h=!1,_=!1,m=0,g=0,x=0,y=0,N=f.height+u*2,I=1;r.forEach(T=>{T.attributeKeyTypeList!==void 0&&T.attributeKeyTypeList.length>0&&(h=!0),T.attributeComment!==void 0&&(_=!0)}),r.forEach(T=>{const M=`${e.node().id}-attr-${I}`;let R=0;const O=At(T.attributeType),v=t.append("text").classed("er entityLabel",!0).attr("id",`${M}-type`).attr("x",0).attr("y",0).style("dominant-baseline","middle").style("text-anchor","left").style("font-family",Z().fontFamily).style("font-size",p+"px").text(O),S=t.append("text").classed("er entityLabel",!0).attr("id",`${M}-name`).attr("x",0).attr("y",0).style("dominant-baseline","middle").style("text-anchor","left").style("font-family",Z().fontFamily).style("font-size",p+"px").text(T.attributeName),a={};a.tn=v,a.nn=S;const n=v.node().getBBox(),c=S.node().getBBox();if(m=Math.max(m,n.width),g=Math.max(g,c.width),R=Math.max(n.height,c.height),h){const d=T.attributeKeyTypeList!==void 0?T.attributeKeyTypeList.join(","):"",E=t.append("text").classed("er entityLabel",!0).attr("id",`${M}-key`).attr("x",0).attr("y",0).style("dominant-baseline","middle").style("text-anchor","left").style("font-family",Z().fontFamily).style("font-size",p+"px").text(d);a.kn=E;const i=E.node().getBBox();x=Math.max(x,i.width),R=Math.max(R,i.height)}if(_){const d=t.append("text").classed("er entityLabel",!0).attr("id",`${M}-comment`).attr("x",0).attr("y",0).style("dominant-baseline","middle").style("text-anchor","left").style("font-family",Z().fontFamily).style("font-size",p+"px").text(T.attributeComment||"");a.cn=d;const E=d.node().getBBox();y=Math.max(y,E.width),R=Math.max(R,E.height)}a.height=R,o.push(a),N+=R+u*2,I+=1});let F=4;h&&(F+=2),_&&(F+=2);const W=m+g+x+y,C={width:Math.max(k.minEntityWidth,Math.max(f.width+k.entityPadding*2,W+l*F)),height:r.length>0?N:Math.max(k.minEntityHeight,f.height+k.entityPadding*2)};if(r.length>0){const T=Math.max(0,(C.width-W-l*F)/(F/2));e.attr("transform","translate("+C.width/2+","+(u+f.height/2)+")");let M=f.height+u*2,R="attributeBoxOdd";o.forEach(O=>{const v=M+u+O.height/2;O.tn.attr("transform","translate("+l+","+v+")");const S=t.insert("rect","#"+O.tn.node().id).classed(`er ${R}`,!0).attr("x",0).attr("y",M).attr("width",m+l*2+T).attr("height",O.height+u*2),a=parseFloat(S.attr("x"))+parseFloat(S.attr("width"));O.nn.attr("transform","translate("+(a+l)+","+v+")");const n=t.insert("rect","#"+O.nn.node().id).classed(`er ${R}`,!0).attr("x",a).attr("y",M).attr("width",g+l*2+T).attr("height",O.height+u*2);let c=parseFloat(n.attr("x"))+parseFloat(n.attr("width"));if(h){O.kn.attr("transform","translate("+(c+l)+","+v+")");const d=t.insert("rect","#"+O.kn.node().id).classed(`er ${R}`,!0).attr("x",c).attr("y",M).attr("width",x+l*2+T).attr("height",O.height+u*2);c=parseFloat(d.attr("x"))+parseFloat(d.attr("width"))}_&&(O.cn.attr("transform","translate("+(c+l)+","+v+")"),t.insert("rect","#"+O.cn.node().id).classed(`er ${R}`,"true").attr("x",c).attr("y",M).attr("width",y+l*2+T).attr("height",O.height+u*2)),M+=O.height+u*2,R=R==="attributeBoxOdd"?"attributeBoxEven":"attributeBoxOdd"})}else C.height=Math.max(k.minEntityHeight,N),e.attr("transform","translate("+C.width/2+","+C.height/2+")");return C},ee=function(t,e,r){const u=Object.keys(e);let l;return u.forEach(function(p){const f=oe(p,"entity");X.set(p,f);const o=t.append("g").attr("id",f);l=l===void 0?f:l;const h="text-"+f,_=o.append("text").classed("er entityLabel",!0).attr("id",h).attr("x",0).attr("y",0).style("dominant-baseline","middle").style("text-anchor","middle").style("font-family",Z().fontFamily).style("font-size",k.fontSize+"px").text(e[p].alias??p),{width:m,height:g}=te(o,_,e[p].attributes),y=o.insert("rect","#"+h).classed("er entityBox",!0).attr("x",0).attr("y",0).attr("width",m).attr("height",g).node().getBBox();r.setNode(f,{width:y.width,height:y.height,shape:"rect",id:f})}),l},re=function(t,e){e.nodes().forEach(function(r){r!==void 0&&e.node(r)!==void 0&&t.select("#"+r).attr("transform","translate("+(e.node(r).x-e.node(r).width/2)+","+(e.node(r).y-e.node(r).height/2)+" )")})},ut=function(t){return(t.entityA+t.roleA+t.entityB).replace(/\s/g,"")},ie=function(t,e){return t.forEach(function(r){e.setEdge(X.get(r.entityA),X.get(r.entityB),{relationship:r},ut(r))}),t};let ct=0;const ae=function(t,e,r,u,l){ct++;const p=r.edge(X.get(e.entityA),X.get(e.entityB),ut(e)),f=wt().x(function(N){return N.x}).y(function(N){return N.y}).curve(Tt),o=t.insert("path","#"+u).classed("er relationshipLine",!0).attr("d",f(p.points)).style("stroke",k.stroke).style("fill","none");e.relSpec.relType===l.db.Identification.NON_IDENTIFYING&&o.attr("stroke-dasharray","8,8");let h="";switch(k.arrowMarkerAbsolute&&(h=window.location.protocol+"//"+window.location.host+window.location.pathname+window.location.search,h=h.replace(/\(/g,"\\("),h=h.replace(/\)/g,"\\)")),e.relSpec.cardA){case l.db.Cardinality.ZERO_OR_ONE:o.attr("marker-end","url("+h+"#"+B.ERMarkers.ZERO_OR_ONE_END+")");break;case l.db.Cardinality.ZERO_OR_MORE:o.attr("marker-end","url("+h+"#"+B.ERMarkers.ZERO_OR_MORE_END+")");break;case l.db.Cardinality.ONE_OR_MORE:o.attr("marker-end","url("+h+"#"+B.ERMarkers.ONE_OR_MORE_END+")");break;case l.db.Cardinality.ONLY_ONE:o.attr("marker-end","url("+h+"#"+B.ERMarkers.ONLY_ONE_END+")");break;case l.db.Cardinality.MD_PARENT:o.attr("marker-end","url("+h+"#"+B.ERMarkers.MD_PARENT_END+")");break}switch(e.relSpec.cardB){case l.db.Cardinality.ZERO_OR_ONE:o.attr("marker-start","url("+h+"#"+B.ERMarkers.ZERO_OR_ONE_START+")");break;case l.db.Cardinality.ZERO_OR_MORE:o.attr("marker-start","url("+h+"#"+B.ERMarkers.ZERO_OR_MORE_START+")");break;case l.db.Cardinality.ONE_OR_MORE:o.attr("marker-start","url("+h+"#"+B.ERMarkers.ONE_OR_MORE_START+")");break;case l.db.Cardinality.ONLY_ONE:o.attr("marker-start","url("+h+"#"+B.ERMarkers.ONLY_ONE_START+")");break;case l.db.Cardinality.MD_PARENT:o.attr("marker-start","url("+h+"#"+B.ERMarkers.MD_PARENT_START+")");break}const _=o.node().getTotalLength(),m=o.node().getPointAtLength(_*.5),g="rel"+ct,y=t.append("text").classed("er relationshipLabel",!0).attr("id",g).attr("x",m.x).attr("y",m.y).style("text-anchor","middle").style("dominant-baseline","middle").style("font-family",Z().fontFamily).style("font-size",k.fontSize+"px").text(e.roleA).node().getBBox();t.insert("rect","#"+g).classed("er relationshipLabelBox",!0).attr("x",m.x-y.width/2).attr("y",m.y-y.height/2).attr("width",y.width).attr("height",y.height)},ne=function(t,e,r,u){k=Z().er,V.info("Drawing ER diagram");const l=Z().securityLevel;let p;l==="sandbox"&&(p=rt("#i"+e));const o=(l==="sandbox"?rt(p.nodes()[0].contentDocument.body):rt("body")).select(`[id='${e}']`);B.insertMarkers(o,k);let h;h=new Mt({multigraph:!0,directed:!0,compound:!1}).setGraph({rankdir:k.layoutDirection,marginx:20,marginy:20,nodesep:100,edgesep:100,ranksep:100}).setDefaultEdgeLabel(function(){return{}});const _=ee(o,u.db.getEntities(),h),m=ie(u.db.getRelationships(),h);St(h),re(o,h),m.forEach(function(I){ae(o,I,h,_,u)});const g=k.diagramPadding;bt.insertTitle(o,"entityTitleText",k.titleTopMargin,u.db.getDiagramTitle());const x=o.node().getBBox(),y=x.width+g*2,N=x.height+g*2;Nt(o,N,y,k.useMaxWidth),o.attr("viewBox",`${x.x-g} ${x.y-g} ${y} ${N}`)},se="28e9f9db-3c8d-5aa5-9faf-44286ae5937c";function oe(t="",e=""){const r=t.replace(Jt,"");return`${ht(e)}${ht(r)}${Wt(t,se)}`}function ht(t=""){return t.length>0?`${t}-`:""}const le={setConf:$t,draw:ne},ce=t=>` + .entityBox { + fill: ${t.mainBkg}; + stroke: ${t.nodeBorder}; + } + + .attributeBoxOdd { + fill: ${t.attributeBackgroundColorOdd}; + stroke: ${t.nodeBorder}; + } + + .attributeBoxEven { + fill: ${t.attributeBackgroundColorEven}; + stroke: ${t.nodeBorder}; + } + + .relationshipLabelBox { + fill: ${t.tertiaryColor}; + opacity: 0.7; + background-color: ${t.tertiaryColor}; + rect { + opacity: 0.5; + } + } + + .relationshipLine { + stroke: ${t.lineColor}; + } + + .entityTitleText { + text-anchor: middle; + font-size: 18px; + fill: ${t.textColor}; + } + #MD_PARENT_START { + fill: #f5f5f5 !important; + stroke: ${t.lineColor} !important; + stroke-width: 1; + } + #MD_PARENT_END { + fill: #f5f5f5 !important; + stroke: ${t.lineColor} !important; + stroke-width: 1; + } + +`,he=ce,me={parser:Ut,db:jt,renderer:le,styles:he};export{me as diagram}; diff --git a/assets/fa-brands-400-CEJbCg16.woff b/assets/fa-brands-400-CEJbCg16.woff new file mode 100644 index 00000000..3375bef0 Binary files /dev/null and b/assets/fa-brands-400-CEJbCg16.woff differ diff --git a/assets/fa-brands-400-CSYNqBb_.ttf b/assets/fa-brands-400-CSYNqBb_.ttf new file mode 100644 index 00000000..8d75dedd Binary files /dev/null and b/assets/fa-brands-400-CSYNqBb_.ttf differ diff --git a/assets/fa-brands-400-DnkPfk3o.eot b/assets/fa-brands-400-DnkPfk3o.eot new file mode 100644 index 00000000..cba6c6cc Binary files /dev/null and b/assets/fa-brands-400-DnkPfk3o.eot differ diff --git a/assets/fa-brands-400-UxlILjvJ.woff2 b/assets/fa-brands-400-UxlILjvJ.woff2 new file mode 100644 index 00000000..402f81c0 Binary files /dev/null and b/assets/fa-brands-400-UxlILjvJ.woff2 differ diff --git a/assets/fa-brands-400-cH1MgKbP.svg b/assets/fa-brands-400-cH1MgKbP.svg new file mode 100644 index 00000000..b9881a43 --- /dev/null +++ b/assets/fa-brands-400-cH1MgKbP.svg @@ -0,0 +1,3717 @@ + + + + +Created by FontForge 20201107 at Wed Aug 4 12:25:29 2021 + By Robert Madole +Copyright (c) Font Awesome + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/assets/fa-regular-400-BhTwtT8w.eot b/assets/fa-regular-400-BhTwtT8w.eot new file mode 100644 index 00000000..a4e59893 Binary files /dev/null and b/assets/fa-regular-400-BhTwtT8w.eot differ diff --git a/assets/fa-regular-400-D1vz6WBx.ttf b/assets/fa-regular-400-D1vz6WBx.ttf new file mode 100644 index 00000000..7157aafb Binary files /dev/null and b/assets/fa-regular-400-D1vz6WBx.ttf differ diff --git a/assets/fa-regular-400-DFnMcJPd.woff b/assets/fa-regular-400-DFnMcJPd.woff new file mode 100644 index 00000000..ad077c6b Binary files /dev/null and b/assets/fa-regular-400-DFnMcJPd.woff differ diff --git a/assets/fa-regular-400-DGzu1beS.woff2 b/assets/fa-regular-400-DGzu1beS.woff2 new file mode 100644 index 00000000..56328948 Binary files /dev/null and b/assets/fa-regular-400-DGzu1beS.woff2 differ diff --git a/assets/fa-regular-400-gwj8Pxq-.svg b/assets/fa-regular-400-gwj8Pxq-.svg new file mode 100644 index 00000000..463af27c --- /dev/null +++ b/assets/fa-regular-400-gwj8Pxq-.svg @@ -0,0 +1,801 @@ + + + + +Created by FontForge 20201107 at Wed Aug 4 12:25:29 2021 + By Robert Madole +Copyright (c) Font Awesome + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/assets/fa-solid-900-B4ZZ7kfP.svg b/assets/fa-solid-900-B4ZZ7kfP.svg new file mode 100644 index 00000000..00296e95 --- /dev/null +++ b/assets/fa-solid-900-B4ZZ7kfP.svg @@ -0,0 +1,5034 @@ + + + + +Created by FontForge 20201107 at Wed Aug 4 12:25:29 2021 + By Robert Madole +Copyright (c) Font Awesome + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/assets/fa-solid-900-B6Axprfb.eot b/assets/fa-solid-900-B6Axprfb.eot new file mode 100644 index 00000000..e9941719 Binary files /dev/null and b/assets/fa-solid-900-B6Axprfb.eot differ diff --git a/assets/fa-solid-900-BUswJgRo.woff2 b/assets/fa-solid-900-BUswJgRo.woff2 new file mode 100644 index 00000000..2217164f Binary files /dev/null and b/assets/fa-solid-900-BUswJgRo.woff2 differ diff --git a/assets/fa-solid-900-DOXgCApm.woff b/assets/fa-solid-900-DOXgCApm.woff new file mode 100644 index 00000000..23ee6634 Binary files /dev/null and b/assets/fa-solid-900-DOXgCApm.woff differ diff --git a/assets/fa-solid-900-mxuxnBEa.ttf b/assets/fa-solid-900-mxuxnBEa.ttf new file mode 100644 index 00000000..25abf389 Binary files /dev/null and b/assets/fa-solid-900-mxuxnBEa.ttf differ diff --git a/assets/flowDb-956e92f1-BNSiZQGL.js b/assets/flowDb-956e92f1-BNSiZQGL.js new file mode 100644 index 00000000..1d4fe3ff --- /dev/null +++ b/assets/flowDb-956e92f1-BNSiZQGL.js @@ -0,0 +1,10 @@ +import{c as et,v as me,s as ye,g as ve,a as Ve,b as Le,x as Ie,y as Re,l as J1,z as dt,A as Ne,j as we,h as w1}from"./mermaid.core-B_tqKmhs.js";var pt=function(){var e=function(f1,a,o,f){for(o=o||{},f=f1.length;f--;o[f1[f]]=a);return o},u=[1,4],i=[1,3],n=[1,5],c=[1,8,9,10,11,27,34,36,38,42,58,81,82,83,84,85,86,99,102,103,106,108,111,112,113,118,119,120,121],l=[2,2],h=[1,13],U=[1,14],F=[1,15],w=[1,16],X=[1,23],o1=[1,25],p1=[1,26],A1=[1,27],C=[1,49],k=[1,48],l1=[1,29],U1=[1,30],G1=[1,31],M1=[1,32],K1=[1,33],x=[1,44],B=[1,46],m=[1,42],y=[1,47],v=[1,43],V=[1,50],L=[1,45],I=[1,51],R=[1,52],Y1=[1,34],j1=[1,35],z1=[1,36],X1=[1,37],I1=[1,57],b=[1,8,9,10,11,27,32,34,36,38,42,58,81,82,83,84,85,86,99,102,103,106,108,111,112,113,118,119,120,121],q=[1,61],Q=[1,60],Z=[1,62],H1=[8,9,11,73,75],k1=[1,88],b1=[1,93],g1=[1,92],D1=[1,89],F1=[1,85],T1=[1,91],S1=[1,87],C1=[1,94],_1=[1,90],x1=[1,95],B1=[1,86],W1=[8,9,10,11,73,75],N=[8,9,10,11,44,73,75],M=[8,9,10,11,29,42,44,46,48,50,52,54,56,58,61,63,65,66,68,73,75,86,99,102,103,106,108,111,112,113],Et=[8,9,11,42,58,73,75,86,99,102,103,106,108,111,112,113],R1=[42,58,86,99,102,103,106,108,111,112,113],kt=[1,121],bt=[1,120],gt=[1,128],Dt=[1,142],Ft=[1,143],Tt=[1,144],St=[1,145],Ct=[1,130],_t=[1,132],xt=[1,136],Bt=[1,137],mt=[1,138],yt=[1,139],vt=[1,140],Vt=[1,141],Lt=[1,146],It=[1,147],Rt=[1,126],Nt=[1,127],wt=[1,134],Ot=[1,129],Pt=[1,133],Ut=[1,131],nt=[8,9,10,11,27,32,34,36,38,42,58,81,82,83,84,85,86,99,102,103,106,108,111,112,113,118,119,120,121],Gt=[1,149],T=[8,9,11],K=[8,9,10,11,14,42,58,86,102,103,106,108,111,112,113],p=[1,169],O=[1,165],P=[1,166],A=[1,170],d=[1,167],E=[1,168],m1=[75,113,116],g=[8,9,10,11,12,14,27,29,32,42,58,73,81,82,83,84,85,86,87,102,106,108,111,112,113],Mt=[10,103],h1=[31,47,49,51,53,55,60,62,64,65,67,69,113,114,115],J=[1,235],$=[1,233],t1=[1,237],e1=[1,231],s1=[1,232],u1=[1,234],i1=[1,236],r1=[1,238],y1=[1,255],Kt=[8,9,11,103],W=[8,9,10,11,58,81,102,103,106,107,108,109],at={trace:function(){},yy:{},symbols_:{error:2,start:3,graphConfig:4,document:5,line:6,statement:7,SEMI:8,NEWLINE:9,SPACE:10,EOF:11,GRAPH:12,NODIR:13,DIR:14,FirstStmtSeparator:15,ending:16,endToken:17,spaceList:18,spaceListNewline:19,vertexStatement:20,separator:21,styleStatement:22,linkStyleStatement:23,classDefStatement:24,classStatement:25,clickStatement:26,subgraph:27,textNoTags:28,SQS:29,text:30,SQE:31,end:32,direction:33,acc_title:34,acc_title_value:35,acc_descr:36,acc_descr_value:37,acc_descr_multiline_value:38,link:39,node:40,styledVertex:41,AMP:42,vertex:43,STYLE_SEPARATOR:44,idString:45,DOUBLECIRCLESTART:46,DOUBLECIRCLEEND:47,PS:48,PE:49,"(-":50,"-)":51,STADIUMSTART:52,STADIUMEND:53,SUBROUTINESTART:54,SUBROUTINEEND:55,VERTEX_WITH_PROPS_START:56,"NODE_STRING[field]":57,COLON:58,"NODE_STRING[value]":59,PIPE:60,CYLINDERSTART:61,CYLINDEREND:62,DIAMOND_START:63,DIAMOND_STOP:64,TAGEND:65,TRAPSTART:66,TRAPEND:67,INVTRAPSTART:68,INVTRAPEND:69,linkStatement:70,arrowText:71,TESTSTR:72,START_LINK:73,edgeText:74,LINK:75,edgeTextToken:76,STR:77,MD_STR:78,textToken:79,keywords:80,STYLE:81,LINKSTYLE:82,CLASSDEF:83,CLASS:84,CLICK:85,DOWN:86,UP:87,textNoTagsToken:88,stylesOpt:89,"idString[vertex]":90,"idString[class]":91,CALLBACKNAME:92,CALLBACKARGS:93,HREF:94,LINK_TARGET:95,"STR[link]":96,"STR[tooltip]":97,alphaNum:98,DEFAULT:99,numList:100,INTERPOLATE:101,NUM:102,COMMA:103,style:104,styleComponent:105,NODE_STRING:106,UNIT:107,BRKT:108,PCT:109,idStringToken:110,MINUS:111,MULT:112,UNICODE_TEXT:113,TEXT:114,TAGSTART:115,EDGE_TEXT:116,alphaNumToken:117,direction_tb:118,direction_bt:119,direction_rl:120,direction_lr:121,$accept:0,$end:1},terminals_:{2:"error",8:"SEMI",9:"NEWLINE",10:"SPACE",11:"EOF",12:"GRAPH",13:"NODIR",14:"DIR",27:"subgraph",29:"SQS",31:"SQE",32:"end",34:"acc_title",35:"acc_title_value",36:"acc_descr",37:"acc_descr_value",38:"acc_descr_multiline_value",42:"AMP",44:"STYLE_SEPARATOR",46:"DOUBLECIRCLESTART",47:"DOUBLECIRCLEEND",48:"PS",49:"PE",50:"(-",51:"-)",52:"STADIUMSTART",53:"STADIUMEND",54:"SUBROUTINESTART",55:"SUBROUTINEEND",56:"VERTEX_WITH_PROPS_START",57:"NODE_STRING[field]",58:"COLON",59:"NODE_STRING[value]",60:"PIPE",61:"CYLINDERSTART",62:"CYLINDEREND",63:"DIAMOND_START",64:"DIAMOND_STOP",65:"TAGEND",66:"TRAPSTART",67:"TRAPEND",68:"INVTRAPSTART",69:"INVTRAPEND",72:"TESTSTR",73:"START_LINK",75:"LINK",77:"STR",78:"MD_STR",81:"STYLE",82:"LINKSTYLE",83:"CLASSDEF",84:"CLASS",85:"CLICK",86:"DOWN",87:"UP",90:"idString[vertex]",91:"idString[class]",92:"CALLBACKNAME",93:"CALLBACKARGS",94:"HREF",95:"LINK_TARGET",96:"STR[link]",97:"STR[tooltip]",99:"DEFAULT",101:"INTERPOLATE",102:"NUM",103:"COMMA",106:"NODE_STRING",107:"UNIT",108:"BRKT",109:"PCT",111:"MINUS",112:"MULT",113:"UNICODE_TEXT",114:"TEXT",115:"TAGSTART",116:"EDGE_TEXT",118:"direction_tb",119:"direction_bt",120:"direction_rl",121:"direction_lr"},productions_:[0,[3,2],[5,0],[5,2],[6,1],[6,1],[6,1],[6,1],[6,1],[4,2],[4,2],[4,2],[4,3],[16,2],[16,1],[17,1],[17,1],[17,1],[15,1],[15,1],[15,2],[19,2],[19,2],[19,1],[19,1],[18,2],[18,1],[7,2],[7,2],[7,2],[7,2],[7,2],[7,2],[7,9],[7,6],[7,4],[7,1],[7,2],[7,2],[7,1],[21,1],[21,1],[21,1],[20,3],[20,4],[20,2],[20,1],[40,1],[40,5],[41,1],[41,3],[43,4],[43,4],[43,6],[43,4],[43,4],[43,4],[43,8],[43,4],[43,4],[43,4],[43,6],[43,4],[43,4],[43,4],[43,4],[43,4],[43,1],[39,2],[39,3],[39,3],[39,1],[39,3],[74,1],[74,2],[74,1],[74,1],[70,1],[71,3],[30,1],[30,2],[30,1],[30,1],[80,1],[80,1],[80,1],[80,1],[80,1],[80,1],[80,1],[80,1],[80,1],[80,1],[80,1],[28,1],[28,2],[28,1],[28,1],[24,5],[25,5],[26,2],[26,4],[26,3],[26,5],[26,3],[26,5],[26,5],[26,7],[26,2],[26,4],[26,2],[26,4],[26,4],[26,6],[22,5],[23,5],[23,5],[23,9],[23,9],[23,7],[23,7],[100,1],[100,3],[89,1],[89,3],[104,1],[104,2],[105,1],[105,1],[105,1],[105,1],[105,1],[105,1],[105,1],[105,1],[110,1],[110,1],[110,1],[110,1],[110,1],[110,1],[110,1],[110,1],[110,1],[110,1],[110,1],[79,1],[79,1],[79,1],[79,1],[88,1],[88,1],[88,1],[88,1],[88,1],[88,1],[88,1],[88,1],[88,1],[88,1],[88,1],[76,1],[76,1],[117,1],[117,1],[117,1],[117,1],[117,1],[117,1],[117,1],[117,1],[117,1],[117,1],[117,1],[45,1],[45,2],[98,1],[98,2],[33,1],[33,1],[33,1],[33,1]],performAction:function(a,o,f,r,S,t,N1){var s=t.length-1;switch(S){case 2:this.$=[];break;case 3:(!Array.isArray(t[s])||t[s].length>0)&&t[s-1].push(t[s]),this.$=t[s-1];break;case 4:case 176:this.$=t[s];break;case 11:r.setDirection("TB"),this.$="TB";break;case 12:r.setDirection(t[s-1]),this.$=t[s-1];break;case 27:this.$=t[s-1].nodes;break;case 28:case 29:case 30:case 31:case 32:this.$=[];break;case 33:this.$=r.addSubGraph(t[s-6],t[s-1],t[s-4]);break;case 34:this.$=r.addSubGraph(t[s-3],t[s-1],t[s-3]);break;case 35:this.$=r.addSubGraph(void 0,t[s-1],void 0);break;case 37:this.$=t[s].trim(),r.setAccTitle(this.$);break;case 38:case 39:this.$=t[s].trim(),r.setAccDescription(this.$);break;case 43:r.addLink(t[s-2].stmt,t[s],t[s-1]),this.$={stmt:t[s],nodes:t[s].concat(t[s-2].nodes)};break;case 44:r.addLink(t[s-3].stmt,t[s-1],t[s-2]),this.$={stmt:t[s-1],nodes:t[s-1].concat(t[s-3].nodes)};break;case 45:this.$={stmt:t[s-1],nodes:t[s-1]};break;case 46:this.$={stmt:t[s],nodes:t[s]};break;case 47:this.$=[t[s]];break;case 48:this.$=t[s-4].concat(t[s]);break;case 49:this.$=t[s];break;case 50:this.$=t[s-2],r.setClass(t[s-2],t[s]);break;case 51:this.$=t[s-3],r.addVertex(t[s-3],t[s-1],"square");break;case 52:this.$=t[s-3],r.addVertex(t[s-3],t[s-1],"doublecircle");break;case 53:this.$=t[s-5],r.addVertex(t[s-5],t[s-2],"circle");break;case 54:this.$=t[s-3],r.addVertex(t[s-3],t[s-1],"ellipse");break;case 55:this.$=t[s-3],r.addVertex(t[s-3],t[s-1],"stadium");break;case 56:this.$=t[s-3],r.addVertex(t[s-3],t[s-1],"subroutine");break;case 57:this.$=t[s-7],r.addVertex(t[s-7],t[s-1],"rect",void 0,void 0,void 0,Object.fromEntries([[t[s-5],t[s-3]]]));break;case 58:this.$=t[s-3],r.addVertex(t[s-3],t[s-1],"cylinder");break;case 59:this.$=t[s-3],r.addVertex(t[s-3],t[s-1],"round");break;case 60:this.$=t[s-3],r.addVertex(t[s-3],t[s-1],"diamond");break;case 61:this.$=t[s-5],r.addVertex(t[s-5],t[s-2],"hexagon");break;case 62:this.$=t[s-3],r.addVertex(t[s-3],t[s-1],"odd");break;case 63:this.$=t[s-3],r.addVertex(t[s-3],t[s-1],"trapezoid");break;case 64:this.$=t[s-3],r.addVertex(t[s-3],t[s-1],"inv_trapezoid");break;case 65:this.$=t[s-3],r.addVertex(t[s-3],t[s-1],"lean_right");break;case 66:this.$=t[s-3],r.addVertex(t[s-3],t[s-1],"lean_left");break;case 67:this.$=t[s],r.addVertex(t[s]);break;case 68:t[s-1].text=t[s],this.$=t[s-1];break;case 69:case 70:t[s-2].text=t[s-1],this.$=t[s-2];break;case 71:this.$=t[s];break;case 72:var Y=r.destructLink(t[s],t[s-2]);this.$={type:Y.type,stroke:Y.stroke,length:Y.length,text:t[s-1]};break;case 73:this.$={text:t[s],type:"text"};break;case 74:this.$={text:t[s-1].text+""+t[s],type:t[s-1].type};break;case 75:this.$={text:t[s],type:"string"};break;case 76:this.$={text:t[s],type:"markdown"};break;case 77:var Y=r.destructLink(t[s]);this.$={type:Y.type,stroke:Y.stroke,length:Y.length};break;case 78:this.$=t[s-1];break;case 79:this.$={text:t[s],type:"text"};break;case 80:this.$={text:t[s-1].text+""+t[s],type:t[s-1].type};break;case 81:this.$={text:t[s],type:"string"};break;case 82:case 97:this.$={text:t[s],type:"markdown"};break;case 94:this.$={text:t[s],type:"text"};break;case 95:this.$={text:t[s-1].text+""+t[s],type:t[s-1].type};break;case 96:this.$={text:t[s],type:"text"};break;case 98:this.$=t[s-4],r.addClass(t[s-2],t[s]);break;case 99:this.$=t[s-4],r.setClass(t[s-2],t[s]);break;case 100:case 108:this.$=t[s-1],r.setClickEvent(t[s-1],t[s]);break;case 101:case 109:this.$=t[s-3],r.setClickEvent(t[s-3],t[s-2]),r.setTooltip(t[s-3],t[s]);break;case 102:this.$=t[s-2],r.setClickEvent(t[s-2],t[s-1],t[s]);break;case 103:this.$=t[s-4],r.setClickEvent(t[s-4],t[s-3],t[s-2]),r.setTooltip(t[s-4],t[s]);break;case 104:this.$=t[s-2],r.setLink(t[s-2],t[s]);break;case 105:this.$=t[s-4],r.setLink(t[s-4],t[s-2]),r.setTooltip(t[s-4],t[s]);break;case 106:this.$=t[s-4],r.setLink(t[s-4],t[s-2],t[s]);break;case 107:this.$=t[s-6],r.setLink(t[s-6],t[s-4],t[s]),r.setTooltip(t[s-6],t[s-2]);break;case 110:this.$=t[s-1],r.setLink(t[s-1],t[s]);break;case 111:this.$=t[s-3],r.setLink(t[s-3],t[s-2]),r.setTooltip(t[s-3],t[s]);break;case 112:this.$=t[s-3],r.setLink(t[s-3],t[s-2],t[s]);break;case 113:this.$=t[s-5],r.setLink(t[s-5],t[s-4],t[s]),r.setTooltip(t[s-5],t[s-2]);break;case 114:this.$=t[s-4],r.addVertex(t[s-2],void 0,void 0,t[s]);break;case 115:this.$=t[s-4],r.updateLink([t[s-2]],t[s]);break;case 116:this.$=t[s-4],r.updateLink(t[s-2],t[s]);break;case 117:this.$=t[s-8],r.updateLinkInterpolate([t[s-6]],t[s-2]),r.updateLink([t[s-6]],t[s]);break;case 118:this.$=t[s-8],r.updateLinkInterpolate(t[s-6],t[s-2]),r.updateLink(t[s-6],t[s]);break;case 119:this.$=t[s-6],r.updateLinkInterpolate([t[s-4]],t[s]);break;case 120:this.$=t[s-6],r.updateLinkInterpolate(t[s-4],t[s]);break;case 121:case 123:this.$=[t[s]];break;case 122:case 124:t[s-2].push(t[s]),this.$=t[s-2];break;case 126:this.$=t[s-1]+t[s];break;case 174:this.$=t[s];break;case 175:this.$=t[s-1]+""+t[s];break;case 177:this.$=t[s-1]+""+t[s];break;case 178:this.$={stmt:"dir",value:"TB"};break;case 179:this.$={stmt:"dir",value:"BT"};break;case 180:this.$={stmt:"dir",value:"RL"};break;case 181:this.$={stmt:"dir",value:"LR"};break}},table:[{3:1,4:2,9:u,10:i,12:n},{1:[3]},e(c,l,{5:6}),{4:7,9:u,10:i,12:n},{4:8,9:u,10:i,12:n},{13:[1,9],14:[1,10]},{1:[2,1],6:11,7:12,8:h,9:U,10:F,11:w,20:17,22:18,23:19,24:20,25:21,26:22,27:X,33:24,34:o1,36:p1,38:A1,40:28,41:38,42:C,43:39,45:40,58:k,81:l1,82:U1,83:G1,84:M1,85:K1,86:x,99:B,102:m,103:y,106:v,108:V,110:41,111:L,112:I,113:R,118:Y1,119:j1,120:z1,121:X1},e(c,[2,9]),e(c,[2,10]),e(c,[2,11]),{8:[1,54],9:[1,55],10:I1,15:53,18:56},e(b,[2,3]),e(b,[2,4]),e(b,[2,5]),e(b,[2,6]),e(b,[2,7]),e(b,[2,8]),{8:q,9:Q,11:Z,21:58,39:59,70:63,73:[1,64],75:[1,65]},{8:q,9:Q,11:Z,21:66},{8:q,9:Q,11:Z,21:67},{8:q,9:Q,11:Z,21:68},{8:q,9:Q,11:Z,21:69},{8:q,9:Q,11:Z,21:70},{8:q,9:Q,10:[1,71],11:Z,21:72},e(b,[2,36]),{35:[1,73]},{37:[1,74]},e(b,[2,39]),e(H1,[2,46],{18:75,10:I1}),{10:[1,76]},{10:[1,77]},{10:[1,78]},{10:[1,79]},{14:k1,42:b1,58:g1,77:[1,83],86:D1,92:[1,80],94:[1,81],98:82,102:F1,103:T1,106:S1,108:C1,111:_1,112:x1,113:B1,117:84},e(b,[2,178]),e(b,[2,179]),e(b,[2,180]),e(b,[2,181]),e(W1,[2,47]),e(W1,[2,49],{44:[1,96]}),e(N,[2,67],{110:109,29:[1,97],42:C,46:[1,98],48:[1,99],50:[1,100],52:[1,101],54:[1,102],56:[1,103],58:k,61:[1,104],63:[1,105],65:[1,106],66:[1,107],68:[1,108],86:x,99:B,102:m,103:y,106:v,108:V,111:L,112:I,113:R}),e(M,[2,174]),e(M,[2,135]),e(M,[2,136]),e(M,[2,137]),e(M,[2,138]),e(M,[2,139]),e(M,[2,140]),e(M,[2,141]),e(M,[2,142]),e(M,[2,143]),e(M,[2,144]),e(M,[2,145]),e(c,[2,12]),e(c,[2,18]),e(c,[2,19]),{9:[1,110]},e(Et,[2,26],{18:111,10:I1}),e(b,[2,27]),{40:112,41:38,42:C,43:39,45:40,58:k,86:x,99:B,102:m,103:y,106:v,108:V,110:41,111:L,112:I,113:R},e(b,[2,40]),e(b,[2,41]),e(b,[2,42]),e(R1,[2,71],{71:113,60:[1,115],72:[1,114]}),{74:116,76:117,77:[1,118],78:[1,119],113:kt,116:bt},e([42,58,60,72,86,99,102,103,106,108,111,112,113],[2,77]),e(b,[2,28]),e(b,[2,29]),e(b,[2,30]),e(b,[2,31]),e(b,[2,32]),{10:gt,12:Dt,14:Ft,27:Tt,28:122,32:St,42:Ct,58:_t,73:xt,77:[1,124],78:[1,125],80:135,81:Bt,82:mt,83:yt,84:vt,85:Vt,86:Lt,87:It,88:123,102:Rt,106:Nt,108:wt,111:Ot,112:Pt,113:Ut},e(nt,l,{5:148}),e(b,[2,37]),e(b,[2,38]),e(H1,[2,45],{42:Gt}),{42:C,45:150,58:k,86:x,99:B,102:m,103:y,106:v,108:V,110:41,111:L,112:I,113:R},{99:[1,151],100:152,102:[1,153]},{42:C,45:154,58:k,86:x,99:B,102:m,103:y,106:v,108:V,110:41,111:L,112:I,113:R},{42:C,45:155,58:k,86:x,99:B,102:m,103:y,106:v,108:V,110:41,111:L,112:I,113:R},e(T,[2,100],{10:[1,156],93:[1,157]}),{77:[1,158]},e(T,[2,108],{117:160,10:[1,159],14:k1,42:b1,58:g1,86:D1,102:F1,103:T1,106:S1,108:C1,111:_1,112:x1,113:B1}),e(T,[2,110],{10:[1,161]}),e(K,[2,176]),e(K,[2,163]),e(K,[2,164]),e(K,[2,165]),e(K,[2,166]),e(K,[2,167]),e(K,[2,168]),e(K,[2,169]),e(K,[2,170]),e(K,[2,171]),e(K,[2,172]),e(K,[2,173]),{42:C,45:162,58:k,86:x,99:B,102:m,103:y,106:v,108:V,110:41,111:L,112:I,113:R},{30:163,65:p,77:O,78:P,79:164,113:A,114:d,115:E},{30:171,65:p,77:O,78:P,79:164,113:A,114:d,115:E},{30:173,48:[1,172],65:p,77:O,78:P,79:164,113:A,114:d,115:E},{30:174,65:p,77:O,78:P,79:164,113:A,114:d,115:E},{30:175,65:p,77:O,78:P,79:164,113:A,114:d,115:E},{30:176,65:p,77:O,78:P,79:164,113:A,114:d,115:E},{106:[1,177]},{30:178,65:p,77:O,78:P,79:164,113:A,114:d,115:E},{30:179,63:[1,180],65:p,77:O,78:P,79:164,113:A,114:d,115:E},{30:181,65:p,77:O,78:P,79:164,113:A,114:d,115:E},{30:182,65:p,77:O,78:P,79:164,113:A,114:d,115:E},{30:183,65:p,77:O,78:P,79:164,113:A,114:d,115:E},e(M,[2,175]),e(c,[2,20]),e(Et,[2,25]),e(H1,[2,43],{18:184,10:I1}),e(R1,[2,68],{10:[1,185]}),{10:[1,186]},{30:187,65:p,77:O,78:P,79:164,113:A,114:d,115:E},{75:[1,188],76:189,113:kt,116:bt},e(m1,[2,73]),e(m1,[2,75]),e(m1,[2,76]),e(m1,[2,161]),e(m1,[2,162]),{8:q,9:Q,10:gt,11:Z,12:Dt,14:Ft,21:191,27:Tt,29:[1,190],32:St,42:Ct,58:_t,73:xt,80:135,81:Bt,82:mt,83:yt,84:vt,85:Vt,86:Lt,87:It,88:192,102:Rt,106:Nt,108:wt,111:Ot,112:Pt,113:Ut},e(g,[2,94]),e(g,[2,96]),e(g,[2,97]),e(g,[2,150]),e(g,[2,151]),e(g,[2,152]),e(g,[2,153]),e(g,[2,154]),e(g,[2,155]),e(g,[2,156]),e(g,[2,157]),e(g,[2,158]),e(g,[2,159]),e(g,[2,160]),e(g,[2,83]),e(g,[2,84]),e(g,[2,85]),e(g,[2,86]),e(g,[2,87]),e(g,[2,88]),e(g,[2,89]),e(g,[2,90]),e(g,[2,91]),e(g,[2,92]),e(g,[2,93]),{6:11,7:12,8:h,9:U,10:F,11:w,20:17,22:18,23:19,24:20,25:21,26:22,27:X,32:[1,193],33:24,34:o1,36:p1,38:A1,40:28,41:38,42:C,43:39,45:40,58:k,81:l1,82:U1,83:G1,84:M1,85:K1,86:x,99:B,102:m,103:y,106:v,108:V,110:41,111:L,112:I,113:R,118:Y1,119:j1,120:z1,121:X1},{10:I1,18:194},{10:[1,195],42:C,58:k,86:x,99:B,102:m,103:y,106:v,108:V,110:109,111:L,112:I,113:R},{10:[1,196]},{10:[1,197],103:[1,198]},e(Mt,[2,121]),{10:[1,199],42:C,58:k,86:x,99:B,102:m,103:y,106:v,108:V,110:109,111:L,112:I,113:R},{10:[1,200],42:C,58:k,86:x,99:B,102:m,103:y,106:v,108:V,110:109,111:L,112:I,113:R},{77:[1,201]},e(T,[2,102],{10:[1,202]}),e(T,[2,104],{10:[1,203]}),{77:[1,204]},e(K,[2,177]),{77:[1,205],95:[1,206]},e(W1,[2,50],{110:109,42:C,58:k,86:x,99:B,102:m,103:y,106:v,108:V,111:L,112:I,113:R}),{31:[1,207],65:p,79:208,113:A,114:d,115:E},e(h1,[2,79]),e(h1,[2,81]),e(h1,[2,82]),e(h1,[2,146]),e(h1,[2,147]),e(h1,[2,148]),e(h1,[2,149]),{47:[1,209],65:p,79:208,113:A,114:d,115:E},{30:210,65:p,77:O,78:P,79:164,113:A,114:d,115:E},{49:[1,211],65:p,79:208,113:A,114:d,115:E},{51:[1,212],65:p,79:208,113:A,114:d,115:E},{53:[1,213],65:p,79:208,113:A,114:d,115:E},{55:[1,214],65:p,79:208,113:A,114:d,115:E},{58:[1,215]},{62:[1,216],65:p,79:208,113:A,114:d,115:E},{64:[1,217],65:p,79:208,113:A,114:d,115:E},{30:218,65:p,77:O,78:P,79:164,113:A,114:d,115:E},{31:[1,219],65:p,79:208,113:A,114:d,115:E},{65:p,67:[1,220],69:[1,221],79:208,113:A,114:d,115:E},{65:p,67:[1,223],69:[1,222],79:208,113:A,114:d,115:E},e(H1,[2,44],{42:Gt}),e(R1,[2,70]),e(R1,[2,69]),{60:[1,224],65:p,79:208,113:A,114:d,115:E},e(R1,[2,72]),e(m1,[2,74]),{30:225,65:p,77:O,78:P,79:164,113:A,114:d,115:E},e(nt,l,{5:226}),e(g,[2,95]),e(b,[2,35]),{41:227,42:C,43:39,45:40,58:k,86:x,99:B,102:m,103:y,106:v,108:V,110:41,111:L,112:I,113:R},{10:J,58:$,81:t1,89:228,102:e1,104:229,105:230,106:s1,107:u1,108:i1,109:r1},{10:J,58:$,81:t1,89:239,101:[1,240],102:e1,104:229,105:230,106:s1,107:u1,108:i1,109:r1},{10:J,58:$,81:t1,89:241,101:[1,242],102:e1,104:229,105:230,106:s1,107:u1,108:i1,109:r1},{102:[1,243]},{10:J,58:$,81:t1,89:244,102:e1,104:229,105:230,106:s1,107:u1,108:i1,109:r1},{42:C,45:245,58:k,86:x,99:B,102:m,103:y,106:v,108:V,110:41,111:L,112:I,113:R},e(T,[2,101]),{77:[1,246]},{77:[1,247],95:[1,248]},e(T,[2,109]),e(T,[2,111],{10:[1,249]}),e(T,[2,112]),e(N,[2,51]),e(h1,[2,80]),e(N,[2,52]),{49:[1,250],65:p,79:208,113:A,114:d,115:E},e(N,[2,59]),e(N,[2,54]),e(N,[2,55]),e(N,[2,56]),{106:[1,251]},e(N,[2,58]),e(N,[2,60]),{64:[1,252],65:p,79:208,113:A,114:d,115:E},e(N,[2,62]),e(N,[2,63]),e(N,[2,65]),e(N,[2,64]),e(N,[2,66]),e([10,42,58,86,99,102,103,106,108,111,112,113],[2,78]),{31:[1,253],65:p,79:208,113:A,114:d,115:E},{6:11,7:12,8:h,9:U,10:F,11:w,20:17,22:18,23:19,24:20,25:21,26:22,27:X,32:[1,254],33:24,34:o1,36:p1,38:A1,40:28,41:38,42:C,43:39,45:40,58:k,81:l1,82:U1,83:G1,84:M1,85:K1,86:x,99:B,102:m,103:y,106:v,108:V,110:41,111:L,112:I,113:R,118:Y1,119:j1,120:z1,121:X1},e(W1,[2,48]),e(T,[2,114],{103:y1}),e(Kt,[2,123],{105:256,10:J,58:$,81:t1,102:e1,106:s1,107:u1,108:i1,109:r1}),e(W,[2,125]),e(W,[2,127]),e(W,[2,128]),e(W,[2,129]),e(W,[2,130]),e(W,[2,131]),e(W,[2,132]),e(W,[2,133]),e(W,[2,134]),e(T,[2,115],{103:y1}),{10:[1,257]},e(T,[2,116],{103:y1}),{10:[1,258]},e(Mt,[2,122]),e(T,[2,98],{103:y1}),e(T,[2,99],{110:109,42:C,58:k,86:x,99:B,102:m,103:y,106:v,108:V,111:L,112:I,113:R}),e(T,[2,103]),e(T,[2,105],{10:[1,259]}),e(T,[2,106]),{95:[1,260]},{49:[1,261]},{60:[1,262]},{64:[1,263]},{8:q,9:Q,11:Z,21:264},e(b,[2,34]),{10:J,58:$,81:t1,102:e1,104:265,105:230,106:s1,107:u1,108:i1,109:r1},e(W,[2,126]),{14:k1,42:b1,58:g1,86:D1,98:266,102:F1,103:T1,106:S1,108:C1,111:_1,112:x1,113:B1,117:84},{14:k1,42:b1,58:g1,86:D1,98:267,102:F1,103:T1,106:S1,108:C1,111:_1,112:x1,113:B1,117:84},{95:[1,268]},e(T,[2,113]),e(N,[2,53]),{30:269,65:p,77:O,78:P,79:164,113:A,114:d,115:E},e(N,[2,61]),e(nt,l,{5:270}),e(Kt,[2,124],{105:256,10:J,58:$,81:t1,102:e1,106:s1,107:u1,108:i1,109:r1}),e(T,[2,119],{117:160,10:[1,271],14:k1,42:b1,58:g1,86:D1,102:F1,103:T1,106:S1,108:C1,111:_1,112:x1,113:B1}),e(T,[2,120],{117:160,10:[1,272],14:k1,42:b1,58:g1,86:D1,102:F1,103:T1,106:S1,108:C1,111:_1,112:x1,113:B1}),e(T,[2,107]),{31:[1,273],65:p,79:208,113:A,114:d,115:E},{6:11,7:12,8:h,9:U,10:F,11:w,20:17,22:18,23:19,24:20,25:21,26:22,27:X,32:[1,274],33:24,34:o1,36:p1,38:A1,40:28,41:38,42:C,43:39,45:40,58:k,81:l1,82:U1,83:G1,84:M1,85:K1,86:x,99:B,102:m,103:y,106:v,108:V,110:41,111:L,112:I,113:R,118:Y1,119:j1,120:z1,121:X1},{10:J,58:$,81:t1,89:275,102:e1,104:229,105:230,106:s1,107:u1,108:i1,109:r1},{10:J,58:$,81:t1,89:276,102:e1,104:229,105:230,106:s1,107:u1,108:i1,109:r1},e(N,[2,57]),e(b,[2,33]),e(T,[2,117],{103:y1}),e(T,[2,118],{103:y1})],defaultActions:{},parseError:function(a,o){if(o.recoverable)this.trace(a);else{var f=new Error(a);throw f.hash=o,f}},parse:function(a){var o=this,f=[0],r=[],S=[null],t=[],N1=this.table,s="",Y=0,Yt=0,Ce=2,jt=1,_e=t.slice.call(arguments,1),_=Object.create(this.lexer),d1={yy:{}};for(var ot in this.yy)Object.prototype.hasOwnProperty.call(this.yy,ot)&&(d1.yy[ot]=this.yy[ot]);_.setInput(a,d1.yy),d1.yy.lexer=_,d1.yy.parser=this,typeof _.yylloc>"u"&&(_.yylloc={});var lt=_.yylloc;t.push(lt);var xe=_.options&&_.options.ranges;typeof d1.yy.parseError=="function"?this.parseError=d1.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function Be(){var a1;return a1=r.pop()||_.lex()||jt,typeof a1!="number"&&(a1 instanceof Array&&(r=a1,a1=r.pop()),a1=o.symbols_[a1]||a1),a1}for(var G,E1,j,ht,v1={},q1,n1,zt,Q1;;){if(E1=f[f.length-1],this.defaultActions[E1]?j=this.defaultActions[E1]:((G===null||typeof G>"u")&&(G=Be()),j=N1[E1]&&N1[E1][G]),typeof j>"u"||!j.length||!j[0]){var ft="";Q1=[];for(q1 in N1[E1])this.terminals_[q1]&&q1>Ce&&Q1.push("'"+this.terminals_[q1]+"'");_.showPosition?ft="Parse error on line "+(Y+1)+`: +`+_.showPosition()+` +Expecting `+Q1.join(", ")+", got '"+(this.terminals_[G]||G)+"'":ft="Parse error on line "+(Y+1)+": Unexpected "+(G==jt?"end of input":"'"+(this.terminals_[G]||G)+"'"),this.parseError(ft,{text:_.match,token:this.terminals_[G]||G,line:_.yylineno,loc:lt,expected:Q1})}if(j[0]instanceof Array&&j.length>1)throw new Error("Parse Error: multiple actions possible at state: "+E1+", token: "+G);switch(j[0]){case 1:f.push(G),S.push(_.yytext),t.push(_.yylloc),f.push(j[1]),G=null,Yt=_.yyleng,s=_.yytext,Y=_.yylineno,lt=_.yylloc;break;case 2:if(n1=this.productions_[j[1]][1],v1.$=S[S.length-n1],v1._$={first_line:t[t.length-(n1||1)].first_line,last_line:t[t.length-1].last_line,first_column:t[t.length-(n1||1)].first_column,last_column:t[t.length-1].last_column},xe&&(v1._$.range=[t[t.length-(n1||1)].range[0],t[t.length-1].range[1]]),ht=this.performAction.apply(v1,[s,Yt,Y,d1.yy,j[1],S,t].concat(_e)),typeof ht<"u")return ht;n1&&(f=f.slice(0,-1*n1*2),S=S.slice(0,-1*n1),t=t.slice(0,-1*n1)),f.push(this.productions_[j[1]][0]),S.push(v1.$),t.push(v1._$),zt=N1[f[f.length-2]][f[f.length-1]],f.push(zt);break;case 3:return!0}}return!0}},Se=function(){var f1={EOF:1,parseError:function(o,f){if(this.yy.parser)this.yy.parser.parseError(o,f);else throw new Error(o)},setInput:function(a,o){return this.yy=o||this.yy||{},this._input=a,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var a=this._input[0];this.yytext+=a,this.yyleng++,this.offset++,this.match+=a,this.matched+=a;var o=a.match(/(?:\r\n?|\n).*/g);return o?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),a},unput:function(a){var o=a.length,f=a.split(/(?:\r\n?|\n)/g);this._input=a+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-o),this.offset-=o;var r=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),f.length-1&&(this.yylineno-=f.length-1);var S=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:f?(f.length===r.length?this.yylloc.first_column:0)+r[r.length-f.length].length-f[0].length:this.yylloc.first_column-o},this.options.ranges&&(this.yylloc.range=[S[0],S[0]+this.yyleng-o]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true). +`+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},less:function(a){this.unput(this.match.slice(a))},pastInput:function(){var a=this.matched.substr(0,this.matched.length-this.match.length);return(a.length>20?"...":"")+a.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var a=this.match;return a.length<20&&(a+=this._input.substr(0,20-a.length)),(a.substr(0,20)+(a.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var a=this.pastInput(),o=new Array(a.length+1).join("-");return a+this.upcomingInput()+` +`+o+"^"},test_match:function(a,o){var f,r,S;if(this.options.backtrack_lexer&&(S={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(S.yylloc.range=this.yylloc.range.slice(0))),r=a[0].match(/(?:\r\n?|\n).*/g),r&&(this.yylineno+=r.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:r?r[r.length-1].length-r[r.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+a[0].length},this.yytext+=a[0],this.match+=a[0],this.matches=a,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(a[0].length),this.matched+=a[0],f=this.performAction.call(this,this.yy,this,o,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),f)return f;if(this._backtrack){for(var t in S)this[t]=S[t];return!1}return!1},next:function(){if(this.done)return this.EOF;this._input||(this.done=!0);var a,o,f,r;this._more||(this.yytext="",this.match="");for(var S=this._currentRules(),t=0;to[0].length)){if(o=f,r=t,this.options.backtrack_lexer){if(a=this.test_match(f,S[t]),a!==!1)return a;if(this._backtrack){o=!1;continue}else return!1}else if(!this.options.flex)break}return o?(a=this.test_match(o,S[r]),a!==!1?a:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text. +`+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var o=this.next();return o||this.lex()},begin:function(o){this.conditionStack.push(o)},popState:function(){var o=this.conditionStack.length-1;return o>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(o){return o=this.conditionStack.length-1-Math.abs(o||0),o>=0?this.conditionStack[o]:"INITIAL"},pushState:function(o){this.begin(o)},stateStackSize:function(){return this.conditionStack.length},options:{},performAction:function(o,f,r,S){switch(r){case 0:return this.begin("acc_title"),34;case 1:return this.popState(),"acc_title_value";case 2:return this.begin("acc_descr"),36;case 3:return this.popState(),"acc_descr_value";case 4:this.begin("acc_descr_multiline");break;case 5:this.popState();break;case 6:return"acc_descr_multiline_value";case 7:this.begin("callbackname");break;case 8:this.popState();break;case 9:this.popState(),this.begin("callbackargs");break;case 10:return 92;case 11:this.popState();break;case 12:return 93;case 13:return"MD_STR";case 14:this.popState();break;case 15:this.begin("md_string");break;case 16:return"STR";case 17:this.popState();break;case 18:this.pushState("string");break;case 19:return 81;case 20:return 99;case 21:return 82;case 22:return 101;case 23:return 83;case 24:return 84;case 25:return 94;case 26:this.begin("click");break;case 27:this.popState();break;case 28:return 85;case 29:return o.lex.firstGraph()&&this.begin("dir"),12;case 30:return o.lex.firstGraph()&&this.begin("dir"),12;case 31:return o.lex.firstGraph()&&this.begin("dir"),12;case 32:return 27;case 33:return 32;case 34:return 95;case 35:return 95;case 36:return 95;case 37:return 95;case 38:return this.popState(),13;case 39:return this.popState(),14;case 40:return this.popState(),14;case 41:return this.popState(),14;case 42:return this.popState(),14;case 43:return this.popState(),14;case 44:return this.popState(),14;case 45:return this.popState(),14;case 46:return this.popState(),14;case 47:return this.popState(),14;case 48:return this.popState(),14;case 49:return 118;case 50:return 119;case 51:return 120;case 52:return 121;case 53:return 102;case 54:return 108;case 55:return 44;case 56:return 58;case 57:return 42;case 58:return 8;case 59:return 103;case 60:return 112;case 61:return this.popState(),75;case 62:return this.pushState("edgeText"),73;case 63:return 116;case 64:return this.popState(),75;case 65:return this.pushState("thickEdgeText"),73;case 66:return 116;case 67:return this.popState(),75;case 68:return this.pushState("dottedEdgeText"),73;case 69:return 116;case 70:return 75;case 71:return this.popState(),51;case 72:return"TEXT";case 73:return this.pushState("ellipseText"),50;case 74:return this.popState(),53;case 75:return this.pushState("text"),52;case 76:return this.popState(),55;case 77:return this.pushState("text"),54;case 78:return 56;case 79:return this.pushState("text"),65;case 80:return this.popState(),62;case 81:return this.pushState("text"),61;case 82:return this.popState(),47;case 83:return this.pushState("text"),46;case 84:return this.popState(),67;case 85:return this.popState(),69;case 86:return 114;case 87:return this.pushState("trapText"),66;case 88:return this.pushState("trapText"),68;case 89:return 115;case 90:return 65;case 91:return 87;case 92:return"SEP";case 93:return 86;case 94:return 112;case 95:return 108;case 96:return 42;case 97:return 106;case 98:return 111;case 99:return 113;case 100:return this.popState(),60;case 101:return this.pushState("text"),60;case 102:return this.popState(),49;case 103:return this.pushState("text"),48;case 104:return this.popState(),31;case 105:return this.pushState("text"),29;case 106:return this.popState(),64;case 107:return this.pushState("text"),63;case 108:return"TEXT";case 109:return"QUOTE";case 110:return 9;case 111:return 10;case 112:return 11}},rules:[/^(?:accTitle\s*:\s*)/,/^(?:(?!\n||)*[^\n]*)/,/^(?:accDescr\s*:\s*)/,/^(?:(?!\n||)*[^\n]*)/,/^(?:accDescr\s*\{\s*)/,/^(?:[\}])/,/^(?:[^\}]*)/,/^(?:call[\s]+)/,/^(?:\([\s]*\))/,/^(?:\()/,/^(?:[^(]*)/,/^(?:\))/,/^(?:[^)]*)/,/^(?:[^`"]+)/,/^(?:[`]["])/,/^(?:["][`])/,/^(?:[^"]+)/,/^(?:["])/,/^(?:["])/,/^(?:style\b)/,/^(?:default\b)/,/^(?:linkStyle\b)/,/^(?:interpolate\b)/,/^(?:classDef\b)/,/^(?:class\b)/,/^(?:href[\s])/,/^(?:click[\s]+)/,/^(?:[\s\n])/,/^(?:[^\s\n]*)/,/^(?:flowchart-elk\b)/,/^(?:graph\b)/,/^(?:flowchart\b)/,/^(?:subgraph\b)/,/^(?:end\b\s*)/,/^(?:_self\b)/,/^(?:_blank\b)/,/^(?:_parent\b)/,/^(?:_top\b)/,/^(?:(\r?\n)*\s*\n)/,/^(?:\s*LR\b)/,/^(?:\s*RL\b)/,/^(?:\s*TB\b)/,/^(?:\s*BT\b)/,/^(?:\s*TD\b)/,/^(?:\s*BR\b)/,/^(?:\s*<)/,/^(?:\s*>)/,/^(?:\s*\^)/,/^(?:\s*v\b)/,/^(?:.*direction\s+TB[^\n]*)/,/^(?:.*direction\s+BT[^\n]*)/,/^(?:.*direction\s+RL[^\n]*)/,/^(?:.*direction\s+LR[^\n]*)/,/^(?:[0-9]+)/,/^(?:#)/,/^(?::::)/,/^(?::)/,/^(?:&)/,/^(?:;)/,/^(?:,)/,/^(?:\*)/,/^(?:\s*[xo<]?--+[-xo>]\s*)/,/^(?:\s*[xo<]?--\s*)/,/^(?:[^-]|-(?!-)+)/,/^(?:\s*[xo<]?==+[=xo>]\s*)/,/^(?:\s*[xo<]?==\s*)/,/^(?:[^=]|=(?!))/,/^(?:\s*[xo<]?-?\.+-[xo>]?\s*)/,/^(?:\s*[xo<]?-\.\s*)/,/^(?:[^\.]|\.(?!))/,/^(?:\s*~~[\~]+\s*)/,/^(?:[-/\)][\)])/,/^(?:[^\(\)\[\]\{\}]|!\)+)/,/^(?:\(-)/,/^(?:\]\))/,/^(?:\(\[)/,/^(?:\]\])/,/^(?:\[\[)/,/^(?:\[\|)/,/^(?:>)/,/^(?:\)\])/,/^(?:\[\()/,/^(?:\)\)\))/,/^(?:\(\(\()/,/^(?:[\\(?=\])][\]])/,/^(?:\/(?=\])\])/,/^(?:\/(?!\])|\\(?!\])|[^\\\[\]\(\)\{\}\/]+)/,/^(?:\[\/)/,/^(?:\[\\)/,/^(?:<)/,/^(?:>)/,/^(?:\^)/,/^(?:\\\|)/,/^(?:v\b)/,/^(?:\*)/,/^(?:#)/,/^(?:&)/,/^(?:([A-Za-z0-9!"\#$%&'*+\.`?\\_\/]|-(?=[^\>\-\.])|(?!))+)/,/^(?:-)/,/^(?:[\u00AA\u00B5\u00BA\u00C0-\u00D6\u00D8-\u00F6]|[\u00F8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377]|[\u037A-\u037D\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5]|[\u03F7-\u0481\u048A-\u0527\u0531-\u0556\u0559\u0561-\u0587\u05D0-\u05EA]|[\u05F0-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE]|[\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA]|[\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u08A0]|[\u08A2-\u08AC\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0977]|[\u0979-\u097F\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2]|[\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u0A05-\u0A0A]|[\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39]|[\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8]|[\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0B05-\u0B0C]|[\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C]|[\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99]|[\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0]|[\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C33\u0C35-\u0C39\u0C3D]|[\u0C58\u0C59\u0C60\u0C61\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3]|[\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10]|[\u0D12-\u0D3A\u0D3D\u0D4E\u0D60\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1]|[\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81]|[\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3]|[\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6]|[\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A]|[\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081]|[\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D]|[\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0]|[\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310]|[\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F4\u1401-\u166C]|[\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u1700-\u170C\u170E-\u1711]|[\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7]|[\u17DC\u1820-\u1877\u1880-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191C]|[\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19C1-\u19C7\u1A00-\u1A16]|[\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF]|[\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1CE9-\u1CEC]|[\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D]|[\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D]|[\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3]|[\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F]|[\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128]|[\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2183\u2184]|[\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3]|[\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6]|[\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE]|[\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005\u3006\u3031-\u3035\u303B\u303C]|[\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D]|[\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FCC]|[\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B]|[\uA640-\uA66E\uA67F-\uA697\uA6A0-\uA6E5\uA717-\uA71F\uA722-\uA788]|[\uA78B-\uA78E\uA790-\uA793\uA7A0-\uA7AA\uA7F8-\uA801\uA803-\uA805]|[\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB]|[\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uAA00-\uAA28]|[\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA80-\uAAAF\uAAB1\uAAB5]|[\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4]|[\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E]|[\uABC0-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D]|[\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36]|[\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D]|[\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC]|[\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF]|[\uFFD2-\uFFD7\uFFDA-\uFFDC])/,/^(?:\|)/,/^(?:\|)/,/^(?:\))/,/^(?:\()/,/^(?:\])/,/^(?:\[)/,/^(?:(\}))/,/^(?:\{)/,/^(?:[^\[\]\(\)\{\}\|\"]+)/,/^(?:")/,/^(?:(\r?\n)+)/,/^(?:\s)/,/^(?:$)/],conditions:{callbackargs:{rules:[11,12,15,18,70,73,75,77,81,83,87,88,101,103,105,107],inclusive:!1},callbackname:{rules:[8,9,10,15,18,70,73,75,77,81,83,87,88,101,103,105,107],inclusive:!1},href:{rules:[15,18,70,73,75,77,81,83,87,88,101,103,105,107],inclusive:!1},click:{rules:[15,18,27,28,70,73,75,77,81,83,87,88,101,103,105,107],inclusive:!1},dottedEdgeText:{rules:[15,18,67,69,70,73,75,77,81,83,87,88,101,103,105,107],inclusive:!1},thickEdgeText:{rules:[15,18,64,66,70,73,75,77,81,83,87,88,101,103,105,107],inclusive:!1},edgeText:{rules:[15,18,61,63,70,73,75,77,81,83,87,88,101,103,105,107],inclusive:!1},trapText:{rules:[15,18,70,73,75,77,81,83,84,85,86,87,88,101,103,105,107],inclusive:!1},ellipseText:{rules:[15,18,70,71,72,73,75,77,81,83,87,88,101,103,105,107],inclusive:!1},text:{rules:[15,18,70,73,74,75,76,77,80,81,82,83,87,88,100,101,102,103,104,105,106,107,108],inclusive:!1},vertex:{rules:[15,18,70,73,75,77,81,83,87,88,101,103,105,107],inclusive:!1},dir:{rules:[15,18,38,39,40,41,42,43,44,45,46,47,48,70,73,75,77,81,83,87,88,101,103,105,107],inclusive:!1},acc_descr_multiline:{rules:[5,6,15,18,70,73,75,77,81,83,87,88,101,103,105,107],inclusive:!1},acc_descr:{rules:[3,15,18,70,73,75,77,81,83,87,88,101,103,105,107],inclusive:!1},acc_title:{rules:[1,15,18,70,73,75,77,81,83,87,88,101,103,105,107],inclusive:!1},md_string:{rules:[13,14,15,18,70,73,75,77,81,83,87,88,101,103,105,107],inclusive:!1},string:{rules:[15,16,17,18,70,73,75,77,81,83,87,88,101,103,105,107],inclusive:!1},INITIAL:{rules:[0,2,4,7,15,18,19,20,21,22,23,24,25,26,29,30,31,32,33,34,35,36,37,49,50,51,52,53,54,55,56,57,58,59,60,61,62,64,65,67,68,70,73,75,77,78,79,81,83,87,88,89,90,91,92,93,94,95,96,97,98,99,101,103,105,107,109,110,111,112],inclusive:!0}}};return f1}();at.lexer=Se;function ct(){this.yy={}}return ct.prototype=at,at.Parser=ct,new ct}();pt.parser=pt;const Xe=pt,Oe="flowchart-";let Xt=0,L1=et(),D={},H=[],V1={},c1=[],$1={},tt={},Z1=0,At=!0,z,st,ut=[];const it=e=>we.sanitizeText(e,L1),P1=function(e){const u=Object.keys(D);for(const i of u)if(D[i].id===e)return D[i].domId;return e},Ht=function(e,u,i,n,c,l,h={}){let U,F=e;F!==void 0&&F.trim().length!==0&&(D[F]===void 0&&(D[F]={id:F,labelType:"text",domId:Oe+F+"-"+Xt,styles:[],classes:[]}),Xt++,u!==void 0?(L1=et(),U=it(u.text.trim()),D[F].labelType=u.type,U[0]==='"'&&U[U.length-1]==='"'&&(U=U.substring(1,U.length-1)),D[F].text=U):D[F].text===void 0&&(D[F].text=e),i!==void 0&&(D[F].type=i),n?.forEach(function(w){D[F].styles.push(w)}),c?.forEach(function(w){D[F].classes.push(w)}),l!==void 0&&(D[F].dir=l),D[F].props===void 0?D[F].props=h:h!==void 0&&Object.assign(D[F].props,h))},Wt=function(e,u,i){const l={start:e,end:u,type:void 0,text:"",labelType:"text"};J1.info("abc78 Got edge...",l);const h=i.text;if(h!==void 0&&(l.text=it(h.text.trim()),l.text[0]==='"'&&l.text[l.text.length-1]==='"'&&(l.text=l.text.substring(1,l.text.length-1)),l.labelType=h.type),i!==void 0&&(l.type=i.type,l.stroke=i.stroke,l.length=i.length),l?.length>10&&(l.length=10),H.length<(L1.maxEdges??500))J1.info("abc78 pushing edge..."),H.push(l);else throw new Error(`Edge limit exceeded. ${H.length} edges found, but the limit is ${L1.maxEdges}. + +Initialize mermaid with maxEdges set to a higher number to allow more edges. +You cannot set this config via configuration inside the diagram as it is a secure config. +You have to call mermaid.initialize.`)},qt=function(e,u,i){J1.info("addLink (abc78)",e,u,i);let n,c;for(n=0;n=H.length)throw new Error(`The index ${i} for linkStyle is out of bounds. Valid indices for linkStyle are between 0 and ${H.length-1}. (Help: Ensure that the index is within the range of existing edges.)`);i==="default"?H.defaultStyle=u:(dt.isSubstringInArray("fill",u)===-1&&u.push("fill:none"),H[i].style=u)})},Jt=function(e,u){e.split(",").forEach(function(i){V1[i]===void 0&&(V1[i]={id:i,styles:[],textStyles:[]}),u?.forEach(function(n){if(n.match("color")){const c=n.replace("fill","bgFill").replace("color","fill");V1[i].textStyles.push(c)}V1[i].styles.push(n)})})},$t=function(e){z=e,z.match(/.*/)&&(z="LR"),z.match(/.*v/)&&(z="TB"),z==="TD"&&(z="TB")},rt=function(e,u){e.split(",").forEach(function(i){let n=i;D[n]!==void 0&&D[n].classes.push(u),$1[n]!==void 0&&$1[n].classes.push(u)})},Pe=function(e,u){e.split(",").forEach(function(i){u!==void 0&&(tt[st==="gen-1"?P1(i):i]=it(u))})},Ue=function(e,u,i){let n=P1(e);if(et().securityLevel!=="loose"||u===void 0)return;let c=[];if(typeof i=="string"){c=i.split(/,(?=(?:(?:[^"]*"){2})*[^"]*$)/);for(let l=0;l")),c.classed("hover",!0)}).on("mouseout",function(){u.transition().duration(500).style("opacity",0),w1(this).classed("hover",!1)})};ut.push(ce);const oe=function(e="gen-1"){D={},V1={},H=[],ut=[ce],c1=[],$1={},Z1=0,tt={},At=!0,st=e,L1=et(),Ne()},le=e=>{st=e||"gen-2"},he=function(){return"fill:#ffa;stroke: #f66; stroke-width: 3px; stroke-dasharray: 5, 5;fill:#ffa;stroke: #666;"},fe=function(e,u,i){let n=e.text.trim(),c=i.text;e===i&&i.text.match(/\s/)&&(n=void 0);function l(X){const o1={boolean:{},number:{},string:{}},p1=[];let A1;return{nodeList:X.filter(function(k){const l1=typeof k;return k.stmt&&k.stmt==="dir"?(A1=k.value,!1):k.trim()===""?!1:l1 in o1?o1[l1].hasOwnProperty(k)?!1:o1[l1][k]=!0:p1.includes(k)?!1:p1.push(k)}),dir:A1}}let h=[];const{nodeList:U,dir:F}=l(h.concat.apply(h,u));if(h=U,st==="gen-1")for(let X=0;X2e3)return;if(pe[O1]=u,c1[u].id===e)return{result:!0,count:0};let n=0,c=1;for(;n=0){const h=Ae(e,l);if(h.result)return{result:!0,count:c+h.count};c=c+h.count}n=n+1}return{result:!1,count:c}},de=function(e){return pe[e]},Ee=function(){O1=-1,c1.length>0&&Ae("none",c1.length-1)},ke=function(){return c1},be=()=>At?(At=!1,!0):!1,Me=e=>{let u=e.trim(),i="arrow_open";switch(u[0]){case"<":i="arrow_point",u=u.slice(1);break;case"x":i="arrow_cross",u=u.slice(1);break;case"o":i="arrow_circle",u=u.slice(1);break}let n="normal";return u.includes("=")&&(n="thick"),u.includes(".")&&(n="dotted"),{type:i,stroke:n}},Ke=(e,u)=>{const i=u.length;let n=0;for(let c=0;c{const u=e.trim();let i=u.slice(0,-1),n="arrow_open";switch(u.slice(-1)){case"x":n="arrow_cross",u[0]==="x"&&(n="double_"+n,i=i.slice(1));break;case">":n="arrow_point",u[0]==="<"&&(n="double_"+n,i=i.slice(1));break;case"o":n="arrow_circle",u[0]==="o"&&(n="double_"+n,i=i.slice(1));break}let c="normal",l=i.length-1;i[0]==="="&&(c="thick"),i[0]==="~"&&(c="invisible");let h=Ke(".",i);return h&&(c="dotted",l=h),{type:n,stroke:c,length:l}},ge=(e,u)=>{const i=Ye(e);let n;if(u){if(n=Me(u),n.stroke!==i.stroke)return{type:"INVALID",stroke:"INVALID"};if(n.type==="arrow_open")n.type=i.type;else{if(n.type!==i.type)return{type:"INVALID",stroke:"INVALID"};n.type="double_"+n.type}return n.type==="double_arrow"&&(n.type="double_arrow_point"),n.length=i.length,n}return i},De=(e,u)=>{let i=!1;return e.forEach(n=>{n.nodes.indexOf(u)>=0&&(i=!0)}),i},Fe=(e,u)=>{const i=[];return e.nodes.forEach((n,c)=>{De(u,n)||i.push(e.nodes[c])}),{nodes:i}},Te={firstGraph:be},je={defaultConfig:()=>me.flowchart,setAccTitle:ye,getAccTitle:ve,getAccDescription:Ve,setAccDescription:Le,addVertex:Ht,lookUpDomId:P1,addLink:qt,updateLinkInterpolate:Qt,updateLink:Zt,addClass:Jt,setDirection:$t,setClass:rt,setTooltip:Pe,getTooltip:ee,setClickEvent:se,setLink:te,bindFunctions:ue,getDirection:ie,getVertices:re,getEdges:ne,getClasses:ae,clear:oe,setGen:le,defaultStyle:he,addSubGraph:fe,getDepthFirstPos:de,indexNodes:Ee,getSubGraphs:ke,destructLink:ge,lex:Te,exists:De,makeUniq:Fe,setDiagramTitle:Ie,getDiagramTitle:Re},He=Object.freeze(Object.defineProperty({__proto__:null,addClass:Jt,addLink:qt,addSingleLink:Wt,addSubGraph:fe,addVertex:Ht,bindFunctions:ue,clear:oe,default:je,defaultStyle:he,destructLink:ge,firstGraph:be,getClasses:ae,getDepthFirstPos:de,getDirection:ie,getEdges:ne,getSubGraphs:ke,getTooltip:ee,getVertices:re,indexNodes:Ee,lex:Te,lookUpDomId:P1,setClass:rt,setClickEvent:se,setDirection:$t,setGen:le,setLink:te,updateLink:Zt,updateLinkInterpolate:Qt},Symbol.toStringTag,{value:"Module"}));export{He as d,je as f,Xe as p}; diff --git a/assets/flowDiagram-66a62f08-Dx8iOe0_.js b/assets/flowDiagram-66a62f08-Dx8iOe0_.js new file mode 100644 index 00000000..e5bbcba2 --- /dev/null +++ b/assets/flowDiagram-66a62f08-Dx8iOe0_.js @@ -0,0 +1,4 @@ +import{p as Lt,f as V}from"./flowDb-956e92f1-BNSiZQGL.js";import{h as S,f as tt,G as _t}from"./graph-Es7S6dYR.js";import{h as x,o as U,p as Y,q as et,c as G,r as rt,j as at,l as R,t as z,u as Et}from"./mermaid.core-B_tqKmhs.js";import{u as Tt,r as Nt,p as At,l as Ct,d as M}from"./layout-Cjy8fVPY.js";import{a as N,b as nt,i as st,c as E,e as it,d as ot,f as It,g as Bt,s as Mt}from"./styles-c10674c1-B6ZOCMWN.js";import{l as Dt}from"./line-CC-POSaO.js";import"./index-Be9IN4QR.js";import"./index-3862675e-BNucB7R-.js";import"./clone-WSVs8Prh.js";import"./edges-e0da2a9e-CFrRRtuw.js";import"./createText-2e5e7dd3-CtNqJc9Q.js";import"./channel-nQRcXLRS.js";import"./array-BKyUJesY.js";import"./path-CbwjOpE9.js";function Rt(r){if(!r.ok)throw new Error(r.status+" "+r.statusText);return r.text()}function Gt(r,e){return fetch(r,e).then(Rt)}function Pt(r){return(e,t)=>Gt(e,t).then(n=>new DOMParser().parseFromString(n,r))}var Ut=Pt("image/svg+xml"),H={normal:Wt,vee:Vt,undirected:zt};function $t(r){H=r}function Wt(r,e,t,n){var a=r.append("marker").attr("id",e).attr("viewBox","0 0 10 10").attr("refX",9).attr("refY",5).attr("markerUnits","strokeWidth").attr("markerWidth",8).attr("markerHeight",6).attr("orient","auto"),s=a.append("path").attr("d","M 0 0 L 10 5 L 0 10 z").style("stroke-width",1).style("stroke-dasharray","1,0");N(s,t[n+"Style"]),t[n+"Class"]&&s.attr("class",t[n+"Class"])}function Vt(r,e,t,n){var a=r.append("marker").attr("id",e).attr("viewBox","0 0 10 10").attr("refX",9).attr("refY",5).attr("markerUnits","strokeWidth").attr("markerWidth",8).attr("markerHeight",6).attr("orient","auto"),s=a.append("path").attr("d","M 0 0 L 10 5 L 0 10 L 4 5 z").style("stroke-width",1).style("stroke-dasharray","1,0");N(s,t[n+"Style"]),t[n+"Class"]&&s.attr("class",t[n+"Class"])}function zt(r,e,t,n){var a=r.append("marker").attr("id",e).attr("viewBox","0 0 10 10").attr("refX",9).attr("refY",5).attr("markerUnits","strokeWidth").attr("markerWidth",8).attr("markerHeight",6).attr("orient","auto"),s=a.append("path").attr("d","M 0 5 L 10 5").style("stroke-width",1).style("stroke-dasharray","1,0");N(s,t[n+"Style"]),t[n+"Class"]&&s.attr("class",t[n+"Class"])}function Yt(r,e){var t=r;return t.node().appendChild(e.label),N(t,e.labelStyle),t}function Ht(r,e){for(var t=r.append("text"),n=Xt(e.label).split(` +`),a=0;a0}function T(r,e,t){var n=r.x,a=r.y,s=[],i=Number.POSITIVE_INFINITY,o=Number.POSITIVE_INFINITY;e.forEach(function(p){i=Math.min(i,p.x),o=Math.min(o,p.y)});for(var c=n-r.width/2-i,d=a-r.height/2-o,l=0;l1&&s.sort(function(p,y){var f=p.x-t.x,g=p.y-t.y,k=Math.sqrt(f*f+g*g),I=y.x-t.x,_=y.y-t.y,$=Math.sqrt(I*I+_*_);return k<$?-1:k===$?0:1}),s[0]):(console.log("NO INTERSECTION FOUND, RETURN NODE CENTER",r),r)}function Z(r,e){var t=r.x,n=r.y,a=e.x-t,s=e.y-n,i=r.width/2,o=r.height/2,c,d;return Math.abs(s)*i>Math.abs(a)*o?(s<0&&(o=-o),c=s===0?0:o*a/s,d=o):(a<0&&(i=-i),c=i,d=a===0?0:i*s/a),{x:t+c,y:n+d}}var K={rect:oe,ellipse:le,circle:ce,diamond:de};function ie(r){K=r}function oe(r,e,t){var n=r.insert("rect",":first-child").attr("rx",t.rx).attr("ry",t.ry).attr("x",-e.width/2).attr("y",-e.height/2).attr("width",e.width).attr("height",e.height);return t.intersect=function(a){return Z(t,a)},n}function le(r,e,t){var n=e.width/2,a=e.height/2,s=r.insert("ellipse",":first-child").attr("x",-e.width/2).attr("y",-e.height/2).attr("rx",n).attr("ry",a);return t.intersect=function(i){return ct(t,n,a,i)},s}function ce(r,e,t){var n=Math.max(e.width,e.height)/2,a=r.insert("circle",":first-child").attr("x",-e.width/2).attr("y",-e.height/2).attr("r",n);return t.intersect=function(s){return ne(t,n,s)},a}function de(r,e,t){var n=e.width*Math.SQRT2/2,a=e.height*Math.SQRT2/2,s=[{x:0,y:-a},{x:-n,y:0},{x:0,y:a},{x:n,y:0}],i=r.insert("polygon",":first-child").attr("points",s.map(function(o){return o.x+","+o.y}).join(" "));return t.intersect=function(o){return T(t,s,o)},i}function he(){var r=function(e,t){pe(t);var n=D(e,"output"),a=D(n,"clusters"),s=D(n,"edgePaths"),i=F(D(n,"edgeLabels"),t),o=Q(D(n,"nodes"),t,K);Ct(t),ae(o,t),re(i,t),q(s,t,H);var c=X(a,t);ee(c,t),ve(t)};return r.createNodes=function(e){return arguments.length?(te(e),r):Q},r.createClusters=function(e){return arguments.length?(Ft(e),r):X},r.createEdgeLabels=function(e){return arguments.length?(qt(e),r):F},r.createEdgePaths=function(e){return arguments.length?(Qt(e),r):q},r.shapes=function(e){return arguments.length?(ie(e),r):K},r.arrows=function(e){return arguments.length?($t(e),r):H},r}var ue={paddingLeft:10,paddingRight:10,paddingTop:10,paddingBottom:10,rx:0,ry:0,shape:"rect"},fe={arrowhead:"normal",curve:U};function pe(r){r.nodes().forEach(function(e){var t=r.node(e);!S(t,"label")&&!r.children(e).length&&(t.label=e),S(t,"paddingX")&&M(t,{paddingLeft:t.paddingX,paddingRight:t.paddingX}),S(t,"paddingY")&&M(t,{paddingTop:t.paddingY,paddingBottom:t.paddingY}),S(t,"padding")&&M(t,{paddingLeft:t.padding,paddingRight:t.padding,paddingTop:t.padding,paddingBottom:t.padding}),M(t,ue),tt(["paddingLeft","paddingRight","paddingTop","paddingBottom"],function(n){t[n]=Number(t[n])}),S(t,"width")&&(t._prevWidth=t.width),S(t,"height")&&(t._prevHeight=t.height)}),r.edges().forEach(function(e){var t=r.edge(e);S(t,"label")||(t.label=""),M(t,fe)})}function ve(r){tt(r.nodes(),function(e){var t=r.node(e);S(t,"_prevWidth")?t.width=t._prevWidth:delete t.width,S(t,"_prevHeight")?t.height=t._prevHeight:delete t.height,delete t._prevWidth,delete t._prevHeight})}function D(r,e){var t=r.select("g."+e);return t.empty()&&(t=r.append("g").attr("class",e)),t}function dt(r,e,t){const n=e.width,a=e.height,s=(n+a)*.9,i=[{x:s/2,y:0},{x:s,y:-s/2},{x:s/2,y:-s},{x:0,y:-s/2}],o=A(r,s,s,i);return t.intersect=function(c){return T(t,i,c)},o}function ht(r,e,t){const a=e.height,s=a/4,i=e.width+2*s,o=[{x:s,y:0},{x:i-s,y:0},{x:i,y:-a/2},{x:i-s,y:-a},{x:s,y:-a},{x:0,y:-a/2}],c=A(r,i,a,o);return t.intersect=function(d){return T(t,o,d)},c}function ut(r,e,t){const n=e.width,a=e.height,s=[{x:-a/2,y:0},{x:n,y:0},{x:n,y:-a},{x:-a/2,y:-a},{x:0,y:-a/2}],i=A(r,n,a,s);return t.intersect=function(o){return T(t,s,o)},i}function ft(r,e,t){const n=e.width,a=e.height,s=[{x:-2*a/6,y:0},{x:n-a/6,y:0},{x:n+2*a/6,y:-a},{x:a/6,y:-a}],i=A(r,n,a,s);return t.intersect=function(o){return T(t,s,o)},i}function pt(r,e,t){const n=e.width,a=e.height,s=[{x:2*a/6,y:0},{x:n+a/6,y:0},{x:n-2*a/6,y:-a},{x:-a/6,y:-a}],i=A(r,n,a,s);return t.intersect=function(o){return T(t,s,o)},i}function vt(r,e,t){const n=e.width,a=e.height,s=[{x:-2*a/6,y:0},{x:n+2*a/6,y:0},{x:n-a/6,y:-a},{x:a/6,y:-a}],i=A(r,n,a,s);return t.intersect=function(o){return T(t,s,o)},i}function gt(r,e,t){const n=e.width,a=e.height,s=[{x:a/6,y:0},{x:n-a/6,y:0},{x:n+2*a/6,y:-a},{x:-2*a/6,y:-a}],i=A(r,n,a,s);return t.intersect=function(o){return T(t,s,o)},i}function yt(r,e,t){const n=e.width,a=e.height,s=[{x:0,y:0},{x:n+a/2,y:0},{x:n,y:-a/2},{x:n+a/2,y:-a},{x:0,y:-a}],i=A(r,n,a,s);return t.intersect=function(o){return T(t,s,o)},i}function wt(r,e,t){const n=e.height,a=e.width+n/4,s=r.insert("rect",":first-child").attr("rx",n/2).attr("ry",n/2).attr("x",-a/2).attr("y",-n/2).attr("width",a).attr("height",n);return t.intersect=function(i){return Z(t,i)},s}function mt(r,e,t){const n=e.width,a=e.height,s=[{x:0,y:0},{x:n,y:0},{x:n,y:-a},{x:0,y:-a},{x:0,y:0},{x:-8,y:0},{x:n+8,y:0},{x:n+8,y:-a},{x:-8,y:-a},{x:-8,y:0}],i=A(r,n,a,s);return t.intersect=function(o){return T(t,s,o)},i}function xt(r,e,t){const n=e.width,a=n/2,s=a/(2.5+n/50),i=e.height+s,o="M 0,"+s+" a "+a+","+s+" 0,0,0 "+n+" 0 a "+a+","+s+" 0,0,0 "+-n+" 0 l 0,"+i+" a "+a+","+s+" 0,0,0 "+n+" 0 l 0,"+-i,c=r.attr("label-offset-y",s).insert("path",":first-child").attr("d",o).attr("transform","translate("+-n/2+","+-(i/2+s)+")");return t.intersect=function(d){const l=Z(t,d),v=l.x-t.x;if(a!=0&&(Math.abs(v)t.height/2-s)){let h=s*s*(1-v*v/(a*a));h!=0&&(h=Math.sqrt(h)),h=s-h,d.y-t.y>0&&(h=-h),l.y+=h}return l},c}function ge(r){r.shapes().question=dt,r.shapes().hexagon=ht,r.shapes().stadium=wt,r.shapes().subroutine=mt,r.shapes().cylinder=xt,r.shapes().rect_left_inv_arrow=ut,r.shapes().lean_right=ft,r.shapes().lean_left=pt,r.shapes().trapezoid=vt,r.shapes().inv_trapezoid=gt,r.shapes().rect_right_inv_arrow=yt}function ye(r){r({question:dt}),r({hexagon:ht}),r({stadium:wt}),r({subroutine:mt}),r({cylinder:xt}),r({rect_left_inv_arrow:ut}),r({lean_right:ft}),r({lean_left:pt}),r({trapezoid:vt}),r({inv_trapezoid:gt}),r({rect_right_inv_arrow:yt})}function A(r,e,t,n){return r.insert("polygon",":first-child").attr("points",n.map(function(a){return a.x+","+a.y}).join(" ")).attr("transform","translate("+-e/2+","+t/2+")")}const we={addToRender:ge,addToRenderV2:ye},bt={},me=function(r){const e=Object.keys(r);for(const t of e)bt[t]=r[t]},kt=async function(r,e,t,n,a,s){const i=n?n.select(`[id="${t}"]`):x(`[id="${t}"]`),o=a||document,c=Object.keys(r);for(const d of c){const l=r[d];let v="default";l.classes.length>0&&(v=l.classes.join(" "));const h=Y(l.styles);let u=l.text!==void 0?l.text:l.id,p;if(et(G().flowchart.htmlLabels)){const g={label:await rt(u.replace(/fa[blrs]?:fa-[\w-]+/g,k=>``),G())};p=nt(i,g).node(),p.parentNode.removeChild(p)}else{const g=o.createElementNS("http://www.w3.org/2000/svg","text");g.setAttribute("style",h.labelStyle.replace("color:","fill:"));const k=u.split(at.lineBreakRegex);for(const I of k){const _=o.createElementNS("http://www.w3.org/2000/svg","tspan");_.setAttributeNS("http://www.w3.org/XML/1998/namespace","xml:space","preserve"),_.setAttribute("dy","1em"),_.setAttribute("x","1"),_.textContent=I,g.appendChild(_)}p=g}let y=0,f="";switch(l.type){case"round":y=5,f="rect";break;case"square":f="rect";break;case"diamond":f="question";break;case"hexagon":f="hexagon";break;case"odd":f="rect_left_inv_arrow";break;case"lean_right":f="lean_right";break;case"lean_left":f="lean_left";break;case"trapezoid":f="trapezoid";break;case"inv_trapezoid":f="inv_trapezoid";break;case"odd_right":f="rect_left_inv_arrow";break;case"circle":f="circle";break;case"ellipse":f="ellipse";break;case"stadium":f="stadium";break;case"subroutine":f="subroutine";break;case"cylinder":f="cylinder";break;case"group":f="rect";break;default:f="rect"}R.warn("Adding node",l.id,l.domId),e.setNode(s.db.lookUpDomId(l.id),{labelType:"svg",labelStyle:h.labelStyle,shape:f,label:p,rx:y,ry:y,class:v,style:h.style,id:s.db.lookUpDomId(l.id)})}},St=async function(r,e,t){let n=0,a,s;if(r.defaultStyle!==void 0){const i=Y(r.defaultStyle);a=i.style,s=i.labelStyle}for(const i of r){n++;const o="L-"+i.start+"-"+i.end,c="LS-"+i.start,d="LE-"+i.end,l={};i.type==="arrow_open"?l.arrowhead="none":l.arrowhead="normal";let v="",h="";if(i.style!==void 0){const u=Y(i.style);v=u.style,h=u.labelStyle}else switch(i.stroke){case"normal":v="fill:none",a!==void 0&&(v=a),s!==void 0&&(h=s);break;case"dotted":v="fill:none;stroke-width:2px;stroke-dasharray:3;";break;case"thick":v=" stroke-width: 3.5px;fill:none";break}l.style=v,l.labelStyle=h,i.interpolate!==void 0?l.curve=z(i.interpolate,U):r.defaultInterpolate!==void 0?l.curve=z(r.defaultInterpolate,U):l.curve=z(bt.curve,U),i.text===void 0?i.style!==void 0&&(l.arrowheadStyle="fill: #333"):(l.arrowheadStyle="fill: #333",l.labelpos="c",et(G().flowchart.htmlLabels)?(l.labelType="html",l.label=`${await rt(i.text.replace(/fa[blrs]?:fa-[\w-]+/g,u=>``),G())}`):(l.labelType="text",l.label=i.text.replace(at.lineBreakRegex,` +`),i.style===void 0&&(l.style=l.style||"stroke: #333; stroke-width: 1.5px;fill:none"),l.labelStyle=l.labelStyle.replace("color:","fill:"))),l.id=o,l.class=c+" "+d,l.minlen=i.length||1,e.setEdge(t.db.lookUpDomId(i.start),t.db.lookUpDomId(i.end),l,n)}},xe=function(r,e){return R.info("Extracting classes"),e.db.getClasses()},be=async function(r,e,t,n){R.info("Drawing flowchart");const{securityLevel:a,flowchart:s}=G();let i;a==="sandbox"&&(i=x("#i"+e));const o=a==="sandbox"?x(i.nodes()[0].contentDocument.body):x("body"),c=a==="sandbox"?i.nodes()[0].contentDocument:document;let d=n.db.getDirection();d===void 0&&(d="TD");const l=s.nodeSpacing||50,v=s.rankSpacing||50,h=new _t({multigraph:!0,compound:!0}).setGraph({rankdir:d,nodesep:l,ranksep:v,marginx:8,marginy:8}).setDefaultEdgeLabel(function(){return{}});let u;const p=n.db.getSubGraphs();for(let w=p.length-1;w>=0;w--)u=p[w],n.db.addVertex(u.id,u.title,"group",void 0,u.classes);const y=n.db.getVertices();R.warn("Get vertices",y);const f=n.db.getEdges();let g=0;for(g=p.length-1;g>=0;g--){u=p[g],Mt("cluster").append("text");for(let w=0;w{r.flowchart||(r.flowchart={}),r.flowchart.arrowMarkerAbsolute=r.arrowMarkerAbsolute,ke.setConf(r.flowchart),V.clear(),V.setGen("gen-1")}};export{Pe as diagram}; diff --git a/assets/flowDiagram-v2-96b9c2cf-CxrnYKIo.js b/assets/flowDiagram-v2-96b9c2cf-CxrnYKIo.js new file mode 100644 index 00000000..dc65a619 --- /dev/null +++ b/assets/flowDiagram-v2-96b9c2cf-CxrnYKIo.js @@ -0,0 +1 @@ +import{p as e,f as o}from"./flowDb-956e92f1-BNSiZQGL.js";import{f as t,g as a}from"./styles-c10674c1-B6ZOCMWN.js";import{aq as i}from"./mermaid.core-B_tqKmhs.js";import"./graph-Es7S6dYR.js";import"./layout-Cjy8fVPY.js";import"./index-3862675e-BNucB7R-.js";import"./clone-WSVs8Prh.js";import"./edges-e0da2a9e-CFrRRtuw.js";import"./createText-2e5e7dd3-CtNqJc9Q.js";import"./line-CC-POSaO.js";import"./array-BKyUJesY.js";import"./path-CbwjOpE9.js";import"./channel-nQRcXLRS.js";import"./index-Be9IN4QR.js";const n={parser:e,db:o,renderer:t,styles:a,init:r=>{r.flowchart||(r.flowchart={}),r.flowchart.arrowMarkerAbsolute=r.arrowMarkerAbsolute,i({flowchart:{arrowMarkerAbsolute:r.arrowMarkerAbsolute}}),t.setConf(r.flowchart),o.clear(),o.setGen("gen-2")}};export{n as diagram}; diff --git a/assets/flowchart-elk-definition-4a651766-BEXfWFi4.js b/assets/flowchart-elk-definition-4a651766-BEXfWFi4.js new file mode 100644 index 00000000..3ac4e3d2 --- /dev/null +++ b/assets/flowchart-elk-definition-4a651766-BEXfWFi4.js @@ -0,0 +1,139 @@ +import{d as xNe,p as FNe}from"./flowDb-956e92f1-BNSiZQGL.js";import{l as Ba,h as IO,aZ as xU,u as BNe,p as E0n,t as j0n,o as $U,j as RNe}from"./mermaid.core-B_tqKmhs.js";import{i as KNe,a as _Ne,l as HNe,b as qNe,k as UNe,m as GNe}from"./edges-e0da2a9e-CFrRRtuw.js";import{c as Nse,g as zNe,aT as NU}from"./index-Be9IN4QR.js";import{l as XNe}from"./line-CC-POSaO.js";import"./createText-2e5e7dd3-CtNqJc9Q.js";import"./array-BKyUJesY.js";import"./path-CbwjOpE9.js";var Bse={exports:{}};(function(ut,_t){(function(Xt){ut.exports=Xt()})(function(){return function(){function Xt(gt,Sr,Di){function y(Ht,Jt){if(!Sr[Ht]){if(!gt[Ht]){var ze=typeof NU=="function"&&NU;if(!Jt&&ze)return ze(Ht,!0);if(Wt)return Wt(Ht,!0);var Yi=new Error("Cannot find module '"+Ht+"'");throw Yi.code="MODULE_NOT_FOUND",Yi}var Ri=Sr[Ht]={exports:{}};gt[Ht][0].call(Ri.exports,function(En){var hu=gt[Ht][1][En];return y(hu||En)},Ri,Ri.exports,Xt,gt,Sr,Di)}return Sr[Ht].exports}for(var Wt=typeof NU=="function"&&NU,Bu=0;Bu0&&arguments[0]!==void 0?arguments[0]:{},Yi=ze.defaultLayoutOptions,Ri=Yi===void 0?{}:Yi,En=ze.algorithms,hu=En===void 0?["layered","stress","mrtree","radial","force","disco","sporeOverlap","sporeCompaction","rectpacking"]:En,Qc=ze.workerFactory,Ru=ze.workerUrl;if(y(this,Ht),this.defaultLayoutOptions=Ri,this.initialized=!1,typeof Ru>"u"&&typeof Qc>"u")throw new Error("Cannot construct an ELK without both 'workerUrl' and 'workerFactory'.");var Pr=Qc;typeof Ru<"u"&&typeof Qc>"u"&&(Pr=function(N1){return new Worker(N1)});var Cf=Pr(Ru);if(typeof Cf.postMessage!="function")throw new TypeError("Created worker does not provide the required 'postMessage' function.");this.worker=new Bu(Cf),this.worker.postMessage({cmd:"register",algorithms:hu}).then(function(L1){return Jt.initialized=!0}).catch(console.err)}return Di(Ht,[{key:"layout",value:function(ze){var Yi=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},Ri=Yi.layoutOptions,En=Ri===void 0?this.defaultLayoutOptions:Ri,hu=Yi.logging,Qc=hu===void 0?!1:hu,Ru=Yi.measureExecutionTime,Pr=Ru===void 0?!1:Ru;return ze?this.worker.postMessage({cmd:"layout",graph:ze,layoutOptions:En,options:{logging:Qc,measureExecutionTime:Pr}}):Promise.reject(new Error("Missing mandatory parameter 'graph'."))}},{key:"knownLayoutAlgorithms",value:function(){return this.worker.postMessage({cmd:"algorithms"})}},{key:"knownLayoutOptions",value:function(){return this.worker.postMessage({cmd:"options"})}},{key:"knownLayoutCategories",value:function(){return this.worker.postMessage({cmd:"categories"})}},{key:"terminateWorker",value:function(){this.worker&&this.worker.terminate()}}]),Ht}();Sr.default=Wt;var Bu=function(){function Ht(Jt){var ze=this;if(y(this,Ht),Jt===void 0)throw new Error("Missing mandatory parameter 'worker'.");this.resolvers={},this.worker=Jt,this.worker.onmessage=function(Yi){setTimeout(function(){ze.receive(ze,Yi)},0)}}return Di(Ht,[{key:"postMessage",value:function(ze){var Yi=this.id||0;this.id=Yi+1,ze.id=Yi;var Ri=this;return new Promise(function(En,hu){Ri.resolvers[Yi]=function(Qc,Ru){Qc?(Ri.convertGwtStyleError(Qc),hu(Qc)):En(Ru)},Ri.worker.postMessage(ze)})}},{key:"receive",value:function(ze,Yi){var Ri=Yi.data,En=ze.resolvers[Ri.id];En&&(delete ze.resolvers[Ri.id],Ri.error?En(Ri.error):En(null,Ri.data))}},{key:"terminate",value:function(){this.worker&&this.worker.terminate()}},{key:"convertGwtStyleError",value:function(ze){if(ze){var Yi=ze.__java$exception;Yi&&(Yi.cause&&Yi.cause.backingJsObject&&(ze.cause=Yi.cause.backingJsObject,this.convertGwtStyleError(ze.cause)),delete ze.__java$exception)}}}]),Ht}()},{}],2:[function(Xt,gt,Sr){(function(Di){(function(){var y;typeof window<"u"?y=window:typeof Di<"u"?y=Di:typeof self<"u"&&(y=self);var Wt;function Bu(){}function Ht(){}function Jt(){}function ze(){}function Yi(){}function Ri(){}function En(){}function hu(){}function Qc(){}function Ru(){}function Pr(){}function Cf(){}function L1(){}function N1(){}function og(){}function V3(){}function $1(){}function ul(){}function C0n(){}function M0n(){}function J2(){}function F(){}function T0n(){}function mE(){}function A0n(){}function S0n(){}function P0n(){}function I0n(){}function O0n(){}function FU(){}function D0n(){}function L0n(){}function N0n(){}function OO(){}function $0n(){}function x0n(){}function F0n(){}function DO(){}function B0n(){}function R0n(){}function BU(){}function K0n(){}function _0n(){}function yu(){}function ju(){}function Q2(){}function Y2(){}function H0n(){}function q0n(){}function U0n(){}function G0n(){}function RU(){}function Eu(){}function Z2(){}function np(){}function z0n(){}function X0n(){}function LO(){}function V0n(){}function W0n(){}function J0n(){}function Q0n(){}function Y0n(){}function Z0n(){}function nbn(){}function ebn(){}function tbn(){}function ibn(){}function rbn(){}function cbn(){}function ubn(){}function obn(){}function sbn(){}function fbn(){}function hbn(){}function lbn(){}function abn(){}function dbn(){}function bbn(){}function wbn(){}function gbn(){}function pbn(){}function mbn(){}function vbn(){}function kbn(){}function ybn(){}function jbn(){}function Ebn(){}function Cbn(){}function Mbn(){}function Tbn(){}function KU(){}function Abn(){}function Sbn(){}function Pbn(){}function Ibn(){}function NO(){}function $O(){}function vE(){}function Obn(){}function Dbn(){}function xO(){}function Lbn(){}function Nbn(){}function $bn(){}function kE(){}function xbn(){}function Fbn(){}function Bbn(){}function Rbn(){}function Kbn(){}function _bn(){}function Hbn(){}function qbn(){}function Ubn(){}function _U(){}function Gbn(){}function zbn(){}function HU(){}function Xbn(){}function Vbn(){}function Wbn(){}function Jbn(){}function Qbn(){}function Ybn(){}function Zbn(){}function nwn(){}function ewn(){}function twn(){}function iwn(){}function rwn(){}function cwn(){}function FO(){}function uwn(){}function own(){}function swn(){}function fwn(){}function hwn(){}function lwn(){}function awn(){}function dwn(){}function bwn(){}function qU(){}function UU(){}function wwn(){}function gwn(){}function pwn(){}function mwn(){}function vwn(){}function kwn(){}function ywn(){}function jwn(){}function Ewn(){}function Cwn(){}function Mwn(){}function Twn(){}function Awn(){}function Swn(){}function Pwn(){}function Iwn(){}function Own(){}function Dwn(){}function Lwn(){}function Nwn(){}function $wn(){}function xwn(){}function Fwn(){}function Bwn(){}function Rwn(){}function Kwn(){}function _wn(){}function Hwn(){}function qwn(){}function Uwn(){}function Gwn(){}function zwn(){}function Xwn(){}function Vwn(){}function Wwn(){}function Jwn(){}function Qwn(){}function Ywn(){}function Zwn(){}function ngn(){}function egn(){}function tgn(){}function ign(){}function rgn(){}function cgn(){}function ugn(){}function ogn(){}function sgn(){}function fgn(){}function hgn(){}function lgn(){}function agn(){}function dgn(){}function bgn(){}function wgn(){}function ggn(){}function pgn(){}function mgn(){}function vgn(){}function kgn(){}function ygn(){}function jgn(){}function Egn(){}function Cgn(){}function Mgn(){}function Tgn(){}function Agn(){}function Sgn(){}function Pgn(){}function Ign(){}function Ogn(){}function Dgn(){}function Lgn(){}function Ngn(){}function $gn(){}function xgn(){}function Fgn(){}function Bgn(){}function Rgn(){}function Kgn(){}function _gn(){}function Hgn(){}function qgn(){}function Ugn(){}function Ggn(){}function zgn(){}function Xgn(){}function Vgn(){}function Wgn(){}function Jgn(){}function Qgn(){}function Ygn(){}function Zgn(){}function n2n(){}function e2n(){}function t2n(){}function i2n(){}function r2n(){}function c2n(){}function u2n(){}function GU(){}function o2n(){}function s2n(){}function f2n(){}function h2n(){}function l2n(){}function a2n(){}function d2n(){}function b2n(){}function w2n(){}function g2n(){}function p2n(){}function m2n(){}function v2n(){}function k2n(){}function y2n(){}function j2n(){}function E2n(){}function C2n(){}function M2n(){}function T2n(){}function A2n(){}function S2n(){}function P2n(){}function I2n(){}function O2n(){}function D2n(){}function L2n(){}function N2n(){}function $2n(){}function x2n(){}function F2n(){}function B2n(){}function R2n(){}function K2n(){}function _2n(){}function H2n(){}function q2n(){}function U2n(){}function G2n(){}function z2n(){}function X2n(){}function V2n(){}function W2n(){}function J2n(){}function Q2n(){}function Y2n(){}function Z2n(){}function npn(){}function epn(){}function tpn(){}function ipn(){}function rpn(){}function cpn(){}function upn(){}function opn(){}function spn(){}function fpn(){}function hpn(){}function lpn(){}function apn(){}function dpn(){}function bpn(){}function wpn(){}function gpn(){}function ppn(){}function mpn(){}function vpn(){}function kpn(){}function ypn(){}function jpn(){}function Epn(){}function Cpn(){}function Mpn(){}function zU(){}function Tpn(){}function Apn(){}function Spn(){}function Ppn(){}function Ipn(){}function Opn(){}function Dpn(){}function Lpn(){}function Npn(){}function $pn(){}function XU(){}function xpn(){}function Fpn(){}function Bpn(){}function Rpn(){}function Kpn(){}function _pn(){}function VU(){}function WU(){}function Hpn(){}function JU(){}function QU(){}function qpn(){}function Upn(){}function Gpn(){}function zpn(){}function Xpn(){}function Vpn(){}function Wpn(){}function Jpn(){}function Qpn(){}function Ypn(){}function Zpn(){}function YU(){}function n3n(){}function e3n(){}function t3n(){}function i3n(){}function r3n(){}function c3n(){}function u3n(){}function o3n(){}function s3n(){}function f3n(){}function h3n(){}function l3n(){}function a3n(){}function d3n(){}function b3n(){}function w3n(){}function g3n(){}function p3n(){}function m3n(){}function v3n(){}function k3n(){}function y3n(){}function j3n(){}function E3n(){}function C3n(){}function M3n(){}function T3n(){}function A3n(){}function S3n(){}function P3n(){}function I3n(){}function O3n(){}function D3n(){}function L3n(){}function N3n(){}function $3n(){}function x3n(){}function F3n(){}function B3n(){}function R3n(){}function K3n(){}function _3n(){}function H3n(){}function q3n(){}function U3n(){}function G3n(){}function z3n(){}function X3n(){}function V3n(){}function W3n(){}function J3n(){}function Q3n(){}function Y3n(){}function Z3n(){}function n4n(){}function e4n(){}function t4n(){}function i4n(){}function r4n(){}function c4n(){}function u4n(){}function o4n(){}function s4n(){}function f4n(){}function h4n(){}function l4n(){}function a4n(){}function d4n(){}function b4n(){}function w4n(){}function g4n(){}function p4n(){}function m4n(){}function v4n(){}function k4n(){}function y4n(){}function j4n(){}function E4n(){}function C4n(){}function M4n(){}function T4n(){}function A4n(){}function S4n(){}function P4n(){}function I4n(){}function O4n(){}function _se(){}function D4n(){}function L4n(){}function N4n(){}function $4n(){}function x4n(){}function F4n(){}function B4n(){}function R4n(){}function K4n(){}function _4n(){}function H4n(){}function q4n(){}function U4n(){}function G4n(){}function z4n(){}function X4n(){}function V4n(){}function W4n(){}function J4n(){}function Q4n(){}function Y4n(){}function Z4n(){}function nmn(){}function emn(){}function tmn(){}function imn(){}function rmn(){}function BO(){}function RO(){}function cmn(){}function KO(){}function umn(){}function omn(){}function smn(){}function fmn(){}function hmn(){}function lmn(){}function amn(){}function dmn(){}function bmn(){}function wmn(){}function ZU(){}function gmn(){}function pmn(){}function mmn(){}function Hse(){}function vmn(){}function kmn(){}function ymn(){}function jmn(){}function Emn(){}function Cmn(){}function Mmn(){}function Ra(){}function Tmn(){}function ep(){}function nG(){}function Amn(){}function Smn(){}function Pmn(){}function Imn(){}function Omn(){}function Dmn(){}function Lmn(){}function Nmn(){}function $mn(){}function xmn(){}function Fmn(){}function Bmn(){}function Rmn(){}function Kmn(){}function _mn(){}function Hmn(){}function qmn(){}function Umn(){}function Gmn(){}function hn(){}function zmn(){}function Xmn(){}function Vmn(){}function Wmn(){}function Jmn(){}function Qmn(){}function Ymn(){}function Zmn(){}function nvn(){}function evn(){}function tvn(){}function ivn(){}function rvn(){}function _O(){}function cvn(){}function uvn(){}function ovn(){}function yE(){}function svn(){}function HO(){}function jE(){}function fvn(){}function eG(){}function hvn(){}function lvn(){}function avn(){}function dvn(){}function bvn(){}function wvn(){}function EE(){}function gvn(){}function pvn(){}function CE(){}function mvn(){}function ME(){}function vvn(){}function tG(){}function kvn(){}function qO(){}function iG(){}function yvn(){}function jvn(){}function Evn(){}function Cvn(){}function qse(){}function Mvn(){}function Tvn(){}function Avn(){}function Svn(){}function Pvn(){}function Ivn(){}function Ovn(){}function Dvn(){}function Lvn(){}function Nvn(){}function W3(){}function UO(){}function $vn(){}function xvn(){}function Fvn(){}function Bvn(){}function Rvn(){}function Kvn(){}function _vn(){}function Hvn(){}function qvn(){}function Uvn(){}function Gvn(){}function zvn(){}function Xvn(){}function Vvn(){}function Wvn(){}function Jvn(){}function Qvn(){}function Yvn(){}function Zvn(){}function n6n(){}function e6n(){}function t6n(){}function i6n(){}function r6n(){}function c6n(){}function u6n(){}function o6n(){}function s6n(){}function f6n(){}function h6n(){}function l6n(){}function a6n(){}function d6n(){}function b6n(){}function w6n(){}function g6n(){}function p6n(){}function m6n(){}function v6n(){}function k6n(){}function y6n(){}function j6n(){}function E6n(){}function C6n(){}function M6n(){}function T6n(){}function A6n(){}function S6n(){}function P6n(){}function I6n(){}function O6n(){}function D6n(){}function L6n(){}function N6n(){}function $6n(){}function x6n(){}function F6n(){}function B6n(){}function R6n(){}function K6n(){}function _6n(){}function H6n(){}function q6n(){}function U6n(){}function G6n(){}function z6n(){}function X6n(){}function V6n(){}function W6n(){}function J6n(){}function Q6n(){}function Y6n(){}function Z6n(){}function n5n(){}function e5n(){}function t5n(){}function i5n(){}function r5n(){}function c5n(){}function u5n(){}function o5n(){}function s5n(){}function f5n(){}function h5n(){}function l5n(){}function a5n(){}function d5n(){}function b5n(){}function w5n(){}function g5n(){}function p5n(){}function m5n(){}function v5n(){}function k5n(){}function y5n(){}function j5n(){}function E5n(){}function C5n(){}function M5n(){}function T5n(){}function A5n(){}function rG(){}function S5n(){}function P5n(){}function GO(){n6()}function I5n(){u7()}function O5n(){aA()}function D5n(){Q$()}function L5n(){M5()}function N5n(){ann()}function $5n(){qs()}function x5n(){jZ()}function F5n(){zk()}function B5n(){o7()}function R5n(){$7()}function K5n(){aCn()}function _5n(){Hp()}function H5n(){KLn()}function q5n(){yQ()}function U5n(){SOn()}function G5n(){jQ()}function z5n(){pNn()}function X5n(){AOn()}function V5n(){cm()}function W5n(){nxn()}function J5n(){Z$n()}function Q5n(){EDn()}function Y5n(){exn()}function Z5n(){ca()}function n8n(){ZE()}function e8n(){ltn()}function t8n(){cn()}function i8n(){txn()}function r8n(){Pxn()}function c8n(){POn()}function u8n(){nKn()}function o8n(){IOn()}function s8n(){bUn()}function f8n(){qnn()}function h8n(){kl()}function l8n(){wBn()}function a8n(){lc()}function d8n(){ROn()}function b8n(){_p()}function w8n(){Men()}function g8n(){ua()}function p8n(){Ten()}function m8n(){Bf()}function v8n(){Qk()}function k8n(){EF()}function y8n(){Dx()}function cf(){wSn()}function j8n(){YM()}function E8n(){mA()}function cG(){qe()}function C8n(){NT()}function M8n(){YY()}function uG(){D$()}function oG(){KA()}function T8n(){Fen()}function sG(n){Jn(n)}function A8n(n){this.a=n}function TE(n){this.a=n}function S8n(n){this.a=n}function P8n(n){this.a=n}function I8n(n){this.a=n}function O8n(n){this.a=n}function D8n(n){this.a=n}function L8n(n){this.a=n}function fG(n){this.a=n}function hG(n){this.a=n}function N8n(n){this.a=n}function $8n(n){this.a=n}function zO(n){this.a=n}function x8n(n){this.a=n}function F8n(n){this.a=n}function XO(n){this.a=n}function VO(n){this.a=n}function B8n(n){this.a=n}function WO(n){this.a=n}function R8n(n){this.a=n}function K8n(n){this.a=n}function _8n(n){this.a=n}function lG(n){this.b=n}function H8n(n){this.c=n}function q8n(n){this.a=n}function U8n(n){this.a=n}function G8n(n){this.a=n}function z8n(n){this.a=n}function X8n(n){this.a=n}function V8n(n){this.a=n}function W8n(n){this.a=n}function J8n(n){this.a=n}function Q8n(n){this.a=n}function Y8n(n){this.a=n}function Z8n(n){this.a=n}function n9n(n){this.a=n}function e9n(n){this.a=n}function aG(n){this.a=n}function dG(n){this.a=n}function AE(n){this.a=n}function z9(n){this.a=n}function Ka(){this.a=[]}function t9n(n,e){n.a=e}function Use(n,e){n.a=e}function Gse(n,e){n.b=e}function zse(n,e){n.b=e}function Xse(n,e){n.b=e}function bG(n,e){n.j=e}function Vse(n,e){n.g=e}function Wse(n,e){n.i=e}function Jse(n,e){n.c=e}function Qse(n,e){n.c=e}function Yse(n,e){n.d=e}function Zse(n,e){n.d=e}function _a(n,e){n.k=e}function nfe(n,e){n.c=e}function wG(n,e){n.c=e}function gG(n,e){n.a=e}function efe(n,e){n.a=e}function tfe(n,e){n.f=e}function ife(n,e){n.a=e}function rfe(n,e){n.b=e}function JO(n,e){n.d=e}function SE(n,e){n.i=e}function pG(n,e){n.o=e}function cfe(n,e){n.r=e}function ufe(n,e){n.a=e}function ofe(n,e){n.b=e}function i9n(n,e){n.e=e}function sfe(n,e){n.f=e}function mG(n,e){n.g=e}function ffe(n,e){n.e=e}function hfe(n,e){n.f=e}function lfe(n,e){n.f=e}function QO(n,e){n.a=e}function YO(n,e){n.b=e}function afe(n,e){n.n=e}function dfe(n,e){n.a=e}function bfe(n,e){n.c=e}function wfe(n,e){n.c=e}function gfe(n,e){n.c=e}function pfe(n,e){n.a=e}function mfe(n,e){n.a=e}function vfe(n,e){n.d=e}function kfe(n,e){n.d=e}function yfe(n,e){n.e=e}function jfe(n,e){n.e=e}function Efe(n,e){n.g=e}function Cfe(n,e){n.f=e}function Mfe(n,e){n.j=e}function Tfe(n,e){n.a=e}function Afe(n,e){n.a=e}function Sfe(n,e){n.b=e}function r9n(n){n.b=n.a}function c9n(n){n.c=n.d.d}function vG(n){this.a=n}function kG(n){this.a=n}function yG(n){this.a=n}function Ha(n){this.a=n}function qa(n){this.a=n}function X9(n){this.a=n}function u9n(n){this.a=n}function jG(n){this.a=n}function V9(n){this.a=n}function PE(n){this.a=n}function ol(n){this.a=n}function Sb(n){this.a=n}function o9n(n){this.a=n}function s9n(n){this.a=n}function ZO(n){this.b=n}function J3(n){this.b=n}function Q3(n){this.b=n}function nD(n){this.a=n}function f9n(n){this.a=n}function eD(n){this.c=n}function C(n){this.c=n}function h9n(n){this.c=n}function Xv(n){this.d=n}function EG(n){this.a=n}function Te(n){this.a=n}function l9n(n){this.a=n}function CG(n){this.a=n}function MG(n){this.a=n}function TG(n){this.a=n}function AG(n){this.a=n}function SG(n){this.a=n}function PG(n){this.a=n}function Y3(n){this.a=n}function a9n(n){this.a=n}function d9n(n){this.a=n}function Z3(n){this.a=n}function b9n(n){this.a=n}function w9n(n){this.a=n}function g9n(n){this.a=n}function p9n(n){this.a=n}function m9n(n){this.a=n}function v9n(n){this.a=n}function k9n(n){this.a=n}function y9n(n){this.a=n}function j9n(n){this.a=n}function E9n(n){this.a=n}function C9n(n){this.a=n}function M9n(n){this.a=n}function T9n(n){this.a=n}function A9n(n){this.a=n}function S9n(n){this.a=n}function Vv(n){this.a=n}function P9n(n){this.a=n}function I9n(n){this.a=n}function O9n(n){this.a=n}function D9n(n){this.a=n}function IE(n){this.a=n}function L9n(n){this.a=n}function N9n(n){this.a=n}function n4(n){this.a=n}function IG(n){this.a=n}function $9n(n){this.a=n}function x9n(n){this.a=n}function F9n(n){this.a=n}function B9n(n){this.a=n}function R9n(n){this.a=n}function K9n(n){this.a=n}function OG(n){this.a=n}function DG(n){this.a=n}function LG(n){this.a=n}function Wv(n){this.a=n}function OE(n){this.e=n}function e4(n){this.a=n}function _9n(n){this.a=n}function tp(n){this.a=n}function NG(n){this.a=n}function H9n(n){this.a=n}function q9n(n){this.a=n}function U9n(n){this.a=n}function G9n(n){this.a=n}function z9n(n){this.a=n}function X9n(n){this.a=n}function V9n(n){this.a=n}function W9n(n){this.a=n}function J9n(n){this.a=n}function Q9n(n){this.a=n}function Y9n(n){this.a=n}function $G(n){this.a=n}function Z9n(n){this.a=n}function n7n(n){this.a=n}function e7n(n){this.a=n}function t7n(n){this.a=n}function i7n(n){this.a=n}function r7n(n){this.a=n}function c7n(n){this.a=n}function u7n(n){this.a=n}function o7n(n){this.a=n}function s7n(n){this.a=n}function f7n(n){this.a=n}function h7n(n){this.a=n}function l7n(n){this.a=n}function a7n(n){this.a=n}function d7n(n){this.a=n}function b7n(n){this.a=n}function w7n(n){this.a=n}function g7n(n){this.a=n}function p7n(n){this.a=n}function m7n(n){this.a=n}function v7n(n){this.a=n}function k7n(n){this.a=n}function y7n(n){this.a=n}function j7n(n){this.a=n}function E7n(n){this.a=n}function C7n(n){this.a=n}function M7n(n){this.a=n}function T7n(n){this.a=n}function A7n(n){this.a=n}function S7n(n){this.a=n}function P7n(n){this.a=n}function I7n(n){this.a=n}function O7n(n){this.a=n}function D7n(n){this.a=n}function L7n(n){this.a=n}function N7n(n){this.a=n}function $7n(n){this.a=n}function x7n(n){this.a=n}function F7n(n){this.c=n}function B7n(n){this.b=n}function R7n(n){this.a=n}function K7n(n){this.a=n}function _7n(n){this.a=n}function H7n(n){this.a=n}function q7n(n){this.a=n}function U7n(n){this.a=n}function G7n(n){this.a=n}function z7n(n){this.a=n}function X7n(n){this.a=n}function V7n(n){this.a=n}function W7n(n){this.a=n}function J7n(n){this.a=n}function Q7n(n){this.a=n}function Y7n(n){this.a=n}function Z7n(n){this.a=n}function nkn(n){this.a=n}function ekn(n){this.a=n}function tkn(n){this.a=n}function ikn(n){this.a=n}function rkn(n){this.a=n}function ckn(n){this.a=n}function ukn(n){this.a=n}function okn(n){this.a=n}function skn(n){this.a=n}function fkn(n){this.a=n}function hkn(n){this.a=n}function lkn(n){this.a=n}function sl(n){this.a=n}function sg(n){this.a=n}function akn(n){this.a=n}function dkn(n){this.a=n}function bkn(n){this.a=n}function wkn(n){this.a=n}function gkn(n){this.a=n}function pkn(n){this.a=n}function mkn(n){this.a=n}function vkn(n){this.a=n}function kkn(n){this.a=n}function ykn(n){this.a=n}function jkn(n){this.a=n}function Ekn(n){this.a=n}function Ckn(n){this.a=n}function Mkn(n){this.a=n}function Tkn(n){this.a=n}function Akn(n){this.a=n}function Skn(n){this.a=n}function Pkn(n){this.a=n}function Ikn(n){this.a=n}function Okn(n){this.a=n}function Dkn(n){this.a=n}function Lkn(n){this.a=n}function Nkn(n){this.a=n}function $kn(n){this.a=n}function xkn(n){this.a=n}function Fkn(n){this.a=n}function DE(n){this.a=n}function Bkn(n){this.f=n}function Rkn(n){this.a=n}function Kkn(n){this.a=n}function _kn(n){this.a=n}function Hkn(n){this.a=n}function qkn(n){this.a=n}function Ukn(n){this.a=n}function Gkn(n){this.a=n}function zkn(n){this.a=n}function Xkn(n){this.a=n}function Vkn(n){this.a=n}function Wkn(n){this.a=n}function Jkn(n){this.a=n}function Qkn(n){this.a=n}function Ykn(n){this.a=n}function Zkn(n){this.a=n}function nyn(n){this.a=n}function eyn(n){this.a=n}function tyn(n){this.a=n}function iyn(n){this.a=n}function ryn(n){this.a=n}function cyn(n){this.a=n}function uyn(n){this.a=n}function oyn(n){this.a=n}function syn(n){this.a=n}function fyn(n){this.a=n}function hyn(n){this.a=n}function lyn(n){this.a=n}function ayn(n){this.a=n}function tD(n){this.a=n}function xG(n){this.a=n}function lt(n){this.b=n}function dyn(n){this.a=n}function byn(n){this.a=n}function wyn(n){this.a=n}function gyn(n){this.a=n}function pyn(n){this.a=n}function myn(n){this.a=n}function vyn(n){this.a=n}function kyn(n){this.b=n}function yyn(n){this.a=n}function W9(n){this.a=n}function jyn(n){this.a=n}function Eyn(n){this.a=n}function FG(n){this.c=n}function LE(n){this.e=n}function NE(n){this.a=n}function $E(n){this.a=n}function iD(n){this.a=n}function Cyn(n){this.d=n}function Myn(n){this.a=n}function BG(n){this.a=n}function RG(n){this.a=n}function Wd(n){this.e=n}function Pfe(){this.a=0}function de(){Hu(this)}function Z(){pL(this)}function rD(){sIn(this)}function Tyn(){}function Jd(){this.c=Gdn}function Ayn(n,e){n.b+=e}function Ife(n,e){e.Wb(n)}function Ofe(n){return n.a}function Dfe(n){return n.a}function Lfe(n){return n.a}function Nfe(n){return n.a}function $fe(n){return n.a}function M(n){return n.e}function xfe(){return null}function Ffe(){return null}function Bfe(){Cz(),pLe()}function Rfe(n){n.b.Of(n.e)}function Syn(n){n.b=new CD}function Jv(n,e){n.b=e-n.b}function Qv(n,e){n.a=e-n.a}function Bn(n,e){n.push(e)}function Pyn(n,e){n.sort(e)}function Iyn(n,e){e.jd(n.a)}function Kfe(n,e){gi(e,n)}function _fe(n,e,t){n.Yd(t,e)}function J9(n,e){n.e=e,e.b=n}function KG(n){uh(),this.a=n}function Oyn(n){uh(),this.a=n}function Dyn(n){uh(),this.a=n}function cD(n){m0(),this.a=n}function Lyn(n){O4(),VK.le(n)}function _G(){_G=F,new de}function Ua(){YTn.call(this)}function HG(){YTn.call(this)}function qG(){Ua.call(this)}function uD(){Ua.call(this)}function Nyn(){Ua.call(this)}function Q9(){Ua.call(this)}function Cu(){Ua.call(this)}function ip(){Ua.call(this)}function Pe(){Ua.call(this)}function Bo(){Ua.call(this)}function $yn(){Ua.call(this)}function nc(){Ua.call(this)}function xyn(){Ua.call(this)}function Fyn(){this.a=this}function xE(){this.Bb|=256}function Byn(){this.b=new GMn}function Pb(n,e){n.length=e}function FE(n,e){nn(n.a,e)}function Hfe(n,e){bnn(n.c,e)}function qfe(n,e){fi(n.b,e)}function Ufe(n,e){uA(n.a,e)}function Gfe(n,e){cx(n.a,e)}function t4(n,e){it(n.e,e)}function rp(n){jA(n.c,n.b)}function zfe(n,e){n.kc().Nb(e)}function UG(n){this.a=B5e(n)}function ni(){this.a=new de}function Ryn(){this.a=new de}function GG(){this.a=new rCn}function BE(){this.a=new Z}function oD(){this.a=new Z}function zG(){this.a=new Z}function hs(){this.a=new cbn}function Ga(){this.a=new NLn}function XG(){this.a=new _U}function VG(){this.a=new TOn}function WG(){this.a=new BAn}function Kyn(){this.a=new Z}function _yn(){this.a=new Z}function Hyn(){this.a=new Z}function JG(){this.a=new Z}function qyn(){this.d=new Z}function Uyn(){this.a=new zOn}function Gyn(){this.a=new ni}function zyn(){this.a=new de}function Xyn(){this.b=new de}function Vyn(){this.b=new Z}function QG(){this.e=new Z}function Wyn(){this.a=new Z5n}function Jyn(){this.d=new Z}function Qyn(){QIn.call(this)}function Yyn(){QIn.call(this)}function Zyn(){Z.call(this)}function YG(){qG.call(this)}function ZG(){BE.call(this)}function njn(){qC.call(this)}function ejn(){JG.call(this)}function Yv(){Tyn.call(this)}function sD(){Yv.call(this)}function cp(){Tyn.call(this)}function nz(){cp.call(this)}function tjn(){rz.call(this)}function ijn(){rz.call(this)}function rjn(){rz.call(this)}function cjn(){cz.call(this)}function Zv(){svn.call(this)}function ez(){svn.call(this)}function Mu(){Ct.call(this)}function ujn(){yjn.call(this)}function ojn(){yjn.call(this)}function sjn(){de.call(this)}function fjn(){de.call(this)}function hjn(){de.call(this)}function fD(){cxn.call(this)}function ljn(){ni.call(this)}function ajn(){xE.call(this)}function hD(){BX.call(this)}function tz(){de.call(this)}function lD(){BX.call(this)}function aD(){de.call(this)}function djn(){de.call(this)}function iz(){ME.call(this)}function bjn(){iz.call(this)}function wjn(){ME.call(this)}function gjn(){rG.call(this)}function rz(){this.a=new ni}function pjn(){this.a=new de}function mjn(){this.a=new Z}function cz(){this.a=new de}function up(){this.a=new Ct}function vjn(){this.j=new Z}function kjn(){this.a=new mEn}function yjn(){this.a=new mvn}function uz(){this.a=new Z4n}function n6(){n6=F,KK=new Ht}function dD(){dD=F,_K=new Ejn}function bD(){bD=F,HK=new jjn}function jjn(){XO.call(this,"")}function Ejn(){XO.call(this,"")}function Cjn(n){S$n.call(this,n)}function Mjn(n){S$n.call(this,n)}function oz(n){fG.call(this,n)}function sz(n){XEn.call(this,n)}function Xfe(n){XEn.call(this,n)}function Vfe(n){sz.call(this,n)}function Wfe(n){sz.call(this,n)}function Jfe(n){sz.call(this,n)}function Tjn(n){zN.call(this,n)}function Ajn(n){zN.call(this,n)}function Sjn(n){uSn.call(this,n)}function Pjn(n){Oz.call(this,n)}function e6(n){WE.call(this,n)}function fz(n){WE.call(this,n)}function Ijn(n){WE.call(this,n)}function hz(n){mje.call(this,n)}function lz(n){hz.call(this,n)}function ec(n){APn.call(this,n)}function Ojn(n){ec.call(this,n)}function op(){z9.call(this,{})}function Djn(){Djn=F,dQn=new M0n}function RE(){RE=F,GK=new STn}function Ljn(){Ljn=F,oun=new Bu}function az(){az=F,sun=new N1}function KE(){KE=F,P8=new $1}function wD(n){b4(),this.a=n}function gD(n){RQ(),this.a=n}function Qd(n){nN(),this.f=n}function pD(n){nN(),this.f=n}function Njn(n){bSn(),this.a=n}function $jn(n){n.b=null,n.c=0}function Qfe(n,e){n.e=e,bqn(n,e)}function Yfe(n,e){n.a=e,cEe(n)}function mD(n,e,t){n.a[e.g]=t}function Zfe(n,e,t){kke(t,n,e)}function nhe(n,e){Wae(e.i,n.n)}function xjn(n,e){v6e(n).Cd(e)}function ehe(n,e){n.a.ec().Mc(e)}function Fjn(n,e){return n.g-e.g}function the(n,e){return n*n/e}function on(n){return Jn(n),n}function $(n){return Jn(n),n}function Y9(n){return Jn(n),n}function ihe(n){return new AE(n)}function rhe(n){return new qb(n)}function dz(n){return Jn(n),n}function che(n){return Jn(n),n}function _E(n){ec.call(this,n)}function Ir(n){ec.call(this,n)}function Bjn(n){ec.call(this,n)}function vD(n){APn.call(this,n)}function i4(n){ec.call(this,n)}function Gn(n){ec.call(this,n)}function Or(n){ec.call(this,n)}function Rjn(n){ec.call(this,n)}function sp(n){ec.call(this,n)}function Kl(n){ec.call(this,n)}function _l(n){ec.call(this,n)}function fp(n){ec.call(this,n)}function nh(n){ec.call(this,n)}function kD(n){ec.call(this,n)}function Le(n){ec.call(this,n)}function Ku(n){Jn(n),this.a=n}function bz(n){return ld(n),n}function t6(n){TW(n,n.length)}function i6(n){return n.b==n.c}function Ib(n){return!!n&&n.b}function uhe(n){return!!n&&n.k}function ohe(n){return!!n&&n.j}function she(n,e,t){n.c.Ef(e,t)}function Kjn(n,e){n.be(e),e.ae(n)}function hp(n){uh(),this.a=Se(n)}function yD(){this.a=Oe(Se(ur))}function _jn(){throw M(new Pe)}function fhe(){throw M(new Pe)}function wz(){throw M(new Pe)}function Hjn(){throw M(new Pe)}function hhe(){throw M(new Pe)}function lhe(){throw M(new Pe)}function HE(){HE=F,O4()}function Hl(){X9.call(this,"")}function r6(){X9.call(this,"")}function x1(){X9.call(this,"")}function lp(){X9.call(this,"")}function gz(n){Ir.call(this,n)}function pz(n){Ir.call(this,n)}function eh(n){Gn.call(this,n)}function r4(n){Q3.call(this,n)}function qjn(n){r4.call(this,n)}function jD(n){BC.call(this,n)}function ED(n){JX.call(this,n,0)}function CD(){sJ.call(this,12,3)}function T(n,e){return kOn(n,e)}function qE(n,e){return o$(n,e)}function ahe(n,e){return n.a-e.a}function dhe(n,e){return n.a-e.a}function bhe(n,e){return n.a-e.a}function whe(n,e){return e in n.a}function Ujn(n){return n.a?n.b:0}function ghe(n){return n.a?n.b:0}function phe(n,e,t){e.Cd(n.a[t])}function mhe(n,e,t){e.Pe(n.a[t])}function vhe(n,e){n.b=new rr(e)}function khe(n,e){return n.b=e,n}function Gjn(n,e){return n.c=e,n}function zjn(n,e){return n.f=e,n}function yhe(n,e){return n.g=e,n}function mz(n,e){return n.a=e,n}function vz(n,e){return n.f=e,n}function jhe(n,e){return n.k=e,n}function kz(n,e){return n.a=e,n}function Ehe(n,e){return n.e=e,n}function yz(n,e){return n.e=e,n}function Che(n,e){return n.f=e,n}function Mhe(n,e){n.b=!0,n.d=e}function The(n,e){return n.b-e.b}function Ahe(n,e){return n.g-e.g}function She(n,e){return n?0:e-1}function Xjn(n,e){return n?0:e-1}function Phe(n,e){return n?e-1:0}function Ihe(n,e){return n.s-e.s}function Ohe(n,e){return e.rg(n)}function Yd(n,e){return n.b=e,n}function UE(n,e){return n.a=e,n}function Zd(n,e){return n.c=e,n}function n0(n,e){return n.d=e,n}function e0(n,e){return n.e=e,n}function jz(n,e){return n.f=e,n}function c6(n,e){return n.a=e,n}function c4(n,e){return n.b=e,n}function u4(n,e){return n.c=e,n}function an(n,e){return n.c=e,n}function Sn(n,e){return n.b=e,n}function dn(n,e){return n.d=e,n}function bn(n,e){return n.e=e,n}function Dhe(n,e){return n.f=e,n}function wn(n,e){return n.g=e,n}function gn(n,e){return n.a=e,n}function pn(n,e){return n.i=e,n}function mn(n,e){return n.j=e,n}function Lhe(n,e){ca(),ic(e,n)}function Nhe(n,e,t){Jbe(n.a,e,t)}function GE(n){$L.call(this,n)}function Vjn(n){Z5e.call(this,n)}function Wjn(n){SIn.call(this,n)}function Ez(n){SIn.call(this,n)}function F1(n){S0.call(this,n)}function Jjn(n){CN.call(this,n)}function Qjn(n){CN.call(this,n)}function Yjn(){DX.call(this,"")}function Li(){this.a=0,this.b=0}function Zjn(){this.b=0,this.a=0}function nEn(n,e){n.b=0,Zb(n,e)}function eEn(n,e){return n.k=e,n}function $he(n,e){return n.j=e,n}function xhe(n,e){n.c=e,n.b=!0}function tEn(){tEn=F,TQn=Xke()}function B1(){B1=F,voe=rke()}function iEn(){iEn=F,Ti=gye()}function Cz(){Cz=F,Oa=z4()}function o4(){o4=F,Udn=cke()}function rEn(){rEn=F,ise=uke()}function Mz(){Mz=F,yc=tEe()}function uf(n){return n.e&&n.e()}function cEn(n){return n.l|n.m<<22}function uEn(n,e){return n.c._b(e)}function oEn(n,e){return rBn(n.b,e)}function MD(n){return n?n.d:null}function Fhe(n){return n?n.g:null}function Bhe(n){return n?n.i:null}function za(n){return ll(n),n.o}function fg(n,e){return n.a+=e,n}function TD(n,e){return n.a+=e,n}function ql(n,e){return n.a+=e,n}function t0(n,e){return n.a+=e,n}function Tz(n,e){for(;n.Bd(e););}function zE(n){this.a=new ap(n)}function sEn(){throw M(new Pe)}function fEn(){throw M(new Pe)}function hEn(){throw M(new Pe)}function lEn(){throw M(new Pe)}function aEn(){throw M(new Pe)}function dEn(){throw M(new Pe)}function Ul(n){this.a=new iN(n)}function bEn(){this.a=new K5(Rln)}function wEn(){this.b=new K5(rln)}function gEn(){this.a=new K5(f1n)}function pEn(){this.b=new K5(Fq)}function mEn(){this.b=new K5(Fq)}function XE(n){this.a=0,this.b=n}function Az(n){zGn(),ILe(this,n)}function s4(n){return z1(n),n.a}function Z9(n){return n.b!=n.d.c}function Sz(n,e){return n.d[e.p]}function vEn(n,e){return XTe(n,e)}function Pz(n,e,t){n.splice(e,t)}function hg(n,e){for(;n.Re(e););}function kEn(n){n.c?Dqn(n):Lqn(n)}function yEn(){throw M(new Pe)}function jEn(){throw M(new Pe)}function EEn(){throw M(new Pe)}function CEn(){throw M(new Pe)}function MEn(){throw M(new Pe)}function TEn(){throw M(new Pe)}function AEn(){throw M(new Pe)}function SEn(){throw M(new Pe)}function PEn(){throw M(new Pe)}function IEn(){throw M(new Pe)}function Rhe(){throw M(new nc)}function Khe(){throw M(new nc)}function n7(n){this.a=new OEn(n)}function OEn(n){Ume(this,n,jje())}function e7(n){return!n||oIn(n)}function t7(n){return Zf[n]!=-1}function _he(){cP!=0&&(cP=0),uP=-1}function DEn(){RK==null&&(RK=[])}function i7(n,e){Cg.call(this,n,e)}function f4(n,e){i7.call(this,n,e)}function LEn(n,e){this.a=n,this.b=e}function NEn(n,e){this.a=n,this.b=e}function $En(n,e){this.a=n,this.b=e}function xEn(n,e){this.a=n,this.b=e}function FEn(n,e){this.a=n,this.b=e}function BEn(n,e){this.a=n,this.b=e}function REn(n,e){this.a=n,this.b=e}function h4(n,e){this.e=n,this.d=e}function Iz(n,e){this.b=n,this.c=e}function KEn(n,e){this.b=n,this.a=e}function _En(n,e){this.b=n,this.a=e}function HEn(n,e){this.b=n,this.a=e}function qEn(n,e){this.b=n,this.a=e}function UEn(n,e){this.a=n,this.b=e}function AD(n,e){this.a=n,this.b=e}function GEn(n,e){this.a=n,this.f=e}function i0(n,e){this.g=n,this.i=e}function je(n,e){this.f=n,this.g=e}function zEn(n,e){this.b=n,this.c=e}function XEn(n){KX(n.dc()),this.c=n}function Hhe(n,e){this.a=n,this.b=e}function VEn(n,e){this.a=n,this.b=e}function WEn(n){this.a=u(Se(n),15)}function Oz(n){this.a=u(Se(n),15)}function JEn(n){this.a=u(Se(n),85)}function VE(n){this.b=u(Se(n),85)}function WE(n){this.b=u(Se(n),51)}function JE(){this.q=new y.Date}function SD(n,e){this.a=n,this.b=e}function QEn(n,e){return Zc(n.b,e)}function r7(n,e){return n.b.Hc(e)}function YEn(n,e){return n.b.Ic(e)}function ZEn(n,e){return n.b.Qc(e)}function nCn(n,e){return n.b.Hc(e)}function eCn(n,e){return n.c.uc(e)}function tCn(n,e){return rt(n.c,e)}function of(n,e){return n.a._b(e)}function iCn(n,e){return n>e&&e0}function ND(n,e){return Ec(n,e)<0}function vCn(n,e){return JL(n.a,e)}function ole(n,e){yOn.call(this,n,e)}function Bz(n){wN(),uSn.call(this,n)}function Rz(n,e){bPn(n,n.length,e)}function s7(n,e){HPn(n,n.length,e)}function d6(n,e){return n.a.get(e)}function kCn(n,e){return Zc(n.e,e)}function Kz(n){return Jn(n),!1}function _z(n){this.a=u(Se(n),229)}function cC(n){In.call(this,n,21)}function uC(n,e){je.call(this,n,e)}function $D(n,e){je.call(this,n,e)}function yCn(n,e){this.b=n,this.a=e}function oC(n,e){this.d=n,this.e=e}function jCn(n,e){this.a=n,this.b=e}function ECn(n,e){this.a=n,this.b=e}function CCn(n,e){this.a=n,this.b=e}function MCn(n,e){this.a=n,this.b=e}function bp(n,e){this.a=n,this.b=e}function TCn(n,e){this.b=n,this.a=e}function Hz(n,e){this.b=n,this.a=e}function qz(n,e){je.call(this,n,e)}function Uz(n,e){je.call(this,n,e)}function lg(n,e){je.call(this,n,e)}function xD(n,e){je.call(this,n,e)}function FD(n,e){je.call(this,n,e)}function BD(n,e){je.call(this,n,e)}function sC(n,e){je.call(this,n,e)}function Gz(n,e){this.b=n,this.a=e}function fC(n,e){je.call(this,n,e)}function zz(n,e){this.b=n,this.a=e}function hC(n,e){je.call(this,n,e)}function ACn(n,e){this.b=n,this.a=e}function Xz(n,e){je.call(this,n,e)}function RD(n,e){je.call(this,n,e)}function f7(n,e){je.call(this,n,e)}function b6(n,e,t){n.splice(e,0,t)}function sle(n,e,t){n.Mb(t)&&e.Cd(t)}function fle(n,e,t){e.Pe(n.a.Ye(t))}function hle(n,e,t){e.Dd(n.a.Ze(t))}function lle(n,e,t){e.Cd(n.a.Kb(t))}function ale(n,e){return Au(n.c,e)}function dle(n,e){return Au(n.e,e)}function lC(n,e){je.call(this,n,e)}function aC(n,e){je.call(this,n,e)}function w6(n,e){je.call(this,n,e)}function Vz(n,e){je.call(this,n,e)}function ei(n,e){je.call(this,n,e)}function dC(n,e){je.call(this,n,e)}function SCn(n,e){this.a=n,this.b=e}function PCn(n,e){this.a=n,this.b=e}function ICn(n,e){this.a=n,this.b=e}function OCn(n,e){this.a=n,this.b=e}function DCn(n,e){this.a=n,this.b=e}function LCn(n,e){this.a=n,this.b=e}function NCn(n,e){this.b=n,this.a=e}function $Cn(n,e){this.b=n,this.a=e}function Wz(n,e){this.b=n,this.a=e}function d4(n,e){this.c=n,this.d=e}function xCn(n,e){this.e=n,this.d=e}function FCn(n,e){this.a=n,this.b=e}function BCn(n,e){this.a=n,this.b=e}function RCn(n,e){this.a=n,this.b=e}function KCn(n,e){this.b=n,this.a=e}function _Cn(n,e){this.b=e,this.c=n}function bC(n,e){je.call(this,n,e)}function h7(n,e){je.call(this,n,e)}function KD(n,e){je.call(this,n,e)}function Jz(n,e){je.call(this,n,e)}function g6(n,e){je.call(this,n,e)}function _D(n,e){je.call(this,n,e)}function HD(n,e){je.call(this,n,e)}function l7(n,e){je.call(this,n,e)}function Qz(n,e){je.call(this,n,e)}function qD(n,e){je.call(this,n,e)}function p6(n,e){je.call(this,n,e)}function Yz(n,e){je.call(this,n,e)}function m6(n,e){je.call(this,n,e)}function v6(n,e){je.call(this,n,e)}function Db(n,e){je.call(this,n,e)}function UD(n,e){je.call(this,n,e)}function GD(n,e){je.call(this,n,e)}function Zz(n,e){je.call(this,n,e)}function a7(n,e){je.call(this,n,e)}function ag(n,e){je.call(this,n,e)}function zD(n,e){je.call(this,n,e)}function wC(n,e){je.call(this,n,e)}function d7(n,e){je.call(this,n,e)}function Lb(n,e){je.call(this,n,e)}function gC(n,e){je.call(this,n,e)}function nX(n,e){je.call(this,n,e)}function XD(n,e){je.call(this,n,e)}function VD(n,e){je.call(this,n,e)}function WD(n,e){je.call(this,n,e)}function JD(n,e){je.call(this,n,e)}function QD(n,e){je.call(this,n,e)}function YD(n,e){je.call(this,n,e)}function ZD(n,e){je.call(this,n,e)}function HCn(n,e){this.b=n,this.a=e}function eX(n,e){je.call(this,n,e)}function qCn(n,e){this.a=n,this.b=e}function UCn(n,e){this.a=n,this.b=e}function GCn(n,e){this.a=n,this.b=e}function tX(n,e){je.call(this,n,e)}function iX(n,e){je.call(this,n,e)}function zCn(n,e){this.a=n,this.b=e}function ble(n,e){return k4(),e!=n}function b7(n){return oe(n.a),n.b}function nL(n){return yCe(n,n.c),n}function XCn(){return tEn(),new TQn}function VCn(){VC(),this.a=new kV}function WCn(){OA(),this.a=new ni}function JCn(){NN(),this.b=new ni}function QCn(n,e){this.b=n,this.d=e}function YCn(n,e){this.a=n,this.b=e}function ZCn(n,e){this.a=n,this.b=e}function nMn(n,e){this.a=n,this.b=e}function eMn(n,e){this.b=n,this.a=e}function rX(n,e){je.call(this,n,e)}function cX(n,e){je.call(this,n,e)}function pC(n,e){je.call(this,n,e)}function u0(n,e){je.call(this,n,e)}function eL(n,e){je.call(this,n,e)}function mC(n,e){je.call(this,n,e)}function uX(n,e){je.call(this,n,e)}function oX(n,e){je.call(this,n,e)}function w7(n,e){je.call(this,n,e)}function sX(n,e){je.call(this,n,e)}function tL(n,e){je.call(this,n,e)}function vC(n,e){je.call(this,n,e)}function iL(n,e){je.call(this,n,e)}function rL(n,e){je.call(this,n,e)}function cL(n,e){je.call(this,n,e)}function uL(n,e){je.call(this,n,e)}function fX(n,e){je.call(this,n,e)}function oL(n,e){je.call(this,n,e)}function hX(n,e){je.call(this,n,e)}function g7(n,e){je.call(this,n,e)}function sL(n,e){je.call(this,n,e)}function lX(n,e){je.call(this,n,e)}function p7(n,e){je.call(this,n,e)}function aX(n,e){je.call(this,n,e)}function tMn(n,e){this.b=n,this.a=e}function iMn(n,e){this.b=n,this.a=e}function rMn(n,e){this.b=n,this.a=e}function cMn(n,e){this.b=n,this.a=e}function dX(n,e){this.a=n,this.b=e}function uMn(n,e){this.a=n,this.b=e}function oMn(n,e){this.a=n,this.b=e}function V(n,e){this.a=n,this.b=e}function k6(n,e){je.call(this,n,e)}function m7(n,e){je.call(this,n,e)}function wp(n,e){je.call(this,n,e)}function y6(n,e){je.call(this,n,e)}function v7(n,e){je.call(this,n,e)}function fL(n,e){je.call(this,n,e)}function kC(n,e){je.call(this,n,e)}function j6(n,e){je.call(this,n,e)}function hL(n,e){je.call(this,n,e)}function yC(n,e){je.call(this,n,e)}function dg(n,e){je.call(this,n,e)}function k7(n,e){je.call(this,n,e)}function E6(n,e){je.call(this,n,e)}function C6(n,e){je.call(this,n,e)}function y7(n,e){je.call(this,n,e)}function jC(n,e){je.call(this,n,e)}function bg(n,e){je.call(this,n,e)}function lL(n,e){je.call(this,n,e)}function sMn(n,e){je.call(this,n,e)}function EC(n,e){je.call(this,n,e)}function fMn(n,e){this.a=n,this.b=e}function hMn(n,e){this.a=n,this.b=e}function lMn(n,e){this.a=n,this.b=e}function aMn(n,e){this.a=n,this.b=e}function dMn(n,e){this.a=n,this.b=e}function bMn(n,e){this.a=n,this.b=e}function bi(n,e){this.a=n,this.b=e}function wMn(n,e){this.a=n,this.b=e}function gMn(n,e){this.a=n,this.b=e}function pMn(n,e){this.a=n,this.b=e}function mMn(n,e){this.a=n,this.b=e}function vMn(n,e){this.a=n,this.b=e}function kMn(n,e){this.a=n,this.b=e}function yMn(n,e){this.b=n,this.a=e}function jMn(n,e){this.b=n,this.a=e}function EMn(n,e){this.b=n,this.a=e}function CMn(n,e){this.b=n,this.a=e}function MMn(n,e){this.a=n,this.b=e}function TMn(n,e){this.a=n,this.b=e}function CC(n,e){je.call(this,n,e)}function AMn(n,e){this.a=n,this.b=e}function SMn(n,e){this.a=n,this.b=e}function gp(n,e){je.call(this,n,e)}function PMn(n,e){this.f=n,this.c=e}function bX(n,e){return Au(n.g,e)}function wle(n,e){return Au(e.b,n)}function IMn(n,e){return wx(n.a,e)}function gle(n,e){return-n.b.af(e)}function ple(n,e){n&&Xe(hE,n,e)}function wX(n,e){n.i=null,kT(n,e)}function mle(n,e,t){yKn(e,oF(n,t))}function vle(n,e,t){yKn(e,oF(n,t))}function kle(n,e){VMe(n.a,u(e,58))}function OMn(n,e){U4e(n.a,u(e,12))}function MC(n,e){this.a=n,this.b=e}function DMn(n,e){this.a=n,this.b=e}function LMn(n,e){this.a=n,this.b=e}function NMn(n,e){this.a=n,this.b=e}function $Mn(n,e){this.a=n,this.b=e}function xMn(n,e){this.d=n,this.b=e}function FMn(n,e){this.e=n,this.a=e}function j7(n,e){this.b=n,this.c=e}function gX(n,e){this.i=n,this.g=e}function pX(n,e){this.d=n,this.e=e}function yle(n,e){cme(new ne(n),e)}function TC(n){return Rk(n.c,n.b)}function Kr(n){return n?n.md():null}function x(n){return n??null}function Ai(n){return typeof n===nB}function Nb(n){return typeof n===i3}function $b(n){return typeof n===dtn}function o0(n,e){return Ec(n,e)==0}function AC(n,e){return Ec(n,e)>=0}function M6(n,e){return Ec(n,e)!=0}function SC(n,e){return jve(n.Kc(),e)}function _1(n,e){return n.Rd().Xb(e)}function BMn(n){return eo(n),n.d.gc()}function PC(n){return F6(n==null),n}function T6(n,e){return n.a+=""+e,n}function Er(n,e){return n.a+=""+e,n}function A6(n,e){return n.a+=""+e,n}function Dc(n,e){return n.a+=""+e,n}function Be(n,e){return n.a+=""+e,n}function mX(n,e){return n.a+=""+e,n}function jle(n){return""+(Jn(n),n)}function RMn(n){Hu(this),f5(this,n)}function KMn(){oJ(),dW.call(this)}function _Mn(n,e){mW.call(this,n,e)}function HMn(n,e){mW.call(this,n,e)}function IC(n,e){mW.call(this,n,e)}function ir(n,e){xt(n,e,n.c.b,n.c)}function wg(n,e){xt(n,e,n.a,n.a.a)}function vX(n){return Ln(n,0),null}function qMn(){this.b=0,this.a=!1}function UMn(){this.b=0,this.a=!1}function GMn(){this.b=new ap(Qb(12))}function zMn(){zMn=F,kYn=Ce(jx())}function XMn(){XMn=F,HZn=Ce(iqn())}function VMn(){VMn=F,lre=Ce(xxn())}function kX(){kX=F,_G(),fun=new de}function sf(n){return n.a=0,n.b=0,n}function WMn(n,e){return n.a=e.g+1,n}function aL(n,e){Kb.call(this,n,e)}function Mn(n,e){Dt.call(this,n,e)}function gg(n,e){gX.call(this,n,e)}function JMn(n,e){T7.call(this,n,e)}function dL(n,e){Y4.call(this,n,e)}function Ue(n,e){iC(),Xe(yO,n,e)}function QMn(n,e){n.q.setTime(id(e))}function Ele(n){y.clearTimeout(n)}function Cle(n){return Se(n),new S6(n)}function YMn(n,e){return x(n)===x(e)}function ZMn(n,e){return n.a.a.a.cc(e)}function bL(n,e){return qo(n.a,0,e)}function yX(n){return Awe(u(n,74))}function pp(n){return wi((Jn(n),n))}function Mle(n){return wi((Jn(n),n))}function nTn(n){return Yc(n.l,n.m,n.h)}function jX(n,e){return jc(n.a,e.a)}function Tle(n,e){return KPn(n.a,e.a)}function Ale(n,e){return bt(n.a,e.a)}function th(n,e){return n.indexOf(e)}function Sle(n,e){return n.j[e.p]==2}function s0(n,e){return n==e?0:n?1:-1}function OC(n){return n<10?"0"+n:""+n}function Vr(n){return typeof n===dtn}function Ple(n){return n==rb||n==Iw}function Ile(n){return n==rb||n==Pw}function eTn(n,e){return jc(n.g,e.g)}function EX(n){return qr(n.b.b,n,0)}function tTn(){rM.call(this,0,0,0,0)}function ih(){CG.call(this,new Ql)}function CX(n,e){F4(n,0,n.length,e)}function Ole(n,e){return nn(n.a,e),e}function Dle(n,e){return xs(),e.a+=n}function Lle(n,e){return xs(),e.a+=n}function Nle(n,e){return xs(),e.c+=n}function $le(n,e){return nn(n.c,e),n}function MX(n,e){return Mo(n.a,e),n}function iTn(n){this.a=XCn(),this.b=n}function rTn(n){this.a=XCn(),this.b=n}function rr(n){this.a=n.a,this.b=n.b}function S6(n){this.a=n,GO.call(this)}function cTn(n){this.a=n,GO.call(this)}function mp(){Ho.call(this,0,0,0,0)}function DC(n){return Mo(new ii,n)}function uTn(n){return jM(u(n,123))}function fo(n){return n.vh()&&n.wh()}function pg(n){return n!=Jf&&n!=Sa}function hl(n){return n==Br||n==Xr}function mg(n){return n==us||n==Vf}function oTn(n){return n==S2||n==A2}function xle(n,e){return jc(n.g,e.g)}function sTn(n,e){return new Y4(e,n)}function Fle(n,e){return new Y4(e,n)}function TX(n){return rbe(n.b.Kc(),n.a)}function wL(n,e){um(n,e),G4(n,n.D)}function gL(n,e,t){aT(n,e),lT(n,t)}function vg(n,e,t){I0(n,e),P0(n,t)}function Ro(n,e,t){eu(n,e),tu(n,t)}function E7(n,e,t){_4(n,e),q4(n,t)}function C7(n,e,t){H4(n,e),U4(n,t)}function fTn(n,e,t){sV.call(this,n,e,t)}function AX(n){PMn.call(this,n,!0)}function hTn(){uC.call(this,"Tail",3)}function lTn(){uC.call(this,"Head",1)}function H1(n){dh(),mve.call(this,n)}function f0(n){rM.call(this,n,n,n,n)}function pL(n){n.c=K(ki,Fn,1,0,5,1)}function SX(n){return n.b&&xF(n),n.a}function PX(n){return n.b&&xF(n),n.c}function Ble(n,e){qf||(n.b=e)}function Rle(n,e){return n[n.length]=e}function Kle(n,e){return n[n.length]=e}function _le(n,e){return Yb(e,Af(n))}function Hle(n,e){return Yb(e,Af(n))}function qle(n,e){return pT(dN(n.d),e)}function Ule(n,e){return pT(dN(n.g),e)}function Gle(n,e){return pT(dN(n.j),e)}function Ni(n,e){Dt.call(this,n.b,e)}function zle(n,e){ve(Sc(n.a),DOn(e))}function Xle(n,e){ve(no(n.a),LOn(e))}function Vle(n,e,t){Ro(t,t.i+n,t.j+e)}function aTn(n,e,t){$t(n.c[e.g],e.g,t)}function Wle(n,e,t){u(n.c,71).Gi(e,t)}function mL(n,e,t){return $t(n,e,t),t}function dTn(n){nu(n.Sf(),new D9n(n))}function kg(n){return n!=null?mt(n):0}function Jle(n){return n==null?0:mt(n)}function P6(n){nt(),Wd.call(this,n)}function bTn(n){this.a=n,qV.call(this,n)}function Mf(){Mf=F,y.Math.log(2)}function Ko(){Ko=F,rl=(pCn(),Moe)}function wTn(){wTn=F,YH=new j5(aU)}function Ie(){Ie=F,new gTn,new Z}function gTn(){new de,new de,new de}function Qle(){throw M(new Kl(QJn))}function Yle(){throw M(new Kl(QJn))}function Zle(){throw M(new Kl(YJn))}function n1e(){throw M(new Kl(YJn))}function vL(n){this.a=n,VE.call(this,n)}function kL(n){this.a=n,VE.call(this,n)}function pTn(n,e){m0(),this.a=n,this.b=e}function e1e(n,e){Se(e),Tg(n).Jc(new Ru)}function Yt(n,e){QL(n.c,n.c.length,e)}function tc(n){return n.ae?1:0}function OX(n,e){return Ec(n,e)>0?n:e}function Yc(n,e,t){return{l:n,m:e,h:t}}function t1e(n,e){n.a!=null&&OMn(e,n.a)}function i1e(n){Zi(n,null),Ii(n,null)}function r1e(n,e,t){return Xe(n.g,t,e)}function yg(n,e,t){return nZ(e,t,n.c)}function c1e(n,e,t){return Xe(n.k,t,e)}function u1e(n,e,t){return GOe(n,e,t),t}function o1e(n,e){return ko(),e.n.b+=n}function vTn(n){nJ.call(this),this.b=n}function DX(n){vV.call(this),this.a=n}function kTn(){uC.call(this,"Range",2)}function LC(n){this.b=n,this.a=new Z}function yTn(n){this.b=new $bn,this.a=n}function jTn(n){n.a=new OO,n.c=new OO}function ETn(n){n.a=new de,n.d=new de}function CTn(n){$N(n,null),xN(n,null)}function MTn(n,e){return XOe(n.a,e,null)}function s1e(n,e){return Xe(n.a,e.a,e)}function Ki(n){return new V(n.a,n.b)}function LX(n){return new V(n.c,n.d)}function f1e(n){return new V(n.c,n.d)}function I6(n,e){return cOe(n.c,n.b,e)}function O(n,e){return n!=null&&Tx(n,e)}function yL(n,e){return Yve(n.Kc(),e)!=-1}function NC(n){return n.Ob()?n.Pb():null}function h1e(n){this.b=(Dn(),new eD(n))}function NX(n){this.a=n,de.call(this)}function TTn(){T7.call(this,null,null)}function ATn(){_C.call(this,null,null)}function STn(){je.call(this,"INSTANCE",0)}function PTn(){LZ(),this.a=new K5(Ion)}function ITn(n){return hh(n,0,n.length)}function l1e(n,e){return new VTn(n.Kc(),e)}function $X(n,e){return n.a.Bc(e)!=null}function OTn(n,e){me(n),n.Gc(u(e,15))}function a1e(n,e,t){n.c.bd(e,u(t,136))}function d1e(n,e,t){n.c.Ui(e,u(t,136))}function DTn(n,e){n.c&&(tW(e),rOn(e))}function b1e(n,e){n.q.setHours(e),G5(n,e)}function w1e(n,e){a0(e,n.a.a.a,n.a.a.b)}function g1e(n,e,t,i){$t(n.a[e.g],t.g,i)}function jL(n,e,t){return n.a[e.g][t.g]}function p1e(n,e){return n.e[e.c.p][e.p]}function m1e(n,e){return n.c[e.c.p][e.p]}function Tf(n,e){return n.a[e.c.p][e.p]}function v1e(n,e){return n.j[e.p]=IMe(e)}function EL(n,e){return n.a.Bc(e)!=null}function k1e(n,e){return $(R(e.a))<=n}function y1e(n,e){return $(R(e.a))>=n}function j1e(n,e){return RJ(n.f,e.Pg())}function vp(n,e){return n.a*e.a+n.b*e.b}function E1e(n,e){return n.a0?e/(n*n):e*100}function V1e(n,e){return n>0?e*e/n:e*e*100}function xb(n,e){return u(Lf(n.a,e),34)}function W1e(n,e){return ca(),Pn(n,e.e,e)}function J1e(n,e,t){return nC(),t.Mg(n,e)}function Q1e(n){return kl(),n.e.a+n.f.a/2}function Y1e(n,e,t){return kl(),t.e.a-n*e}function Z1e(n){return kl(),n.e.b+n.f.b/2}function nae(n,e,t){return kl(),t.e.b-n*e}function sAn(n){n.d=new cAn(n),n.e=new de}function fAn(){this.a=new C0,this.b=new C0}function hAn(n){this.c=n,this.a=1,this.b=1}function lAn(n){YF(),Syn(this),this.Ff(n)}function eae(n,e,t){YM(),n.pf(e)&&t.Cd(n)}function tae(n,e,t){return nn(e,jBn(n,t))}function a0(n,e,t){return n.a+=e,n.b+=t,n}function iae(n,e,t){return n.a*=e,n.b*=t,n}function ZX(n,e){return n.a=e.a,n.b=e.b,n}function HC(n){return n.a=-n.a,n.b=-n.b,n}function N6(n,e,t){return n.a-=e,n.b-=t,n}function aAn(n){Ct.call(this),c5(this,n)}function dAn(){je.call(this,"GROW_TREE",0)}function bAn(){je.call(this,"POLYOMINO",0)}function lo(n,e,t){Iu.call(this,n,e,t,2)}function rae(n,e,t){k5(Sc(n.a),e,DOn(t))}function wAn(n,e){a6(),T7.call(this,n,e)}function nV(n,e){Gl(),_C.call(this,n,e)}function gAn(n,e){Gl(),nV.call(this,n,e)}function pAn(n,e){Gl(),_C.call(this,n,e)}function cae(n,e){return n.c.Fc(u(e,136))}function uae(n,e,t){k5(no(n.a),e,LOn(t))}function mAn(n){this.c=n,eu(n,0),tu(n,0)}function PL(n,e){Ko(),oM.call(this,n,e)}function vAn(n,e){Ko(),PL.call(this,n,e)}function eV(n,e){Ko(),PL.call(this,n,e)}function tV(n,e){Ko(),oM.call(this,n,e)}function kAn(n,e){Ko(),eV.call(this,n,e)}function yAn(n,e){Ko(),tV.call(this,n,e)}function jAn(n,e){Ko(),oM.call(this,n,e)}function oae(n,e,t){return e.zl(n.e,n.c,t)}function sae(n,e,t){return e.Al(n.e,n.c,t)}function iV(n,e,t){return qA(ak(n,e),t)}function IL(n,e){return na(n.e,u(e,54))}function fae(n){return n==null?null:NDe(n)}function hae(n){return n==null?null:Aje(n)}function lae(n){return n==null?null:Jr(n)}function aae(n){return n==null?null:Jr(n)}function un(n){return F6(n==null||Nb(n)),n}function R(n){return F6(n==null||$b(n)),n}function Oe(n){return F6(n==null||Ai(n)),n}function ll(n){n.o==null&&cMe(n)}function rV(n){if(!n)throw M(new Q9)}function dae(n){if(!n)throw M(new uD)}function oe(n){if(!n)throw M(new nc)}function Fb(n){if(!n)throw M(new Cu)}function EAn(n){if(!n)throw M(new Bo)}function m4(){m4=F,aE=new ujn,new ojn}function Mg(){Mg=F,O2=new lt("root")}function cV(){cxn.call(this),this.Bb|=hr}function bae(n,e){this.d=n,c9n(this),this.b=e}function uV(n,e){i$.call(this,n),this.a=e}function oV(n,e){i$.call(this,n),this.a=e}function sV(n,e,t){VM.call(this,n,e,t,null)}function CAn(n,e,t){VM.call(this,n,e,t,null)}function P7(n,e){this.c=n,h4.call(this,n,e)}function $6(n,e){this.a=n,P7.call(this,n,e)}function fV(n){this.q=new y.Date(id(n))}function MAn(n){return n>8?0:n+1}function TAn(n,e){qf||nn(n.a,e)}function wae(n,e){return o7(),Q4(e.d.i,n)}function gae(n,e){return Hp(),new tUn(e,n)}function pae(n,e,t){return n.Ne(e,t)<=0?t:e}function mae(n,e,t){return n.Ne(e,t)<=0?e:t}function vae(n,e){return u(Lf(n.b,e),143)}function kae(n,e){return u(Lf(n.c,e),233)}function OL(n){return u(sn(n.a,n.b),294)}function AAn(n){return new V(n.c,n.d+n.a)}function SAn(n){return Jn(n),n?1231:1237}function PAn(n){return ko(),oTn(u(n,203))}function Bb(){Bb=F,ron=yn((go(),Gd))}function yae(n,e){e.a?MCe(n,e):EL(n.a,e.b)}function I7(n,e,t){++n.j,n.tj(),t$(n,e,t)}function IAn(n,e,t){++n.j,n.qj(e,n.Zi(e,t))}function OAn(n,e,t){var i;i=n.fd(e),i.Rb(t)}function hV(n,e,t){return t=So(n,e,6,t),t}function lV(n,e,t){return t=So(n,e,3,t),t}function aV(n,e,t){return t=So(n,e,9,t),t}function ch(n,e){return X7(e,xtn),n.f=e,n}function dV(n,e){return(e&et)%n.d.length}function DAn(n,e,t){return zen(n.c,n.b,e,t)}function LAn(n,e){this.c=n,S0.call(this,e)}function NAn(n,e){this.a=n,kyn.call(this,e)}function O7(n,e){this.a=n,kyn.call(this,e)}function Dt(n,e){lt.call(this,n),this.a=e}function bV(n,e){FG.call(this,n),this.a=e}function DL(n,e){FG.call(this,n),this.a=e}function jae(n){VY.call(this,0,0),this.f=n}function $An(n,e,t){return n.a+=hh(e,0,t),n}function D7(n){return!n.a&&(n.a=new C0n),n.a}function wV(n,e){var t;return t=n.e,n.e=e,t}function gV(n,e){var t;return t=e,!!n.Fe(t)}function Eae(n,e){return _n(),n==e?0:n?1:-1}function Rb(n,e){n.a.bd(n.b,e),++n.b,n.c=-1}function L7(n){n.b?L7(n.b):n.f.c.zc(n.e,n.d)}function xAn(n){Hu(n.e),n.d.b=n.d,n.d.a=n.d}function Cae(n,e,t){Xa(),t9n(n,e.Ve(n.a,t))}function pV(n,e,t){return Pp(n,u(e,22),t)}function $s(n,e){return qE(new Array(e),n)}function Mae(n){return Ae(U1(n,32))^Ae(n)}function LL(n){return String.fromCharCode(n)}function Tae(n){return n==null?null:n.message}function Aae(n,e,t){return n.apply(e,t)}function Sae(n,e){var t;t=n[DB],t.call(n,e)}function Pae(n,e){var t;t=n[DB],t.call(n,e)}function Iae(n,e){return o7(),!Q4(e.d.i,n)}function mV(n,e,t,i){rM.call(this,n,e,t,i)}function FAn(){qC.call(this),this.a=new Li}function vV(){this.n=new Li,this.o=new Li}function BAn(){this.b=new Li,this.c=new Z}function RAn(){this.a=new Z,this.b=new Z}function KAn(){this.a=new _U,this.b=new Byn}function kV(){this.b=new Ql,this.a=new Ql}function _An(){this.b=new ni,this.a=new ni}function HAn(){this.b=new de,this.a=new de}function qAn(){this.b=new wEn,this.a=new H3n}function UAn(){this.a=new n8n,this.b=new Lpn}function GAn(){this.a=new Z,this.d=new Z}function qC(){this.n=new cp,this.i=new mp}function zAn(n){this.a=(Co(n,mw),new Gc(n))}function XAn(n){this.a=(Co(n,mw),new Gc(n))}function Oae(n){return n<100?null:new F1(n)}function Dae(n,e){return n.n.a=(Jn(e),e+10)}function Lae(n,e){return n.n.a=(Jn(e),e+10)}function Nae(n,e){return e==n||km(TA(e),n)}function VAn(n,e){return Xe(n.a,e,"")==null}function $ae(n,e){var t;return t=e.qi(n.a),t}function tt(n,e){return n.a+=e.a,n.b+=e.b,n}function mi(n,e){return n.a-=e.a,n.b-=e.b,n}function xae(n){return Pb(n.j.c,0),n.a=-1,n}function yV(n,e,t){return t=So(n,e,11,t),t}function Fae(n,e,t){t!=null&&mT(e,Fx(n,t))}function Bae(n,e,t){t!=null&&vT(e,Fx(n,t))}function jp(n,e,t,i){q.call(this,n,e,t,i)}function jV(n,e,t,i){q.call(this,n,e,t,i)}function WAn(n,e,t,i){jV.call(this,n,e,t,i)}function JAn(n,e,t,i){bM.call(this,n,e,t,i)}function NL(n,e,t,i){bM.call(this,n,e,t,i)}function EV(n,e,t,i){bM.call(this,n,e,t,i)}function QAn(n,e,t,i){NL.call(this,n,e,t,i)}function CV(n,e,t,i){NL.call(this,n,e,t,i)}function Nn(n,e,t,i){EV.call(this,n,e,t,i)}function YAn(n,e,t,i){CV.call(this,n,e,t,i)}function ZAn(n,e,t,i){jW.call(this,n,e,t,i)}function Kb(n,e){Ir.call(this,k8+n+Td+e)}function MV(n,e){return n.jk().wi().ri(n,e)}function TV(n,e){return n.jk().wi().ti(n,e)}function nSn(n,e){return Jn(n),x(n)===x(e)}function An(n,e){return Jn(n),x(n)===x(e)}function Rae(n,e){return n.b.Bd(new ECn(n,e))}function Kae(n,e){return n.b.Bd(new CCn(n,e))}function eSn(n,e){return n.b.Bd(new MCn(n,e))}function _ae(n,e){return n.e=u(n.d.Kb(e),159)}function AV(n,e,t){return n.lastIndexOf(e,t)}function Hae(n,e,t){return bt(n[e.a],n[t.a])}function qae(n,e){return U(e,(cn(),Cj),n)}function Uae(n,e){return jc(e.a.d.p,n.a.d.p)}function Gae(n,e){return jc(n.a.d.p,e.a.d.p)}function zae(n,e){return bt(n.c-n.s,e.c-e.s)}function Xae(n,e){return bt(n.b.e.a,e.b.e.a)}function Vae(n,e){return bt(n.c.e.a,e.c.e.a)}function tSn(n){return n.c?qr(n.c.a,n,0):-1}function Ep(n){return n==Ud||n==tl||n==qc}function SV(n,e){this.c=n,oN.call(this,n,e)}function iSn(n,e,t){this.a=n,JX.call(this,e,t)}function rSn(n){this.c=n,IC.call(this,Ey,0)}function cSn(n,e,t){this.c=e,this.b=t,this.a=n}function N7(n){k4(),this.d=n,this.a=new Eg}function uSn(n){uh(),this.a=(Dn(),new r4(n))}function Wae(n,e){hl(n.f)?QCe(n,e):Sye(n,e)}function oSn(n,e){sbe.call(this,n,n.length,e)}function Jae(n,e){qf||e&&(n.d=e)}function sSn(n,e){return O(e,15)&&xqn(n.c,e)}function Qae(n,e,t){return u(n.c,71).Wk(e,t)}function UC(n,e,t){return u(n.c,71).Xk(e,t)}function Yae(n,e,t){return oae(n,u(e,343),t)}function PV(n,e,t){return sae(n,u(e,343),t)}function Zae(n,e,t){return PKn(n,u(e,343),t)}function fSn(n,e,t){return _ye(n,u(e,343),t)}function x6(n,e){return e==null?null:tw(n.b,e)}function IV(n){return $b(n)?(Jn(n),n):n.ue()}function GC(n){return!isNaN(n)&&!isFinite(n)}function $L(n){jTn(this),vo(this),Bi(this,n)}function _u(n){pL(this),zV(this.c,0,n.Pc())}function _o(n,e,t){this.a=n,this.b=e,this.c=t}function hSn(n,e,t){this.a=n,this.b=e,this.c=t}function lSn(n,e,t){this.d=n,this.b=t,this.a=e}function aSn(n){this.a=n,fl(),vc(Date.now())}function dSn(n){bo(n.a),GJ(n.c,n.b),n.b=null}function xL(){xL=F,Oun=new $0n,AQn=new x0n}function bSn(){bSn=F,Ioe=K(ki,Fn,1,0,5,1)}function wSn(){wSn=F,Voe=K(ki,Fn,1,0,5,1)}function OV(){OV=F,Woe=K(ki,Fn,1,0,5,1)}function uh(){uh=F,new KG((Dn(),Dn(),sr))}function nde(n){return B4(),Ee((yNn(),IQn),n)}function ede(n){return Gu(),Ee((lNn(),xQn),n)}function tde(n){return YT(),Ee((JDn(),HQn),n)}function ide(n){return cT(),Ee((QDn(),qQn),n)}function rde(n){return NA(),Ee((Jxn(),UQn),n)}function cde(n){return bf(),Ee((fNn(),XQn),n)}function ude(n){return Uu(),Ee((sNn(),WQn),n)}function ode(n){return bu(),Ee((hNn(),QQn),n)}function sde(n){return VA(),Ee((zMn(),kYn),n)}function fde(n){return N0(),Ee((ENn(),jYn),n)}function hde(n){return Vp(),Ee((MNn(),CYn),n)}function lde(n){return A5(),Ee((CNn(),AYn),n)}function ade(n){return YE(),Ee((jDn(),SYn),n)}function dde(n){return uT(),Ee((YDn(),GYn),n)}function bde(n){return i5(),Ee((aNn(),pZn),n)}function wde(n){return Vi(),Ee((u$n(),yZn),n)}function gde(n){return nm(),Ee((ANn(),TZn),n)}function pde(n){return dd(),Ee((TNn(),DZn),n)}function DV(n,e){if(!n)throw M(new Gn(e))}function v4(n){if(!n)throw M(new Or(btn))}function FL(n,e){if(n!=e)throw M(new Bo)}function gSn(n,e,t){this.a=n,this.b=e,this.c=t}function LV(n,e,t){this.a=n,this.b=e,this.c=t}function pSn(n,e,t){this.a=n,this.b=e,this.c=t}function zC(n,e,t){this.b=n,this.a=e,this.c=t}function NV(n,e,t){this.b=n,this.c=e,this.a=t}function $V(n,e,t){this.a=n,this.b=e,this.c=t}function XC(n,e,t){this.e=e,this.b=n,this.d=t}function mSn(n,e,t){this.b=n,this.a=e,this.c=t}function mde(n,e,t){return Xa(),n.a.Yd(e,t),e}function BL(n){var e;return e=new ubn,e.e=n,e}function xV(n){var e;return e=new qyn,e.b=n,e}function $7(){$7=F,CP=new sgn,MP=new fgn}function VC(){VC=F,XZn=new xgn,zZn=new Fgn}function xs(){xs=F,YZn=new G2n,ZZn=new z2n}function vde(n){return D0(),Ee((qLn(),fne),n)}function kde(n){return tr(),Ee((XMn(),HZn),n)}function yde(n){return OT(),Ee((PNn(),GZn),n)}function jde(n){return $f(),Ee((SNn(),tne),n)}function Ede(n){return ow(),Ee((o$n(),rne),n)}function Cde(n){return DA(),Ee(($xn(),hne),n)}function Mde(n){return Yp(),Ee((D$n(),lne),n)}function Tde(n){return QM(),Ee((cLn(),ane),n)}function Ade(n){return u5(),Ee((_Ln(),dne),n)}function Sde(n){return bT(),Ee((HLn(),bne),n)}function Pde(n){return o1(),Ee((s$n(),wne),n)}function Ide(n){return pk(),Ee((eLn(),gne),n)}function Ode(n){return jm(),Ee(($$n(),jne),n)}function Dde(n){return pr(),Ee((aFn(),Ene),n)}function Lde(n){return Z4(),Ee((GLn(),Cne),n)}function Nde(n){return vl(),Ee((zLn(),Tne),n)}function $de(n){return KM(),Ee((nLn(),Ane),n)}function xde(n){return Jk(),Ee((N$n(),yne),n)}function Fde(n){return hd(),Ee((ULn(),mne),n)}function Bde(n){return vA(),Ee((L$n(),vne),n)}function Rde(n){return hk(),Ee((tLn(),kne),n)}function Kde(n){return Yo(),Ee((h$n(),Sne),n)}function _de(n){return a1(),Ee((Xxn(),Yte),n)}function Hde(n){return g5(),Ee((XLn(),Zte),n)}function qde(n){return cw(),Ee((INn(),nie),n)}function Ude(n){return T5(),Ee((f$n(),eie),n)}function Gde(n){return gs(),Ee((dFn(),tie),n)}function zde(n){return lh(),Ee((ONn(),iie),n)}function Xde(n){return wk(),Ee((iLn(),rie),n)}function Vde(n){return gr(),Ee((JLn(),uie),n)}function Wde(n){return ST(),Ee((VLn(),oie),n)}function Jde(n){return d5(),Ee((WLn(),sie),n)}function Qde(n){return om(),Ee((QLn(),fie),n)}function Yde(n){return dT(),Ee((YLn(),hie),n)}function Zde(n){return DT(),Ee((ZLn(),lie),n)}function n0e(n){return O0(),Ee((oNn(),Aie),n)}function e0e(n){return n5(),Ee((rLn(),Die),n)}function t0e(n){return sh(),Ee((sLn(),Rie),n)}function i0e(n){return Sf(),Ee((fLn(),_ie),n)}function r0e(n){return lf(),Ee((hLn(),tre),n)}function c0e(n){return M0(),Ee((lLn(),fre),n)}function u0e(n){return Qp(),Ee((BNn(),hre),n)}function o0e(n){return q5(),Ee((VMn(),lre),n)}function s0e(n){return b5(),Ee((nNn(),are),n)}function f0e(n){return w5(),Ee((FNn(),$re),n)}function h0e(n){return FM(),Ee((uLn(),xre),n)}function l0e(n){return yT(),Ee((oLn(),_re),n)}function a0e(n){return wA(),Ee((l$n(),qre),n)}function d0e(n){return Ok(),Ee((eNn(),Gre),n)}function b0e(n){return ZM(),Ee((aLn(),Ure),n)}function w0e(n){return sA(),Ee((xNn(),lce),n)}function g0e(n){return AT(),Ee((tNn(),ace),n)}function p0e(n){return XT(),Ee((iNn(),dce),n)}function m0e(n){return rA(),Ee((rNn(),wce),n)}function v0e(n){return _T(),Ee((cNn(),mce),n)}function k0e(n){return GM(),Ee((dLn(),Rce),n)}function y0e(n){return V4(),Ee((ZDn(),_Zn),n)}function j0e(n){return Vn(),Ee((x$n(),xZn),n)}function E0e(n){return nT(),Ee((uNn(),Kce),n)}function C0e(n){return N$(),Ee((bLn(),_ce),n)}function M0e(n){return R5(),Ee((a$n(),qce),n)}function T0e(n){return eC(),Ee((IDn(),Gce),n)}function A0e(n){return Fk(),Ee((bNn(),Uce),n)}function S0e(n){return tC(),Ee((ODn(),Xce),n)}function P0e(n){return ck(),Ee((wLn(),Vce),n)}function I0e(n){return Yk(),Ee((d$n(),Wce),n)}function O0e(n){return f6(),Ee((DDn(),lue),n)}function D0e(n){return Ak(),Ee((gLn(),aue),n)}function L0e(n){return gf(),Ee((w$n(),mue),n)}function N0e(n){return l1(),Ee((Lxn(),kue),n)}function $0e(n){return Rh(),Ee((F$n(),yue),n)}function x0e(n){return wd(),Ee((B$n(),Aue),n)}function F0e(n){return ci(),Ee((b$n(),zue),n)}function B0e(n){return Nf(),Ee((wNn(),Xue),n)}function R0e(n){return El(),Ee((RNn(),Vue),n)}function K0e(n){return pA(),Ee((R$n(),Wue),n)}function _0e(n){return jl(),Ee((dNn(),Que),n)}function H0e(n){return To(),Ee((KNn(),Zue),n)}function q0e(n){return lw(),Ee((Wxn(),noe),n)}function U0e(n){return Fg(),Ee((g$n(),eoe),n)}function G0e(n){return Oi(),Ee((K$n(),toe),n)}function z0e(n){return zu(),Ee((_$n(),ioe),n)}function X0e(n){return tn(),Ee((p$n(),roe),n)}function V0e(n){return go(),Ee((_Nn(),foe),n)}function W0e(n){return io(),Ee((Vxn(),hoe),n)}function J0e(n){return Gp(),Ee((gNn(),loe),n)}function Q0e(n,e){return Jn(n),n+(Jn(e),e)}function Y0e(n){return RL(),Ee((pLn(),aoe),n)}function Z0e(n){return qT(),Ee((HNn(),doe),n)}function nbe(n){return LT(),Ee((qNn(),goe),n)}function k4(){k4=F,tln=(tn(),Wn),II=Zn}function RL(){RL=F,vdn=new VSn,kdn=new LPn}function ebe(n){return!n.e&&(n.e=new Z),n.e}function KL(n,e){this.c=n,this.a=e,this.b=e-n}function vSn(n,e,t){this.a=n,this.b=e,this.c=t}function _L(n,e,t){this.a=n,this.b=e,this.c=t}function FV(n,e,t){this.a=n,this.b=e,this.c=t}function BV(n,e,t){this.a=n,this.b=e,this.c=t}function kSn(n,e,t){this.a=n,this.b=e,this.c=t}function ySn(n,e,t){this.a=n,this.b=e,this.c=t}function Xl(n,e,t){this.e=n,this.a=e,this.c=t}function jSn(n,e,t){Ko(),tJ.call(this,n,e,t)}function HL(n,e,t){Ko(),RW.call(this,n,e,t)}function RV(n,e,t){Ko(),RW.call(this,n,e,t)}function KV(n,e,t){Ko(),RW.call(this,n,e,t)}function ESn(n,e,t){Ko(),HL.call(this,n,e,t)}function _V(n,e,t){Ko(),HL.call(this,n,e,t)}function CSn(n,e,t){Ko(),_V.call(this,n,e,t)}function MSn(n,e,t){Ko(),RV.call(this,n,e,t)}function TSn(n,e,t){Ko(),KV.call(this,n,e,t)}function qL(n){rM.call(this,n.d,n.c,n.a,n.b)}function HV(n){rM.call(this,n.d,n.c,n.a,n.b)}function qV(n){this.d=n,c9n(this),this.b=nwe(n.d)}function tbe(n){return Cm(),Ee((Nxn(),Poe),n)}function x7(n,e){return Se(n),Se(e),new NEn(n,e)}function Cp(n,e){return Se(n),Se(e),new RSn(n,e)}function ibe(n,e){return Se(n),Se(e),new KSn(n,e)}function rbe(n,e){return Se(n),Se(e),new qEn(n,e)}function UL(n){return oe(n.b!=0),Xo(n,n.a.a)}function cbe(n){return oe(n.b!=0),Xo(n,n.c.b)}function ube(n){return!n.c&&(n.c=new W3),n.c}function y4(n){var e;return e=new Z,b$(e,n),e}function obe(n){var e;return e=new ni,b$(e,n),e}function ASn(n){var e;return e=new GG,A$(e,n),e}function F7(n){var e;return e=new Ct,A$(e,n),e}function u(n,e){return F6(n==null||Tx(n,e)),n}function sbe(n,e,t){TPn.call(this,e,t),this.a=n}function SSn(n,e){this.c=n,this.b=e,this.a=!1}function PSn(){this.a=";,;",this.b="",this.c=""}function ISn(n,e,t){this.b=n,_Mn.call(this,e,t)}function UV(n,e,t){this.c=n,oC.call(this,e,t)}function GV(n,e,t){d4.call(this,n,e),this.b=t}function zV(n,e,t){Bnn(t,0,n,e,t.length,!1)}function Lh(n,e,t,i,r){n.b=e,n.c=t,n.d=i,n.a=r}function XV(n,e,t,i,r){n.d=e,n.c=t,n.a=i,n.b=r}function fbe(n,e){e&&(n.b=e,n.a=(z1(e),e.a))}function B7(n,e){if(!n)throw M(new Gn(e))}function Mp(n,e){if(!n)throw M(new Or(e))}function VV(n,e){if(!n)throw M(new Bjn(e))}function hbe(n,e){return ZE(),jc(n.d.p,e.d.p)}function lbe(n,e){return kl(),bt(n.e.b,e.e.b)}function abe(n,e){return kl(),bt(n.e.a,e.e.a)}function dbe(n,e){return jc(GSn(n.d),GSn(e.d))}function WC(n,e){return e&&vM(n,e.d)?e:null}function bbe(n,e){return e==(tn(),Wn)?n.c:n.d}function WV(n){return Q1(dwe(Vr(n)?ds(n):n))}function wbe(n){return new V(n.c+n.b,n.d+n.a)}function OSn(n){return n!=null&&!lx(n,N9,$9)}function gbe(n,e){return(fBn(n)<<4|fBn(e))&ui}function DSn(n,e,t,i,r){n.c=e,n.d=t,n.b=i,n.a=r}function JV(n){var e,t;e=n.b,t=n.c,n.b=t,n.c=e}function QV(n){var e,t;t=n.d,e=n.a,n.d=e,n.a=t}function pbe(n,e){var t;return t=n.c,PQ(n,e),t}function YV(n,e){return e<0?n.g=-1:n.g=e,n}function JC(n,e){return Mme(n),n.a*=e,n.b*=e,n}function LSn(n,e,t){A$n.call(this,e,t),this.d=n}function R7(n,e,t){pX.call(this,n,e),this.c=t}function QC(n,e,t){pX.call(this,n,e),this.c=t}function ZV(n){OV(),ME.call(this),this.ci(n)}function NSn(){$4(),Bwe.call(this,(R1(),Ss))}function $Sn(n){return nt(),new Nh(0,n)}function xSn(){xSn=F,AU=(Dn(),new nD(IK))}function YC(){YC=F,new hZ((bD(),HK),(dD(),_K))}function FSn(){FSn=F,pun=K(Gi,J,17,256,0,1)}function BSn(){this.b=$(R(rn((qs(),y_))))}function GL(n){this.b=n,this.a=Wa(this.b.a).Od()}function RSn(n,e){this.b=n,this.a=e,GO.call(this)}function KSn(n,e){this.a=n,this.b=e,GO.call(this)}function _Sn(n,e,t){this.a=n,gg.call(this,e,t)}function HSn(n,e,t){this.a=n,gg.call(this,e,t)}function j4(n,e,t){var i;i=new qb(t),df(n,e,i)}function nW(n,e,t){var i;return i=n[e],n[e]=t,i}function ZC(n){var e;return e=n.slice(),o$(e,n)}function nM(n){var e;return e=n.n,n.a.b+e.d+e.a}function qSn(n){var e;return e=n.n,n.e.b+e.d+e.a}function eW(n){var e;return e=n.n,n.e.a+e.b+e.c}function tW(n){n.a.b=n.b,n.b.a=n.a,n.a=n.b=null}function xe(n,e){return xt(n,e,n.c.b,n.c),!0}function mbe(n){return n.a?n.a:vN(n)}function vbe(n){return Lp(),Kh(n)==At(ia(n))}function kbe(n){return Lp(),ia(n)==At(Kh(n))}function d0(n,e){return O5(n,new d4(e.a,e.b))}function ybe(n,e){return yM(),Nx(n,e),new lIn(n,e)}function jbe(n,e){return n.c=e)throw M(new YG)}function _b(n,e){return $k(n,(Jn(e),new a9n(e)))}function Ap(n,e){return $k(n,(Jn(e),new d9n(e)))}function SPn(n,e,t){return VLe(n,u(e,12),u(t,12))}function PPn(n){return Ou(),u(n,12).g.c.length!=0}function IPn(n){return Ou(),u(n,12).e.c.length!=0}function uwe(n,e){return Hp(),bt(e.a.o.a,n.a.o.a)}function owe(n,e){e.Bb&kc&&!n.a.o&&(n.a.o=e)}function swe(n,e){e.Ug("General 'Rotator",1),jDe(n)}function fwe(n,e,t){e.qf(t,$(R(ee(n.b,t)))*n.a)}function OPn(n,e,t){return Xg(),W4(n,e)&&W4(n,t)}function _6(n){return zu(),!n.Hc(Fl)&&!n.Hc(Pa)}function hwe(n){return n.e?qJ(n.e):null}function H6(n){return Vr(n)?""+n:$qn(n)}function yW(n){var e;for(e=n;e.f;)e=e.f;return e}function lwe(n,e,t){return $t(e,0,oW(e[0],t[0])),e}function Vl(n,e,t,i){var r;r=n.i,r.i=e,r.a=t,r.b=i}function q(n,e,t,i){ti.call(this,n,e,t),this.b=i}function Ci(n,e,t,i,r){c$.call(this,n,e,t,i,r,-1)}function q6(n,e,t,i,r){ok.call(this,n,e,t,i,r,-1)}function bM(n,e,t,i){R7.call(this,n,e,t),this.b=i}function DPn(n){PMn.call(this,n,!1),this.a=!1}function LPn(){sMn.call(this,"LOOKAHEAD_LAYOUT",1)}function NPn(n){this.b=n,kp.call(this,n),RTn(this)}function $Pn(n){this.b=n,A7.call(this,n),KTn(this)}function Hb(n,e,t){this.a=n,jp.call(this,e,t,5,6)}function jW(n,e,t,i){this.b=n,ti.call(this,e,t,i)}function xPn(n,e){this.b=n,H8n.call(this,n.b),this.a=e}function FPn(n){this.a=kRn(n.a),this.b=new _u(n.b)}function EW(n,e){m0(),Hhe.call(this,n,FT(new Ku(e)))}function wM(n,e){return nt(),new BW(n,e,0)}function rN(n,e){return nt(),new BW(6,n,e)}function _i(n,e){for(Jn(e);n.Ob();)e.Cd(n.Pb())}function Zc(n,e){return Ai(e)?AN(n,e):!!wr(n.f,e)}function cN(n,e){return e.Vh()?na(n.b,u(e,54)):e}function awe(n,e){return An(n.substr(0,e.length),e)}function $h(n){return new te(new UX(n.a.length,n.a))}function gM(n){return new V(n.c+n.b/2,n.d+n.a/2)}function dwe(n){return Yc(~n.l&ro,~n.m&ro,~n.h&Il)}function uN(n){return typeof n===vy||typeof n===eB}function Hu(n){n.f=new iTn(n),n.i=new rTn(n),++n.g}function BPn(n){if(!n)throw M(new nc);return n.d}function Sp(n){var e;return e=a5(n),oe(e!=null),e}function bwe(n){var e;return e=I5e(n),oe(e!=null),e}function C4(n,e){var t;return t=n.a.gc(),BJ(e,t),t-e}function fi(n,e){var t;return t=n.a.zc(e,n),t==null}function _7(n,e){return n.a.zc(e,(_n(),wa))==null}function CW(n){return new Tn(null,vwe(n,n.length))}function MW(n,e,t){return cGn(n,u(e,42),u(t,176))}function Pp(n,e,t){return Ks(n.a,e),nW(n.b,e.g,t)}function wwe(n,e,t){E4(t,n.a.c.length),Go(n.a,t,e)}function B(n,e,t,i){xFn(e,t,n.length),gwe(n,e,t,i)}function gwe(n,e,t,i){var r;for(r=e;r0?y.Math.log(n/e):-100}function KPn(n,e){return Ec(n,e)<0?-1:Ec(n,e)>0?1:0}function H7(n,e){OTn(n,O(e,160)?e:u(e,2036).Rl())}function PW(n,e){if(n==null)throw M(new sp(e))}function vwe(n,e){return yme(e,n.length),new XSn(n,e)}function IW(n,e){return e?Bi(n,e):!1}function kwe(){return RE(),S(T(uQn,1),G,549,0,[GK])}function G6(n){return n.e==0?n:new Qa(-n.e,n.d,n.a)}function ywe(n,e){return bt(n.c.c+n.c.b,e.c.c+e.c.b)}function q7(n,e){xt(n.d,e,n.b.b,n.b),++n.a,n.c=null}function _Pn(n,e){return n.c?_Pn(n.c,e):nn(n.b,e),n}function jwe(n,e,t){var i;return i=Jb(n,e),qN(n,e,t),i}function HPn(n,e,t){var i;for(i=0;i=n.g}function $t(n,e,t){return dae(t==null||oPe(n,t)),n[e]=t}function $W(n,e){return zn(e,n.length+1),n.substr(e)}function gN(n,e){for(Jn(e);n.c=n?new Dz:Gme(n-1)}function Hi(n){return!n.a&&n.c?n.c.b:n.a}function KW(n){return O(n,616)?n:new oOn(n)}function z1(n){n.c?z1(n.c):(ea(n),n.d=!0)}function V6(n){n.c?n.c.$e():(n.d=!0,fTe(n))}function sIn(n){n.b=!1,n.c=!1,n.d=!1,n.a=!1}function fIn(n){var e,t;return e=n.c.i.c,t=n.d.i.c,e==t}function _we(n,e){var t;t=n.Ih(e),t>=0?n.ki(t):Pnn(n,e)}function hIn(n,e){n.c<0||n.b.b0;)n=n<<1|(n<0?1:0);return n}function mIn(n,e){var t;return t=new Lc(n),Bn(e.c,t),t}function vIn(n,e){n.u.Hc((zu(),Fl))&&zEe(n,e),h4e(n,e)}function mc(n,e){return x(n)===x(e)||n!=null&&rt(n,e)}function Cr(n,e){return JL(n.a,e)?n.b[u(e,22).g]:null}function nge(){return YE(),S(T(oon,1),G,489,0,[b_])}function ege(){return eC(),S(T($1n,1),G,490,0,[Bq])}function tge(){return tC(),S(T(zce,1),G,558,0,[Rq])}function ige(){return f6(),S(T(tan,1),G,539,0,[Hj])}function jM(n){return!n.n&&(n.n=new q(Ar,n,1,7)),n.n}function mN(n){return!n.c&&(n.c=new q(Qu,n,9,9)),n.c}function UW(n){return!n.c&&(n.c=new Nn(he,n,5,8)),n.c}function rge(n){return!n.b&&(n.b=new Nn(he,n,4,7)),n.b}function U7(n){return n.j.c.length=0,zW(n.c),xae(n.a),n}function P4(n){return n.e==rv&&jfe(n,Y8e(n.g,n.b)),n.e}function G7(n){return n.f==rv&&Cfe(n,q7e(n.g,n.b)),n.f}function Ve(n,e,t,i){return Hxn(n,e,t,!1),BT(n,i),n}function kIn(n,e){this.b=n,oN.call(this,n,e),RTn(this)}function yIn(n,e){this.b=n,SV.call(this,n,e),KTn(this)}function W6(n){this.d=n,this.a=this.d.b,this.b=this.d.c}function GW(n,e){this.b=n,this.c=e,this.a=new dp(this.b)}function Xi(n,e){return zn(e,n.length),n.charCodeAt(e)}function cge(n,e){DY(n,$(yl(e,"x")),$(yl(e,"y")))}function uge(n,e){DY(n,$(yl(e,"x")),$(yl(e,"y")))}function ct(n,e){return ea(n),new Tn(n,new tQ(e,n.a))}function _r(n,e){return ea(n),new Tn(n,new _J(e,n.a))}function Ub(n,e){return ea(n),new uV(n,new ILn(e,n.a))}function EM(n,e){return ea(n),new oV(n,new OLn(e,n.a))}function oge(n,e){return new GIn(u(Se(n),50),u(Se(e),50))}function sge(n,e){return bt(n.d.c+n.d.b/2,e.d.c+e.d.b/2)}function jIn(n,e,t){t.a?tu(n,e.b-n.f/2):eu(n,e.a-n.g/2)}function fge(n,e){return bt(n.g.c+n.g.b/2,e.g.c+e.g.b/2)}function hge(n,e){return $z(),bt((Jn(n),n),(Jn(e),e))}function lge(n){return n!=null&&r7(jO,n.toLowerCase())}function zW(n){var e;for(e=n.Kc();e.Ob();)e.Pb(),e.Qb()}function Tg(n){var e;return e=n.b,!e&&(n.b=e=new N8n(n)),e}function vN(n){var e;return e=Wme(n),e||null}function EIn(n,e){var t,i;return t=n/e,i=wi(t),t>i&&++i,i}function age(n,e,t){var i;i=u(n.d.Kb(t),159),i&&i.Nb(e)}function dge(n,e,t){wIe(n.a,t),zve(t),xCe(n.b,t),$Ie(e,t)}function CM(n,e,t,i){this.a=n,this.c=e,this.b=t,this.d=i}function XW(n,e,t,i){this.c=n,this.b=e,this.a=t,this.d=i}function CIn(n,e,t,i){this.c=n,this.b=e,this.d=t,this.a=i}function Ho(n,e,t,i){this.c=n,this.d=e,this.b=t,this.a=i}function MIn(n,e,t,i){this.a=n,this.d=e,this.c=t,this.b=i}function kN(n,e,t,i){this.a=n,this.e=e,this.d=t,this.c=i}function TIn(n,e,t,i){this.a=n,this.c=e,this.d=t,this.b=i}function yN(n,e,t){this.a=ktn,this.d=n,this.b=e,this.c=t}function Op(n,e,t,i){je.call(this,n,e),this.a=t,this.b=i}function AIn(n,e){this.d=(Jn(n),n),this.a=16449,this.c=e}function SIn(n){this.a=new Z,this.e=K(ye,J,53,n,0,2)}function bge(n){n.Ug("No crossing minimization",1),n.Vg()}function PIn(){ec.call(this,"There is no more element.")}function IIn(n,e,t,i){this.a=n,this.b=e,this.c=t,this.d=i}function OIn(n,e,t,i){this.a=n,this.b=e,this.c=t,this.d=i}function Za(n,e,t,i){this.e=n,this.a=e,this.c=t,this.d=i}function DIn(n,e,t,i){this.a=n,this.c=e,this.d=t,this.b=i}function LIn(n,e,t,i){Ko(),DLn.call(this,e,t,i),this.a=n}function NIn(n,e,t,i){Ko(),DLn.call(this,e,t,i),this.a=n}function jN(n,e,t){var i,r;return i=utn(n),r=e.ti(t,i),r}function al(n){var e,t;return t=(e=new Jd,e),K4(t,n),t}function EN(n){var e,t;return t=(e=new Jd,e),fnn(t,n),t}function wge(n,e){var t;return t=ee(n.f,e),HQ(e,t),null}function $In(n){return!n.b&&(n.b=new q(Vt,n,12,3)),n.b}function xIn(n){return F6(n==null||uN(n)&&n.Tm!==J2),n}function MM(n){return n.n&&(n.e!==Fzn&&n.je(),n.j=null),n}function I4(n){if(eo(n.d),n.d.d!=n.c)throw M(new Bo)}function VW(n){return oe(n.b0&&bKn(this)}function FIn(n,e){this.a=n,bae.call(this,n,u(n.d,15).fd(e))}function gge(n,e){return bt(Su(n)*ao(n),Su(e)*ao(e))}function pge(n,e){return bt(Su(n)*ao(n),Su(e)*ao(e))}function mge(n){return _0(n)&&on(un(z(n,(cn(),Nd))))}function vge(n,e){return Pn(n,u(v(e,(cn(),Cv)),17),e)}function kge(n,e){return u(v(n,(W(),T3)),15).Fc(e),e}function WW(n,e){return n.b=e.b,n.c=e.c,n.d=e.d,n.a=e.a,n}function BIn(n,e,t,i){this.b=n,this.c=i,IC.call(this,e,t)}function yge(n,e,t){n.i=0,n.e=0,e!=t&&yFn(n,e,t)}function jge(n,e,t){n.i=0,n.e=0,e!=t&&jFn(n,e,t)}function Ege(n,e,t){return s6(),J5e(u(ee(n.e,e),529),t)}function Dp(n){var e;return e=n.f,e||(n.f=new h4(n,n.c))}function RIn(n,e){return xg(n.j,e.s,e.c)+xg(e.e,n.s,n.c)}function KIn(n,e){n.e&&!n.e.a&&(Ayn(n.e,e),KIn(n.e,e))}function _In(n,e){n.d&&!n.d.a&&(Ayn(n.d,e),_In(n.d,e))}function Cge(n,e){return-bt(Su(n)*ao(n),Su(e)*ao(e))}function Mge(n){return u(n.ld(),149).Pg()+":"+Jr(n.md())}function HIn(){tF(this,new oG),this.wb=(G1(),Hn),o4()}function qIn(n){this.b=new Z,hi(this.b,this.b),this.a=n}function JW(n,e){new Ct,this.a=new Mu,this.b=n,this.c=e}function j0(){j0=F,Pun=new FU,ZK=new FU,Iun=new D0n}function Dn(){Dn=F,sr=new A0n,Wh=new P0n,hP=new I0n}function QW(){QW=F,RQn=new nbn,_Qn=new aW,KQn=new ebn}function Lp(){Lp=F,mP=new Z,m_=new de,p_=new Z}function TM(n,e){if(n==null)throw M(new sp(e));return n}function AM(n){return!n.a&&(n.a=new q(Qe,n,10,11)),n.a}function ft(n){return!n.q&&(n.q=new q(As,n,11,10)),n.q}function _(n){return!n.s&&(n.s=new q(ku,n,21,17)),n.s}function Tge(n){return Se(n),IRn(new te(re(n.a.Kc(),new En)))}function Age(n,e){return wo(n),wo(e),Fjn(u(n,22),u(e,22))}function nd(n,e,t){var i,r;i=IV(t),r=new AE(i),df(n,e,r)}function MN(n,e,t,i,r,c){ok.call(this,n,e,t,i,r,c?-2:-1)}function UIn(n,e,t,i){pX.call(this,e,t),this.b=n,this.a=i}function GIn(n,e){Vfe.call(this,new iN(n)),this.a=n,this.b=e}function YW(n){this.b=n,this.c=n,n.e=null,n.c=null,this.a=1}function Sge(n){xs();var e;e=u(n.g,10),e.n.a=n.d.c+e.d.b}function O4(){O4=F;var n,e;e=!$8e(),n=new V3,VK=e?new og:n}function TN(n){return Dn(),O(n,59)?new jD(n):new BC(n)}function SM(n){return O(n,16)?new B6(u(n,16)):obe(n.Kc())}function Pge(n){return new HTn(n,n.e.Rd().gc()*n.c.Rd().gc())}function Ige(n){return new qTn(n,n.e.Rd().gc()*n.c.Rd().gc())}function ZW(n){return n&&n.hashCode?n.hashCode():l0(n)}function AN(n,e){return e==null?!!wr(n.f,null):zbe(n.i,e)}function Oge(n,e){var t;return t=$X(n.a,e),t&&(e.d=null),t}function zIn(n,e,t){return n.f?n.f.ef(e,t):!1}function z7(n,e,t,i){$t(n.c[e.g],t.g,i),$t(n.c[t.g],e.g,i)}function SN(n,e,t,i){$t(n.c[e.g],e.g,t),$t(n.b[e.g],e.g,i)}function Dge(n,e,t){return $(R(t.a))<=n&&$(R(t.b))>=e}function XIn(n,e){this.g=n,this.d=S(T(Qh,1),b1,10,0,[e])}function VIn(n){this.c=n,this.b=new Ul(u(Se(new tbn),50))}function WIn(n){this.c=n,this.b=new Ul(u(Se(new ewn),50))}function JIn(n){this.b=n,this.a=new Ul(u(Se(new Nbn),50))}function QIn(){this.b=new ni,this.d=new Ct,this.e=new ZG}function nJ(){this.c=new Li,this.d=new Li,this.e=new Li}function E0(){this.a=new Mu,this.b=(Co(3,mw),new Gc(3))}function Wl(n,e){this.e=n,this.a=ki,this.b=Qqn(e),this.c=e}function PM(n){this.c=n.c,this.d=n.d,this.b=n.b,this.a=n.a}function YIn(n,e,t,i,r,c){this.a=n,k$.call(this,e,t,i,r,c)}function ZIn(n,e,t,i,r,c){this.a=n,k$.call(this,e,t,i,r,c)}function X1(n,e,t,i,r,c,s){return new GN(n.e,e,t,i,r,c,s)}function Lge(n,e,t){return t>=0&&An(n.substr(t,e.length),e)}function nOn(n,e){return O(e,149)&&An(n.b,u(e,149).Pg())}function Nge(n,e){return n.a?e.Gh().Kc():u(e.Gh(),71).Ii()}function eOn(n,e){var t;return t=n.b.Qc(e),WDn(t,n.b.gc()),t}function X7(n,e){if(n==null)throw M(new sp(e));return n}function Hr(n){return n.u||(Zu(n),n.u=new NAn(n,n)),n.u}function PN(n){this.a=(Dn(),O(n,59)?new jD(n):new BC(n))}function au(n){var e;return e=u(Un(n,16),29),e||n.ii()}function IM(n,e){var t;return t=za(n.Rm),e==null?t:t+": "+e}function qo(n,e,t){return Fi(e,t,n.length),n.substr(e,t-e)}function tOn(n,e){qC.call(this),lQ(this),this.a=n,this.c=e}function $ge(n){n&&IM(n,n.ie())}function xge(n){HE(),y.setTimeout(function(){throw n},0)}function Fge(){return YT(),S(T(Bun,1),G,436,0,[o_,Fun])}function Bge(){return cT(),S(T(Kun,1),G,435,0,[Run,s_])}function Rge(){return uT(),S(T(bon,1),G,432,0,[v_,vP])}function Kge(){return V4(),S(T(KZn,1),G,517,0,[dj,L_])}function _ge(){return KM(),S(T(Qsn,1),G,429,0,[fH,Jsn])}function Hge(){return pk(),S(T($sn,1),G,428,0,[WP,Nsn])}function qge(){return QM(),S(T(Asn,1),G,431,0,[Tsn,V_])}function Uge(){return wk(),S(T(qhn,1),G,430,0,[UH,GH])}function Gge(){return n5(),S(T(Oie,1),G,531,0,[r9,i9])}function zge(){return yT(),S(T(Rln,1),G,501,0,[RI,D2])}function Xge(){return sh(),S(T(Bie,1),G,523,0,[mb,y1])}function Vge(){return Sf(),S(T(Kie,1),G,522,0,[Rd,zf])}function Wge(){return lf(),S(T(ere,1),G,528,0,[zw,ja])}function Jge(){return hk(),S(T(Bsn,1),G,488,0,[Fsn,QP])}function Qge(){return GM(),S(T(S1n,1),G,491,0,[$q,A1n])}function Yge(){return N$(),S(T(N1n,1),G,492,0,[D1n,L1n])}function Zge(){return FM(),S(T(Bln,1),G,433,0,[dq,Fln])}function n2e(){return ZM(),S(T(_ln,1),G,434,0,[Kln,vq])}function e2e(){return M0(),S(T(sre,1),G,465,0,[Ea,P2])}function t2e(){return ck(),S(T(x1n,1),G,438,0,[Kq,JI])}function i2e(){return Ak(),S(T(ran,1),G,437,0,[YI,ian])}function r2e(){return RL(),S(T(dO,1),G,347,0,[vdn,kdn])}function OM(n,e,t,i){return t>=0?n.Uh(e,t,i):n.Ch(null,t,i)}function V7(n){return n.b.b==0?n.a.sf():UL(n.b)}function c2e(n){if(n.p!=5)throw M(new Cu);return Ae(n.f)}function u2e(n){if(n.p!=5)throw M(new Cu);return Ae(n.k)}function eJ(n){return x(n.a)===x((D$(),CU))&&rOe(n),n.a}function o2e(n,e){n.b=e,n.c>0&&n.b>0&&(n.g=cM(n.c,n.b,n.a))}function s2e(n,e){n.c=e,n.c>0&&n.b>0&&(n.g=cM(n.c,n.b,n.a))}function iOn(n,e){ufe(this,new V(n.a,n.b)),ofe(this,F7(e))}function C0(){Wfe.call(this,new ap(Qb(12))),KX(!0),this.a=2}function IN(n,e,t){nt(),Wd.call(this,n),this.b=e,this.a=t}function tJ(n,e,t){Ko(),LE.call(this,e),this.a=n,this.b=t}function rOn(n){var e;e=n.c.d.b,n.b=e,n.a=n.c.d,e.a=n.c.d.b=n}function f2e(n){return n.b==0?null:(oe(n.b!=0),Xo(n,n.a.a))}function Nc(n,e){return e==null?Kr(wr(n.f,null)):d6(n.i,e)}function cOn(n,e,t,i,r){return new rF(n,(B4(),i_),e,t,i,r)}function DM(n,e){return zDn(e),Lme(n,K(ye,Ke,28,e,15,1),e)}function LM(n,e){return TM(n,"set1"),TM(e,"set2"),new VEn(n,e)}function h2e(n,e){var t=XK[n.charCodeAt(0)];return t??n}function uOn(n,e){var t,i;return t=e,i=new DO,LGn(n,t,i),i.d}function ON(n,e,t,i){var r;r=new FAn,e.a[t.g]=r,Pp(n.b,i,r)}function l2e(n,e){var t;return t=Ime(n.f,e),tt(HC(t),n.f.d)}function W7(n){var e;_me(n.a),dTn(n.a),e=new IE(n.a),HY(e)}function a2e(n,e){_qn(n,!0),nu(n.e.Rf(),new NV(n,!0,e))}function d2e(n,e){return Lp(),n==At(Kh(e))||n==At(ia(e))}function b2e(n,e){return kl(),u(v(e,(lc(),Sh)),17).a==n}function wi(n){return Math.max(Math.min(n,et),-2147483648)|0}function oOn(n){this.a=u(Se(n),277),this.b=(Dn(),new XX(n))}function sOn(n,e,t){this.i=new Z,this.b=n,this.g=e,this.a=t}function iJ(n,e,t){this.a=new Z,this.e=n,this.f=e,this.c=t}function NM(n,e,t){this.c=new Z,this.e=n,this.f=e,this.b=t}function fOn(n){qC.call(this),lQ(this),this.a=n,this.c=!0}function w2e(n){function e(){}return e.prototype=n||{},new e}function g2e(n){if(n.Ae())return null;var e=n.n;return rP[e]}function J7(n){return n.Db>>16!=3?null:u(n.Cb,27)}function Af(n){return n.Db>>16!=9?null:u(n.Cb,27)}function hOn(n){return n.Db>>16!=6?null:u(n.Cb,74)}function M0(){M0=F,Ea=new cX(s3,0),P2=new cX(f3,1)}function sh(){sh=F,mb=new tX(f3,0),y1=new tX(s3,1)}function Sf(){Sf=F,Rd=new iX(_B,0),zf=new iX("UP",1)}function lOn(){lOn=F,oQn=Ce((RE(),S(T(uQn,1),G,549,0,[GK])))}function aOn(n){var e;return e=new zE(Qb(n.length)),eY(e,n),e}function dOn(n,e){return n.b+=e.b,n.c+=e.c,n.d+=e.d,n.a+=e.a,n}function p2e(n,e){return Zxn(n,e)?(W$n(n),!0):!1}function dl(n,e){if(e==null)throw M(new ip);return F8e(n,e)}function Q7(n,e){var t;t=n.q.getHours(),n.q.setDate(e),G5(n,t)}function rJ(n,e,t){var i;i=n.Ih(e),i>=0?n.bi(i,t):ten(n,e,t)}function bOn(n,e){var t;return t=n.Ih(e),t>=0?n.Wh(t):hF(n,e)}function wOn(n,e){var t;for(Se(e),t=n.a;t;t=t.c)e.Yd(t.g,t.i)}function DN(n,e,t){var i;i=vFn(n,e,t),n.b=new ET(i.c.length)}function Ag(n,e,t){$M(),n&&Xe(yU,n,e),n&&Xe(hE,n,t)}function m2e(n,e){return VC(),_n(),u(e.a,17).a0}function cJ(n){var e;return e=n.d,e=n.bj(n.f),ve(n,e),e.Ob()}function gOn(n,e){var t;return t=new fW(e),_Kn(t,n),new _u(t)}function y2e(n){if(n.p!=0)throw M(new Cu);return M6(n.f,0)}function j2e(n){if(n.p!=0)throw M(new Cu);return M6(n.k,0)}function pOn(n){return n.Db>>16!=7?null:u(n.Cb,241)}function D4(n){return n.Db>>16!=6?null:u(n.Cb,241)}function mOn(n){return n.Db>>16!=7?null:u(n.Cb,167)}function At(n){return n.Db>>16!=11?null:u(n.Cb,27)}function Gb(n){return n.Db>>16!=17?null:u(n.Cb,29)}function vOn(n){return n.Db>>16!=3?null:u(n.Cb,155)}function uJ(n){var e;return ea(n),e=new ni,ct(n,new M9n(e))}function kOn(n,e){var t=n.a=n.a||[];return t[e]||(t[e]=n.ve(e))}function E2e(n,e){var t;t=n.q.getHours(),n.q.setMonth(e),G5(n,t)}function yOn(n,e){xC(this),this.f=e,this.g=n,MM(this),this.je()}function jOn(n,e){this.a=n,this.c=Ki(this.a),this.b=new PM(e)}function EOn(n,e,t){this.a=e,this.c=n,this.b=(Se(t),new _u(t))}function COn(n,e,t){this.a=e,this.c=n,this.b=(Se(t),new _u(t))}function MOn(n){this.a=n,this.b=K(Sie,J,2043,n.e.length,0,2)}function TOn(){this.a=new ih,this.e=new ni,this.g=0,this.i=0}function $M(){$M=F,yU=new de,hE=new de,ple(MQn,new wvn)}function AOn(){AOn=F,aie=Pu(new ii,(Vi(),zr),(tr(),bj))}function oJ(){oJ=F,die=Pu(new ii,(Vi(),zr),(tr(),bj))}function SOn(){SOn=F,wie=Pu(new ii,(Vi(),zr),(tr(),bj))}function POn(){POn=F,Lie=Re(new ii,(Vi(),zr),(tr(),x8))}function ko(){ko=F,xie=Re(new ii,(Vi(),zr),(tr(),x8))}function IOn(){IOn=F,Fie=Re(new ii,(Vi(),zr),(tr(),x8))}function NN(){NN=F,Hie=Re(new ii,(Vi(),zr),(tr(),x8))}function J6(n,e,t,i,r,c){return new ml(n.e,e,n.Lj(),t,i,r,c)}function Dr(n,e,t){return e==null?Vc(n.f,null,t):$0(n.i,e,t)}function Zi(n,e){n.c&&du(n.c.g,n),n.c=e,n.c&&nn(n.c.g,n)}function $i(n,e){n.c&&du(n.c.a,n),n.c=e,n.c&&nn(n.c.a,n)}function ic(n,e){n.i&&du(n.i.j,n),n.i=e,n.i&&nn(n.i.j,n)}function Ii(n,e){n.d&&du(n.d.e,n),n.d=e,n.d&&nn(n.d.e,n)}function $N(n,e){n.a&&du(n.a.k,n),n.a=e,n.a&&nn(n.a.k,n)}function xN(n,e){n.b&&du(n.b.f,n),n.b=e,n.b&&nn(n.b.f,n)}function OOn(n,e){$we(n,n.b,n.c),u(n.b.b,68),e&&u(e.b,68).b}function C2e(n,e){return bt(u(n.c,65).c.e.b,u(e.c,65).c.e.b)}function M2e(n,e){return bt(u(n.c,65).c.e.a,u(e.c,65).c.e.a)}function T2e(n){return Y$(),_n(),u(n.a,86).d.e!=0}function xM(n,e){O(n.Cb,184)&&(u(n.Cb,184).tb=null),zc(n,e)}function FN(n,e){O(n.Cb,90)&&hw(Zu(u(n.Cb,90)),4),zc(n,e)}function A2e(n,e){LY(n,e),O(n.Cb,90)&&hw(Zu(u(n.Cb,90)),2)}function S2e(n,e){var t,i;t=e.c,i=t!=null,i&&Ip(n,new qb(e.c))}function DOn(n){var e,t;return t=(o4(),e=new Jd,e),K4(t,n),t}function LOn(n){var e,t;return t=(o4(),e=new Jd,e),K4(t,n),t}function NOn(n){for(var e;;)if(e=n.Pb(),!n.Ob())return e}function P2e(n,e,t){return nn(n.a,(yM(),Nx(e,t),new i0(e,t))),n}function $c(n,e){return dr(),a$(e)?new eM(e,n):new j7(e,n)}function Y7(n){return dh(),Ec(n,0)>=0?ta(n):G6(ta(n1(n)))}function I2e(n){var e;return e=u(ZC(n.b),9),new _o(n.a,e,n.c)}function $On(n,e){var t;return t=u(tw(Dp(n.a),e),16),t?t.gc():0}function xOn(n,e,t){var i;oBn(e,t,n.c.length),i=t-e,Pz(n.c,e,i)}function Jl(n,e,t){oBn(e,t,n.gc()),this.c=n,this.a=e,this.b=t-e}function Np(n){this.c=new Ct,this.b=n.b,this.d=n.c,this.a=n.a}function BN(n){this.a=y.Math.cos(n),this.b=y.Math.sin(n)}function ed(n,e,t,i){this.c=n,this.d=i,$N(this,e),xN(this,t)}function sJ(n,e){Xfe.call(this,new ap(Qb(n))),Co(e,Ozn),this.a=e}function FOn(n,e,t){return new rF(n,(B4(),t_),null,!1,e,t)}function BOn(n,e,t){return new rF(n,(B4(),r_),e,t,null,!1)}function O2e(){return Gu(),S(T(xr,1),G,108,0,[xun,Yr,Aw])}function D2e(){return bu(),S(T(JQn,1),G,472,0,[vf,pa,zs])}function L2e(){return Uu(),S(T(VQn,1),G,471,0,[Mh,ga,Gs])}function N2e(){return bf(),S(T(Sw,1),G,237,0,[bc,Wc,wc])}function $2e(){return i5(),S(T(Pon,1),G,391,0,[E_,j_,C_])}function x2e(){return D0(),S(T(R_,1),G,372,0,[ub,ma,cb])}function F2e(){return u5(),S(T(Psn,1),G,322,0,[B8,pj,Ssn])}function B2e(){return bT(),S(T(Osn,1),G,351,0,[Isn,VP,W_])}function R2e(){return hd(),S(T(pne,1),G,460,0,[Y_,mv,p2])}function K2e(){return Z4(),S(T(sH,1),G,299,0,[uH,oH,mj])}function _2e(){return vl(),S(T(Mne,1),G,311,0,[vj,v2,E3])}function H2e(){return g5(),S(T(Lhn,1),G,390,0,[FH,Dhn,MI])}function q2e(){return gr(),S(T(cie,1),G,463,0,[n9,Vu,Jc])}function U2e(){return ST(),S(T(zhn,1),G,387,0,[Uhn,zH,Ghn])}function G2e(){return d5(),S(T(Xhn,1),G,349,0,[VH,XH,Ij])}function z2e(){return om(),S(T(Whn,1),G,350,0,[WH,Vhn,e9])}function X2e(){return dT(),S(T(Yhn,1),G,352,0,[Qhn,JH,Jhn])}function V2e(){return DT(),S(T(Zhn,1),G,388,0,[QH,Ov,Gw])}function W2e(){return O0(),S(T(Tie,1),G,464,0,[Oj,t9,PI])}function Pf(n){return cc(S(T(Ei,1),J,8,0,[n.i.n,n.n,n.a]))}function J2e(){return b5(),S(T(gln,1),G,392,0,[wln,nq,Lj])}function ROn(){ROn=F,Fre=Pu(new ii,(Qp(),u9),(q5(),uln))}function FM(){FM=F,dq=new uX("DFS",0),Fln=new uX("BFS",1)}function KOn(n,e,t){var i;i=new E3n,i.b=e,i.a=t,++e.b,nn(n.d,i)}function Q2e(n,e,t){var i;i=new rr(t.d),tt(i,n),DY(e,i.a,i.b)}function Y2e(n,e){LTn(n,Ae(vi(w0(e,24),YA)),Ae(vi(e,YA)))}function zb(n,e){if(n<0||n>e)throw M(new Ir(Ptn+n+Itn+e))}function Ln(n,e){if(n<0||n>=e)throw M(new Ir(Ptn+n+Itn+e))}function zn(n,e){if(n<0||n>=e)throw M(new gz(Ptn+n+Itn+e))}function In(n,e){this.b=(Jn(n),n),this.a=e&vw?e:e|64|wh}function fJ(n){var e;return ea(n),e=(j0(),j0(),ZK),fT(n,e)}function Z2e(n,e,t){var i;return i=V5(n,e,!1),i.b<=e&&i.a<=t}function npe(){return nT(),S(T(O1n,1),G,439,0,[xq,I1n,P1n])}function epe(){return _T(),S(T(a1n,1),G,394,0,[l1n,Oq,h1n])}function tpe(){return XT(),S(T(f1n,1),G,445,0,[Bj,qI,Mq])}function ipe(){return rA(),S(T(bce,1),G,456,0,[Tq,Sq,Aq])}function rpe(){return Ok(),S(T(Uln,1),G,393,0,[KI,Hln,qln])}function cpe(){return AT(),S(T(s1n,1),G,300,0,[Cq,o1n,u1n])}function upe(){return jl(),S(T(ldn,1),G,346,0,[uO,M1,M9])}function ope(){return Fk(),S(T(Fq,1),G,444,0,[XI,VI,WI])}function spe(){return Nf(),S(T(Zan,1),G,278,0,[Bv,Jw,Rv])}function fpe(){return Gp(),S(T(mdn,1),G,280,0,[pdn,Yw,aO])}function T0(n){return Se(n),O(n,16)?new _u(u(n,16)):y4(n.Kc())}function hJ(n,e){return n&&n.equals?n.equals(e):x(n)===x(e)}function vi(n,e){return Q1(ewe(Vr(n)?ds(n):n,Vr(e)?ds(e):e))}function hf(n,e){return Q1(twe(Vr(n)?ds(n):n,Vr(e)?ds(e):e))}function RN(n,e){return Q1(iwe(Vr(n)?ds(n):n,Vr(e)?ds(e):e))}function hpe(n,e){var t;return t=(Jn(n),n).g,rV(!!t),Jn(e),t(e)}function _On(n,e){var t,i;return i=C4(n,e),t=n.a.fd(i),new zEn(n,t)}function lpe(n){return n.Db>>16!=6?null:u(dF(n),241)}function ape(n){if(n.p!=2)throw M(new Cu);return Ae(n.f)&ui}function dpe(n){if(n.p!=2)throw M(new Cu);return Ae(n.k)&ui}function E(n){return oe(n.ai?1:0}function GOn(n,e){var t,i;return t=s$(e),i=t,u(ee(n.c,i),17).a}function KN(n,e,t){var i;i=n.d[e.p],n.d[e.p]=n.d[t.p],n.d[t.p]=i}function Cpe(n,e,t){var i;n.n&&e&&t&&(i=new uvn,nn(n.e,i))}function _N(n,e){if(fi(n.a,e),e.d)throw M(new ec(nXn));e.d=n}function dJ(n,e){this.a=new Z,this.d=new Z,this.f=n,this.c=e}function zOn(){this.c=new PTn,this.a=new $Ln,this.b=new Xyn,lCn()}function XOn(){qp(),this.b=new de,this.a=new de,this.c=new Z}function VOn(n,e,t){this.d=n,this.j=e,this.e=t,this.o=-1,this.p=3}function WOn(n,e,t){this.d=n,this.k=e,this.f=t,this.o=-1,this.p=5}function JOn(n,e,t,i,r,c){dQ.call(this,n,e,t,i,r),c&&(this.o=-2)}function QOn(n,e,t,i,r,c){bQ.call(this,n,e,t,i,r),c&&(this.o=-2)}function YOn(n,e,t,i,r,c){OJ.call(this,n,e,t,i,r),c&&(this.o=-2)}function ZOn(n,e,t,i,r,c){pQ.call(this,n,e,t,i,r),c&&(this.o=-2)}function nDn(n,e,t,i,r,c){DJ.call(this,n,e,t,i,r),c&&(this.o=-2)}function eDn(n,e,t,i,r,c){wQ.call(this,n,e,t,i,r),c&&(this.o=-2)}function tDn(n,e,t,i,r,c){gQ.call(this,n,e,t,i,r),c&&(this.o=-2)}function iDn(n,e,t,i,r,c){LJ.call(this,n,e,t,i,r),c&&(this.o=-2)}function rDn(n,e,t,i){LE.call(this,t),this.b=n,this.c=e,this.d=i}function cDn(n,e){this.f=n,this.a=($4(),MO),this.c=MO,this.b=e}function uDn(n,e){this.g=n,this.d=($4(),TO),this.a=TO,this.b=e}function bJ(n,e){!n.c&&(n.c=new Rt(n,0)),HA(n.c,(at(),F9),e)}function Mpe(n,e){return oMe(n,e,O(e,102)&&(u(e,19).Bb&hr)!=0)}function Tpe(n,e){return KPn(vc(n.q.getTime()),vc(e.q.getTime()))}function oDn(n){return XL(n.e.Rd().gc()*n.c.Rd().gc(),16,new O8n(n))}function Ape(n){return!!n.u&&Sc(n.u.a).i!=0&&!(n.n&&Ix(n.n))}function Spe(n){return!!n.a&&no(n.a.a).i!=0&&!(n.b&&Ox(n.b))}function wJ(n,e){return e==0?!!n.o&&n.o.f!=0:Cx(n,e)}function Ppe(n,e,t){var i;return i=u(n.Zb().xc(e),16),!!i&&i.Hc(t)}function sDn(n,e,t){var i;return i=u(n.Zb().xc(e),16),!!i&&i.Mc(t)}function fDn(n,e){var t;return t=1-e,n.a[t]=jT(n.a[t],t),jT(n,e)}function hDn(n,e){var t,i;return i=vi(n,mr),t=Fs(e,32),hf(t,i)}function lDn(n,e,t){var i;i=(Se(n),new _u(n)),O7e(new EOn(i,e,t))}function Z7(n,e,t){var i;i=(Se(n),new _u(n)),D7e(new COn(i,e,t))}function fc(n,e,t,i,r,c){return Hxn(n,e,t,c),CY(n,i),MY(n,r),n}function aDn(n,e,t,i){return n.a+=""+qo(e==null?gu:Jr(e),t,i),n}function xi(n,e){this.a=n,Xv.call(this,n),zb(e,n.gc()),this.b=e}function dDn(n){this.a=K(ki,Fn,1,QQ(y.Math.max(8,n))<<1,5,1)}function nk(n){return u(xf(n,K(Qh,b1,10,n.c.length,0,1)),199)}function fh(n){return u(xf(n,K(O_,rR,18,n.c.length,0,1)),483)}function bDn(n){return n.a?n.e.length==0?n.a.a:n.a.a+(""+n.e):n.c}function Q6(n){for(;n.d>0&&n.a[--n.d]==0;);n.a[n.d++]==0&&(n.e=0)}function wDn(n){return oe(n.b.b!=n.d.a),n.c=n.b=n.b.b,--n.a,n.c.c}function Ipe(n,e,t){n.a=e,n.c=t,n.b.a.$b(),vo(n.d),Pb(n.e.a.c,0)}function gDn(n,e){var t;n.e=new uz,t=aw(e),Yt(t,n.c),Iqn(n,t,0)}function ri(n,e,t,i){var r;r=new nG,r.a=e,r.b=t,r.c=i,xe(n.a,r)}function Q(n,e,t,i){var r;r=new nG,r.a=e,r.b=t,r.c=i,xe(n.b,r)}function pDn(n,e,t){if(n<0||et)throw M(new Ir(qje(n,e,t)))}function ek(n,e){if(n<0||n>=e)throw M(new Ir(kEe(n,e)));return n}function Ope(n){if(!("stack"in n))try{throw n}catch{}return n}function Sg(n){return s6(),O(n.g,10)?u(n.g,10):null}function Dpe(n){return Tg(n).dc()?!1:(e1e(n,new Pr),!0)}function id(n){var e;return Vr(n)?(e=n,e==-0?0:e):X4e(n)}function mDn(n,e){return O(e,44)?xx(n.a,u(e,44)):!1}function vDn(n,e){return O(e,44)?xx(n.a,u(e,44)):!1}function kDn(n,e){return O(e,44)?xx(n.a,u(e,44)):!1}function gJ(n){var e;return z1(n),e=new L0n,hg(n.a,new j9n(e)),e}function pJ(){var n,e,t;return e=(t=(n=new Jd,n),t),nn(n0n,e),e}function BM(n){var e;return z1(n),e=new N0n,hg(n.a,new E9n(e)),e}function Lpe(n,e){return n.a<=n.b?(e.Dd(n.a++),!0):!1}function yDn(n){P$.call(this,n,(B4(),e_),null,!1,null,!1)}function jDn(){jDn=F,SYn=Ce((YE(),S(T(oon,1),G,489,0,[b_])))}function EDn(){EDn=F,eln=wIn(Y(1),Y(4)),nln=wIn(Y(1),Y(2))}function Npe(n,e){return new _L(e,N6(Ki(e.e),n,n),(_n(),!0))}function RM(n){return new Gc((Co(n,cB),oT(nr(nr(5,n),n/10|0))))}function $pe(n){return XL(n.e.Rd().gc()*n.c.Rd().gc(),273,new I8n(n))}function CDn(n){return u(xf(n,K(FZn,DXn,12,n.c.length,0,1)),2042)}function xpe(n){return ko(),!fr(n)&&!(!fr(n)&&n.c.i.c==n.d.i.c)}function Fpe(n,e){return _p(),u(v(e,(lc(),I2)),17).a>=n.gc()}function Y6(n,e){vLe(e,n),JV(n.d),JV(u(v(n,(cn(),mI)),214))}function HN(n,e){kLe(e,n),QV(n.d),QV(u(v(n,(cn(),mI)),214))}function Bpe(n,e,t){n.d&&du(n.d.e,n),n.d=e,n.d&&b0(n.d.e,t,n)}function Rpe(n,e,t){return t.f.c.length>0?MW(n.a,e,t):MW(n.b,e,t)}function Kpe(n,e,t){var i;i=i9e();try{return Aae(n,e,t)}finally{D3e(i)}}function A0(n,e){var t,i;return t=dl(n,e),i=null,t&&(i=t.pe()),i}function Z6(n,e){var t,i;return t=dl(n,e),i=null,t&&(i=t.se()),i}function L4(n,e){var t,i;return t=Jb(n,e),i=null,t&&(i=t.se()),i}function bl(n,e){var t,i;return t=dl(n,e),i=null,t&&(i=gnn(t)),i}function _pe(n,e,t){var i;return i=wm(t),FA(n.g,i,e),FA(n.i,e,t),e}function mJ(n,e,t){this.d=new $7n(this),this.e=n,this.i=e,this.f=t}function MDn(n,e,t,i){this.e=null,this.c=n,this.d=e,this.a=t,this.b=i}function TDn(n,e,t,i){ETn(this),this.c=n,this.e=e,this.f=t,this.b=i}function vJ(n,e,t,i){this.d=n,this.n=e,this.g=t,this.o=i,this.p=-1}function ADn(n,e,t,i){return O(t,59)?new iAn(n,e,t,i):new vW(n,e,t,i)}function N4(n){return O(n,16)?u(n,16).dc():!n.Kc().Ob()}function SDn(n){if(n.e.g!=n.b)throw M(new Bo);return!!n.c&&n.d>0}function be(n){return oe(n.b!=n.d.c),n.c=n.b,n.b=n.b.a,++n.a,n.c.c}function kJ(n,e){Jn(e),$t(n.a,n.c,e),n.c=n.c+1&n.a.length-1,JRn(n)}function V1(n,e){Jn(e),n.b=n.b-1&n.a.length-1,$t(n.a,n.b,e),JRn(n)}function PDn(n){var e;e=n.Gh(),this.a=O(e,71)?u(e,71).Ii():e.Kc()}function Hpe(n){return new In(Ame(u(n.a.md(),16).gc(),n.a.ld()),16)}function IDn(){IDn=F,Gce=Ce((eC(),S(T($1n,1),G,490,0,[Bq])))}function ODn(){ODn=F,Xce=Ce((tC(),S(T(zce,1),G,558,0,[Rq])))}function DDn(){DDn=F,lue=Ce((f6(),S(T(tan,1),G,539,0,[Hj])))}function qpe(){return dd(),S(T(Lon,1),G,389,0,[Ow,Don,P_,I_])}function Upe(){return B4(),S(T(lP,1),G,304,0,[e_,t_,i_,r_])}function Gpe(){return Vp(),S(T(EYn,1),G,332,0,[uj,cj,oj,sj])}function zpe(){return A5(),S(T(TYn,1),G,406,0,[fj,wP,gP,hj])}function Xpe(){return N0(),S(T(yYn,1),G,417,0,[rj,ij,a_,d_])}function Vpe(){return nm(),S(T(MZn,1),G,416,0,[rb,Iw,Pw,a2])}function Wpe(){return $f(),S(T(ene,1),G,421,0,[j3,lv,av,B_])}function Jpe(){return OT(),S(T(UZn,1),G,371,0,[F_,HP,qP,wj])}function Qpe(){return cw(),S(T(RH,1),G,203,0,[TI,BH,S2,A2])}function Ype(){return lh(),S(T(Hhn,1),G,284,0,[k1,_hn,HH,qH])}function Zpe(n){var e;return n.j==(tn(),ae)&&(e=mHn(n),Au(e,Zn))}function n3e(n,e){var t;t=e.a,Zi(t,e.c.d),Ii(t,e.d.d),nw(t.a,n.n)}function yJ(n,e){var t;return t=u(Lf(n.b,e),67),!t&&(t=new Ct),t}function xp(n){return s6(),O(n.g,154)?u(n.g,154):null}function e3e(n){n.a=null,n.e=null,Pb(n.b.c,0),Pb(n.f.c,0),n.c=null}function KM(){KM=F,fH=new Zz(qm,0),Jsn=new Zz("TOP_LEFT",1)}function n5(){n5=F,r9=new eX("UPPER",0),i9=new eX("LOWER",1)}function t3e(n,e){return vp(new V(e.e.a+e.f.a/2,e.e.b+e.f.b/2),n)}function LDn(n,e){return u(ho(_b(u(ot(n.k,e),15).Oc(),b2)),113)}function NDn(n,e){return u(ho(Ap(u(ot(n.k,e),15).Oc(),b2)),113)}function i3e(){return Qp(),S(T(rln,1),G,405,0,[LI,c9,u9,o9])}function r3e(){return w5(),S(T(xln,1),G,353,0,[aq,BI,lq,hq])}function c3e(){return sA(),S(T(c1n,1),G,354,0,[Eq,i1n,r1n,t1n])}function u3e(){return go(),S(T(I9,1),G,386,0,[rE,Gd,iE,Qw])}function o3e(){return To(),S(T(Yue,1),G,291,0,[nE,nl,Ta,Zj])}function s3e(){return El(),S(T(aU,1),G,223,0,[lU,Yj,Kv,F3])}function f3e(){return qT(),S(T(Cdn,1),G,320,0,[wU,ydn,Edn,jdn])}function h3e(){return LT(),S(T(woe,1),G,415,0,[gU,Tdn,Mdn,Adn])}function l3e(n){return $M(),Zc(yU,n)?u(ee(yU,n),341).Qg():null}function Uo(n,e,t){return e<0?hF(n,t):u(t,69).wk().Bk(n,n.hi(),e)}function a3e(n,e,t){var i;return i=wm(t),FA(n.j,i,e),Xe(n.k,e,t),e}function d3e(n,e,t){var i;return i=wm(t),FA(n.d,i,e),Xe(n.e,e,t),e}function $Dn(n){var e,t;return e=(B1(),t=new HO,t),n&&AA(e,n),e}function jJ(n){var e;return e=n.aj(n.i),n.i>0&&Ic(n.g,0,e,0,n.i),e}function xDn(n,e){var t;for(t=n.j.c.length;t>24}function w3e(n){if(n.p!=1)throw M(new Cu);return Ae(n.k)<<24>>24}function g3e(n){if(n.p!=7)throw M(new Cu);return Ae(n.k)<<16>>16}function p3e(n){if(n.p!=7)throw M(new Cu);return Ae(n.f)<<16>>16}function Pg(n,e){return e.e==0||n.e==0?O8:(Am(),vF(n,e))}function RDn(n,e){return x(e)===x(n)?"(this Map)":e==null?gu:Jr(e)}function m3e(n,e,t){return tN(R(Kr(wr(n.f,e))),R(Kr(wr(n.f,t))))}function v3e(n,e,t){var i;i=u(ee(n.g,t),60),nn(n.a.c,new bi(e,i))}function KDn(n,e,t){n.i=0,n.e=0,e!=t&&(jFn(n,e,t),yFn(n,e,t))}function k3e(n,e,t,i,r){var c;c=yMe(r,t,i),nn(e,dEe(r,c)),rje(n,r,e)}function EJ(n,e,t,i,r){this.i=n,this.a=e,this.e=t,this.j=i,this.f=r}function _Dn(n,e){nJ.call(this),this.a=n,this.b=e,nn(this.a.b,this)}function HDn(n){this.b=new de,this.c=new de,this.d=new de,this.a=n}function qDn(n,e){var t;return t=new lp,n.Gd(t),t.a+="..",e.Hd(t),t.a}function UDn(n,e){var t;for(t=e;t;)a0(n,t.i,t.j),t=At(t);return n}function GDn(n,e,t){var i;return i=wm(t),Xe(n.b,i,e),Xe(n.c,e,t),e}function wl(n){var e;for(e=0;n.Ob();)n.Pb(),e=nr(e,1);return oT(e)}function Fh(n,e){dr();var t;return t=u(n,69).vk(),kje(t,e),t.xl(e)}function y3e(n,e,t){if(t){var i=t.oe();n.a[e]=i(t)}else delete n.a[e]}function CJ(n,e){var t;t=n.q.getHours(),n.q.setFullYear(e+fa),G5(n,t)}function j3e(n,e){return u(e==null?Kr(wr(n.f,null)):d6(n.i,e),288)}function MJ(n,e){return n==(Vn(),zt)&&e==zt?4:n==zt||e==zt?8:32}function _M(n,e,t){return RA(n,e,t,O(e,102)&&(u(e,19).Bb&hr)!=0)}function E3e(n,e,t){return Om(n,e,t,O(e,102)&&(u(e,19).Bb&hr)!=0)}function C3e(n,e,t){return bMe(n,e,t,O(e,102)&&(u(e,19).Bb&hr)!=0)}function TJ(n){n.b!=n.c&&(n.a=K(ki,Fn,1,8,5,1),n.b=0,n.c=0)}function e5(n){return oe(n.a=0&&n.a[t]===e[t];t--);return t<0}function HM(n){var e;return n?new fW(n):(e=new ih,A$(e,n),e)}function O3e(n,e){var t,i;i=!1;do t=lFn(n,e),i=i|t;while(t);return i}function D3e(n){n&&rme((az(),sun)),--cP,n&&uP!=-1&&(Ele(uP),uP=-1)}function qM(n){nnn(),LTn(this,Ae(vi(w0(n,24),YA)),Ae(vi(n,YA)))}function JDn(){JDn=F,HQn=Ce((YT(),S(T(Bun,1),G,436,0,[o_,Fun])))}function QDn(){QDn=F,qQn=Ce((cT(),S(T(Kun,1),G,435,0,[Run,s_])))}function YDn(){YDn=F,GYn=Ce((uT(),S(T(bon,1),G,432,0,[v_,vP])))}function ZDn(){ZDn=F,_Zn=Ce((V4(),S(T(KZn,1),G,517,0,[dj,L_])))}function nLn(){nLn=F,Ane=Ce((KM(),S(T(Qsn,1),G,429,0,[fH,Jsn])))}function eLn(){eLn=F,gne=Ce((pk(),S(T($sn,1),G,428,0,[WP,Nsn])))}function tLn(){tLn=F,kne=Ce((hk(),S(T(Bsn,1),G,488,0,[Fsn,QP])))}function iLn(){iLn=F,rie=Ce((wk(),S(T(qhn,1),G,430,0,[UH,GH])))}function rLn(){rLn=F,Die=Ce((n5(),S(T(Oie,1),G,531,0,[r9,i9])))}function cLn(){cLn=F,ane=Ce((QM(),S(T(Asn,1),G,431,0,[Tsn,V_])))}function uLn(){uLn=F,xre=Ce((FM(),S(T(Bln,1),G,433,0,[dq,Fln])))}function oLn(){oLn=F,_re=Ce((yT(),S(T(Rln,1),G,501,0,[RI,D2])))}function sLn(){sLn=F,Rie=Ce((sh(),S(T(Bie,1),G,523,0,[mb,y1])))}function fLn(){fLn=F,_ie=Ce((Sf(),S(T(Kie,1),G,522,0,[Rd,zf])))}function hLn(){hLn=F,tre=Ce((lf(),S(T(ere,1),G,528,0,[zw,ja])))}function lLn(){lLn=F,fre=Ce((M0(),S(T(sre,1),G,465,0,[Ea,P2])))}function aLn(){aLn=F,Ure=Ce((ZM(),S(T(_ln,1),G,434,0,[Kln,vq])))}function dLn(){dLn=F,Rce=Ce((GM(),S(T(S1n,1),G,491,0,[$q,A1n])))}function bLn(){bLn=F,_ce=Ce((N$(),S(T(N1n,1),G,492,0,[D1n,L1n])))}function wLn(){wLn=F,Vce=Ce((ck(),S(T(x1n,1),G,438,0,[Kq,JI])))}function gLn(){gLn=F,aue=Ce((Ak(),S(T(ran,1),G,437,0,[YI,ian])))}function pLn(){pLn=F,aoe=Ce((RL(),S(T(dO,1),G,347,0,[vdn,kdn])))}function L3e(){return ci(),S(T(E9,1),G,88,0,[Wf,Xr,Br,Vf,us])}function N3e(){return tn(),S(T(lr,1),Mc,64,0,[sc,Xn,Zn,ae,Wn])}function $3e(n,e,t){return u(e==null?Vc(n.f,null,t):$0(n.i,e,t),288)}function x3e(n){return(n.k==(Vn(),zt)||n.k==Zt)&&kt(n,(W(),H8))}function XN(n){return n.c&&n.d?aJ(n.c)+"->"+aJ(n.d):"e_"+l0(n)}function qi(n,e){var t,i;for(Jn(e),i=n.Kc();i.Ob();)t=i.Pb(),e.Cd(t)}function F3e(n,e){var t;t=new op,nd(t,"x",e.a),nd(t,"y",e.b),Ip(n,t)}function B3e(n,e){var t;t=new op,nd(t,"x",e.a),nd(t,"y",e.b),Ip(n,t)}function mLn(n,e){var t;for(t=e;t;)a0(n,-t.i,-t.j),t=At(t);return n}function SJ(n,e){var t,i;for(t=e,i=0;t>0;)i+=n.a[t],t-=t&-t;return i}function Go(n,e,t){var i;return i=(Ln(e,n.c.length),n.c[e]),n.c[e]=t,i}function PJ(n,e,t){n.a.c.length=0,fOe(n,e,t),n.a.c.length==0||xSe(n,e)}function tk(n){n.i=0,s7(n.b,null),s7(n.c,null),n.a=null,n.e=null,++n.g}function UM(){UM=F,qf=!0,DQn=!1,LQn=!1,$Qn=!1,NQn=!1}function VN(n){UM(),!qf&&(this.c=n,this.e=!0,this.a=new Z)}function vLn(n,e){this.c=0,this.b=e,HMn.call(this,n,17493),this.a=this.c}function kLn(n){jzn(),Syn(this),this.a=new Ct,sY(this,n),xe(this.a,n)}function yLn(){pL(this),this.b=new V(St,St),this.a=new V(li,li)}function GM(){GM=F,$q=new fX(cin,0),A1n=new fX("TARGET_WIDTH",1)}function Ig(n,e){return(ea(n),s4(new Tn(n,new tQ(e,n.a)))).Bd(v3)}function R3e(){return Vi(),S(T(Ion,1),G,367,0,[Xs,Jh,Oc,Kc,zr])}function K3e(){return ow(),S(T(ine,1),G,375,0,[gj,zP,XP,GP,UP])}function _3e(){return o1(),S(T(Lsn,1),G,348,0,[J_,Dsn,Q_,pv,gv])}function H3e(){return T5(),S(T($hn,1),G,323,0,[Nhn,KH,_H,Y8,Z8])}function q3e(){return Yo(),S(T(hfn,1),G,171,0,[Ej,U8,ka,G8,xw])}function U3e(){return wA(),S(T(Hre,1),G,368,0,[pq,bq,mq,wq,gq])}function G3e(){return R5(),S(T(Hce,1),G,373,0,[L2,D3,g9,w9,_j])}function z3e(){return Yk(),S(T(K1n,1),G,324,0,[F1n,_q,R1n,Hq,B1n])}function X3e(){return gf(),S(T(Zh,1),G,170,0,[xn,pi,Ph,Kd,E1])}function V3e(){return Fg(),S(T(A9,1),G,256,0,[Aa,eE,adn,T9,ddn])}function W3e(n){return HE(),function(){return Kpe(n,this,arguments)}}function fr(n){return!n.c||!n.d?!1:!!n.c.i&&n.c.i==n.d.i}function IJ(n,e){return O(e,143)?An(n.c,u(e,143).c):!1}function Zu(n){return n.t||(n.t=new myn(n),k5(new Njn(n),0,n.t)),n.t}function jLn(n){this.b=n,ne.call(this,n),this.a=u(Un(this.b.a,4),129)}function ELn(n){this.b=n,yp.call(this,n),this.a=u(Un(this.b.a,4),129)}function Bs(n,e,t,i,r){LLn.call(this,e,i,r),this.c=n,this.b=t}function OJ(n,e,t,i,r){VOn.call(this,e,i,r),this.c=n,this.a=t}function DJ(n,e,t,i,r){WOn.call(this,e,i,r),this.c=n,this.a=t}function LJ(n,e,t,i,r){LLn.call(this,e,i,r),this.c=n,this.a=t}function WN(n,e){var t;return t=u(Lf(n.d,e),23),t||u(Lf(n.e,e),23)}function CLn(n,e){var t,i;return t=e.ld(),i=n.Fe(t),!!i&&mc(i.e,e.md())}function MLn(n,e){var t;return t=e.ld(),new i0(t,n.e.pc(t,u(e.md(),16)))}function J3e(n,e){var t;return t=n.a.get(e),t??K(ki,Fn,1,0,5,1)}function TLn(n){var e;return e=n.length,An(Yn.substr(Yn.length-e,e),n)}function fe(n){if(pe(n))return n.c=n.a,n.a.Pb();throw M(new nc)}function NJ(n,e){return e==0||n.e==0?n:e>0?wqn(n,e):RBn(n,-e)}function Fp(n,e){return e==0||n.e==0?n:e>0?RBn(n,e):wqn(n,-e)}function $J(n){ole.call(this,n==null?gu:Jr(n),O(n,82)?u(n,82):null)}function ALn(n){var e;return n.c||(e=n.r,O(e,90)&&(n.c=u(e,29))),n.c}function JN(n){var e;return e=new E0,Ur(e,n),U(e,(cn(),Fr),null),e}function SLn(n){var e,t;return e=n.c.i,t=n.d.i,e.k==(Vn(),Zt)&&t.k==Zt}function QN(n){var e,t,i;return e=n&ro,t=n>>22&ro,i=n<0?Il:0,Yc(e,t,i)}function Q3e(n){var e,t,i,r;for(t=n,i=0,r=t.length;i=0?n.Lh(i,t,!0):H0(n,e,t)}function Z3e(n,e,t){return bt(vp(pm(n),Ki(e.b)),vp(pm(n),Ki(t.b)))}function n4e(n,e,t){return bt(vp(pm(n),Ki(e.e)),vp(pm(n),Ki(t.e)))}function e4e(n,e){return y.Math.min(W1(e.a,n.d.d.c),W1(e.b,n.d.d.c))}function ik(n,e){n._i(n.i+1),O6(n,n.i,n.Zi(n.i,e)),n.Mi(n.i++,e),n.Ni()}function t5(n){var e,t;++n.j,e=n.g,t=n.i,n.g=null,n.i=0,n.Oi(t,e),n.Ni()}function PLn(n,e,t){var i;i=new NX(n.a),f5(i,n.a.a),Vc(i.f,e,t),n.a.a=i}function xJ(n,e,t,i){var r;for(r=0;re)throw M(new Ir(Mnn(n,e,"index")));return n}function Yl(n,e){var t;return t=(Ln(e,n.c.length),n.c[e]),Pz(n.c,e,1),t}function RJ(n,e){var t,i;return t=(Jn(n),n),i=(Jn(e),e),t==i?0:te.p?-1:0}function FLn(n){var e;return n.a||(e=n.r,O(e,156)&&(n.a=u(e,156))),n.a}function o4e(n,e,t){var i;return++n.e,--n.f,i=u(n.d[e].gd(t),136),i.md()}function s4e(n){var e,t;return e=n.ld(),t=u(n.md(),16),x7(t.Nc(),new L8n(e))}function BLn(n,e){return Zc(n.a,e)?(Bp(n.a,e),!0):!1}function Rp(n,e,t){return ek(e,n.e.Rd().gc()),ek(t,n.c.Rd().gc()),n.a[e][t]}function XM(n,e,t){this.a=n,this.b=e,this.c=t,nn(n.t,this),nn(e.i,this)}function VM(n,e,t,i){this.f=n,this.e=e,this.d=t,this.b=i,this.c=i?i.d:null}function rk(){this.b=new Ct,this.a=new Ct,this.b=new Ct,this.a=new Ct}function $4(){$4=F;var n,e;MO=(o4(),e=new xE,e),TO=(n=new fD,n)}function f4e(n){var e;return ea(n),e=new ISn(n,n.a.e,n.a.d|4),new uV(n,e)}function RLn(n){var e;for(z1(n),e=0;n.a.Bd(new W0n);)e=nr(e,1);return e}function WM(n,e){return Jn(e),n.c=0,"Initial capacity must not be negative")}function JM(){JM=F,p9=new lt("org.eclipse.elk.labels.labelManager")}function KLn(){KLn=F,ysn=new Dt("separateLayerConnections",(OT(),F_))}function lf(){lf=F,zw=new rX("REGULAR",0),ja=new rX("CRITICAL",1)}function ck(){ck=F,Kq=new lX("FIXED",0),JI=new lX("CENTER_NODE",1)}function QM(){QM=F,Tsn=new Jz("QUADRATIC",0),V_=new Jz("SCANLINE",1)}function _Ln(){_Ln=F,dne=Ce((u5(),S(T(Psn,1),G,322,0,[B8,pj,Ssn])))}function HLn(){HLn=F,bne=Ce((bT(),S(T(Osn,1),G,351,0,[Isn,VP,W_])))}function qLn(){qLn=F,fne=Ce((D0(),S(T(R_,1),G,372,0,[ub,ma,cb])))}function ULn(){ULn=F,mne=Ce((hd(),S(T(pne,1),G,460,0,[Y_,mv,p2])))}function GLn(){GLn=F,Cne=Ce((Z4(),S(T(sH,1),G,299,0,[uH,oH,mj])))}function zLn(){zLn=F,Tne=Ce((vl(),S(T(Mne,1),G,311,0,[vj,v2,E3])))}function XLn(){XLn=F,Zte=Ce((g5(),S(T(Lhn,1),G,390,0,[FH,Dhn,MI])))}function VLn(){VLn=F,oie=Ce((ST(),S(T(zhn,1),G,387,0,[Uhn,zH,Ghn])))}function WLn(){WLn=F,sie=Ce((d5(),S(T(Xhn,1),G,349,0,[VH,XH,Ij])))}function JLn(){JLn=F,uie=Ce((gr(),S(T(cie,1),G,463,0,[n9,Vu,Jc])))}function QLn(){QLn=F,fie=Ce((om(),S(T(Whn,1),G,350,0,[WH,Vhn,e9])))}function YLn(){YLn=F,hie=Ce((dT(),S(T(Yhn,1),G,352,0,[Qhn,JH,Jhn])))}function ZLn(){ZLn=F,lie=Ce((DT(),S(T(Zhn,1),G,388,0,[QH,Ov,Gw])))}function nNn(){nNn=F,are=Ce((b5(),S(T(gln,1),G,392,0,[wln,nq,Lj])))}function eNn(){eNn=F,Gre=Ce((Ok(),S(T(Uln,1),G,393,0,[KI,Hln,qln])))}function tNn(){tNn=F,ace=Ce((AT(),S(T(s1n,1),G,300,0,[Cq,o1n,u1n])))}function iNn(){iNn=F,dce=Ce((XT(),S(T(f1n,1),G,445,0,[Bj,qI,Mq])))}function rNn(){rNn=F,wce=Ce((rA(),S(T(bce,1),G,456,0,[Tq,Sq,Aq])))}function cNn(){cNn=F,mce=Ce((_T(),S(T(a1n,1),G,394,0,[l1n,Oq,h1n])))}function uNn(){uNn=F,Kce=Ce((nT(),S(T(O1n,1),G,439,0,[xq,I1n,P1n])))}function oNn(){oNn=F,Aie=Ce((O0(),S(T(Tie,1),G,464,0,[Oj,t9,PI])))}function sNn(){sNn=F,WQn=Ce((Uu(),S(T(VQn,1),G,471,0,[Mh,ga,Gs])))}function fNn(){fNn=F,XQn=Ce((bf(),S(T(Sw,1),G,237,0,[bc,Wc,wc])))}function hNn(){hNn=F,QQn=Ce((bu(),S(T(JQn,1),G,472,0,[vf,pa,zs])))}function lNn(){lNn=F,xQn=Ce((Gu(),S(T(xr,1),G,108,0,[xun,Yr,Aw])))}function aNn(){aNn=F,pZn=Ce((i5(),S(T(Pon,1),G,391,0,[E_,j_,C_])))}function dNn(){dNn=F,Que=Ce((jl(),S(T(ldn,1),G,346,0,[uO,M1,M9])))}function bNn(){bNn=F,Uce=Ce((Fk(),S(T(Fq,1),G,444,0,[XI,VI,WI])))}function wNn(){wNn=F,Xue=Ce((Nf(),S(T(Zan,1),G,278,0,[Bv,Jw,Rv])))}function gNn(){gNn=F,loe=Ce((Gp(),S(T(mdn,1),G,280,0,[pdn,Yw,aO])))}function Df(n,e){return!n.o&&(n.o=new Iu((Cc(),il),T1,n,0)),wx(n.o,e)}function h4e(n,e){var t;n.C&&(t=u(Cr(n.b,e),127).n,t.d=n.C.d,t.a=n.C.a)}function UJ(n){var e,t,i,r;r=n.d,e=n.a,t=n.b,i=n.c,n.d=t,n.a=i,n.b=r,n.c=e}function l4e(n){return!n.g&&(n.g=new CE),!n.g.b&&(n.g.b=new byn(n)),n.g.b}function uk(n){return!n.g&&(n.g=new CE),!n.g.c&&(n.g.c=new pyn(n)),n.g.c}function a4e(n){return!n.g&&(n.g=new CE),!n.g.d&&(n.g.d=new wyn(n)),n.g.d}function d4e(n){return!n.g&&(n.g=new CE),!n.g.a&&(n.g.a=new gyn(n)),n.g.a}function b4e(n,e,t,i){return t&&(i=t.Rh(e,Ot(t.Dh(),n.c.uk()),null,i)),i}function w4e(n,e,t,i){return t&&(i=t.Th(e,Ot(t.Dh(),n.c.uk()),null,i)),i}function e$(n,e,t,i){var r;return r=K(ye,Ke,28,e+1,15,1),vPe(r,n,e,t,i),r}function K(n,e,t,i,r,c){var s;return s=_Rn(r,i),r!=10&&S(T(n,c),e,t,r,s),s}function g4e(n,e,t){var i,r;for(r=new Y4(e,n),i=0;it||e=0?n.Lh(t,!0,!0):H0(n,e,!0)}function L4e(n,e,t){var i;return i=vFn(n,e,t),n.b=new ET(i.c.length),den(n,i)}function N4e(n){if(n.b<=0)throw M(new nc);return--n.b,n.a-=n.c.c,Y(n.a)}function $4e(n){var e;if(!n.a)throw M(new PIn);return e=n.a,n.a=At(n.a),e}function x4e(n){for(;!n.a;)if(!eSn(n.c,new C9n(n)))return!1;return!0}function Kp(n){var e;return Se(n),O(n,204)?(e=u(n,204),e):new _8n(n)}function F4e(n){YM(),u(n.of((qe(),Ww)),181).Fc((zu(),tE)),n.qf(sU,null)}function YM(){YM=F,wue=new Emn,pue=new Cmn,gue=M6e((qe(),sU),wue,Ma,pue)}function ZM(){ZM=F,Kln=new sX("LEAF_NUMBER",0),vq=new sX("NODE_SIZE",1)}function u$(n){n.a=K(ye,Ke,28,n.b+1,15,1),n.c=K(ye,Ke,28,n.b,15,1),n.d=0}function B4e(n,e){n.a.Ne(e.d,n.b)>0&&(nn(n.c,new GV(e.c,e.d,n.d)),n.b=e.d)}function nQ(n,e){if(n.g==null||e>=n.i)throw M(new aL(e,n.i));return n.g[e]}function kNn(n,e,t){if(rm(n,t),t!=null&&!n.fk(t))throw M(new uD);return t}function o$(n,e){return gk(e)!=10&&S(wo(e),e.Sm,e.__elementTypeId$,gk(e),n),n}function F4(n,e,t,i){var r;i=(j0(),i||Pun),r=n.slice(e,t),Tnn(r,n,e,t,-e,i)}function zo(n,e,t,i,r){return e<0?H0(n,t,i):u(t,69).wk().yk(n,n.hi(),e,i,r)}function R4e(n,e){return bt($(R(v(n,(W(),fb)))),$(R(v(e,fb))))}function yNn(){yNn=F,IQn=Ce((B4(),S(T(lP,1),G,304,0,[e_,t_,i_,r_])))}function B4(){B4=F,e_=new uC("All",0),t_=new lTn,i_=new kTn,r_=new hTn}function Uu(){Uu=F,Mh=new FD(s3,0),ga=new FD(qm,1),Gs=new FD(f3,2)}function jNn(){jNn=F,KA(),s0n=St,mse=li,f0n=new V9(St),vse=new V9(li)}function ENn(){ENn=F,jYn=Ce((N0(),S(T(yYn,1),G,417,0,[rj,ij,a_,d_])))}function CNn(){CNn=F,AYn=Ce((A5(),S(T(TYn,1),G,406,0,[fj,wP,gP,hj])))}function MNn(){MNn=F,CYn=Ce((Vp(),S(T(EYn,1),G,332,0,[uj,cj,oj,sj])))}function TNn(){TNn=F,DZn=Ce((dd(),S(T(Lon,1),G,389,0,[Ow,Don,P_,I_])))}function ANn(){ANn=F,TZn=Ce((nm(),S(T(MZn,1),G,416,0,[rb,Iw,Pw,a2])))}function SNn(){SNn=F,tne=Ce(($f(),S(T(ene,1),G,421,0,[j3,lv,av,B_])))}function PNn(){PNn=F,GZn=Ce((OT(),S(T(UZn,1),G,371,0,[F_,HP,qP,wj])))}function INn(){INn=F,nie=Ce((cw(),S(T(RH,1),G,203,0,[TI,BH,S2,A2])))}function ONn(){ONn=F,iie=Ce((lh(),S(T(Hhn,1),G,284,0,[k1,_hn,HH,qH])))}function hk(){hk=F,Fsn=new Yz(kh,0),QP=new Yz("IMPROVE_STRAIGHTNESS",1)}function DNn(n,e){var t,i;return i=e/n.c.Rd().gc()|0,t=e%n.c.Rd().gc(),Rp(n,i,t)}function LNn(n){var e;if(n.nl())for(e=n.i-1;e>=0;--e)L(n,e);return jJ(n)}function eQ(n){var e,t;if(!n.b)return null;for(t=n.b;e=t.a[0];)t=e;return t}function NNn(n){var e,t;if(!n.b)return null;for(t=n.b;e=t.a[1];)t=e;return t}function K4e(n){return O(n,180)?""+u(n,180).a:n==null?null:Jr(n)}function _4e(n){return O(n,180)?""+u(n,180).a:n==null?null:Jr(n)}function $Nn(n,e){if(e.a)throw M(new ec(nXn));fi(n.a,e),e.a=n,!n.j&&(n.j=e)}function tQ(n,e){IC.call(this,e.zd(),e.yd()&-16449),Jn(n),this.a=n,this.c=e}function H4e(n,e){return new _L(e,a0(Ki(e.e),e.f.a+n,e.f.b+n),(_n(),!1))}function q4e(n,e){return k4(),nn(n,new bi(e,Y(e.e.c.length+e.g.c.length)))}function U4e(n,e){return k4(),nn(n,new bi(e,Y(e.e.c.length+e.g.c.length)))}function xNn(){xNn=F,lce=Ce((sA(),S(T(c1n,1),G,354,0,[Eq,i1n,r1n,t1n])))}function FNn(){FNn=F,$re=Ce((w5(),S(T(xln,1),G,353,0,[aq,BI,lq,hq])))}function BNn(){BNn=F,hre=Ce((Qp(),S(T(rln,1),G,405,0,[LI,c9,u9,o9])))}function RNn(){RNn=F,Vue=Ce((El(),S(T(aU,1),G,223,0,[lU,Yj,Kv,F3])))}function KNn(){KNn=F,Zue=Ce((To(),S(T(Yue,1),G,291,0,[nE,nl,Ta,Zj])))}function _Nn(){_Nn=F,foe=Ce((go(),S(T(I9,1),G,386,0,[rE,Gd,iE,Qw])))}function HNn(){HNn=F,doe=Ce((qT(),S(T(Cdn,1),G,320,0,[wU,ydn,Edn,jdn])))}function qNn(){qNn=F,goe=Ce((LT(),S(T(woe,1),G,415,0,[gU,Tdn,Mdn,Adn])))}function nT(){nT=F,xq=new oL(mVn,0),I1n=new oL(Crn,1),P1n=new oL(kh,2)}function Wb(n,e,t,i,r){return Jn(n),Jn(e),Jn(t),Jn(i),Jn(r),new AW(n,e,i)}function UNn(n,e){var t;return t=u(Bp(n.e,e),400),t?(tW(t),t.e):null}function du(n,e){var t;return t=qr(n,e,0),t==-1?!1:(Yl(n,t),!0)}function GNn(n,e,t){var i;return z1(n),i=new LO,i.a=e,n.a.Nb(new TCn(i,t)),i.a}function G4e(n){var e;return z1(n),e=K(Pi,Tr,28,0,15,1),hg(n.a,new y9n(e)),e}function iQ(n){var e;if(!E$(n))throw M(new nc);return n.e=1,e=n.d,n.d=null,e}function n1(n){var e;return Vr(n)&&(e=0-n,!isNaN(e))?e:Q1(tm(n))}function qr(n,e,t){for(;t=0?tA(n,t,!0,!0):H0(n,e,!0)}function cQ(n){var e;return e=cd(Un(n,32)),e==null&&(iu(n),e=cd(Un(n,32))),e}function uQ(n){var e;return n.Oh()||(e=se(n.Dh())-n.ji(),n.$h().Mk(e)),n.zh()}function QNn(n,e){con=new kE,MYn=e,L8=n,u(L8.b,68),XJ(L8,con,null),aGn(L8)}function i5(){i5=F,E_=new RD("XY",0),j_=new RD("X",1),C_=new RD("Y",2)}function bu(){bu=F,vf=new BD("TOP",0),pa=new BD(qm,1),zs=new BD(Ftn,2)}function vl(){vl=F,vj=new GD(kh,0),v2=new GD("TOP",1),E3=new GD(Ftn,2)}function wk(){wk=F,UH=new nX("INPUT_ORDER",0),GH=new nX("PORT_DEGREE",1)}function R4(){R4=F,hun=Yc(ro,ro,524287),bQn=Yc(0,0,Ty),lun=QN(1),QN(2),aun=QN(0)}function a$(n){var e;return n.d!=n.r&&(e=ws(n),n.e=!!e&&e.lk()==bJn,n.d=e),n.e}function d$(n,e,t){var i;return i=n.g[e],O6(n,e,n.Zi(e,t)),n.Ri(e,t,i),n.Ni(),i}function rT(n,e){var t;return t=n.dd(e),t>=0?(n.gd(t),!0):!1}function b$(n,e){var t;for(Se(n),Se(e),t=!1;e.Ob();)t=t|n.Fc(e.Pb());return t}function Lf(n,e){var t;return t=u(ee(n.e,e),400),t?(DTn(n,t),t.e):null}function YNn(n){var e,t;return e=n/60|0,t=n%60,t==0?""+e:""+e+":"+(""+t)}function Jb(n,e){var t=n.a[e],i=(K$(),WK)[typeof t];return i?i(t):wY(typeof t)}function rc(n,e){var t,i;return ea(n),i=new _J(e,n.a),t=new rSn(i),new Tn(n,t)}function w$(n){var e;return e=n.b.c.length==0?null:sn(n.b,0),e!=null&&M$(n,0),e}function W4e(n,e){var t,i,r;r=e.c.i,t=u(ee(n.f,r),60),i=t.d.c-t.e.c,BQ(e.a,i,0)}function oQ(n,e){var t;for(++n.d,++n.c[e],t=e+1;t=0;)++e[0]}function J4e(n,e){eu(n,e==null||GC((Jn(e),e))||isNaN((Jn(e),e))?0:(Jn(e),e))}function Q4e(n,e){tu(n,e==null||GC((Jn(e),e))||isNaN((Jn(e),e))?0:(Jn(e),e))}function Y4e(n,e){I0(n,e==null||GC((Jn(e),e))||isNaN((Jn(e),e))?0:(Jn(e),e))}function Z4e(n,e){P0(n,e==null||GC((Jn(e),e))||isNaN((Jn(e),e))?0:(Jn(e),e))}function nme(n,e,t){return vp(new V(t.e.a+t.f.a/2,t.e.b+t.f.b/2),n)==(Jn(e),e)}function eme(n,e){return O(e,102)&&u(e,19).Bb&hr?new dL(e,n):new Y4(e,n)}function tme(n,e){return O(e,102)&&u(e,19).Bb&hr?new dL(e,n):new Y4(e,n)}function gk(n){return n.__elementTypeCategory$==null?10:n.__elementTypeCategory$}function e$n(n,e){return e==(xL(),xL(),AQn)?n.toLocaleLowerCase():n.toLowerCase()}function t$n(n){if(!n.e)throw M(new nc);return n.c=n.a=n.e,n.e=n.e.e,--n.d,n.a.f}function sQ(n){if(!n.c)throw M(new nc);return n.e=n.a=n.c,n.c=n.c.c,++n.d,n.a.f}function i$n(n){var e;for(++n.a,e=n.c.a.length;n.an.a[i]&&(i=t);return i}function r$n(n){var e;return e=u(v(n,(W(),ob)),313),e?e.a==n:!1}function c$n(n){var e;return e=u(v(n,(W(),ob)),313),e?e.i==n:!1}function u$n(){u$n=F,yZn=Ce((Vi(),S(T(Ion,1),G,367,0,[Xs,Jh,Oc,Kc,zr])))}function o$n(){o$n=F,rne=Ce((ow(),S(T(ine,1),G,375,0,[gj,zP,XP,GP,UP])))}function s$n(){s$n=F,wne=Ce((o1(),S(T(Lsn,1),G,348,0,[J_,Dsn,Q_,pv,gv])))}function f$n(){f$n=F,eie=Ce((T5(),S(T($hn,1),G,323,0,[Nhn,KH,_H,Y8,Z8])))}function h$n(){h$n=F,Sne=Ce((Yo(),S(T(hfn,1),G,171,0,[Ej,U8,ka,G8,xw])))}function l$n(){l$n=F,qre=Ce((wA(),S(T(Hre,1),G,368,0,[pq,bq,mq,wq,gq])))}function a$n(){a$n=F,qce=Ce((R5(),S(T(Hce,1),G,373,0,[L2,D3,g9,w9,_j])))}function d$n(){d$n=F,Wce=Ce((Yk(),S(T(K1n,1),G,324,0,[F1n,_q,R1n,Hq,B1n])))}function b$n(){b$n=F,zue=Ce((ci(),S(T(E9,1),G,88,0,[Wf,Xr,Br,Vf,us])))}function w$n(){w$n=F,mue=Ce((gf(),S(T(Zh,1),G,170,0,[xn,pi,Ph,Kd,E1])))}function g$n(){g$n=F,eoe=Ce((Fg(),S(T(A9,1),G,256,0,[Aa,eE,adn,T9,ddn])))}function p$n(){p$n=F,roe=Ce((tn(),S(T(lr,1),Mc,64,0,[sc,Xn,Zn,ae,Wn])))}function cT(){cT=F,Run=new Uz("BY_SIZE",0),s_=new Uz("BY_SIZE_AND_SHAPE",1)}function uT(){uT=F,v_=new Xz("EADES",0),vP=new Xz("FRUCHTERMAN_REINGOLD",1)}function pk(){pk=F,WP=new Qz("READING_DIRECTION",0),Nsn=new Qz("ROTATION",1)}function r5(){r5=F,PZn=new rwn,IZn=new own,AZn=new swn,SZn=new uwn,OZn=new fwn}function m$n(n){this.b=new Z,this.a=new Z,this.c=new Z,this.d=new Z,this.e=n}function v$n(n){this.g=n,this.f=new Z,this.a=y.Math.min(this.g.c.c,this.g.d.c)}function k$n(n,e,t){qC.call(this),lQ(this),this.a=n,this.c=t,this.b=e.d,this.f=e.e}function sme(n,e,t){var i,r;for(r=new C(t);r.a=0&&e0?e-1:e,eEn($he(U$n(YV(new up,t),n.n),n.j),n.k)}function Nr(n){var e,t;t=(e=new hD,e),ve((!n.q&&(n.q=new q(As,n,11,10)),n.q),t)}function fQ(n){return(n.i&2?"interface ":n.i&1?"":"class ")+(ll(n),n.o)}function oT(n){return Ec(n,et)>0?et:Ec(n,Wi)<0?Wi:Ae(n)}function Qb(n){return n<3?(Co(n,$zn),n+1):n=-.01&&n.a<=Kf&&(n.a=0),n.b>=-.01&&n.b<=Kf&&(n.b=0),n}function Og(n){Xg();var e,t;for(t=Arn,e=0;et&&(t=n[e]);return t}function C$n(n,e){var t;if(t=oy(n.Dh(),e),!t)throw M(new Gn(da+e+sK));return t}function Yb(n,e){var t;for(t=n;At(t);)if(t=At(t),t==e)return!0;return!1}function vme(n,e){var t,i,r;for(i=e.a.ld(),t=u(e.a.md(),16).gc(),r=0;rn||n>e)throw M(new pz("fromIndex: 0, toIndex: "+n+Mtn+e))}function S0(n){if(n<0)throw M(new Gn("Illegal Capacity: "+n));this.g=this.aj(n)}function hQ(n,e){return Mf(),Rs(sa),y.Math.abs(n-e)<=sa||n==e||isNaN(n)&&isNaN(e)}function m$(n,e){var t,i,r,c;for(i=n.d,r=0,c=i.length;r0&&(n.a/=e,n.b/=e),n}function jo(n){var e;return n.w?n.w:(e=lpe(n),e&&!e.Vh()&&(n.w=e),e)}function K4(n,e){var t,i;i=n.a,t=w5e(n,e,null),i!=e&&!n.e&&(t=Nm(n,e,t)),t&&t.oj()}function P$n(n,e,t){var i,r;i=e;do r=$(n.p[i.p])+t,n.p[i.p]=r,i=n.a[i.p];while(i!=e)}function I$n(n,e,t){var i=function(){return n.apply(i,arguments)};return e.apply(i,t),i}function Tme(n){var e;return n==null?null:(e=u(n,195),Bye(e,e.length))}function L(n,e){if(n.g==null||e>=n.i)throw M(new aL(e,n.i));return n.Wi(e,n.g[e])}function Ame(n,e){Dn();var t,i;for(i=new Z,t=0;t=14&&e<=16))),n}function Ee(n,e){var t;return Jn(e),t=n[":"+e],B7(!!t,"Enum constant undefined: "+e),t}function we(n,e,t,i,r,c){var s;return s=bN(n,e),G$n(t,s),s.i=r?8:0,s.f=i,s.e=r,s.g=c,s}function dQ(n,e,t,i,r){this.d=e,this.k=i,this.f=r,this.o=-1,this.p=1,this.c=n,this.a=t}function bQ(n,e,t,i,r){this.d=e,this.k=i,this.f=r,this.o=-1,this.p=2,this.c=n,this.a=t}function wQ(n,e,t,i,r){this.d=e,this.k=i,this.f=r,this.o=-1,this.p=6,this.c=n,this.a=t}function gQ(n,e,t,i,r){this.d=e,this.k=i,this.f=r,this.o=-1,this.p=7,this.c=n,this.a=t}function pQ(n,e,t,i,r){this.d=e,this.j=i,this.e=r,this.o=-1,this.p=4,this.c=n,this.a=t}function z$n(n,e){var t,i,r,c;for(i=e,r=0,c=i.length;r=0))throw M(new Gn("tolerance ("+n+") must be >= 0"));return n}function V$n(n,e){var t;return O(e,44)?n.c.Mc(e):(t=wx(n,e),VT(n,e),t)}function Mr(n,e,t){return ad(n,e),zc(n,t),e1(n,0),Zb(n,1),u1(n,!0),c1(n,!0),n}function vk(n,e){var t;if(t=n.gc(),e<0||e>t)throw M(new Kb(e,t));return new SV(n,e)}function wT(n,e){n.b=y.Math.max(n.b,e.d),n.e+=e.r+(n.a.c.length==0?0:n.c),nn(n.a,e)}function W$n(n){Fb(n.c>=0),_8e(n.d,n.c)<0&&(n.a=n.a-1&n.d.a.length-1,n.b=n.d.c),n.c=-1}function gT(n){var e,t;for(t=n.c.Cc().Kc();t.Ob();)e=u(t.Pb(),16),e.$b();n.c.$b(),n.d=0}function Fme(n){var e,t,i,r;for(t=n.a,i=0,r=t.length;i=0}function CQ(n,e){n.r>0&&n.c0&&n.g!=0&&CQ(n.i,e/n.r*n.i.d))}function MQ(n,e){var t;t=n.c,n.c=e,n.Db&4&&!(n.Db&1)&&it(n,new Ci(n,1,1,t,n.c))}function y$(n,e){var t;t=n.c,n.c=e,n.Db&4&&!(n.Db&1)&&it(n,new Ci(n,1,4,t,n.c))}function X4(n,e){var t;t=n.k,n.k=e,n.Db&4&&!(n.Db&1)&&it(n,new Ci(n,1,2,t,n.k))}function j$(n,e){var t;t=n.D,n.D=e,n.Db&4&&!(n.Db&1)&&it(n,new Ci(n,1,2,t,n.D))}function mT(n,e){var t;t=n.f,n.f=e,n.Db&4&&!(n.Db&1)&&it(n,new Ci(n,1,8,t,n.f))}function vT(n,e){var t;t=n.i,n.i=e,n.Db&4&&!(n.Db&1)&&it(n,new Ci(n,1,7,t,n.i))}function TQ(n,e){var t;t=n.a,n.a=e,n.Db&4&&!(n.Db&1)&&it(n,new Ci(n,1,8,t,n.a))}function AQ(n,e){var t;t=n.b,n.b=e,n.Db&4&&!(n.Db&1)&&it(n,new Ci(n,1,0,t,n.b))}function SQ(n,e){var t;t=n.b,n.b=e,n.Db&4&&!(n.Db&1)&&it(n,new Ci(n,1,0,t,n.b))}function PQ(n,e){var t;t=n.c,n.c=e,n.Db&4&&!(n.Db&1)&&it(n,new Ci(n,1,1,t,n.c))}function IQ(n,e){var t;t=n.d,n.d=e,n.Db&4&&!(n.Db&1)&&it(n,new Ci(n,1,1,t,n.d))}function Ume(n,e,t){var i;n.b=e,n.a=t,i=(n.a&512)==512?new gjn:new rG,n.c=rAe(i,n.b,n.a)}function oxn(n,e){return Sl(n.e,e)?(dr(),a$(e)?new eM(e,n):new j7(e,n)):new $Mn(e,n)}function Gme(n){var e,t;return 0>n?new Dz:(e=n+1,t=new vLn(e,n),new oV(null,t))}function zme(n,e){Dn();var t;return t=new ap(1),Ai(n)?Dr(t,n,e):Vc(t.f,n,e),new eD(t)}function Xme(n,e){var t,i;return t=n.c,i=e.e[n.p],i>0?u(sn(t.a,i-1),10):null}function Vme(n,e){var t,i;return t=n.o+n.p,i=e.o+e.p,te?(e<<=1,e>0?e:Y5):e}function E$(n){switch(_X(n.e!=3),n.e){case 2:return!1;case 0:return!0}return i4e(n)}function fxn(n,e){var t;return O(e,8)?(t=u(e,8),n.a==t.a&&n.b==t.b):!1}function Jme(n,e){var t;t=new kE,u(e.b,68),u(e.b,68),u(e.b,68),nu(e.a,new BV(n,t,e))}function hxn(n,e){var t,i;for(i=e.vc().Kc();i.Ob();)t=u(i.Pb(),44),Vk(n,t.ld(),t.md())}function OQ(n,e){var t;t=n.d,n.d=e,n.Db&4&&!(n.Db&1)&&it(n,new Ci(n,1,11,t,n.d))}function kT(n,e){var t;t=n.j,n.j=e,n.Db&4&&!(n.Db&1)&&it(n,new Ci(n,1,13,t,n.j))}function DQ(n,e){var t;t=n.b,n.b=e,n.Db&4&&!(n.Db&1)&&it(n,new Ci(n,1,21,t,n.b))}function Qme(n,e){(UM(),qf?null:e.c).length==0&&TAn(e,new BU),Dr(n.a,qf?null:e.c,e)}function Yme(n,e){e.Ug("Hierarchical port constraint processing",1),g9e(n),xLe(n),e.Vg()}function D0(){D0=F,ub=new KD("START",0),ma=new KD("MIDDLE",1),cb=new KD("END",2)}function yT(){yT=F,RI=new oX("P1_NODE_PLACEMENT",0),D2=new oX("P2_EDGE_ROUTING",1)}function J1(){J1=F,y3=new lt(Jtn),jP=new lt(MXn),$8=new lt(TXn),lj=new lt(AXn)}function L0(n){var e;return FL(n.f.g,n.d),oe(n.b),n.c=n.a,e=u(n.a.Pb(),44),n.b=GQ(n),e}function LQ(n){var e;return n.b==null?(Gl(),Gl(),dE):(e=n.ul()?n.tl():n.sl(),e)}function lxn(n,e){var t;return t=e==null?-1:qr(n.b,e,0),t<0?!1:(M$(n,t),!0)}function Ks(n,e){var t;return Jn(e),t=e.g,n.b[t]?!1:($t(n.b,t,e),++n.c,!0)}function jT(n,e){var t,i;return t=1-e,i=n.a[t],n.a[t]=i.a[e],i.a[e]=n,n.b=!0,i.b=!1,i}function Zme(n,e){var t,i;for(i=e.Kc();i.Ob();)t=u(i.Pb(),272),n.b=!0,fi(n.e,t),t.b=n}function nve(n,e){var t,i;return t=u(v(n,(cn(),Hw)),8),i=u(v(e,Hw),8),bt(t.b,i.b)}function C$(n,e,t){var i,r,c;return c=e>>5,r=e&31,i=vi(U1(n.n[t][c],Ae(Fs(r,1))),3),i}function axn(n,e,t){var i,r,c;for(c=n.a.length-1,r=n.b,i=0;i0?1:0:(!n.c&&(n.c=Y7(vc(n.f))),n.c).e}function yxn(n,e){e?n.B==null&&(n.B=n.D,n.D=null):n.B!=null&&(n.D=n.B,n.B=null)}function rve(n,e){return nm(),n==rb&&e==Iw||n==Iw&&e==rb||n==a2&&e==Pw||n==Pw&&e==a2}function cve(n,e){return nm(),n==rb&&e==Pw||n==rb&&e==a2||n==Iw&&e==a2||n==Iw&&e==Pw}function jxn(n,e){return Mf(),Rs(Kf),y.Math.abs(0-e)<=Kf||e==0||isNaN(0)&&isNaN(e)?0:n/e}function Exn(n,e){return $(R(ho($k(_r(new Tn(null,new In(n.c.b,16)),new I7n(n)),e))))}function FQ(n,e){return $(R(ho($k(_r(new Tn(null,new In(n.c.b,16)),new P7n(n)),e))))}function uve(){return pr(),S(T(cH,1),G,259,0,[ZP,cs,K8,nI,yv,m2,_8,vv,kv,eI])}function ove(){return gs(),S(T(Khn,1),G,243,0,[AI,Sj,Pj,Fhn,Bhn,xhn,Rhn,SI,pb,Uw])}function sve(n,e){var t;e.Ug("General Compactor",1),t=d8e(u(z(n,(ua(),yq)),393)),t.Cg(n)}function fve(n,e){var t,i;return t=u(z(n,(ua(),_I)),17),i=u(z(e,_I),17),jc(t.a,i.a)}function BQ(n,e,t){var i,r;for(r=ge(n,0);r.b!=r.d.c;)i=u(be(r),8),i.a+=e,i.b+=t;return n}function o5(n,e,t){var i;for(i=n.b[t&n.f];i;i=i.b)if(t==i.a&&oh(e,i.g))return i;return null}function s5(n,e,t){var i;for(i=n.c[t&n.f];i;i=i.d)if(t==i.f&&oh(e,i.i))return i;return null}function hve(n,e,t){var i,r,c;for(i=0,r=0;r>>31;i!=0&&(n[t]=i)}function P$(n,e,t,i,r,c){var s;this.c=n,s=new Z,pZ(n,s,e,n.b,t,i,r,c),this.a=new xi(s,0)}function Cxn(){this.c=new XE(0),this.b=new XE(Trn),this.d=new XE(lVn),this.a=new XE(QB)}function Vo(n,e,t,i,r,c,s){je.call(this,n,e),this.d=t,this.e=i,this.c=r,this.b=c,this.a=If(s)}function Ut(n,e,t,i,r,c,s,f,h,l,a,d,g){return P_n(n,e,t,i,r,c,s,f,h,l,a,d,g),sx(n,!1),n}function lve(n){return n.b.c.i.k==(Vn(),Zt)?u(v(n.b.c.i,(W(),st)),12):n.b.c}function Mxn(n){return n.b.d.i.k==(Vn(),Zt)?u(v(n.b.d.i,(W(),st)),12):n.b.d}function ave(n){var e;return e=BM(n),o0(e.a,0)?(QE(),QE(),SQn):(QE(),new uAn(e.b))}function I$(n){var e;return e=gJ(n),o0(e.a,0)?(Ob(),Ob(),n_):(Ob(),new AL(e.b))}function O$(n){var e;return e=gJ(n),o0(e.a,0)?(Ob(),Ob(),n_):(Ob(),new AL(e.c))}function Txn(n){switch(n.g){case 2:return tn(),Wn;case 4:return tn(),Zn;default:return n}}function Axn(n){switch(n.g){case 1:return tn(),ae;case 3:return tn(),Xn;default:return n}}function Sxn(n){switch(n.g){case 0:return new hmn;case 1:return new lmn;default:return null}}function Hp(){Hp=F,x_=new Dt("edgelabelcenterednessanalysis.includelabel",(_n(),wa))}function RQ(){RQ=F,Mie=ah(WMn(Re(Re(new ii,(Vi(),Oc),(tr(),NP)),Kc,PP),zr),LP)}function Pxn(){Pxn=F,Pie=ah(WMn(Re(Re(new ii,(Vi(),Oc),(tr(),NP)),Kc,PP),zr),LP)}function D$(){D$=F,x9=new ljn,CU=S(T(ku,1),s2,179,0,[]),Joe=S(T(As,1),Gcn,62,0,[])}function V4(){V4=F,dj=new Vz("TO_INTERNAL_LTR",0),L_=new Vz("TO_INPUT_DIRECTION",1)}function Ou(){Ou=F,Ron=new wwn,Fon=new gwn,Bon=new pwn,xon=new mwn,Kon=new vwn,_on=new kwn}function dve(n,e){e.Ug(HXn,1),HY(Qhe(new IE((o6(),new kN(n,!1,!1,new qU))))),e.Vg()}function bve(n,e,t){t.Ug("DFS Treeifying phase",1),O8e(n,e),PTe(n,e),n.a=null,n.b=null,t.Vg()}function kk(n,e){return _n(),Ai(n)?RJ(n,Oe(e)):$b(n)?tN(n,R(e)):Nb(n)?rwe(n,un(e)):n.Fd(e)}function f5(n,e){var t,i;for(Jn(e),i=e.vc().Kc();i.Ob();)t=u(i.Pb(),44),n.zc(t.ld(),t.md())}function wve(n,e,t){var i;for(i=t.Kc();i.Ob();)if(!_M(n,e,i.Pb()))return!1;return!0}function gve(n,e,t,i,r){var c;return t&&(c=Ot(e.Dh(),n.c),r=t.Rh(e,-1-(c==-1?i:c),null,r)),r}function pve(n,e,t,i,r){var c;return t&&(c=Ot(e.Dh(),n.c),r=t.Th(e,-1-(c==-1?i:c),null,r)),r}function Ixn(n){var e;if(n.b==-2){if(n.e==0)e=-1;else for(e=0;n.a[e]==0;e++);n.b=e}return n.b}function mve(n){if(Jn(n),n.length==0)throw M(new eh("Zero length BigInteger"));ESe(this,n)}function KQ(n){this.i=n.gc(),this.i>0&&(this.g=this.aj(this.i+(this.i/8|0)+1),n.Qc(this.g))}function Oxn(n,e,t){this.g=n,this.d=e,this.e=t,this.a=new Z,IEe(this),Dn(),Yt(this.a,null)}function _Q(n,e){e.q=n,n.d=y.Math.max(n.d,e.r),n.b+=e.d+(n.a.c.length==0?0:n.c),nn(n.a,e)}function W4(n,e){var t,i,r,c;return r=n.c,t=n.c+n.b,c=n.d,i=n.d+n.a,e.a>r&&e.ac&&e.br?t=r:zn(e,t+1),n.a=qo(n.a,0,e)+(""+i)+$W(n.a,t)}function Kxn(n,e){n.a=nr(n.a,1),n.c=y.Math.min(n.c,e),n.b=y.Math.max(n.b,e),n.d=nr(n.d,e)}function Mve(n,e){return e1||n.Ob())return++n.a,n.g=0,e=n.i,n.Ob(),e;throw M(new nc)}function Uxn(n){switch(n.a.g){case 1:return new WCn;case 3:return new WRn;default:return new s8n}}function qQ(n,e){switch(e){case 1:return!!n.n&&n.n.i!=0;case 2:return n.k!=null}return wJ(n,e)}function vc(n){return Ay>22),r=n.h+e.h+(i>>22),Yc(t&ro,i&ro,r&Il)}function Yxn(n,e){var t,i,r;return t=n.l-e.l,i=n.m-e.m+(t>>22),r=n.h-e.h+(i>>22),Yc(t&ro,i&ro,r&Il)}function zve(n){var e,t;for(RDe(n),t=new C(n.d);t.ai)throw M(new Kb(e,i));return n.Si()&&(t=gOn(n,t)),n.Ei(e,t)}function em(n,e,t,i,r){var c,s;for(s=t;s<=r;s++)for(c=e;c<=i;c++)Rg(n,c,s)||xA(n,c,s,!0,!1)}function u6e(n){Xg();var e,t,i;for(t=K(Ei,J,8,2,0,1),i=0,e=0;e<2;e++)i+=.5,t[e]=Z9e(i,n);return t}function tm(n){var e,t,i;return e=~n.l+1&ro,t=~n.m+(e==0?1:0)&ro,i=~n.h+(e==0&&t==0?1:0)&Il,Yc(e,t,i)}function QQ(n){var e;if(n<0)return Wi;if(n==0)return 0;for(e=Y5;!(e&n);e>>=1);return e}function R$(n,e,t){return n>=128?!1:n<64?M6(vi(Fs(1,n),t),0):M6(vi(Fs(1,n-64),e),0)}function Pk(n,e,t){return t==null?(!n.q&&(n.q=new de),Bp(n.q,e)):(!n.q&&(n.q=new de),Xe(n.q,e,t)),n}function U(n,e,t){return t==null?(!n.q&&(n.q=new de),Bp(n.q,e)):(!n.q&&(n.q=new de),Xe(n.q,e,t)),n}function fFn(n){var e,t;return t=new zM,Ur(t,n),U(t,(J1(),y3),n),e=new de,$Pe(n,t,e),fDe(n,t,e),t}function hFn(n){var e,t;return e=n.t-n.k[n.o.p]*n.d+n.j[n.o.p]>n.f,t=n.u+n.e[n.o.p]*n.d>n.f*n.s*n.d,e||t}function lFn(n,e){var t,i,r,c;for(t=!1,i=n.a[e].length,c=0;c=0,"Negative initial capacity"),B7(e>=0,"Non-positive load factor"),Hu(this)}function s6e(n,e,t,i,r){var c,s;if(s=n.length,c=t.length,e<0||i<0||r<0||e+r>s||i+r>c)throw M(new qG)}function eY(n,e){Dn();var t,i,r,c,s;for(s=!1,i=e,r=0,c=i.length;r1||e>=0&&n.b<3)}function H$(n){var e,t,i;e=~n.l+1&ro,t=~n.m+(e==0?1:0)&ro,i=~n.h+(e==0&&t==0?1:0)&Il,n.l=e,n.m=t,n.h=i}function rY(n){Dn();var e,t,i;for(i=1,t=n.Kc();t.Ob();)e=t.Pb(),i=31*i+(e!=null?mt(e):0),i=i|0;return i}function d6e(n,e,t,i,r){var c;return c=Xnn(n,e),t&&H$(c),r&&(n=u7e(n,e),i?ba=tm(n):ba=Yc(n.l,n.m,n.h)),c}function yFn(n,e,t){n.g=uF(n,e,(tn(),Zn),n.b),n.d=uF(n,t,Zn,n.b),!(n.g.c==0||n.d.c==0)&&YKn(n)}function jFn(n,e,t){n.g=uF(n,e,(tn(),Wn),n.j),n.d=uF(n,t,Wn,n.j),!(n.g.c==0||n.d.c==0)&&YKn(n)}function cY(n,e){switch(e){case 7:return!!n.e&&n.e.i!=0;case 8:return!!n.d&&n.d.i!=0}return qY(n,e)}function b6e(n,e){switch(e.g){case 0:O(n.b,641)||(n.b=new Rxn);break;case 1:O(n.b,642)||(n.b=new BSn)}}function EFn(n){switch(n.g){case 0:return new gmn;default:throw M(new Gn(xS+(n.f!=null?n.f:""+n.g)))}}function CFn(n){switch(n.g){case 0:return new wmn;default:throw M(new Gn(xS+(n.f!=null?n.f:""+n.g)))}}function w6e(n,e,t){return!s4(ct(new Tn(null,new In(n.c,16)),new Z3(new hMn(e,t)))).Bd((Xa(),v3))}function MFn(n,e){return vp(pm(u(v(e,(lc(),vb)),88)),new V(n.c.e.a-n.b.e.a,n.c.e.b-n.b.e.b))<=0}function g6e(n,e){for(;n.g==null&&!n.c?cJ(n):n.g==null||n.i!=0&&u(n.g[n.i-1],51).Ob();)kle(e,CA(n))}function ld(n){var e,t;for(t=new C(n.a.b);t.ai?1:0}function v6e(n){return nn(n.c,(qp(),bue)),hQ(n.a,$(R(rn((bx(),EI)))))?new tvn:new $kn(n)}function k6e(n){for(;!n.d||!n.d.Ob();)if(n.b&&!i6(n.b))n.d=u(Sp(n.b),51);else return null;return n.d}function oY(n){switch(n.g){case 1:return lVn;default:case 2:return 0;case 3:return QB;case 4:return Trn}}function y6e(){nt();var n;return IU||(n=_1e(oa("M",!0)),n=uM(oa("M",!1),n),IU=n,IU)}function LT(){LT=F,gU=new CC("ELK",0),Tdn=new CC("JSON",1),Mdn=new CC("DOT",2),Adn=new CC("SVG",3)}function d5(){d5=F,VH=new WD("STACKED",0),XH=new WD("REVERSE_STACKED",1),Ij=new WD("SEQUENCED",2)}function b5(){b5=F,wln=new eL(kh,0),nq=new eL("MIDDLE_TO_MIDDLE",1),Lj=new eL("AVOID_OVERLAP",2)}function cm(){cm=F,Esn=new Ygn,Csn=new Zgn,JZn=new Jgn,WZn=new n2n,VZn=new Qgn,jsn=(Jn(VZn),new O0n)}function NT(){NT=F,hdn=new f0(15),Jue=new Ni((qe(),C1),hdn),C9=N3,udn=Pue,odn=Hd,fdn=K2,sdn=Vw}function Lg(n,e){var t,i,r,c,s;for(i=e,r=0,c=i.length;r=n.b.c.length||(fY(n,2*e+1),t=2*e+2,t0&&(e.Cd(t),t.i&&E5e(t))}function hY(n,e,t){var i;for(i=t-1;i>=0&&n[i]===e[i];i--);return i<0?0:ND(vi(n[i],mr),vi(e[i],mr))?-1:1}function SFn(n,e,t){var i,r;this.g=n,this.c=e,this.a=this,this.d=this,r=sxn(t),i=K(sQn,Cy,227,r,0,1),this.b=i}function X$(n,e,t,i,r){var c,s;for(s=t;s<=r;s++)for(c=e;c<=i;c++)if(Rg(n,c,s))return!0;return!1}function A6e(n,e){var t,i;for(i=n.Zb().Cc().Kc();i.Ob();)if(t=u(i.Pb(),16),t.Hc(e))return!0;return!1}function PFn(n,e,t){var i,r,c,s;for(Jn(t),s=!1,c=n.fd(e),r=t.Kc();r.Ob();)i=r.Pb(),c.Rb(i),s=!0;return s}function V$(n,e){var t,i;return i=u(Un(n.a,4),129),t=K(jU,MK,424,e,0,1),i!=null&&Ic(i,0,t,0,i.length),t}function IFn(n,e){var t;return t=new jF((n.f&256)!=0,n.i,n.a,n.d,(n.f&16)!=0,n.j,n.g,e),n.e!=null||(t.c=n),t}function S6e(n,e){var t;return n===e?!0:O(e,85)?(t=u(e,85),dnn(Wa(n),t.vc())):!1}function OFn(n,e,t){var i,r;for(r=t.Kc();r.Ob();)if(i=u(r.Pb(),44),n.Be(e,i.md()))return!0;return!1}function DFn(n,e,t){return n.d[e.p][t.p]||(O9e(n,e,t),n.d[e.p][t.p]=!0,n.d[t.p][e.p]=!0),n.a[e.p][t.p]}function P6e(n,e){var t;return!n||n==e||!kt(e,(W(),sb))?!1:(t=u(v(e,(W(),sb)),10),t!=n)}function W$(n){switch(n.i){case 2:return!0;case 1:return!1;case-1:++n.c;default:return n.$l()}}function LFn(n){switch(n.i){case-2:return!0;case-1:return!1;case 1:--n.c;default:return n._l()}}function NFn(n){yOn.call(this,"The given string does not match the expected format for individual spacings.",n)}function I6e(n,e){var t;e.Ug("Min Size Preprocessing",1),t=jnn(n),ht(n,(_h(),a9),t.a),ht(n,UI,t.b),e.Vg()}function O6e(n){var e,t,i;for(e=0,i=K(Ei,J,8,n.b,0,1),t=ge(n,0);t.b!=t.d.c;)i[e++]=u(be(t),8);return i}function J$(n,e,t){var i,r,c;for(i=new Ct,c=ge(t,0);c.b!=c.d.c;)r=u(be(c),8),xe(i,new rr(r));PFn(n,e,i)}function D6e(n,e){var t;return t=nr(n,e),ND(RN(n,e),0)|AC(RN(n,t),0)?t:nr(Ey,RN(U1(t,63),1))}function L6e(n,e){var t,i;return t=u(n.d.Bc(e),16),t?(i=n.e.hc(),i.Gc(t),n.e.d-=t.gc(),t.$b(),i):null}function $Fn(n){var e;if(e=n.a.c.length,e>0)return E4(e-1,n.a.c.length),Yl(n.a,e-1);throw M(new $yn)}function xFn(n,e,t){if(n>e)throw M(new Gn(ZA+n+Qzn+e));if(n<0||e>t)throw M(new pz(ZA+n+Stn+e+Mtn+t))}function um(n,e){n.D==null&&n.B!=null&&(n.D=n.B,n.B=null),j$(n,e==null?null:(Jn(e),e)),n.C&&n.hl(null)}function N6e(n,e){var t;t=rn((bx(),EI))!=null&&e.Sg()!=null?$(R(e.Sg()))/$(R(rn(EI))):1,Xe(n.b,e,t)}function lY(n,e){var t,i;if(i=n.c[e],i!=0)for(n.c[e]=0,n.d-=i,t=e+1;tPS?n-t>PS:t-n>PS}function XFn(n,e){var t;for(t=0;tr&&(EKn(e.q,r),i=t!=e.q.d)),i}function VFn(n,e){var t,i,r,c,s,f,h,l;return h=e.i,l=e.j,i=n.f,r=i.i,c=i.j,s=h-r,f=l-c,t=y.Math.sqrt(s*s+f*f),t}function pY(n,e){var t,i;return i=WT(n),i||(t=(UF(),$Hn(e)),i=new Cyn(t),ve(i.El(),n)),i}function Lk(n,e){var t,i;return t=u(n.c.Bc(e),16),t?(i=n.hc(),i.Gc(t),n.d-=t.gc(),t.$b(),n.mc(i)):n.jc()}function G6e(n,e){var t,i;for(i=to(n.d,1)!=0,t=!0;t;)t=!1,t=e.c.mg(e.e,i),t=t|sy(n,e,i,!1),i=!i;$Q(n)}function WFn(n,e,t,i){var r,c;n.a=e,c=i?0:1,n.f=(r=new s_n(n.c,n.a,t,c),new Kqn(t,n.a,r,n.e,n.b,n.c==(O0(),t9)))}function xT(n){var e;return oe(n.a!=n.b),e=n.d.a[n.a],EAn(n.b==n.d.c&&e!=null),n.c=n.a,n.a=n.a+1&n.d.a.length-1,e}function JFn(n){var e;if(n.c!=0)return n.c;for(e=0;e=n.c.b:n.a<=n.c.b))throw M(new nc);return e=n.a,n.a+=n.c.c,++n.b,Y(e)}function ex(n){var e;return e=new DX(n.a),Ur(e,n),U(e,(W(),st),n),e.o.a=n.g,e.o.b=n.f,e.n.a=n.i,e.n.b=n.j,e}function tx(n){return(tn(),mu).Hc(n.j)?$(R(v(n,(W(),jv)))):cc(S(T(Ei,1),J,8,0,[n.i.n,n.n,n.a])).b}function X6e(n){var e;return e=DC(Cie),u(v(n,(W(),Hc)),21).Hc((pr(),yv))&&Re(e,(Vi(),Oc),(tr(),FP)),e}function V6e(n){var e,t,i,r;for(r=new ni,i=new C(n);i.a=0?e:-e;i>0;)i%2==0?(t*=t,i=i/2|0):(r*=t,i-=1);return e<0?1/r:r}function Z6e(n,e){var t,i,r;for(r=1,t=n,i=e>=0?e:-e;i>0;)i%2==0?(t*=t,i=i/2|0):(r*=t,i-=1);return e<0?1/r:r}function na(n,e){var t,i,r,c;return c=(r=n?WT(n):null,O_n((i=e,r&&r.Gl(),i))),c==e&&(t=WT(n),t&&t.Gl()),c}function QFn(n,e,t){var i,r;return r=n.f,n.f=e,n.Db&4&&!(n.Db&1)&&(i=new Ci(n,1,0,r,e),t?t.nj(i):t=i),t}function YFn(n,e,t){var i,r;return r=n.b,n.b=e,n.Db&4&&!(n.Db&1)&&(i=new Ci(n,1,3,r,e),t?t.nj(i):t=i),t}function vY(n,e,t){var i,r;return r=n.a,n.a=e,n.Db&4&&!(n.Db&1)&&(i=new Ci(n,1,1,r,e),t?t.nj(i):t=i),t}function ZFn(n){var e,t;if(n!=null)for(t=0;t=i||e-129&&n<128?(FSn(),e=n+128,t=pun[e],!t&&(t=pun[e]=new vG(n)),t):new vG(n)}function sm(n){var e,t;return n>-129&&n<128?(nPn(),e=n+128,t=yun[e],!t&&(t=yun[e]=new yG(n)),t):new yG(n)}function tBn(n,e){var t;n.a.c.length>0&&(t=u(sn(n.a,n.a.c.length-1),579),sY(t,e))||nn(n.a,new kLn(e))}function c5e(n){xs();var e,t;e=n.d.c-n.e.c,t=u(n.g,154),nu(t.b,new p7n(e)),nu(t.c,new m7n(e)),qi(t.i,new v7n(e))}function iBn(n){var e;return e=new x1,e.a+="VerticalSegment ",Dc(e,n.e),e.a+=" ",Be(e,RX(new yD,new C(n.k))),e.a}function ix(n,e){var t,i,r;for(t=0,r=uc(n,e).Kc();r.Ob();)i=u(r.Pb(),12),t+=v(i,(W(),Xu))!=null?1:0;return t}function xg(n,e,t){var i,r,c;for(i=0,c=ge(n,0);c.b!=c.d.c&&(r=$(R(be(c))),!(r>t));)r>=e&&++i;return i}function rBn(n,e){Se(n);try{return n._b(e)}catch(t){if(t=It(t),O(t,212)||O(t,169))return!1;throw M(t)}}function yY(n,e){Se(n);try{return n.Hc(e)}catch(t){if(t=It(t),O(t,212)||O(t,169))return!1;throw M(t)}}function u5e(n,e){Se(n);try{return n.Mc(e)}catch(t){if(t=It(t),O(t,212)||O(t,169))return!1;throw M(t)}}function tw(n,e){Se(n);try{return n.xc(e)}catch(t){if(t=It(t),O(t,212)||O(t,169))return null;throw M(t)}}function o5e(n,e){Se(n);try{return n.Bc(e)}catch(t){if(t=It(t),O(t,212)||O(t,169))return null;throw M(t)}}function p5(n,e){switch(e.g){case 2:case 1:return uc(n,e);case 3:case 4:return Qo(uc(n,e))}return Dn(),Dn(),sr}function m5(n){var e;return n.Db&64?_s(n):(e=new ls(_s(n)),e.a+=" (name: ",Er(e,n.zb),e.a+=")",e.a)}function s5e(n){var e;return e=u(Lf(n.c.c,""),233),e||(e=new Np(u4(c4(new ep,""),"Other")),s1(n.c.c,"",e)),e}function jY(n,e,t){var i,r;return r=n.sb,n.sb=e,n.Db&4&&!(n.Db&1)&&(i=new Ci(n,1,4,r,e),t?t.nj(i):t=i),t}function EY(n,e,t){var i,r;return r=n.r,n.r=e,n.Db&4&&!(n.Db&1)&&(i=new Ci(n,1,8,r,n.r),t?t.nj(i):t=i),t}function f5e(n,e,t){var i,r;return i=new ml(n.e,4,13,(r=e.c,r||(On(),Yf)),null,f1(n,e),!1),t?t.nj(i):t=i,t}function h5e(n,e,t){var i,r;return i=new ml(n.e,3,13,null,(r=e.c,r||(On(),Yf)),f1(n,e),!1),t?t.nj(i):t=i,t}function r1(n,e){var t,i;return t=u(e,691),i=t.el(),!i&&t.fl(i=O(e,90)?new xMn(n,u(e,29)):new cDn(n,u(e,156))),i}function Nk(n,e,t){var i;n._i(n.i+1),i=n.Zi(e,t),e!=n.i&&Ic(n.g,e,n.g,e+1,n.i-e),$t(n.g,e,i),++n.i,n.Mi(e,t),n.Ni()}function l5e(n,e){var t;return e.a&&(t=e.a.a.length,n.a?Be(n.a,n.b):n.a=new mo(n.d),aDn(n.a,e.a,e.d.length,t)),n}function a5e(n,e){var t;n.c=e,n.a=p8e(e),n.a<54&&(n.f=(t=e.d>1?hDn(e.a[0],e.a[1]):hDn(e.a[0],0),id(e.e>0?t:n1(t))))}function $k(n,e){var t;return t=new LO,n.a.Bd(t)?(b4(),new wD(Jn(GNn(n,t.a,e)))):(z1(n),b4(),b4(),Dun)}function cBn(n,e){var t;n.c.length!=0&&(t=u(xf(n,K(Qh,b1,10,n.c.length,0,1)),199),CX(t,new rgn),Y_n(t,e))}function uBn(n,e){var t;n.c.length!=0&&(t=u(xf(n,K(Qh,b1,10,n.c.length,0,1)),199),CX(t,new cgn),Y_n(t,e))}function rt(n,e){return Ai(n)?An(n,e):$b(n)?nSn(n,e):Nb(n)?(Jn(n),x(n)===x(e)):pW(n)?n.Fb(e):hW(n)?YMn(n,e):hJ(n,e)}function Wo(n,e,t){if(e<0)Pnn(n,t);else{if(!t.rk())throw M(new Gn(da+t.xe()+p8));u(t,69).wk().Ek(n,n.hi(),e)}}function oBn(n,e,t){if(n<0||e>t)throw M(new Ir(ZA+n+Stn+e+", size: "+t));if(n>e)throw M(new Gn(ZA+n+Qzn+e))}function sBn(n){var e;return n.Db&64?_s(n):(e=new ls(_s(n)),e.a+=" (source: ",Er(e,n.d),e.a+=")",e.a)}function fBn(n){return n>=65&&n<=70?n-65+10:n>=97&&n<=102?n-97+10:n>=48&&n<=57?n-48:0}function d5e(n){VA();var e,t,i,r;for(t=jx(),i=0,r=t.length;i=0?ta(n):G6(ta(n1(n))))}function aBn(n,e,t,i,r,c){this.e=new Z,this.f=(gr(),n9),nn(this.e,n),this.d=e,this.a=t,this.b=i,this.f=r,this.c=c}function g5e(n,e,t){n.n=Va(xa,[J,SB],[376,28],14,[t,wi(y.Math.ceil(e/32))],2),n.o=e,n.p=t,n.j=e-1>>1,n.k=t-1>>1}function dBn(n){return n-=n>>1&1431655765,n=(n>>2&858993459)+(n&858993459),n=(n>>4)+n&252645135,n+=n>>8,n+=n>>16,n&63}function bBn(n,e){var t,i;for(i=new ne(n);i.e!=i.i.gc();)if(t=u(ce(i),142),x(e)===x(t))return!0;return!1}function p5e(n,e,t){var i,r,c;return c=(r=Mm(n.b,e),r),c&&(i=u(qA(ak(n,c),""),29),i)?Qnn(n,i,e,t):null}function rx(n,e,t){var i,r,c;return c=(r=Mm(n.b,e),r),c&&(i=u(qA(ak(n,c),""),29),i)?Ynn(n,i,e,t):null}function m5e(n,e){var t;if(t=Dg(n.i,e),t==null)throw M(new nh("Node did not exist in input."));return HQ(e,t),null}function v5e(n,e){var t;if(t=oy(n,e),O(t,331))return u(t,35);throw M(new Gn(da+e+"' is not a valid attribute"))}function k5(n,e,t){var i;if(i=n.gc(),e>i)throw M(new Kb(e,i));if(n.Si()&&n.Hc(t))throw M(new Gn(Vy));n.Gi(e,t)}function k5e(n,e){e.Ug("Sort end labels",1),qt(ct(rc(new Tn(null,new In(n.b,16)),new Hwn),new qwn),new Uwn),e.Vg()}function ci(){ci=F,Wf=new v7(i8,0),Xr=new v7(f3,1),Br=new v7(s3,2),Vf=new v7(_B,3),us=new v7("UP",4)}function Fk(){Fk=F,XI=new sL("P1_STRUCTURE",0),VI=new sL("P2_PROCESSING_ORDER",1),WI=new sL("P3_EXECUTION",2)}function wBn(){wBn=F,Rre=ah(ah(l6(ah(ah(l6(Re(new ii,(Qp(),c9),(q5(),ZH)),u9),lln),dln),o9),oln),bln)}function y5e(n){switch(u(v(n,(W(),Od)),311).g){case 1:U(n,Od,(vl(),E3));break;case 2:U(n,Od,(vl(),v2))}}function j5e(n){switch(n){case 0:return new rjn;case 1:return new tjn;case 2:return new ijn;default:throw M(new Q9)}}function gBn(n){switch(n.g){case 2:return Xr;case 1:return Br;case 4:return Vf;case 3:return us;default:return Wf}}function AY(n,e){switch(n.b.g){case 0:case 1:return e;case 2:case 3:return new Ho(e.d,0,e.a,e.b);default:return null}}function SY(n){switch(n.g){case 1:return Wn;case 2:return Xn;case 3:return Zn;case 4:return ae;default:return sc}}function Bk(n){switch(n.g){case 1:return ae;case 2:return Wn;case 3:return Xn;case 4:return Zn;default:return sc}}function RT(n){switch(n.g){case 1:return Zn;case 2:return ae;case 3:return Wn;case 4:return Xn;default:return sc}}function PY(n,e,t,i){switch(e){case 1:return!n.n&&(n.n=new q(Ar,n,1,7)),n.n;case 2:return n.k}return yZ(n,e,t,i)}function y5(n,e,t){var i,r;return n.Pj()?(r=n.Qj(),i=lF(n,e,t),n.Jj(n.Ij(7,Y(t),i,e,r)),i):lF(n,e,t)}function cx(n,e){var t,i,r;n.d==null?(++n.e,--n.f):(r=e.ld(),t=e.Bi(),i=(t&et)%n.d.length,o4e(n,i,RHn(n,i,t,r)))}function fm(n,e){var t;t=(n.Bb&Us)!=0,e?n.Bb|=Us:n.Bb&=-1025,n.Db&4&&!(n.Db&1)&&it(n,new Bs(n,1,10,t,e))}function hm(n,e){var t;t=(n.Bb&vw)!=0,e?n.Bb|=vw:n.Bb&=-4097,n.Db&4&&!(n.Db&1)&&it(n,new Bs(n,1,12,t,e))}function lm(n,e){var t;t=(n.Bb&$u)!=0,e?n.Bb|=$u:n.Bb&=-8193,n.Db&4&&!(n.Db&1)&&it(n,new Bs(n,1,15,t,e))}function am(n,e){var t;t=(n.Bb&Tw)!=0,e?n.Bb|=Tw:n.Bb&=-2049,n.Db&4&&!(n.Db&1)&&it(n,new Bs(n,1,11,t,e))}function E5e(n){var e;n.g&&(e=n.c.kg()?n.f:n.a,len(e.a,n.o,!0),len(e.a,n.o,!1),U(n.o,(cn(),Kt),(Oi(),Ud)))}function C5e(n){var e;if(!n.a)throw M(new Or("Cannot offset an unassigned cut."));e=n.c-n.b,n.b+=e,_In(n,e),KIn(n,e)}function M5e(n,e){var t;if(t=ee(n.k,e),t==null)throw M(new nh("Port did not exist in input."));return HQ(e,t),null}function T5e(n){var e,t;for(t=xHn(jo(n)).Kc();t.Ob();)if(e=Oe(t.Pb()),U5(n,e))return A3e((mCn(),Boe),e);return null}function pBn(n){var e,t;for(t=n.p.a.ec().Kc();t.Ob();)if(e=u(t.Pb(),218),e.f&&n.b[e.c]<-1e-10)return e;return null}function A5e(n){var e,t;for(t=Ya(new x1,91),e=!0;n.Ob();)e||(t.a+=ur),e=!1,Dc(t,n.Pb());return(t.a+="]",t).a}function S5e(n){var e,t,i;for(e=new Z,i=new C(n.b);i.ae?1:n==e?n==0?bt(1/n,1/e):0:isNaN(n)?isNaN(e)?0:1:-1}function I5e(n){var e;return e=n.a[n.c-1&n.a.length-1],e==null?null:(n.c=n.c-1&n.a.length-1,$t(n.a,n.c,null),e)}function O5e(n){var e,t,i;for(i=0,t=n.length,e=0;e=1?Xr:Vf):t}function $5e(n){switch(u(v(n,(cn(),$l)),223).g){case 1:return new Ppn;case 3:return new Npn;default:return new Spn}}function ea(n){if(n.c)ea(n.c);else if(n.d)throw M(new Or("Stream already terminated, can't be modified or used"))}function $0(n,e,t){var i;return i=n.a.get(e),n.a.set(e,t===void 0?null:t),i===void 0?(++n.c,++n.b.g):++n.d,i}function x5e(n,e,t){var i,r;for(r=n.a.ec().Kc();r.Ob();)if(i=u(r.Pb(),10),Mk(t,u(sn(e,i.p),16)))return i;return null}function OY(n,e,t){var i;return i=0,e&&(mg(n.a)?i+=e.f.a/2:i+=e.f.b/2),t&&(mg(n.a)?i+=t.f.a/2:i+=t.f.b/2),i}function F5e(n,e,t){var i;i=t,!i&&(i=YV(new up,0)),i.Ug(PXn,2),jRn(n.b,e,i.eh(1)),YIe(n,e,i.eh(1)),eLe(e,i.eh(1)),i.Vg()}function DY(n,e,t){var i,r;return i=(B1(),r=new yE,r),aT(i,e),lT(i,t),n&&ve((!n.a&&(n.a=new ti(xo,n,5)),n.a),i),i}function ox(n){var e;return n.Db&64?_s(n):(e=new ls(_s(n)),e.a+=" (identifier: ",Er(e,n.k),e.a+=")",e.a)}function sx(n,e){var t;t=(n.Bb&kc)!=0,e?n.Bb|=kc:n.Bb&=-32769,n.Db&4&&!(n.Db&1)&&it(n,new Bs(n,1,18,t,e))}function LY(n,e){var t;t=(n.Bb&kc)!=0,e?n.Bb|=kc:n.Bb&=-32769,n.Db&4&&!(n.Db&1)&&it(n,new Bs(n,1,18,t,e))}function dm(n,e){var t;t=(n.Bb&wh)!=0,e?n.Bb|=wh:n.Bb&=-16385,n.Db&4&&!(n.Db&1)&&it(n,new Bs(n,1,16,t,e))}function NY(n,e){var t;t=(n.Bb&hr)!=0,e?n.Bb|=hr:n.Bb&=-65537,n.Db&4&&!(n.Db&1)&&it(n,new Bs(n,1,20,t,e))}function $Y(n){var e;return e=K(fs,gh,28,2,15,1),n-=hr,e[0]=(n>>10)+Sy&ui,e[1]=(n&1023)+56320&ui,hh(e,0,e.length)}function B5e(n){var e;return e=sw(n),e>34028234663852886e22?St:e<-34028234663852886e22?li:e}function nr(n,e){var t;return Vr(n)&&Vr(e)&&(t=n+e,Ay"+td(e.c):"e_"+mt(e),n.b&&n.c?td(n.b)+"->"+td(n.c):"e_"+mt(n))}function _5e(n,e){return An(e.b&&e.c?td(e.b)+"->"+td(e.c):"e_"+mt(e),n.b&&n.c?td(n.b)+"->"+td(n.c):"e_"+mt(n))}function x0(n,e){return Mf(),Rs(sa),y.Math.abs(n-e)<=sa||n==e||isNaN(n)&&isNaN(e)?0:ne?1:s0(isNaN(n),isNaN(e))}function El(){El=F,lU=new kC(i8,0),Yj=new kC("POLYLINE",1),Kv=new kC("ORTHOGONAL",2),F3=new kC("SPLINES",3)}function _T(){_T=F,l1n=new uL("ASPECT_RATIO_DRIVEN",0),Oq=new uL("MAX_SCALE_DRIVEN",1),h1n=new uL("AREA_DRIVEN",2)}function H5e(n,e,t){var i;try{l6e(n,e,t)}catch(r){throw r=It(r),O(r,606)?(i=r,M(new $J(i))):M(r)}return e}function q5e(n){var e,t,i;for(t=0,i=n.length;te&&i.Ne(n[c-1],n[c])>0;--c)s=n[c],$t(n,c,n[c-1]),$t(n,c-1,s)}function vn(n,e){var t,i,r,c,s;if(t=e.f,s1(n.c.d,t,e),e.g!=null)for(r=e.g,c=0,s=r.length;ce){wDn(t);break}}q7(t,e)}function X5e(n,e){var t,i,r;i=Sg(e),r=$(R(rw(i,(cn(),Vs)))),t=y.Math.max(0,r/2-.5),I5(e,t,1),nn(n,new NCn(e,t))}function V5e(n,e,t){var i;t.Ug("Straight Line Edge Routing",1),t.dh(e,xrn),i=u(z(e,(Mg(),O2)),27),iGn(n,i),t.dh(e,DS)}function xY(n,e){n.n.c.length==0&&nn(n.n,new NM(n.s,n.t,n.i)),nn(n.b,e),gZ(u(sn(n.n,n.n.c.length-1),209),e),RUn(n,e)}function j5(n){var e;this.a=(e=u(n.e&&n.e(),9),new _o(e,u($s(e,e.length),9),0)),this.b=K(ki,Fn,1,this.a.a.length,5,1)}function Jr(n){var e;return Array.isArray(n)&&n.Tm===J2?za(wo(n))+"@"+(e=mt(n)>>>0,e.toString(16)):n.toString()}function W5e(n,e){return n.h==Ty&&n.m==0&&n.l==0?(e&&(ba=Yc(0,0,0)),nTn((R4(),lun))):(e&&(ba=Yc(n.l,n.m,n.h)),Yc(0,0,0))}function J5e(n,e){switch(e.g){case 2:return n.b;case 1:return n.c;case 4:return n.d;case 3:return n.a;default:return!1}}function yBn(n,e){switch(e.g){case 2:return n.b;case 1:return n.c;case 4:return n.d;case 3:return n.a;default:return!1}}function FY(n,e,t,i){switch(e){case 3:return n.f;case 4:return n.g;case 5:return n.i;case 6:return n.j}return PY(n,e,t,i)}function HT(n,e){if(e==n.d)return n.e;if(e==n.e)return n.d;throw M(new Gn("Node "+e+" not part of edge "+n))}function Q5e(n,e){var t;if(t=oy(n.Dh(),e),O(t,102))return u(t,19);throw M(new Gn(da+e+"' is not a valid reference"))}function Jo(n,e,t,i){if(e<0)ten(n,t,i);else{if(!t.rk())throw M(new Gn(da+t.xe()+p8));u(t,69).wk().Ck(n,n.hi(),e,i)}}function eo(n){var e;if(n.b){if(eo(n.b),n.b.d!=n.c)throw M(new Bo)}else n.d.dc()&&(e=u(n.f.c.xc(n.e),16),e&&(n.d=e))}function Y5e(n){Bb();var e,t,i,r;for(e=n.o.b,i=u(u(ot(n.r,(tn(),ae)),21),87).Kc();i.Ob();)t=u(i.Pb(),117),r=t.e,r.b+=e}function Z5e(n){var e,t,i;for(this.a=new ih,i=new C(n);i.a=r)return e.c+t;return e.c+e.b.gc()}function e8e(n,e){m4();var t,i,r,c;for(i=LNn(n),r=e,F4(i,0,i.length,r),t=0;t0&&(i+=r,++t);return t>1&&(i+=n.d*(t-1)),i}function i8e(n){var e,t,i,r,c;return c=enn(n),t=e7(n.c),i=!t,i&&(r=new Ka,df(c,"knownLayouters",r),e=new lyn(r),qi(n.c,e)),c}function KY(n){var e,t,i;for(i=new Hl,i.a+="[",e=0,t=n.gc();e0&&(zn(e-1,n.length),n.charCodeAt(e-1)==58)&&!lx(n,N9,$9))}function _Y(n,e){var t;return x(n)===x(e)?!0:O(e,92)?(t=u(e,92),n.e==t.e&&n.d==t.d&&I3e(n,t.a)):!1}function zp(n){switch(tn(),n.g){case 4:return Xn;case 1:return Zn;case 3:return ae;case 2:return Wn;default:return sc}}function o8e(n){var e,t;if(n.b)return n.b;for(t=qf?null:n.d;t;){if(e=qf?null:t.b,e)return e;t=qf?null:t.d}return a4(),$un}function HY(n){var e,t,i;for(i=$(R(n.a.of((qe(),iO)))),t=new C(n.a.Sf());t.a>5,e=n&31,i=K(ye,Ke,28,t+1,15,1),i[t]=1<3;)r*=10,--c;n=(n+(r>>1))/r|0}return i.i=n,!0}function Ot(n,e){var t,i,r;if(t=(n.i==null&&bh(n),n.i),i=e.Lj(),i!=-1){for(r=t.length;i=0;--i)for(e=t[i],r=0;r>1,this.k=e-1>>1}function j8e(n){YM(),u(n.of((qe(),Ma)),181).Hc((io(),hO))&&(u(n.of(Ww),181).Fc((zu(),B3)),u(n.of(Ma),181).Mc(hO))}function SBn(n){var e,t;e=n.d==(Yp(),dv),t=GZ(n),e&&!t||!e&&t?U(n.a,(cn(),Th),(Rh(),Uj)):U(n.a,(cn(),Th),(Rh(),qj))}function bx(){bx=F,nC(),EI=(cn(),gb),Qte=If(S(T(Xq,1),Ern,149,0,[Tj,Vs,M2,wb,qw,IH,Av,Sv,OH,J8,C2,Bd,T2]))}function E8e(n,e){var t;return t=u(Wr(n,qu(new ju,new yu,new Eu,S(T(xr,1),G,108,0,[(Gu(),Yr)]))),15),t.Qc(WSn(t.gc()))}function PBn(n,e){var t,i;if(i=new Y3(n.a.ad(e,!0)),i.a.gc()<=1)throw M(new ip);return t=i.a.ec().Kc(),t.Pb(),u(t.Pb(),40)}function C8e(n,e,t){var i,r;return i=$(n.p[e.i.p])+$(n.d[e.i.p])+e.n.b+e.a.b,r=$(n.p[t.i.p])+$(n.d[t.i.p])+t.n.b+t.a.b,r-i}function WY(n,e){var t;return n.i>0&&(e.lengthn.i&&$t(e,n.i,null),e}function UT(n){var e;return n.Db&64?m5(n):(e=new ls(m5(n)),e.a+=" (instanceClassName: ",Er(e,n.D),e.a+=")",e.a)}function GT(n){var e,t,i,r;for(r=0,t=0,i=n.length;t0?(n._j(),i=e==null?0:mt(e),r=(i&et)%n.d.length,t=RHn(n,r,i,e),t!=-1):!1}function IBn(n,e){var t,i;n.a=nr(n.a,1),n.c=y.Math.min(n.c,e),n.b=y.Math.max(n.b,e),n.d+=e,t=e-n.f,i=n.e+t,n.f=i-n.e-t,n.e=i}function JY(n,e){switch(e){case 3:P0(n,0);return;case 4:I0(n,0);return;case 5:eu(n,0);return;case 6:tu(n,0);return}kY(n,e)}function F0(n,e){switch(e.g){case 1:return Cp(n.j,(Ou(),Fon));case 2:return Cp(n.j,(Ou(),Ron));default:return Dn(),Dn(),sr}}function QY(n){m0();var e;switch(e=n.Pc(),e.length){case 0:return qK;case 1:return new VL(Se(e[0]));default:return new PN(q5e(e))}}function OBn(n,e){n.Xj();try{n.d.bd(n.e++,e),n.f=n.d.j,n.g=-1}catch(t){throw t=It(t),O(t,77)?M(new Bo):M(t)}}function gx(){gx=F,TU=new Tvn,zdn=new Avn,Xdn=new Svn,Vdn=new Pvn,Wdn=new Ivn,Jdn=new Ovn,Qdn=new Dvn,Ydn=new Lvn,Zdn=new Nvn}function zT(n,e){kX();var t,i;return t=D7((KE(),KE(),P8)),i=null,e==t&&(i=u(Nc(fun,n),624)),i||(i=new JPn(n),e==t&&Dr(fun,n,i)),i}function DBn(n){cw();var e;return(n.q?n.q:(Dn(),Dn(),Wh))._b((cn(),db))?e=u(v(n,db),203):e=u(v(Hi(n),W8),203),e}function rw(n,e){var t,i;return i=null,kt(n,(cn(),yI))&&(t=u(v(n,yI),96),t.pf(e)&&(i=t.of(e))),i==null&&(i=v(Hi(n),e)),i}function LBn(n,e){var t,i,r;return O(e,44)?(t=u(e,44),i=t.ld(),r=tw(n.Rc(),i),oh(r,t.md())&&(r!=null||n.Rc()._b(i))):!1}function wf(n,e){var t,i,r;return n.f>0&&(n._j(),i=e==null?0:mt(e),r=(i&et)%n.d.length,t=xnn(n,r,i,e),t)?t.md():null}function Xc(n,e,t){var i,r,c;return n.Pj()?(i=n.i,c=n.Qj(),Nk(n,i,e),r=n.Ij(3,null,e,i,c),t?t.nj(r):t=r):Nk(n,n.i,e),t}function T8e(n,e,t){var i,r;return i=new ml(n.e,4,10,(r=e.c,O(r,90)?u(r,29):(On(),Ps)),null,f1(n,e),!1),t?t.nj(i):t=i,t}function A8e(n,e,t){var i,r;return i=new ml(n.e,3,10,null,(r=e.c,O(r,90)?u(r,29):(On(),Ps)),f1(n,e),!1),t?t.nj(i):t=i,t}function NBn(n){Bb();var e;return e=new rr(u(n.e.of((qe(),K2)),8)),n.B.Hc((io(),Hv))&&(e.a<=0&&(e.a=20),e.b<=0&&(e.b=20)),e}function ta(n){dh();var e,t;return t=Ae(n),e=Ae(U1(n,32)),e!=0?new HOn(t,e):t>10||t<0?new gl(1,t):kQn[t]}function Kk(n,e){var t;return Vr(n)&&Vr(e)&&(t=n%e,Ay=0?c=c.a[1]:(r=c,c=c.a[0])}return r}function Hk(n,e,t){var i,r,c;for(r=null,c=n.b;c;){if(i=n.a.Ne(e,c.d),t&&i==0)return c;i<=0?c=c.a[0]:(r=c,c=c.a[1])}return r}function L8e(n,e,t,i){var r,c,s;return r=!1,xOe(n.f,t,i)&&(e9e(n.f,n.a[e][t],n.a[e][i]),c=n.a[e],s=c[i],c[i]=c[t],c[t]=s,r=!0),r}function BBn(n,e,t){var i,r,c,s;for(r=u(ee(n.b,t),183),i=0,s=new C(e.j);s.a>5,e&=31,r=n.d+t+(e==0?0:1),i=K(ye,Ke,28,r,15,1),Oye(i,n.a,t,e),c=new Qa(n.e,r,i),Q6(c),c}function N8e(n,e){var t,i,r;for(i=new te(re(Qt(n).a.Kc(),new En));pe(i);)if(t=u(fe(i),18),r=t.d.i,r.c==e)return!1;return!0}function nZ(n,e,t){var i,r,c,s,f;return s=n.k,f=e.k,i=t[s.g][f.g],r=R(rw(n,i)),c=R(rw(e,i)),y.Math.max((Jn(r),r),(Jn(c),c))}function $8e(){return Error.stackTraceLimit>0?(y.Error.stackTraceLimit=Error.stackTraceLimit=64,!0):"stack"in new Error}function x8e(n,e){return Mf(),Mf(),Rs(sa),(y.Math.abs(n-e)<=sa||n==e||isNaN(n)&&isNaN(e)?0:ne?1:s0(isNaN(n),isNaN(e)))>0}function eZ(n,e){return Mf(),Mf(),Rs(sa),(y.Math.abs(n-e)<=sa||n==e||isNaN(n)&&isNaN(e)?0:ne?1:s0(isNaN(n),isNaN(e)))<0}function KBn(n,e){return Mf(),Mf(),Rs(sa),(y.Math.abs(n-e)<=sa||n==e||isNaN(n)&&isNaN(e)?0:ne?1:s0(isNaN(n),isNaN(e)))<=0}function mx(n,e){for(var t=0;!e[t]||e[t]=="";)t++;for(var i=e[t++];t0&&this.b>0&&(this.g=cM(this.c,this.b,this.a))}function F8e(n,e){var t=n.a,i;e=String(e),t.hasOwnProperty(e)&&(i=t[e]);var r=(K$(),WK)[typeof i],c=r?r(i):wY(typeof i);return c}function wm(n){var e,t,i;if(i=null,e=Eh in n.a,t=!e,t)throw M(new nh("Every element must have an id."));return i=Zp(dl(n,Eh)),i}function B0(n){var e,t;for(t=a_n(n),e=null;n.c==2;)Ye(n),e||(e=(nt(),nt(),new P6(2)),pd(e,t),t=e),t.Jm(a_n(n));return t}function VT(n,e){var t,i,r;return n._j(),i=e==null?0:mt(e),r=(i&et)%n.d.length,t=xnn(n,r,i,e),t?(V$n(n,t),t.md()):null}function XBn(n,e){return n.e>e.e?1:n.ee.d?n.e:n.d=48&&n<48+y.Math.min(10,10)?n-48:n>=97&&n<97?n-97+10:n>=65&&n<65?n-65+10:-1}function B8e(n,e){if(e.c==n)return e.d;if(e.d==n)return e.c;throw M(new Gn("Input edge is not connected to the input port."))}function R8e(n){if(JT(nv,n))return _n(),ov;if(JT(cK,n))return _n(),wa;throw M(new Gn("Expecting true or false"))}function rZ(n){switch(typeof n){case nB:return t1(n);case dtn:return pp(n);case i3:return SAn(n);default:return n==null?0:l0(n)}}function ah(n,e){if(n.a<0)throw M(new Or("Did not call before(...) or after(...) before calling add(...)."));return YX(n,n.a,e),n}function cZ(n){return $M(),O(n,162)?u(ee(hE,MQn),295).Rg(n):Zc(hE,wo(n))?u(ee(hE,wo(n)),295).Rg(n):null}function iu(n){var e,t;return n.Db&32||(t=(e=u(Un(n,16),29),se(e||n.ii())-se(n.ii())),t!=0&&Xp(n,32,K(ki,Fn,1,t,5,1))),n}function Xp(n,e,t){var i;n.Db&e?t==null?jCe(n,e):(i=Rx(n,e),i==-1?n.Eb=t:$t(cd(n.Eb),i,t)):t!=null&>e(n,e,t)}function K8e(n,e,t,i){var r,c;e.c.length!=0&&(r=$Me(t,i),c=xEe(e),qt(fT(new Tn(null,new In(c,1)),new L3n),new MIn(n,t,r,i)))}function _8e(n,e){var t,i,r,c;return i=n.a.length-1,t=e-n.b&i,c=n.c-e&i,r=n.c-n.b&i,EAn(t=c?(R6e(n,e),-1):(B6e(n,e),1)}function WT(n){var e,t,i;if(i=n.Jh(),!i)for(e=0,t=n.Ph();t;t=t.Ph()){if(++e>PB)return t.Qh();if(i=t.Jh(),i||t==n)break}return i}function WBn(n,e){var t;return x(e)===x(n)?!0:!O(e,21)||(t=u(e,21),t.gc()!=n.gc())?!1:n.Ic(t)}function H8e(n,e){return n.ee.e?1:n.fe.f?1:mt(n)-mt(e)}function JT(n,e){return Jn(n),e==null?!1:An(n,e)?!0:n.length==e.length&&An(n.toLowerCase(),e.toLowerCase())}function Ml(n){var e,t;return Ec(n,-129)>0&&Ec(n,128)<0?(ZSn(),e=Ae(n)+128,t=mun[e],!t&&(t=mun[e]=new kG(n)),t):new kG(n)}function dd(){dd=F,Ow=new aC(kh,0),Don=new aC("INSIDE_PORT_SIDE_GROUPS",1),P_=new aC("GROUP_MODEL_ORDER",2),I_=new aC(tin,3)}function q8e(n){var e;return n.b||xhe(n,(e=$ae(n.e,n.a),!e||!An(cK,wf((!e.b&&(e.b=new lo((On(),ar),pc,e)),e.b),"qualified")))),n.c}function U8e(n,e){var t,i;for(t=(zn(e,n.length),n.charCodeAt(e)),i=e+1;i2e3&&(hQn=n,uP=y.setTimeout(_he,10))),cP++==0?(ime((az(),sun)),!0):!1}function r9e(n,e,t){var i;(DQn?(o8e(n),!0):LQn||$Qn?(a4(),!0):NQn&&(a4(),!1))&&(i=new aSn(e),i.b=t,aje(n,i))}function kx(n,e){var t;t=!n.A.Hc((go(),Gd))||n.q==(Oi(),qc),n.u.Hc((zu(),Fl))?t?XDe(n,e):UGn(n,e):n.u.Hc(Pa)&&(t?dDe(n,e):czn(n,e))}function eRn(n){var e;x(z(n,(qe(),B2)))===x((jl(),uO))&&(At(n)?(e=u(z(At(n),B2),346),ht(n,B2,e)):ht(n,B2,M9))}function c9e(n){var e,t;return kt(n.d.i,(cn(),Cv))?(e=u(v(n.c.i,Cv),17),t=u(v(n.d.i,Cv),17),jc(e.a,t.a)>0):!1}function tRn(n,e,t){return new Ho(y.Math.min(n.a,e.a)-t/2,y.Math.min(n.b,e.b)-t/2,y.Math.abs(n.a-e.a)+t,y.Math.abs(n.b-e.b)+t)}function iRn(n){var e;this.d=new Z,this.j=new Li,this.g=new Li,e=n.g.b,this.f=u(v(Hi(e),(cn(),Do)),88),this.e=$(R(nA(e,qw)))}function rRn(n){this.d=new Z,this.e=new Ql,this.c=K(ye,Ke,28,(tn(),S(T(lr,1),Mc,64,0,[sc,Xn,Zn,ae,Wn])).length,15,1),this.b=n}function sZ(n,e,t){var i;switch(i=t[n.g][e],n.g){case 1:case 3:return new V(0,i);case 2:case 4:return new V(i,0);default:return null}}function cRn(n,e,t){var i,r;r=u(V7(e.f),205);try{r.rf(n,t),hIn(e.f,r)}catch(c){throw c=It(c),O(c,103)?(i=c,M(i)):M(c)}}function uRn(n,e,t){var i,r,c,s,f,h;return i=null,f=Zen(z4(),e),c=null,f&&(r=null,h=Qen(f,t),s=null,h!=null&&(s=n.qf(f,h)),r=s,c=r),i=c,i}function yx(n,e,t,i){var r;if(r=n.length,e>=r)return r;for(e=e>0?e:0;ei&&$t(e,i,null),e}function oRn(n,e){var t,i;for(i=n.a.length,e.lengthi&&$t(e,i,null),e}function gm(n,e){var t,i;if(++n.j,e!=null&&(t=(i=n.a.Cb,O(i,99)?u(i,99).th():null),hCe(e,t))){Xp(n.a,4,t);return}Xp(n.a,4,u(e,129))}function u9e(n){var e;if(n==null)return null;if(e=lMe(Fc(n,!0)),e==null)throw M(new kD("Invalid hexBinary value: '"+n+"'"));return e}function QT(n,e,t){var i;e.a.length>0&&(nn(n.b,new SSn(e.a,t)),i=e.a.length,0i&&(e.a+=ITn(K(fs,gh,28,-i,15,1))))}function sRn(n,e,t){var i,r,c;if(!t[e.d])for(t[e.d]=!0,r=new C($g(e));r.a=n.b>>1)for(i=n.c,t=n.b;t>e;--t)i=i.b;else for(i=n.a.a,t=0;t=0?n.Wh(r):hF(n,i)):t<0?hF(n,i):u(i,69).wk().Bk(n,n.hi(),t)}function aRn(n){var e,t,i;for(i=(!n.o&&(n.o=new Iu((Cc(),il),T1,n,0)),n.o),t=i.c.Kc();t.e!=t.i.gc();)e=u(t.Yj(),44),e.md();return uk(i)}function rn(n){var e;if(O(n.a,4)){if(e=cZ(n.a),e==null)throw M(new Or(NVn+n.b+"'. "+LVn+(ll(lE),lE.k)+bcn));return e}else return n.a}function b9e(n,e){var t,i;if(n.j.length!=e.j.length)return!1;for(t=0,i=n.j.length;t=64&&e<128&&(r=hf(r,Fs(1,e-64)));return r}function nA(n,e){var t,i;return i=null,kt(n,(qe(),$3))&&(t=u(v(n,$3),96),t.pf(e)&&(i=t.of(e))),i==null&&Hi(n)&&(i=v(Hi(n),e)),i}function w9e(n,e){var t;return t=u(v(n,(cn(),Fr)),75),yL(e,LZn)?t?vo(t):(t=new Mu,U(n,Fr,t)):t&&U(n,Fr,null),t}function M5(){M5=F,aon=(qe(),qan),g_=Ean,DYn=$2,lon=C1,xYn=(aA(),Uun),$Yn=Hun,FYn=zun,NYn=_un,LYn=(Q$(),son),w_=PYn,hon=IYn,pP=OYn}function eA(n){switch($z(),this.c=new Z,this.d=n,n.g){case 0:case 2:this.a=qW(Oon),this.b=St;break;case 3:case 1:this.a=Oon,this.b=li}}function g9e(n){var e;Ep(u(v(n,(cn(),Kt)),101))&&(e=n.b,nHn((Ln(0,e.c.length),u(e.c[0],30))),nHn(u(sn(e,e.c.length-1),30)))}function p9e(n,e){e.Ug("Self-Loop post-processing",1),qt(ct(ct(rc(new Tn(null,new In(n.b,16)),new s2n),new f2n),new h2n),new l2n),e.Vg()}function dRn(n,e,t){var i,r;if(n.c)eu(n.c,n.c.i+e),tu(n.c,n.c.j+t);else for(r=new C(n.b);r.a=0&&(t.d=n.t);break;case 3:n.t>=0&&(t.a=n.t)}n.C&&(t.b=n.C.b,t.c=n.C.c)}function T5(){T5=F,Nhn=new d7(Crn,0),KH=new d7(sR,1),_H=new d7("LINEAR_SEGMENTS",2),Y8=new d7("BRANDES_KOEPF",3),Z8=new d7(sVn,4)}function A5(){A5=F,fj=new hC(eS,0),wP=new hC(HB,1),gP=new hC(qB,2),hj=new hC(UB,3),fj.a=!1,wP.a=!0,gP.a=!1,hj.a=!0}function Vp(){Vp=F,uj=new fC(eS,0),cj=new fC(HB,1),oj=new fC(qB,2),sj=new fC(UB,3),uj.a=!1,cj.a=!0,oj.a=!1,sj.a=!0}function Wp(n,e,t,i){var r;return t>=0?n.Sh(e,t,i):(n.Ph()&&(i=(r=n.Fh(),r>=0?n.Ah(i):n.Ph().Th(n,-1-r,null,i))),n.Ch(e,t,i))}function fZ(n,e){switch(e){case 7:!n.e&&(n.e=new Nn(Vt,n,7,4)),me(n.e);return;case 8:!n.d&&(n.d=new Nn(Vt,n,8,5)),me(n.d);return}JY(n,e)}function ht(n,e,t){return t==null?(!n.o&&(n.o=new Iu((Cc(),il),T1,n,0)),VT(n.o,e)):(!n.o&&(n.o=new Iu((Cc(),il),T1,n,0)),Vk(n.o,e,t)),n}function pRn(n,e){Dn();var t,i,r,c;for(t=n,c=e,O(n,21)&&!O(e,21)&&(t=e,c=n),r=t.Kc();r.Ob();)if(i=r.Pb(),c.Hc(i))return!1;return!0}function j9e(n,e,t,i){if(e.at.b)return!0}return!1}function Tx(n,e){return Ai(n)?!!iQn[e]:n.Sm?!!n.Sm[e]:$b(n)?!!tQn[e]:Nb(n)?!!eQn[e]:!1}function E9e(n){var e;e=n.a;do e=u(fe(new te(re(ji(e).a.Kc(),new En))),18).c.i,e.k==(Vn(),Mi)&&n.b.Fc(e);while(e.k==(Vn(),Mi));n.b=Qo(n.b)}function mRn(n,e){var t,i,r;for(r=n,i=new te(re(ji(e).a.Kc(),new En));pe(i);)t=u(fe(i),18),t.c.i.c&&(r=y.Math.max(r,t.c.i.c.p));return r}function C9e(n,e){var t,i,r;for(r=0,i=u(u(ot(n.r,e),21),87).Kc();i.Ob();)t=u(i.Pb(),117),r+=t.d.d+t.b.Mf().b+t.d.a,i.Ob()&&(r+=n.w);return r}function M9e(n,e){var t,i,r;for(r=0,i=u(u(ot(n.r,e),21),87).Kc();i.Ob();)t=u(i.Pb(),117),r+=t.d.b+t.b.Mf().a+t.d.c,i.Ob()&&(r+=n.w);return r}function vRn(n){var e,t,i,r;if(i=0,r=aw(n),r.c.length==0)return 1;for(t=new C(r);t.a=0?n.Lh(s,t,!0):H0(n,c,t)):u(c,69).wk().yk(n,n.hi(),r,t,i)}function P9e(n,e,t,i){var r,c;c=e.pf((qe(),R2))?u(e.of(R2),21):n.j,r=d5e(c),r!=(VA(),l_)&&(t&&!tZ(r)||bnn(aMe(n,r,i),e))}function I9e(n){switch(n.g){case 1:return N0(),rj;case 3:return N0(),ij;case 2:return N0(),d_;case 4:return N0(),a_;default:return null}}function O9e(n,e,t){if(n.e)switch(n.b){case 1:yge(n.c,e,t);break;case 0:jge(n.c,e,t)}else KDn(n.c,e,t);n.a[e.p][t.p]=n.c.i,n.a[t.p][e.p]=n.c.e}function kRn(n){var e,t;if(n==null)return null;for(t=K(Qh,J,199,n.length,0,2),e=0;e=0)return r;if(n.ol()){for(i=0;i=r)throw M(new Kb(e,r));if(n.Si()&&(i=n.dd(t),i>=0&&i!=e))throw M(new Gn(Vy));return n.Xi(e,t)}function hZ(n,e){if(this.a=u(Se(n),253),this.b=u(Se(e),253),n.Ed(e)>0||n==(dD(),_K)||e==(bD(),HK))throw M(new Gn("Invalid range: "+qDn(n,e)))}function yRn(n){var e,t;for(this.b=new Z,this.c=n,this.a=!1,t=new C(n.a);t.a0),(e&-e)==e)return wi(e*to(n,31)*4656612873077393e-25);do t=to(n,31),i=t%e;while(t-i+(e-1)<0);return wi(i)}function F9e(n,e,t){switch(t.g){case 1:n.a=e.a/2,n.b=0;break;case 2:n.a=e.a,n.b=e.b/2;break;case 3:n.a=e.a/2,n.b=e.b;break;case 4:n.a=0,n.b=e.b/2}}function qk(n,e,t,i){var r,c;for(r=e;r1&&(c=L9e(n,e)),c}function CRn(n){var e;return e=$(R(z(n,(qe(),Qj))))*y.Math.sqrt((!n.a&&(n.a=new q(Qe,n,10,11)),n.a).i),new V(e,e/$(R(z(n,rO))))}function Sx(n){var e;return n.f&&n.f.Vh()&&(e=u(n.f,54),n.f=u(na(n,e),84),n.f!=e&&n.Db&4&&!(n.Db&1)&&it(n,new Ci(n,9,8,e,n.f))),n.f}function Px(n){var e;return n.i&&n.i.Vh()&&(e=u(n.i,54),n.i=u(na(n,e),84),n.i!=e&&n.Db&4&&!(n.Db&1)&&it(n,new Ci(n,9,7,e,n.i))),n.i}function br(n){var e;return n.b&&n.b.Db&64&&(e=n.b,n.b=u(na(n,e),19),n.b!=e&&n.Db&4&&!(n.Db&1)&&it(n,new Ci(n,9,21,e,n.b))),n.b}function uA(n,e){var t,i,r;n.d==null?(++n.e,++n.f):(i=e.Bi(),uTe(n,n.f+1),r=(i&et)%n.d.length,t=n.d[r],!t&&(t=n.d[r]=n.dk()),t.Fc(e),++n.f)}function dZ(n,e,t){var i;return e.tk()?!1:e.Ik()!=-2?(i=e.ik(),i==null?t==null:rt(i,t)):e.qk()==n.e.Dh()&&t==null}function oA(){var n;Co(16,$zn),n=sxn(16),this.b=K(UK,Cy,303,n,0,1),this.c=K(UK,Cy,303,n,0,1),this.a=null,this.e=null,this.i=0,this.f=n-1,this.g=0}function Tl(n){vV.call(this),this.k=(Vn(),zt),this.j=(Co(6,mw),new Gc(6)),this.b=(Co(2,mw),new Gc(2)),this.d=new sD,this.f=new nz,this.a=n}function R9e(n){var e,t;n.c.length<=1||(e=Sqn(n,(tn(),ae)),w_n(n,u(e.a,17).a,u(e.b,17).a),t=Sqn(n,Wn),w_n(n,u(t.a,17).a,u(t.b,17).a))}function K9e(n,e,t){var i,r;for(r=n.a.b,i=r.c.length;i102?-1:n<=57?n-48:n<65?-1:n<=70?n-65+10:n<97?-1:n-97+10}function Nx(n,e){if(n==null)throw M(new sp("null key in entry: null="+e));if(e==null)throw M(new sp("null value in entry: "+n+"=null"))}function q9e(n,e){for(var t,i;n.Ob();)if(!e.Ob()||(t=n.Pb(),i=e.Pb(),!(x(t)===x(i)||t!=null&&rt(t,i))))return!1;return!e.Ob()}function ARn(n,e){var t;return t=S(T(Pi,1),Tr,28,15,[Z$(n.a[0],e),Z$(n.a[1],e),Z$(n.a[2],e)]),n.d&&(t[0]=y.Math.max(t[0],t[2]),t[2]=t[0]),t}function SRn(n,e){var t;return t=S(T(Pi,1),Tr,28,15,[$T(n.a[0],e),$T(n.a[1],e),$T(n.a[2],e)]),n.d&&(t[0]=y.Math.max(t[0],t[2]),t[2]=t[0]),t}function wZ(n,e,t){Ep(u(v(e,(cn(),Kt)),101))||(PJ(n,e,h1(e,t)),PJ(n,e,h1(e,(tn(),ae))),PJ(n,e,h1(e,Xn)),Dn(),Yt(e.j,new N7n(n)))}function PRn(n){var e,t;for(n.c||sOe(n),t=new Mu,e=new C(n.a),E(e);e.a0&&(zn(0,e.length),e.charCodeAt(0)==43)?(zn(1,e.length+1),e.substr(1)):e))}function i7e(n){var e;return n==null?null:new H1((e=Fc(n,!0),e.length>0&&(zn(0,e.length),e.charCodeAt(0)==43)?(zn(1,e.length+1),e.substr(1)):e))}function pZ(n,e,t,i,r,c,s,f){var h,l;i&&(h=i.a[0],h&&pZ(n,e,t,h,r,c,s,f),qx(n,t,i.d,r,c,s,f)&&e.Fc(i),l=i.a[1],l&&pZ(n,e,t,l,r,c,s,f))}function Rg(n,e,t){try{return o0(C$(n,e,t),1)}catch(i){throw i=It(i),O(i,333)?M(new Ir(GB+n.o+"*"+n.p+zB+e+ur+t+XB)):M(i)}}function NRn(n,e,t){try{return o0(C$(n,e,t),0)}catch(i){throw i=It(i),O(i,333)?M(new Ir(GB+n.o+"*"+n.p+zB+e+ur+t+XB)):M(i)}}function $Rn(n,e,t){try{return o0(C$(n,e,t),2)}catch(i){throw i=It(i),O(i,333)?M(new Ir(GB+n.o+"*"+n.p+zB+e+ur+t+XB)):M(i)}}function xRn(n,e){if(n.g==-1)throw M(new Cu);n.Xj();try{n.d.hd(n.g,e),n.f=n.d.j}catch(t){throw t=It(t),O(t,77)?M(new Bo):M(t)}}function r7e(n){var e,t,i,r,c;for(i=new C(n.b);i.ac&&$t(e,c,null),e}function c7e(n,e){var t,i;if(i=n.gc(),e==null){for(t=0;t0&&(h+=r),l[a]=s,s+=f*(h+i)}function BRn(n){var e,t,i;for(i=n.f,n.n=K(Pi,Tr,28,i,15,1),n.d=K(Pi,Tr,28,i,15,1),e=0;e0?n.c:0),++r;n.b=i,n.d=c}function qRn(n,e){var t;return t=S(T(Pi,1),Tr,28,15,[aZ(n,(bf(),bc),e),aZ(n,Wc,e),aZ(n,wc,e)]),n.f&&(t[0]=y.Math.max(t[0],t[2]),t[2]=t[0]),t}function d7e(n,e,t){var i;try{xA(n,e+n.j,t+n.k,!1,!0)}catch(r){throw r=It(r),O(r,77)?(i=r,M(new Ir(i.g+iS+e+ur+t+")."))):M(r)}}function b7e(n,e,t){var i;try{xA(n,e+n.j,t+n.k,!0,!1)}catch(r){throw r=It(r),O(r,77)?(i=r,M(new Ir(i.g+iS+e+ur+t+")."))):M(r)}}function URn(n){var e;kt(n,(cn(),ab))&&(e=u(v(n,ab),21),e.Hc((lw(),Js))?(e.Mc(Js),e.Fc(Qs)):e.Hc(Qs)&&(e.Mc(Qs),e.Fc(Js)))}function GRn(n){var e;kt(n,(cn(),ab))&&(e=u(v(n,ab),21),e.Hc((lw(),Zs))?(e.Mc(Zs),e.Fc(Cs)):e.Hc(Cs)&&(e.Mc(Cs),e.Fc(Zs)))}function Kx(n,e,t,i){var r,c,s,f;return n.a==null&&gje(n,e),s=e.b.j.c.length,c=t.d.p,f=i.d.p,r=f-1,r<0&&(r=s-1),c<=r?n.a[r]-n.a[c]:n.a[s-1]-n.a[c]+n.a[r]}function w7e(n){var e,t;if(!n.b)for(n.b=RM(u(n.f,27).kh().i),t=new ne(u(n.f,27).kh());t.e!=t.i.gc();)e=u(ce(t),135),nn(n.b,new pD(e));return n.b}function g7e(n){var e,t;if(!n.e)for(n.e=RM(mN(u(n.f,27)).i),t=new ne(mN(u(n.f,27)));t.e!=t.i.gc();)e=u(ce(t),123),nn(n.e,new Bkn(e));return n.e}function zRn(n){var e,t;if(!n.a)for(n.a=RM(AM(u(n.f,27)).i),t=new ne(AM(u(n.f,27)));t.e!=t.i.gc();)e=u(ce(t),27),nn(n.a,new ML(n,e));return n.a}function K0(n){var e;if(!n.C&&(n.D!=null||n.B!=null))if(e=iDe(n),e)n.hl(e);else try{n.hl(null)}catch(t){if(t=It(t),!O(t,63))throw M(t)}return n.C}function p7e(n){switch(n.q.g){case 5:gKn(n,(tn(),Xn)),gKn(n,ae);break;case 4:mGn(n,(tn(),Xn)),mGn(n,ae);break;default:y_n(n,(tn(),Xn)),y_n(n,ae)}}function m7e(n){switch(n.q.g){case 5:pKn(n,(tn(),Zn)),pKn(n,Wn);break;case 4:vGn(n,(tn(),Zn)),vGn(n,Wn);break;default:j_n(n,(tn(),Zn)),j_n(n,Wn)}}function Kg(n,e){var t,i,r;for(r=new Li,i=n.Kc();i.Ob();)t=u(i.Pb(),36),Sm(t,r.a,0),r.a+=t.f.a+e,r.b=y.Math.max(r.b,t.f.b);return r.b>0&&(r.b+=e),r}function hA(n,e){var t,i,r;for(r=new Li,i=n.Kc();i.Ob();)t=u(i.Pb(),36),Sm(t,0,r.b),r.b+=t.f.b+e,r.a=y.Math.max(r.a,t.f.a);return r.a>0&&(r.a+=e),r}function XRn(n){var e,t,i;for(i=et,t=new C(n.a);t.a>16==6?n.Cb.Th(n,5,jf,e):(i=br(u($n((t=u(Un(n,16),29),t||n.ii()),n.Db>>16),19)),n.Cb.Th(n,i.n,i.f,e))}function v7e(n){O4();var e=n.e;if(e&&e.stack){var t=e.stack,i=e+` +`;return t.substring(0,i.length)==i&&(t=t.substring(i.length)),t.split(` +`)}return[]}function k7e(n){var e;return e=(Q$n(),wQn),e[n>>>28]|e[n>>24&15]<<4|e[n>>20&15]<<8|e[n>>16&15]<<12|e[n>>12&15]<<16|e[n>>8&15]<<20|e[n>>4&15]<<24|e[n&15]<<28}function JRn(n){var e,t,i;n.b==n.c&&(i=n.a.length,t=QQ(y.Math.max(8,i))<<1,n.b!=0?(e=$s(n.a,t),axn(n,e,i),n.a=e,n.b=0):Pb(n.a,t),n.c=i)}function y7e(n,e){var t;return t=n.b,t.pf((qe(),oo))?t.ag()==(tn(),Wn)?-t.Mf().a-$(R(t.of(oo))):e+$(R(t.of(oo))):t.ag()==(tn(),Wn)?-t.Mf().a:e}function Gk(n){var e;return n.b.c.length!=0&&u(sn(n.b,0),72).a?u(sn(n.b,0),72).a:(e=vN(n),e??""+(n.c?qr(n.c.a,n,0):-1))}function lA(n){var e;return n.f.c.length!=0&&u(sn(n.f,0),72).a?u(sn(n.f,0),72).a:(e=vN(n),e??""+(n.i?qr(n.i.j,n,0):-1))}function j7e(n,e){var t,i;if(e<0||e>=n.gc())return null;for(t=e;t0?n.c:0),r=y.Math.max(r,e.d),++i;n.e=c,n.b=r}function C7e(n){var e,t;if(!n.b)for(n.b=RM(u(n.f,123).kh().i),t=new ne(u(n.f,123).kh());t.e!=t.i.gc();)e=u(ce(t),135),nn(n.b,new pD(e));return n.b}function M7e(n,e){var t,i,r;if(e.dc())return m4(),m4(),aE;for(t=new LAn(n,e.gc()),r=new ne(n);r.e!=r.i.gc();)i=ce(r),e.Hc(i)&&ve(t,i);return t}function yZ(n,e,t,i){return e==0?i?(!n.o&&(n.o=new Iu((Cc(),il),T1,n,0)),n.o):(!n.o&&(n.o=new Iu((Cc(),il),T1,n,0)),uk(n.o)):tA(n,e,t,i)}function Hx(n){var e,t;if(n.rb)for(e=0,t=n.rb.i;e>22),r+=i>>22,r<0)?!1:(n.l=t&ro,n.m=i&ro,n.h=r&Il,!0)}function qx(n,e,t,i,r,c,s){var f,h;return!(e.Te()&&(h=n.a.Ne(t,i),h<0||!r&&h==0)||e.Ue()&&(f=n.a.Ne(t,c),f>0||!s&&f==0))}function P7e(n,e){cm();var t;if(t=n.j.g-e.j.g,t!=0)return 0;switch(n.j.g){case 2:return fx(e,Csn)-fx(n,Csn);case 4:return fx(n,Esn)-fx(e,Esn)}return 0}function I7e(n){switch(n.g){case 0:return Z_;case 1:return nH;case 2:return eH;case 3:return tH;case 4:return JP;case 5:return iH;default:return null}}function $r(n,e,t){var i,r;return i=(r=new lD,ad(r,e),zc(r,t),ve((!n.c&&(n.c=new q(yb,n,12,10)),n.c),r),r),e1(i,0),Zb(i,1),u1(i,!0),c1(i,!0),i}function Jp(n,e){var t,i;if(e>=n.i)throw M(new aL(e,n.i));return++n.j,t=n.g[e],i=n.i-e-1,i>0&&Ic(n.g,e+1,n.g,e,i),$t(n.g,--n.i,null),n.Qi(e,t),n.Ni(),t}function QRn(n,e){var t,i;return n.Db>>16==17?n.Cb.Th(n,21,Ts,e):(i=br(u($n((t=u(Un(n,16),29),t||n.ii()),n.Db>>16),19)),n.Cb.Th(n,i.n,i.f,e))}function O7e(n){var e,t,i,r;for(Dn(),Yt(n.c,n.a),r=new C(n.c);r.at.a.c.length))throw M(new Gn("index must be >= 0 and <= layer node count"));n.c&&du(n.c.a,n),n.c=t,t&&b0(t.a,e,n)}function tKn(n,e){var t,i,r;for(i=new te(re(Cl(n).a.Kc(),new En));pe(i);)return t=u(fe(i),18),r=u(e.Kb(t),10),new TE(Se(r.n.b+r.o.b/2));return n6(),n6(),KK}function iKn(n,e){this.c=new de,this.a=n,this.b=e,this.d=u(v(n,(W(),j2)),312),x(v(n,(cn(),shn)))===x((hk(),QP))?this.e=new Yyn:this.e=new Qyn}function P5(n,e){var t,i;return i=null,n.pf((qe(),$3))&&(t=u(n.of($3),96),t.pf(e)&&(i=t.of(e))),i==null&&n.Tf()&&(i=n.Tf().of(e)),i==null&&(i=rn(e)),i}function Ux(n,e){var t,i;t=n.fd(e);try{return i=t.Pb(),t.Qb(),i}catch(r){throw r=It(r),O(r,112)?M(new Ir("Can't remove element "+e)):M(r)}}function R7e(n,e){var t,i,r;if(i=new JE,r=new nY(i.q.getFullYear()-fa,i.q.getMonth(),i.q.getDate()),t=JPe(n,e,r),t==0||t0?e:0),++t;return new V(i,r)}function TZ(n,e){var t,i;return n.Db>>16==6?n.Cb.Th(n,6,Vt,e):(i=br(u($n((t=u(Un(n,16),29),t||(Cc(),bO)),n.Db>>16),19)),n.Cb.Th(n,i.n,i.f,e))}function AZ(n,e){var t,i;return n.Db>>16==7?n.Cb.Th(n,1,oE,e):(i=br(u($n((t=u(Un(n,16),29),t||(Cc(),Pdn)),n.Db>>16),19)),n.Cb.Th(n,i.n,i.f,e))}function SZ(n,e){var t,i;return n.Db>>16==9?n.Cb.Th(n,9,Qe,e):(i=br(u($n((t=u(Un(n,16),29),t||(Cc(),Odn)),n.Db>>16),19)),n.Cb.Th(n,i.n,i.f,e))}function uKn(n,e){var t,i;return n.Db>>16==5?n.Cb.Th(n,9,EO,e):(i=br(u($n((t=u(Un(n,16),29),t||(On(),S1)),n.Db>>16),19)),n.Cb.Th(n,i.n,i.f,e))}function oKn(n,e){var t,i;return n.Db>>16==7?n.Cb.Th(n,6,jf,e):(i=br(u($n((t=u(Un(n,16),29),t||(On(),I1)),n.Db>>16),19)),n.Cb.Th(n,i.n,i.f,e))}function PZ(n,e){var t,i;return n.Db>>16==3?n.Cb.Th(n,0,fE,e):(i=br(u($n((t=u(Un(n,16),29),t||(On(),A1)),n.Db>>16),19)),n.Cb.Th(n,i.n,i.f,e))}function sKn(){this.a=new dvn,this.g=new oA,this.j=new oA,this.b=new de,this.d=new oA,this.i=new oA,this.k=new de,this.c=new de,this.e=new de,this.f=new de}function H7e(n,e,t){var i,r,c;for(t<0&&(t=0),c=n.i,r=t;rPB)return mm(n,i);if(i==n)return!0}}return!1}function U7e(n){switch(KC(),n.q.g){case 5:U_n(n,(tn(),Xn)),U_n(n,ae);break;case 4:GHn(n,(tn(),Xn)),GHn(n,ae);break;default:VGn(n,(tn(),Xn)),VGn(n,ae)}}function G7e(n){switch(KC(),n.q.g){case 5:fHn(n,(tn(),Zn)),fHn(n,Wn);break;case 4:bRn(n,(tn(),Zn)),bRn(n,Wn);break;default:WGn(n,(tn(),Zn)),WGn(n,Wn)}}function z7e(n){var e,t;e=u(v(n,(qs(),nZn)),17),e?(t=e.a,t==0?U(n,(J1(),jP),new dx):U(n,(J1(),jP),new qM(t))):U(n,(J1(),jP),new qM(1))}function X7e(n,e){var t;switch(t=n.i,e.g){case 1:return-(n.n.b+n.o.b);case 2:return n.n.a-t.o.a;case 3:return n.n.b-t.o.b;case 4:return-(n.n.a+n.o.a)}return 0}function V7e(n,e){switch(n.g){case 0:return e==(Yo(),ka)?HP:qP;case 1:return e==(Yo(),ka)?HP:wj;case 2:return e==(Yo(),ka)?wj:qP;default:return wj}}function Xk(n,e){var t,i,r;for(du(n.a,e),n.e-=e.r+(n.a.c.length==0?0:n.c),r=Frn,i=new C(n.a);i.a>16==3?n.Cb.Th(n,12,Qe,e):(i=br(u($n((t=u(Un(n,16),29),t||(Cc(),Sdn)),n.Db>>16),19)),n.Cb.Th(n,i.n,i.f,e))}function OZ(n,e){var t,i;return n.Db>>16==11?n.Cb.Th(n,10,Qe,e):(i=br(u($n((t=u(Un(n,16),29),t||(Cc(),Idn)),n.Db>>16),19)),n.Cb.Th(n,i.n,i.f,e))}function fKn(n,e){var t,i;return n.Db>>16==10?n.Cb.Th(n,11,Ts,e):(i=br(u($n((t=u(Un(n,16),29),t||(On(),P1)),n.Db>>16),19)),n.Cb.Th(n,i.n,i.f,e))}function hKn(n,e){var t,i;return n.Db>>16==10?n.Cb.Th(n,12,As,e):(i=br(u($n((t=u(Un(n,16),29),t||(On(),ig)),n.Db>>16),19)),n.Cb.Th(n,i.n,i.f,e))}function ws(n){var e;return!(n.Bb&1)&&n.r&&n.r.Vh()&&(e=u(n.r,54),n.r=u(na(n,e),142),n.r!=e&&n.Db&4&&!(n.Db&1)&&it(n,new Ci(n,9,8,e,n.r))),n.r}function Gx(n,e,t){var i;return i=S(T(Pi,1),Tr,28,15,[inn(n,(bf(),bc),e,t),inn(n,Wc,e,t),inn(n,wc,e,t)]),n.f&&(i[0]=y.Math.max(i[0],i[2]),i[2]=i[0]),i}function W7e(n,e){var t,i,r;if(r=v9e(n,e),r.c.length!=0)for(Yt(r,new Pgn),t=r.c.length,i=0;i>19,l=e.h>>19,h!=l?l-h:(r=n.h,f=e.h,r!=f?r-f:(i=n.m,s=e.m,i!=s?i-s:(t=n.l,c=e.l,t-c)))}function aA(){aA=F,Xun=(NA(),f_),zun=new Mn(Otn,Xun),Gun=(cT(),s_),Uun=new Mn(Dtn,Gun),qun=(YT(),o_),Hun=new Mn(Ltn,qun),_un=new Mn(Ntn,(_n(),!0))}function I5(n,e,t){var i,r;i=e*t,O(n.g,154)?(r=xp(n),r.f.d?r.f.a||(n.d.a+=i+Kf):(n.d.d-=i+Kf,n.d.a+=i+Kf)):O(n.g,10)&&(n.d.d-=i,n.d.a+=2*i)}function lKn(n,e,t){var i,r,c,s,f;for(r=n[t.g],f=new C(e.d);f.a0?n.b:0),++t;e.b=i,e.e=r}function aKn(n){var e,t,i;if(i=n.b,iCn(n.i,i.length)){for(t=i.length*2,n.b=K(UK,Cy,303,t,0,1),n.c=K(UK,Cy,303,t,0,1),n.f=t-1,n.i=0,e=n.a;e;e=e.c)ty(n,e,e);++n.g}}function tke(n,e,t,i){var r,c,s,f;for(r=0;rs&&(f=s/i),r>c&&(h=c/r),rh(n,y.Math.min(f,h)),n}function rke(){KA();var n,e;try{if(e=u(HZ((R1(),Ss),tv),2113),e)return e}catch(t){if(t=It(t),O(t,103))n=t,OW((Ie(),n));else throw M(t)}return new fvn}function cke(){KA();var n,e;try{if(e=u(HZ((R1(),Ss),vs),2040),e)return e}catch(t){if(t=It(t),O(t,103))n=t,OW((Ie(),n));else throw M(t)}return new $vn}function uke(){jNn();var n,e;try{if(e=u(HZ((R1(),Ss),Sd),2122),e)return e}catch(t){if(t=It(t),O(t,103))n=t,OW((Ie(),n));else throw M(t)}return new S6n}function oke(n,e,t){var i,r;return r=n.e,n.e=e,n.Db&4&&!(n.Db&1)&&(i=new Ci(n,1,4,r,e),t?t.nj(i):t=i),r!=e&&(e?t=Nm(n,MA(n,e),t):t=Nm(n,n.a,t)),t}function dKn(){JE.call(this),this.e=-1,this.a=!1,this.p=Wi,this.k=-1,this.c=-1,this.b=-1,this.g=!1,this.f=-1,this.j=-1,this.n=-1,this.i=-1,this.d=-1,this.o=Wi}function ske(n,e){var t,i,r;if(i=n.b.d.d,n.a||(i+=n.b.d.a),r=e.b.d.d,e.a||(r+=e.b.d.a),t=bt(i,r),t==0){if(!n.a&&e.a)return-1;if(!e.a&&n.a)return 1}return t}function fke(n,e){var t,i,r;if(i=n.b.b.d,n.a||(i+=n.b.b.a),r=e.b.b.d,e.a||(r+=e.b.b.a),t=bt(i,r),t==0){if(!n.a&&e.a)return-1;if(!e.a&&n.a)return 1}return t}function hke(n,e){var t,i,r;if(i=n.b.g.d,n.a||(i+=n.b.g.a),r=e.b.g.d,e.a||(r+=e.b.g.a),t=bt(i,r),t==0){if(!n.a&&e.a)return-1;if(!e.a&&n.a)return 1}return t}function LZ(){LZ=F,mZn=Pu(Re(Re(Re(new ii,(Vi(),Kc),(tr(),fsn)),Kc,hsn),zr,lsn),zr,Yon),kZn=Re(Re(new ii,Kc,Gon),Kc,Zon),vZn=Pu(new ii,zr,esn)}function lke(n){var e,t,i,r,c;for(e=u(v(n,(W(),H8)),85),c=n.n,i=e.Cc().Kc();i.Ob();)t=u(i.Pb(),314),r=t.i,r.c+=c.a,r.d+=c.b,t.c?Dqn(t):Lqn(t);U(n,H8,null)}function ake(n,e,t){var i,r;switch(r=n.b,i=r.d,e.g){case 1:return-i.d-t;case 2:return r.o.a+i.c+t;case 3:return r.o.b+i.a+t;case 4:return-i.b-t;default:return-1}}function dke(n,e,t){var i,r;for(t.Ug("Interactive node placement",1),n.a=u(v(e,(W(),j2)),312),r=new C(e.b);r.a0&&(s=(c&et)%n.d.length,r=xnn(n,s,c,e),r)?(f=r.nd(t),f):(i=n.ck(c,e,t),n.c.Fc(i),null)}function xZ(n,e){var t,i,r,c;switch(r1(n,e).Kl()){case 3:case 2:{for(t=Wg(e),r=0,c=t.i;r=0;i--)if(An(n[i].d,e)||An(n[i].d,t)){n.length>=i+1&&n.splice(0,i+1);break}return n}function Wk(n,e){var t;return Vr(n)&&Vr(e)&&(t=n/e,Ay0&&(n.b+=2,n.a+=i):(n.b+=1,n.a+=y.Math.min(i,r))}function kKn(n){var e;e=u(v(u(Zo(n.b,0),40),(lc(),Iln)),107),U(n,(pt(),Dv),new V(0,0)),lUn(new rk,n,e.b+e.c-$(R(v(n,rq))),e.d+e.a-$(R(v(n,cq))))}function yKn(n,e){var t,i;if(i=!1,Ai(e)&&(i=!0,Ip(n,new qb(Oe(e)))),i||O(e,242)&&(i=!0,Ip(n,(t=IV(u(e,242)),new AE(t)))),!i)throw M(new vD(Lcn))}function Ike(n,e,t,i){var r,c,s;return r=new ml(n.e,1,10,(s=e.c,O(s,90)?u(s,29):(On(),Ps)),(c=t.c,O(c,90)?u(c,29):(On(),Ps)),f1(n,e),!1),i?i.nj(r):i=r,i}function RZ(n){var e,t;switch(u(v(Hi(n),(cn(),ehn)),429).g){case 0:return e=n.n,t=n.o,new V(e.a+t.a/2,e.b+t.b/2);case 1:return new rr(n.n);default:return null}}function Jk(){Jk=F,YP=new m6(kh,0),Ksn=new m6("LEFTUP",1),Hsn=new m6("RIGHTUP",2),Rsn=new m6("LEFTDOWN",3),_sn=new m6("RIGHTDOWN",4),rH=new m6("BALANCED",5)}function Oke(n,e,t){var i,r,c;if(i=bt(n.a[e.p],n.a[t.p]),i==0){if(r=u(v(e,(W(),T3)),15),c=u(v(t,T3),15),r.Hc(t))return-1;if(c.Hc(e))return 1}return i}function Dke(n){switch(n.g){case 1:return new U4n;case 2:return new G4n;case 3:return new q4n;case 0:return null;default:throw M(new Gn(GR+(n.f!=null?n.f:""+n.g)))}}function KZ(n,e,t){switch(e){case 1:!n.n&&(n.n=new q(Ar,n,1,7)),me(n.n),!n.n&&(n.n=new q(Ar,n,1,7)),Bt(n.n,u(t,16));return;case 2:X4(n,Oe(t));return}uY(n,e,t)}function _Z(n,e,t){switch(e){case 3:P0(n,$(R(t)));return;case 4:I0(n,$(R(t)));return;case 5:eu(n,$(R(t)));return;case 6:tu(n,$(R(t)));return}KZ(n,e,t)}function dA(n,e,t){var i,r,c;c=(i=new lD,i),r=Ff(c,e,null),r&&r.oj(),zc(c,t),ve((!n.c&&(n.c=new q(yb,n,12,10)),n.c),c),e1(c,0),Zb(c,1),u1(c,!0),c1(c,!0)}function HZ(n,e){var t,i,r;return t=d6(n.i,e),O(t,241)?(r=u(t,241),r.zi()==null,r.wi()):O(t,507)?(i=u(t,2037),r=i.b,r):null}function Lke(n,e,t,i){var r,c;return Se(e),Se(t),c=u(x6(n.d,e),17),VNn(!!c,"Row %s not in %s",e,n.e),r=u(x6(n.b,t),17),VNn(!!r,"Column %s not in %s",t,n.c),cFn(n,c.a,r.a,i)}function jKn(n,e,t,i,r,c,s){var f,h,l,a,d;if(a=r[c],l=c==s-1,f=l?i:0,d=_Rn(f,a),i!=10&&S(T(n,s-c),e[c],t[c],f,d),!l)for(++c,h=0;h1||f==-1?(c=u(h,15),r.Wb(g8e(n,c))):r.Wb(IF(n,u(h,58)))))}function Kke(n,e,t,i){DEn();var r=RK;function c(){for(var s=0;s0)return!1;return!0}function qke(n){var e,t,i,r,c;for(i=new sd(new qa(n.b).a);i.b;)t=L0(i),e=u(t.ld(),10),c=u(u(t.md(),42).a,10),r=u(u(t.md(),42).b,8),tt(sf(e.n),tt(Ki(c.n),r))}function Uke(n){switch(u(v(n.b,(cn(),Vfn)),387).g){case 1:qt(_r(rc(new Tn(null,new In(n.d,16)),new ypn),new jpn),new Epn);break;case 2:RAe(n);break;case 0:pEe(n)}}function Gke(n,e,t){var i,r,c;for(i=t,!i&&(i=new up),i.Ug("Layout",n.a.c.length),c=new C(n.a);c.a_R)return t;r>-1e-6&&++t}return t}function UZ(n,e){var t;e!=n.b?(t=null,n.b&&(t=OM(n.b,n,-4,t)),e&&(t=Wp(e,n,-4,t)),t=YFn(n,e,t),t&&t.oj()):n.Db&4&&!(n.Db&1)&&it(n,new Ci(n,1,3,e,e))}function MKn(n,e){var t;e!=n.f?(t=null,n.f&&(t=OM(n.f,n,-1,t)),e&&(t=Wp(e,n,-1,t)),t=QFn(n,e,t),t&&t.oj()):n.Db&4&&!(n.Db&1)&&it(n,new Ci(n,1,0,e,e))}function Wke(n,e,t,i){var r,c,s,f;return fo(n.e)&&(r=e.Lk(),f=e.md(),c=t.md(),s=X1(n,1,r,f,c,r.Jk()?Om(n,r,c,O(r,102)&&(u(r,19).Bb&hr)!=0):-1,!0),i?i.nj(s):i=s),i}function TKn(n){var e,t,i;if(n==null)return null;if(t=u(n,15),t.dc())return"";for(i=new Hl,e=t.Kc();e.Ob();)Er(i,(at(),Oe(e.Pb()))),i.a+=" ";return bL(i,i.a.length-1)}function AKn(n){var e,t,i;if(n==null)return null;if(t=u(n,15),t.dc())return"";for(i=new Hl,e=t.Kc();e.Ob();)Er(i,(at(),Oe(e.Pb()))),i.a+=" ";return bL(i,i.a.length-1)}function Jke(n,e,t){var i,r;return i=n.c[e.c.p][e.p],r=n.c[t.c.p][t.p],i.a!=null&&r.a!=null?tN(i.a,r.a):i.a!=null?-1:r.a!=null?1:0}function Qke(n,e,t){return t.Ug("Tree layout",1),U7(n.b),ff(n.b,(Qp(),LI),LI),ff(n.b,c9,c9),ff(n.b,u9,u9),ff(n.b,o9,o9),n.a=gy(n.b,e),Gke(n,e,t.eh(1)),t.Vg(),e}function Yke(n,e){var t,i,r,c,s,f;if(e)for(c=e.a.length,t=new Ja(c),f=(t.b-t.a)*t.c<0?(K1(),$a):new q1(t);f.Ob();)s=u(f.Pb(),17),r=L4(e,s.a),i=new Vkn(n),uge(i.a,r)}function Zke(n,e){var t,i,r,c,s,f;if(e)for(c=e.a.length,t=new Ja(c),f=(t.b-t.a)*t.c<0?(K1(),$a):new q1(t);f.Ob();)s=u(f.Pb(),17),r=L4(e,s.a),i=new Rkn(n),cge(i.a,r)}function nye(n){var e;if(n!=null&&n.length>0&&Xi(n,n.length-1)==33)try{return e=$Hn(qo(n,0,n.length-1)),e.e==null}catch(t){if(t=It(t),!O(t,33))throw M(t)}return!1}function eye(n,e,t){var i,r,c;switch(i=Hi(e),r=KT(i),c=new Pc,ic(c,e),t.g){case 1:gi(c,Bk(zp(r)));break;case 2:gi(c,zp(r))}return U(c,(cn(),Kw),R(v(n,Kw))),c}function GZ(n){var e,t;return e=u(fe(new te(re(ji(n.a).a.Kc(),new En))),18),t=u(fe(new te(re(Qt(n.a).a.Kc(),new En))),18),on(un(v(e,(W(),Gf))))||on(un(v(t,Gf)))}function ow(){ow=F,gj=new h7("ONE_SIDE",0),zP=new h7("TWO_SIDES_CORNER",1),XP=new h7("TWO_SIDES_OPPOSING",2),GP=new h7("THREE_SIDES",3),UP=new h7("FOUR_SIDES",4)}function SKn(n,e){var t,i,r,c;for(c=new Z,r=0,i=e.Kc();i.Ob();){for(t=Y(u(i.Pb(),17).a+r);t.a=n.f)break;Bn(c.c,t)}return c}function tye(n,e){var t,i,r,c,s;for(c=new C(e.a);c.a0&&YRn(this,this.c-1,(tn(),Zn)),this.c0&&n[0].length>0&&(this.c=on(un(v(Hi(n[0][0]),(W(),ifn))))),this.a=K(jie,J,2117,n.length,0,2),this.b=K(Eie,J,2118,n.length,0,2),this.d=new zFn}function oye(n){return n.c.length==0?!1:(Ln(0,n.c.length),u(n.c[0],18)).c.i.k==(Vn(),Mi)?!0:Ig(_r(new Tn(null,new In(n,16)),new t3n),new i3n)}function OKn(n,e){var t,i,r,c,s,f,h;for(f=aw(e),c=e.f,h=e.g,s=y.Math.sqrt(c*c+h*h),r=0,i=new C(f);i.a=0?(t=Wk(n,QA),i=Kk(n,QA)):(e=U1(n,1),t=Wk(e,5e8),i=Kk(e,5e8),i=nr(Fs(i,1),vi(n,1))),hf(Fs(i,32),vi(t,mr))}function NKn(n,e,t){var i,r;switch(i=(oe(e.b!=0),u(Xo(e,e.a.a),8)),t.g){case 0:i.b=0;break;case 2:i.b=n.f;break;case 3:i.a=0;break;default:i.a=n.g}return r=ge(e,0),q7(r,i),e}function $Kn(n,e,t,i){var r,c,s,f,h;switch(h=n.b,c=e.d,s=c.j,f=sZ(s,h.d[s.g],t),r=tt(Ki(c.n),c.a),c.j.g){case 1:case 3:f.a+=r.a;break;case 2:case 4:f.b+=r.b}xt(i,f,i.c.b,i.c)}function vye(n,e,t){var i,r,c,s;for(s=qr(n.e,e,0),c=new QG,c.b=t,i=new xi(n.e,s);i.b1;e>>=1)e&1&&(i=Pg(i,t)),t.d==1?t=Pg(t,t):t=new QBn(pUn(t.a,t.d,K(ye,Ke,28,t.d<<1,15,1)));return i=Pg(i,t),i}function nnn(){nnn=F;var n,e,t,i;for(Lun=K(Pi,Tr,28,25,15,1),Nun=K(Pi,Tr,28,33,15,1),i=152587890625e-16,e=32;e>=0;e--)Nun[e]=i,i*=.5;for(t=1,n=24;n>=0;n--)Lun[n]=t,t*=.5}function Mye(n){var e,t;if(on(un(z(n,(cn(),Rw))))){for(t=new te(re(Al(n).a.Kc(),new En));pe(t);)if(e=u(fe(t),74),_0(e)&&on(un(z(e,Nd))))return!0}return!1}function xKn(n,e){var t,i,r;fi(n.f,e)&&(e.b=n,i=e.c,qr(n.j,i,0)!=-1||nn(n.j,i),r=e.d,qr(n.j,r,0)!=-1||nn(n.j,r),t=e.a.b,t.c.length!=0&&(!n.i&&(n.i=new iRn(n)),Ive(n.i,t)))}function Tye(n){var e,t,i,r,c;return t=n.c.d,i=t.j,r=n.d.d,c=r.j,i==c?t.p=0&&An(n.substr(e,3),"GMT")||e>=0&&An(n.substr(e,3),"UTC"))&&(t[0]=e+3),Len(n,t,i)}function Sye(n,e){var t,i,r,c,s;for(c=n.g.a,s=n.g.b,i=new C(n.d);i.at;c--)n[c]|=e[c-t-1]>>>s,n[c-1]=e[c-t-1]<0&&Ic(n.g,e,n.g,e+i,f),s=t.Kc(),n.i+=i,r=0;r>4&15,c=n[i]&15,s[r++]=Ddn[t],s[r++]=Ddn[c];return hh(s,0,s.length)}function wu(n){var e,t;return n>=hr?(e=Sy+(n-hr>>10&1023)&ui,t=56320+(n-hr&1023)&ui,String.fromCharCode(e)+(""+String.fromCharCode(t))):String.fromCharCode(n&ui)}function Rye(n,e){Bb();var t,i,r,c;return r=u(u(ot(n.r,e),21),87),r.gc()>=2?(i=u(r.Kc().Pb(),117),t=n.u.Hc((zu(),P9)),c=n.u.Hc(B3),!i.a&&!t&&(r.gc()==2||c)):!1}function RKn(n,e,t,i,r){var c,s,f;for(c=Cqn(n,e,t,i,r),f=!1;!c;)EA(n,r,!0),f=!0,c=Cqn(n,e,t,i,r);f&&EA(n,r,!1),s=B$(r),s.c.length!=0&&(n.d&&n.d.Gg(s),RKn(n,r,t,i,s))}function pA(){pA=F,dU=new j6(kh,0),tdn=new j6("DIRECTED",1),rdn=new j6("UNDIRECTED",2),ndn=new j6("ASSOCIATION",3),idn=new j6("GENERALIZATION",4),edn=new j6("DEPENDENCY",5)}function Kye(n,e){var t;if(!Af(n))throw M(new Or(eWn));switch(t=Af(n),e.g){case 1:return-(n.j+n.f);case 2:return n.i-t.g;case 3:return n.j-t.f;case 4:return-(n.i+n.g)}return 0}function _ye(n,e,t){var i,r,c;return i=e.Lk(),c=e.md(),r=i.Jk()?X1(n,4,i,c,null,Om(n,i,c,O(i,102)&&(u(i,19).Bb&hr)!=0),!0):X1(n,i.tk()?2:1,i,c,i.ik(),-1,!0),t?t.nj(r):t=r,t}function ym(n,e){var t,i;for(Jn(e),i=n.b.c.length,nn(n.b,e);i>0;){if(t=i,i=(i-1)/2|0,n.a.Ne(sn(n.b,i),e)<=0)return Go(n.b,t,e),!0;Go(n.b,t,sn(n.b,i))}return Go(n.b,i,e),!0}function inn(n,e,t,i){var r,c;if(r=0,t)r=$T(n.a[t.g][e.g],i);else for(c=0;c=f)}function KKn(n){switch(n.g){case 0:return new cmn;case 1:return new umn;default:throw M(new Gn("No implementation is available for the width approximator "+(n.f!=null?n.f:""+n.g)))}}function rnn(n,e,t,i){var r;if(r=!1,Ai(i)&&(r=!0,j4(e,t,Oe(i))),r||Nb(i)&&(r=!0,rnn(n,e,t,i)),r||O(i,242)&&(r=!0,nd(e,t,u(i,242))),!r)throw M(new vD(Lcn))}function qye(n,e){var t,i,r;if(t=e.qi(n.a),t&&(r=wf((!t.b&&(t.b=new lo((On(),ar),pc,t)),t.b),ms),r!=null)){for(i=1;i<(Du(),t0n).length;++i)if(An(t0n[i],r))return i}return 0}function Uye(n,e){var t,i,r;if(t=e.qi(n.a),t&&(r=wf((!t.b&&(t.b=new lo((On(),ar),pc,t)),t.b),ms),r!=null)){for(i=1;i<(Du(),i0n).length;++i)if(An(i0n[i],r))return i}return 0}function _Kn(n,e){var t,i,r,c;if(Jn(e),c=n.a.gc(),c0?1:0;c.a[r]!=t;)c=c.a[r],r=n.a.Ne(t.d,c.d)>0?1:0;c.a[r]=i,i.b=t.b,i.a[0]=t.a[0],i.a[1]=t.a[1],t.a[0]=null,t.a[1]=null}function Xye(n){var e,t,i,r;for(e=new Z,t=K(so,Xh,28,n.a.c.length,16,1),TW(t,t.length),r=new C(n.a);r.a0&&dUn((Ln(0,t.c.length),u(t.c[0],30)),n),t.c.length>1&&dUn(u(sn(t,t.c.length-1),30),n),e.Vg()}function Wye(n){zu();var e,t;return e=yt(Fl,S(T(oO,1),G,279,0,[Pa])),!(jk(LM(e,n))>1||(t=yt(P9,S(T(oO,1),G,279,0,[S9,B3])),jk(LM(t,n))>1))}function unn(n,e){var t;t=Nc((R1(),Ss),n),O(t,507)?Dr(Ss,n,new LMn(this,e)):Dr(Ss,n,this),tF(this,e),e==(o4(),Udn)?(this.wb=u(this,2038),u(e,2040)):this.wb=(G1(),Hn)}function Jye(n){var e,t,i;if(n==null)return null;for(e=null,t=0;t=d1?"error":i>=900?"warn":i>=800?"info":"log"),nIn(t,n.a),n.b&&sen(e,t,n.b,"Exception: ",!0))}function v(n,e){var t,i;return i=(!n.q&&(n.q=new de),ee(n.q,e)),i??(t=e.Sg(),O(t,4)&&(t==null?(!n.q&&(n.q=new de),Bp(n.q,e)):(!n.q&&(n.q=new de),Xe(n.q,e,t))),t)}function Vi(){Vi=F,Xs=new f7("P1_CYCLE_BREAKING",0),Jh=new f7("P2_LAYERING",1),Oc=new f7("P3_NODE_ORDERING",2),Kc=new f7("P4_NODE_PLACEMENT",3),zr=new f7("P5_EDGE_ROUTING",4)}function Qye(n,e){r5();var t;if(n.c==e.c){if(n.b==e.b||rve(n.b,e.b)){if(t=Ple(n.b)?1:-1,n.a&&!e.a)return t;if(!n.a&&e.a)return-t}return jc(n.b.g,e.b.g)}else return bt(n.c,e.c)}function zKn(n,e){var t,i,r;if(snn(n,e))return!0;for(i=new C(e);i.a=r||e<0)throw M(new Ir(vK+e+Td+r));if(t>=r||t<0)throw M(new Ir(kK+t+Td+r));return e!=t?i=(c=n.Cj(t),n.qj(e,c),c):i=n.xj(t),i}function WKn(n){var e,t,i;if(i=n,n)for(e=0,t=n.Eh();t;t=t.Eh()){if(++e>PB)return WKn(t);if(i=t,t==n)throw M(new Or("There is a cycle in the containment hierarchy of "+n))}return i}function ra(n){var e,t,i;for(i=new fd(ur,"[","]"),t=n.Kc();t.Ob();)e=t.Pb(),pl(i,x(e)===x(n)?"(this Collection)":e==null?gu:Jr(e));return i.a?i.e.length==0?i.a.a:i.a.a+(""+i.e):i.c}function snn(n,e){var t,i;if(i=!1,e.gc()<2)return!1;for(t=0;t1&&(n.j.b+=n.e)):(n.j.a+=t.a,n.j.b=y.Math.max(n.j.b,t.b),n.d.c.length>1&&(n.j.a+=n.e))}function ca(){ca=F,une=S(T(lr,1),Mc,64,0,[(tn(),Xn),Zn,ae]),cne=S(T(lr,1),Mc,64,0,[Zn,ae,Wn]),one=S(T(lr,1),Mc,64,0,[ae,Wn,Xn]),sne=S(T(lr,1),Mc,64,0,[Wn,Xn,Zn])}function Zye(n,e,t,i){var r,c,s,f,h,l,a;if(s=n.c.d,f=n.d.d,s.j!=f.j)for(a=n.b,r=s.j,h=null;r!=f.j;)h=e==0?RT(r):SY(r),c=sZ(r,a.d[r.g],t),l=sZ(h,a.d[h.g],t),xe(i,tt(c,l)),r=h}function nje(n,e,t,i){var r,c,s,f,h;return s=ZRn(n.a,e,t),f=u(s.a,17).a,c=u(s.b,17).a,i&&(h=u(v(e,(W(),Xu)),10),r=u(v(t,Xu),10),h&&r&&(KDn(n.b,h,r),f+=n.b.i,c+=n.b.e)),f>c}function QKn(n){var e,t,i,r,c,s,f,h,l;for(this.a=kRn(n),this.b=new Z,t=n,i=0,r=t.length;iOL(n.d).c?(n.i+=n.g.c,px(n.d)):OL(n.d).c>OL(n.g).c?(n.e+=n.d.c,px(n.g)):(n.i+=sPn(n.g),n.e+=sPn(n.d),px(n.g),px(n.d))}function rje(n,e,t){var i,r,c,s;for(c=e.q,s=e.r,new ed((lf(),ja),e,c,1),new ed(ja,c,s,1),r=new C(t);r.af&&(h=f/i),r>c&&(l=c/r),s=y.Math.min(h,l),n.a+=s*(e.a-n.a),n.b+=s*(e.b-n.b)}function sje(n,e,t,i,r){var c,s;for(s=!1,c=u(sn(t.b,0),27);FPe(n,e,c,i,r)&&(s=!0,Bke(t,c),t.b.c.length!=0);)c=u(sn(t.b,0),27);return t.b.c.length==0&&Xk(t.j,t),s&&fA(e.q),s}function fje(n,e){Xg();var t,i,r,c;if(e.b<2)return!1;for(c=ge(e,0),t=u(be(c),8),i=t;c.b!=c.d.c;){if(r=u(be(c),8),mF(n,i,r))return!0;i=r}return!!mF(n,i,t)}function hnn(n,e,t,i){var r,c;return t==0?(!n.o&&(n.o=new Iu((Cc(),il),T1,n,0)),UC(n.o,e,i)):(c=u($n((r=u(Un(n,16),29),r||n.ii()),t),69),c.wk().Ak(n,iu(n),t-se(n.ii()),e,i))}function tF(n,e){var t;e!=n.sb?(t=null,n.sb&&(t=u(n.sb,54).Th(n,1,D9,t)),e&&(t=u(e,54).Rh(n,1,D9,t)),t=jY(n,e,t),t&&t.oj()):n.Db&4&&!(n.Db&1)&&it(n,new Ci(n,1,4,e,e))}function hje(n,e){var t,i,r,c;if(e)r=yl(e,"x"),t=new Gkn(n),_4(t.a,(Jn(r),r)),c=yl(e,"y"),i=new zkn(n),q4(i.a,(Jn(c),c));else throw M(new nh("All edge sections need an end point."))}function lje(n,e){var t,i,r,c;if(e)r=yl(e,"x"),t=new Hkn(n),H4(t.a,(Jn(r),r)),c=yl(e,"y"),i=new qkn(n),U4(i.a,(Jn(c),c));else throw M(new nh("All edge sections need a start point."))}function aje(n,e){var t,i,r,c,s,f,h;for(i=AFn(n),c=0,f=i.length;c>22-e,r=n.h<>22-e):e<44?(t=0,i=n.l<>44-e):(t=0,i=0,r=n.l<n)throw M(new Gn("k must be smaller than n"));return e==0||e==n?1:n==0?0:FZ(n)/(FZ(e)*FZ(n-e))}function lnn(n,e){var t,i,r,c;for(t=new AX(n);t.g==null&&!t.c?cJ(t):t.g==null||t.i!=0&&u(t.g[t.i-1],51).Ob();)if(c=u(CA(t),58),O(c,167))for(i=u(c,167),r=0;r>4],e[t*2+1]=SO[c&15];return hh(e,0,e.length)}function Sje(n){yM();var e,t,i;switch(i=n.c.length,i){case 0:return rQn;case 1:return e=u(B_n(new C(n)),44),ybe(e.ld(),e.md());default:return t=u(xf(n,K(Pd,WA,44,n.c.length,0,1)),173),new hz(t)}}function Pje(n){var e,t,i,r,c,s;for(e=new Eg,t=new Eg,V1(e,n),V1(t,n);t.b!=t.c;)for(r=u(Sp(t),36),s=new C(r.a);s.a0&&hy(n,t,e),r):pCe(n,e,t)}function ua(){ua=F,fce=(qe(),N3),hce=qd,cce=Hd,uce=K2,oce=Ma,rce=R2,Jln=Wj,sce=Ww,kq=(Men(),Xre),yq=Vre,Yln=Yre,jq=ece,Zln=Zre,n1n=nce,Qln=Wre,_I=Jre,HI=Qre,Fj=tce,e1n=ice,Wln=zre}function c_n(n,e){var t,i,r,c,s;if(n.e<=e||Z2e(n,n.g,e))return n.g;for(c=n.r,i=n.g,s=n.r,r=(c-i)/2+i;i+11&&(n.e.b+=n.a)):(n.e.a+=t.a,n.e.b=y.Math.max(n.e.b,t.b),n.d.c.length>1&&(n.e.a+=n.a))}function Nje(n){var e,t,i,r;switch(r=n.i,e=r.b,i=r.j,t=r.g,r.a.g){case 0:t.a=(n.g.b.o.a-i.a)/2;break;case 1:t.a=e.d.n.a+e.d.a.a;break;case 2:t.a=e.d.n.a+e.d.a.a-i.a;break;case 3:t.b=e.d.n.b+e.d.a.b}}function $je(n,e,t){var i,r,c;for(r=new te(re(Cl(t).a.Kc(),new En));pe(r);)i=u(fe(r),18),!fr(i)&&!(!fr(i)&&i.c.i.c==i.d.i.c)&&(c=WHn(n,i,t,new Zyn),c.c.length>1&&Bn(e.c,c))}function o_n(n,e,t,i,r){if(ii&&(n.a=i),n.br&&(n.b=r),n}function xje(n){if(O(n,143))return dTe(u(n,143));if(O(n,233))return i8e(u(n,233));if(O(n,23))return bje(u(n,23));throw M(new Gn(Ncn+ra(new Ku(S(T(ki,1),Fn,1,5,[n])))))}function Fje(n,e,t,i,r){var c,s,f;for(c=!0,s=0;s>>r|t[s+i+1]<>>r,++s}return c}function wnn(n,e,t,i){var r,c,s;if(e.k==(Vn(),Mi)){for(c=new te(re(ji(e).a.Kc(),new En));pe(c);)if(r=u(fe(c),18),s=r.c.i.k,s==Mi&&n.c.a[r.c.i.c.p]==i&&n.c.a[e.c.p]==t)return!0}return!1}function Bje(n,e){var t,i,r,c;return e&=63,t=n.h&Il,e<22?(c=t>>>e,r=n.m>>e|t<<22-e,i=n.l>>e|n.m<<22-e):e<44?(c=0,r=t>>>e-22,i=n.m>>e-22|n.h<<44-e):(c=0,r=0,i=t>>>e-44),Yc(i&ro,r&ro,c&Il)}function s_n(n,e,t,i){var r;this.b=i,this.e=n==(O0(),t9),r=e[t],this.d=Va(so,[J,Xh],[183,28],16,[r.length,r.length],2),this.a=Va(ye,[J,Ke],[53,28],15,[r.length,r.length],2),this.c=new JZ(e,t)}function Rje(n){var e,t,i;for(n.k=new sJ((tn(),S(T(lr,1),Mc,64,0,[sc,Xn,Zn,ae,Wn])).length,n.j.c.length),i=new C(n.j);i.a=t)return Em(n,e,i.p),!0;return!1}function qg(n,e,t,i){var r,c,s,f,h,l;for(s=t.length,c=0,r=-1,l=e$n((zn(e,n.length+1),n.substr(e)),(xL(),Oun)),f=0;fc&&awe(l,e$n(t[f],Oun))&&(r=f,c=h);return r>=0&&(i[0]=e+c),r}function h_n(n){var e;return n.Db&64?iF(n):(e=new mo(Ecn),!n.a||Be(Be((e.a+=' "',e),n.a),'"'),Be(t0(Be(t0(Be(t0(Be(t0((e.a+=" (",e),n.i),","),n.j)," | "),n.g),","),n.f),")"),e.a)}function l_n(n,e,t){var i,r,c,s,f;for(f=ru(n.e.Dh(),e),r=u(n.g,124),i=0,s=0;st?Mnn(n,t,"start index"):e<0||e>t?Mnn(e,t,"end index"):H5("end index (%s) must not be less than start index (%s)",S(T(ki,1),Fn,1,5,[Y(e),Y(n)]))}function d_n(n,e){var t,i,r,c;for(i=0,r=n.length;i0&&b_n(n,c,t));e.p=0}function ln(n){var e;this.c=new Ct,this.f=n.e,this.e=n.d,this.i=n.g,this.d=n.c,this.b=n.b,this.k=n.j,this.a=n.a,n.i?this.j=n.i:this.j=(e=u(uf(Zh),9),new _o(e,u($s(e,e.length),9),0)),this.g=n.f}function Gje(n){var e,t,i,r;for(e=Ya(Be(new mo("Predicates."),"and"),40),t=!0,r=new Xv(n);r.b0?f[s-1]:K(Qh,b1,10,0,0,1),r=f[s],l=s=0?n.ki(r):Pnn(n,i);else throw M(new Gn(da+i.xe()+p8));else throw M(new Gn(aWn+e+dWn));else Wo(n,t,i)}function gnn(n){var e,t;if(t=null,e=!1,O(n,211)&&(e=!0,t=u(n,211).a),e||O(n,263)&&(e=!0,t=""+u(n,263).a),e||O(n,493)&&(e=!0,t=""+u(n,493).a),!e)throw M(new vD(Lcn));return t}function pnn(n,e,t){var i,r,c,s,f,h;for(h=ru(n.e.Dh(),e),i=0,f=n.i,r=u(n.g,124),s=0;s=n.d.b.c.length&&(e=new Lc(n.d),e.p=i.p-1,nn(n.d.b,e),t=new Lc(n.d),t.p=i.p,nn(n.d.b,t)),$i(i,u(sn(n.d.b,i.p),30))}function knn(n,e,t){var i,r,c;if(!n.b[e.g]){for(n.b[e.g]=!0,i=t,!i&&(i=new rk),xe(i.b,e),c=n.a[e.g].Kc();c.Ob();)r=u(c.Pb(),65),r.b!=e&&knn(n,r.b,i),r.c!=e&&knn(n,r.c,i),xe(i.a,r);return i}return null}function Wje(n){switch(n.g){case 0:case 1:case 2:return tn(),Xn;case 3:case 4:case 5:return tn(),ae;case 6:case 7:case 8:return tn(),Wn;case 9:case 10:case 11:return tn(),Zn;default:return tn(),sc}}function Jje(n,e){var t;return n.c.length==0?!1:(t=DBn((Ln(0,n.c.length),u(n.c[0],18)).c.i),ko(),t==(cw(),S2)||t==A2?!0:Ig(_r(new Tn(null,new In(n,16)),new r3n),new Y7n(e)))}function oF(n,e){if(O(e,207))return Ule(n,u(e,27));if(O(e,193))return Gle(n,u(e,123));if(O(e,452))return qle(n,u(e,166));throw M(new Gn(Ncn+ra(new Ku(S(T(ki,1),Fn,1,5,[e])))))}function k_n(n,e,t){var i,r;if(this.f=n,i=u(ee(n.b,e),260),r=i?i.a:0,BJ(t,r),t>=(r/2|0))for(this.e=i?i.c:null,this.d=r;t++0;)sQ(this);this.b=e,this.a=null}function Qje(n,e){var t,i;e.a?OTe(n,e):(t=u(ID(n.b,e.b),60),t&&t==n.a[e.b.f]&&t.a&&t.a!=e.b.a&&t.c.Fc(e.b),i=u(PD(n.b,e.b),60),i&&n.a[i.f]==e.b&&i.a&&i.a!=e.b.a&&e.b.c.Fc(i),EL(n.b,e.b))}function y_n(n,e){var t,i;if(t=u(Cr(n.b,e),127),u(u(ot(n.r,e),21),87).dc()){t.n.b=0,t.n.c=0;return}t.n.b=n.C.b,t.n.c=n.C.c,n.A.Hc((go(),Gd))&&Xqn(n,e),i=M9e(n,e),kF(n,e)==(Fg(),Aa)&&(i+=2*n.w),t.a.a=i}function j_n(n,e){var t,i;if(t=u(Cr(n.b,e),127),u(u(ot(n.r,e),21),87).dc()){t.n.d=0,t.n.a=0;return}t.n.d=n.C.d,t.n.a=n.C.a,n.A.Hc((go(),Gd))&&Vqn(n,e),i=C9e(n,e),kF(n,e)==(Fg(),Aa)&&(i+=2*n.w),t.a.b=i}function Yje(n,e){var t,i,r,c;for(c=new Z,i=new C(e);i.ai&&(zn(e-1,n.length),n.charCodeAt(e-1)<=32);)--e;return i>0||et.a&&(i.Hc((wd(),m9))?r=(e.a-t.a)/2:i.Hc(v9)&&(r=e.a-t.a)),e.b>t.b&&(i.Hc((wd(),y9))?c=(e.b-t.b)/2:i.Hc(k9)&&(c=e.b-t.b)),cnn(n,r,c)}function P_n(n,e,t,i,r,c,s,f,h,l,a,d,g){O(n.Cb,90)&&hw(Zu(u(n.Cb,90)),4),zc(n,t),n.f=s,hm(n,f),am(n,h),fm(n,l),lm(n,a),u1(n,d),dm(n,g),c1(n,!0),e1(n,r),n.Zk(c),ad(n,e),i!=null&&(n.i=null,kT(n,i))}function Mnn(n,e,t){if(n<0)return H5(Tzn,S(T(ki,1),Fn,1,5,[t,Y(n)]));if(e<0)throw M(new Gn(Azn+e));return H5("%s (%s) must not be greater than size (%s)",S(T(ki,1),Fn,1,5,[t,Y(n),Y(e)]))}function Tnn(n,e,t,i,r,c){var s,f,h,l;if(s=i-t,s<7){z5e(e,t,i,c);return}if(h=t+r,f=i+r,l=h+(f-h>>1),Tnn(e,n,h,l,-r,c),Tnn(e,n,l,f,-r,c),c.Ne(n[l-1],n[l])<=0){for(;t=0?n.bi(c,t):ten(n,r,t);else throw M(new Gn(da+r.xe()+p8));else throw M(new Gn(aWn+e+dWn));else Jo(n,i,r,t)}function I_n(n){var e,t;if(n.f){for(;n.n>0;){if(e=u(n.k.Xb(n.n-1),76),t=e.Lk(),O(t,102)&&u(t,19).Bb&kc&&(!n.e||t.pk()!=qv||t.Lj()!=0)&&e.md()!=null)return!0;--n.n}return!1}else return n.n>0}function O_n(n){var e,t,i,r;if(t=u(n,54)._h(),t)try{if(i=null,e=Mm((R1(),Ss),gUn(r8e(t))),e&&(r=e.ai(),r&&(i=r.Fl(che(t.e)))),i&&i!=n)return O_n(i)}catch(c){if(c=It(c),!O(c,63))throw M(c)}return n}function bEe(n,e,t){var i,r,c;t.Ug("Remove overlaps",1),t.dh(e,xrn),i=u(z(e,(Mg(),O2)),27),n.f=i,n.a=Ax(u(z(e,(ua(),Fj)),300)),r=R(z(e,(qe(),qd))),mG(n,(Jn(r),r)),c=aw(i),BGn(n,e,c,t),t.dh(e,DS)}function wEe(n){var e,t,i;if(on(un(z(n,(qe(),Xj))))){for(i=new Z,t=new te(re(Al(n).a.Kc(),new En));pe(t);)e=u(fe(t),74),_0(e)&&on(un(z(e,eU)))&&Bn(i.c,e);return i}else return Dn(),Dn(),sr}function D_n(n){if(!n)return Djn(),dQn;var e=n.valueOf?n.valueOf():n;if(e!==n){var t=WK[typeof e];return t?t(e):wY(typeof e)}else return n instanceof Array||n instanceof y.Array?new aG(n):new z9(n)}function L_n(n,e,t){var i,r,c;switch(c=n.o,i=u(Cr(n.p,t),252),r=i.i,r.b=$5(i),r.a=N5(i),r.b=y.Math.max(r.b,c.a),r.b>c.a&&!e&&(r.b=c.a),r.c=-(r.b-c.a)/2,t.g){case 1:r.d=-r.a;break;case 3:r.d=c.b}LF(i),NF(i)}function N_n(n,e,t){var i,r,c;switch(c=n.o,i=u(Cr(n.p,t),252),r=i.i,r.b=$5(i),r.a=N5(i),r.a=y.Math.max(r.a,c.b),r.a>c.b&&!e&&(r.a=c.b),r.d=-(r.a-c.b)/2,t.g){case 4:r.c=-r.b;break;case 2:r.c=c.a}LF(i),NF(i)}function gEe(n,e){var t,i,r,c,s;if(!e.dc()){if(r=u(e.Xb(0),131),e.gc()==1){lqn(n,r,r,1,0,e);return}for(t=1;t0)try{r=Ao(e,Wi,et)}catch(c){throw c=It(c),O(c,130)?(i=c,M(new eT(i))):M(c)}return t=(!n.a&&(n.a=new iD(n)),n.a),r=0?u(L(t,r),58):null}function kEe(n,e){if(n<0)return H5(Tzn,S(T(ki,1),Fn,1,5,["index",Y(n)]));if(e<0)throw M(new Gn(Azn+e));return H5("%s (%s) must be less than size (%s)",S(T(ki,1),Fn,1,5,["index",Y(n),Y(e)]))}function yEe(n){var e,t,i,r,c;if(n==null)return gu;for(c=new fd(ur,"[","]"),t=n,i=0,r=t.length;i=0?n.Lh(t,!0,!0):H0(n,r,!0),160)),u(i,220).Zl(e);else throw M(new Gn(da+e.xe()+p8))}function Inn(n){var e,t;return n>-0x800000000000&&n<0x800000000000?n==0?0:(e=n<0,e&&(n=-n),t=wi(y.Math.floor(y.Math.log(n)/.6931471805599453)),(!e||n!=y.Math.pow(2,t))&&++t,t):Qxn(vc(n))}function xEe(n){var e,t,i,r,c,s,f;for(c=new ih,t=new C(n);t.a2&&f.e.b+f.j.b<=2&&(r=f,i=s),c.a.zc(r,c),r.q=i);return c}function FEe(n,e,t){t.Ug("Eades radial",1),t.dh(e,DS),n.d=u(z(e,(Mg(),O2)),27),n.c=$(R(z(e,(ua(),HI)))),n.e=Ax(u(z(e,Fj),300)),n.a=a8e(u(z(e,e1n),434)),n.b=Dke(u(z(e,Qln),354)),bke(n),t.dh(e,DS)}function BEe(n,e){if(e.Ug("Target Width Setter",1),Df(n,(Bf(),Nq)))ht(n,(_h(),Xw),R(z(n,Nq)));else throw M(new _l("A target width has to be set if the TargetWidthWidthApproximator should be used."));e.Vg()}function R_n(n,e){var t,i,r;return i=new Tl(n),Ur(i,e),U(i,(W(),cI),e),U(i,(cn(),Kt),(Oi(),qc)),U(i,Th,(Rh(),nO)),_a(i,(Vn(),Zt)),t=new Pc,ic(t,i),gi(t,(tn(),Wn)),r=new Pc,ic(r,i),gi(r,Zn),i}function K_n(n){switch(n.g){case 0:return new gD((O0(),Oj));case 1:return new i8n;case 2:return new r8n;default:throw M(new Gn("No implementation is available for the crossing minimizer "+(n.f!=null?n.f:""+n.g)))}}function __n(n,e){var t,i,r,c,s;for(n.c[e.p]=!0,nn(n.a,e),s=new C(e.j);s.a=c)s.$b();else for(r=s.Kc(),i=0;i0?wz():s<0&&G_n(n,e,-s),!0):!1}function N5(n){var e,t,i,r,c,s,f;if(f=0,n.b==0){for(s=ARn(n,!0),e=0,i=s,r=0,c=i.length;r0&&(f+=t,++e);e>1&&(f+=n.c*(e-1))}else f=Ujn(I$(Ub(ct(CW(n.a),new fbn),new hbn)));return f>0?f+n.n.d+n.n.a:0}function $5(n){var e,t,i,r,c,s,f;if(f=0,n.b==0)f=Ujn(I$(Ub(ct(CW(n.a),new obn),new sbn)));else{for(s=SRn(n,!0),e=0,i=s,r=0,c=i.length;r0&&(f+=t,++e);e>1&&(f+=n.c*(e-1))}return f>0?f+n.n.b+n.n.c:0}function GEe(n){var e,t;if(n.c.length!=2)throw M(new Or("Order only allowed for two paths."));e=(Ln(0,n.c.length),u(n.c[0],18)),t=(Ln(1,n.c.length),u(n.c[1],18)),e.d.i!=t.c.i&&(n.c.length=0,Bn(n.c,t),Bn(n.c,e))}function z_n(n,e,t){var i;for(vg(t,e.g,e.f),Ro(t,e.i,e.j),i=0;i<(!e.a&&(e.a=new q(Qe,e,10,11)),e.a).i;i++)z_n(n,u(L((!e.a&&(e.a=new q(Qe,e,10,11)),e.a),i),27),u(L((!t.a&&(t.a=new q(Qe,t,10,11)),t.a),i),27))}function zEe(n,e){var t,i,r,c;for(c=u(Cr(n.b,e),127),t=c.a,r=u(u(ot(n.r,e),21),87).Kc();r.Ob();)i=u(r.Pb(),117),i.c&&(t.a=y.Math.max(t.a,eW(i.c)));if(t.a>0)switch(e.g){case 2:c.n.c=n.s;break;case 4:c.n.b=n.s}}function XEe(n,e){var t,i,r;return t=u(v(e,(qs(),k3)),17).a-u(v(n,k3),17).a,t==0?(i=mi(Ki(u(v(n,(J1(),lj)),8)),u(v(n,$8),8)),r=mi(Ki(u(v(e,lj),8)),u(v(e,$8),8)),bt(i.a*i.b,r.a*r.b)):t}function VEe(n,e){var t,i,r;return t=u(v(e,(lc(),FI)),17).a-u(v(n,FI),17).a,t==0?(i=mi(Ki(u(v(n,(pt(),Nj)),8)),u(v(n,Dv),8)),r=mi(Ki(u(v(e,Nj),8)),u(v(e,Dv),8)),bt(i.a*i.b,r.a*r.b)):t}function X_n(n){var e,t;return t=new x1,t.a+="e_",e=_ve(n),e!=null&&(t.a+=""+e),n.c&&n.d&&(Be((t.a+=" ",t),lA(n.c)),Be(Dc((t.a+="[",t),n.c.i),"]"),Be((t.a+=iR,t),lA(n.d)),Be(Dc((t.a+="[",t),n.d.i),"]")),t.a}function V_n(n){switch(n.g){case 0:return new d8n;case 1:return new b8n;case 2:return new l8n;case 3:return new h8n;default:throw M(new Gn("No implementation is available for the layout phase "+(n.f!=null?n.f:""+n.g)))}}function Lnn(n,e,t,i,r){var c;switch(c=0,r.g){case 1:c=y.Math.max(0,e.b+n.b-(t.b+i));break;case 3:c=y.Math.max(0,-n.b-i);break;case 2:c=y.Math.max(0,-n.a-i);break;case 4:c=y.Math.max(0,e.a+n.a-(t.a+i))}return c}function WEe(n,e,t){var i,r,c,s,f;if(t)for(r=t.a.length,i=new Ja(r),f=(i.b-i.a)*i.c<0?(K1(),$a):new q1(i);f.Ob();)s=u(f.Pb(),17),c=L4(t,s.a),Acn in c.a||pK in c.a?fSe(n,c,e):SLe(n,c,e),A1e(u(ee(n.b,wm(c)),74))}function Nnn(n){var e,t;switch(n.b){case-1:return!0;case 0:return t=n.t,t>1||t==-1?(n.b=-1,!0):(e=ws(n),e&&(dr(),e.lk()==bJn)?(n.b=-1,!0):(n.b=1,!1));default:case 1:return!1}}function $nn(n,e){var t,i,r,c;if(Ye(n),n.c!=0||n.a!=123)throw M(new Le($e((Ie(),xWn))));if(c=e==112,i=n.d,t=w4(n.i,125,i),t<0)throw M(new Le($e((Ie(),FWn))));return r=qo(n.i,i,t),n.d=t+1,mNn(r,c,(n.e&512)==512)}function W_n(n){var e,t,i,r,c,s,f;if(i=n.a.c.length,i>0)for(s=n.c.d,f=n.d.d,r=rh(mi(new V(f.a,f.b),s),1/(i+1)),c=new V(s.a,s.b),t=new C(n.a);t.a=0&&i=0?n.Lh(t,!0,!0):H0(n,r,!0),160)),u(i,220).Wl(e);throw M(new Gn(da+e.xe()+sK))}function ZEe(){Fz();var n;return Yoe?u(Mm((R1(),Ss),vs),2038):(Ue(Pd,new k6n),VOe(),n=u(O(Nc((R1(),Ss),vs),560)?Nc(Ss,vs):new aIn,560),Yoe=!0,WLe(n),tNe(n),Xe((xz(),qdn),n,new xvn),Dr(Ss,vs,n),n)}function nCe(n,e){var t,i,r,c;n.j=-1,fo(n.e)?(t=n.i,c=n.i!=0,ik(n,e),i=new ml(n.e,3,n.c,null,e,t,c),r=e.zl(n.e,n.c,null),r=PKn(n,e,r),r?(r.nj(i),r.oj()):it(n.e,i)):(ik(n,e),r=e.zl(n.e,n.c,null),r&&r.oj())}function yA(n,e){var t,i,r;if(r=0,i=e[0],i>=n.length)return-1;for(t=(zn(i,n.length),n.charCodeAt(i));t>=48&&t<=57&&(r=r*10+(t-48),++i,!(i>=n.length));)t=(zn(i,n.length),n.charCodeAt(i));return i>e[0]?e[0]=i:r=-1,r}function eCe(n){var e,t,i,r,c;return r=u(n.a,17).a,c=u(n.b,17).a,t=r,i=c,e=y.Math.max(y.Math.abs(r),y.Math.abs(c)),r<=0&&r==c?(t=0,i=c-1):r==-e&&c!=e?(t=c,i=r,c>=0&&++t):(t=-c,i=r),new bi(Y(t),Y(i))}function tCe(n,e,t,i){var r,c,s,f,h,l;for(r=0;r=0&&l>=0&&h=n.i)throw M(new Ir(vK+e+Td+n.i));if(t>=n.i)throw M(new Ir(kK+t+Td+n.i));return i=n.g[t],e!=t&&(e>16),e=i>>16&16,t=16-e,n=n>>e,i=n-256,e=i>>16&8,t+=e,n<<=e,i=n-vw,e=i>>16&4,t+=e,n<<=e,i=n-wh,e=i>>16&2,t+=e,n<<=e,i=n>>14,e=i&~(i>>1),t+2-e)}function rCe(n){Lp();var e,t,i,r;for(mP=new Z,m_=new de,p_=new Z,e=(!n.a&&(n.a=new q(Qe,n,10,11)),n.a),VDe(e),r=new ne(e);r.e!=r.i.gc();)i=u(ce(r),27),qr(mP,i,0)==-1&&(t=new Z,nn(p_,t),ZBn(i,t));return p_}function cCe(n,e,t){var i,r,c,s;n.a=t.b.d,O(e,326)?(r=zg(u(e,74),!1,!1),c=Zk(r),i=new F9n(n),qi(c,i),dy(c,r),e.of((qe(),kb))!=null&&qi(u(e.of(kb),75),i)):(s=u(e,422),s.rh(s.nh()+n.a.a),s.sh(s.oh()+n.a.b))}function uCe(n,e){var t,i,r;for(r=new Z,i=ge(e.a,0);i.b!=i.d.c;)t=u(be(i),65),t.c.g==n.g&&x(v(t.b,(lc(),Sh)))!==x(v(t.c,Sh))&&!Ig(new Tn(null,new In(r,16)),new hkn(t))&&Bn(r.c,t);return Yt(r,new U3n),r}function Q_n(n,e,t){var i,r,c,s;return O(e,153)&&O(t,153)?(c=u(e,153),s=u(t,153),n.a[c.a][s.a]+n.a[s.a][c.a]):O(e,250)&&O(t,250)&&(i=u(e,250),r=u(t,250),i.a==r.a)?u(v(r.a,(qs(),k3)),17).a:0}function Y_n(n,e){var t,i,r,c,s,f,h,l;for(l=$(R(v(e,(cn(),J8)))),h=n[0].n.a+n[0].o.a+n[0].d.c+l,f=1;f=0?t:(f=X6(mi(new V(s.c+s.b/2,s.d+s.a/2),new V(c.c+c.b/2,c.d+c.a/2))),-(CUn(c,s)-1)*f)}function sCe(n,e,t){var i;qt(new Tn(null,(!t.a&&(t.a=new q(Mt,t,6,6)),new In(t.a,16))),new dMn(n,e)),qt(new Tn(null,(!t.n&&(t.n=new q(Ar,t,1,7)),new In(t.n,16))),new bMn(n,e)),i=u(z(t,(qe(),kb)),75),i&&BQ(i,n,e)}function H0(n,e,t){var i,r,c;if(c=Jg((Du(),zi),n.Dh(),e),c)return dr(),u(c,69).xk()||(c=$p(Lr(zi,c))),r=(i=n.Ih(c),u(i>=0?n.Lh(i,!0,!0):H0(n,c,!0),160)),u(r,220).Sl(e,t);throw M(new Gn(da+e.xe()+sK))}function xnn(n,e,t,i){var r,c,s,f,h;if(r=n.d[e],r){if(c=r.g,h=r.i,i!=null){for(f=0;f=t&&(i=e,l=(h.c+h.a)/2,s=l-t,h.c<=l-t&&(r=new KL(h.c,s),b0(n,i++,r)),f=l+t,f<=h.a&&(c=new KL(f,h.a),zb(i,n.c.length),b6(n.c,i,c)))}function eHn(n,e,t){var i,r,c,s,f,h;if(!e.dc()){for(r=new Ct,h=e.Kc();h.Ob();)for(f=u(h.Pb(),40),Xe(n.a,Y(f.g),Y(t)),s=(i=ge(new sl(f).a.d,0),new sg(i));Z9(s.a);)c=u(be(s.a),65).c,xt(r,c,r.c.b,r.c);eHn(n,r,t+1)}}function Fnn(n){var e;if(!n.c&&n.g==null)n.d=n.bj(n.f),ve(n,n.d),e=n.d;else{if(n.g==null)return!0;if(n.i==0)return!1;e=u(n.g[n.i-1],51)}return e==n.b&&null.Vm>=null.Um()?(CA(n),Fnn(n)):e.Ob()}function tHn(n){if(this.a=n,n.c.i.k==(Vn(),Zt))this.c=n.c,this.d=u(v(n.c.i,(W(),gc)),64);else if(n.d.i.k==Zt)this.c=n.d,this.d=u(v(n.d.i,(W(),gc)),64);else throw M(new Gn("Edge "+n+" is not an external edge."))}function iHn(n,e){var t,i,r;r=n.b,n.b=e,n.Db&4&&!(n.Db&1)&&it(n,new Ci(n,1,3,r,n.b)),e?e!=n&&(zc(n,e.zb),v$(n,e.d),t=(i=e.c,i??e.zb),y$(n,t==null||An(t,e.zb)?null:t)):(zc(n,null),v$(n,0),y$(n,null))}function rHn(n,e){var t;this.e=(m0(),Se(n),m0(),QY(n)),this.c=(Se(e),QY(e)),KX(this.e.Rd().dc()==this.c.Rd().dc()),this.d=vBn(this.e),this.b=vBn(this.c),t=Va(ki,[J,Fn],[5,1],5,[this.e.Rd().gc(),this.c.Rd().gc()],2),this.a=t,Fme(this)}function cHn(n){!XK&&(XK=uLe());var e=n.replace(/[\x00-\x1f\xad\u0600-\u0603\u06dd\u070f\u17b4\u17b5\u200b-\u200f\u2028-\u202e\u2060-\u2064\u206a-\u206f\ufeff\ufff9-\ufffb"\\]/g,function(t){return h2e(t)});return'"'+e+'"'}function Bnn(n,e,t,i,r,c){var s,f,h,l,a;if(r!=0)for(x(n)===x(t)&&(n=n.slice(e,e+r),e=0),h=t,f=e,l=e+r;f=s)throw M(new Kb(e,s));return r=t[e],s==1?i=null:(i=K(jU,MK,424,s-1,0,1),Ic(t,0,i,0,e),c=s-e-1,c>0&&Ic(t,e+1,i,e,c)),gm(n,i),S_n(n,e,r),r}function oHn(n){var e,t;if(n.f){for(;n.n0?c=zp(t):c=Bk(zp(t))),ht(e,Mv,c)}function wCe(n,e){var t;e.Ug("Partition preprocessing",1),t=u(Wr(ct(rc(ct(new Tn(null,new In(n.a,16)),new zgn),new Xgn),new Vgn),qu(new ju,new yu,new Eu,S(T(xr,1),G,108,0,[(Gu(),Yr)]))),15),qt(t.Oc(),new Wgn),e.Vg()}function gCe(n,e){var t,i,r,c,s;for(s=n.j,e.a!=e.b&&Yt(s,new Mpn),r=s.c.length/2|0,i=0;i0&&hy(n,t,e),c):i.a!=null?(hy(n,e,t),-1):r.a!=null?(hy(n,t,e),1):0}function mCe(n,e){var t,i,r,c,s;for(r=e.b.b,n.a=K(rs,kw,15,r,0,1),n.b=K(so,Xh,28,r,16,1),s=ge(e.b,0);s.b!=s.d.c;)c=u(be(s),40),n.a[c.g]=new Ct;for(i=ge(e.a,0);i.b!=i.d.c;)t=u(be(i),65),n.a[t.b.g].Fc(t),n.a[t.c.g].Fc(t)}function lHn(n,e){var t,i,r,c;n.Pj()?(t=n.Ej(),c=n.Qj(),++n.j,n.qj(t,n.Zi(t,e)),i=n.Ij(3,null,e,t,c),n.Mj()?(r=n.Nj(e,null),r?(r.nj(i),r.oj()):n.Jj(i)):n.Jj(i)):(eIn(n,e),n.Mj()&&(r=n.Nj(e,null),r&&r.oj()))}function Rnn(n,e,t){var i,r,c;n.Pj()?(c=n.Qj(),Nk(n,e,t),i=n.Ij(3,null,t,e,c),n.Mj()?(r=n.Nj(t,null),n.Tj()&&(r=n.Uj(t,r)),r?(r.nj(i),r.oj()):n.Jj(i)):n.Jj(i)):(Nk(n,e,t),n.Mj()&&(r=n.Nj(t,null),r&&r.oj()))}function jA(n,e){var t,i,r,c,s;for(s=ru(n.e.Dh(),e),r=new EE,t=u(n.g,124),c=n.i;--c>=0;)i=t[c],s.am(i.Lk())&&ve(r,i);!uzn(n,r)&&fo(n.e)&&t4(n,e.Jk()?X1(n,6,e,(Dn(),sr),null,-1,!1):X1(n,e.tk()?2:1,e,null,null,-1,!1))}function vCe(n,e){var t,i,r,c,s;return n.a==(jm(),R8)?!0:(c=e.a.c,t=e.a.c+e.a.b,!(e.j&&(i=e.A,s=i.c.c.a-i.o.a/2,r=c-(i.n.a+i.o.a),r>s)||e.q&&(i=e.C,s=i.c.c.a-i.o.a/2,r=i.n.a-t,r>s)))}function aHn(n){NN();var e,t,i,r,c,s,f;for(t=new Ql,r=new C(n.e.b);r.a1?n.e*=$(n.a):n.f/=$(n.a),_6e(n),X8e(n),UAe(n),U(n.b,(M5(),pP),n.g)}function gHn(n,e,t){var i,r,c,s,f,h;for(i=0,h=t,e||(i=t*(n.c.length-1),h*=-1),c=new C(n);c.a=0?n.Ah(null):n.Ph().Th(n,-1-e,null,null)),n.Bh(u(r,54),t),i&&i.oj(),n.vh()&&n.wh()&&t>-1&&it(n,new Ci(n,9,t,c,r)),r):c}function Hnn(n,e){var t,i,r,c,s;for(c=n.b.Ce(e),i=(t=n.a.get(c),t??K(ki,Fn,1,0,5,1)),s=0;s>5,r>=n.d)return n.e<0;if(t=n.a[r],e=1<<(e&31),n.e<0){if(i=Ixn(n),r>16)),15).dd(c),f0&&(!(hl(n.a.c)&&e.n.d)&&!(mg(n.a.c)&&e.n.b)&&(e.g.d+=y.Math.max(0,i/2-.5)),!(hl(n.a.c)&&e.n.a)&&!(mg(n.a.c)&&e.n.c)&&(e.g.a-=i-1))}function MHn(n){var e,t,i,r,c;if(r=new Z,c=kUn(n,r),e=u(v(n,(W(),Xu)),10),e)for(i=new C(e.j);i.a>e,c=n.m>>e|t<<22-e,r=n.l>>e|n.m<<22-e):e<44?(s=i?Il:0,c=t>>e-22,r=n.m>>e-22|t<<44-e):(s=i?Il:0,c=i?ro:0,r=t>>e-44),Yc(r&ro,c&ro,s&Il)}function bF(n){var e,t,i,r,c,s;for(this.c=new Z,this.d=n,i=St,r=St,e=li,t=li,s=ge(n,0);s.b!=s.d.c;)c=u(be(s),8),i=y.Math.min(i,c.a),r=y.Math.min(r,c.b),e=y.Math.max(e,c.a),t=y.Math.max(t,c.b);this.a=new Ho(i,r,e-i,t-r)}function AHn(n,e){var t,i,r,c,s,f;for(c=new C(n.b);c.a0&&O(e,44)&&(n.a._j(),l=u(e,44),h=l.ld(),c=h==null?0:mt(h),s=dV(n.a,c),t=n.a.d[s],t)){for(i=u(t.g,379),a=t.i,f=0;f=2)for(t=r.Kc(),e=R(t.Pb());t.Ob();)c=e,e=R(t.Pb()),i=y.Math.min(i,(Jn(e),e-(Jn(c),c)));return i}function _Ce(n,e){var t,i,r;for(r=new Z,i=ge(e.a,0);i.b!=i.d.c;)t=u(be(i),65),t.b.g==n.g&&!An(t.b.c,IS)&&x(v(t.b,(lc(),Sh)))!==x(v(t.c,Sh))&&!Ig(new Tn(null,new In(r,16)),new lkn(t))&&Bn(r.c,t);return Yt(r,new V3n),r}function HCe(n,e){var t,i,r;if(x(e)===x(Se(n)))return!0;if(!O(e,15)||(i=u(e,15),r=n.gc(),r!=i.gc()))return!1;if(O(i,59)){for(t=0;t0&&(r=t),s=new C(n.f.e);s.a0?(e-=1,t-=1):i>=0&&r<0?(e+=1,t+=1):i>0&&r>=0?(e-=1,t+=1):(e+=1,t-=1),new bi(Y(e),Y(t))}function tMe(n,e){return n.ce.c?1:n.be.b?1:n.a!=e.a?mt(n.a)-mt(e.a):n.d==(n5(),r9)&&e.d==i9?-1:n.d==i9&&e.d==r9?1:0}function NHn(n,e){var t,i,r,c,s;return c=e.a,c.c.i==e.b?s=c.d:s=c.c,c.c.i==e.b?i=c.c:i=c.d,r=C8e(n.a,s,i),r>0&&r0):r<0&&-r0):!1}function iMe(n,e,t,i){var r,c,s,f,h,l,a,d;for(r=(e-n.d)/n.c.c.length,c=0,n.a+=t,n.d=e,d=new C(n.c);d.a>24;return s}function cMe(n){if(n.ze()){var e=n.c;e.Ae()?n.o="["+e.n:e.ze()?n.o="["+e.xe():n.o="[L"+e.xe()+";",n.b=e.we()+"[]",n.k=e.ye()+"[]";return}var t=n.j,i=n.d;i=i.split("/"),n.o=mx(".",[t,mx("$",i)]),n.b=mx(".",[t,mx(".",i)]),n.k=i[i.length-1]}function uMe(n,e){var t,i,r,c,s;for(s=null,c=new C(n.e.a);c.a=0;e-=2)for(t=0;t<=e;t+=2)(n.b[t]>n.b[t+2]||n.b[t]===n.b[t+2]&&n.b[t+1]>n.b[t+3])&&(i=n.b[t+2],n.b[t+2]=n.b[t],n.b[t]=i,i=n.b[t+3],n.b[t+3]=n.b[t+1],n.b[t+1]=i);n.c=!0}}function fMe(n,e){var t,i,r,c,s,f,h,l,a;for(l=-1,a=0,s=n,f=0,h=s.length;f0&&++a;++l}return a}function _s(n){var e,t;return t=new mo(za(n.Rm)),t.a+="@",Be(t,(e=mt(n)>>>0,e.toString(16))),n.Vh()?(t.a+=" (eProxyURI: ",Dc(t,n._h()),n.Kh()&&(t.a+=" eClass: ",Dc(t,n.Kh())),t.a+=")"):n.Kh()&&(t.a+=" (eClass: ",Dc(t,n.Kh()),t.a+=")"),t.a}function B5(n){var e,t,i,r;if(n.e)throw M(new Or((ll(u_),FB+u_.k+BB)));for(n.d==(ci(),Wf)&&UA(n,Br),t=new C(n.a.a);t.a>24}return t}function aMe(n,e,t){var i,r,c;if(r=u(Cr(n.i,e),314),!r)if(r=new k$n(n.d,e,t),Pp(n.i,e,r),tZ(e))g1e(n.a,e.c,e.b,r);else switch(c=Wje(e),i=u(Cr(n.p,c),252),c.g){case 1:case 3:r.j=!0,mD(i,e.b,r);break;case 4:case 2:r.k=!0,mD(i,e.c,r)}return r}function dMe(n,e){var t,i,r,c,s,f,h,l,a;for(h=Dh(n.c-n.b&n.a.length-1),l=null,a=null,c=new W6(n);c.a!=c.b;)r=u(xT(c),10),t=(f=u(v(r,(W(),kf)),12),f?f.i:null),i=(s=u(v(r,js),12),s?s.i:null),(l!=t||a!=i)&&(pHn(h,e),l=t,a=i),Bn(h.c,r);pHn(h,e)}function bMe(n,e,t,i){var r,c,s,f,h,l;if(f=new EE,h=ru(n.e.Dh(),e),r=u(n.g,124),dr(),u(e,69).xk())for(s=0;s=0)return r;for(c=1,f=new C(e.j);f.a=0)return r;for(c=1,f=new C(e.j);f.a0&&e.Ne((Ln(r-1,n.c.length),u(n.c[r-1],10)),c)>0;)Go(n,r,(Ln(r-1,n.c.length),u(n.c[r-1],10))),--r;Ln(r,n.c.length),n.c[r]=c}t.a=new de,t.b=new de}function wMe(n,e,t){var i,r,c,s,f,h,l,a;for(a=(i=u(e.e&&e.e(),9),new _o(i,u($s(i,i.length),9),0)),h=ww(t,"[\\[\\]\\s,]+"),c=h,s=0,f=c.length;s=0?(e||(e=new r6,i>0&&Er(e,(Fi(0,i,n.length),n.substr(0,i)))),e.a+="\\",T4(e,t&ui)):e&&T4(e,t&ui);return e?e.a:n}function pMe(n){var e,t,i;for(t=new C(n.a.a.b);t.a0&&(!(hl(n.a.c)&&e.n.d)&&!(mg(n.a.c)&&e.n.b)&&(e.g.d-=y.Math.max(0,i/2-.5)),!(hl(n.a.c)&&e.n.a)&&!(mg(n.a.c)&&e.n.c)&&(e.g.a+=y.Math.max(0,i-1)))}function qHn(n,e,t){var i,r;if((n.c-n.b&n.a.length-1)==2)e==(tn(),Xn)||e==Zn?(sT(u(a5(n),15),(To(),nl)),sT(u(a5(n),15),Ta)):(sT(u(a5(n),15),(To(),Ta)),sT(u(a5(n),15),nl));else for(r=new W6(n);r.a!=r.b;)i=u(xT(r),15),sT(i,t)}function mMe(n,e){var t,i,r,c,s,f,h;for(r=y4(new xG(n)),f=new xi(r,r.c.length),c=y4(new xG(e)),h=new xi(c,c.c.length),s=null;f.b>0&&h.b>0&&(t=(oe(f.b>0),u(f.a.Xb(f.c=--f.b),27)),i=(oe(h.b>0),u(h.a.Xb(h.c=--h.b),27)),t==i);)s=t;return s}function UHn(n,e,t){var i,r,c,s;GOn(n,e)>GOn(n,t)?(i=uc(t,(tn(),Zn)),n.d=i.dc()?0:zL(u(i.Xb(0),12)),s=uc(e,Wn),n.b=s.dc()?0:zL(u(s.Xb(0),12))):(r=uc(t,(tn(),Wn)),n.d=r.dc()?0:zL(u(r.Xb(0),12)),c=uc(e,Zn),n.b=c.dc()?0:zL(u(c.Xb(0),12)))}function GHn(n,e){var t,i,r,c;for(t=n.o.a,c=u(u(ot(n.r,e),21),87).Kc();c.Ob();)r=u(c.Pb(),117),r.e.a=t*$(R(r.b.of(bP))),r.e.b=(i=r.b,i.pf((qe(),oo))?i.ag()==(tn(),Xn)?-i.Mf().b-$(R(i.of(oo))):$(R(i.of(oo))):i.ag()==(tn(),Xn)?-i.Mf().b:0)}function vMe(n,e){var t,i,r,c;for(e.Ug("Self-Loop pre-processing",1),i=new C(n.a);i.an.c));s++)r.a>=n.s&&(c<0&&(c=s),f=s);return h=(n.s+n.c)/2,c>=0&&(i=oSe(n,e,c,f),h=cle((Ln(i,e.c.length),u(e.c[i],339))),aCe(e,i,t)),h}function Me(n,e,t){var i,r,c,s,f,h,l;for(s=(c=new tG,c),IQ(s,(Jn(e),e)),l=(!s.b&&(s.b=new lo((On(),ar),pc,s)),s.b),h=1;h0&&iOe(this,r)}function Znn(n,e,t,i,r,c){var s,f,h;if(!r[e.a]){for(r[e.a]=!0,s=i,!s&&(s=new zM),nn(s.e,e),h=c[e.a].Kc();h.Ob();)f=u(h.Pb(),290),!(f.d==t||f.c==t)&&(f.c!=e&&Znn(n,f.c,e,s,r,c),f.d!=e&&Znn(n,f.d,e,s,r,c),nn(s.c,f),hi(s.d,f.b));return s}return null}function jMe(n){var e,t,i,r,c,s,f;for(e=0,r=new C(n.e);r.a=2}function EMe(n,e,t,i,r){var c,s,f,h,l,a;for(c=n.c.d.j,s=u(Zo(t,0),8),a=1;a1||(e=yt(Js,S(T(yr,1),G,95,0,[xl,Qs])),jk(LM(e,n))>1)||(i=yt(Zs,S(T(yr,1),G,95,0,[el,Cs])),jk(LM(i,n))>1))}function nen(n,e,t){var i,r,c;for(c=new C(n.t);c.a0&&(i.b.n-=i.c,i.b.n<=0&&i.b.u>0&&xe(e,i.b));for(r=new C(n.i);r.a0&&(i.a.u-=i.c,i.a.u<=0&&i.a.n>0&&xe(t,i.a))}function CA(n){var e,t,i,r,c;if(n.g==null&&(n.d=n.bj(n.f),ve(n,n.d),n.c))return c=n.f,c;if(e=u(n.g[n.i-1],51),r=e.Pb(),n.e=e,t=n.bj(r),t.Ob())n.d=t,ve(n,t);else for(n.d=null;!e.Ob()&&($t(n.g,--n.i,null),n.i!=0);)i=u(n.g[n.i-1],51),e=i;return r}function MMe(n,e){var t,i,r,c,s,f;if(i=e,r=i.Lk(),Sl(n.e,r)){if(r.Si()&&_M(n,r,i.md()))return!1}else for(f=ru(n.e.Dh(),r),t=u(n.g,124),c=0;c1||t>1)return 2;return e+t==1?2:0}function to(n,e){var t,i,r,c,s,f;return c=n.a*LB+n.b*1502,f=n.b*LB+11,t=y.Math.floor(f*Iy),c+=t,f-=t*Ctn,c%=Ctn,n.a=c,n.b=f,e<=24?y.Math.floor(n.a*Lun[e]):(r=n.a*(1<=2147483648&&(i-=4294967296),i)}function JHn(n,e,t){var i,r,c,s,f,h,l;for(c=new Z,l=new Ct,s=new Ct,XPe(n,l,s,e),MOe(n,l,s,e,t),h=new C(n);h.ai.b.g&&Bn(c.c,i);return c}function OMe(n,e,t){var i,r,c,s,f,h;for(f=n.c,s=(t.q?t.q:(Dn(),Dn(),Wh)).vc().Kc();s.Ob();)c=u(s.Pb(),44),i=!s4(ct(new Tn(null,new In(f,16)),new Z3(new uMn(e,c)))).Bd((Xa(),v3)),i&&(h=c.md(),O(h,4)&&(r=cZ(h),r!=null&&(h=r)),e.qf(u(c.ld(),149),h))}function DMe(n,e,t){var i,r;if(U7(n.b),ff(n.b,(Fk(),XI),(f6(),Hj)),ff(n.b,VI,e.g),ff(n.b,WI,e.a),n.a=gy(n.b,e),t.Ug("Compaction by shrinking a tree",n.a.c.length),e.i.c.length>1)for(r=new C(n.a);r.a=0?n.Lh(i,!0,!0):H0(n,c,!0),160)),u(r,220).Xl(e,t)}else throw M(new Gn(da+e.xe()+p8))}function MA(n,e){var t,i,r,c,s;if(e){for(c=O(n.Cb,90)||O(n.Cb,102),s=!c&&O(n.Cb,331),i=new ne((!e.a&&(e.a=new R6(e,jr,e)),e.a));i.e!=i.i.gc();)if(t=u(ce(i),89),r=BA(t),c?O(r,90):s?O(r,156):r)return r;return c?(On(),Ps):(On(),Yf)}else return null}function LMe(n,e){var t,i,r,c;for(e.Ug("Resize child graph to fit parent.",1),i=new C(n.b);i.a=2*e&&nn(t,new KL(s[i-1]+e,s[i]-e));return t}function xMe(n,e,t){var i,r,c,s,f,h,l,a;if(t)for(c=t.a.length,i=new Ja(c),f=(i.b-i.a)*i.c<0?(K1(),$a):new q1(i);f.Ob();)s=u(f.Pb(),17),r=L4(t,s.a),r&&(h=a3e(n,(l=(B1(),a=new ez,a),e&&ien(l,e),l),r),X4(h,bl(r,Eh)),gA(r,h),Ann(r,h),_$(n,r,h))}function TA(n){var e,t,i,r,c,s;if(!n.j){if(s=new Cvn,e=x9,c=e.a.zc(n,e),c==null){for(i=new ne(Hr(n));i.e!=i.i.gc();)t=u(ce(i),29),r=TA(t),Bt(s,r),ve(s,t);e.a.Bc(n)!=null}ew(s),n.j=new gg((u(L(_((G1(),Hn).o),11),19),s.i),s.g),Zu(n).b&=-33}return n.j}function FMe(n){var e,t,i,r;if(n==null)return null;if(i=Fc(n,!0),r=nj.length,An(i.substr(i.length-r,r),nj)){if(t=i.length,t==4){if(e=(zn(0,i.length),i.charCodeAt(0)),e==43)return f0n;if(e==45)return vse}else if(t==3)return f0n}return new UG(i)}function BMe(n){var e,t,i;return t=n.l,t&t-1||(i=n.m,i&i-1)||(e=n.h,e&e-1)||e==0&&i==0&&t==0?-1:e==0&&i==0&&t!=0?kQ(t):e==0&&i!=0&&t==0?kQ(i)+22:e!=0&&i==0&&t==0?kQ(e)+44:-1}function Gg(n,e){var t,i,r,c,s;for(r=e.a&n.f,c=null,i=n.b[r];;i=i.b){if(i==e){c?c.b=e.b:n.b[r]=e.b;break}c=i}for(s=e.f&n.f,c=null,t=n.c[s];;t=t.d){if(t==e){c?c.d=e.d:n.c[s]=e.d;break}c=t}e.e?e.e.c=e.c:n.a=e.c,e.c?e.c.e=e.e:n.e=e.e,--n.i,++n.g}function RMe(n,e){var t;e.d?e.d.b=e.b:n.a=e.b,e.b?e.b.d=e.d:n.e=e.d,!e.e&&!e.c?(t=u(as(u(Bp(n.b,e.a),260)),260),t.a=0,++n.c):(t=u(as(u(ee(n.b,e.a),260)),260),--t.a,e.e?e.e.c=e.c:t.b=u(as(e.c),511),e.c?e.c.e=e.e:t.c=u(as(e.e),511)),--n.d}function KMe(n){var e,t,i,r,c,s,f,h,l,a;for(t=n.o,e=n.p,s=et,r=Wi,f=et,c=Wi,l=0;l0),c.a.Xb(c.c=--c.b),Rb(c,r),oe(c.b3&&Bh(n,0,e-3))}function HMe(n){var e,t,i,r;return x(v(n,(cn(),Bw)))===x((jl(),M1))?!n.e&&x(v(n,Cj))!==x((Z4(),mj)):(i=u(v(n,yH),299),r=on(un(v(n,jH)))||x(v(n,X8))===x((u5(),pj)),e=u(v(n,Hfn),17).a,t=n.a.c.length,!r&&i!=(Z4(),mj)&&(e==0||e>t))}function qMe(n){var e,t;for(t=0;t0);t++);if(t>0&&t0);e++);return e>0&&t>16!=6&&e){if(mm(n,e))throw M(new Gn(m8+dHn(n)));i=null,n.Cb&&(i=(t=n.Db>>16,t>=0?TZ(n,i):n.Cb.Th(n,-1-t,null,i))),e&&(i=Wp(e,n,6,i)),i=hV(n,e,i),i&&i.oj()}else n.Db&4&&!(n.Db&1)&&it(n,new Ci(n,1,6,e,e))}function AA(n,e){var t,i;if(e!=n.Cb||n.Db>>16!=3&&e){if(mm(n,e))throw M(new Gn(m8+nGn(n)));i=null,n.Cb&&(i=(t=n.Db>>16,t>=0?IZ(n,i):n.Cb.Th(n,-1-t,null,i))),e&&(i=Wp(e,n,12,i)),i=lV(n,e,i),i&&i.oj()}else n.Db&4&&!(n.Db&1)&&it(n,new Ci(n,1,3,e,e))}function ien(n,e){var t,i;if(e!=n.Cb||n.Db>>16!=9&&e){if(mm(n,e))throw M(new Gn(m8+Yqn(n)));i=null,n.Cb&&(i=(t=n.Db>>16,t>=0?SZ(n,i):n.Cb.Th(n,-1-t,null,i))),e&&(i=Wp(e,n,9,i)),i=aV(n,e,i),i&&i.oj()}else n.Db&4&&!(n.Db&1)&&it(n,new Ci(n,1,9,e,e))}function Tm(n){var e,t,i,r,c;if(i=ws(n),c=n.j,c==null&&i)return n.Jk()?null:i.ik();if(O(i,156)){if(t=i.jk(),t&&(r=t.wi(),r!=n.i)){if(e=u(i,156),e.nk())try{n.g=r.ti(e,c)}catch(s){if(s=It(s),O(s,82))n.g=null;else throw M(s)}n.i=r}return n.g}return null}function nqn(n){var e;return e=new Z,nn(e,new bp(new V(n.c,n.d),new V(n.c+n.b,n.d))),nn(e,new bp(new V(n.c,n.d),new V(n.c,n.d+n.a))),nn(e,new bp(new V(n.c+n.b,n.d+n.a),new V(n.c+n.b,n.d))),nn(e,new bp(new V(n.c+n.b,n.d+n.a),new V(n.c,n.d+n.a))),e}function UMe(n){var e,t,i;if(n==null)return gu;try{return Jr(n)}catch(r){if(r=It(r),O(r,103))return e=r,i=za(wo(n))+"@"+(t=(fl(),rZ(n)>>>0),t.toString(16)),r9e(qve(),(a4(),"Exception during lenientFormat for "+i),e),"<"+i+" threw "+za(e.Rm)+">";throw M(r)}}function GMe(n,e,t){var i,r,c;for(c=e.a.ec().Kc();c.Ob();)r=u(c.Pb(),74),i=u(ee(n.b,r),272),!i&&(At(Kh(r))==At(ia(r))?DTe(n,r,t):Kh(r)==At(ia(r))?ee(n.c,r)==null&&ee(n.b,ia(r))!=null&&DGn(n,r,t,!1):ee(n.d,r)==null&&ee(n.b,Kh(r))!=null&&DGn(n,r,t,!0))}function zMe(n,e){var t,i,r,c,s,f,h;for(r=n.Kc();r.Ob();)for(i=u(r.Pb(),10),f=new Pc,ic(f,i),gi(f,(tn(),Zn)),U(f,(W(),uI),(_n(),!0)),s=e.Kc();s.Ob();)c=u(s.Pb(),10),h=new Pc,ic(h,c),gi(h,Wn),U(h,uI,!0),t=new E0,U(t,uI,!0),Zi(t,f),Ii(t,h)}function XMe(n,e,t,i){var r,c,s,f;r=BBn(n,e,t),c=BBn(n,t,e),s=u(ee(n.c,e),118),f=u(ee(n.c,t),118),r1)for(e=h0((t=new Ga,++n.b,t),n.d),f=ge(c,0);f.b!=f.d.c;)s=u(be(f),125),Hs(Ds(Os(Ls(Is(new hs,1),0),e),s))}function JMe(n,e,t){var i,r,c,s,f;for(t.Ug("Breaking Point Removing",1),n.a=u(v(e,(cn(),$l)),223),c=new C(e.b);c.a>16!=11&&e){if(mm(n,e))throw M(new Gn(m8+Een(n)));i=null,n.Cb&&(i=(t=n.Db>>16,t>=0?OZ(n,i):n.Cb.Th(n,-1-t,null,i))),e&&(i=Wp(e,n,10,i)),i=yV(n,e,i),i&&i.oj()}else n.Db&4&&!(n.Db&1)&&it(n,new Ci(n,1,11,e,e))}function QMe(n){var e,t,i,r;for(i=new sd(new qa(n.b).a);i.b;)t=L0(i),r=u(t.ld(),12),e=u(t.md(),10),U(e,(W(),st),r),U(r,Xu,e),U(r,yj,(_n(),!0)),gi(r,u(v(e,gc),64)),v(e,gc),U(r.i,(cn(),Kt),(Oi(),_v)),u(v(Hi(r.i),Hc),21).Fc((pr(),yv))}function YMe(n,e,t){var i,r,c,s,f,h;if(c=0,s=0,n.c)for(h=new C(n.d.i.j);h.ac.a?-1:r.ah){for(a=n.d,n.d=K(Ndn,qcn,66,2*h+4,0,1),c=0;c=9223372036854776e3?(R4(),hun):(r=!1,n<0&&(r=!0,n=-n),i=0,n>=vd&&(i=wi(n/vd),n-=i*vd),t=0,n>=o3&&(t=wi(n/o3),n-=t*o3),e=wi(n),c=Yc(e,t,i),r&&H$(c),c)}function fTe(n){var e,t,i,r,c;if(c=new Z,nu(n.b,new S9n(c)),n.b.c.length=0,c.c.length!=0){for(e=(Ln(0,c.c.length),u(c.c[0],82)),t=1,i=c.c.length;t=-e&&i==e?new bi(Y(t-1),Y(i)):new bi(Y(t),Y(i-1))}function iqn(){return tr(),S(T(yNe,1),G,81,0,[Qon,Von,d2,N_,gsn,IP,KP,Lw,bsn,csn,asn,Dw,wsn,tsn,psn,Hon,NP,$_,SP,FP,vsn,xP,qon,dsn,ksn,BP,msn,PP,Zon,hsn,fsn,_P,zon,AP,DP,Gon,hv,osn,isn,lsn,x8,Won,Xon,ssn,rsn,LP,RP,Uon,$P,usn,OP,nsn,Yon,bj,TP,esn,Jon])}function aTe(n,e,t){n.d=0,n.b=0,e.k==(Vn(),_c)&&t.k==_c&&u(v(e,(W(),st)),10)==u(v(t,st),10)&&(s$(e).j==(tn(),Xn)?UHn(n,e,t):UHn(n,t,e)),e.k==_c&&t.k==Mi?s$(e).j==(tn(),Xn)?n.d=1:n.b=1:t.k==_c&&e.k==Mi&&(s$(t).j==(tn(),Xn)?n.b=1:n.d=1),J9e(n,e,t)}function dTe(n){var e,t,i,r,c,s,f,h,l,a,d;return d=enn(n),e=n.a,h=e!=null,h&&j4(d,"category",n.a),r=e7(new Ha(n.d)),s=!r,s&&(l=new Ka,df(d,"knownOptions",l),t=new fyn(l),qi(new Ha(n.d),t)),c=e7(n.g),f=!c,f&&(a=new Ka,df(d,"supportedFeatures",a),i=new hyn(a),qi(n.g,i)),d}function bTe(n){var e,t,i,r,c,s,f,h,l;for(i=!1,e=336,t=0,c=new zAn(n.length),f=n,h=0,l=f.length;h>16!=7&&e){if(mm(n,e))throw M(new Gn(m8+h_n(n)));i=null,n.Cb&&(i=(t=n.Db>>16,t>=0?AZ(n,i):n.Cb.Th(n,-1-t,null,i))),e&&(i=u(e,54).Rh(n,1,oE,i)),i=bW(n,e,i),i&&i.oj()}else n.Db&4&&!(n.Db&1)&&it(n,new Ci(n,1,7,e,e))}function rqn(n,e){var t,i;if(e!=n.Cb||n.Db>>16!=3&&e){if(mm(n,e))throw M(new Gn(m8+sBn(n)));i=null,n.Cb&&(i=(t=n.Db>>16,t>=0?PZ(n,i):n.Cb.Th(n,-1-t,null,i))),e&&(i=u(e,54).Rh(n,0,fE,i)),i=wW(n,e,i),i&&i.oj()}else n.Db&4&&!(n.Db&1)&&it(n,new Ci(n,1,3,e,e))}function vF(n,e){Am();var t,i,r,c,s,f,h,l,a;return e.d>n.d&&(f=n,n=e,e=f),e.d<63?tAe(n,e):(s=(n.d&-2)<<4,l=NJ(n,s),a=NJ(e,s),i=RF(n,Fp(l,s)),r=RF(e,Fp(a,s)),h=vF(l,a),t=vF(i,r),c=vF(RF(l,i),RF(r,a)),c=zF(zF(c,h),t),c=Fp(c,s),h=Fp(h,s<<1),zF(zF(h,c),t))}function a1(){a1=F,xH=new ag(sVn,0),Shn=new ag("LONGEST_PATH",1),Phn=new ag("LONGEST_PATH_SOURCE",2),$H=new ag("COFFMAN_GRAHAM",3),Ahn=new ag(sR,4),Ihn=new ag("STRETCH_WIDTH",5),CI=new ag("MIN_WIDTH",6),Pv=new ag("BF_MODEL_ORDER",7),Iv=new ag("DF_MODEL_ORDER",8)}function gTe(n,e,t){var i,r,c,s,f;for(s=p5(n,t),f=K(Qh,b1,10,e.length,0,1),i=0,c=s.Kc();c.Ob();)r=u(c.Pb(),12),on(un(v(r,(W(),yj))))&&(f[i++]=u(v(r,Xu),10));if(i=0;c+=t?1:-1)s=s|e.c.lg(h,c,t,i&&!on(un(v(e.j,(W(),va))))&&!on(un(v(e.j,(W(),y2))))),s=s|e.q.ug(h,c,t),s=s|Gqn(n,h[c],t,i);return fi(n.c,e),s}function IA(n,e,t){var i,r,c,s,f,h,l,a,d,g;for(a=CDn(n.j),d=0,g=a.length;d1&&(n.a=!0),Wbe(u(t.b,68),tt(Ki(u(e.b,68).c),rh(mi(Ki(u(t.b,68).a),u(e.b,68).a),r))),OOn(n,e),cqn(n,t)}function uqn(n){var e,t,i,r,c,s,f;for(c=new C(n.a.a);c.a0&&c>0?s.p=e++:i>0?s.p=t++:c>0?s.p=r++:s.p=t++}Dn(),Yt(n.j,new _gn)}function yTe(n){var e,t;t=null,e=u(sn(n.g,0),18);do{if(t=e.d.i,kt(t,(W(),js)))return u(v(t,js),12).i;if(t.k!=(Vn(),zt)&&pe(new te(re(Qt(t).a.Kc(),new En))))e=u(fe(new te(re(Qt(t).a.Kc(),new En))),18);else if(t.k!=zt)return null}while(t&&t.k!=(Vn(),zt));return t}function jTe(n,e){var t,i,r,c,s,f,h,l,a;for(f=e.j,s=e.g,h=u(sn(f,f.c.length-1),113),a=(Ln(0,f.c.length),u(f.c[0],113)),l=Kx(n,s,h,a),c=1;cl&&(h=t,a=r,l=i);e.a=a,e.c=h}function ETe(n,e,t){var i,r,c,s,f,h,l;for(l=new Ul(new X7n(n)),s=S(T(FZn,1),DXn,12,0,[e,t]),f=0,h=s.length;fh-n.b&&fh-n.a&&f0?c.a?(f=c.b.Mf().a,t>f&&(r=(t-f)/2,c.d.b=r,c.d.c=r)):c.d.c=n.s+t:_6(n.u)&&(i=tnn(c.b),i.c<0&&(c.d.b=-i.c),i.c+i.b>c.b.Mf().a&&(c.d.c=i.c+i.b-c.b.Mf().a))}function KTe(n,e){var t,i,r,c,s;s=new Z,t=e;do c=u(ee(n.b,t),131),c.B=t.c,c.D=t.d,Bn(s.c,c),t=u(ee(n.k,t),18);while(t);return i=(Ln(0,s.c.length),u(s.c[0],131)),i.j=!0,i.A=u(i.d.a.ec().Kc().Pb(),18).c.i,r=u(sn(s,s.c.length-1),131),r.q=!0,r.C=u(r.d.a.ec().Kc().Pb(),18).d.i,s}function _Te(n){var e,t;if(e=u(n.a,17).a,t=u(n.b,17).a,e>=0){if(e==t)return new bi(Y(-e-1),Y(-e-1));if(e==-t)return new bi(Y(-e),Y(t+1))}return y.Math.abs(e)>y.Math.abs(t)?e<0?new bi(Y(-e),Y(t)):new bi(Y(-e),Y(t+1)):new bi(Y(e+1),Y(t))}function HTe(n){var e,t;t=u(v(n,(cn(),ou)),171),e=u(v(n,(W(),Od)),311),t==(Yo(),ka)?(U(n,ou,Ej),U(n,Od,(vl(),v2))):t==xw?(U(n,ou,Ej),U(n,Od,(vl(),E3))):e==(vl(),v2)?(U(n,ou,ka),U(n,Od,vj)):e==E3&&(U(n,ou,xw),U(n,Od,vj))}function OA(){OA=F,Dj=new A3n,Jie=Re(new ii,(Vi(),Oc),(tr(),SP)),Zie=Pu(Re(new ii,Oc,xP),zr,$P),nre=ah(ah(l6(Pu(Re(new ii,Xs,KP),zr,RP),Kc),BP),_P),Qie=Pu(Re(Re(Re(new ii,Jh,IP),Kc,DP),Kc,hv),zr,OP),Yie=Pu(Re(Re(new ii,Kc,hv),Kc,AP),zr,TP)}function _5(){_5=F,ire=Re(Pu(new ii,(Vi(),zr),(tr(),nsn)),Oc,SP),ore=ah(ah(l6(Pu(Re(new ii,Xs,KP),zr,RP),Kc),BP),_P),rre=Pu(Re(Re(Re(new ii,Jh,IP),Kc,DP),Kc,hv),zr,OP),ure=Re(Re(new ii,Oc,xP),zr,$P),cre=Pu(Re(Re(new ii,Kc,hv),Kc,AP),zr,TP)}function qTe(n,e,t,i,r){var c,s;(!fr(e)&&e.c.i.c==e.d.i.c||!fxn(cc(S(T(Ei,1),J,8,0,[r.i.n,r.n,r.a])),t))&&!fr(e)&&(e.c==r?g4(e.a,0,new rr(t)):xe(e.a,new rr(t)),i&&!of(n.a,t)&&(s=u(v(e,(cn(),Fr)),75),s||(s=new Mu,U(e,Fr,s)),c=new rr(t),xt(s,c,s.c.b,s.c),fi(n.a,c)))}function fqn(n,e){var t,i,r,c;for(c=Ae(er(Uh,xh(Ae(er(e==null?0:mt(e),Gh)),15))),t=c&n.b.length-1,r=null,i=n.b[t];i;r=i,i=i.a)if(i.d==c&&oh(i.i,e))return r?r.a=i.a:n.b[t]=i.a,Kjn(u(as(i.c),604),u(as(i.f),604)),J9(u(as(i.b),227),u(as(i.e),227)),--n.f,++n.e,!0;return!1}function UTe(n){var e,t;for(t=new te(re(ji(n).a.Kc(),new En));pe(t);)if(e=u(fe(t),18),e.c.i.k!=(Vn(),Ac))throw M(new _l(oR+Gk(n)+"' has its layer constraint set to FIRST, but has at least one incoming edge that does not come from a FIRST_SEPARATE node. That must not happen."))}function GTe(n,e,t){var i,r,c,s,f,h,l;if(r=dBn(n.Db&254),r==0)n.Eb=t;else{if(r==1)f=K(ki,Fn,1,2,5,1),c=Rx(n,e),c==0?(f[0]=t,f[1]=n.Eb):(f[0]=n.Eb,f[1]=t);else for(f=K(ki,Fn,1,r+1,5,1),s=cd(n.Eb),i=2,h=0,l=0;i<=128;i<<=1)i==e?f[l++]=t:n.Db&i&&(f[l++]=s[h++]);n.Eb=f}n.Db|=e}function hqn(n,e,t){var i,r,c,s;for(this.b=new Z,r=0,i=0,s=new C(n);s.a0&&(c=u(sn(this.b,0),176),r+=c.o,i+=c.p),r*=2,i*=2,e>1?r=wi(y.Math.ceil(r*e)):i=wi(y.Math.ceil(i/e)),this.a=new VY(r,i)}function lqn(n,e,t,i,r,c){var s,f,h,l,a,d,g,p,m,k,j,A;for(a=i,e.j&&e.o?(p=u(ee(n.f,e.A),60),k=p.d.c+p.d.b,--a):k=e.a.c+e.a.b,d=r,t.q&&t.o?(p=u(ee(n.f,t.C),60),l=p.d.c,++d):l=t.a.c,j=l-k,h=y.Math.max(2,d-a),f=j/h,m=k+f,g=a;g=0;s+=r?1:-1){for(f=e[s],h=i==(tn(),Zn)?r?uc(f,i):Qo(uc(f,i)):r?Qo(uc(f,i)):uc(f,i),c&&(n.c[f.p]=h.gc()),d=h.Kc();d.Ob();)a=u(d.Pb(),12),n.d[a.p]=l++;hi(t,h)}}function dqn(n,e,t){var i,r,c,s,f,h,l,a;for(c=$(R(n.b.Kc().Pb())),l=$(R(Hve(e.b))),i=rh(Ki(n.a),l-t),r=rh(Ki(e.a),t-c),a=tt(i,r),rh(a,1/(l-c)),this.a=a,this.b=new Z,f=!0,s=n.b.Kc(),s.Pb();s.Ob();)h=$(R(s.Pb())),f&&h-t>_R&&(this.b.Fc(t),f=!1),this.b.Fc(h);f&&this.b.Fc(t)}function zTe(n){var e,t,i,r;if(hSe(n,n.n),n.d.c.length>0){for(t6(n.c);Gnn(n,u(E(new C(n.e.a)),125))>5,e&=31,i>=n.d)return n.e<0?(dh(),vQn):(dh(),O8);if(c=n.d-i,r=K(ye,Ke,28,c+1,15,1),Fje(r,c,n.a,i,e),n.e<0){for(t=0;t0&&n.a[t]<<32-e){for(t=0;t=0?!1:(t=Jg((Du(),zi),r,e),t?(i=t.Ik(),(i>1||i==-1)&&y0(Lr(zi,t))!=3):!0)):!1}function JTe(n,e,t,i){var r,c,s,f,h;return f=Gr(u(L((!e.b&&(e.b=new Nn(he,e,4,7)),e.b),0),84)),h=Gr(u(L((!e.c&&(e.c=new Nn(he,e,5,8)),e.c),0),84)),At(f)==At(h)||Yb(h,f)?null:(s=J7(e),s==t?i:(c=u(ee(n.a,s),10),c&&(r=c.e,r)?r:null))}function QTe(n,e,t){var i,r,c,s,f;for(t.Ug("Longest path to source layering",1),n.a=e,f=n.a.a,n.b=K(ye,Ke,28,f.c.length,15,1),i=0,s=new C(f);s.a0&&(t[0]+=n.d,s-=t[0]),t[2]>0&&(t[2]+=n.d,s-=t[2]),c=y.Math.max(0,s),t[1]=y.Math.max(t[1],s),xJ(n,Wc,r.c+i.b+t[0]-(t[1]-s)/2,t),e==Wc&&(n.c.b=c,n.c.c=r.c+i.b+(c-s)/2)}function Eqn(){this.c=K(Pi,Tr,28,(tn(),S(T(lr,1),Mc,64,0,[sc,Xn,Zn,ae,Wn])).length,15,1),this.b=K(Pi,Tr,28,S(T(lr,1),Mc,64,0,[sc,Xn,Zn,ae,Wn]).length,15,1),this.a=K(Pi,Tr,28,S(T(lr,1),Mc,64,0,[sc,Xn,Zn,ae,Wn]).length,15,1),Rz(this.c,St),Rz(this.b,li),Rz(this.a,li)}function xc(n,e,t){var i,r,c,s;if(e<=t?(r=e,c=t):(r=t,c=e),i=0,n.b==null)n.b=K(ye,Ke,28,2,15,1),n.b[0]=r,n.b[1]=c,n.c=!0;else{if(i=n.b.length,n.b[i-1]+1==r){n.b[i-1]=c;return}s=K(ye,Ke,28,i+2,15,1),Ic(n.b,0,s,0,i),n.b=s,n.b[i-1]>=r&&(n.c=!1,n.a=!1),n.b[i++]=r,n.b[i]=c,n.c||Ug(n)}}function iAe(n,e,t){var i,r,c,s,f,h,l;for(l=e.d,n.a=new Gc(l.c.length),n.c=new de,f=new C(l);f.a=0?n.Lh(l,!1,!0):H0(n,t,!1),61));n:for(c=d.Kc();c.Ob();){for(r=u(c.Pb(),58),a=0;a1;)dw(r,r.i-1);return i}function Mqn(n,e){var t,i,r,c,s,f,h;for(t=new Eg,c=new C(n.b);c.an.d[s.p]&&(t+=SJ(n.b,c),V1(n.a,Y(c)));for(;!i6(n.a);)oQ(n.b,u(Sp(n.a),17).a)}return t}function fAe(n){var e,t,i,r,c,s,f,h,l;for(n.a=new kV,l=0,r=0,i=new C(n.i.b);i.af.d&&(a=f.d+f.a+l));t.c.d=a,e.a.zc(t,e),h=y.Math.max(h,t.c.d+t.c.a)}return h}function pr(){pr=F,ZP=new Db("COMMENTS",0),cs=new Db("EXTERNAL_PORTS",1),K8=new Db("HYPEREDGES",2),nI=new Db("HYPERNODES",3),yv=new Db("NON_FREE_PORTS",4),m2=new Db("NORTH_SOUTH_PORTS",5),_8=new Db(JXn,6),vv=new Db("CENTER_LABELS",7),kv=new Db("END_LABELS",8),eI=new Db("PARTITIONS",9)}function lAe(n,e,t,i,r){return i<0?(i=qg(n,r,S(T(fn,1),J,2,6,[sB,fB,hB,lB,c3,aB,dB,bB,wB,gB,pB,mB]),e),i<0&&(i=qg(n,r,S(T(fn,1),J,2,6,["Jan","Feb","Mar","Apr",c3,"Jun","Jul","Aug","Sep","Oct","Nov","Dec"]),e)),i<0?!1:(t.k=i,!0)):i>0?(t.k=i-1,!0):!1}function aAe(n,e,t,i,r){return i<0?(i=qg(n,r,S(T(fn,1),J,2,6,[sB,fB,hB,lB,c3,aB,dB,bB,wB,gB,pB,mB]),e),i<0&&(i=qg(n,r,S(T(fn,1),J,2,6,["Jan","Feb","Mar","Apr",c3,"Jun","Jul","Aug","Sep","Oct","Nov","Dec"]),e)),i<0?!1:(t.k=i,!0)):i>0?(t.k=i-1,!0):!1}function dAe(n,e,t,i,r,c){var s,f,h,l;if(f=32,i<0){if(e[0]>=n.length||(f=Xi(n,e[0]),f!=43&&f!=45)||(++e[0],i=yA(n,e),i<0))return!1;f==45&&(i=-i)}return f==32&&e[0]-t==2&&r.b==2&&(h=new JE,l=h.q.getFullYear()-fa+fa-80,s=l%100,c.a=i==s,i+=(l/100|0)*100+(i=0?ta(n):G6(ta(n1(n)))),D8[e]=AC(Fs(n,e),0)?ta(Fs(n,e)):G6(ta(n1(Fs(n,e)))),n=er(n,5);for(;e=l&&(h=i);h&&(a=y.Math.max(a,h.a.o.a)),a>g&&(d=l,g=a)}return d}function vAe(n){var e,t,i,r,c,s,f;for(c=new Ul(u(Se(new kbn),50)),f=li,t=new C(n.d);t.ajVn?Yt(h,n.b):i<=jVn&&i>EVn?Yt(h,n.d):i<=EVn&&i>CVn?Yt(h,n.c):i<=CVn&&Yt(h,n.a),c=Iqn(n,h,c);return r}function Oqn(n,e,t,i){var r,c,s,f,h,l;for(r=(i.c+i.a)/2,vo(e.j),xe(e.j,r),vo(t.e),xe(t.e,r),l=new Zjn,f=new C(n.f);f.a1,f&&(i=new V(r,t.b),xe(e.a,i)),c5(e.a,S(T(Ei,1),J,8,0,[g,d]))}function ben(n,e,t){var i,r;for(e=48;t--)K9[t]=t-48<<24>>24;for(i=70;i>=65;i--)K9[i]=i-65+10<<24>>24;for(r=102;r>=97;r--)K9[r]=r-97+10<<24>>24;for(c=0;c<10;c++)SO[c]=48+c&ui;for(n=10;n<=15;n++)SO[n]=65+n-10&ui}function EAe(n,e){e.Ug("Process graph bounds",1),U(n,(pt(),rq),b7(O$(Ub(new Tn(null,new In(n.b,16)),new r4n)))),U(n,cq,b7(O$(Ub(new Tn(null,new In(n.b,16)),new c4n)))),U(n,vln,b7(I$(Ub(new Tn(null,new In(n.b,16)),new u4n)))),U(n,kln,b7(I$(Ub(new Tn(null,new In(n.b,16)),new o4n)))),e.Vg()}function CAe(n){var e,t,i,r,c;r=u(v(n,(cn(),xd)),21),c=u(v(n,kI),21),t=new V(n.f.a+n.d.b+n.d.c,n.f.b+n.d.d+n.d.a),e=new rr(t),r.Hc((go(),Qw))&&(i=u(v(n,Ev),8),c.Hc((io(),Hv))&&(i.a<=0&&(i.a=20),i.b<=0&&(i.b=20)),e.a=y.Math.max(t.a,i.a),e.b=y.Math.max(t.b,i.b)),on(un(v(n,SH)))||nIe(n,t,e)}function MAe(n,e){var t,i,r,c;for(c=uc(e,(tn(),ae)).Kc();c.Ob();)i=u(c.Pb(),12),t=u(v(i,(W(),Xu)),10),t&&Hs(Ds(Os(Ls(Is(new hs,0),.1),n.i[e.p].d),n.i[t.p].a));for(r=uc(e,Xn).Kc();r.Ob();)i=u(r.Pb(),12),t=u(v(i,(W(),Xu)),10),t&&Hs(Ds(Os(Ls(Is(new hs,0),.1),n.i[t.p].d),n.i[e.p].a))}function yF(n){var e,t,i,r,c,s;if(!n.c){if(s=new kvn,e=x9,c=e.a.zc(n,e),c==null){for(i=new ne(Sc(n));i.e!=i.i.gc();)t=u(ce(i),89),r=BA(t),O(r,90)&&Bt(s,yF(u(r,29))),ve(s,t);e.a.Bc(n)!=null,e.a.gc()==0}k8e(s),ew(s),n.c=new gg((u(L(_((G1(),Hn).o),15),19),s.i),s.g),Zu(n).b&=-33}return n.c}function gen(n){var e;if(n.c!=10)throw M(new Le($e((Ie(),qS))));switch(e=n.a,e){case 110:e=10;break;case 114:e=13;break;case 116:e=9;break;case 92:case 124:case 46:case 94:case 45:case 63:case 42:case 43:case 123:case 125:case 40:case 41:case 91:case 93:break;default:throw M(new Le($e((Ie(),is))))}return e}function $qn(n){var e,t,i,r,c;if(n.l==0&&n.m==0&&n.h==0)return"0";if(n.h==Ty&&n.m==0&&n.l==0)return"-9223372036854775808";if(n.h>>19)return"-"+$qn(tm(n));for(t=n,i="";!(t.l==0&&t.m==0&&t.h==0);){if(r=QN(QA),t=Jen(t,r,!0),e=""+cEn(ba),!(t.l==0&&t.m==0&&t.h==0))for(c=9-e.length;c>0;c--)e="0"+e;i=e+i}return i}function TAe(n){var e,t,i,r,c,s,f;for(e=!1,t=0,r=new C(n.d.b);r.a=n.a||!YZ(e,t))return-1;if(N4(u(i.Kb(e),20)))return 1;for(r=0,s=u(i.Kb(e),20).Kc();s.Ob();)if(c=u(s.Pb(),18),h=c.c.i==e?c.d.i:c.c.i,f=pen(n,h,t,i),f==-1||(r=y.Math.max(r,f),r>n.c-1))return-1;return r+1}function xqn(n,e){var t,i,r,c,s,f;if(x(e)===x(n))return!0;if(!O(e,15)||(i=u(e,15),f=n.gc(),i.gc()!=f))return!1;if(s=i.Kc(),n.Yi()){for(t=0;t0){if(n._j(),e!=null){for(c=0;c>24;case 97:case 98:case 99:case 100:case 101:case 102:return n-97+10<<24>>24;case 65:case 66:case 67:case 68:case 69:case 70:return n-65+10<<24>>24;default:throw M(new eh("Invalid hexadecimal"))}}function NA(){NA=F,eon=new lg("SPIRAL",0),Qun=new lg("LINE_BY_LINE",1),Yun=new lg("MANHATTAN",2),Jun=new lg("JITTER",3),f_=new lg("QUADRANTS_LINE_BY_LINE",4),non=new lg("QUADRANTS_MANHATTAN",5),Zun=new lg("QUADRANTS_JITTER",6),Wun=new lg("COMBINE_LINE_BY_LINE_MANHATTAN",7),Vun=new lg("COMBINE_JITTER_MANHATTAN",8)}function Bqn(n,e,t,i){var r,c,s,f,h,l;for(h=zx(n,t),l=zx(e,t),r=!1;h&&l&&(i||E7e(h,l,t));)s=zx(h,t),f=zx(l,t),lk(e),lk(n),c=h.c,XF(h,!1),XF(l,!1),t?(uw(e,l.p,c),e.p=l.p,uw(n,h.p+1,c),n.p=h.p):(uw(n,h.p,c),n.p=h.p,uw(e,l.p+1,c),e.p=l.p),$i(h,null),$i(l,null),h=s,l=f,r=!0;return r}function Rqn(n){switch(n.g){case 0:return new Y5n;case 1:return new J5n;case 3:return new dCn;case 4:return new Xpn;case 5:return new _An;case 6:return new Q5n;case 2:return new W5n;case 7:return new q5n;case 8:return new G5n;default:throw M(new Gn("No implementation is available for the layerer "+(n.f!=null?n.f:""+n.g)))}}function DAe(n,e,t,i){var r,c,s,f,h;for(r=!1,c=!1,f=new C(i.j);f.a=e.length)throw M(new Ir("Greedy SwitchDecider: Free layer not in graph."));this.c=e[n],this.e=new N7(i),T$(this.e,this.c,(tn(),Wn)),this.i=new N7(i),T$(this.i,this.c,Zn),this.f=new rPn(this.c),this.a=!c&&r.i&&!r.s&&this.c[0].k==(Vn(),Zt),this.a&&zje(this,n,e.length)}function _qn(n,e){var t,i,r,c,s,f;c=!n.B.Hc((io(),cE)),s=n.B.Hc(bU),n.a=new ABn(s,c,n.c),n.n&&WW(n.a.n,n.n),mD(n.g,(bf(),Wc),n.a),e||(i=new C5(1,c,n.c),i.n.a=n.k,Pp(n.p,(tn(),Xn),i),r=new C5(1,c,n.c),r.n.d=n.k,Pp(n.p,ae,r),f=new C5(0,c,n.c),f.n.c=n.k,Pp(n.p,Wn,f),t=new C5(0,c,n.c),t.n.b=n.k,Pp(n.p,Zn,t))}function NAe(n){var e,t,i;switch(e=u(v(n.d,(cn(),$l)),223),e.g){case 2:t=jLe(n);break;case 3:t=(i=new Z,qt(ct(_r(rc(rc(new Tn(null,new In(n.d.b,16)),new ipn),new rpn),new cpn),new U2n),new E7n(i)),i);break;default:throw M(new Or("Compaction not supported for "+e+" edges."))}UIe(n,t),qi(new Ha(n.g),new y7n(n))}function $Ae(n,e){var t,i,r,c,s,f,h;if(e.Ug("Process directions",1),t=u(v(n,(lc(),vb)),88),t!=(ci(),Vf))for(r=ge(n.b,0);r.b!=r.d.c;){switch(i=u(be(r),40),f=u(v(i,(pt(),$j)),17).a,h=u(v(i,xj),17).a,t.g){case 4:h*=-1;break;case 1:c=f,f=h,h=c;break;case 2:s=f,f=-h,h=s}U(i,$j,Y(f)),U(i,xj,Y(h))}e.Vg()}function xAe(n,e){var t;return t=new xO,e&&Ur(t,u(ee(n.a,oE),96)),O(e,422)&&Ur(t,u(ee(n.a,sE),96)),O(e,366)?(Ur(t,u(ee(n.a,Ar),96)),t):(O(e,84)&&Ur(t,u(ee(n.a,he),96)),O(e,207)?(Ur(t,u(ee(n.a,Qe),96)),t):O(e,193)?(Ur(t,u(ee(n.a,Qu),96)),t):(O(e,326)&&Ur(t,u(ee(n.a,Vt),96)),t))}function FAe(n){var e,t,i,r,c,s,f,h;for(h=new yLn,f=new C(n.a);f.a0&&e=0)return!1;if(e.p=t.b,nn(t.e,e),r==(Vn(),Mi)||r==_c){for(s=new C(e.j);s.an.d[f.p]&&(t+=SJ(n.b,c),V1(n.a,Y(c)))):++s;for(t+=n.b.d*s;!i6(n.a);)oQ(n.b,u(Sp(n.a),17).a)}return t}function Qqn(n){var e,t,i,r,c,s;return c=0,e=ws(n),e.kk()&&(c|=4),n.Bb&$u&&(c|=2),O(n,102)?(t=u(n,19),r=br(t),t.Bb&kc&&(c|=32),r&&(se(Gb(r)),c|=8,s=r.t,(s>1||s==-1)&&(c|=16),r.Bb&kc&&(c|=64)),t.Bb&hr&&(c|=Tw),c|=Us):O(e,469)?c|=512:(i=e.kk(),i&&i.i&1&&(c|=256)),n.Bb&512&&(c|=128),c}function WAe(n,e){var t;return n.f==AU?(t=y0(Lr((Du(),zi),e)),n.e?t==4&&e!=(n3(),_3)&&e!=(n3(),K3)&&e!=(n3(),SU)&&e!=(n3(),PU):t==2):n.d&&(n.d.Hc(e)||n.d.Hc($p(Lr((Du(),zi),e)))||n.d.Hc(Jg((Du(),zi),n.b,e)))?!0:n.f&&ren((Du(),n.f),G7(Lr(zi,e)))?(t=y0(Lr(zi,e)),n.e?t==4:t==2):!1}function JAe(n){var e,t,i,r,c,s,f,h,l,a,d,g,p;for(g=-1,p=0,l=n,a=0,d=l.length;a0&&++p;++g}return p}function QAe(n,e,t,i){var r,c,s,f,h,l,a,d;return s=u(z(t,(qe(),N3)),8),h=s.a,a=s.b+n,r=y.Math.atan2(a,h),r<0&&(r+=Cd),r+=e,r>Cd&&(r-=Cd),f=u(z(i,N3),8),l=f.a,d=f.b+n,c=y.Math.atan2(d,l),c<0&&(c+=Cd),c+=e,c>Cd&&(c-=Cd),Mf(),Rs(1e-10),y.Math.abs(r-c)<=1e-10||r==c||isNaN(r)&&isNaN(c)?0:rc?1:s0(isNaN(r),isNaN(c))}function CF(n){var e,t,i,r,c,s,f;for(f=new de,i=new C(n.a.b);i.a=n.o)throw M(new YG);f=e>>5,s=e&31,c=Fs(1,Ae(Fs(s,1))),r?n.n[t][f]=hf(n.n[t][f],c):n.n[t][f]=vi(n.n[t][f],WV(c)),c=Fs(c,1),i?n.n[t][f]=hf(n.n[t][f],c):n.n[t][f]=vi(n.n[t][f],WV(c))}catch(h){throw h=It(h),O(h,333)?M(new Ir(GB+n.o+"*"+n.p+zB+e+ur+t+XB)):M(h)}}function nSe(n,e,t,i){var r,c,s,f,h,l,a,d,g;for(g=new Ul(new z7n(n)),f=S(T(Qh,1),b1,10,0,[e,t]),h=0,l=f.length;h0&&(i=(!n.n&&(n.n=new q(Ar,n,1,7)),u(L(n.n,0),135)).a,!i||Be(Be((e.a+=' "',e),i),'"'))),Be(t0(Be(t0(Be(t0(Be(t0((e.a+=" (",e),n.i),","),n.j)," | "),n.g),","),n.f),")"),e.a)}function Yqn(n){var e,t,i;return n.Db&64?iF(n):(e=new mo(Mcn),t=n.k,t?Be(Be((e.a+=' "',e),t),'"'):(!n.n&&(n.n=new q(Ar,n,1,7)),n.n.i>0&&(i=(!n.n&&(n.n=new q(Ar,n,1,7)),u(L(n.n,0),135)).a,!i||Be(Be((e.a+=' "',e),i),'"'))),Be(t0(Be(t0(Be(t0(Be(t0((e.a+=" (",e),n.i),","),n.j)," | "),n.g),","),n.f),")"),e.a)}function iSe(n,e){var t,i,r,c,s;for(e==(d5(),XH)&&ny(u(ot(n.a,(ow(),gj)),15)),r=u(ot(n.a,(ow(),gj)),15).Kc();r.Ob();)switch(i=u(r.Pb(),105),t=u(sn(i.j,0),113).d.j,c=new _u(i.j),Yt(c,new apn),e.g){case 2:Qx(n,c,t,(D0(),ma),1);break;case 1:case 0:s=qMe(c),Qx(n,new Jl(c,0,s),t,(D0(),ma),0),Qx(n,new Jl(c,s,c.c.length),t,ma,1)}}function TF(n,e){var t,i,r,c,s,f,h;if(e==null||e.length==0)return null;if(r=u(Nc(n.a,e),143),!r){for(i=(f=new ol(n.b).a.vc().Kc(),new Sb(f));i.a.Ob();)if(t=(c=u(i.a.Pb(),44),u(c.md(),143)),s=t.c,h=e.length,An(s.substr(s.length-h,h),e)&&(e.length==s.length||Xi(s,s.length-e.length-1)==46)){if(r)return null;r=t}r&&Dr(n.a,e,r)}return r}function rSe(n,e){var t,i,r,c;return t=new Tbn,i=u(Wr(_r(new Tn(null,new In(n.f,16)),t),Wb(new Q2,new Y2,new Z2,new np,S(T(xr,1),G,108,0,[(Gu(),Aw),Yr]))),21),r=i.gc(),i=u(Wr(_r(new Tn(null,new In(e.f,16)),t),Wb(new Q2,new Y2,new Z2,new np,S(T(xr,1),G,108,0,[Aw,Yr]))),21),c=i.gc(),rr.p?(gi(c,ae),c.d&&(f=c.o.b,e=c.a.b,c.a.b=f-e)):c.j==ae&&r.p>n.p&&(gi(c,Xn),c.d&&(f=c.o.b,e=c.a.b,c.a.b=-(f-e)));break}return r}function fy(n,e,t,i,r){var c,s,f,h,l,a,d;if(!(O(e,207)||O(e,366)||O(e,193)))throw M(new Gn("Method only works for ElkNode-, ElkLabel and ElkPort-objects."));return s=n.a/2,h=e.i+i-s,a=e.j+r-s,l=h+e.g+n.a,d=a+e.f+n.a,c=new Mu,xe(c,new V(h,a)),xe(c,new V(h,d)),xe(c,new V(l,d)),xe(c,new V(l,a)),f=new bF(c),Ur(f,e),t&&Xe(n.b,e,f),f}function Sm(n,e,t){var i,r,c,s,f,h,l,a,d,g;for(c=new V(e,t),a=new C(n.a);a.a1,f&&(i=new V(r,t.b),xe(e.a,i)),c5(e.a,S(T(Ei,1),J,8,0,[g,d]))}function gs(){gs=F,AI=new Lb(kh,0),Sj=new Lb("NIKOLOV",1),Pj=new Lb("NIKOLOV_PIXEL",2),Fhn=new Lb("NIKOLOV_IMPROVED",3),Bhn=new Lb("NIKOLOV_IMPROVED_PIXEL",4),xhn=new Lb("DUMMYNODE_PERCENTAGE",5),Rhn=new Lb("NODECOUNT_PERCENTAGE",6),SI=new Lb("NO_BOUNDARY",7),pb=new Lb("MODEL_ORDER_LEFT_TO_RIGHT",8),Uw=new Lb("MODEL_ORDER_RIGHT_TO_LEFT",9)}function bSe(n){var e,t,i,r,c;for(i=n.length,e=new r6,c=0;c=40,s&&wPe(n),EIe(n),zTe(n),t=pBn(n),i=0;t&&i0&&xe(n.f,c)):(n.c[s]-=l+1,n.c[s]<=0&&n.a[s]>0&&xe(n.e,c))))}function lUn(n,e,t,i){var r,c,s,f,h,l,a;for(h=new V(t,i),mi(h,u(v(e,(pt(),Dv)),8)),a=ge(e.b,0);a.b!=a.d.c;)l=u(be(a),40),tt(l.e,h),xe(n.b,l);for(f=u(Wr(uJ(new Tn(null,new In(e.a,16))),qu(new ju,new yu,new Eu,S(T(xr,1),G,108,0,[(Gu(),Yr)]))),15).Kc();f.Ob();){for(s=u(f.Pb(),65),c=ge(s.a,0);c.b!=c.d.c;)r=u(be(c),8),r.a+=h.a,r.b+=h.b;xe(n.a,s)}}function Den(n,e){var t,i,r,c;if(0<(O(n,16)?u(n,16).gc():wl(n.Kc()))){if(r=e,1=0&&hc*2?(a=new hT(d),l=Su(s)/ao(s),h=QF(a,e,new cp,t,i,r,l),tt(sf(a.e),h),d.c.length=0,c=0,Bn(d.c,a),Bn(d.c,s),c=Su(a)*ao(a)+Su(s)*ao(s)):(Bn(d.c,s),c+=Su(s)*ao(s));return d}function dUn(n,e){var t,i,r,c,s,f;if(f=u(v(e,(cn(),Kt)),101),f==(Oi(),tl)||f==qc)for(r=new V(e.f.a+e.d.b+e.d.c,e.f.b+e.d.d+e.d.a).b,s=new C(n.a);s.at?e:t;l<=d;++l)l==t?f=i++:(c=r[l],a=m.am(c.Lk()),l==e&&(h=l==d&&!a?i-1:i),a&&++i);return g=u(y5(n,e,t),76),f!=h&&t4(n,new ok(n.e,7,s,Y(f),p.md(),h)),g}}else return u(lF(n,e,t),76);return u(y5(n,e,t),76)}function LSe(n,e){var t,i,r,c,s,f,h;for(e.Ug("Port order processing",1),h=u(v(n,(cn(),whn)),430),i=new C(n.b);i.a=0&&(f=S7e(n,s),!(f&&(l<22?h.l|=1<>>1,s.m=a>>>1|(d&1)<<21,s.l=g>>>1|(a&1)<<21,--l;return t&&H$(h),c&&(i?(ba=tm(n),r&&(ba=Yxn(ba,(R4(),lun)))):ba=Yc(n.l,n.m,n.h)),h}function xSe(n,e){var t,i,r,c,s,f,h,l,a,d;for(l=n.e[e.c.p][e.p]+1,h=e.c.a.c.length+1,f=new C(n.a);f.a0&&(zn(0,n.length),n.charCodeAt(0)==45||(zn(0,n.length),n.charCodeAt(0)==43))?1:0,i=s;it)throw M(new eh(V0+n+'"'));return f}function FSe(n){var e,t,i,r,c,s,f;for(s=new Ct,c=new C(n.a);c.a1)&&e==1&&u(n.a[n.b],10).k==(Vn(),Ac)?t3(u(n.a[n.b],10),(To(),nl)):i&&(!t||(n.c-n.b&n.a.length-1)>1)&&e==1&&u(n.a[n.c-1&n.a.length-1],10).k==(Vn(),Ac)?t3(u(n.a[n.c-1&n.a.length-1],10),(To(),Ta)):(n.c-n.b&n.a.length-1)==2?(t3(u(a5(n),10),(To(),nl)),t3(u(a5(n),10),Ta)):dMe(n,r),TJ(n)}function KSe(n,e,t){var i,r,c,s,f;for(c=0,r=new ne((!n.a&&(n.a=new q(Qe,n,10,11)),n.a));r.e!=r.i.gc();)i=u(ce(r),27),s="",(!i.n&&(i.n=new q(Ar,i,1,7)),i.n).i==0||(s=u(L((!i.n&&(i.n=new q(Ar,i,1,7)),i.n),0),135).a),f=new q$(c++,e,s),Ur(f,i),U(f,(pt(),f9),i),f.e.b=i.j+i.f/2,f.f.a=y.Math.max(i.g,1),f.e.a=i.i+i.g/2,f.f.b=y.Math.max(i.f,1),xe(e.b,f),Vc(t.f,i,f)}function _Se(n){var e,t,i,r,c;i=u(v(n,(W(),st)),27),c=u(z(i,(cn(),xd)),181).Hc((go(),Gd)),n.e||(r=u(v(n,Hc),21),e=new V(n.f.a+n.d.b+n.d.c,n.f.b+n.d.d+n.d.a),r.Hc((pr(),cs))?(ht(i,Kt,(Oi(),qc)),G0(i,e.a,e.b,!1,!0)):on(un(z(i,SH)))||G0(i,e.a,e.b,!0,!0)),c?ht(i,xd,yn(Gd)):ht(i,xd,(t=u(uf(I9),9),new _o(t,u($s(t,t.length),9),0)))}function Len(n,e,t){var i,r,c,s;if(e[0]>=n.length)return t.o=0,!0;switch(Xi(n,e[0])){case 43:r=1;break;case 45:r=-1;break;default:return t.o=0,!0}if(++e[0],c=e[0],s=yA(n,e),s==0&&e[0]==c)return!1;if(e[0]f&&(f=r,a.c.length=0),r==f&&nn(a,new bi(t.c.i,t)));Dn(),Yt(a,n.c),b0(n.b,h.p,a)}}function GSe(n,e){var t,i,r,c,s,f,h,l,a;for(s=new C(e.b);s.af&&(f=r,a.c.length=0),r==f&&nn(a,new bi(t.d.i,t)));Dn(),Yt(a,n.c),b0(n.f,h.p,a)}}function zSe(n,e){var t,i,r,c,s,f,h,l;if(l=un(v(e,(lc(),Ire))),l==null||(Jn(l),l)){for(mCe(n,e),r=new Z,h=ge(e.b,0);h.b!=h.d.c;)s=u(be(h),40),t=knn(n,s,null),t&&(Ur(t,e),Bn(r.c,t));if(n.a=null,n.b=null,r.c.length>1)for(i=new C(r);i.a=0&&f!=t&&(c=new Ci(n,1,f,s,null),i?i.nj(c):i=c),t>=0&&(c=new Ci(n,1,t,f==t?s:null,e),i?i.nj(c):i=c)),i}function gUn(n){var e,t,i;if(n.b==null){if(i=new Hl,n.i!=null&&(Er(i,n.i),i.a+=":"),n.f&256){for(n.f&256&&n.a!=null&&(lge(n.i)||(i.a+="//"),Er(i,n.a)),n.d!=null&&(i.a+="/",Er(i,n.d)),n.f&16&&(i.a+="/"),e=0,t=n.j.length;eg?!1:(d=(h=V5(i,g,!1),h.a),a+f+d<=e.b&&(sk(t,c-t.s),t.c=!0,sk(i,c-t.s),Uk(i,t.s,t.t+t.d+f),i.k=!0,_Q(t.q,i),p=!0,r&&(wT(e,i),i.j=e,n.c.length>s&&(Xk((Ln(s,n.c.length),u(n.c[s],186)),i),(Ln(s,n.c.length),u(n.c[s],186)).a.c.length==0&&Yl(n,s)))),p)}function ZSe(n,e){var t,i,r,c,s,f;if(e.Ug("Partition midprocessing",1),r=new C0,qt(ct(new Tn(null,new In(n.a,16)),new qgn),new h7n(r)),r.d!=0){for(f=u(Wr(fJ((c=r.i,new Tn(null,(c||(r.i=new Cg(r,r.c))).Nc()))),qu(new ju,new yu,new Eu,S(T(xr,1),G,108,0,[(Gu(),Yr)]))),15),i=f.Kc(),t=u(i.Pb(),17);i.Ob();)s=u(i.Pb(),17),zMe(u(ot(r,t),21),u(ot(r,s),21)),t=s;e.Vg()}}function vUn(n,e,t){var i,r,c,s,f,h,l,a;if(e.p==0){for(e.p=1,s=t,s||(r=new Z,c=(i=u(uf(lr),9),new _o(i,u($s(i,i.length),9),0)),s=new bi(r,c)),u(s.a,15).Fc(e),e.k==(Vn(),Zt)&&u(s.b,21).Fc(u(v(e,(W(),gc)),64)),h=new C(e.j);h.a0){if(r=u(n.Ab.g,2033),e==null){for(c=0;ct.s&&fs)return tn(),Zn;break;case 4:case 3:if(a<0)return tn(),Xn;if(a+t>c)return tn(),ae}return h=(l+f/2)/s,i=(a+t/2)/c,h+i<=1&&h-i<=0?(tn(),Wn):h+i>=1&&h-i>=0?(tn(),Zn):i<.5?(tn(),Xn):(tn(),ae)}function rPe(n,e){var t,i,r,c,s,f,h,l,a,d,g,p,m,k;for(t=!1,a=$(R(v(e,(cn(),gb)))),m=sa*a,r=new C(e.b);r.ah+m&&(k=d.g+g.g,g.a=(g.g*g.a+d.g*d.a)/k,g.g=k,d.f=g,t=!0)),c=f,d=g;return t}function EUn(n,e,t,i,r,c,s){var f,h,l,a,d,g;for(g=new mp,l=e.Kc();l.Ob();)for(f=u(l.Pb(),853),d=new C(f.Rf());d.a0?f.a?(l=f.b.Mf().b,r>l&&(n.v||f.c.d.c.length==1?(s=(r-l)/2,f.d.d=s,f.d.a=s):(t=u(sn(f.c.d,0),187).Mf().b,i=(t-l)/2,f.d.d=y.Math.max(0,i),f.d.a=r-i-l))):f.d.a=n.t+r:_6(n.u)&&(c=tnn(f.b),c.d<0&&(f.d.d=-c.d),c.d+c.a>f.b.Mf().b&&(f.d.a=c.d+c.a-f.b.Mf().b))}function qs(){qs=F,k3=new Ni((qe(),Jj),Y(1)),yP=new Ni(qd,80),tZn=new Ni(Uan,5),zYn=new Ni($2,Gm),nZn=new Ni(fU,Y(1)),eZn=new Ni(hU,(_n(),!0)),mon=new f0(50),YYn=new Ni(C1,mon),won=Vj,von=j9,XYn=new Ni(Zq,!1),pon=Wj,JYn=Vw,QYn=Ma,WYn=Hd,VYn=R2,ZYn=Ww,gon=(ann(),RYn),y_=qYn,kP=BYn,k_=KYn,kon=HYn,cZn=Fv,uZn=cO,rZn=Qj,iZn=rO,yon=(Gp(),Yw),new Ni(x3,yon)}function oPe(n,e){var t;switch(gk(n)){case 6:return Ai(e);case 7:return $b(e);case 8:return Nb(e);case 3:return Array.isArray(e)&&(t=gk(e),!(t>=14&&t<=16));case 11:return e!=null&&typeof e===eB;case 12:return e!=null&&(typeof e===vy||typeof e==eB);case 0:return Tx(e,n.__elementTypeId$);case 2:return uN(e)&&e.Tm!==J2;case 1:return uN(e)&&e.Tm!==J2||Tx(e,n.__elementTypeId$);default:return!0}}function sPe(n){var e,t,i,r;i=n.o,Bb(),n.A.dc()||rt(n.A,ron)?r=i.a:(n.D?r=y.Math.max(i.a,$5(n.f)):r=$5(n.f),n.A.Hc((go(),iE))&&!n.B.Hc((io(),O9))&&(r=y.Math.max(r,$5(u(Cr(n.p,(tn(),Xn)),252))),r=y.Math.max(r,$5(u(Cr(n.p,ae),252)))),e=Bxn(n),e&&(r=y.Math.max(r,e.a))),on(un(n.e.Tf().of((qe(),Vw))))?i.a=y.Math.max(i.a,r):i.a=r,t=n.f.i,t.c=0,t.b=r,LF(n.f)}function CUn(n,e){var t,i,r,c;return i=y.Math.min(y.Math.abs(n.c-(e.c+e.b)),y.Math.abs(n.c+n.b-e.c)),c=y.Math.min(y.Math.abs(n.d-(e.d+e.a)),y.Math.abs(n.d+n.a-e.d)),t=y.Math.abs(n.c+n.b/2-(e.c+e.b/2)),t>n.b/2+e.b/2||(r=y.Math.abs(n.d+n.a/2-(e.d+e.a/2)),r>n.a/2+e.a/2)?1:t==0&&r==0?0:t==0?c/r+1:r==0?i/t+1:y.Math.min(i/t,c/r)+1}function fPe(n,e){var t,i,r,c,s,f,h;for(c=0,f=0,h=0,r=new C(n.f.e);r.a0&&n.d!=(i5(),C_)&&(f+=s*(i.d.a+n.a[e.a][i.a]*(e.d.a-i.d.a)/t)),t>0&&n.d!=(i5(),j_)&&(h+=s*(i.d.b+n.a[e.a][i.a]*(e.d.b-i.d.b)/t)));switch(n.d.g){case 1:return new V(f/c,e.d.b);case 2:return new V(e.d.a,h/c);default:return new V(f/c,h/c)}}function MUn(n){var e,t,i,r,c,s;for(t=(!n.a&&(n.a=new ti(xo,n,5)),n.a).i+2,s=new Gc(t),nn(s,new V(n.j,n.k)),qt(new Tn(null,(!n.a&&(n.a=new ti(xo,n,5)),new In(n.a,16))),new xkn(s)),nn(s,new V(n.b,n.c)),e=1;e0&&(Sk(h,!1,(ci(),Br)),Sk(h,!0,Xr)),nu(e.g,new RCn(n,t)),Xe(n.g,e,t)}function SUn(){SUn=F;var n;for(vun=S(T(ye,1),Ke,28,15,[-1,-1,30,19,15,13,11,11,10,9,9,8,8,8,8,7,7,7,7,7,7,7,6,6,6,6,6,6,6,6,6,6,6,6,6,6,5]),JK=K(ye,Ke,28,37,15,1),gQn=S(T(ye,1),Ke,28,15,[-1,-1,63,40,32,28,25,23,21,20,19,19,18,18,17,17,16,16,16,15,15,15,15,14,14,14,14,14,14,13,13,13,13,13,13,13,13]),kun=K(xa,SB,28,37,14,1),n=2;n<=36;n++)JK[n]=wi(y.Math.pow(n,vun[n])),kun[n]=Wk(Ey,JK[n])}function hPe(n){var e;if((!n.a&&(n.a=new q(Mt,n,6,6)),n.a).i!=1)throw M(new Gn(tWn+(!n.a&&(n.a=new q(Mt,n,6,6)),n.a).i));return e=new Mu,Tk(u(L((!n.b&&(n.b=new Nn(he,n,4,7)),n.b),0),84))&&Bi(e,gzn(n,Tk(u(L((!n.b&&(n.b=new Nn(he,n,4,7)),n.b),0),84)),!1)),Tk(u(L((!n.c&&(n.c=new Nn(he,n,5,8)),n.c),0),84))&&Bi(e,gzn(n,Tk(u(L((!n.c&&(n.c=new Nn(he,n,5,8)),n.c),0),84)),!0)),e}function PUn(n,e){var t,i,r,c,s;for(e.d?r=n.a.c==(sh(),mb)?ji(e.b):Qt(e.b):r=n.a.c==(sh(),y1)?ji(e.b):Qt(e.b),c=!1,i=new te(re(r.a.Kc(),new En));pe(i);)if(t=u(fe(i),18),s=on(n.a.f[n.a.g[e.b.p].p]),!(!s&&!fr(t)&&t.c.i.c==t.d.i.c)&&!(on(n.a.n[n.a.g[e.b.p].p])||on(n.a.n[n.a.g[e.b.p].p]))&&(c=!0,of(n.b,n.a.g[h7e(t,e.b).p])))return e.c=!0,e.a=t,e;return e.c=c,e.a=null,e}function $en(n,e,t){var i,r,c,s,f,h,l;if(i=t.gc(),i==0)return!1;if(n.Pj())if(h=n.Qj(),UY(n,e,t),s=i==1?n.Ij(3,null,t.Kc().Pb(),e,h):n.Ij(5,null,t,e,h),n.Mj()){for(f=i<100?null:new F1(i),c=e+i,r=e;r0){for(s=0;s>16==-15&&n.Cb.Yh()&&h$(new c$(n.Cb,9,13,t,n.c,f1(no(u(n.Cb,62)),n))):O(n.Cb,90)&&n.Db>>16==-23&&n.Cb.Yh()&&(e=n.c,O(e,90)||(e=(On(),Ps)),O(t,90)||(t=(On(),Ps)),h$(new c$(n.Cb,9,10,t,e,f1(Sc(u(n.Cb,29)),n)))))),n.c}function dPe(n,e,t){var i,r,c,s,f,h,l,a,d;for(t.Ug("Hyperedge merging",1),FCe(n,e),h=new xi(e.b,0);h.b0,f=HT(e,c),VX(t?f.b:f.g,e),$g(f).c.length==1&&xt(i,f,i.c.b,i.c),r=new bi(c,e),V1(n.o,r),du(n.e.a,c))}function xUn(n,e){var t,i,r,c,s,f,h;return i=y.Math.abs(gM(n.b).a-gM(e.b).a),f=y.Math.abs(gM(n.b).b-gM(e.b).b),r=0,h=0,t=1,s=1,i>n.b.b/2+e.b.b/2&&(r=y.Math.min(y.Math.abs(n.b.c-(e.b.c+e.b.b)),y.Math.abs(n.b.c+n.b.b-e.b.c)),t=1-r/i),f>n.b.a/2+e.b.a/2&&(h=y.Math.min(y.Math.abs(n.b.d-(e.b.d+e.b.a)),y.Math.abs(n.b.d+n.b.a-e.b.d)),s=1-h/f),c=y.Math.min(t,s),(1-c)*y.Math.sqrt(i*i+f*f)}function gPe(n){var e,t,i,r;for(JF(n,n.e,n.f,(M0(),Ea),!0,n.c,n.i),JF(n,n.e,n.f,Ea,!1,n.c,n.i),JF(n,n.e,n.f,P2,!0,n.c,n.i),JF(n,n.e,n.f,P2,!1,n.c,n.i),aPe(n,n.c,n.e,n.f,n.i),i=new xi(n.i,0);i.b=65;t--)Zf[t]=t-65<<24>>24;for(i=122;i>=97;i--)Zf[i]=i-97+26<<24>>24;for(r=57;r>=48;r--)Zf[r]=r-48+52<<24>>24;for(Zf[43]=62,Zf[47]=63,c=0;c<=25;c++)O1[c]=65+c&ui;for(s=26,h=0;s<=51;++s,h++)O1[s]=97+h&ui;for(n=52,f=0;n<=61;++n,f++)O1[n]=48+f&ui;O1[62]=43,O1[63]=47}function FUn(n,e){var t,i,r,c,s,f;return r=xQ(n),f=xQ(e),r==f?n.e==e.e&&n.a<54&&e.a<54?n.fe.f?1:0:(i=n.e-e.e,t=(n.d>0?n.d:y.Math.floor((n.a-1)*Uzn)+1)-(e.d>0?e.d:y.Math.floor((e.a-1)*Uzn)+1),t>i+1?r:t0&&(s=Pg(s,VUn(i))),XBn(c,s))):rl&&(g=0,p+=h+e,h=0),Sm(s,g,p),t=y.Math.max(t,g+a.a),h=y.Math.max(h,a.b),g+=a.a+e;return new V(t+e,p+h+e)}function Ren(n,e){var t,i,r,c,s,f,h;if(!Af(n))throw M(new Or(eWn));if(i=Af(n),c=i.g,r=i.f,c<=0&&r<=0)return tn(),sc;switch(f=n.i,h=n.j,e.g){case 2:case 1:if(f<0)return tn(),Wn;if(f+n.g>c)return tn(),Zn;break;case 4:case 3:if(h<0)return tn(),Xn;if(h+n.f>r)return tn(),ae}return s=(f+n.g/2)/c,t=(h+n.f/2)/r,s+t<=1&&s-t<=0?(tn(),Wn):s+t>=1&&s-t>=0?(tn(),Zn):t<.5?(tn(),Xn):(tn(),ae)}function vPe(n,e,t,i,r){var c,s;if(c=nr(vi(e[0],mr),vi(i[0],mr)),n[0]=Ae(c),c=w0(c,32),t>=r){for(s=1;s0&&(r.b[s++]=0,r.b[s++]=c.b[0]-1),e=1;e0&&(JO(h,h.d-r.d),r.c==(lf(),ja)&&ife(h,h.a-r.d),h.d<=0&&h.i>0&&xt(e,h,e.c.b,e.c)));for(c=new C(n.f);c.a0&&(SE(f,f.i-r.d),r.c==(lf(),ja)&&rfe(f,f.b-r.d),f.i<=0&&f.d>0&&xt(t,f,t.c.b,t.c)))}function jPe(n,e,t,i,r){var c,s,f,h,l,a,d,g,p;for(Dn(),Yt(n,new Jmn),s=F7(n),p=new Z,g=new Z,f=null,h=0;s.b!=0;)c=u(s.b==0?null:(oe(s.b!=0),Xo(s,s.a.a)),163),!f||Su(f)*ao(f)/21&&(h>Su(f)*ao(f)/2||s.b==0)&&(d=new hT(g),a=Su(f)/ao(f),l=QF(d,e,new cp,t,i,r,a),tt(sf(d.e),l),f=d,Bn(p.c,d),h=0,g.c.length=0));return hi(p,g),p}function Ic(n,e,t,i,r){fl();var c,s,f,h,l,a,d;if(PW(n,"src"),PW(t,"dest"),d=wo(n),h=wo(t),VV((d.i&4)!=0,"srcType is not an array"),VV((h.i&4)!=0,"destType is not an array"),a=d.c,s=h.c,VV(a.i&1?a==s:(s.i&1)==0,"Array types don't match"),s6e(n,e,t,i,r),!(a.i&1)&&d!=h)if(l=cd(n),c=cd(t),x(n)===x(t)&&ei;)$t(c,f,l[--e]);else for(f=i+r;i0),i.a.Xb(i.c=--i.b),d>g+h&&bo(i);for(s=new C(p);s.a0),i.a.Xb(i.c=--i.b)}}function CPe(){nt();var n,e,t,i,r,c;if(OU)return OU;for(n=new yo(4),gw(n,oa(FK,!0)),Q5(n,oa("M",!0)),Q5(n,oa("C",!0)),c=new yo(4),i=0;i<11;i++)xc(c,i,i);return e=new yo(4),gw(e,oa("M",!0)),xc(e,4448,4607),xc(e,65438,65439),r=new P6(2),pd(r,n),pd(r,H9),t=new P6(2),t.Jm(uM(c,oa("L",!0))),t.Jm(e),t=new Xb(3,t),t=new SW(r,t),OU=t,OU}function ww(n,e){var t,i,r,c,s,f,h,l;for(t=new RegExp(e,"g"),h=K(fn,J,2,0,6,1),i=0,l=n,c=null;;)if(f=t.exec(l),f==null||l==""){h[i]=l;break}else s=f.index,h[i]=(Fi(0,s,l.length),l.substr(0,s)),l=qo(l,s+f[0].length,l.length),t.lastIndex=0,c==l&&(h[i]=(Fi(0,1,l.length),l.substr(0,1)),l=(zn(1,l.length+1),l.substr(1))),c=l,++i;if(n.length>0){for(r=h.length;r>0&&h[r-1]=="";)--r;r0&&(d-=i[0]+n.c,i[0]+=n.c),i[2]>0&&(d-=i[2]+n.c),i[1]=y.Math.max(i[1],d),hM(n.a[1],t.c+e.b+i[0]-(i[1]-d)/2,i[1]);for(c=n.a,f=0,l=c.length;f0?(n.n.c.length-1)*n.i:0,i=new C(n.n);i.a1)for(i=ge(r,0);i.b!=i.d.c;)for(t=u(be(i),235),c=0,h=new C(t.e);h.a0&&(e[0]+=n.c,d-=e[0]),e[2]>0&&(d-=e[2]+n.c),e[1]=y.Math.max(e[1],d),lM(n.a[1],i.d+t.d+e[0]-(e[1]-d)/2,e[1]);else for(m=i.d+t.d,p=i.a-t.d-t.a,s=n.a,h=0,a=s.length;h0||x0(r.b.d,n.b.d+n.b.a)==0&&i.b<0||x0(r.b.d+r.b.a,n.b.d)==0&&i.b>0){f=0;break}}else f=y.Math.min(f,x_n(n,r,i));f=y.Math.min(f,_Un(n,c,f,i))}return f}function dy(n,e){var t,i,r,c,s,f,h;if(n.b<2)throw M(new Gn("The vector chain must contain at least a source and a target point."));for(r=(oe(n.b!=0),u(n.a.a.c,8)),C7(e,r.a,r.b),h=new kp((!e.a&&(e.a=new ti(xo,e,5)),e.a)),s=ge(n,1);s.a=0&&c!=t))throw M(new Gn(Vy));for(r=0,h=0;h$(Tf(s.g,s.d[0]).a)?(oe(h.b>0),h.a.Xb(h.c=--h.b),Rb(h,s),r=!0):f.e&&f.e.gc()>0&&(c=(!f.e&&(f.e=new Z),f.e).Mc(e),l=(!f.e&&(f.e=new Z),f.e).Mc(t),(c||l)&&((!f.e&&(f.e=new Z),f.e).Fc(s),++s.c));r||Bn(i.c,s)}function OPe(n,e,t){var i,r,c,s,f,h,l,a,d,g,p,m,k,j,A;return d=n.a.i+n.a.g/2,g=n.a.i+n.a.g/2,m=e.i+e.g/2,j=e.j+e.f/2,f=new V(m,j),l=u(z(e,(qe(),N3)),8),l.a=l.a+d,l.b=l.b+g,c=(f.b-l.b)/(f.a-l.a),i=f.b-c*f.a,k=t.i+t.g/2,A=t.j+t.f/2,h=new V(k,A),a=u(z(t,N3),8),a.a=a.a+d,a.b=a.b+g,s=(h.b-a.b)/(h.a-a.a),r=h.b-s*h.a,p=(i-r)/(s-c),l.a>>0,"0"+e.toString(16)),i="\\x"+qo(t,t.length-2,t.length)):n>=hr?(t=(e=n>>>0,"0"+e.toString(16)),i="\\v"+qo(t,t.length-6,t.length)):i=""+String.fromCharCode(n&ui)}return i}function GUn(n){var e,t,i;if(pg(u(v(n,(cn(),Kt)),101)))for(t=new C(n.j);t.a=e.o&&t.f<=e.f||e.a*.5<=t.f&&e.a*1.5>=t.f){if(s=u(sn(e.n,e.n.c.length-1),209),s.e+s.d+t.g+r<=i&&(c=u(sn(e.n,e.n.c.length-1),209),c.f-n.f+t.f<=n.b||n.a.c.length==1))return xY(e,t),!0;if(e.s+t.g<=i&&(e.t+e.d+t.f+r<=n.b||n.a.c.length==1))return nn(e.b,t),f=u(sn(e.n,e.n.c.length-1),209),nn(e.n,new NM(e.s,f.f+f.a+e.i,e.i)),gZ(u(sn(e.n,e.n.c.length-1),209),t),RUn(e,t),!0}return!1}function XUn(n,e,t){var i,r,c,s;return n.Pj()?(r=null,c=n.Qj(),i=n.Ij(1,s=d$(n,e,t),t,e,c),n.Mj()&&!(n.Yi()&&s!=null?rt(s,t):x(s)===x(t))?(s!=null&&(r=n.Oj(s,r)),r=n.Nj(t,r),n.Tj()&&(r=n.Wj(s,t,r)),r?(r.nj(i),r.oj()):n.Jj(i)):(n.Tj()&&(r=n.Wj(s,t,r)),r?(r.nj(i),r.oj()):n.Jj(i)),s):(s=d$(n,e,t),n.Mj()&&!(n.Yi()&&s!=null?rt(s,t):x(s)===x(t))&&(r=null,s!=null&&(r=n.Oj(s,null)),r=n.Nj(t,r),r&&r.oj()),s)}function BPe(n,e){var t,i,r,c,s;if(e.Ug("Path-Like Graph Wrapping",1),n.b.c.length==0){e.Vg();return}if(r=new znn(n),s=(r.i==null&&(r.i=FQ(r,new VU)),$(r.i)*r.f),t=s/(r.i==null&&(r.i=FQ(r,new VU)),$(r.i)),r.b>t){e.Vg();return}switch(u(v(n,(cn(),LH)),351).g){case 2:c=new JU;break;case 0:c=new XU;break;default:c=new QU}if(i=c.og(n,r),!c.pg())switch(u(v(n,jI),352).g){case 2:i=F_n(r,i);break;case 1:i=SKn(r,i)}LIe(n,r,i),e.Vg()}function G5(n,e){var t,i,r,c,s,f,h,l;e%=24,n.q.getHours()!=e&&(i=new y.Date(n.q.getTime()),i.setDate(i.getDate()+1),f=n.q.getTimezoneOffset()-i.getTimezoneOffset(),f>0&&(h=f/60|0,l=f%60,r=n.q.getDate(),t=n.q.getHours(),t+h>=24&&++r,c=new y.Date(n.q.getFullYear(),n.q.getMonth(),r,e+h,n.q.getMinutes()+l,n.q.getSeconds(),n.q.getMilliseconds()),n.q.setTime(c.getTime()))),s=n.q.getTime(),n.q.setTime(s+36e5),n.q.getHours()!=e&&n.q.setTime(s)}function RPe(n,e){var t,i,r,c;if(Y2e(n.d,n.e),n.c.a.$b(),$(R(v(e.j,(cn(),hI))))!=0||$(R(v(e.j,hI)))!=0)for(t=t2,x(v(e.j,Yh))!==x((lh(),k1))&&U(e.j,(W(),va),(_n(),!0)),c=u(v(e.j,Q8),17).a,r=0;rr&&++l,nn(s,(Ln(f+l,e.c.length),u(e.c[f+l],17))),h+=(Ln(f+l,e.c.length),u(e.c[f+l],17)).a-i,++t;t=j&&n.e[h.p]>m*n.b||D>=t*j)&&(Bn(g.c,f),f=new Z,Bi(s,c),c.a.$b(),l-=a,p=y.Math.max(p,l*n.b+k),l+=D,I=D,D=0,a=0,k=0);return new bi(p,g)}function $F(n){var e,t,i,r,c,s,f;if(!n.d){if(f=new jvn,e=x9,c=e.a.zc(n,e),c==null){for(i=new ne(Hr(n));i.e!=i.i.gc();)t=u(ce(i),29),Bt(f,$F(t));e.a.Bc(n)!=null,e.a.gc()==0}for(s=f.i,r=(!n.q&&(n.q=new q(As,n,11,10)),new ne(n.q));r.e!=r.i.gc();++s)u(ce(r),411);Bt(f,(!n.q&&(n.q=new q(As,n,11,10)),n.q)),ew(f),n.d=new gg((u(L(_((G1(),Hn).o),9),19),f.i),f.g),n.e=u(f.g,688),n.e==null&&(n.e=Joe),Zu(n).b&=-17}return n.d}function Om(n,e,t,i){var r,c,s,f,h,l;if(l=ru(n.e.Dh(),e),h=0,r=u(n.g,124),dr(),u(e,69).xk()){for(s=0;s1||m==-1)if(d=u(k,71),g=u(a,71),d.dc())g.$b();else for(s=!!br(e),c=0,f=n.a?d.Kc():d.Ii();f.Ob();)l=u(f.Pb(),58),r=u(Lf(n,l),58),r?(s?(h=g.dd(r),h==-1?g.Gi(c,r):c!=h&&g.Ui(c,r)):g.Gi(c,r),++c):n.b&&!s&&(g.Gi(c,l),++c);else k==null?a.Wb(null):(r=Lf(n,k),r==null?n.b&&!br(e)&&a.Wb(k):a.Wb(r))}function UPe(n,e){var t,i,r,c,s,f,h,l;for(t=new ogn,r=new te(re(ji(e).a.Kc(),new En));pe(r);)if(i=u(fe(r),18),!fr(i)&&(f=i.c.i,YZ(f,MP))){if(l=pen(n,f,MP,CP),l==-1)continue;t.b=y.Math.max(t.b,l),!t.a&&(t.a=new Z),nn(t.a,f)}for(s=new te(re(Qt(e).a.Kc(),new En));pe(s);)if(c=u(fe(s),18),!fr(c)&&(h=c.d.i,YZ(h,CP))){if(l=pen(n,h,CP,MP),l==-1)continue;t.d=y.Math.max(t.d,l),!t.c&&(t.c=new Z),nn(t.c,h)}return t}function GPe(n,e,t,i){var r,c,s,f,h,l,a;if(t.d.i!=e.i){for(r=new Tl(n),_a(r,(Vn(),Mi)),U(r,(W(),st),t),U(r,(cn(),Kt),(Oi(),qc)),Bn(i.c,r),s=new Pc,ic(s,r),gi(s,(tn(),Wn)),f=new Pc,ic(f,r),gi(f,Zn),a=t.d,Ii(t,s),c=new E0,Ur(c,t),U(c,Fr,null),Zi(c,f),Ii(c,a),l=new xi(t.b,0);l.b1e6)throw M(new _E("power of ten too big"));if(n<=et)return Fp(ry(m3[1],e),e);for(i=ry(m3[1],et),r=i,t=vc(n-et),e=wi(n%et);Ec(t,et)>0;)r=Pg(r,i),t=bs(t,et);for(r=Pg(r,ry(m3[1],e)),r=Fp(r,et),t=vc(n-et);Ec(t,et)>0;)r=Fp(r,et),t=bs(t,et);return r=Fp(r,e),r}function WUn(n){var e,t,i,r,c,s,f,h,l,a;for(h=new C(n.a);h.al&&i>l)a=f,l=$(e.p[f.p])+$(e.d[f.p])+f.o.b+f.d.a;else{r=!1,t._g()&&t.bh("bk node placement breaks on "+f+" which should have been after "+a);break}if(!r)break}return t._g()&&t.bh(e+" is feasible: "+r),r}function qen(n,e,t,i){var r,c,s,f,h,l,a,d,g;if(c=new Tl(n),_a(c,(Vn(),_c)),U(c,(cn(),Kt),(Oi(),qc)),r=0,e){for(s=new Pc,U(s,(W(),st),e),U(c,st,e.i),gi(s,(tn(),Wn)),ic(s,c),g=fh(e.e),l=g,a=0,d=l.length;a0){if(r<0&&a.a&&(r=h,c=l[0],i=0),r>=0){if(f=a.b,h==r&&(f-=i++,f==0))return 0;if(!ZGn(e,l,a,f,s)){h=r-1,l[0]=c;continue}}else if(r=-1,!ZGn(e,l,a,0,s))return 0}else{if(r=-1,Xi(a.c,0)==32){if(d=l[0],n$n(e,l),l[0]>d)continue}else if(Lge(e,a.c,l[0])){l[0]+=a.c.length;continue}return 0}return $De(s,t)?l[0]:0}function QPe(n,e,t){var i,r,c,s,f,h,l,a,d,g;for(a=new dM(new B9n(t)),f=K(so,Xh,28,n.f.e.c.length,16,1),TW(f,f.length),t[e.a]=0,l=new C(n.f.e);l.a=0&&!Rg(n,a,d);)--d;r[a]=d}for(p=0;p=0&&!Rg(n,f,m);)--f;c[m]=f}for(h=0;he[g]&&gi[h]&&xA(n,h,g,!1,!0)}function Uen(n){var e,t,i,r,c,s,f,h;t=on(un(v(n,(qs(),XYn)))),c=n.a.c.d,f=n.a.d.d,t?(s=rh(mi(new V(f.a,f.b),c),.5),h=rh(Ki(n.e),.5),e=mi(tt(new V(c.a,c.b),s),h),ZX(n.d,e)):(r=$(R(v(n.a,tZn))),i=n.d,c.a>=f.a?c.b>=f.b?(i.a=f.a+(c.a-f.a)/2+r,i.b=f.b+(c.b-f.b)/2-r-n.e.b):(i.a=f.a+(c.a-f.a)/2+r,i.b=c.b+(f.b-c.b)/2+r):c.b>=f.b?(i.a=c.a+(f.a-c.a)/2+r,i.b=f.b+(c.b-f.b)/2+r):(i.a=c.a+(f.a-c.a)/2+r,i.b=c.b+(f.b-c.b)/2-r-n.e.b))}function X5(n){var e,t,i,r,c,s,f,h;if(!n.f){if(h=new iG,f=new iG,e=x9,s=e.a.zc(n,e),s==null){for(c=new ne(Hr(n));c.e!=c.i.gc();)r=u(ce(c),29),Bt(h,X5(r));e.a.Bc(n)!=null,e.a.gc()==0}for(i=(!n.s&&(n.s=new q(ku,n,21,17)),new ne(n.s));i.e!=i.i.gc();)t=u(ce(i),179),O(t,102)&&ve(f,u(t,19));ew(f),n.r=new _Sn(n,(u(L(_((G1(),Hn).o),6),19),f.i),f.g),Bt(h,n.r),ew(h),n.f=new gg((u(L(_(Hn.o),5),19),h.i),h.g),Zu(n).b&=-3}return n.f}function QUn(n){r0(n,new gd(e0(Yd(n0(Zd(new Ra,jd),"ELK DisCo"),"Layouter for arranging unconnected subgraphs. The subgraphs themselves are, by default, not laid out."),new Bbn))),Q(n,jd,WB,rn(aon)),Q(n,jd,JB,rn(g_)),Q(n,jd,l3,rn(DYn)),Q(n,jd,W0,rn(lon)),Q(n,jd,Dtn,rn(xYn)),Q(n,jd,Ltn,rn($Yn)),Q(n,jd,Otn,rn(FYn)),Q(n,jd,Ntn,rn(NYn)),Q(n,jd,_tn,rn(LYn)),Q(n,jd,Htn,rn(w_)),Q(n,jd,qtn,rn(hon)),Q(n,jd,Utn,rn(pP))}function KA(){KA=F,Ddn=S(T(fs,1),gh,28,15,[48,49,50,51,52,53,54,55,56,57,65,66,67,68,69,70]),Toe=new RegExp(`[ +\r\f]+`);try{L9=S(T(LNe,1),Fn,2114,0,[new W9((kX(),zT("yyyy-MM-dd'T'HH:mm:ss'.'SSSZ",D7((KE(),KE(),P8))))),new W9(zT("yyyy-MM-dd'T'HH:mm:ss'.'SSS",D7(P8))),new W9(zT("yyyy-MM-dd'T'HH:mm:ss",D7(P8))),new W9(zT("yyyy-MM-dd'T'HH:mm",D7(P8))),new W9(zT("yyyy-MM-dd",D7(P8)))])}catch(n){if(n=It(n),!O(n,82))throw M(n)}}function ZPe(n,e){var t,i,r,c;if(r=to(n.d,1)!=0,i=Cen(n,e),i==0&&on(un(v(e.j,(W(),va)))))return 0;!on(un(v(e.j,(W(),va))))&&!on(un(v(e.j,y2)))||x(v(e.j,(cn(),Yh)))===x((lh(),k1))?e.c.mg(e.e,r):r=on(un(v(e.j,va))),sy(n,e,r,!0),on(un(v(e.j,y2)))&&U(e.j,y2,(_n(),!1)),on(un(v(e.j,va)))&&(U(e.j,va,(_n(),!1)),U(e.j,y2,!0)),t=Cen(n,e);do{if($Q(n),t==0)return 0;r=!r,c=t,sy(n,e,r,!1),t=Cen(n,e)}while(c>t);return c}function YUn(n,e){var t,i,r,c;if(r=to(n.d,1)!=0,i=kA(n,e),i==0&&on(un(v(e.j,(W(),va)))))return 0;!on(un(v(e.j,(W(),va))))&&!on(un(v(e.j,y2)))||x(v(e.j,(cn(),Yh)))===x((lh(),k1))?e.c.mg(e.e,r):r=on(un(v(e.j,va))),sy(n,e,r,!0),on(un(v(e.j,y2)))&&U(e.j,y2,(_n(),!1)),on(un(v(e.j,va)))&&(U(e.j,va,(_n(),!1)),U(e.j,y2,!0)),t=kA(n,e);do{if($Q(n),t==0)return 0;r=!r,c=t,sy(n,e,r,!1),t=kA(n,e)}while(c>t);return c}function Gen(n,e,t,i){var r,c,s,f,h,l,a,d,g;return h=mi(new V(t.a,t.b),n),l=h.a*e.b-h.b*e.a,a=e.a*i.b-e.b*i.a,d=(h.a*i.b-h.b*i.a)/a,g=l/a,a==0?l==0?(r=tt(new V(t.a,t.b),rh(new V(i.a,i.b),.5)),c=W1(n,r),s=W1(tt(new V(n.a,n.b),e),r),f=y.Math.sqrt(i.a*i.a+i.b*i.b)*.5,c=0&&d<=1&&g>=0&&g<=1?tt(new V(n.a,n.b),rh(new V(e.a,e.b),d)):null}function nIe(n,e,t){var i,r,c,s,f;if(i=u(v(n,(cn(),kH)),21),t.a>e.a&&(i.Hc((wd(),m9))?n.c.a+=(t.a-e.a)/2:i.Hc(v9)&&(n.c.a+=t.a-e.a)),t.b>e.b&&(i.Hc((wd(),y9))?n.c.b+=(t.b-e.b)/2:i.Hc(k9)&&(n.c.b+=t.b-e.b)),u(v(n,(W(),Hc)),21).Hc((pr(),cs))&&(t.a>e.a||t.b>e.b))for(f=new C(n.a);f.ae.a&&(i.Hc((wd(),m9))?n.c.a+=(t.a-e.a)/2:i.Hc(v9)&&(n.c.a+=t.a-e.a)),t.b>e.b&&(i.Hc((wd(),y9))?n.c.b+=(t.b-e.b)/2:i.Hc(k9)&&(n.c.b+=t.b-e.b)),u(v(n,(W(),Hc)),21).Hc((pr(),cs))&&(t.a>e.a||t.b>e.b))for(s=new C(n.a);s.a0?n.i:0)>e&&h>0&&(c=0,s+=h+n.i,r=y.Math.max(r,g),i+=h+n.i,h=0,g=0,t&&(++d,nn(n.n,new NM(n.s,s,n.i))),f=0),g+=l.g+(f>0?n.i:0),h=y.Math.max(h,l.f),t&&gZ(u(sn(n.n,d),209),l),c+=l.g+(f>0?n.i:0),++f;return r=y.Math.max(r,g),i+=h,t&&(n.r=r,n.d=i,kZ(n.j)),new Ho(n.s,n.t,r,i)}function xF(n){var e,t,i,r,c,s,f,h,l,a,d,g;for(n.b=!1,d=St,h=li,g=St,l=li,i=n.e.a.ec().Kc();i.Ob();)for(t=u(i.Pb(),272),r=t.a,d=y.Math.min(d,r.c),h=y.Math.max(h,r.c+r.b),g=y.Math.min(g,r.d),l=y.Math.max(l,r.d+r.a),s=new C(t.c);s.an.o.a&&(a=(h-n.o.a)/2,f.b=y.Math.max(f.b,a),f.c=y.Math.max(f.c,a))}}function rIe(n){var e,t,i,r,c,s,f,h;for(c=new XOn,$le(c,(qp(),due)),i=(r=S$(n,K(fn,J,2,0,6,1)),new Xv(new Ku(new SD(n,r).b)));i.bf?1:-1:hY(n.a,e.a,c),r==-1)d=-h,a=s==h?ZN(e.a,f,n.a,c):e$(e.a,f,n.a,c);else if(d=s,s==h){if(r==0)return dh(),O8;a=ZN(n.a,c,e.a,f)}else a=e$(n.a,c,e.a,f);return l=new Qa(d,a.length,a),Q6(l),l}function cIe(n,e){var t,i,r,c;if(c=$Un(e),!e.c&&(e.c=new q(Qu,e,9,9)),qt(new Tn(null,(!e.c&&(e.c=new q(Qu,e,9,9)),new In(e.c,16))),new H9n(c)),r=u(v(c,(W(),Hc)),21),QOe(e,r),r.Hc((pr(),cs)))for(i=new ne((!e.c&&(e.c=new q(Qu,e,9,9)),e.c));i.e!=i.i.gc();)t=u(ce(i),123),TDe(n,e,c,t);return u(z(e,(cn(),xd)),181).gc()!=0&&Aqn(e,c),on(un(v(c,ahn)))&&r.Fc(eI),kt(c,Mj)&&xjn(new XY($(R(v(c,Mj)))),c),x(z(e,Bw))===x((jl(),M1))?JLe(n,e,c):NLe(n,e,c),c}function uIe(n){var e,t,i,r,c,s,f,h;for(r=new C(n.b);r.a0?qo(t.a,0,c-1):""):(Fi(0,c-1,n.length),n.substr(0,c-1)):t?t.a:n}function oIe(n,e){var t,i,r,c,s,f,h;for(e.Ug("Sort By Input Model "+v(n,(cn(),Yh)),1),r=0,i=new C(n.b);i.a=n.b.length?(c[r++]=s.b[i++],c[r++]=s.b[i++]):i>=s.b.length?(c[r++]=n.b[t++],c[r++]=n.b[t++]):s.b[i]0?n.i:0)),++e;for(IY(n.n,h),n.d=t,n.r=i,n.g=0,n.f=0,n.e=0,n.o=St,n.p=St,c=new C(n.b);c.a0&&(r=(!n.n&&(n.n=new q(Ar,n,1,7)),u(L(n.n,0),135)).a,!r||Be(Be((e.a+=' "',e),r),'"'))),t=(!n.b&&(n.b=new Nn(he,n,4,7)),!(n.b.i<=1&&(!n.c&&(n.c=new Nn(he,n,5,8)),n.c.i<=1))),t?e.a+=" [":e.a+=" ",Be(e,RX(new yD,new ne(n.b))),t&&(e.a+="]"),e.a+=iR,t&&(e.a+="["),Be(e,RX(new yD,new ne(n.c))),t&&(e.a+="]"),e.a)}function fIe(n,e){var t,i,r,c,s,f,h,l,a,d,g,p,m,k,j,A,I,D,N,H,X,en,jn,kn,Rn;for(H=n.c,X=e.c,t=qr(H.a,n,0),i=qr(X.a,e,0),D=u(F0(n,(gr(),Vu)).Kc().Pb(),12),kn=u(F0(n,Jc).Kc().Pb(),12),N=u(F0(e,Vu).Kc().Pb(),12),Rn=u(F0(e,Jc).Kc().Pb(),12),A=fh(D.e),en=fh(kn.g),I=fh(N.e),jn=fh(Rn.g),uw(n,i,X),s=I,a=0,m=s.length;aa?new ed((lf(),zw),t,e,l-a):l>0&&a>0&&(new ed((lf(),zw),e,t,0),new ed(zw,t,e,0))),s)}function aIe(n,e,t){var i,r,c;for(n.a=new Z,c=ge(e.b,0);c.b!=c.d.c;){for(r=u(be(c),40);u(v(r,(lc(),Sh)),17).a>n.a.c.length-1;)nn(n.a,new bi(t2,Arn));i=u(v(r,Sh),17).a,t==(ci(),Br)||t==Xr?(r.e.a<$(R(u(sn(n.a,i),42).a))&&QO(u(sn(n.a,i),42),r.e.a),r.e.a+r.f.a>$(R(u(sn(n.a,i),42).b))&&YO(u(sn(n.a,i),42),r.e.a+r.f.a)):(r.e.b<$(R(u(sn(n.a,i),42).a))&&QO(u(sn(n.a,i),42),r.e.b),r.e.b+r.f.b>$(R(u(sn(n.a,i),42).b))&&YO(u(sn(n.a,i),42),r.e.b+r.f.b))}}function eGn(n,e,t,i){var r,c,s,f,h,l,a;if(c=KT(i),f=on(un(v(i,(cn(),uhn)))),(f||on(un(v(n,wI))))&&!pg(u(v(n,Kt),101)))r=zp(c),h=Nen(n,t,t==(gr(),Jc)?r:Bk(r));else switch(h=new Pc,ic(h,n),e?(a=h.n,a.a=e.a-n.n.a,a.b=e.b-n.n.b,o_n(a,0,0,n.o.a,n.o.b),gi(h,jUn(h,c))):(r=zp(c),gi(h,t==(gr(),Jc)?r:Bk(r))),s=u(v(i,(W(),Hc)),21),l=h.j,c.g){case 2:case 1:(l==(tn(),Xn)||l==ae)&&s.Fc((pr(),m2));break;case 4:case 3:(l==(tn(),Zn)||l==Wn)&&s.Fc((pr(),m2))}return h}function tGn(n,e){var t,i,r,c,s,f;for(s=new sd(new qa(n.f.b).a);s.b;){if(c=L0(s),r=u(c.ld(),602),e==1){if(r.Af()!=(ci(),us)&&r.Af()!=Vf)continue}else if(r.Af()!=(ci(),Br)&&r.Af()!=Xr)continue;switch(i=u(u(c.md(),42).b,86),f=u(u(c.md(),42).a,194),t=f.c,r.Af().g){case 2:i.g.c=n.e.a,i.g.b=y.Math.max(1,i.g.b+t);break;case 1:i.g.c=i.g.c+t,i.g.b=y.Math.max(1,i.g.b-t);break;case 4:i.g.d=n.e.b,i.g.a=y.Math.max(1,i.g.a+t);break;case 3:i.g.d=i.g.d+t,i.g.a=y.Math.max(1,i.g.a-t)}}}function dIe(n,e){var t,i,r,c,s,f,h,l,a,d,g,p,m,k;for(f=K(ye,Ke,28,e.b.c.length,15,1),l=K(D_,G,273,e.b.c.length,0,1),h=K(Qh,b1,10,e.b.c.length,0,1),d=n.a,g=0,p=d.length;g0&&h[i]&&(m=yg(n.b,h[i],r)),k=y.Math.max(k,r.c.c.b+m);for(c=new C(a.e);c.a1)throw M(new Gn(Zy));h||(c=Fh(e,i.Kc().Pb()),s.Fc(c))}return JQ(n,pnn(n,e,t),s)}function HA(n,e,t){var i,r,c,s,f,h,l,a;if(Sl(n.e,e))h=(dr(),u(e,69).xk()?new eM(e,n):new j7(e,n)),jA(h.c,h.b),I6(h,u(t,16));else{for(a=ru(n.e.Dh(),e),i=u(n.g,124),s=0;s"}h!=null&&(e.a+=""+h)}else n.e?(f=n.e.zb,f!=null&&(e.a+=""+f)):(e.a+="?",n.b?(e.a+=" super ",_F(n.b,e)):n.f&&(e.a+=" extends ",_F(n.f,e)))}function mIe(n){n.b=null,n.a=null,n.o=null,n.q=null,n.v=null,n.w=null,n.B=null,n.p=null,n.Q=null,n.R=null,n.S=null,n.T=null,n.U=null,n.V=null,n.W=null,n.bb=null,n.eb=null,n.ab=null,n.H=null,n.db=null,n.c=null,n.d=null,n.f=null,n.n=null,n.r=null,n.s=null,n.u=null,n.G=null,n.J=null,n.e=null,n.j=null,n.i=null,n.g=null,n.k=null,n.t=null,n.F=null,n.I=null,n.L=null,n.M=null,n.O=null,n.P=null,n.$=null,n.N=null,n.Z=null,n.cb=null,n.K=null,n.D=null,n.A=null,n.C=null,n._=null,n.fb=null,n.X=null,n.Y=null,n.gb=!1,n.hb=!1}function vIe(n){var e,t,i,r;if(i=ZF((!n.c&&(n.c=Y7(vc(n.f))),n.c),0),n.e==0||n.a==0&&n.f!=-1&&n.e<0)return i;if(e=xQ(n)<0?1:0,t=n.e,r=(i.length+1+y.Math.abs(wi(n.e)),new lp),e==1&&(r.a+="-"),n.e>0)if(t-=i.length-e,t>=0){for(r.a+="0.";t>Id.length;t-=Id.length)QSn(r,Id);$An(r,Id,wi(t)),Be(r,(zn(e,i.length+1),i.substr(e)))}else t=e-t,Be(r,qo(i,e,wi(t))),r.a+=".",Be(r,$W(i,wi(t)));else{for(Be(r,(zn(e,i.length+1),i.substr(e)));t<-Id.length;t+=Id.length)QSn(r,Id);$An(r,Id,wi(-t))}return r.a}function HF(n){var e,t,i,r,c,s,f,h,l;return!(n.k!=(Vn(),zt)||n.j.c.length<=1||(c=u(v(n,(cn(),Kt)),101),c==(Oi(),qc))||(r=(cw(),(n.q?n.q:(Dn(),Dn(),Wh))._b(db)?i=u(v(n,db),203):i=u(v(Hi(n),W8),203),i),r==TI)||!(r==S2||r==A2)&&(s=$(R(rw(n,J8))),e=u(v(n,Aj),140),!e&&(e=new mV(s,s,s,s)),l=uc(n,(tn(),Wn)),h=e.d+e.a+(l.gc()-1)*s,h>n.o.b||(t=uc(n,Zn),f=e.d+e.a+(t.gc()-1)*s,f>n.o.b)))}function kIe(n,e){var t,i,r,c,s,f,h,l,a,d,g,p,m,k,j;e.Ug("Orthogonal edge routing",1),l=$(R(v(n,(cn(),T2)))),t=$(R(v(n,C2))),i=$(R(v(n,Bd))),g=new lN(0,t),j=0,s=new xi(n.b,0),f=null,a=null,h=null,d=null;do a=s.b0?(p=(m-1)*t,f&&(p+=i),a&&(p+=i),pe||on(un(z(h,(Bf(),Kj)))))&&(r=0,c+=a.b+t,Bn(d.c,a),a=new dJ(c,t),i=new U$(0,a.f,a,t),wT(a,i),r=0),i.b.c.length==0||!on(un(z(At(h),(Bf(),Lq))))&&(h.f>=i.o&&h.f<=i.f||i.a*.5<=h.f&&i.a*1.5>=h.f)?xY(i,h):(s=new U$(i.s+i.r+t,a.f,a,t),wT(a,s),xY(s,h)),r=h.i+h.g;return Bn(d.c,a),d}function W5(n){var e,t,i,r;if(!(n.b==null||n.b.length<=2)&&!n.a){for(e=0,r=0;r=n.b[r+1])r+=2;else if(t0)for(i=new _u(u(ot(n.a,c),21)),Dn(),Yt(i,new LG(e)),r=new xi(c.b,0);r.b0&&i>=-6?i>=0?M7(c,t-wi(n.e),"."):(L$(c,e-1,e-1,"0."),M7(c,e+1,hh(Id,0,-wi(i)-1))):(t-e>=1&&(M7(c,e,"."),++t),M7(c,t,"E"),i>0&&M7(c,++t,"+"),M7(c,++t,""+H6(vc(i)))),n.g=c.a,n.g))}function IIe(n,e){var t,i,r,c,s,f,h,l,a,d,g,p,m,k,j,A,I,D,N,H,X,en;i=$(R(v(e,(cn(),fhn)))),H=u(v(e,Q8),17).a,g=4,r=3,X=20/H,p=!1,h=0,s=et;do{for(c=h!=1,d=h!=0,en=0,j=n.a,I=0,N=j.length;IH)?(h=2,s=et):h==0?(h=1,s=en):(h=0,s=en)):(p=en>=s||s-en0?1:s0(isNaN(i),isNaN(0)))>=0^(Rs(jh),(y.Math.abs(f)<=jh||f==0||isNaN(f)&&isNaN(0)?0:f<0?-1:f>0?1:s0(isNaN(f),isNaN(0)))>=0)?y.Math.max(f,i):(Rs(jh),(y.Math.abs(i)<=jh||i==0||isNaN(i)&&isNaN(0)?0:i<0?-1:i>0?1:s0(isNaN(i),isNaN(0)))>0?y.Math.sqrt(f*f+i*i):-y.Math.sqrt(f*f+i*i))}function pd(n,e){var t,i,r,c,s,f;if(e){if(!n.a&&(n.a=new BE),n.e==2){FE(n.a,e);return}if(e.e==1){for(r=0;r=hr?Er(t,$Y(i)):T4(t,i&ui),s=new IN(10,null,0),wwe(n.a,s,f-1)):(t=(s.Mm().length+c,new r6),Er(t,s.Mm())),e.e==0?(i=e.Km(),i>=hr?Er(t,$Y(i)):T4(t,i&ui)):Er(t,e.Mm()),u(s,530).b=t.a}}function LIe(n,e,t){var i,r,c,s,f,h,l,a,d,g,p,m,k,j;if(!t.dc()){for(f=0,g=0,i=t.Kc(),m=u(i.Pb(),17).a;f1&&(h=l.Hg(h,n.a,f));return h.c.length==1?u(sn(h,h.c.length-1),238):h.c.length==2?jIe((Ln(0,h.c.length),u(h.c[0],238)),(Ln(1,h.c.length),u(h.c[1],238)),s,c):null}function BIe(n,e,t){var i,r,c,s,f,h,l;for(t.Ug("Find roots",1),n.a.c.length=0,r=ge(e.b,0);r.b!=r.d.c;)i=u(be(r),40),i.b.b==0&&(U(i,(pt(),Ca),(_n(),!0)),nn(n.a,i));switch(n.a.c.length){case 0:c=new q$(0,e,"DUMMY_ROOT"),U(c,(pt(),Ca),(_n(),!0)),U(c,tq,!0),xe(e.b,c);break;case 1:break;default:for(s=new q$(0,e,IS),h=new C(n.a);h.a=y.Math.abs(i.b)?(i.b=0,c.d+c.a>s.d&&c.ds.c&&c.c0){if(e=new gX(n.i,n.g),t=n.i,c=t<100?null:new F1(t),n.Tj())for(i=0;i0){for(f=n.g,l=n.i,t5(n),c=l<100?null:new F1(l),i=0;i>13|(n.m&15)<<9,r=n.m>>4&8191,c=n.m>>17|(n.h&255)<<5,s=(n.h&1048320)>>8,f=e.l&8191,h=e.l>>13|(e.m&15)<<9,l=e.m>>4&8191,a=e.m>>17|(e.h&255)<<5,d=(e.h&1048320)>>8,jn=t*f,kn=i*f,Rn=r*f,Kn=c*f,ue=s*f,h!=0&&(kn+=t*h,Rn+=i*h,Kn+=r*h,ue+=c*h),l!=0&&(Rn+=t*l,Kn+=i*l,ue+=r*l),a!=0&&(Kn+=t*a,ue+=i*a),d!=0&&(ue+=t*d),p=jn&ro,m=(kn&511)<<13,g=p+m,j=jn>>22,A=kn>>9,I=(Rn&262143)<<4,D=(Kn&31)<<17,k=j+A+I+D,H=Rn>>18,X=Kn>>5,en=(ue&4095)<<8,N=H+X+en,k+=g>>22,g&=ro,N+=k>>22,k&=ro,N&=Il,Yc(g,k,N)}function dGn(n){var e,t,i,r,c,s,f;if(f=u(sn(n.j,0),12),f.g.c.length!=0&&f.e.c.length!=0)throw M(new Or("Interactive layout does not support NORTH/SOUTH ports with incoming _and_ outgoing edges."));if(f.g.c.length!=0){for(c=St,t=new C(f.g);t.a4)if(n.fk(e)){if(n.al()){if(r=u(e,54),i=r.Eh(),h=i==n.e&&(n.ml()?r.yh(r.Fh(),n.il())==n.jl():-1-r.Fh()==n.Lj()),n.nl()&&!h&&!i&&r.Jh()){for(c=0;c0&&b_n(n,f,d);for(r=new C(d);r.an.d[s.p]&&(t+=SJ(n.b,c)*u(h.b,17).a,V1(n.a,Y(c)));for(;!i6(n.a);)oQ(n.b,u(Sp(n.a),17).a)}return t}function qIe(n,e){var t,i,r,c,s,f,h,l,a,d;if(a=u(v(n,(W(),gc)),64),i=u(sn(n.j,0),12),a==(tn(),Xn)?gi(i,ae):a==ae&&gi(i,Xn),u(v(e,(cn(),xd)),181).Hc((go(),Gd))){if(h=$(R(v(n,Av))),l=$(R(v(n,Sv))),s=$(R(v(n,qw))),f=u(v(e,_w),21),f.Hc((zu(),Fl)))for(t=l,d=n.o.a/2-i.n.a,c=new C(i.f);c.a0&&(l=n.n.a/c);break;case 2:case 4:r=n.i.o.b,r>0&&(l=n.n.b/r)}U(n,(W(),fb),l)}if(h=n.o,s=n.a,i)s.a=i.a,s.b=i.b,n.d=!0;else if(e!=Jf&&e!=Sa&&f!=sc)switch(f.g){case 1:s.a=h.a/2;break;case 2:s.a=h.a,s.b=h.b/2;break;case 3:s.a=h.a/2,s.b=h.b;break;case 4:s.b=h.b/2}else s.a=h.a/2,s.b=h.b/2}function J5(n){var e,t,i,r,c,s,f,h,l,a;if(n.Pj())if(a=n.Ej(),h=n.Qj(),a>0)if(e=new KQ(n.pj()),t=a,c=t<100?null:new F1(t),I7(n,t,e.g),r=t==1?n.Ij(4,L(e,0),null,0,h):n.Ij(6,e,null,-1,h),n.Mj()){for(i=new ne(e);i.e!=i.i.gc();)c=n.Oj(ce(i),c);c?(c.nj(r),c.oj()):n.Jj(r)}else c?(c.nj(r),c.oj()):n.Jj(r);else I7(n,n.Ej(),n.Fj()),n.Jj(n.Ij(6,(Dn(),sr),null,-1,h));else if(n.Mj())if(a=n.Ej(),a>0){for(f=n.Fj(),l=a,I7(n,a,f),c=l<100?null:new F1(l),i=0;i1&&Su(s)*ao(s)/2>f[0]){for(c=0;cf[c];)++c;m=new Jl(k,0,c+1),d=new hT(m),a=Su(s)/ao(s),h=QF(d,e,new cp,t,i,r,a),tt(sf(d.e),h),Mp(ym(g,d),_m),p=new Jl(k,c+1,k.c.length),CZ(g,p),k.c.length=0,l=0,bPn(f,f.length,0)}else j=g.b.c.length==0?null:sn(g.b,0),j!=null&&M$(g,0),l>0&&(f[l]=f[l-1]),f[l]+=Su(s)*ao(s),++l,Bn(k.c,s);return k}function WIe(n,e){var t,i,r,c;t=e.b,c=new _u(t.j),r=0,i=t.j,i.c.length=0,g0(u(od(n.b,(tn(),Xn),(D0(),ub)),15),t),r=qk(c,r,new bpn,i),g0(u(od(n.b,Xn,ma),15),t),r=qk(c,r,new opn,i),g0(u(od(n.b,Xn,cb),15),t),g0(u(od(n.b,Zn,ub),15),t),g0(u(od(n.b,Zn,ma),15),t),r=qk(c,r,new wpn,i),g0(u(od(n.b,Zn,cb),15),t),g0(u(od(n.b,ae,ub),15),t),r=qk(c,r,new gpn,i),g0(u(od(n.b,ae,ma),15),t),r=qk(c,r,new ppn,i),g0(u(od(n.b,ae,cb),15),t),g0(u(od(n.b,Wn,ub),15),t),r=qk(c,r,new hpn,i),g0(u(od(n.b,Wn,ma),15),t),g0(u(od(n.b,Wn,cb),15),t)}function JIe(n,e,t){var i,r,c,s,f,h,l,a,d,g,p;for(f=new C(e);f.a.5?A-=s*2*(m-.5):m<.5&&(A+=c*2*(.5-m)),r=f.d.b,Aj.a-k-a&&(A=j.a-k-a),f.n.a=e+A}}function nOe(n){var e,t,i,r,c;if(i=u(v(n,(cn(),ou)),171),i==(Yo(),ka)){for(t=new te(re(ji(n).a.Kc(),new En));pe(t);)if(e=u(fe(t),18),!SLn(e))throw M(new _l(oR+Gk(n)+"' has its layer constraint set to FIRST_SEPARATE, but has at least one incoming edge. FIRST_SEPARATE nodes must not have incoming edges."))}else if(i==xw){for(c=new te(re(Qt(n).a.Kc(),new En));pe(c);)if(r=u(fe(c),18),!SLn(r))throw M(new _l(oR+Gk(n)+"' has its layer constraint set to LAST_SEPARATE, but has at least one outgoing edge. LAST_SEPARATE nodes must not have outgoing edges."))}}function gy(n,e){var t,i,r,c,s,f,h,l,a,d,g,p,m;if(n.e&&n.c.c>19&&(e=tm(e),h=!h),s=BMe(e),c=!1,r=!1,i=!1,n.h==Ty&&n.m==0&&n.l==0)if(r=!0,c=!0,s==-1)n=nTn((R4(),hun)),i=!0,h=!h;else return f=Xnn(n,s),h&&H$(f),t&&(ba=Yc(0,0,0)),f;else n.h>>19&&(c=!0,n=tm(n),i=!0,h=!h);return s!=-1?d6e(n,s,h,c,t):DZ(n,e)<0?(t&&(c?ba=tm(n):ba=Yc(n.l,n.m,n.h)),Yc(0,0,0)):$Se(i?n:Yc(n.l,n.m,n.h),e,h,c,r,t)}function zF(n,e){var t,i,r,c,s,f,h,l,a,d,g,p,m;if(s=n.e,h=e.e,s==0)return e;if(h==0)return n;if(c=n.d,f=e.d,c+f==2)return t=vi(n.a[0],mr),i=vi(e.a[0],mr),s==h?(a=nr(t,i),m=Ae(a),p=Ae(U1(a,32)),p==0?new gl(s,m):new Qa(s,2,S(T(ye,1),Ke,28,15,[m,p]))):(dh(),AC(s<0?bs(i,t):bs(t,i),0)?ta(s<0?bs(i,t):bs(t,i)):G6(ta(n1(s<0?bs(i,t):bs(t,i)))));if(s==h)g=s,d=c>=f?e$(n.a,c,e.a,f):e$(e.a,f,n.a,c);else{if(r=c!=f?c>f?1:-1:hY(n.a,e.a,c),r==0)return dh(),O8;r==1?(g=s,d=ZN(n.a,c,e.a,f)):(g=h,d=ZN(e.a,f,n.a,c))}return l=new Qa(g,d.length,d),Q6(l),l}function tOe(n,e){var t,i,r,c,s,f,h;if(!(n.g>e.f||e.g>n.f)){for(t=0,i=0,s=n.w.a.ec().Kc();s.Ob();)r=u(s.Pb(),12),nx(cc(S(T(Ei,1),J,8,0,[r.i.n,r.n,r.a])).b,e.g,e.f)&&++t;for(f=n.r.a.ec().Kc();f.Ob();)r=u(f.Pb(),12),nx(cc(S(T(Ei,1),J,8,0,[r.i.n,r.n,r.a])).b,e.g,e.f)&&--t;for(h=e.w.a.ec().Kc();h.Ob();)r=u(h.Pb(),12),nx(cc(S(T(Ei,1),J,8,0,[r.i.n,r.n,r.a])).b,n.g,n.f)&&++i;for(c=e.r.a.ec().Kc();c.Ob();)r=u(c.Pb(),12),nx(cc(S(T(Ei,1),J,8,0,[r.i.n,r.n,r.a])).b,n.g,n.f)&&--i;t=0)return t;switch(y0(Lr(n,t))){case 2:{if(An("",r1(n,t.qk()).xe())){if(h=G7(Lr(n,t)),f=P4(Lr(n,t)),a=Qnn(n,e,h,f),a)return a;for(r=Aen(n,e),s=0,d=r.gc();s1)throw M(new Gn(Zy));for(a=ru(n.e.Dh(),e),i=u(n.g,124),s=0;s1,l=new Of(g.b);tc(l.a)||tc(l.b);)h=u(tc(l.a)?E(l.a):E(l.b),18),d=h.c==g?h.d:h.c,y.Math.abs(cc(S(T(Ei,1),J,8,0,[d.i.n,d.n,d.a])).b-s.b)>1&&qTe(n,h,s,c,g)}}function sOe(n){var e,t,i,r,c,s;if(r=new xi(n.e,0),i=new xi(n.a,0),n.d)for(t=0;t_R;){for(c=e,s=0;y.Math.abs(e-c)<_R;)++s,e=$((oe(r.b0),r.a.Xb(r.c=--r.b),EPe(n,n.b-s,c,i,r),oe(r.b0),i.a.Xb(i.c=--i.b)}if(!n.d)for(t=0;t0?(n.f[a.p]=p/(a.e.c.length+a.g.c.length),n.c=y.Math.min(n.c,n.f[a.p]),n.b=y.Math.max(n.b,n.f[a.p])):f&&(n.f[a.p]=p)}}function hOe(n){n.b=null,n.bb=null,n.fb=null,n.qb=null,n.a=null,n.c=null,n.d=null,n.e=null,n.f=null,n.n=null,n.M=null,n.L=null,n.Q=null,n.R=null,n.K=null,n.db=null,n.eb=null,n.g=null,n.i=null,n.j=null,n.k=null,n.gb=null,n.o=null,n.p=null,n.q=null,n.r=null,n.$=null,n.ib=null,n.S=null,n.T=null,n.t=null,n.s=null,n.u=null,n.v=null,n.w=null,n.B=null,n.A=null,n.C=null,n.D=null,n.F=null,n.G=null,n.H=null,n.I=null,n.J=null,n.P=null,n.Z=null,n.U=null,n.V=null,n.W=null,n.X=null,n.Y=null,n._=null,n.ab=null,n.cb=null,n.hb=null,n.nb=null,n.lb=null,n.mb=null,n.ob=null,n.pb=null,n.jb=null,n.kb=null,n.N=!1,n.O=!1}function lOe(n,e,t){var i,r,c,s;for(t.Ug("Graph transformation ("+n.a+")",1),s=T0(e.a),c=new C(e.b);c.a=f.b.c)&&(f.b=e),(!f.c||e.c<=f.c.c)&&(f.d=f.c,f.c=e),(!f.e||e.d>=f.e.d)&&(f.e=e),(!f.f||e.d<=f.f.d)&&(f.f=e);return i=new eA((nm(),rb)),Z7(n,IZn,new Ku(S(T(aj,1),Fn,382,0,[i]))),s=new eA(Iw),Z7(n,PZn,new Ku(S(T(aj,1),Fn,382,0,[s]))),r=new eA(Pw),Z7(n,SZn,new Ku(S(T(aj,1),Fn,382,0,[r]))),c=new eA(a2),Z7(n,AZn,new Ku(S(T(aj,1),Fn,382,0,[c]))),pF(i.c,rb),pF(r.c,Pw),pF(c.c,a2),pF(s.c,Iw),f.a.c.length=0,hi(f.a,i.c),hi(f.a,Qo(r.c)),hi(f.a,c.c),hi(f.a,Qo(s.c)),f}function bOe(n,e){var t,i,r,c,s,f,h,l,a,d,g,p,m;for(e.Ug(SVn,1),p=$(R(z(n,(_h(),Xw)))),s=$(R(z(n,(Bf(),b9)))),f=u(z(n,d9),107),NQ((!n.a&&(n.a=new q(Qe,n,10,11)),n.a)),a=fGn((!n.a&&(n.a=new q(Qe,n,10,11)),n.a),p,s),!n.a&&(n.a=new q(Qe,n,10,11)),l=new C(a);l.a0&&(n.a=h+(p-1)*c,e.c.b+=n.a,e.f.b+=n.a)),m.a.gc()!=0&&(g=new lN(1,c),p=ntn(g,e,m,k,e.f.b+h-e.c.b),p>0&&(e.f.b+=h+(p-1)*c))}function gGn(n,e,t){var i,r,c,s,f,h,l,a,d,g,p,m,k,j,A,I,D,N;for(a=$(R(v(n,(cn(),wb)))),i=$(R(v(n,vhn))),g=new _O,U(g,wb,a+i),l=e,A=l.d,k=l.c.i,I=l.d.i,j=EX(k.c),D=EX(I.c),r=new Z,d=j;d<=D;d++)f=new Tl(n),_a(f,(Vn(),Mi)),U(f,(W(),st),l),U(f,Kt,(Oi(),qc)),U(f,yI,g),p=u(sn(n.b,d),30),d==j?uw(f,p.a.c.length-t,p):$i(f,p),N=$(R(v(l,m1))),N<0&&(N=0,U(l,m1,N)),f.o.b=N,m=y.Math.floor(N/2),s=new Pc,gi(s,(tn(),Wn)),ic(s,f),s.n.b=m,h=new Pc,gi(h,Zn),ic(h,f),h.n.b=m,Ii(l,s),c=new E0,Ur(c,l),U(c,Fr,null),Zi(c,h),Ii(c,A),ike(f,l,c),Bn(r.c,c),l=c;return r}function XF(n,e){var t,i,r,c,s,f,h,l,a,d,g,p,m,k,j,A,I,D;for(h=u(h1(n,(tn(),Wn)).Kc().Pb(),12).e,p=u(h1(n,Zn).Kc().Pb(),12).g,f=h.c.length,D=Pf(u(sn(n.j,0),12));f-- >0;){for(k=(Ln(0,h.c.length),u(h.c[0],18)),r=(Ln(0,p.c.length),u(p.c[0],18)),I=r.d.e,c=qr(I,r,0),Bpe(k,r.d,c),Zi(r,null),Ii(r,null),m=k.a,e&&xe(m,new rr(D)),i=ge(r.a,0);i.b!=i.d.c;)t=u(be(i),8),xe(m,new rr(t));for(A=k.b,g=new C(r.b);g.as)&&fi(n.b,u(j.b,18));++f}c=s}}}function Qen(n,e){var t;if(e==null||An(e,gu)||e.length==0&&n.k!=(l1(),L3))return null;switch(n.k.g){case 1:return JT(e,nv)?(_n(),ov):JT(e,cK)?(_n(),wa):null;case 2:try{return Y(Ao(e,Wi,et))}catch(i){if(i=It(i),O(i,130))return null;throw M(i)}case 4:try{return sw(e)}catch(i){if(i=It(i),O(i,130))return null;throw M(i)}case 3:return e;case 5:return FFn(n),J_n(n,e);case 6:return FFn(n),wMe(n,n.a,e);case 7:try{return t=TCe(n),t.cg(e),t}catch(i){if(i=It(i),O(i,33))return null;throw M(i)}default:throw M(new Or("Invalid type set for this layout option."))}}function Yen(n){var e;switch(n.d){case 1:{if(n.Sj())return n.o!=-2;break}case 2:{if(n.Sj())return n.o==-2;break}case 3:case 5:case 4:case 6:case 7:return n.o>-2;default:return!1}switch(e=n.Rj(),n.p){case 0:return e!=null&&on(un(e))!=M6(n.k,0);case 1:return e!=null&&u(e,222).a!=Ae(n.k)<<24>>24;case 2:return e!=null&&u(e,180).a!=(Ae(n.k)&ui);case 6:return e!=null&&M6(u(e,168).a,n.k);case 5:return e!=null&&u(e,17).a!=Ae(n.k);case 7:return e!=null&&u(e,191).a!=Ae(n.k)<<16>>16;case 3:return e!=null&&$(R(e))!=n.j;case 4:return e!=null&&u(e,161).a!=n.j;default:return e==null?n.n!=null:!rt(e,n.n)}}function py(n,e,t){var i,r,c,s;return n.ol()&&n.nl()&&(s=cN(n,u(t,58)),x(s)!==x(t))?(n.xj(e),n.Dj(e,kNn(n,e,s)),n.al()&&(c=(r=u(t,54),n.ml()?n.kl()?r.Th(n.b,br(u($n(au(n.b),n.Lj()),19)).n,u($n(au(n.b),n.Lj()).Hk(),29).kk(),null):r.Th(n.b,Ot(r.Dh(),br(u($n(au(n.b),n.Lj()),19))),null,null):r.Th(n.b,-1-n.Lj(),null,null)),!u(s,54).Ph()&&(c=(i=u(s,54),n.ml()?n.kl()?i.Rh(n.b,br(u($n(au(n.b),n.Lj()),19)).n,u($n(au(n.b),n.Lj()).Hk(),29).kk(),c):i.Rh(n.b,Ot(i.Dh(),br(u($n(au(n.b),n.Lj()),19))),null,c):i.Rh(n.b,-1-n.Lj(),null,c))),c&&c.oj()),fo(n.b)&&n.Jj(n.Ij(9,t,s,e,!1)),s):t}function pGn(n){var e,t,i,r,c,s,f,h,l,a;for(i=new Z,s=new C(n.e.a);s.a0&&(s=y.Math.max(s,jxn(n.C.b+i.d.b,r))),a=i,d=r,g=c;n.C&&n.C.c>0&&(p=g+n.C.c,l&&(p+=a.d.c),s=y.Math.max(s,(Mf(),Rs(Kf),y.Math.abs(d-1)<=Kf||d==1||isNaN(d)&&isNaN(1)?0:p/(1-d)))),t.n.b=0,t.a.a=s}function vGn(n,e){var t,i,r,c,s,f,h,l,a,d,g,p;if(t=u(Cr(n.b,e),127),h=u(u(ot(n.r,e),21),87),h.dc()){t.n.d=0,t.n.a=0;return}for(l=n.u.Hc((zu(),Fl)),s=0,n.A.Hc((go(),Gd))&&Vqn(n,e),f=h.Kc(),a=null,g=0,d=0;f.Ob();)i=u(f.Pb(),117),c=$(R(i.b.of((KC(),bP)))),r=i.b.Mf().b,a?(p=d+a.d.a+n.w+i.d.d,s=y.Math.max(s,(Mf(),Rs(Kf),y.Math.abs(g-c)<=Kf||g==c||isNaN(g)&&isNaN(c)?0:p/(c-g)))):n.C&&n.C.d>0&&(s=y.Math.max(s,jxn(n.C.d+i.d.d,c))),a=i,g=c,d=r;n.C&&n.C.a>0&&(p=d+n.C.a,l&&(p+=a.d.a),s=y.Math.max(s,(Mf(),Rs(Kf),y.Math.abs(g-1)<=Kf||g==1||isNaN(g)&&isNaN(1)?0:p/(1-g)))),t.n.d=0,t.a.b=s}function pOe(n,e,t,i,r,c,s,f){var h,l,a,d,g,p,m,k,j,A;if(m=!1,l=cen(t.q,e.f+e.b-t.q.f),p=i.f>e.b&&f,A=r-(t.q.e+l-s),d=(h=V5(i,A,!1),h.a),p&&d>i.f)return!1;if(p){for(g=0,j=new C(e.d);j.a=(Ln(c,n.c.length),u(n.c[c],186)).e,!p&&d>e.b&&!a)?!1:((a||p||d<=e.b)&&(a&&d>e.b?(t.d=d,sk(t,c_n(t,d))):(EKn(t.q,l),t.c=!0),sk(i,r-(t.s+t.r)),Uk(i,t.q.e+t.q.d,e.f),wT(e,i),n.c.length>c&&(Xk((Ln(c,n.c.length),u(n.c[c],186)),i),(Ln(c,n.c.length),u(n.c[c],186)).a.c.length==0&&Yl(n,c)),m=!0),m)}function kGn(n,e,t){var i,r,c,s,f,h;for(this.g=n,f=e.d.length,h=t.d.length,this.d=K(Qh,b1,10,f+h,0,1),s=0;s0?m$(this,this.f/this.a):Tf(e.g,e.d[0]).a!=null&&Tf(t.g,t.d[0]).a!=null?m$(this,($(Tf(e.g,e.d[0]).a)+$(Tf(t.g,t.d[0]).a))/2):Tf(e.g,e.d[0]).a!=null?m$(this,Tf(e.g,e.d[0]).a):Tf(t.g,t.d[0]).a!=null&&m$(this,Tf(t.g,t.d[0]).a)}function mOe(n,e){var t,i,r,c,s,f,h,l,a,d;for(n.a=new ZPn(n6e(E9)),i=new C(e.a);i.a=1&&(j-s>0&&d>=0?(h.n.a+=k,h.n.b+=c*s):j-s<0&&a>=0&&(h.n.a+=k*j,h.n.b+=c));n.o.a=e.a,n.o.b=e.b,U(n,(cn(),xd),(go(),i=u(uf(I9),9),new _o(i,u($s(i,i.length),9),0)))}function yOe(n,e,t,i,r,c){var s;if(!(e==null||!lx(e,Kdn,_dn)))throw M(new Gn("invalid scheme: "+e));if(!n&&!(t!=null&&th(t,wu(35))==-1&&t.length>0&&(zn(0,t.length),t.charCodeAt(0)!=47)))throw M(new Gn("invalid opaquePart: "+t));if(n&&!(e!=null&&r7(jO,e.toLowerCase()))&&!(t==null||!lx(t,N9,$9)))throw M(new Gn(tJn+t));if(n&&e!=null&&r7(jO,e.toLowerCase())&&!nye(t))throw M(new Gn(tJn+t));if(!u8e(i))throw M(new Gn("invalid device: "+i));if(!U6e(r))throw s=r==null?"invalid segments: null":"invalid segment: "+K6e(r),M(new Gn(s));if(!(c==null||th(c,wu(35))==-1))throw M(new Gn("invalid query: "+c))}function jOe(n,e,t){var i,r,c,s,f,h,l,a,d,g,p,m,k,j,A;if(t.Ug("Network simplex layering",1),n.b=e,A=u(v(e,(cn(),Q8)),17).a*4,j=n.b.a,j.c.length<1){t.Vg();return}for(c=vSe(n,j),k=null,r=ge(c,0);r.b!=r.d.c;){for(i=u(be(r),15),f=A*wi(y.Math.sqrt(i.gc())),s=NSe(i),PF(mz(jhe(vz(BL(s),f),k),!0),t.eh(1)),g=n.b.b,m=new C(s.a);m.a1)for(k=K(ye,Ke,28,n.b.b.c.length,15,1),d=0,l=new C(n.b.b);l.a0){QT(n,t,0),t.a+=String.fromCharCode(i),r=U8e(e,c),QT(n,t,r),c+=r-1;continue}i==39?c+10&&m.a<=0){h.c.length=0,Bn(h.c,m);break}p=m.i-m.d,p>=f&&(p>f&&(h.c.length=0,f=p),Bn(h.c,m))}h.c.length!=0&&(s=u(sn(h,cA(r,h.c.length)),118),D.a.Bc(s)!=null,s.g=a++,Ken(s,e,t,i),h.c.length=0)}for(j=n.c.length+1,g=new C(n);g.ali||e.o==Rd&&a=f&&r<=h)f<=r&&c<=h?(t[a++]=r,t[a++]=c,i+=2):f<=r?(t[a++]=r,t[a++]=h,n.b[i]=h+1,s+=2):c<=h?(t[a++]=f,t[a++]=c,i+=2):(t[a++]=f,t[a++]=h,n.b[i]=h+1);else if(hsa)&&f<10);yz(n.c,new Ybn),CGn(n),pwe(n.c),aOe(n.f)}function OOe(n,e){var t,i,r,c,s,f,h,l,a,d,g,p,m,k;for(t=u(v(n,(cn(),Kt)),101),s=n.f,c=n.d,f=s.a+c.b+c.c,h=0-c.d-n.c.b,a=s.b+c.d+c.a-n.c.b,l=new Z,d=new Z,r=new C(e);r.a=2){for(h=ge(t,0),s=u(be(h),8),f=u(be(h),8);f.a0&&Sk(l,!0,(ci(),Xr)),f.k==(Vn(),Zt)&&sIn(l),Xe(n.f,f,e)}}function NOe(n){var e,t,i,r,c,s,f,h,l,a,d,g,p,m,k,j,A,I,D,N;for(r=u(v(n,(pt(),f9)),27),l=et,a=et,f=Wi,h=Wi,D=ge(n.b,0);D.b!=D.d.c;)A=u(be(D),40),p=A.e,m=A.f,l=y.Math.min(l,p.a-m.a/2),a=y.Math.min(a,p.b-m.b/2),f=y.Math.max(f,p.a+m.a/2),h=y.Math.max(h,p.b+m.b/2);for(g=u(z(r,(lc(),Iln)),107),I=ge(n.b,0);I.b!=I.d.c;)A=u(be(I),40),d=v(A,f9),O(d,207)&&(c=u(d,27),Ro(c,A.e.a,A.e.b),uy(c,A));for(j=ge(n.a,0);j.b!=j.d.c;)k=u(be(j),65),i=u(v(k,f9),74),i&&(e=k.a,t=zg(i,!0,!0),dy(e,t));N=f-l+(g.b+g.c),s=h-a+(g.d+g.a),on(un(z(r,(qe(),Vw))))||G0(r,N,s,!1,!1),ht(r,F2,N-(g.b+g.c)),ht(r,x2,s-(g.d+g.a))}function TGn(n,e){var t,i,r,c,s,f,h,l,a,d;for(h=!0,r=0,l=n.g[e.p],a=e.o.b+n.o,t=n.d[e.p][2],Go(n.b,l,Y(u(sn(n.b,l),17).a-1+t)),Go(n.c,l,$(R(sn(n.c,l)))-a+t*n.f),++l,l>=n.j?(++n.j,nn(n.b,Y(1)),nn(n.c,a)):(i=n.d[e.p][1],Go(n.b,l,Y(u(sn(n.b,l),17).a+1-i)),Go(n.c,l,$(R(sn(n.c,l)))+a-i*n.f)),(n.r==(gs(),Sj)&&(u(sn(n.b,l),17).a>n.k||u(sn(n.b,l-1),17).a>n.k)||n.r==Pj&&($(R(sn(n.c,l)))>n.n||$(R(sn(n.c,l-1)))>n.n))&&(h=!1),s=new te(re(ji(e).a.Kc(),new En));pe(s);)c=u(fe(s),18),f=c.c.i,n.g[f.p]==l&&(d=TGn(n,f),r=r+u(d.a,17).a,h=h&&on(un(d.b)));return n.g[e.p]=l,r=r+n.d[e.p][0],new bi(Y(r),(_n(),!!h))}function AGn(n,e){var t,i,r,c,s;t=$(R(v(e,(cn(),Vs)))),t<2&&U(e,Vs,2),i=u(v(e,Do),88),i==(ci(),Wf)&&U(e,Do,KT(e)),r=u(v(e,Ute),17),r.a==0?U(e,(W(),S3),new dx):U(e,(W(),S3),new qM(r.a)),c=un(v(e,V8)),c==null&&U(e,V8,(_n(),x(v(e,$l))===x((El(),Kv)))),qt(new Tn(null,new In(e.a,16)),new OG(n)),qt(rc(new Tn(null,new In(e.b,16)),new HU),new DG(n)),s=new yGn(e),U(e,(W(),j2),s),U7(n.a),ff(n.a,(Vi(),Xs),u(v(e,Ld),188)),ff(n.a,Jh,u(v(e,$d),188)),ff(n.a,Oc,u(v(e,X8),188)),ff(n.a,Kc,u(v(e,vI),188)),ff(n.a,zr,Nve(u(v(e,$l),223))),MX(n.a,PLe(e)),U(e,wH,gy(n.a,e))}function ntn(n,e,t,i,r){var c,s,f,h,l,a,d,g,p,m,k,j,A;for(d=new de,s=new Z,T_n(n,t,n.d.Ag(),s,d),T_n(n,i,n.d.Bg(),s,d),n.b=.2*(k=OHn(rc(new Tn(null,new In(s,16)),new F3n)),j=OHn(rc(new Tn(null,new In(s,16)),new B3n)),y.Math.min(k,j)),c=0,f=0;f=2&&(A=JHn(s,!0,g),!n.e&&(n.e=new okn(n)),K8e(n.e,A,s,n.b)),LKn(s,g),KOe(s),p=-1,a=new C(s);a.af)}function SGn(n,e){var t,i,r,c,s,f,h,l,a,d,g,p,m,k,j,A,I;for(l=St,a=St,f=li,h=li,g=new C(e.i);g.a-1){for(r=ge(f,0);r.b!=r.d.c;)i=u(be(r),131),i.v=s;for(;f.b!=0;)for(i=u(Ux(f,0),131),t=new C(i.i);t.a-1){for(c=new C(f);c.a0)&&(pG(h,y.Math.min(h.o,r.o-1)),SE(h,h.i-1),h.i==0&&Bn(f.c,h))}}function IGn(n,e,t,i,r){var c,s,f,h;return h=St,s=!1,f=Gen(n,mi(new V(e.a,e.b),n),tt(new V(t.a,t.b),r),mi(new V(i.a,i.b),t)),c=!!f&&!(y.Math.abs(f.a-n.a)<=Y0&&y.Math.abs(f.b-n.b)<=Y0||y.Math.abs(f.a-e.a)<=Y0&&y.Math.abs(f.b-e.b)<=Y0),f=Gen(n,mi(new V(e.a,e.b),n),t,r),f&&((y.Math.abs(f.a-n.a)<=Y0&&y.Math.abs(f.b-n.b)<=Y0)==(y.Math.abs(f.a-e.a)<=Y0&&y.Math.abs(f.b-e.b)<=Y0)||c?h=y.Math.min(h,X6(mi(f,t))):s=!0),f=Gen(n,mi(new V(e.a,e.b),n),i,r),f&&(s||(y.Math.abs(f.a-n.a)<=Y0&&y.Math.abs(f.b-n.b)<=Y0)==(y.Math.abs(f.a-e.a)<=Y0&&y.Math.abs(f.b-e.b)<=Y0)||c)&&(h=y.Math.min(h,X6(mi(f,i)))),h}function OGn(n){r0(n,new gd(UE(e0(Yd(n0(Zd(new Ra,ha),SXn),"Minimizes the stress within a layout using stress majorization. Stress exists if the euclidean distance between a pair of nodes doesn't match their graph theoretic distance, that is, the shortest path between the two nodes. The method allows to specify individual edge lengths."),new Xbn),cu))),Q(n,ha,u8,rn(Ton)),Q(n,ha,oS,(_n(),!0)),Q(n,ha,i2,rn(dZn)),Q(n,ha,d3,rn(bZn)),Q(n,ha,a3,rn(wZn)),Q(n,ha,Xm,rn(aZn)),Q(n,ha,o8,rn(Son)),Q(n,ha,Vm,rn(gZn)),Q(n,ha,Qtn,rn(Mon)),Q(n,ha,Ztn,rn(Eon)),Q(n,ha,nin,rn(Con)),Q(n,ha,ein,rn(Aon)),Q(n,ha,Ytn,rn(EP))}function _Oe(n){var e,t,i,r,c,s,f,h;for(e=null,i=new C(n);i.a0&&t.c==0&&(!e&&(e=new Z),Bn(e.c,t));if(e)for(;e.c.length!=0;){if(t=u(Yl(e,0),239),t.b&&t.b.c.length>0){for(c=(!t.b&&(t.b=new Z),new C(t.b));c.aqr(n,t,0))return new bi(r,t)}else if($(Tf(r.g,r.d[0]).a)>$(Tf(t.g,t.d[0]).a))return new bi(r,t)}for(f=(!t.e&&(t.e=new Z),t.e).Kc();f.Ob();)s=u(f.Pb(),239),h=(!s.b&&(s.b=new Z),s.b),zb(0,h.c.length),b6(h.c,0,t),s.c==h.c.length&&Bn(e.c,s)}return null}function HOe(n,e){var t,i,r,c,s,f,h,l,a,d,g,p,m,k,j,A;for(e.Ug("Interactive crossing minimization",1),s=0,c=new C(n.b);c.a0&&(t+=h.n.a+h.o.a/2,++d),m=new C(h.j);m.a0&&(t/=d),A=K(Pi,Tr,28,i.a.c.length,15,1),f=0,l=new C(i.a);l.a=f&&r<=h)f<=r&&c<=h?i+=2:f<=r?(n.b[i]=h+1,s+=2):c<=h?(t[a++]=r,t[a++]=f-1,i+=2):(t[a++]=r,t[a++]=f-1,n.b[i]=h+1,s+=2);else if(h2?(a=new Z,hi(a,new Jl(A,1,A.b)),c=mzn(a,D+n.a),I=new bF(c),Ur(I,e),Bn(t.c,I)):i?I=u(ee(n.b,Kh(e)),272):I=u(ee(n.b,ia(e)),272),h=Kh(e),i&&(h=ia(e)),s=_je(j,h),l=D+n.a,s.a?(l+=y.Math.abs(j.b-d.b),k=new V(d.a,(d.b+j.b)/2)):(l+=y.Math.abs(j.a-d.a),k=new V((d.a+j.a)/2,d.b)),i?Xe(n.d,e,new mZ(I,s,k,l)):Xe(n.c,e,new mZ(I,s,k,l)),Xe(n.b,e,I),m=(!e.n&&(e.n=new q(Ar,e,1,7)),e.n),p=new ne(m);p.e!=p.i.gc();)g=u(ce(p),135),r=fy(n,g,!0,0,0),Bn(t.c,r)}function qOe(n){var e,t,i,r,c,s,f;if(!n.A.dc()){if(n.A.Hc((go(),rE))&&(u(Cr(n.b,(tn(),Xn)),127).k=!0,u(Cr(n.b,ae),127).k=!0,e=n.q!=(Oi(),tl)&&n.q!=qc,bG(u(Cr(n.b,Zn),127),e),bG(u(Cr(n.b,Wn),127),e),bG(n.g,e),n.A.Hc(Gd)&&(u(Cr(n.b,Xn),127).j=!0,u(Cr(n.b,ae),127).j=!0,u(Cr(n.b,Zn),127).k=!0,u(Cr(n.b,Wn),127).k=!0,n.g.k=!0)),n.A.Hc(iE))for(n.a.j=!0,n.a.k=!0,n.g.j=!0,n.g.k=!0,f=n.B.Hc((io(),O9)),r=jx(),c=0,s=r.length;c0),u(a.a.Xb(a.c=--a.b),18));c!=i&&a.b>0;)n.a[c.p]=!0,n.a[i.p]=!0,c=(oe(a.b>0),u(a.a.Xb(a.c=--a.b),18));a.b>0&&bo(a)}}function LGn(n,e,t){var i,r,c,s,f,h,l,a,d,g,p;if(!n.b)return!1;for(s=null,g=null,h=new r$(null,null),r=1,h.a[1]=n.b,d=h;d.a[r];)l=r,f=g,g=d,d=d.a[r],i=n.a.Ne(e,d.d),r=i<0?0:1,i==0&&(!t.c||mc(d.e,t.d))&&(s=d),!(d&&d.b)&&!Ib(d.a[r])&&(Ib(d.a[1-r])?g=g.a[l]=jT(d,r):Ib(d.a[1-r])||(p=g.a[1-l],p&&(!Ib(p.a[1-l])&&!Ib(p.a[l])?(g.b=!1,p.b=!0,d.b=!0):(c=f.a[1]==g?1:0,Ib(p.a[l])?f.a[c]=fDn(g,l):Ib(p.a[1-l])&&(f.a[c]=jT(g,l)),d.b=f.a[c].b=!0,f.a[c].a[0].b=!1,f.a[c].a[1].b=!1))));return s&&(t.b=!0,t.d=s.e,d!=s&&(a=new r$(d.d,d.e),zye(n,h,s,a),g==s&&(g=a)),g.a[g.a[1]==d?1:0]=d.a[d.a[0]?0:1],--n.c),n.b=h.a[1],n.b&&(n.b.b=!1),t.b}function zOe(n){var e,t,i,r,c,s,f,h,l,a,d,g;for(r=new C(n.a.a.b);r.a0?r-=864e5:r+=864e5,h=new fV(nr(vc(e.q.getTime()),r))),a=new lp,l=n.a.length,c=0;c=97&&i<=122||i>=65&&i<=90){for(s=c+1;s=l)throw M(new Gn("Missing trailing '"));s+1=14&&a<=16))?e.a._b(i)?(t.a?Be(t.a,t.b):t.a=new mo(t.d),A6(t.a,"[...]")):(f=cd(i),l=new B6(e),pl(t,$Gn(f,l))):O(i,183)?pl(t,CEe(u(i,183))):O(i,195)?pl(t,fye(u(i,195))):O(i,201)?pl(t,vje(u(i,201))):O(i,2111)?pl(t,hye(u(i,2111))):O(i,53)?pl(t,EEe(u(i,53))):O(i,376)?pl(t,_Ee(u(i,376))):O(i,846)?pl(t,jEe(u(i,846))):O(i,109)&&pl(t,yEe(u(i,109))):pl(t,i==null?gu:Jr(i));return t.a?t.e.length==0?t.a.a:t.a.a+(""+t.e):t.c}function Lm(n,e){var t,i,r,c;c=n.F,e==null?(n.F=null,um(n,null)):(n.F=(Jn(e),e),i=th(e,wu(60)),i!=-1?(r=(Fi(0,i,e.length),e.substr(0,i)),th(e,wu(46))==-1&&!An(r,i3)&&!An(r,y8)&&!An(r,GS)&&!An(r,j8)&&!An(r,E8)&&!An(r,C8)&&!An(r,M8)&&!An(r,T8)&&(r=wJn),t=FC(e,wu(62)),t!=-1&&(r+=""+(zn(t+1,e.length+1),e.substr(t+1))),um(n,r)):(r=e,th(e,wu(46))==-1&&(i=th(e,wu(91)),i!=-1&&(r=(Fi(0,i,e.length),e.substr(0,i))),!An(r,i3)&&!An(r,y8)&&!An(r,GS)&&!An(r,j8)&&!An(r,E8)&&!An(r,C8)&&!An(r,M8)&&!An(r,T8)?(r=wJn,i!=-1&&(r+=""+(zn(i,e.length+1),e.substr(i)))):r=e),um(n,r),r==e&&(n.F=n.D))),n.Db&4&&!(n.Db&1)&&it(n,new Ci(n,1,5,c,e))}function xGn(n,e){var t,i,r,c,s,f,h,l,a,d;if(h=e.length-1,f=(zn(h,e.length),e.charCodeAt(h)),f==93){if(s=th(e,wu(91)),s>=0)return r=Q5e(n,(Fi(1,s,e.length),e.substr(1,s-1))),a=(Fi(s+1,h,e.length),e.substr(s+1,h-(s+1))),ELe(n,a,r)}else{if(t=-1,wun==null&&(wun=new RegExp("\\d")),wun.test(String.fromCharCode(f))&&(t=AV(e,wu(46),h-1),t>=0)){i=u(YN(n,C$n(n,(Fi(1,t,e.length),e.substr(1,t-1))),!1),61),l=0;try{l=Ao((zn(t+1,e.length+1),e.substr(t+1)),Wi,et)}catch(g){throw g=It(g),O(g,130)?(c=g,M(new eT(c))):M(g)}if(l>16==-10?t=u(n.Cb,292).Yk(e,t):n.Db>>16==-15&&(!e&&(e=(On(),Yf)),!l&&(l=(On(),Yf)),n.Cb.Yh()&&(h=new ml(n.Cb,1,13,l,e,f1(no(u(n.Cb,62)),n),!1),t?t.nj(h):t=h));else if(O(n.Cb,90))n.Db>>16==-23&&(O(e,90)||(e=(On(),Ps)),O(l,90)||(l=(On(),Ps)),n.Cb.Yh()&&(h=new ml(n.Cb,1,10,l,e,f1(Sc(u(n.Cb,29)),n),!1),t?t.nj(h):t=h));else if(O(n.Cb,457))for(f=u(n.Cb,850),s=(!f.b&&(f.b=new NE(new aD)),f.b),c=(i=new sd(new qa(s.a).a),new $E(i));c.a.b;)r=u(L0(c.a).ld(),89),t=Nm(r,MA(r,f),t)}return t}function QOe(n,e){var t,i,r,c,s,f,h,l,a,d,g;for(s=on(un(z(n,(cn(),Rw)))),g=u(z(n,_w),21),h=!1,l=!1,d=new ne((!n.c&&(n.c=new q(Qu,n,9,9)),n.c));d.e!=d.i.gc()&&(!h||!l);){for(c=u(ce(d),123),f=0,r=$h(Eo(S(T(Oo,1),Fn,20,0,[(!c.d&&(c.d=new Nn(Vt,c,8,5)),c.d),(!c.e&&(c.e=new Nn(Vt,c,7,4)),c.e)])));pe(r)&&(i=u(fe(r),74),a=s&&_0(i)&&on(un(z(i,Nd))),t=bGn((!i.b&&(i.b=new Nn(he,i,4,7)),i.b),c)?n==At(Gr(u(L((!i.c&&(i.c=new Nn(he,i,5,8)),i.c),0),84))):n==At(Gr(u(L((!i.b&&(i.b=new Nn(he,i,4,7)),i.b),0),84))),!((a||t)&&(++f,f>1))););(f>0||g.Hc((zu(),Fl))&&(!c.n&&(c.n=new q(Ar,c,1,7)),c.n).i>0)&&(h=!0),f>1&&(l=!0)}h&&e.Fc((pr(),cs)),l&&e.Fc((pr(),K8))}function FGn(n){var e,t,i,r,c,s,f,h,l,a,d,g;if(g=u(z(n,(qe(),Hd)),21),g.dc())return null;if(f=0,s=0,g.Hc((go(),rE))){for(a=u(z(n,j9),101),i=2,t=2,r=2,c=2,e=At(n)?u(z(At(n),_d),88):u(z(n,_d),88),l=new ne((!n.c&&(n.c=new q(Qu,n,9,9)),n.c));l.e!=l.i.gc();)if(h=u(ce(l),123),d=u(z(h,_2),64),d==(tn(),sc)&&(d=Ren(h,e),ht(h,_2,d)),a==(Oi(),qc))switch(d.g){case 1:i=y.Math.max(i,h.i+h.g);break;case 2:t=y.Math.max(t,h.j+h.f);break;case 3:r=y.Math.max(r,h.i+h.g);break;case 4:c=y.Math.max(c,h.j+h.f)}else switch(d.g){case 1:i+=h.g+2;break;case 2:t+=h.f+2;break;case 3:r+=h.g+2;break;case 4:c+=h.f+2}f=y.Math.max(i,r),s=y.Math.max(t,c)}return G0(n,f,s,!0,!0)}function VF(n,e,t,i,r){var c,s,f,h,l,a,d,g,p,m,k,j,A,I,D,N;for(I=u(Wr(fT(ct(new Tn(null,new In(e.d,16)),new A7n(t)),new S7n(t)),qu(new ju,new yu,new Eu,S(T(xr,1),G,108,0,[(Gu(),Yr)]))),15),d=et,a=Wi,h=new C(e.b.j);h.a0,l?l&&(g=A.p,s?++g:--g,d=u(sn(A.c.a,g),10),i=oFn(d),p=!(mF(i,X,t[0])||OPn(i,X,t[0]))):p=!0),m=!1,H=e.D.i,H&&H.c&&f.e&&(a=s&&H.p>0||!s&&H.p=0){for(h=null,f=new xi(a.a,l+1);f.bs?1:s0(isNaN(0),isNaN(s)))<0&&(Rs(jh),(y.Math.abs(s-1)<=jh||s==1||isNaN(s)&&isNaN(1)?0:s<1?-1:s>1?1:s0(isNaN(s),isNaN(1)))<0)&&(Rs(jh),(y.Math.abs(0-f)<=jh||f==0||isNaN(0)&&isNaN(f)?0:0f?1:s0(isNaN(0),isNaN(f)))<0)&&(Rs(jh),(y.Math.abs(f-1)<=jh||f==1||isNaN(f)&&isNaN(1)?0:f<1?-1:f>1?1:s0(isNaN(f),isNaN(1)))<0)),c)}function iDe(n){var e,t,i,r;if(t=n.D!=null?n.D:n.B,e=th(t,wu(91)),e!=-1){i=(Fi(0,e,t.length),t.substr(0,e)),r=new Hl;do r.a+="[";while((e=w4(t,91,++e))!=-1);An(i,i3)?r.a+="Z":An(i,y8)?r.a+="B":An(i,GS)?r.a+="C":An(i,j8)?r.a+="D":An(i,E8)?r.a+="F":An(i,C8)?r.a+="I":An(i,M8)?r.a+="J":An(i,T8)?r.a+="S":(r.a+="L",r.a+=""+i,r.a+=";");try{return null}catch(c){if(c=It(c),!O(c,63))throw M(c)}}else if(th(t,wu(46))==-1){if(An(t,i3))return so;if(An(t,y8))return Fu;if(An(t,GS))return fs;if(An(t,j8))return Pi;if(An(t,E8))return cg;if(An(t,C8))return ye;if(An(t,M8))return xa;if(An(t,T8))return X2}return null}function rDe(n,e){var t,i,r,c,s,f,h,l,a,d,g,p,m,k,j,A,I,D,N,H,X,en;for(n.e=e,f=rCe(e),X=new Z,i=new C(f);i.a=0&&k=l.c.c.length?a=MJ((Vn(),zt),Mi):a=MJ((Vn(),Mi),Mi),a*=2,c=t.a.g,t.a.g=y.Math.max(c,c+(a-c)),s=t.b.g,t.b.g=y.Math.max(s,s+(a-s)),r=e}}function sDe(n){var e,t,i,r;for(qt(ct(new Tn(null,new In(n.a.b,16)),new X2n),new V2n),qke(n),qt(ct(new Tn(null,new In(n.a.b,16)),new W2n),new J2n),n.c==(El(),F3)&&(qt(ct(rc(new Tn(null,new In(new Ha(n.f),1)),new Q2n),new Y2n),new k7n(n)),qt(ct(_r(rc(rc(new Tn(null,new In(n.d.b,16)),new Z2n),new npn),new epn),new tpn),new j7n(n))),r=new V(St,St),e=new V(li,li),i=new C(n.a.b);i.a0&&(e.a+=ur),GA(u(ce(f),167),e);for(e.a+=iR,h=new kp((!i.c&&(i.c=new Nn(he,i,5,8)),i.c));h.e!=h.i.gc();)h.e>0&&(e.a+=ur),GA(u(ce(h),167),e);e.a+=")"}}function fDe(n,e,t){var i,r,c,s,f,h,l,a;for(h=new ne((!n.a&&(n.a=new q(Qe,n,10,11)),n.a));h.e!=h.i.gc();)for(f=u(ce(h),27),r=new te(re(Al(f).a.Kc(),new En));pe(r);){if(i=u(fe(r),74),!i.b&&(i.b=new Nn(he,i,4,7)),!(i.b.i<=1&&(!i.c&&(i.c=new Nn(he,i,5,8)),i.c.i<=1)))throw M(new fp("Graph must not contain hyperedges."));if(!F5(i)&&f!=Gr(u(L((!i.c&&(i.c=new Nn(he,i,5,8)),i.c),0),84)))for(l=new RAn,Ur(l,i),U(l,(J1(),y3),i),Jse(l,u(Kr(wr(t.f,f)),153)),Zse(l,u(ee(t,Gr(u(L((!i.c&&(i.c=new Nn(he,i,5,8)),i.c),0),84))),153)),nn(e.c,l),s=new ne((!i.n&&(i.n=new q(Ar,i,1,7)),i.n));s.e!=s.i.gc();)c=u(ce(s),135),a=new _Dn(l,c.a),Ur(a,c),U(a,y3,c),a.e.a=y.Math.max(c.g,1),a.e.b=y.Math.max(c.f,1),Uen(a),nn(e.d,a)}}function hDe(n,e,t){var i,r,c,s,f,h,l,a,d,g;switch(t.Ug("Node promotion heuristic",1),n.i=e,n.r=u(v(e,(cn(),ya)),243),n.r!=(gs(),pb)&&n.r!=Uw?FDe(n):fAe(n),a=u(v(n.i,chn),17).a,c=new Bgn,n.r.g){case 2:case 1:Dm(n,c);break;case 3:for(n.r=SI,Dm(n,c),h=0,f=new C(n.b);f.an.k&&(n.r=Sj,Dm(n,c));break;case 4:for(n.r=SI,Dm(n,c),l=0,r=new C(n.c);r.an.n&&(n.r=Pj,Dm(n,c));break;case 6:g=wi(y.Math.ceil(n.g.length*a/100)),Dm(n,new s7n(g));break;case 5:d=wi(y.Math.ceil(n.e*a/100)),Dm(n,new f7n(d));break;case 8:yzn(n,!0);break;case 9:yzn(n,!1);break;default:Dm(n,c)}n.r!=pb&&n.r!=Uw?LTe(n,e):ZAe(n,e),t.Vg()}function lDe(n){var e,t,i,r,c,s,f,h,l,a,d,g,p,m,k,j,A,I,D;for(d=n.b,a=new xi(d,0),Rb(a,new Lc(n)),I=!1,s=1;a.b0&&(g.d+=a.n.d,g.d+=a.d),g.a>0&&(g.a+=a.n.a,g.a+=a.d),g.b>0&&(g.b+=a.n.b,g.b+=a.d),g.c>0&&(g.c+=a.n.c,g.c+=a.d),g}function RGn(n,e,t){var i,r,c,s,f,h,l,a,d,g,p,m;for(g=t.d,d=t.c,c=new V(t.f.a+t.d.b+t.d.c,t.f.b+t.d.d+t.d.a),s=c.b,l=new C(n.a);l.a0&&(n.c[e.c.p][e.p].d+=to(n.i,24)*Iy*.07000000029802322-.03500000014901161,n.c[e.c.p][e.p].a=n.c[e.c.p][e.p].d/n.c[e.c.p][e.p].b)}}function bDe(n){var e,t,i,r,c,s,f,h,l,a,d,g,p,m,k,j;for(m=new C(n);m.ai.d,i.d=y.Math.max(i.d,e),f&&t&&(i.d=y.Math.max(i.d,i.a),i.a=i.d+r);break;case 3:t=e>i.a,i.a=y.Math.max(i.a,e),f&&t&&(i.a=y.Math.max(i.a,i.d),i.d=i.a+r);break;case 2:t=e>i.c,i.c=y.Math.max(i.c,e),f&&t&&(i.c=y.Math.max(i.b,i.c),i.b=i.c+r);break;case 4:t=e>i.b,i.b=y.Math.max(i.b,e),f&&t&&(i.b=y.Math.max(i.b,i.c),i.c=i.b+r)}}}function _Gn(n,e){var t,i,r,c,s,f,h,l,a;return l="",e.length==0?n.ne(ktn,uB,-1,-1):(a=fw(e),An(a.substr(0,3),"at ")&&(a=(zn(3,a.length+1),a.substr(3))),a=a.replace(/\[.*?\]/g,""),s=a.indexOf("("),s==-1?(s=a.indexOf("@"),s==-1?(l=a,a=""):(l=fw((zn(s+1,a.length+1),a.substr(s+1))),a=fw((Fi(0,s,a.length),a.substr(0,s))))):(t=a.indexOf(")",s),l=(Fi(s+1,t,a.length),a.substr(s+1,t-(s+1))),a=fw((Fi(0,s,a.length),a.substr(0,s)))),s=th(a,wu(46)),s!=-1&&(a=(zn(s+1,a.length+1),a.substr(s+1))),(a.length==0||An(a,"Anonymous function"))&&(a=uB),f=FC(l,wu(58)),r=AV(l,wu(58),f-1),h=-1,i=-1,c=ktn,f!=-1&&r!=-1&&(c=(Fi(0,r,l.length),l.substr(0,r)),h=rAn((Fi(r+1,f,l.length),l.substr(r+1,f-(r+1)))),i=rAn((zn(f+1,l.length+1),l.substr(f+1)))),n.ne(c,a,h,i))}function pDe(n){var e,t,i,r,c,s,f,h,l,a,d;for(l=new C(n);l.a0||a.j==Wn&&a.e.c.length-a.g.c.length<0)){e=!1;break}for(r=new C(a.g);r.a=l&&H>=j&&(g+=m.n.b+k.n.b+k.a.b-N,++f));if(t)for(s=new C(I.e);s.a=l&&H>=j&&(g+=m.n.b+k.n.b+k.a.b-N,++f))}f>0&&(X+=g/f,++p)}p>0?(e.a=r*X/p,e.g=p):(e.a=0,e.g=0)}function vDe(n){var e,t,i,r,c,s,f,h,l,a,d,g,p,m,k,j,A,I,D,N,H,X,en;for(c=n.f.b,g=c.a,a=c.b,m=n.e.g,p=n.e.f,vg(n.e,c.a,c.b),X=g/m,en=a/p,l=new ne(jM(n.e));l.e!=l.i.gc();)h=u(ce(l),135),eu(h,h.i*X),tu(h,h.j*en);for(I=new ne(mN(n.e));I.e!=I.i.gc();)A=u(ce(I),123),N=A.i,H=A.j,N>0&&eu(A,N*X),H>0&&tu(A,H*en);for(h5(n.b,new Ubn),e=new Z,f=new sd(new qa(n.c).a);f.b;)s=L0(f),i=u(s.ld(),74),t=u(s.md(),407).a,r=zg(i,!1,!1),d=NKn(Kh(i),Zk(r),t),dy(d,r),D=XKn(i),D&&qr(e,D,0)==-1&&(Bn(e.c,D),jIn(D,(oe(d.b!=0),u(d.a.a.c,8)),t));for(j=new sd(new qa(n.d).a);j.b;)k=L0(j),i=u(k.ld(),74),t=u(k.md(),407).a,r=zg(i,!1,!1),d=NKn(ia(i),Ik(Zk(r)),t),d=Ik(d),dy(d,r),D=VKn(i),D&&qr(e,D,0)==-1&&(Bn(e.c,D),jIn(D,(oe(d.b!=0),u(d.c.b.c,8)),t))}function HGn(n,e,t,i){var r,c,s,f,h;return f=new rtn(e),hTe(f,i),r=!0,n&&n.pf((qe(),_d))&&(c=u(n.of((qe(),_d)),88),r=c==(ci(),Wf)||c==Br||c==Xr),_qn(f,!1),nu(f.e.Rf(),new NV(f,!1,r)),ON(f,f.f,(bf(),bc),(tn(),Xn)),ON(f,f.f,wc,ae),ON(f,f.g,bc,Wn),ON(f,f.g,wc,Zn),gRn(f,Xn),gRn(f,ae),vIn(f,Zn),vIn(f,Wn),Bb(),s=f.A.Hc((go(),Qw))&&f.B.Hc((io(),uE))?NBn(f):null,s&&vhe(f.a,s),gDe(f),p7e(f),m7e(f),qOe(f),sPe(f),U7e(f),kx(f,Xn),kx(f,ae),VAe(f),xIe(f),t&&(Y5e(f),G7e(f),kx(f,Zn),kx(f,Wn),h=f.B.Hc((io(),O9)),L_n(f,h,Xn),L_n(f,h,ae),N_n(f,h,Zn),N_n(f,h,Wn),qt(new Tn(null,new In(new ol(f.i),0)),new dbn),qt(ct(new Tn(null,DW(f.r).a.oc()),new bbn),new wbn),cye(f),f.e.Pf(f.o),qt(new Tn(null,DW(f.r).a.oc()),new gbn)),f.o}function kDe(n){var e,t,i,r,c,s,f,h,l,a,d,g,p,m,k;for(l=St,i=new C(n.a.b);i.a1)for(p=new Ven(m,D,i),qi(D,new YCn(n,p)),Bn(s.c,p),d=D.a.ec().Kc();d.Ob();)a=u(d.Pb(),42),du(c,a.b);if(f.a.gc()>1)for(p=new Ven(m,f,i),qi(f,new ZCn(n,p)),Bn(s.c,p),d=f.a.ec().Kc();d.Ob();)a=u(d.Pb(),42),du(c,a.b)}}function CDe(n,e,t){var i,r,c,s,f,h,l,a,d,g,p,m,k,j,A;if(k=n.n,j=n.o,g=n.d,d=$(R(rw(n,(cn(),PH)))),e){for(a=d*(e.gc()-1),p=0,h=e.Kc();h.Ob();)s=u(h.Pb(),10),a+=s.o.a,p=y.Math.max(p,s.o.b);for(A=k.a-(a-j.a)/2,c=k.b-g.d+p,i=j.a/(e.gc()+1),r=i,f=e.Kc();f.Ob();)s=u(f.Pb(),10),s.n.a=A,s.n.b=c-s.o.b,A+=s.o.a+d,l=QHn(s),l.n.a=s.o.a/2-l.a.a,l.n.b=s.o.b,m=u(v(s,(W(),tI)),12),m.e.c.length+m.g.c.length==1&&(m.n.a=r-m.a.a,m.n.b=0,ic(m,n)),r+=i}if(t){for(a=d*(t.gc()-1),p=0,h=t.Kc();h.Ob();)s=u(h.Pb(),10),a+=s.o.a,p=y.Math.max(p,s.o.b);for(A=k.a-(a-j.a)/2,c=k.b+j.b+g.a-p,i=j.a/(t.gc()+1),r=i,f=t.Kc();f.Ob();)s=u(f.Pb(),10),s.n.a=A,s.n.b=c,A+=s.o.a+d,l=QHn(s),l.n.a=s.o.a/2-l.a.a,l.n.b=0,m=u(v(s,(W(),tI)),12),m.e.c.length+m.g.c.length==1&&(m.n.a=r-m.a.a,m.n.b=j.b,ic(m,n)),r+=i}}function MDe(n,e){var t,i,r,c,s,f;if(u(v(e,(W(),Hc)),21).Hc((pr(),cs))){for(f=new C(e.a);f.a=0&&s0&&(u(Cr(n.b,e),127).a.b=t)}function IDe(n,e,t,i){var r,c,s,f,h,l,a,d,g,p,m,k;if(g=$(R(v(n,(cn(),Av)))),p=$(R(v(n,Sv))),d=$(R(v(n,qw))),f=n.o,c=u(sn(n.j,0),12),s=c.n,k=Xje(c,d),!!k){if(e.Hc((zu(),Fl)))switch(u(v(n,(W(),gc)),64).g){case 1:k.c=(f.a-k.b)/2-s.a,k.d=p;break;case 3:k.c=(f.a-k.b)/2-s.a,k.d=-p-k.a;break;case 2:t&&c.e.c.length==0&&c.g.c.length==0?(a=i?k.a:u(sn(c.f,0),72).o.b,k.d=(f.b-a)/2-s.b):k.d=f.b+p-s.b,k.c=-g-k.b;break;case 4:t&&c.e.c.length==0&&c.g.c.length==0?(a=i?k.a:u(sn(c.f,0),72).o.b,k.d=(f.b-a)/2-s.b):k.d=f.b+p-s.b,k.c=g}else if(e.Hc(Pa))switch(u(v(n,(W(),gc)),64).g){case 1:case 3:k.c=s.a+g;break;case 2:case 4:t&&!c.c?(a=i?k.a:u(sn(c.f,0),72).o.b,k.d=(f.b-a)/2-s.b):k.d=s.b+p}for(r=k.d,l=new C(c.f);l.a=e.length)return{done:!0};var r=e[i++];return{value:[r,t.get(r)],done:!1}}}},AAe()||(n.prototype.createObject=function(){return{}},n.prototype.get=function(e){return this.obj[":"+e]},n.prototype.set=function(e,t){this.obj[":"+e]=t},n.prototype[DB]=function(e){delete this.obj[":"+e]},n.prototype.keys=function(){var e=[];for(var t in this.obj)t.charCodeAt(0)==58&&e.push(t.substring(1));return e}),n}function pt(){pt=F,f9=new lt(Jtn),new Dt("DEPTH",Y(0)),iq=new Dt("FAN",Y(0)),mln=new Dt(bVn,Y(0)),Ca=new Dt("ROOT",(_n(),!1)),uq=new Dt("LEFTNEIGHBOR",null),dre=new Dt("RIGHTNEIGHBOR",null),$I=new Dt("LEFTSIBLING",null),oq=new Dt("RIGHTSIBLING",null),tq=new Dt("DUMMY",!1),new Dt("LEVEL",Y(0)),yln=new Dt("REMOVABLE_EDGES",new Ct),$j=new Dt("XCOOR",Y(0)),xj=new Dt("YCOOR",Y(0)),xI=new Dt("LEVELHEIGHT",0),yf=new Dt("LEVELMIN",0),Ws=new Dt("LEVELMAX",0),rq=new Dt("GRAPH_XMIN",0),cq=new Dt("GRAPH_YMIN",0),vln=new Dt("GRAPH_XMAX",0),kln=new Dt("GRAPH_YMAX",0),pln=new Dt("COMPACT_LEVEL_ASCENSION",!1),eq=new Dt("COMPACT_CONSTRAINTS",new Z),s9=new Dt("ID",""),h9=new Dt("POSITION",Y(0)),j1=new Dt("PRELIM",0),Lv=new Dt("MODIFIER",0),Dv=new lt(TXn),Nj=new lt(AXn)}function NDe(n){Ben();var e,t,i,r,c,s,f,h,l,a,d,g,p,m,k,j;if(n==null)return null;if(d=n.length*8,d==0)return"";for(f=d%24,p=d/24|0,g=f!=0?p+1:p,c=null,c=K(fs,gh,28,g*4,15,1),l=0,a=0,e=0,t=0,i=0,s=0,r=0,h=0;h>24,l=(e&3)<<24>>24,m=e&-128?(e>>2^192)<<24>>24:e>>2<<24>>24,k=t&-128?(t>>4^240)<<24>>24:t>>4<<24>>24,j=i&-128?(i>>6^252)<<24>>24:i>>6<<24>>24,c[s++]=O1[m],c[s++]=O1[k|l<<4],c[s++]=O1[a<<2|j],c[s++]=O1[i&63];return f==8?(e=n[r],l=(e&3)<<24>>24,m=e&-128?(e>>2^192)<<24>>24:e>>2<<24>>24,c[s++]=O1[m],c[s++]=O1[l<<4],c[s++]=61,c[s++]=61):f==16&&(e=n[r],t=n[r+1],a=(t&15)<<24>>24,l=(e&3)<<24>>24,m=e&-128?(e>>2^192)<<24>>24:e>>2<<24>>24,k=t&-128?(t>>4^240)<<24>>24:t>>4<<24>>24,c[s++]=O1[m],c[s++]=O1[k|l<<4],c[s++]=O1[a<<2],c[s++]=61),hh(c,0,c.length)}function $De(n,e){var t,i,r,c,s,f,h;if(n.e==0&&n.p>0&&(n.p=-(n.p-1)),n.p>Wi&&CJ(e,n.p-fa),s=e.q.getDate(),Q7(e,1),n.k>=0&&E2e(e,n.k),n.c>=0?Q7(e,n.c):n.k>=0?(h=new nY(e.q.getFullYear()-fa,e.q.getMonth(),35),i=35-h.q.getDate(),Q7(e,y.Math.min(i,s))):Q7(e,s),n.f<0&&(n.f=e.q.getHours()),n.b>0&&n.f<12&&(n.f+=12),b1e(e,n.f==24&&n.g?0:n.f),n.j>=0&&c4e(e,n.j),n.n>=0&&p4e(e,n.n),n.i>=0&&QMn(e,nr(er(Wk(vc(e.q.getTime()),d1),d1),n.i)),n.a&&(r=new JE,CJ(r,r.q.getFullYear()-fa-80),ND(vc(e.q.getTime()),vc(r.q.getTime()))&&CJ(e,r.q.getFullYear()-fa+100)),n.d>=0){if(n.c==-1)t=(7+n.d-e.q.getDay())%7,t>3&&(t-=7),f=e.q.getMonth(),Q7(e,e.q.getDate()+t),e.q.getMonth()!=f&&Q7(e,e.q.getDate()+(t>0?-7:7));else if(e.q.getDay()!=n.d)return!1}return n.o>Wi&&(c=e.q.getTimezoneOffset(),QMn(e,nr(vc(e.q.getTime()),(n.o-c)*60*d1))),!0}function XGn(n,e){var t,i,r,c,s,f,h,l,a,d,g,p,m,k,j,A,I,D,N;if(r=v(e,(W(),st)),!!O(r,207)){for(m=u(r,27),k=e.e,g=new rr(e.c),c=e.d,g.a+=c.b,g.b+=c.d,N=u(z(m,(cn(),kI)),181),Au(N,(io(),sO))&&(p=u(z(m,hhn),107),Use(p,c.a),Yse(p,c.d),Gse(p,c.b),Qse(p,c.c)),t=new Z,a=new C(e.a);a.ai.c.length-1;)nn(i,new bi(t2,Arn));t=u(v(r,Sh),17).a,hl(u(v(n,vb),88))?(r.e.a<$(R((Ln(t,i.c.length),u(i.c[t],42)).a))&&QO((Ln(t,i.c.length),u(i.c[t],42)),r.e.a),r.e.a+r.f.a>$(R((Ln(t,i.c.length),u(i.c[t],42)).b))&&YO((Ln(t,i.c.length),u(i.c[t],42)),r.e.a+r.f.a)):(r.e.b<$(R((Ln(t,i.c.length),u(i.c[t],42)).a))&&QO((Ln(t,i.c.length),u(i.c[t],42)),r.e.b),r.e.b+r.f.b>$(R((Ln(t,i.c.length),u(i.c[t],42)).b))&&YO((Ln(t,i.c.length),u(i.c[t],42)),r.e.b+r.f.b))}for(c=ge(n.b,0);c.b!=c.d.c;)r=u(be(c),40),t=u(v(r,(lc(),Sh)),17).a,U(r,(pt(),yf),R((Ln(t,i.c.length),u(i.c[t],42)).a)),U(r,Ws,R((Ln(t,i.c.length),u(i.c[t],42)).b));e.Vg()}function FDe(n){var e,t,i,r,c,s,f,h,l,a,d,g,p,m,k;for(n.o=$(R(v(n.i,(cn(),gb)))),n.f=$(R(v(n.i,Bd))),n.j=n.i.b.c.length,f=n.j-1,g=0,n.k=0,n.n=0,n.b=If(K(Gi,J,17,n.j,0,1)),n.c=If(K(si,J,345,n.j,7,1)),s=new C(n.i.b);s.a0&&nn(n.q,a),nn(n.p,a);e-=i,p=h+e,l+=e*n.f,Go(n.b,f,Y(p)),Go(n.c,f,l),n.k=y.Math.max(n.k,p),n.n=y.Math.max(n.n,l),n.e+=e,e+=k}}function tn(){tn=F;var n;sc=new y7(i8,0),Xn=new y7(eS,1),Zn=new y7(HB,2),ae=new y7(qB,3),Wn=new y7(UB,4),Qf=(Dn(),new r4((n=u(uf(lr),9),new _o(n,u($s(n,n.length),9),0)))),nf=i1(yt(Xn,S(T(lr,1),Mc,64,0,[]))),os=i1(yt(Zn,S(T(lr,1),Mc,64,0,[]))),No=i1(yt(ae,S(T(lr,1),Mc,64,0,[]))),Ms=i1(yt(Wn,S(T(lr,1),Mc,64,0,[]))),mu=i1(yt(Xn,S(T(lr,1),Mc,64,0,[ae]))),su=i1(yt(Zn,S(T(lr,1),Mc,64,0,[Wn]))),ef=i1(yt(Xn,S(T(lr,1),Mc,64,0,[Wn]))),Wu=i1(yt(Xn,S(T(lr,1),Mc,64,0,[Zn]))),$o=i1(yt(ae,S(T(lr,1),Mc,64,0,[Wn]))),ss=i1(yt(Zn,S(T(lr,1),Mc,64,0,[ae]))),Ju=i1(yt(Xn,S(T(lr,1),Mc,64,0,[Zn,Wn]))),pu=i1(yt(Zn,S(T(lr,1),Mc,64,0,[ae,Wn]))),vu=i1(yt(Xn,S(T(lr,1),Mc,64,0,[ae,Wn]))),xu=i1(yt(Xn,S(T(lr,1),Mc,64,0,[Zn,ae]))),Uc=i1(yt(Xn,S(T(lr,1),Mc,64,0,[Zn,ae,Wn])))}function BDe(n,e){var t,i,r,c,s,f,h,l,a,d,g,p,m,k,j,A,I,D,N,H,X,en;for(e.Ug(XXn,1),k=new Z,X=new Z,l=new C(n.b);l.a0&&(D-=p),Wen(s,D),a=0,g=new C(s.a);g.a0),f.a.Xb(f.c=--f.b)),h=.4*i*a,!c&&f.b0&&(h=(zn(0,e.length),e.charCodeAt(0)),h!=64)){if(h==37&&(d=e.lastIndexOf("%"),l=!1,d!=0&&(d==g-1||(l=(zn(d+1,e.length),e.charCodeAt(d+1)==46))))){if(s=(Fi(1,d,e.length),e.substr(1,d-1)),D=An("%",s)?null:utn(s),i=0,l)try{i=Ao((zn(d+2,e.length+1),e.substr(d+2)),Wi,et)}catch(N){throw N=It(N),O(N,130)?(f=N,M(new eT(f))):M(N)}for(j=LQ(n.Gh());j.Ob();)if(m=PT(j),O(m,519)&&(r=u(m,598),I=r.d,(D==null?I==null:An(D,I))&&i--==0))return r;return null}if(a=e.lastIndexOf("."),p=a==-1?e:(Fi(0,a,e.length),e.substr(0,a)),t=0,a!=-1)try{t=Ao((zn(a+1,e.length+1),e.substr(a+1)),Wi,et)}catch(N){if(N=It(N),O(N,130))p=e;else throw M(N)}for(p=An("%",p)?null:utn(p),k=LQ(n.Gh());k.Ob();)if(m=PT(k),O(m,197)&&(c=u(m,197),A=c.xe(),(p==null?A==null:An(p,A))&&t--==0))return c;return null}return xGn(n,e)}function zDe(n){var e,t,i,r,c,s,f,h,l,a,d,g,p,m,k,j,A,I;for(a=new de,h=new C0,i=new C(n.a.a.b);i.ae.d.c){if(p=n.c[e.a.d],j=n.c[d.a.d],p==j)continue;Hs(Ds(Os(Ls(Is(new hs,1),100),p),j))}}}}}function XDe(n,e){var t,i,r,c,s,f,h,l,a,d,g,p,m,k,j,A,I,D,N,H,X;if(g=u(u(ot(n.r,e),21),87),e==(tn(),Zn)||e==Wn){UGn(n,e);return}for(c=e==Xn?(N0(),ij):(N0(),rj),N=e==Xn?(bu(),vf):(bu(),zs),t=u(Cr(n.b,e),127),i=t.i,r=i.c+Og(S(T(Pi,1),Tr,28,15,[t.n.b,n.C.b,n.k])),A=i.c+i.b-Og(S(T(Pi,1),Tr,28,15,[t.n.c,n.C.c,n.k])),s=kz(xV(c),n.t),I=e==Xn?li:St,d=g.Kc();d.Ob();)l=u(d.Pb(),117),!(!l.c||l.c.d.c.length<=0)&&(j=l.b.Mf(),k=l.e,p=l.c,m=p.i,m.b=(h=p.n,p.e.a+h.b+h.c),m.a=(f=p.n,p.e.b+f.d+f.a),X7(N,xtn),p.f=N,af(p,(Uu(),Gs)),m.c=k.a-(m.b-j.a)/2,H=y.Math.min(r,k.a),X=y.Math.max(A,k.a+j.a),m.cX&&(m.c=X-m.b),nn(s.d,new ZL(m,AY(s,m))),I=e==Xn?y.Math.max(I,k.b+l.b.Mf().b):y.Math.min(I,k.b));for(I+=e==Xn?n.t:-n.t,D=zY((s.e=I,s)),D>0&&(u(Cr(n.b,e),127).a.b=D),a=g.Kc();a.Ob();)l=u(a.Pb(),117),!(!l.c||l.c.d.c.length<=0)&&(m=l.c.i,m.c-=l.e.a,m.d-=l.e.b)}function VDe(n){var e,t,i,r,c,s,f,h,l,a,d,g,p;for(e=new de,h=new ne(n);h.e!=h.i.gc();){for(f=u(ce(h),27),t=new ni,Xe(m_,f,t),p=new Rbn,r=u(Wr(new Tn(null,new p0(new te(re(cy(f).a.Kc(),new En)))),dPn(p,qu(new ju,new yu,new Eu,S(T(xr,1),G,108,0,[(Gu(),Yr)])))),85),X$n(t,u(r.xc((_n(),!0)),16),new Kbn),i=u(Wr(ct(u(r.xc(!1),15).Lc(),new _bn),qu(new ju,new yu,new Eu,S(T(xr,1),G,108,0,[Yr]))),15),s=i.Kc();s.Ob();)c=u(s.Pb(),74),g=XKn(c),g&&(l=u(Kr(wr(e.f,g)),21),l||(l=gqn(g),Vc(e.f,g,l)),Bi(t,l));for(r=u(Wr(new Tn(null,new p0(new te(re(Al(f).a.Kc(),new En)))),dPn(p,qu(new ju,new yu,new Eu,S(T(xr,1),G,108,0,[Yr])))),85),X$n(t,u(r.xc(!0),16),new Hbn),i=u(Wr(ct(u(r.xc(!1),15).Lc(),new qbn),qu(new ju,new yu,new Eu,S(T(xr,1),G,108,0,[Yr]))),15),d=i.Kc();d.Ob();)a=u(d.Pb(),74),g=VKn(a),g&&(l=u(Kr(wr(e.f,g)),21),l||(l=gqn(g),Vc(e.f,g,l)),Bi(t,l))}}function WDe(n,e){BF();var t,i,r,c,s,f,h,l,a,d,g,p,m,k;if(h=Ec(n,0)<0,h&&(n=n1(n)),Ec(n,0)==0)switch(e){case 0:return"0";case 1:return Km;case 2:return"0.00";case 3:return"0.000";case 4:return"0.0000";case 5:return"0.00000";case 6:return"0.000000";default:return p=new x1,e<0?p.a+="0E+":p.a+="0E",p.a+=e==Wi?"2147483648":""+-e,p.a}a=18,d=K(fs,gh,28,a+1,15,1),t=a,k=n;do l=k,k=Wk(k,10),d[--t]=Ae(nr(48,bs(l,er(k,10))))&ui;while(Ec(k,0)!=0);if(r=bs(bs(bs(a,t),e),1),e==0)return h&&(d[--t]=45),hh(d,t,a-t);if(e>0&&Ec(r,-6)>=0){if(Ec(r,0)>=0){for(c=t+Ae(r),f=a-1;f>=c;f--)d[f+1]=d[f];return d[++c]=46,h&&(d[--t]=45),hh(d,t,a-t+1)}for(s=2;ND(s,nr(n1(r),1));s++)d[--t]=48;return d[--t]=46,d[--t]=48,h&&(d[--t]=45),hh(d,t,a-t)}return m=t+1,i=a,g=new lp,h&&(g.a+="-"),i-m>=1?(Ya(g,d[t]),g.a+=".",g.a+=hh(d,t+1,a-t-1)):g.a+=hh(d,t,a-t),g.a+="E",Ec(r,0)>0&&(g.a+="+"),g.a+=""+H6(r),g.a}function G0(n,e,t,i,r){var c,s,f,h,l,a,d,g,p,m,k,j,A,I,D,N,H,X;if(j=new V(n.g,n.f),k=jnn(n),k.a=y.Math.max(k.a,e),k.b=y.Math.max(k.b,t),X=k.a/j.a,a=k.b/j.b,N=k.a-j.a,h=k.b-j.b,i)for(s=At(n)?u(z(At(n),(qe(),_d)),88):u(z(n,(qe(),_d)),88),f=x(z(n,(qe(),j9)))===x((Oi(),qc)),I=new ne((!n.c&&(n.c=new q(Qu,n,9,9)),n.c));I.e!=I.i.gc();)switch(A=u(ce(I),123),D=u(z(A,_2),64),D==(tn(),sc)&&(D=Ren(A,s),ht(A,_2,D)),D.g){case 1:f||eu(A,A.i*X);break;case 2:eu(A,A.i+N),f||tu(A,A.j*a);break;case 3:f||eu(A,A.i*X),tu(A,A.j+h);break;case 4:f||tu(A,A.j*a)}if(vg(n,k.a,k.b),r)for(g=new ne((!n.n&&(n.n=new q(Ar,n,1,7)),n.n));g.e!=g.i.gc();)d=u(ce(g),135),p=d.i+d.g/2,m=d.j+d.f/2,H=p/j.a,l=m/j.b,H+l>=1&&(H-l>0&&m>=0?(eu(d,d.i+N),tu(d,d.j+h*l)):H-l<0&&p>=0&&(eu(d,d.i+N*H),tu(d,d.j+h)));return ht(n,(qe(),Hd),(go(),c=u(uf(I9),9),new _o(c,u($s(c,c.length),9),0))),new V(X,a)}function QGn(n){r0(n,new gd(UE(e0(Yd(n0(Zd(new Ra,es),"ELK Radial"),'A radial layout provider which is based on the algorithm of Peter Eades published in "Drawing free trees.", published by International Institute for Advanced Study of Social Information Science, Fujitsu Limited in 1991. The radial layouter takes a tree and places the nodes in radial order around the root. The nodes of the same tree level are placed on the same radius.'),new V4n),es))),Q(n,es,TS,rn(fce)),Q(n,es,yw,rn(hce)),Q(n,es,i2,rn(cce)),Q(n,es,d3,rn(uce)),Q(n,es,a3,rn(oce)),Q(n,es,Xm,rn(rce)),Q(n,es,o8,rn(Jln)),Q(n,es,Vm,rn(sce)),Q(n,es,XR,rn(kq)),Q(n,es,zR,rn(yq)),Q(n,es,LS,rn(Yln)),Q(n,es,VR,rn(jq)),Q(n,es,WR,rn(Zln)),Q(n,es,zrn,rn(n1n)),Q(n,es,Grn,rn(Qln)),Q(n,es,_rn,rn(_I)),Q(n,es,Hrn,rn(HI)),Q(n,es,qrn,rn(Fj)),Q(n,es,Urn,rn(e1n)),Q(n,es,Krn,rn(Wln))}function zA(n){var e,t,i,r,c,s,f,h,l,a,d;if(n==null)throw M(new eh(gu));if(l=n,c=n.length,h=!1,c>0&&(e=(zn(0,n.length),n.charCodeAt(0)),(e==45||e==43)&&(n=(zn(1,n.length+1),n.substr(1)),--c,h=e==45)),c==0)throw M(new eh(V0+l+'"'));for(;n.length>0&&(zn(0,n.length),n.charCodeAt(0)==48);)n=(zn(1,n.length+1),n.substr(1)),--c;if(c>(SUn(),gQn)[10])throw M(new eh(V0+l+'"'));for(r=0;r0&&(d=-parseInt((Fi(0,i,n.length),n.substr(0,i)),10),n=(zn(i,n.length+1),n.substr(i)),c-=i,t=!1);c>=s;){if(i=parseInt((Fi(0,s,n.length),n.substr(0,s)),10),n=(zn(s,n.length+1),n.substr(s)),c-=s,t)t=!1;else{if(Ec(d,f)<0)throw M(new eh(V0+l+'"'));d=er(d,a)}d=bs(d,i)}if(Ec(d,0)>0)throw M(new eh(V0+l+'"'));if(!h&&(d=n1(d),Ec(d,0)<0))throw M(new eh(V0+l+'"'));return d}function utn(n){UF();var e,t,i,r,c,s,f,h;if(n==null)return null;if(r=th(n,wu(37)),r<0)return n;for(h=new mo((Fi(0,r,n.length),n.substr(0,r))),e=K(Fu,o2,28,4,15,1),f=0,i=0,s=n.length;rr+2&&R$((zn(r+1,n.length),n.charCodeAt(r+1)),Bdn,Rdn)&&R$((zn(r+2,n.length),n.charCodeAt(r+2)),Bdn,Rdn))if(t=gbe((zn(r+1,n.length),n.charCodeAt(r+1)),(zn(r+2,n.length),n.charCodeAt(r+2))),r+=2,i>0?(t&192)==128?e[f++]=t<<24>>24:i=0:t>=128&&((t&224)==192?(e[f++]=t<<24>>24,i=2):(t&240)==224?(e[f++]=t<<24>>24,i=3):(t&248)==240&&(e[f++]=t<<24>>24,i=4)),i>0){if(f==i){switch(f){case 2:{Ya(h,((e[0]&31)<<6|e[1]&63)&ui);break}case 3:{Ya(h,((e[0]&15)<<12|(e[1]&63)<<6|e[2]&63)&ui);break}}f=0,i=0}}else{for(c=0;c=2){if((!n.a&&(n.a=new q(Mt,n,6,6)),n.a).i==0)t=(B1(),r=new jE,r),ve((!n.a&&(n.a=new q(Mt,n,6,6)),n.a),t);else if((!n.a&&(n.a=new q(Mt,n,6,6)),n.a).i>1)for(g=new kp((!n.a&&(n.a=new q(Mt,n,6,6)),n.a));g.e!=g.i.gc();)D5(g);dy(e,u(L((!n.a&&(n.a=new q(Mt,n,6,6)),n.a),0),166))}if(d)for(i=new ne((!n.a&&(n.a=new q(Mt,n,6,6)),n.a));i.e!=i.i.gc();)for(t=u(ce(i),166),l=new ne((!t.a&&(t.a=new ti(xo,t,5)),t.a));l.e!=l.i.gc();)h=u(ce(l),377),f.a=y.Math.max(f.a,h.a),f.b=y.Math.max(f.b,h.b);for(s=new ne((!n.n&&(n.n=new q(Ar,n,1,7)),n.n));s.e!=s.i.gc();)c=u(ce(s),135),a=u(z(c,C9),8),a&&Ro(c,a.a,a.b),d&&(f.a=y.Math.max(f.a,c.i+c.g),f.b=y.Math.max(f.b,c.j+c.f));return f}function ZGn(n,e,t,i,r){var c,s,f;if(n$n(n,e),s=e[0],c=Xi(t.c,0),f=-1,iY(t))if(i>0){if(s+i>n.length)return!1;f=yA((Fi(0,s+i,n.length),n.substr(0,s+i)),e)}else f=yA(n,e);switch(c){case 71:return f=qg(n,s,S(T(fn,1),J,2,6,[Bzn,Rzn]),e),r.e=f,!0;case 77:return lAe(n,e,r,f,s);case 76:return aAe(n,e,r,f,s);case 69:return iEe(n,e,s,r);case 99:return rEe(n,e,s,r);case 97:return f=qg(n,s,S(T(fn,1),J,2,6,["AM","PM"]),e),r.b=f,!0;case 121:return dAe(n,e,s,f,t,r);case 100:return f<=0?!1:(r.c=f,!0);case 83:return f<0?!1:v8e(f,s,e[0],r);case 104:f==12&&(f=0);case 75:case 72:return f<0?!1:(r.f=f,r.g=!1,!0);case 107:return f<0?!1:(r.f=f,r.g=!0,!0);case 109:return f<0?!1:(r.j=f,!0);case 115:return f<0?!1:(r.n=f,!0);case 90:if(sjn[h]&&(j=h),d=new C(n.a.b);d.a1;){if(r=rTe(e),d=c.g,m=u(z(e,d9),107),k=$(R(z(e,zI))),(!e.a&&(e.a=new q(Qe,e,10,11)),e.a).i>1&&$(R(z(e,(_h(),Iq))))!=St&&(c.c+(m.b+m.c))/(c.b+(m.d+m.a))1&&$(R(z(e,(_h(),Pq))))!=St&&(c.c+(m.b+m.c))/(c.b+(m.d+m.a))>k&&ht(r,(_h(),Xw),y.Math.max($(R(z(e,a9))),$(R(z(r,Xw)))-$(R(z(e,Pq))))),p=new dX(i,a),h=vzn(p,r,g),l=h.g,l>=d&&l==l){for(s=0;s<(!r.a&&(r.a=new q(Qe,r,10,11)),r.a).i;s++)z_n(n,u(L((!r.a&&(r.a=new q(Qe,r,10,11)),r.a),s),27),u(L((!e.a&&(e.a=new q(Qe,e,10,11)),e.a),s),27));T$n(e,p),s2e(c,h.c),o2e(c,h.b)}--f}ht(e,(_h(),Nv),c.b),ht(e,O3,c.c),t.Vg()}function ZDe(n,e){var t,i,r,c,s,f,h,l,a,d,g,p,m,k,j,A,I;for(e.Ug("Interactive node layering",1),t=new Z,g=new C(n.a);g.a=f){oe(I.b>0),I.a.Xb(I.c=--I.b);break}else j.a>h&&(i?(hi(i.b,j.b),i.a=y.Math.max(i.a,j.a),bo(I)):(nn(j.b,a),j.c=y.Math.min(j.c,h),j.a=y.Math.max(j.a,f),i=j));i||(i=new Vyn,i.c=h,i.a=f,Rb(I,i),nn(i.b,a))}for(s=n.b,l=0,A=new C(t);A.ap&&(c&&(ir(X,g),ir(jn,Y(l.b-1))),Ze=t.b,Lt+=g+e,g=0,a=y.Math.max(a,t.b+t.c+ue)),eu(f,Ze),tu(f,Lt),a=y.Math.max(a,Ze+ue+t.c),g=y.Math.max(g,d),Ze+=ue+e;if(a=y.Math.max(a,i),Kn=Lt+g+t.a,Knvh,kn=y.Math.abs(g.b-m.b)>vh,(!t&&jn&&kn||t&&(jn||kn))&&xe(j.a,N)),Bi(j.a,i),i.b==0?g=N:g=(oe(i.b!=0),u(i.c.b.c,8)),Rve(p,d,k),Mxn(r)==en&&(Hi(en.i)!=r.a&&(k=new Li,mnn(k,Hi(en.i),I)),U(j,pH,k)),yje(p,j,I),a.a.zc(p,a);Zi(j,H),Ii(j,en)}for(l=a.a.ec().Kc();l.Ob();)h=u(l.Pb(),18),Zi(h,null),Ii(h,null);e.Vg()}function tLe(n,e){var t,i,r,c,s,f,h,l,a,d,g;for(r=u(v(n,(lc(),vb)),88),a=r==(ci(),Br)||r==Xr?Vf:Xr,t=u(Wr(ct(new Tn(null,new In(n.b,16)),new n4n),qu(new ju,new yu,new Eu,S(T(xr,1),G,108,0,[(Gu(),Yr)]))),15),h=u(Wr(_r(t.Oc(),new wkn(e)),qu(new ju,new yu,new Eu,S(T(xr,1),G,108,0,[Yr]))),15),h.Gc(u(Wr(_r(t.Oc(),new gkn(e)),qu(new ju,new yu,new Eu,S(T(xr,1),G,108,0,[Yr]))),16)),h.jd(new pkn(a)),g=new Ul(new mkn(r)),i=new de,f=h.Kc();f.Ob();)s=u(f.Pb(),240),l=u(s.a,40),on(un(s.c))?(g.a.zc(l,(_n(),wa))==null,new Y3(g.a.Zc(l,!1)).a.gc()>0&&Xe(i,l,u(new Y3(g.a.Zc(l,!1)).a.Vc(),40)),new Y3(g.a.ad(l,!0)).a.gc()>1&&Xe(i,PBn(g,l),l)):(new Y3(g.a.Zc(l,!1)).a.gc()>0&&(c=u(new Y3(g.a.Zc(l,!1)).a.Vc(),40),x(c)===x(Kr(wr(i.f,l)))&&u(v(l,(pt(),eq)),15).Fc(c)),new Y3(g.a.ad(l,!0)).a.gc()>1&&(d=PBn(g,l),x(Kr(wr(i.f,d)))===x(l)&&u(v(d,(pt(),eq)),15).Fc(l)),g.a.Bc(l)!=null)}function nzn(n){var e,t,i,r,c,s,f,h,l,a,d,g,p,m,k,j,A,I,D,N;if(n.gc()==1)return u(n.Xb(0),235);if(n.gc()<=0)return new zM;for(r=n.Kc();r.Ob();){for(t=u(r.Pb(),235),m=0,a=et,d=et,h=Wi,l=Wi,p=new C(t.e);p.af&&(D=0,N+=s+A,s=0),SSe(k,t,D,N),e=y.Math.max(e,D+j.a),s=y.Math.max(s,j.b),D+=j.a+A;return k}function iLe(n){Ben();var e,t,i,r,c,s,f,h,l,a,d,g,p,m,k,j;if(n==null||(c=iT(n),m=O5e(c),m%4!=0))return null;if(k=m/4|0,k==0)return K(Fu,o2,28,0,15,1);for(d=null,e=0,t=0,i=0,r=0,s=0,f=0,h=0,l=0,p=0,g=0,a=0,d=K(Fu,o2,28,k*3,15,1);p>4)<<24>>24,d[g++]=((t&15)<<4|i>>2&15)<<24>>24,d[g++]=(i<<6|r)<<24>>24}return!t7(s=c[a++])||!t7(f=c[a++])?null:(e=Zf[s],t=Zf[f],h=c[a++],l=c[a++],Zf[h]==-1||Zf[l]==-1?h==61&&l==61?t&15?null:(j=K(Fu,o2,28,p*3+1,15,1),Ic(d,0,j,0,p*3),j[g]=(e<<2|t>>4)<<24>>24,j):h!=61&&l==61?(i=Zf[h],i&3?null:(j=K(Fu,o2,28,p*3+2,15,1),Ic(d,0,j,0,p*3),j[g++]=(e<<2|t>>4)<<24>>24,j[g]=((t&15)<<4|i>>2&15)<<24>>24,j)):null:(i=Zf[h],r=Zf[l],d[g++]=(e<<2|t>>4)<<24>>24,d[g++]=((t&15)<<4|i>>2&15)<<24>>24,d[g++]=(i<<6|r)<<24>>24,d))}function rLe(n,e){var t,i,r,c,s,f,h,l,a,d,g,p,m,k,j,A,I,D,N,H;for(e.Ug(XXn,1),m=u(v(n,(cn(),$l)),223),r=new C(n.b);r.a=2){for(k=!0,g=new C(c.j),t=u(E(g),12),p=null;g.a0)if(i=d.gc(),l=wi(y.Math.floor((i+1)/2))-1,r=wi(y.Math.ceil((i+1)/2))-1,e.o==zf)for(a=r;a>=l;a--)e.a[N.p]==N&&(k=u(d.Xb(a),42),m=u(k.a,10),!of(t,k.b)&&p>n.b.e[m.p]&&(e.a[m.p]=N,e.g[N.p]=e.g[m.p],e.a[N.p]=e.g[N.p],e.f[e.g[N.p].p]=(_n(),!!(on(e.f[e.g[N.p].p])&N.k==(Vn(),Mi))),p=n.b.e[m.p]));else for(a=l;a<=r;a++)e.a[N.p]==N&&(A=u(d.Xb(a),42),j=u(A.a,10),!of(t,A.b)&&p0&&(r=u(sn(j.c.a,X-1),10),s=n.i[r.p],jn=y.Math.ceil(yg(n.n,r,j)),c=H.a.e-j.d.d-(s.a.e+r.o.b+r.d.a)-jn),l=St,X0&&en.a.e.e-en.a.a-(en.b.e.e-en.b.a)<0,m=D.a.e.e-D.a.a-(D.b.e.e-D.b.a)<0&&en.a.e.e-en.a.a-(en.b.e.e-en.b.a)>0,p=D.a.e.e+D.b.aen.b.e.e+en.a.a,N=0,!k&&!m&&(g?c+d>0?N=d:l-i>0&&(N=i):p&&(c+f>0?N=f:l-I>0&&(N=I))),H.a.e+=N,H.b&&(H.d.e+=N),!1))}function tzn(n,e,t){var i,r,c,s,f,h,l,a,d,g;if(i=new Ho(e.Lf().a,e.Lf().b,e.Mf().a,e.Mf().b),r=new mp,n.c)for(s=new C(e.Rf());s.al&&(i.a+=ITn(K(fs,gh,28,-l,15,1))),i.a+="Is",th(h,wu(32))>=0)for(r=0;r=i.o.b/2}else I=!d;I?(A=u(v(i,(W(),P3)),15),A?g?c=A:(r=u(v(i,C3),15),r?A.gc()<=r.gc()?c=A:c=r:(c=new Z,U(i,C3,c))):(c=new Z,U(i,P3,c))):(r=u(v(i,(W(),C3)),15),r?d?c=r:(A=u(v(i,P3),15),A?r.gc()<=A.gc()?c=r:c=A:(c=new Z,U(i,P3,c))):(c=new Z,U(i,C3,c))),c.Fc(n),U(n,(W(),tI),t),e.d==t?(Ii(e,null),t.e.c.length+t.g.c.length==0&&ic(t,null),j6e(t)):(Zi(e,null),t.e.c.length+t.g.c.length==0&&ic(t,null)),vo(e.a)}function sLe(n,e,t){var i,r,c,s,f,h,l,a,d,g,p,m,k,j,A,I,D,N,H,X,en,jn,kn,Rn,Kn,ue,Ze,Lt;for(t.Ug("MinWidth layering",1),p=e.b,en=e.a,Lt=u(v(e,(cn(),ihn)),17).a,f=u(v(e,rhn),17).a,n.b=$(R(v(e,Vs))),n.d=St,N=new C(en);N.a0?(l=0,j&&(l+=f),l+=(kn-1)*s,D&&(l+=f),jn&&D&&(l=y.Math.max(l,STe(D,s,I,en))),l=n.a&&(i=UPe(n,I),a=y.Math.max(a,i.b),N=y.Math.max(N,i.d),nn(f,new bi(I,i)));for(jn=new Z,l=0;l0),j.a.Xb(j.c=--j.b),kn=new Lc(n.b),Rb(j,kn),oe(j.b0){for(g=a<100?null:new F1(a),l=new KQ(e),m=l.g,A=K(ye,Ke,28,a,15,1),i=0,N=new S0(a),r=0;r=0;)if(p!=null?rt(p,m[h]):x(p)===x(m[h])){A.length<=i&&(j=A,A=K(ye,Ke,28,2*A.length,15,1),Ic(j,0,A,0,i)),A[i++]=r,ve(N,m[h]);break n}if(p=p,x(p)===x(f))break}}if(l=N,m=N.g,a=i,i>A.length&&(j=A,A=K(ye,Ke,28,i,15,1),Ic(j,0,A,0,i)),i>0){for(D=!0,c=0;c=0;)Jp(n,A[s]);if(i!=a){for(r=a;--r>=i;)Jp(l,r);j=A,A=K(ye,Ke,28,i,15,1),Ic(j,0,A,0,i)}e=l}}}else for(e=M7e(n,e),r=n.i;--r>=0;)e.Hc(n.g[r])&&(Jp(n,r),D=!0);if(D){if(A!=null){for(t=e.gc(),d=t==1?J6(n,4,e.Kc().Pb(),null,A[0],k):J6(n,6,e,A,A[0],k),g=t<100?null:new F1(t),r=e.Kc();r.Ob();)p=r.Pb(),g=PV(n,u(p,76),g);g?(g.nj(d),g.oj()):it(n.e,d)}else{for(g=Oae(e.gc()),r=e.Kc();r.Ob();)p=r.Pb(),g=PV(n,u(p,76),g);g&&g.oj()}return!0}else return!1}function lLe(n,e){var t,i,r,c,s,f,h,l,a,d,g,p,m,k,j,A,I,D;for(t=new yRn(e),t.a||RSe(e),l=FAe(e),h=new C0,j=new Eqn,k=new C(e.a);k.a0||t.o==zf&&r=t}function dLe(n,e,t){var i,r,c,s,f,h,l,a,d,g,p,m,k,j,A,I,D,N,H,X,en,jn,kn,Rn,Kn,ue;for(D=e,I=new C0,N=new C0,a=A0(D,Scn),i=new IIn(n,t,I,N),Lje(i.a,i.b,i.c,i.d,a),h=(en=I.i,en||(I.i=new Cg(I,I.c))),kn=h.Kc();kn.Ob();)for(jn=u(kn.Pb(),166),r=u(ot(I,jn),21),k=r.Kc();k.Ob();)if(m=k.Pb(),H=u(Dg(n.d,m),166),H)f=(!jn.e&&(jn.e=new Nn(Mt,jn,10,9)),jn.e),ve(f,H);else throw s=bl(D,Eh),g=kWn+m+yWn+s,p=g+iv,M(new nh(p));for(l=(X=N.i,X||(N.i=new Cg(N,N.c))),Kn=l.Kc();Kn.Ob();)for(Rn=u(Kn.Pb(),166),c=u(ot(N,Rn),21),A=c.Kc();A.Ob();)if(j=A.Pb(),H=u(Dg(n.d,j),166),H)d=(!Rn.g&&(Rn.g=new Nn(Mt,Rn,9,10)),Rn.g),ve(d,H);else throw s=bl(D,Eh),g=kWn+j+yWn+s,p=g+iv,M(new nh(p));!t.b&&(t.b=new Nn(he,t,4,7)),t.b.i!=0&&(!t.c&&(t.c=new Nn(he,t,5,8)),t.c.i!=0)&&(!t.b&&(t.b=new Nn(he,t,4,7)),t.b.i<=1&&(!t.c&&(t.c=new Nn(he,t,5,8)),t.c.i<=1))&&(!t.a&&(t.a=new q(Mt,t,6,6)),t.a).i==1&&(ue=u(L((!t.a&&(t.a=new q(Mt,t,6,6)),t.a),0),166),!Sx(ue)&&!Px(ue)&&(mT(ue,u(L((!t.b&&(t.b=new Nn(he,t,4,7)),t.b),0),84)),vT(ue,u(L((!t.c&&(t.c=new Nn(he,t,5,8)),t.c),0),84))))}function bLe(n){var e,t,i,r,c,s,f,h,l,a,d,g,p,m,k,j,A,I,D,N,H,X,en,jn,kn,Rn;for(D=n.a,N=0,H=D.length;N0?(d=u(sn(g.c.a,s-1),10),jn=yg(n.b,g,d),j=g.n.b-g.d.d-(d.n.b+d.o.b+d.d.a+jn)):j=g.n.b-g.d.d,l=y.Math.min(j,l),s1&&(s=y.Math.min(s,y.Math.abs(u(Zo(f.a,1),8).b-a.b)))));else for(k=new C(e.j);k.ar&&(c=g.a-r,s=et,i.c.length=0,r=g.a),g.a>=r&&(Bn(i.c,f),f.a.b>1&&(s=y.Math.min(s,y.Math.abs(u(Zo(f.a,f.a.b-2),8).b-g.b)))));if(i.c.length!=0&&c>e.o.a/2&&s>e.o.b/2){for(p=new Pc,ic(p,e),gi(p,(tn(),Xn)),p.n.a=e.o.a/2,A=new Pc,ic(A,e),gi(A,ae),A.n.a=e.o.a/2,A.n.b=e.o.b,h=new C(i);h.a=l.b?Zi(f,A):Zi(f,p)):(l=u(cbe(f.a),8),j=f.a.b==0?Pf(f.c):u(Ns(f.a),8),j.b>=l.b?Ii(f,A):Ii(f,p)),d=u(v(f,(cn(),Fr)),75),d&&iw(d,l,!0);e.n.a=r-e.o.a/2}}function gLe(n,e,t){var i,r,c,s,f,h,l,a,d,g;for(f=ge(n.b,0);f.b!=f.d.c;)if(s=u(be(f),40),!An(s.c,IS))for(l=_Ce(s,n),e==(ci(),Br)||e==Xr?Yt(l,new M4n):Yt(l,new T4n),h=l.c.length,i=0;i=0?p=zp(f):p=Bk(zp(f)),n.qf(Mv,p)),l=new Li,g=!1,n.pf(bb)?(ZX(l,u(n.of(bb),8)),g=!0):T1e(l,s.a/2,s.b/2),p.g){case 4:U(a,ou,(Yo(),ka)),U(a,rI,(hd(),p2)),a.o.b=s.b,k<0&&(a.o.a=-k),gi(d,(tn(),Zn)),g||(l.a=s.a),l.a-=s.a;break;case 2:U(a,ou,(Yo(),xw)),U(a,rI,(hd(),mv)),a.o.b=s.b,k<0&&(a.o.a=-k),gi(d,(tn(),Wn)),g||(l.a=0);break;case 1:U(a,Od,(vl(),v2)),a.o.a=s.a,k<0&&(a.o.b=-k),gi(d,(tn(),ae)),g||(l.b=s.b),l.b-=s.b;break;case 3:U(a,Od,(vl(),E3)),a.o.a=s.a,k<0&&(a.o.b=-k),gi(d,(tn(),Xn)),g||(l.b=0)}if(ZX(d.n,l),U(a,bb,l),e==Ud||e==tl||e==qc){if(m=0,e==Ud&&n.pf(v1))switch(p.g){case 1:case 2:m=u(n.of(v1),17).a;break;case 3:case 4:m=-u(n.of(v1),17).a}else switch(p.g){case 4:case 2:m=c.b,e==tl&&(m/=r.b);break;case 1:case 3:m=c.a,e==tl&&(m/=r.a)}U(a,fb,m)}return U(a,gc,p),a}function pLe(){Cz();function n(i){var r=this;this.dispatch=function(c){var s=c.data;switch(s.cmd){case"algorithms":var f=GY((Dn(),new Q3(new ol(Oa.b))));i.postMessage({id:s.id,data:f});break;case"categories":var h=GY((Dn(),new Q3(new ol(Oa.c))));i.postMessage({id:s.id,data:h});break;case"options":var l=GY((Dn(),new Q3(new ol(Oa.d))));i.postMessage({id:s.id,data:l});break;case"register":kOe(s.algorithms),i.postMessage({id:s.id});break;case"layout":WPe(s.graph,s.layoutOptions||{},s.options||{}),i.postMessage({id:s.id,data:s.graph});break}},this.saveDispatch=function(c){try{r.dispatch(c)}catch(s){i.postMessage({id:c.data.id,error:s})}}}function e(i){var r=this;this.dispatcher=new n({postMessage:function(c){r.onmessage({data:c})}}),this.postMessage=function(c){setTimeout(function(){r.dispatcher.saveDispatch({data:c})},0)}}if(typeof document===xB&&typeof self!==xB){var t=new n(self);self.onmessage=t.saveDispatch}else typeof gt!==xB&>.exports&&(Object.defineProperty(Sr,"__esModule",{value:!0}),gt.exports={default:e,Worker:e})}function szn(n,e,t){var i,r,c,s,f,h,l,a,d,g;for(a=new Tl(t),Ur(a,e),U(a,(W(),st),e),a.o.a=e.g,a.o.b=e.f,a.n.a=e.i,a.n.b=e.j,nn(t.a,a),Xe(n.a,e,a),((!e.a&&(e.a=new q(Qe,e,10,11)),e.a).i!=0||on(un(z(e,(cn(),Rw)))))&&U(a,Zsn,(_n(),!0)),l=u(v(t,Hc),21),d=u(v(a,(cn(),Kt)),101),d==(Oi(),Sa)?U(a,Kt,Jf):d!=Jf&&l.Fc((pr(),yv)),g=0,i=u(v(t,Do),88),h=new ne((!e.c&&(e.c=new q(Qu,e,9,9)),e.c));h.e!=h.i.gc();)f=u(ce(h),123),r=At(e),(x(z(r,Yh))!==x((lh(),k1))||x(z(r,Ld))===x((o1(),pv))||x(z(r,Ld))===x((o1(),gv))||on(un(z(r,lb)))||x(z(r,Fw))!==x((dd(),Ow))||x(z(r,ya))===x((gs(),pb))||x(z(r,ya))===x((gs(),Uw))||x(z(r,$d))===x((a1(),Pv))||x(z(r,$d))===x((a1(),Iv)))&&!on(un(z(e,lI)))&&ht(f,dt,Y(g++)),on(un(z(f,Fd)))||ADe(n,f,a,l,i,d);for(s=new ne((!e.n&&(e.n=new q(Ar,e,1,7)),e.n));s.e!=s.i.gc();)c=u(ce(s),135),!on(un(z(c,Fd)))&&c.a&&nn(a.b,ex(c));return on(un(v(a,z8)))&&l.Fc((pr(),ZP)),on(un(v(a,wI)))&&(l.Fc((pr(),nI)),l.Fc(K8),U(a,Kt,Jf)),a}function QF(n,e,t,i,r,c,s){var f,h,l,a,d,g,p,m,k,j,A,I,D,N,H,X,en,jn,kn,Rn,Kn,ue,Ze,Lt;for(k=0,Rn=0,l=new C(n.b);l.ak&&(c&&(ir(X,p),ir(jn,Y(a.b-1)),nn(n.d,m),f.c.length=0),Ze=t.b,Lt+=p+e,p=0,d=y.Math.max(d,t.b+t.c+ue)),Bn(f.c,h),dRn(h,Ze,Lt),d=y.Math.max(d,Ze+ue+t.c),p=y.Math.max(p,g),Ze+=ue+e,m=h;if(hi(n.a,f),nn(n.d,u(sn(f,f.c.length-1),163)),d=y.Math.max(d,i),Kn=Lt+p+t.a,Knr.d.d+r.d.a?a.f.d=!0:(a.f.d=!0,a.f.a=!0))),i.b!=i.d.c&&(e=t);a&&(c=u(ee(n.f,s.d.i),60),e.bc.d.d+c.d.a?a.f.d=!0:(a.f.d=!0,a.f.a=!0))}for(f=new te(re(ji(p).a.Kc(),new En));pe(f);)s=u(fe(f),18),s.a.b!=0&&(e=u(Ns(s.a),8),s.d.j==(tn(),Xn)&&(j=new z5(e,new V(e.a,r.d.d),r,s),j.f.a=!0,j.a=s.d,Bn(k.c,j)),s.d.j==ae&&(j=new z5(e,new V(e.a,r.d.d+r.d.a),r,s),j.f.d=!0,j.a=s.d,Bn(k.c,j)))}return k}function ELe(n,e,t){var i,r,c,s,f,h,l,a,d,g;for(h=new Z,d=e.length,s=tY(t),l=0;l=m&&(I>m&&(p.c.length=0,m=I),Bn(p.c,s));p.c.length!=0&&(g=u(sn(p,cA(e,p.c.length)),131),Kn.a.Bc(g)!=null,g.s=k++,nen(g,kn,X),p.c.length=0)}for(N=n.c.length+1,f=new C(n);f.aRn.s&&(bo(t),du(Rn.i,i),i.c>0&&(i.a=Rn,nn(Rn.t,i),i.b=en,nn(en.i,i)))}function fzn(n,e,t,i,r){var c,s,f,h,l,a,d,g,p,m,k,j,A,I,D,N,H,X,en,jn,kn,Rn,Kn;for(k=new Gc(e.b),N=new Gc(e.b),g=new Gc(e.b),jn=new Gc(e.b),j=new Gc(e.b),en=ge(e,0);en.b!=en.d.c;)for(H=u(be(en),12),f=new C(H.g);f.a0,A=H.g.c.length>0,l&&A?Bn(g.c,H):l?Bn(k.c,H):A&&Bn(N.c,H);for(m=new C(k);m.aI.nh()-l.b&&(g=I.nh()-l.b),p>I.oh()-l.d&&(p=I.oh()-l.d),a0){for(D=ge(n.f,0);D.b!=D.d.c;)I=u(be(D),10),I.p+=g-n.e;vnn(n),vo(n.f),ben(n,i,p)}else{for(xe(n.f,p),p.p=i,n.e=y.Math.max(n.e,i),c=new te(re(ji(p).a.Kc(),new En));pe(c);)r=u(fe(c),18),!r.c.i.c&&r.c.i.k==(Vn(),Ac)&&(xe(n.f,r.c.i),r.c.i.p=i-1);n.c=i}else vnn(n),vo(n.f),i=0,pe(new te(re(ji(p).a.Kc(),new En)))?(g=0,g=mRn(g,p),i=g+2,ben(n,i,p)):(xe(n.f,p),p.p=0,n.e=y.Math.max(n.e,0),n.b=u(sn(n.d.b,0),30),n.c=0);for(n.f.b==0||vnn(n),n.d.a.c.length=0,A=new Z,l=new C(n.d.b);l.a=48&&e<=57){for(i=e-48;r=48&&e<=57;)if(i=i*10+e-48,i<0)throw M(new Le($e((Ie(),_cn))))}else throw M(new Le($e((Ie(),XWn))));if(t=i,e==44){if(r>=n.j)throw M(new Le($e((Ie(),WWn))));if((e=Xi(n.i,r++))>=48&&e<=57){for(t=e-48;r=48&&e<=57;)if(t=t*10+e-48,t<0)throw M(new Le($e((Ie(),_cn))));if(i>t)throw M(new Le($e((Ie(),JWn))))}else t=-1}if(e!=125)throw M(new Le($e((Ie(),VWn))));n.bm(r)?(c=(nt(),nt(),new Xb(9,c)),n.d=r+1):(c=(nt(),nt(),new Xb(3,c)),n.d=r),c.Om(i),c.Nm(t),Ye(n)}}return c}function PLe(n){var e,t,i,r,c;switch(t=u(v(n,(W(),Hc)),21),e=DC(mZn),r=u(v(n,(cn(),Bw)),346),r==(jl(),M1)&&Mo(e,vZn),on(un(v(n,TH)))?Re(e,(Vi(),Xs),(tr(),$_)):Re(e,(Vi(),Oc),(tr(),$_)),v(n,(JM(),p9))!=null&&Mo(e,kZn),(on(un(v(n,nhn)))||on(un(v(n,Jfn))))&&Pu(e,(Vi(),zr),(tr(),Won)),u(v(n,Do),88).g){case 2:case 3:case 4:Pu(Re(e,(Vi(),Xs),(tr(),Qon)),zr,Jon)}switch(t.Hc((pr(),ZP))&&Pu(Re(Re(e,(Vi(),Xs),(tr(),Von)),Kc,zon),zr,Xon),x(v(n,ya))!==x((gs(),AI))&&Re(e,(Vi(),Oc),(tr(),asn)),t.Hc(eI)&&(Re(e,(Vi(),Xs),(tr(),gsn)),Re(e,Jh,bsn),Re(e,Oc,wsn)),x(v(n,fI))!==x((jm(),R8))&&x(v(n,$l))!==x((El(),Yj))&&Pu(e,(Vi(),zr),(tr(),usn)),on(un(v(n,Yfn)))&&Re(e,(Vi(),Oc),(tr(),csn)),on(un(v(n,jH)))&&Re(e,(Vi(),Oc),(tr(),psn)),HMe(n)&&(x(v(n,Bw))===x(M1)?i=u(v(n,Cj),299):i=u(v(n,yH),299),c=i==(Z4(),uH)?(tr(),dsn):(tr(),ksn),Re(e,(Vi(),Kc),c)),u(v(n,Thn),388).g){case 1:Re(e,(Vi(),Kc),(tr(),msn));break;case 2:Pu(Re(Re(e,(Vi(),Oc),(tr(),Hon)),Kc,qon),zr,Uon)}return x(v(n,Yh))!==x((lh(),k1))&&Re(e,(Vi(),Oc),(tr(),vsn)),e}function dzn(n,e,t){var i,r,c,s,f,h,l,a,d,g,p,m,k,j,A,I,D;if(Zc(n.a,e)){if(of(u(ee(n.a,e),49),t))return 1}else Xe(n.a,e,new ni);if(Zc(n.a,t)){if(of(u(ee(n.a,t),49),e))return-1}else Xe(n.a,t,new ni);if(Zc(n.e,e)){if(of(u(ee(n.e,e),49),t))return-1}else Xe(n.e,e,new ni);if(Zc(n.e,t)){if(of(u(ee(n.a,t),49),e))return 1}else Xe(n.e,t,new ni);if(n.c==(lh(),HH)||!kt(e,(W(),dt))||!kt(t,(W(),dt))){for(d=null,l=new C(e.j);l.as?Pm(n,e,t):Pm(n,t,e),rs?1:0}return i=u(v(e,(W(),dt)),17).a,c=u(v(t,dt),17).a,i>c?Pm(n,e,t):Pm(n,t,e),ic?1:0}function z0(n,e,t){var i,r,c,s,f,h,l,a,d,g,p,m,k,j;if(t==null)return null;if(n.a!=e.jk())throw M(new Gn(ev+e.xe()+nb));if(O(e,469)){if(j=kAe(u(e,685),t),!j)throw M(new Gn(fK+t+"' is not a valid enumerator of '"+e.xe()+"'"));return j}switch(r1((Du(),zi),e).Nl()){case 2:{t=Fc(t,!1);break}case 3:{t=Fc(t,!0);break}}if(i=r1(zi,e).Jl(),i)return i.jk().wi().ti(i,t);if(g=r1(zi,e).Ll(),g){for(j=new Z,l=z$(t),a=0,d=l.length;a1)for(m=new kp((!n.a&&(n.a=new q(Mt,n,6,6)),n.a));m.e!=m.i.gc();)D5(m);for(s=u(L((!n.a&&(n.a=new q(Mt,n,6,6)),n.a),0),166),j=Ze,Ze>H+N?j=H+N:ZeX+k?A=X+k:LtH-N&&jX-k&&AZe+ue?jn=Ze+ue:HLt+en?kn=Lt+en:XZe-ue&&jnLt-en&&knt&&(g=t-1),p=D1+to(e,24)*Iy*d-d/2,p<0?p=1:p>i&&(p=i-1),r=(B1(),h=new yE,h),aT(r,g),lT(r,p),ve((!s.a&&(s.a=new ti(xo,s,5)),s.a),r)}function bzn(n){r0(n,new gd(e0(Yd(n0(Zd(new Ra,co),"ELK Rectangle Packing"),"Algorithm for packing of unconnected boxes, i.e. graphs without edges. The given order of the boxes is always preserved and the main reading direction of the boxes is left to right. The algorithm is divided into two phases. One phase approximates the width in which the rectangles can be placed. The next phase places the rectangles in rows using the previously calculated width as bounding width and bundles rectangles with a similar height in blocks. A compaction step reduces the size of the drawing. Finally, the rectangles are expanded to fill their bounding box and eliminate empty unused spaces."),new rmn))),Q(n,co,l3,1.3),Q(n,co,zm,(_n(),!1)),Q(n,co,W0,k1n),Q(n,co,yw,15),Q(n,co,MS,rn(Oce)),Q(n,co,i2,rn(Nce)),Q(n,co,d3,rn(xce)),Q(n,co,a3,rn(Fce)),Q(n,co,Xm,rn(Lce)),Q(n,co,o8,rn(Dq)),Q(n,co,Vm,rn(Bce)),Q(n,co,ecn,rn(C1n)),Q(n,co,tcn,rn(E1n)),Q(n,co,ncn,rn(Nq)),Q(n,co,Zrn,rn(M1n)),Q(n,co,icn,rn(v1n)),Q(n,co,rcn,rn(Lq)),Q(n,co,ccn,rn(m1n)),Q(n,co,ucn,rn(j1n)),Q(n,co,u8,rn(p1n)),Q(n,co,AS,rn(Dce)),Q(n,co,Qrn,rn(Rj)),Q(n,co,Jrn,rn(g1n)),Q(n,co,Yrn,rn(Kj)),Q(n,co,Wrn,rn(y1n))}function ZF(n,e){BF();var t,i,r,c,s,f,h,l,a,d,g,p,m,k,j,A,I,D,N,H,X,en;if(D=n.e,a=n.d,r=n.a,D==0)switch(e){case 0:return"0";case 1:return Km;case 2:return"0.00";case 3:return"0.000";case 4:return"0.0000";case 5:return"0.00000";case 6:return"0.000000";default:return A=new x1,A.a+="0E",A.a+=-e,A.a}if(k=a*10+1+7,j=K(fs,gh,28,k+1,15,1),t=k,a==1)if(c=r[0],c<0){en=vi(c,mr);do d=en,en=Wk(en,10),j[--t]=48+Ae(bs(d,er(en,10)))&ui;while(Ec(en,0)!=0)}else{en=c;do d=en,en=en/10|0,j[--t]=48+(d-en*10)&ui;while(en!=0)}else{N=K(ye,Ke,28,a,15,1),X=a,Ic(r,0,N,0,X);n:for(;;){for(I=0,f=X-1;f>=0;f--)H=nr(Fs(I,32),vi(N[f],mr)),p=mye(H),N[f]=Ae(p),I=Ae(w0(p,32));m=Ae(I),g=t;do j[--t]=48+m%10&ui;while((m=m/10|0)!=0&&t!=0);for(i=9-g+t,s=0;s0;s++)j[--t]=48;for(h=X-1;N[h]==0;h--)if(h==0)break n;X=h+1}for(;j[t]==48;)++t}return l=D<0,l&&(j[--t]=45),hh(j,t,k-t)}function wzn(n,e){var t,i,r,c,s,f,h,l,a,d,g,p,m,k,j,A,I,D,N,H,X;switch(n.c=e,n.g=new de,t=(c0(),new Qd(n.c)),i=new IE(t),HY(i),D=Oe(z(n.c,(Qk(),U1n))),h=u(z(n.c,Uq),324),H=u(z(n.c,Gq),437),s=u(z(n.c,_1n),490),N=u(z(n.c,qq),438),n.j=$(R(z(n.c,Yce))),f=n.a,h.g){case 0:f=n.a;break;case 1:f=n.b;break;case 2:f=n.i;break;case 3:f=n.e;break;case 4:f=n.f;break;default:throw M(new Gn(xS+(h.f!=null?h.f:""+h.g)))}if(n.d=new sOn(f,H,s),U(n.d,(J4(),N8),un(z(n.c,Jce))),n.d.c=on(un(z(n.c,H1n))),AM(n.c).i==0)return n.d;for(d=new ne(AM(n.c));d.e!=d.i.gc();){for(a=u(ce(d),27),p=a.g/2,g=a.f/2,X=new V(a.i+p,a.j+g);Zc(n.g,X);)a0(X,(y.Math.random()-.5)*vh,(y.Math.random()-.5)*vh);k=u(z(a,(qe(),xv)),140),j=new jOn(X,new Ho(X.a-p-n.j/2-k.b,X.b-g-n.j/2-k.d,a.g+n.j+(k.b+k.c),a.f+n.j+(k.d+k.a))),nn(n.d.i,j),Xe(n.g,X,new bi(j,a))}switch(N.g){case 0:if(D==null)n.d.d=u(sn(n.d.i,0),68);else for(I=new C(n.d.i);I.a0?ue+1:1);for(s=new C(X.g);s.a0?ue+1:1)}n.c[l]==0?xe(n.e,k):n.a[l]==0&&xe(n.f,k),++l}for(m=-1,p=1,d=new Z,n.d=u(v(e,(W(),S3)),234);Fo>0;){for(;n.e.b!=0;)Lt=u(UL(n.e),10),n.b[Lt.p]=m--,Oen(n,Lt),--Fo;for(;n.f.b!=0;)Yu=u(UL(n.f),10),n.b[Yu.p]=p++,Oen(n,Yu),--Fo;if(Fo>0){for(g=Wi,I=new C(D);I.a=g&&(N>g&&(d.c.length=0,g=N),Bn(d.c,k)));a=n.sg(d),n.b[a.p]=p++,Oen(n,a),--Fo}}for(Ze=D.c.length+1,l=0;ln.b[Rr]&&(U0(i,!0),U(e,kj,(_n(),!0)));n.a=null,n.c=null,n.b=null,vo(n.f),vo(n.e),t.Vg()}function gzn(n,e,t){var i,r,c,s,f,h,l,a,d,g,p,m,k,j,A,I,D,N,H,X;for(H=u(L((!n.a&&(n.a=new q(Mt,n,6,6)),n.a),0),166),a=new Mu,N=new de,X=MUn(H),Vc(N.f,H,X),g=new de,i=new Ct,m=$h(Eo(S(T(Oo,1),Fn,20,0,[(!e.d&&(e.d=new Nn(Vt,e,8,5)),e.d),(!e.e&&(e.e=new Nn(Vt,e,7,4)),e.e)])));pe(m);){if(p=u(fe(m),74),(!n.a&&(n.a=new q(Mt,n,6,6)),n.a).i!=1)throw M(new Gn(tWn+(!n.a&&(n.a=new q(Mt,n,6,6)),n.a).i));p!=n&&(j=u(L((!p.a&&(p.a=new q(Mt,p,6,6)),p.a),0),166),xt(i,j,i.c.b,i.c),k=u(Kr(wr(N.f,j)),13),k||(k=MUn(j),Vc(N.f,j,k)),d=t?mi(new rr(u(sn(X,X.c.length-1),8)),u(sn(k,k.c.length-1),8)):mi(new rr((Ln(0,X.c.length),u(X.c[0],8))),(Ln(0,k.c.length),u(k.c[0],8))),Vc(g.f,j,d))}if(i.b!=0)for(A=u(sn(X,t?X.c.length-1:0),8),l=1;l1&&xt(a,A,a.c.b,a.c),p$(r)));A=I}return a}function pzn(n,e,t){var i,r,c,s,f,h,l,a,d,g,p,m,k,j,A,I,D,N,H,X,en,jn,kn,Rn;for(t.Ug(pVn,1),Rn=u(Wr(ct(new Tn(null,new In(e,16)),new L4n),qu(new ju,new yu,new Eu,S(T(xr,1),G,108,0,[(Gu(),Yr)]))),15),a=u(Wr(ct(new Tn(null,new In(e,16)),new kkn(e)),qu(new ju,new yu,new Eu,S(T(xr,1),G,108,0,[Yr]))),15),m=u(Wr(ct(new Tn(null,new In(e,16)),new vkn(e)),qu(new ju,new yu,new Eu,S(T(xr,1),G,108,0,[Yr]))),15),k=K(NI,OS,40,e.gc(),0,1),s=0;s=0&&kn=0&&!k[p]){k[p]=r,a.gd(f),--f;break}if(p=kn-g,p=0&&!k[p]){k[p]=r,a.gd(f),--f;break}}for(m.jd(new N4n),h=k.length-1;h>=0;h--)!k[h]&&!m.dc()&&(k[h]=u(m.Xb(0),40),m.gd(0));for(l=0;l=0;h--)xe(t,(Ln(h,s.c.length),u(s.c[h],8)));return t}function vzn(n,e,t){var i,r,c,s,f,h,l,a,d,g,p,m,k,j,A,I,D,N;for(D=$(R(z(e,(_h(),Xw)))),p=$(R(z(e,a9))),g=$(R(z(e,UI))),NQ((!e.a&&(e.a=new q(Qe,e,10,11)),e.a)),A=fGn((!e.a&&(e.a=new q(Qe,e,10,11)),e.a),D,n.b),j=0;jg&&Xk((Ln(g,e.c.length),u(e.c[g],186)),a),a=null;e.c.length>g&&(Ln(g,e.c.length),u(e.c[g],186)).a.c.length==0;)du(e,(Ln(g,e.c.length),e.c[g]));if(!a){--s;continue}if(!on(un(u(sn(a.b,0),27).of((Bf(),Kj))))&&YSe(e,m,c,a,j,t,g,i)){k=!0;continue}if(j){if(p=m.b,d=a.f,!on(un(u(sn(a.b,0),27).of(Kj)))&&pOe(e,m,c,a,t,g,i,r)){if(k=!0,p=n.j){n.a=-1,n.c=1;return}if(e=Xi(n.i,n.d++),n.a=e,n.b==1){switch(e){case 92:if(i=10,n.d>=n.j)throw M(new Le($e((Ie(),qS))));n.a=Xi(n.i,n.d++);break;case 45:(n.e&512)==512&&n.d=n.j||Xi(n.i,n.d)!=63)break;if(++n.d>=n.j)throw M(new Le($e((Ie(),jK))));switch(e=Xi(n.i,n.d++),e){case 58:i=13;break;case 61:i=14;break;case 33:i=15;break;case 91:i=19;break;case 62:i=18;break;case 60:if(n.d>=n.j)throw M(new Le($e((Ie(),jK))));if(e=Xi(n.i,n.d++),e==61)i=16;else if(e==33)i=17;else throw M(new Le($e((Ie(),PWn))));break;case 35:for(;n.d=n.j)throw M(new Le($e((Ie(),qS))));n.a=Xi(n.i,n.d++);break;default:i=0}n.c=i}function RLe(n,e,t){var i,r,c,s,f,h,l,a,d,g,p,m,k,j;if(t.Ug("Process compaction",1),!!on(un(v(e,(lc(),Mln))))){for(r=u(v(e,vb),88),p=$(R(v(e,fq))),aIe(n,e,r),tLe(e,p/2/2),m=e.b,ud(m,new akn(r)),l=ge(m,0);l.b!=l.d.c;)if(h=u(be(l),40),!on(un(v(h,(pt(),Ca))))){if(i=BAe(h,r),k=LPe(h,e),d=0,g=0,i)switch(j=i.e,r.g){case 2:d=j.a-p-h.f.a,k.e.a-p-h.f.ad&&(d=k.e.a+k.f.a+p),g=d+h.f.a;break;case 4:d=j.b-p-h.f.b,k.e.b-p-h.f.bd&&(d=k.e.b+k.f.b+p),g=d+h.f.b}else if(k)switch(r.g){case 2:d=k.e.a-p-h.f.a,g=d+h.f.a;break;case 1:d=k.e.a+k.f.a+p,g=d+h.f.a;break;case 4:d=k.e.b-p-h.f.b,g=d+h.f.b;break;case 3:d=k.e.b+k.f.b+p,g=d+h.f.b}x(v(e,sq))===x((b5(),Lj))?(c=d,s=g,f=im(ct(new Tn(null,new In(n.a,16)),new eMn(c,s))),f.a!=null?r==(ci(),Br)||r==Xr?h.e.a=d:h.e.b=d:(r==(ci(),Br)||r==us?f=im(ct(O$n(new Tn(null,new In(n.a,16))),new dkn(c))):f=im(ct(O$n(new Tn(null,new In(n.a,16))),new bkn(c))),f.a!=null&&(r==Br||r==Xr?h.e.a=$(R((oe(f.a!=null),u(f.a,42)).a)):h.e.b=$(R((oe(f.a!=null),u(f.a,42)).a)))),f.a!=null&&(a=qr(n.a,(oe(f.a!=null),f.a),0),a>0&&a!=u(v(h,Sh),17).a&&(U(h,pln,(_n(),!0)),U(h,Sh,Y(a))))):r==(ci(),Br)||r==Xr?h.e.a=d:h.e.b=d}t.Vg()}}function kzn(n){var e,t,i,r,c,s,f,h,l;for(n.b=1,Ye(n),e=null,n.c==0&&n.a==94?(Ye(n),e=(nt(),nt(),new yo(4)),xc(e,0,cv),f=new yo(4)):f=(nt(),nt(),new yo(4)),r=!0;(l=n.c)!=1;){if(l==0&&n.a==93&&!r){e&&(Q5(e,f),f=e);break}if(t=n.a,i=!1,l==10)switch(t){case 100:case 68:case 119:case 87:case 115:case 83:gw(f,Im(t)),i=!0;break;case 105:case 73:case 99:case 67:t=(gw(f,Im(t)),-1),t<0&&(i=!0);break;case 112:case 80:if(h=$nn(n,t),!h)throw M(new Le($e((Ie(),EK))));gw(f,h),i=!0;break;default:t=gen(n)}else if(l==24&&!r){if(e&&(Q5(e,f),f=e),c=kzn(n),Q5(f,c),n.c!=0||n.a!=93)throw M(new Le($e((Ie(),RWn))));break}if(Ye(n),!i){if(l==0){if(t==91)throw M(new Le($e((Ie(),Rcn))));if(t==93)throw M(new Le($e((Ie(),Kcn))));if(t==45&&!r&&n.a!=93)throw M(new Le($e((Ie(),CK))))}if(n.c!=0||n.a!=45||t==45&&r)xc(f,t,t);else{if(Ye(n),(l=n.c)==1)throw M(new Le($e((Ie(),US))));if(l==0&&n.a==93)xc(f,t,t),xc(f,45,45);else{if(l==0&&n.a==93||l==24)throw M(new Le($e((Ie(),CK))));if(s=n.a,l==0){if(s==91)throw M(new Le($e((Ie(),Rcn))));if(s==93)throw M(new Le($e((Ie(),Kcn))));if(s==45)throw M(new Le($e((Ie(),CK))))}else l==10&&(s=gen(n));if(Ye(n),t>s)throw M(new Le($e((Ie(),HWn))));xc(f,t,s)}}}r=!1}if(n.c==1)throw M(new Le($e((Ie(),US))));return Ug(f),W5(f),n.b=0,Ye(n),f}function KLe(n,e,t){var i,r,c,s,f,h,l,a,d,g,p,m,k,j,A,I,D,N,H;if(t.Ug("Coffman-Graham Layering",1),e.a.c.length==0){t.Vg();return}for(H=u(v(e,(cn(),thn)),17).a,h=0,s=0,g=new C(e.a);g.a=H||!N8e(A,i))&&(i=mIn(e,a)),$i(A,i),c=new te(re(ji(A).a.Kc(),new En));pe(c);)r=u(fe(c),18),!n.a[r.p]&&(k=r.c.i,--n.e[k.p],n.e[k.p]==0&&Mp(ym(p,k),_m));for(l=a.c.length-1;l>=0;--l)nn(e.b,(Ln(l,a.c.length),u(a.c[l],30)));e.a.c.length=0,t.Vg()}function yzn(n,e){var t,i,r,c,s,f,h,l,a,d,g,p,m,k,j,A,I,D,N;N=!1;do for(N=!1,c=e?new Ha(n.a.b).a.gc()-2:1;e?c>=0:cu(v(j,dt),17).a)&&(D=!1);if(D){for(h=e?c+1:c-1,f=yJ(n.a,Y(h)),s=!1,I=!0,i=!1,a=ge(f,0);a.b!=a.d.c;)l=u(be(a),10),kt(l,dt)?l.p!=d.p&&(s=s|(e?u(v(l,dt),17).au(v(d,dt),17).a),I=!1):!s&&I&&l.k==(Vn(),Ac)&&(i=!0,e?g=u(fe(new te(re(ji(l).a.Kc(),new En))),18).c.i:g=u(fe(new te(re(Qt(l).a.Kc(),new En))),18).d.i,g==d&&(e?t=u(fe(new te(re(Qt(l).a.Kc(),new En))),18).d.i:t=u(fe(new te(re(ji(l).a.Kc(),new En))),18).c.i,(e?u(xb(n.a,t),17).a-u(xb(n.a,g),17).a:u(xb(n.a,g),17).a-u(xb(n.a,t),17).a)<=2&&(I=!1)));if(i&&I&&(e?t=u(fe(new te(re(Qt(d).a.Kc(),new En))),18).d.i:t=u(fe(new te(re(ji(d).a.Kc(),new En))),18).c.i,(e?u(xb(n.a,t),17).a-u(xb(n.a,d),17).a:u(xb(n.a,d),17).a-u(xb(n.a,t),17).a)<=2&&t.k==(Vn(),zt)&&(I=!1)),s||I){for(k=YHn(n,d,e);k.a.gc()!=0;)m=u(k.a.ec().Kc().Pb(),10),k.a.Bc(m)!=null,Bi(k,YHn(n,m,e));--p,N=!0}}}while(N)}function _Le(n){Me(n.c,Fe,S(T(fn,1),J,2,6,[Ji,"http://www.w3.org/2001/XMLSchema#decimal"])),Me(n.d,Fe,S(T(fn,1),J,2,6,[Ji,"http://www.w3.org/2001/XMLSchema#integer"])),Me(n.e,Fe,S(T(fn,1),J,2,6,[Ji,"http://www.w3.org/2001/XMLSchema#boolean"])),Me(n.f,Fe,S(T(fn,1),J,2,6,[Ji,"EBoolean",Je,"EBoolean:Object"])),Me(n.i,Fe,S(T(fn,1),J,2,6,[Ji,"http://www.w3.org/2001/XMLSchema#byte"])),Me(n.g,Fe,S(T(fn,1),J,2,6,[Ji,"http://www.w3.org/2001/XMLSchema#hexBinary"])),Me(n.j,Fe,S(T(fn,1),J,2,6,[Ji,"EByte",Je,"EByte:Object"])),Me(n.n,Fe,S(T(fn,1),J,2,6,[Ji,"EChar",Je,"EChar:Object"])),Me(n.t,Fe,S(T(fn,1),J,2,6,[Ji,"http://www.w3.org/2001/XMLSchema#double"])),Me(n.u,Fe,S(T(fn,1),J,2,6,[Ji,"EDouble",Je,"EDouble:Object"])),Me(n.F,Fe,S(T(fn,1),J,2,6,[Ji,"http://www.w3.org/2001/XMLSchema#float"])),Me(n.G,Fe,S(T(fn,1),J,2,6,[Ji,"EFloat",Je,"EFloat:Object"])),Me(n.I,Fe,S(T(fn,1),J,2,6,[Ji,"http://www.w3.org/2001/XMLSchema#int"])),Me(n.J,Fe,S(T(fn,1),J,2,6,[Ji,"EInt",Je,"EInt:Object"])),Me(n.N,Fe,S(T(fn,1),J,2,6,[Ji,"http://www.w3.org/2001/XMLSchema#long"])),Me(n.O,Fe,S(T(fn,1),J,2,6,[Ji,"ELong",Je,"ELong:Object"])),Me(n.Z,Fe,S(T(fn,1),J,2,6,[Ji,"http://www.w3.org/2001/XMLSchema#short"])),Me(n.$,Fe,S(T(fn,1),J,2,6,[Ji,"EShort",Je,"EShort:Object"])),Me(n._,Fe,S(T(fn,1),J,2,6,[Ji,"http://www.w3.org/2001/XMLSchema#string"]))}function HLe(n,e,t,i,r,c,s){var f,h,l,a,d,g,p,m;return g=u(i.a,17).a,p=u(i.b,17).a,d=n.b,m=n.c,f=0,a=0,e==(ci(),Br)||e==Xr?(a=b7(lBn(Ub(_r(new Tn(null,new In(t.b,16)),new x4n),new m4n))),d.e.b+d.f.b/2>a?(l=++p,f=$(R(ho(_b(_r(new Tn(null,new In(t.b,16)),new rMn(r,l)),new v4n))))):(h=++g,f=$(R(ho(Ap(_r(new Tn(null,new In(t.b,16)),new cMn(r,h)),new k4n)))))):(a=b7(lBn(Ub(_r(new Tn(null,new In(t.b,16)),new C4n),new p4n))),d.e.a+d.f.a/2>a?(l=++p,f=$(R(ho(_b(_r(new Tn(null,new In(t.b,16)),new tMn(r,l)),new y4n))))):(h=++g,f=$(R(ho(Ap(_r(new Tn(null,new In(t.b,16)),new iMn(r,h)),new j4n)))))),e==Br?(ir(n.a,new V($(R(v(d,(pt(),yf))))-r,f)),ir(n.a,new V(m.e.a+m.f.a+r+c,f)),ir(n.a,new V(m.e.a+m.f.a+r+c,m.e.b+m.f.b/2)),ir(n.a,new V(m.e.a+m.f.a,m.e.b+m.f.b/2))):e==Xr?(ir(n.a,new V($(R(v(d,(pt(),Ws))))+r,d.e.b+d.f.b/2)),ir(n.a,new V(d.e.a+d.f.a+r,f)),ir(n.a,new V(m.e.a-r-c,f)),ir(n.a,new V(m.e.a-r-c,m.e.b+m.f.b/2)),ir(n.a,new V(m.e.a,m.e.b+m.f.b/2))):e==us?(ir(n.a,new V(f,$(R(v(d,(pt(),yf))))-r)),ir(n.a,new V(f,m.e.b+m.f.b+r+c)),ir(n.a,new V(m.e.a+m.f.a/2,m.e.b+m.f.b+r+c)),ir(n.a,new V(m.e.a+m.f.a/2,m.e.b+m.f.b+r))):(n.a.b==0||(u(Ns(n.a),8).b=$(R(v(d,(pt(),Ws))))+r*u(s.b,17).a),ir(n.a,new V(f,$(R(v(d,(pt(),Ws))))+r*u(s.b,17).a)),ir(n.a,new V(f,m.e.b-r*u(s.a,17).a-c))),new bi(Y(g),Y(p))}function qLe(n){var e,t,i,r,c,s,f,h,l,a,d,g,p;if(s=!0,d=null,i=null,r=null,e=!1,p=$oe,l=null,c=null,f=0,h=yx(n,f,Kdn,_dn),h=0&&An(n.substr(f,2),"//")?(f+=2,h=yx(n,f,N9,$9),i=(Fi(f,h,n.length),n.substr(f,h-f)),f=h):d!=null&&(f==n.length||(zn(f,n.length),n.charCodeAt(f)!=47))&&(s=!1,h=GX(n,wu(35),f),h==-1&&(h=n.length),i=(Fi(f,h,n.length),n.substr(f,h-f)),f=h);if(!t&&f0&&Xi(a,a.length-1)==58&&(r=a,f=h)),fgF(c))&&(d=c);for(!d&&(d=(Ln(0,j.c.length),u(j.c[0],185))),k=new C(e.b);k.ad&&(Kn=0,ue+=a+en,a=0),lUn(H,s,Kn,ue),e=y.Math.max(e,Kn+X.a),a=y.Math.max(a,X.b),Kn+=X.a+en;for(N=new de,t=new de,kn=new C(n);kn.a=-1900?1:0,t>=4?Be(n,S(T(fn,1),J,2,6,[Bzn,Rzn])[f]):Be(n,S(T(fn,1),J,2,6,["BC","AD"])[f]);break;case 121:f9e(n,t,i);break;case 77:ASe(n,t,i);break;case 107:h=r.q.getHours(),h==0?Bh(n,24,t):Bh(n,h,t);break;case 83:_Me(n,t,r);break;case 69:a=i.q.getDay(),t==5?Be(n,S(T(fn,1),J,2,6,["S","M","T","W","T","F","S"])[a]):t==4?Be(n,S(T(fn,1),J,2,6,[vB,kB,yB,jB,EB,CB,MB])[a]):Be(n,S(T(fn,1),J,2,6,["Sun","Mon","Tue","Wed","Thu","Fri","Sat"])[a]);break;case 97:r.q.getHours()>=12&&r.q.getHours()<24?Be(n,S(T(fn,1),J,2,6,["AM","PM"])[1]):Be(n,S(T(fn,1),J,2,6,["AM","PM"])[0]);break;case 104:d=r.q.getHours()%12,d==0?Bh(n,12,t):Bh(n,d,t);break;case 75:g=r.q.getHours()%12,Bh(n,g,t);break;case 72:p=r.q.getHours(),Bh(n,p,t);break;case 99:m=i.q.getDay(),t==5?Be(n,S(T(fn,1),J,2,6,["S","M","T","W","T","F","S"])[m]):t==4?Be(n,S(T(fn,1),J,2,6,[vB,kB,yB,jB,EB,CB,MB])[m]):t==3?Be(n,S(T(fn,1),J,2,6,["Sun","Mon","Tue","Wed","Thu","Fri","Sat"])[m]):Bh(n,m,1);break;case 76:k=i.q.getMonth(),t==5?Be(n,S(T(fn,1),J,2,6,["J","F","M","A","M","J","J","A","S","O","N","D"])[k]):t==4?Be(n,S(T(fn,1),J,2,6,[sB,fB,hB,lB,c3,aB,dB,bB,wB,gB,pB,mB])[k]):t==3?Be(n,S(T(fn,1),J,2,6,["Jan","Feb","Mar","Apr",c3,"Jun","Jul","Aug","Sep","Oct","Nov","Dec"])[k]):Bh(n,k+1,t);break;case 81:j=i.q.getMonth()/3|0,t<4?Be(n,S(T(fn,1),J,2,6,["Q1","Q2","Q3","Q4"])[j]):Be(n,S(T(fn,1),J,2,6,["1st quarter","2nd quarter","3rd quarter","4th quarter"])[j]);break;case 100:A=i.q.getDate(),Bh(n,A,t);break;case 109:l=r.q.getMinutes(),Bh(n,l,t);break;case 115:s=r.q.getSeconds(),Bh(n,s,t);break;case 122:t<4?Be(n,c.c[0]):Be(n,c.c[1]);break;case 118:Be(n,c.b);break;case 90:t<3?Be(n,NEe(c)):t==3?Be(n,REe(c)):Be(n,KEe(c.a));break;default:return!1}return!0}function htn(n,e,t,i){var r,c,s,f,h,l,a,d,g,p,m,k,j,A,I,D,N,H,X,en,jn,kn,Rn,Kn,ue,Ze;if(nUn(e),h=u(L((!e.b&&(e.b=new Nn(he,e,4,7)),e.b),0),84),a=u(L((!e.c&&(e.c=new Nn(he,e,5,8)),e.c),0),84),f=Gr(h),l=Gr(a),s=(!e.a&&(e.a=new q(Mt,e,6,6)),e.a).i==0?null:u(L((!e.a&&(e.a=new q(Mt,e,6,6)),e.a),0),166),en=u(ee(n.a,f),10),Kn=u(ee(n.a,l),10),jn=null,ue=null,O(h,193)&&(X=u(ee(n.a,h),305),O(X,12)?jn=u(X,12):O(X,10)&&(en=u(X,10),jn=u(sn(en.j,0),12))),O(a,193)&&(Rn=u(ee(n.a,a),305),O(Rn,12)?ue=u(Rn,12):O(Rn,10)&&(Kn=u(Rn,10),ue=u(sn(Kn.j,0),12))),!en||!Kn)throw M(new fp("The source or the target of edge "+e+" could not be found. This usually happens when an edge connects a node laid out by ELK Layered to a node in another level of hierarchy laid out by either another instance of ELK Layered or another layout algorithm alltogether. The former can be solved by setting the hierarchyHandling option to INCLUDE_CHILDREN."));for(k=new E0,Ur(k,e),U(k,(W(),st),e),U(k,(cn(),Fr),null),p=u(v(i,Hc),21),en==Kn&&p.Fc((pr(),_8)),jn||(H=(gr(),Jc),kn=null,s&&pg(u(v(en,Kt),101))&&(kn=new V(s.j,s.k),UDn(kn,J7(e)),mLn(kn,t),Yb(l,f)&&(H=Vu,tt(kn,en.n))),jn=eGn(en,kn,H,i)),ue||(H=(gr(),Vu),Ze=null,s&&pg(u(v(Kn,Kt),101))&&(Ze=new V(s.b,s.c),UDn(Ze,J7(e)),mLn(Ze,t)),ue=eGn(Kn,Ze,H,Hi(Kn))),Zi(k,jn),Ii(k,ue),(jn.e.c.length>1||jn.g.c.length>1||ue.e.c.length>1||ue.g.c.length>1)&&p.Fc((pr(),K8)),g=new ne((!e.n&&(e.n=new q(Ar,e,1,7)),e.n));g.e!=g.i.gc();)if(d=u(ce(g),135),!on(un(z(d,Fd)))&&d.a)switch(j=ex(d),nn(k.b,j),u(v(j,Ah),278).g){case 1:case 2:p.Fc((pr(),kv));break;case 0:p.Fc((pr(),vv)),U(j,Ah,(Nf(),Bv))}if(c=u(v(i,X8),322),A=u(v(i,vI),323),r=c==(u5(),pj)||A==(T5(),KH),s&&(!s.a&&(s.a=new ti(xo,s,5)),s.a).i!=0&&r){for(I=Zk(s),m=new Mu,N=ge(I,0);N.b!=N.d.c;)D=u(be(N),8),xe(m,new rr(D));U(k,rfn,m)}return k}function XLe(n,e,t,i){var r,c,s,f,h,l,a,d,g,p,m,k,j,A,I,D,N,H,X,en,jn,kn,Rn,Kn,ue,Ze,Lt;for(kn=0,Rn=0,en=new de,H=u(ho(_b(_r(new Tn(null,new In(n.b,16)),new E4n),new O4n)),17).a+1,jn=K(ye,Ke,28,H,15,1),j=K(ye,Ke,28,H,15,1),k=0;k1)for(f=ue+1;fl.b.e.b*(1-A)+l.c.e.b*A));m++);if(X.gc()>0&&(Ze=l.a.b==0?Ki(l.b.e):u(Ns(l.a),8),D=tt(Ki(u(X.Xb(X.gc()-1),40).e),u(X.Xb(X.gc()-1),40).f),g=tt(Ki(u(X.Xb(0),40).e),u(X.Xb(0),40).f),m>=X.gc()-1&&Ze.b>D.b&&l.c.e.b>D.b||m<=0&&Ze.bl.b.e.a*(1-A)+l.c.e.a*A));m++);if(X.gc()>0&&(Ze=l.a.b==0?Ki(l.b.e):u(Ns(l.a),8),D=tt(Ki(u(X.Xb(X.gc()-1),40).e),u(X.Xb(X.gc()-1),40).f),g=tt(Ki(u(X.Xb(0),40).e),u(X.Xb(0),40).f),m>=X.gc()-1&&Ze.a>D.a&&l.c.e.a>D.a||m<=0&&Ze.a=$(R(v(n,(pt(),kln))))&&++Rn):(p.f&&p.d.e.a<=$(R(v(n,(pt(),rq))))&&++kn,p.g&&p.c.e.a+p.c.f.a>=$(R(v(n,(pt(),vln))))&&++Rn)}else N==0?Dnn(l):N<0&&(++jn[ue],++j[Lt],Kn=HLe(l,e,n,new bi(Y(kn),Y(Rn)),t,i,new bi(Y(j[Lt]),Y(jn[ue]))),kn=u(Kn.a,17).a,Rn=u(Kn.b,17).a)}function VLe(n,e,t){var i,r,c,s,f,h,l,a,d,g,p,m,k,j,A,I;if(i=e,h=t,n.b&&i.j==(tn(),Wn)&&h.j==(tn(),Wn)&&(I=i,i=h,h=I),Zc(n.a,i)){if(of(u(ee(n.a,i),49),h))return 1}else Xe(n.a,i,new ni);if(Zc(n.a,h)){if(of(u(ee(n.a,h),49),i))return-1}else Xe(n.a,h,new ni);if(Zc(n.d,i)){if(of(u(ee(n.d,i),49),h))return-1}else Xe(n.d,i,new ni);if(Zc(n.d,h)){if(of(u(ee(n.a,h),49),i))return 1}else Xe(n.d,h,new ni);if(i.j!=h.j)return A=xle(i.j,h.j),A==-1?ns(n,h,i):ns(n,i,h),A;if(i.e.c.length!=0&&h.e.c.length!=0){if(n.b&&(A=RFn(i,h),A!=0))return A==-1?ns(n,h,i):A==1&&ns(n,i,h),A;if(c=u(sn(i.e,0),18).c.i,a=u(sn(h.e,0),18).c.i,c==a)return r=u(v(u(sn(i.e,0),18),(W(),dt)),17).a,l=u(v(u(sn(h.e,0),18),dt),17).a,r>l?ns(n,i,h):ns(n,h,i),rl?1:0;for(m=n.c,k=0,j=m.length;kl?ns(n,i,h):ns(n,h,i),rl?1:0):n.b&&(A=RFn(i,h),A!=0)?(A==-1?ns(n,h,i):A==1&&ns(n,i,h),A):(s=0,d=0,kt(u(sn(i.g,0),18),dt)&&(s=u(v(u(sn(i.g,0),18),dt),17).a),kt(u(sn(h.g,0),18),dt)&&(d=u(v(u(sn(i.g,0),18),dt),17).a),f&&f==g?on(un(v(u(sn(i.g,0),18),Gf)))&&!on(un(v(u(sn(h.g,0),18),Gf)))?(ns(n,i,h),1):!on(un(v(u(sn(i.g,0),18),Gf)))&&on(un(v(u(sn(h.g,0),18),Gf)))?(ns(n,h,i),-1):(s>d?ns(n,i,h):ns(n,h,i),sd?1:0):(n.f&&(n.f._b(f)&&(s=u(n.f.xc(f),17).a),n.f._b(g)&&(d=u(n.f.xc(g),17).a)),s>d?ns(n,i,h):ns(n,h,i),sd?1:0))):i.e.c.length!=0&&h.g.c.length!=0?(ns(n,i,h),1):i.g.c.length!=0&&h.e.c.length!=0?(ns(n,h,i),-1):kt(i,(W(),dt))&&kt(h,dt)?(r=u(v(i,dt),17).a,l=u(v(h,dt),17).a,r>l?ns(n,i,h):ns(n,h,i),rl?1:0):(ns(n,h,i),-1)}function WLe(n){n.gb||(n.gb=!0,n.b=hc(n,0),Ft(n.b,18),jt(n.b,19),n.a=hc(n,1),Ft(n.a,1),jt(n.a,2),jt(n.a,3),jt(n.a,4),jt(n.a,5),n.o=hc(n,2),Ft(n.o,8),Ft(n.o,9),jt(n.o,10),jt(n.o,11),jt(n.o,12),jt(n.o,13),jt(n.o,14),jt(n.o,15),jt(n.o,16),jt(n.o,17),jt(n.o,18),jt(n.o,19),jt(n.o,20),jt(n.o,21),jt(n.o,22),jt(n.o,23),Nr(n.o),Nr(n.o),Nr(n.o),Nr(n.o),Nr(n.o),Nr(n.o),Nr(n.o),Nr(n.o),Nr(n.o),Nr(n.o),n.p=hc(n,3),Ft(n.p,2),Ft(n.p,3),Ft(n.p,4),Ft(n.p,5),jt(n.p,6),jt(n.p,7),Nr(n.p),Nr(n.p),n.q=hc(n,4),Ft(n.q,8),n.v=hc(n,5),jt(n.v,9),Nr(n.v),Nr(n.v),Nr(n.v),n.w=hc(n,6),Ft(n.w,2),Ft(n.w,3),Ft(n.w,4),jt(n.w,5),n.B=hc(n,7),jt(n.B,1),Nr(n.B),Nr(n.B),Nr(n.B),n.Q=hc(n,8),jt(n.Q,0),Nr(n.Q),n.R=hc(n,9),Ft(n.R,1),n.S=hc(n,10),Nr(n.S),Nr(n.S),Nr(n.S),Nr(n.S),Nr(n.S),Nr(n.S),Nr(n.S),Nr(n.S),Nr(n.S),Nr(n.S),Nr(n.S),Nr(n.S),Nr(n.S),Nr(n.S),Nr(n.S),n.T=hc(n,11),jt(n.T,10),jt(n.T,11),jt(n.T,12),jt(n.T,13),jt(n.T,14),Nr(n.T),Nr(n.T),n.U=hc(n,12),Ft(n.U,2),Ft(n.U,3),jt(n.U,4),jt(n.U,5),jt(n.U,6),jt(n.U,7),Nr(n.U),n.V=hc(n,13),jt(n.V,10),n.W=hc(n,14),Ft(n.W,18),Ft(n.W,19),Ft(n.W,20),jt(n.W,21),jt(n.W,22),jt(n.W,23),n.bb=hc(n,15),Ft(n.bb,10),Ft(n.bb,11),Ft(n.bb,12),Ft(n.bb,13),Ft(n.bb,14),Ft(n.bb,15),Ft(n.bb,16),jt(n.bb,17),Nr(n.bb),Nr(n.bb),n.eb=hc(n,16),Ft(n.eb,2),Ft(n.eb,3),Ft(n.eb,4),Ft(n.eb,5),Ft(n.eb,6),Ft(n.eb,7),jt(n.eb,8),jt(n.eb,9),n.ab=hc(n,17),Ft(n.ab,0),Ft(n.ab,1),n.H=hc(n,18),jt(n.H,0),jt(n.H,1),jt(n.H,2),jt(n.H,3),jt(n.H,4),jt(n.H,5),Nr(n.H),n.db=hc(n,19),jt(n.db,2),n.c=We(n,20),n.d=We(n,21),n.e=We(n,22),n.f=We(n,23),n.i=We(n,24),n.g=We(n,25),n.j=We(n,26),n.k=We(n,27),n.n=We(n,28),n.r=We(n,29),n.s=We(n,30),n.t=We(n,31),n.u=We(n,32),n.fb=We(n,33),n.A=We(n,34),n.C=We(n,35),n.D=We(n,36),n.F=We(n,37),n.G=We(n,38),n.I=We(n,39),n.J=We(n,40),n.L=We(n,41),n.M=We(n,42),n.N=We(n,43),n.O=We(n,44),n.P=We(n,45),n.X=We(n,46),n.Y=We(n,47),n.Z=We(n,48),n.$=We(n,49),n._=We(n,50),n.cb=We(n,51),n.K=We(n,52))}function JLe(n,e,t){var i,r,c,s,f,h,l,a,d,g,p,m,k,j,A,I,D,N,H,X,en,jn,kn,Rn,Kn,ue;for(s=new Ct,X=u(v(t,(cn(),Do)),88),k=0,Bi(s,(!e.a&&(e.a=new q(Qe,e,10,11)),e.a));s.b!=0;)a=u(s.b==0?null:(oe(s.b!=0),Xo(s,s.a.a)),27),l=At(a),(x(z(l,Yh))!==x((lh(),k1))||x(z(l,Ld))===x((o1(),pv))||x(z(l,Ld))===x((o1(),gv))||on(un(z(l,lb)))||x(z(l,Fw))!==x((dd(),Ow))||x(z(l,ya))===x((gs(),pb))||x(z(l,ya))===x((gs(),Uw))||x(z(l,$d))===x((a1(),Pv))||x(z(l,$d))===x((a1(),Iv)))&&!on(un(z(a,lI)))&&ht(a,(W(),dt),Y(k++)),A=!on(un(z(a,Fd))),A&&(g=(!a.a&&(a.a=new q(Qe,a,10,11)),a.a).i!=0,m=Mye(a),p=x(z(a,Bw))===x((jl(),M1)),ue=!Df(a,(qe(),$v))||TLn(Oe(z(a,$v))),N=null,ue&&p&&(g||m)&&(N=$Un(a),U(N,Do,X),kt(N,Mj)&&xjn(new XY($(R(v(N,Mj)))),N),u(z(a,xd),181).gc()!=0&&(d=N,qt(new Tn(null,(!a.c&&(a.c=new q(Qu,a,9,9)),new In(a.c,16))),new q9n(d)),Aqn(a,N))),en=t,jn=u(ee(n.a,At(a)),10),jn&&(en=jn.e),D=szn(n,a,en),N&&(D.e=N,N.e=D,Bi(s,(!a.a&&(a.a=new q(Qe,a,10,11)),a.a))));for(k=0,xt(s,e,s.c.b,s.c);s.b!=0;){for(c=u(s.b==0?null:(oe(s.b!=0),Xo(s,s.a.a)),27),h=new ne((!c.b&&(c.b=new q(Vt,c,12,3)),c.b));h.e!=h.i.gc();)f=u(ce(h),74),nUn(f),(x(z(e,Yh))!==x((lh(),k1))||x(z(e,Ld))===x((o1(),pv))||x(z(e,Ld))===x((o1(),gv))||on(un(z(e,lb)))||x(z(e,Fw))!==x((dd(),Ow))||x(z(e,ya))===x((gs(),pb))||x(z(e,ya))===x((gs(),Uw))||x(z(e,$d))===x((a1(),Pv))||x(z(e,$d))===x((a1(),Iv)))&&ht(f,(W(),dt),Y(k++)),Rn=Gr(u(L((!f.b&&(f.b=new Nn(he,f,4,7)),f.b),0),84)),Kn=Gr(u(L((!f.c&&(f.c=new Nn(he,f,5,8)),f.c),0),84)),!(on(un(z(f,Fd)))||on(un(z(Rn,Fd)))||on(un(z(Kn,Fd))))&&(j=_0(f)&&on(un(z(Rn,Rw)))&&on(un(z(f,Nd))),H=c,j||Yb(Kn,Rn)?H=Rn:Yb(Rn,Kn)&&(H=Kn),en=t,jn=u(ee(n.a,H),10),jn&&(en=jn.e),I=htn(n,f,H,en),U(I,(W(),nfn),JTe(n,f,e,t)));if(p=x(z(c,Bw))===x((jl(),M1)),p)for(r=new ne((!c.a&&(c.a=new q(Qe,c,10,11)),c.a));r.e!=r.i.gc();)i=u(ce(r),27),ue=!Df(i,(qe(),$v))||TLn(Oe(z(i,$v))),kn=x(z(i,Bw))===x(M1),ue&&kn&&xt(s,i,s.c.b,s.c)}}function W(){W=F;var n,e;st=new lt(Jtn),nfn=new lt("coordinateOrigin"),wH=new lt("processors"),Zsn=new Dt("compoundNode",(_n(),!1)),yj=new Dt("insideConnections",!1),rfn=new lt("originalBendpoints"),cfn=new lt("originalDummyNodePosition"),ufn=new lt("originalLabelEdge"),q8=new lt("representedLabels"),H8=new lt("endLabels"),M3=new lt("endLabel.origin"),A3=new Dt("labelSide",(To(),nE)),k2=new Dt("maxEdgeThickness",0),Gf=new Dt("reversed",!1),S3=new lt(MXn),kf=new Dt("longEdgeSource",null),js=new Dt("longEdgeTarget",null),$w=new Dt("longEdgeHasLabelDummies",!1),jj=new Dt("longEdgeBeforeLabelDummy",!1),rI=new Dt("edgeConstraint",(hd(),Y_)),sb=new lt("inLayerLayoutUnit"),Od=new Dt("inLayerConstraint",(vl(),vj)),T3=new Dt("inLayerSuccessorConstraint",new Z),ifn=new Dt("inLayerSuccessorConstraintBetweenNonDummies",!1),Xu=new lt("portDummy"),iI=new Dt("crossingHint",Y(0)),Hc=new Dt("graphProperties",(e=u(uf(cH),9),new _o(e,u($s(e,e.length),9),0))),gc=new Dt("externalPortSide",(tn(),sc)),tfn=new Dt("externalPortSize",new Li),hH=new lt("externalPortReplacedDummies"),cI=new lt("externalPortReplacedDummy"),Nl=new Dt("externalPortConnections",(n=u(uf(lr),9),new _o(n,u($s(n,n.length),9),0))),fb=new Dt(gXn,0),Ysn=new lt("barycenterAssociates"),P3=new lt("TopSideComments"),C3=new lt("BottomSideComments"),tI=new lt("CommentConnectionPort"),aH=new Dt("inputCollect",!1),bH=new Dt("outputCollect",!1),kj=new Dt("cyclic",!1),efn=new lt("crossHierarchyMap"),pH=new lt("targetOffset"),new Dt("splineLabelSize",new Li),j2=new lt("spacings"),uI=new Dt("partitionConstraint",!1),ob=new lt("breakingPoint.info"),ffn=new lt("splines.survivingEdge"),Dd=new lt("splines.route.start"),E2=new lt("splines.edgeChain"),sfn=new lt("originalPortConstraints"),hb=new lt("selfLoopHolder"),jv=new lt("splines.nsPortY"),dt=new lt("modelOrder"),dH=new lt("longEdgeTargetNode"),va=new Dt(QXn,!1),y2=new Dt(QXn,!1),lH=new lt("layerConstraints.hiddenNodes"),ofn=new lt("layerConstraints.opposidePort"),gH=new lt("targetNode.modelOrder")}function QLe(n,e,t,i){var r,c,s,f,h,l,a,d,g,p,m;for(d=ge(n.b,0);d.b!=d.d.c;)if(a=u(be(d),40),!An(a.c,IS))for(c=u(Wr(new Tn(null,new In(uCe(a,n),16)),qu(new ju,new yu,new Eu,S(T(xr,1),G,108,0,[(Gu(),Yr)]))),15),e==(ci(),Br)||e==Xr?c.jd(new A4n):c.jd(new S4n),m=c.gc(),r=0;r0&&(f=u(Ns(u(c.Xb(r),65).a),8).a,g=a.e.a+a.f.a/2,h=u(Ns(u(c.Xb(r),65).a),8).b,p=a.e.b+a.f.b/2,i>0&&y.Math.abs(h-p)/(y.Math.abs(f-g)/40)>50&&(p>h?ir(u(c.Xb(r),65).a,new V(a.e.a+a.f.a+i/5.3,a.e.b+a.f.b*s-i/2)):ir(u(c.Xb(r),65).a,new V(a.e.a+a.f.a+i/5.3,a.e.b+a.f.b*s+i/2)))),ir(u(c.Xb(r),65).a,new V(a.e.a+a.f.a,a.e.b+a.f.b*s))):e==Xr?(l=$(R(v(a,(pt(),yf)))),a.e.a-i>l?ir(u(c.Xb(r),65).a,new V(l-t,a.e.b+a.f.b*s)):u(c.Xb(r),65).a.b>0&&(f=u(Ns(u(c.Xb(r),65).a),8).a,g=a.e.a+a.f.a/2,h=u(Ns(u(c.Xb(r),65).a),8).b,p=a.e.b+a.f.b/2,i>0&&y.Math.abs(h-p)/(y.Math.abs(f-g)/40)>50&&(p>h?ir(u(c.Xb(r),65).a,new V(a.e.a-i/5.3,a.e.b+a.f.b*s-i/2)):ir(u(c.Xb(r),65).a,new V(a.e.a-i/5.3,a.e.b+a.f.b*s+i/2)))),ir(u(c.Xb(r),65).a,new V(a.e.a,a.e.b+a.f.b*s))):e==us?(l=$(R(v(a,(pt(),Ws)))),a.e.b+a.f.b+i0&&(f=u(Ns(u(c.Xb(r),65).a),8).a,g=a.e.a+a.f.a/2,h=u(Ns(u(c.Xb(r),65).a),8).b,p=a.e.b+a.f.b/2,i>0&&y.Math.abs(f-g)/(y.Math.abs(h-p)/40)>50&&(g>f?ir(u(c.Xb(r),65).a,new V(a.e.a+a.f.a*s-i/2,a.e.b+i/5.3+a.f.b)):ir(u(c.Xb(r),65).a,new V(a.e.a+a.f.a*s+i/2,a.e.b+i/5.3+a.f.b)))),ir(u(c.Xb(r),65).a,new V(a.e.a+a.f.a*s,a.e.b+a.f.b))):(l=$(R(v(a,(pt(),yf)))),MFn(u(c.Xb(r),65),n)?ir(u(c.Xb(r),65).a,new V(a.e.a+a.f.a*s,u(Ns(u(c.Xb(r),65).a),8).b)):a.e.b-i>l?ir(u(c.Xb(r),65).a,new V(a.e.a+a.f.a*s,l-t)):u(c.Xb(r),65).a.b>0&&(f=u(Ns(u(c.Xb(r),65).a),8).a,g=a.e.a+a.f.a/2,h=u(Ns(u(c.Xb(r),65).a),8).b,p=a.e.b+a.f.b/2,i>0&&y.Math.abs(f-g)/(y.Math.abs(h-p)/40)>50&&(g>f?ir(u(c.Xb(r),65).a,new V(a.e.a+a.f.a*s-i/2,a.e.b-i/5.3)):ir(u(c.Xb(r),65).a,new V(a.e.a+a.f.a*s+i/2,a.e.b-i/5.3)))),ir(u(c.Xb(r),65).a,new V(a.e.a+a.f.a*s,a.e.b)))}function qe(){qe=F;var n,e;$v=new lt(xVn),H2=new lt(FVn),gan=(Rh(),Vq),Sue=new Mn(rrn,gan),$2=new Mn(l3,null),Pue=new lt(pcn),man=(wd(),yt(Qq,S(T(Yq,1),G,298,0,[Jq]))),Gj=new Mn(MS,man),zj=new Mn(Uy,(_n(),!1)),van=(ci(),Wf),_d=new Mn(xR,van),jan=(El(),lU),yan=new Mn(qy,jan),Due=new Mn(wcn,!1),Man=(jl(),uO),B2=new Mn(CS,Man),Nan=new f0(12),C1=new Mn(W0,Nan),Vj=new Mn(u8,!1),tU=new Mn(AS,!1),Wj=new Mn(o8,!1),Ran=(Oi(),Sa),j9=new Mn(tR,Ran),N3=new lt(TS),Jj=new lt(Ny),fU=new lt(uS),hU=new lt(c8),Tan=new Mu,kb=new Mn(wrn,Tan),Oue=new Mn(mrn,!1),Lue=new Mn(vrn,!1),Aan=new Yv,xv=new Mn(yrn,Aan),tO=new Mn(trn,!1),Fue=new Mn(BVn,1),F2=new lt(RVn),x2=new lt(KVn),Fv=new Mn($y,!1),new Mn(_Vn,!0),Y(0),new Mn(HVn,Y(100)),new Mn(qVn,!1),Y(0),new Mn(UVn,Y(4e3)),Y(0),new Mn(GVn,Y(400)),new Mn(zVn,!1),new Mn(XVn,!1),new Mn(VVn,!0),new Mn(WVn,!1),pan=(qT(),wU),Iue=new Mn(gcn,pan),Bue=new Mn(Gin,10),Rue=new Mn(zin,10),qan=new Mn(WB,20),Kue=new Mn(Xin,10),Uan=new Mn(eR,2),Gan=new Mn($R,10),zan=new Mn(Vin,0),iO=new Mn(Qin,5),Xan=new Mn(Win,1),Van=new Mn(Jin,1),qd=new Mn(yw,20),_ue=new Mn(Yin,10),Qan=new Mn(Zin,10),$3=new lt(nrn),Jan=new tTn,Wan=new Mn(jrn,Jan),$ue=new lt(BR),$an=!1,Nue=new Mn(FR,$an),Pan=new f0(5),San=new Mn(orn,Pan),Ian=(lw(),e=u(uf(yr),9),new _o(e,u($s(e,e.length),9),0)),R2=new Mn(Xm,Ian),Fan=(Fg(),Aa),xan=new Mn(hrn,Fan),rU=new lt(lrn),cU=new lt(arn),uU=new lt(drn),iU=new lt(brn),Oan=(n=u(uf(I9),9),new _o(n,u($s(n,n.length),9),0)),Hd=new Mn(i2,Oan),Lan=yn((io(),Hv)),Ma=new Mn(a3,Lan),Dan=new V(0,0),K2=new Mn(d3,Dan),Vw=new Mn(zm,!1),kan=(Nf(),Bv),nU=new Mn(grn,kan),Zq=new Mn(oS,!1),Y(1),new Mn(JVn,null),Ban=new lt(krn),oU=new lt(prn),Han=(tn(),sc),_2=new Mn(irn,Han),oo=new lt(ern),Kan=(zu(),yn(Pa)),Ww=new Mn(Vm,Kan),sU=new Mn(srn,!1),_an=new Mn(frn,!0),cO=new Mn(xy,1),Yan=new Mn(mcn,null),Qj=new Mn(Fy,150),rO=new Mn(By,1.414),x3=new Mn(J0,null),Hue=new Mn(vcn,1),Xj=new Mn(crn,!1),eU=new Mn(urn,!1),Ean=new Mn(JB,1),Can=(pA(),dU),new Mn(QVn,Can),xue=!0,Uue=(Gp(),Yw),Gue=Yw,que=Yw}function tr(){tr=F,Qon=new ei("DIRECTION_PREPROCESSOR",0),Von=new ei("COMMENT_PREPROCESSOR",1),d2=new ei("EDGE_AND_LAYER_CONSTRAINT_EDGE_REVERSER",2),N_=new ei("INTERACTIVE_EXTERNAL_PORT_POSITIONER",3),gsn=new ei("PARTITION_PREPROCESSOR",4),IP=new ei("LABEL_DUMMY_INSERTER",5),KP=new ei("SELF_LOOP_PREPROCESSOR",6),Lw=new ei("LAYER_CONSTRAINT_PREPROCESSOR",7),bsn=new ei("PARTITION_MIDPROCESSOR",8),csn=new ei("HIGH_DEGREE_NODE_LAYER_PROCESSOR",9),asn=new ei("NODE_PROMOTION",10),Dw=new ei("LAYER_CONSTRAINT_POSTPROCESSOR",11),wsn=new ei("PARTITION_POSTPROCESSOR",12),tsn=new ei("HIERARCHICAL_PORT_CONSTRAINT_PROCESSOR",13),psn=new ei("SEMI_INTERACTIVE_CROSSMIN_PROCESSOR",14),Hon=new ei("BREAKING_POINT_INSERTER",15),NP=new ei("LONG_EDGE_SPLITTER",16),$_=new ei("PORT_SIDE_PROCESSOR",17),SP=new ei("INVERTED_PORT_PROCESSOR",18),FP=new ei("PORT_LIST_SORTER",19),vsn=new ei("SORT_BY_INPUT_ORDER_OF_MODEL",20),xP=new ei("NORTH_SOUTH_PORT_PREPROCESSOR",21),qon=new ei("BREAKING_POINT_PROCESSOR",22),dsn=new ei(qXn,23),ksn=new ei(UXn,24),BP=new ei("SELF_LOOP_PORT_RESTORER",25),msn=new ei("SINGLE_EDGE_GRAPH_WRAPPER",26),PP=new ei("IN_LAYER_CONSTRAINT_PROCESSOR",27),Zon=new ei("END_NODE_PORT_LABEL_MANAGEMENT_PROCESSOR",28),hsn=new ei("LABEL_AND_NODE_SIZE_PROCESSOR",29),fsn=new ei("INNERMOST_NODE_MARGIN_CALCULATOR",30),_P=new ei("SELF_LOOP_ROUTER",31),zon=new ei("COMMENT_NODE_MARGIN_CALCULATOR",32),AP=new ei("END_LABEL_PREPROCESSOR",33),DP=new ei("LABEL_DUMMY_SWITCHER",34),Gon=new ei("CENTER_LABEL_MANAGEMENT_PROCESSOR",35),hv=new ei("LABEL_SIDE_SELECTOR",36),osn=new ei("HYPEREDGE_DUMMY_MERGER",37),isn=new ei("HIERARCHICAL_PORT_DUMMY_SIZE_PROCESSOR",38),lsn=new ei("LAYER_SIZE_AND_GRAPH_HEIGHT_CALCULATOR",39),x8=new ei("HIERARCHICAL_PORT_POSITION_PROCESSOR",40),Won=new ei("CONSTRAINTS_POSTPROCESSOR",41),Xon=new ei("COMMENT_POSTPROCESSOR",42),ssn=new ei("HYPERNODE_PROCESSOR",43),rsn=new ei("HIERARCHICAL_PORT_ORTHOGONAL_EDGE_ROUTER",44),LP=new ei("LONG_EDGE_JOINER",45),RP=new ei("SELF_LOOP_POSTPROCESSOR",46),Uon=new ei("BREAKING_POINT_REMOVER",47),$P=new ei("NORTH_SOUTH_PORT_POSTPROCESSOR",48),usn=new ei("HORIZONTAL_COMPACTOR",49),OP=new ei("LABEL_DUMMY_REMOVER",50),nsn=new ei("FINAL_SPLINE_BENDPOINTS_CALCULATOR",51),Yon=new ei("END_LABEL_SORTER",52),bj=new ei("REVERSED_EDGE_RESTORER",53),TP=new ei("END_LABEL_POSTPROCESSOR",54),esn=new ei("HIERARCHICAL_NODE_RESIZER",55),Jon=new ei("DIRECTION_POSTPROCESSOR",56)}function ltn(){ltn=F,kfn=(pk(),WP),iee=new Mn(uin,kfn),wee=new Mn(oin,(_n(),!1)),Tfn=(KM(),fH),kee=new Mn(lS,Tfn),$ee=new Mn(sin,!1),xee=new Mn(fin,!0),Pne=new Mn(hin,!1),Nfn=(wk(),UH),Qee=new Mn(lin,Nfn),Y(1),cte=new Mn(ain,Y(7)),ute=new Mn(din,!1),gee=new Mn(bin,!1),vfn=(o1(),J_),tee=new Mn(fR,vfn),Pfn=(a1(),xH),Nee=new Mn(Hy,Pfn),Afn=(Yo(),Ej),Tee=new Mn(win,Afn),Y(-1),Mee=new Mn(gin,null),Y(-1),Aee=new Mn(pin,Y(-1)),Y(-1),See=new Mn(hR,Y(4)),Y(-1),Iee=new Mn(lR,Y(2)),Sfn=(gs(),AI),Lee=new Mn(aR,Sfn),Y(0),Dee=new Mn(dR,Y(0)),Eee=new Mn(bR,Y(et)),mfn=(u5(),B8),eee=new Mn(h8,mfn),Kne=new Mn(min,!1),Xne=new Mn(wR,.1),Zne=new Mn(gR,!1),Wne=new Mn(vin,null),Jne=new Mn(kin,null),Y(-1),Qne=new Mn(yin,null),Y(-1),Yne=new Mn(jin,Y(-1)),Y(0),_ne=new Mn(Ein,Y(40)),pfn=(Z4(),oH),Gne=new Mn(pR,pfn),gfn=mj,Hne=new Mn(aS,gfn),Lfn=(T5(),Y8),Jee=new Mn(r2,Lfn),_ee=new lt(dS),Ifn=(hk(),QP),Fee=new Mn(mR,Ifn),Ofn=(Jk(),YP),Ree=new Mn(vR,Ofn),Uee=new Mn(kR,.3),zee=new lt(yR),Dfn=(cw(),TI),Xee=new Mn(jR,Dfn),Efn=(ST(),zH),see=new Mn(Cin,Efn),Cfn=(d5(),VH),fee=new Mn(Min,Cfn),Mfn=(om(),e9),hee=new Mn(bS,Mfn),aee=new Mn(wS,.2),uee=new Mn(ER,2),ete=new Mn(Tin,null),ite=new Mn(Ain,10),tte=new Mn(Sin,10),rte=new Mn(Pin,20),Y(0),Yee=new Mn(Iin,Y(0)),Y(0),Zee=new Mn(Oin,Y(0)),Y(0),nte=new Mn(Din,Y(0)),Ine=new Mn(CR,!1),afn=(jm(),R8),Dne=new Mn(Lin,afn),lfn=(QM(),V_),One=new Mn(Nin,lfn),mee=new Mn(gS,!1),Y(0),pee=new Mn(MR,Y(16)),Y(0),vee=new Mn(TR,Y(5)),Ffn=(DT(),QH),Tte=new Mn(Ol,Ffn),ote=new Mn(pS,10),hte=new Mn(mS,1),xfn=(bT(),VP),pte=new Mn(l8,xfn),dte=new lt(AR),$fn=Y(1),Y(0),wte=new Mn(SR,$fn),Bfn=(dT(),JH),Ite=new Mn(vS,Bfn),Ate=new lt(kS),jte=new Mn(yS,!0),kte=new Mn(jS,2),Cte=new Mn(PR,!0),jfn=(vA(),JP),cee=new Mn($in,jfn),yfn=(Yp(),bv),ree=new Mn(xin,yfn),wfn=(lh(),k1),Rne=new Mn(ES,wfn),Bne=new Mn(Fin,!1),Fne=new Mn(Bin,!1),dfn=(dd(),Ow),Lne=new Mn(IR,dfn),bfn=(g5(),FH),xne=new Mn(Rin,bfn),Nne=new Mn(OR,0),$ne=new Mn(DR,0),jee=Q_,yee=pj,Pee=CI,Oee=CI,Cee=$H,Vne=(jl(),M1),nee=B8,zne=B8,qne=B8,Une=M1,Hee=Z8,qee=Y8,Bee=Y8,Kee=Y8,Gee=_H,Wee=Z8,Vee=Z8,lee=(El(),F3),dee=F3,bee=e9,oee=Yj,ste=Ov,fte=Gw,lte=Ov,ate=Gw,mte=Ov,vte=Gw,bte=W_,gte=VP,Ote=Ov,Dte=Gw,Ste=Ov,Pte=Gw,Ete=Gw,yte=Gw,Mte=Gw}function YLe(n,e,t){var i,r,c,s,f,h,l,a,d,g,p,m,k,j,A,I,D,N,H,X,en,jn,kn,Rn,Kn,ue,Ze,Lt,Yu,Rr,Fo,V2,D1,tf,rf,Xd,q3,Fa,U3,Ih,cl,Mb,G3,W2,Oh,Vd,Rl,Dse,y0n,Tb,q9,DU,z3,U9,ug,G9,LU,Lse;for(y0n=0,Ze=e,Rr=0,D1=Ze.length;Rr0&&(n.a[Ih.p]=y0n++)}for(U9=0,Lt=t,Fo=0,tf=Lt.length;Fo0;){for(Ih=(oe(W2.b>0),u(W2.a.Xb(W2.c=--W2.b),12)),G3=0,f=new C(Ih.e);f.a0&&(Ih.j==(tn(),Xn)?(n.a[Ih.p]=U9,++U9):(n.a[Ih.p]=U9+rf+q3,++q3))}U9+=q3}for(Mb=new de,m=new ih,ue=e,Yu=0,V2=ue.length;Yul.b&&(l.b=Oh)):Ih.i.c==Dse&&(Ohl.c&&(l.c=Oh));for(F4(k,0,k.length,null),z3=K(ye,Ke,28,k.length,15,1),i=K(ye,Ke,28,U9+1,15,1),A=0;A0;)en%2>0&&(r+=LU[en+1]),en=(en-1)/2|0,++LU[en];for(kn=K(Iie,Fn,374,k.length*2,0,1),N=0;N0&&V7(Yu.f),z(A,Yan)!=null&&(f=u(z(A,Yan),347),Mb=f.Tg(A),vg(A,y.Math.max(A.g,Mb.a),y.Math.max(A.f,Mb.b)));if(tf=u(z(e,C1),107),p=e.g-(tf.b+tf.c),g=e.f-(tf.d+tf.a),Oh.bh("Available Child Area: ("+p+"|"+g+")"),ht(e,$2,p/g),cRn(e,r,i.eh(V2)),u(z(e,x3),280)==aO&&(otn(e),vg(e,tf.b+$(R(z(e,F2)))+tf.c,tf.d+$(R(z(e,x2)))+tf.a)),Oh.bh("Executed layout algorithm: "+Oe(z(e,$v))+" on node "+e.k),u(z(e,x3),280)==Yw){if(p<0||g<0)throw M(new _l("The size defined by the parent parallel node is too small for the space provided by the paddings of the child hierarchical node. "+e.k));for(Df(e,F2)||Df(e,x2)||otn(e),k=$(R(z(e,F2))),m=$(R(z(e,x2))),Oh.bh("Desired Child Area: ("+k+"|"+m+")"),Xd=p/k,q3=g/m,rf=y.Math.min(Xd,y.Math.min(q3,$(R(z(e,Hue))))),ht(e,cO,rf),Oh.bh(e.k+" -- Local Scale Factor (X|Y): ("+Xd+"|"+q3+")"),N=u(z(e,Gj),21),c=0,s=0,rf'?":An(PWn,n)?"'(?<' or '(? toIndex: ",Stn=", toIndex: ",Ptn="Index: ",Itn=", Size: ",Hm="org.eclipse.elk.alg.common",Ne={50:1},Yzn="org.eclipse.elk.alg.common.compaction",Zzn="Scanline/EventHandler",zh="org.eclipse.elk.alg.common.compaction.oned",nXn="CNode belongs to another CGroup.",eXn="ISpacingsHandler/1",FB="The ",BB=" instance has been finished already.",tXn="The direction ",iXn=" is not supported by the CGraph instance.",rXn="OneDimensionalCompactor",cXn="OneDimensionalCompactor/lambda$0$Type",uXn="Quadruplet",oXn="ScanlineConstraintCalculator",sXn="ScanlineConstraintCalculator/ConstraintsScanlineHandler",fXn="ScanlineConstraintCalculator/ConstraintsScanlineHandler/lambda$0$Type",hXn="ScanlineConstraintCalculator/Timestamp",lXn="ScanlineConstraintCalculator/lambda$0$Type",ph={178:1,46:1},RB="org.eclipse.elk.alg.common.compaction.options",oc="org.eclipse.elk.core.data",Otn="org.eclipse.elk.polyomino.traversalStrategy",Dtn="org.eclipse.elk.polyomino.lowLevelSort",Ltn="org.eclipse.elk.polyomino.highLevelSort",Ntn="org.eclipse.elk.polyomino.fill",ps={134:1},KB="polyomino",t8="org.eclipse.elk.alg.common.networksimplex",Xh={183:1,3:1,4:1},aXn="org.eclipse.elk.alg.common.nodespacing",kd="org.eclipse.elk.alg.common.nodespacing.cellsystem",qm="CENTER",dXn={217:1,336:1},$tn={3:1,4:1,5:1,603:1},s3="LEFT",f3="RIGHT",xtn="Vertical alignment cannot be null",Ftn="BOTTOM",nS="org.eclipse.elk.alg.common.nodespacing.internal",i8="UNDEFINED",Kf=.01,Oy="org.eclipse.elk.alg.common.nodespacing.internal.algorithm",bXn="LabelPlacer/lambda$0$Type",wXn="LabelPlacer/lambda$1$Type",gXn="portRatioOrPosition",Um="org.eclipse.elk.alg.common.overlaps",_B="DOWN",mh="org.eclipse.elk.alg.common.polyomino",eS="NORTH",HB="EAST",qB="SOUTH",UB="WEST",tS="org.eclipse.elk.alg.common.polyomino.structures",Btn="Direction",GB="Grid is only of size ",zB=". Requested point (",XB=") is out of bounds.",iS=" Given center based coordinates were (",Dy="org.eclipse.elk.graph.properties",pXn="IPropertyHolder",Rtn={3:1,96:1,137:1},h3="org.eclipse.elk.alg.common.spore",mXn="org.eclipse.elk.alg.common.utils",yd={205:1},n2="org.eclipse.elk.core",vXn="Connected Components Compaction",kXn="org.eclipse.elk.alg.disco",rS="org.eclipse.elk.alg.disco.graph",VB="org.eclipse.elk.alg.disco.options",Ktn="CompactionStrategy",_tn="org.eclipse.elk.disco.componentCompaction.strategy",Htn="org.eclipse.elk.disco.componentCompaction.componentLayoutAlgorithm",qtn="org.eclipse.elk.disco.debug.discoGraph",Utn="org.eclipse.elk.disco.debug.discoPolys",yXn="componentCompaction",jd="org.eclipse.elk.disco",WB="org.eclipse.elk.spacing.componentComponent",JB="org.eclipse.elk.edge.thickness",l3="org.eclipse.elk.aspectRatio",W0="org.eclipse.elk.padding",e2="org.eclipse.elk.alg.disco.transform",QB=1.5707963267948966,t2=17976931348623157e292,kw={3:1,4:1,5:1,198:1},jXn={3:1,6:1,4:1,5:1,100:1,115:1},YB="org.eclipse.elk.alg.force",Gtn="ComponentsProcessor",EXn="ComponentsProcessor/1",ztn="ElkGraphImporter/lambda$0$Type",Ly="org.eclipse.elk.alg.force.graph",CXn="Component Layout",Xtn="org.eclipse.elk.alg.force.model",cS="org.eclipse.elk.force.model",Vtn="org.eclipse.elk.force.iterations",Wtn="org.eclipse.elk.force.repulsivePower",ZB="org.eclipse.elk.force.temperature",vh=.001,nR="org.eclipse.elk.force.repulsion",r8="org.eclipse.elk.alg.force.options",Gm=1.600000023841858,cu="org.eclipse.elk.force",Ny="org.eclipse.elk.priority",yw="org.eclipse.elk.spacing.nodeNode",eR="org.eclipse.elk.spacing.edgeLabel",uS="org.eclipse.elk.randomSeed",c8="org.eclipse.elk.separateConnectedComponents",u8="org.eclipse.elk.interactive",tR="org.eclipse.elk.portConstraints",oS="org.eclipse.elk.edgeLabels.inline",o8="org.eclipse.elk.omitNodeMicroLayout",zm="org.eclipse.elk.nodeSize.fixedGraphSize",a3="org.eclipse.elk.nodeSize.options",i2="org.eclipse.elk.nodeSize.constraints",Xm="org.eclipse.elk.nodeLabels.placement",Vm="org.eclipse.elk.portLabels.placement",$y="org.eclipse.elk.topdownLayout",xy="org.eclipse.elk.topdown.scaleFactor",Fy="org.eclipse.elk.topdown.hierarchicalNodeWidth",By="org.eclipse.elk.topdown.hierarchicalNodeAspectRatio",J0="org.eclipse.elk.topdown.nodeType",Jtn="origin",MXn="random",TXn="boundingBox.upLeft",AXn="boundingBox.lowRight",Qtn="org.eclipse.elk.stress.fixed",Ytn="org.eclipse.elk.stress.desiredEdgeLength",Ztn="org.eclipse.elk.stress.dimension",nin="org.eclipse.elk.stress.epsilon",ein="org.eclipse.elk.stress.iterationLimit",ha="org.eclipse.elk.stress",SXn="ELK Stress",d3="org.eclipse.elk.nodeSize.minimum",sS="org.eclipse.elk.alg.force.stress",PXn="Layered layout",b3="org.eclipse.elk.alg.layered",Ry="org.eclipse.elk.alg.layered.compaction.components",s8="org.eclipse.elk.alg.layered.compaction.oned",fS="org.eclipse.elk.alg.layered.compaction.oned.algs",Ed="org.eclipse.elk.alg.layered.compaction.recthull",_f="org.eclipse.elk.alg.layered.components",kh="NONE",tin="MODEL_ORDER",Mc={3:1,6:1,4:1,9:1,5:1,126:1},IXn={3:1,6:1,4:1,5:1,150:1,100:1,115:1},hS="org.eclipse.elk.alg.layered.compound",vt={47:1},Bc="org.eclipse.elk.alg.layered.graph",iR=" -> ",OXn="Not supported by LGraph",iin="Port side is undefined",rR={3:1,6:1,4:1,5:1,483:1,150:1,100:1,115:1},b1={3:1,6:1,4:1,5:1,150:1,199:1,210:1,100:1,115:1},DXn={3:1,6:1,4:1,5:1,150:1,2042:1,210:1,100:1,115:1},LXn=`([{"' \r +`,NXn=`)]}"' \r +`,$Xn="The given string contains parts that cannot be parsed as numbers.",Ky="org.eclipse.elk.core.math",xXn={3:1,4:1,140:1,214:1,423:1},FXn={3:1,4:1,107:1,214:1,423:1},w1="org.eclipse.elk.alg.layered.graph.transform",BXn="ElkGraphImporter",RXn="ElkGraphImporter/lambda$1$Type",KXn="ElkGraphImporter/lambda$2$Type",_Xn="ElkGraphImporter/lambda$4$Type",Qn="org.eclipse.elk.alg.layered.intermediate",HXn="Node margin calculation",qXn="ONE_SIDED_GREEDY_SWITCH",UXn="TWO_SIDED_GREEDY_SWITCH",cR="No implementation is available for the layout processor ",uR="IntermediateProcessorStrategy",oR="Node '",GXn="FIRST_SEPARATE",zXn="LAST_SEPARATE",XXn="Odd port side processing",di="org.eclipse.elk.alg.layered.intermediate.compaction",f8="org.eclipse.elk.alg.layered.intermediate.greedyswitch",Vh="org.eclipse.elk.alg.layered.p3order.counting",_y={230:1},w3="org.eclipse.elk.alg.layered.intermediate.loops",Io="org.eclipse.elk.alg.layered.intermediate.loops.ordering",la="org.eclipse.elk.alg.layered.intermediate.loops.routing",rin="org.eclipse.elk.alg.layered.intermediate.preserveorder",yh="org.eclipse.elk.alg.layered.intermediate.wrapping",Tc="org.eclipse.elk.alg.layered.options",sR="INTERACTIVE",cin="GREEDY",VXn="DEPTH_FIRST",WXn="EDGE_LENGTH",JXn="SELF_LOOPS",QXn="firstTryWithInitialOrder",uin="org.eclipse.elk.layered.directionCongruency",oin="org.eclipse.elk.layered.feedbackEdges",lS="org.eclipse.elk.layered.interactiveReferencePoint",sin="org.eclipse.elk.layered.mergeEdges",fin="org.eclipse.elk.layered.mergeHierarchyEdges",hin="org.eclipse.elk.layered.allowNonFlowPortsToSwitchSides",lin="org.eclipse.elk.layered.portSortingStrategy",ain="org.eclipse.elk.layered.thoroughness",din="org.eclipse.elk.layered.unnecessaryBendpoints",bin="org.eclipse.elk.layered.generatePositionAndLayerIds",fR="org.eclipse.elk.layered.cycleBreaking.strategy",Hy="org.eclipse.elk.layered.layering.strategy",win="org.eclipse.elk.layered.layering.layerConstraint",gin="org.eclipse.elk.layered.layering.layerChoiceConstraint",pin="org.eclipse.elk.layered.layering.layerId",hR="org.eclipse.elk.layered.layering.minWidth.upperBoundOnWidth",lR="org.eclipse.elk.layered.layering.minWidth.upperLayerEstimationScalingFactor",aR="org.eclipse.elk.layered.layering.nodePromotion.strategy",dR="org.eclipse.elk.layered.layering.nodePromotion.maxIterations",bR="org.eclipse.elk.layered.layering.coffmanGraham.layerBound",h8="org.eclipse.elk.layered.crossingMinimization.strategy",min="org.eclipse.elk.layered.crossingMinimization.forceNodeModelOrder",wR="org.eclipse.elk.layered.crossingMinimization.hierarchicalSweepiness",gR="org.eclipse.elk.layered.crossingMinimization.semiInteractive",vin="org.eclipse.elk.layered.crossingMinimization.inLayerPredOf",kin="org.eclipse.elk.layered.crossingMinimization.inLayerSuccOf",yin="org.eclipse.elk.layered.crossingMinimization.positionChoiceConstraint",jin="org.eclipse.elk.layered.crossingMinimization.positionId",Ein="org.eclipse.elk.layered.crossingMinimization.greedySwitch.activationThreshold",pR="org.eclipse.elk.layered.crossingMinimization.greedySwitch.type",aS="org.eclipse.elk.layered.crossingMinimization.greedySwitchHierarchical.type",r2="org.eclipse.elk.layered.nodePlacement.strategy",dS="org.eclipse.elk.layered.nodePlacement.favorStraightEdges",mR="org.eclipse.elk.layered.nodePlacement.bk.edgeStraightening",vR="org.eclipse.elk.layered.nodePlacement.bk.fixedAlignment",kR="org.eclipse.elk.layered.nodePlacement.linearSegments.deflectionDampening",yR="org.eclipse.elk.layered.nodePlacement.networkSimplex.nodeFlexibility",jR="org.eclipse.elk.layered.nodePlacement.networkSimplex.nodeFlexibility.default",Cin="org.eclipse.elk.layered.edgeRouting.selfLoopDistribution",Min="org.eclipse.elk.layered.edgeRouting.selfLoopOrdering",bS="org.eclipse.elk.layered.edgeRouting.splines.mode",wS="org.eclipse.elk.layered.edgeRouting.splines.sloppy.layerSpacingFactor",ER="org.eclipse.elk.layered.edgeRouting.polyline.slopedEdgeZoneWidth",Tin="org.eclipse.elk.layered.spacing.baseValue",Ain="org.eclipse.elk.layered.spacing.edgeNodeBetweenLayers",Sin="org.eclipse.elk.layered.spacing.edgeEdgeBetweenLayers",Pin="org.eclipse.elk.layered.spacing.nodeNodeBetweenLayers",Iin="org.eclipse.elk.layered.priority.direction",Oin="org.eclipse.elk.layered.priority.shortness",Din="org.eclipse.elk.layered.priority.straightness",CR="org.eclipse.elk.layered.compaction.connectedComponents",Lin="org.eclipse.elk.layered.compaction.postCompaction.strategy",Nin="org.eclipse.elk.layered.compaction.postCompaction.constraints",gS="org.eclipse.elk.layered.highDegreeNodes.treatment",MR="org.eclipse.elk.layered.highDegreeNodes.threshold",TR="org.eclipse.elk.layered.highDegreeNodes.treeHeight",Ol="org.eclipse.elk.layered.wrapping.strategy",pS="org.eclipse.elk.layered.wrapping.additionalEdgeSpacing",mS="org.eclipse.elk.layered.wrapping.correctionFactor",l8="org.eclipse.elk.layered.wrapping.cutting.strategy",AR="org.eclipse.elk.layered.wrapping.cutting.cuts",SR="org.eclipse.elk.layered.wrapping.cutting.msd.freedom",vS="org.eclipse.elk.layered.wrapping.validify.strategy",kS="org.eclipse.elk.layered.wrapping.validify.forbiddenIndices",yS="org.eclipse.elk.layered.wrapping.multiEdge.improveCuts",jS="org.eclipse.elk.layered.wrapping.multiEdge.distancePenalty",PR="org.eclipse.elk.layered.wrapping.multiEdge.improveWrappedEdges",$in="org.eclipse.elk.layered.edgeLabels.sideSelection",xin="org.eclipse.elk.layered.edgeLabels.centerLabelPlacementStrategy",ES="org.eclipse.elk.layered.considerModelOrder.strategy",Fin="org.eclipse.elk.layered.considerModelOrder.portModelOrder",Bin="org.eclipse.elk.layered.considerModelOrder.noModelOrder",IR="org.eclipse.elk.layered.considerModelOrder.components",Rin="org.eclipse.elk.layered.considerModelOrder.longEdgeStrategy",OR="org.eclipse.elk.layered.considerModelOrder.crossingCounterNodeInfluence",DR="org.eclipse.elk.layered.considerModelOrder.crossingCounterPortInfluence",LR="layering",YXn="layering.minWidth",ZXn="layering.nodePromotion",Wm="crossingMinimization",CS="org.eclipse.elk.hierarchyHandling",nVn="crossingMinimization.greedySwitch",eVn="nodePlacement",tVn="nodePlacement.bk",iVn="edgeRouting",qy="org.eclipse.elk.edgeRouting",Hf="spacing",Kin="priority",_in="compaction",rVn="compaction.postCompaction",cVn="Specifies whether and how post-process compaction is applied.",Hin="highDegreeNodes",qin="wrapping",uVn="wrapping.cutting",oVn="wrapping.validify",Uin="wrapping.multiEdge",NR="edgeLabels",a8="considerModelOrder",Gin="org.eclipse.elk.spacing.commentComment",zin="org.eclipse.elk.spacing.commentNode",Xin="org.eclipse.elk.spacing.edgeEdge",$R="org.eclipse.elk.spacing.edgeNode",Vin="org.eclipse.elk.spacing.labelLabel",Win="org.eclipse.elk.spacing.labelPortHorizontal",Jin="org.eclipse.elk.spacing.labelPortVertical",Qin="org.eclipse.elk.spacing.labelNode",Yin="org.eclipse.elk.spacing.nodeSelfLoop",Zin="org.eclipse.elk.spacing.portPort",nrn="org.eclipse.elk.spacing.individual",ern="org.eclipse.elk.port.borderOffset",trn="org.eclipse.elk.noLayout",irn="org.eclipse.elk.port.side",Uy="org.eclipse.elk.debugMode",rrn="org.eclipse.elk.alignment",crn="org.eclipse.elk.insideSelfLoops.activate",urn="org.eclipse.elk.insideSelfLoops.yo",xR="org.eclipse.elk.direction",orn="org.eclipse.elk.nodeLabels.padding",srn="org.eclipse.elk.portLabels.nextToPortIfPossible",frn="org.eclipse.elk.portLabels.treatAsGroup",hrn="org.eclipse.elk.portAlignment.default",lrn="org.eclipse.elk.portAlignment.north",arn="org.eclipse.elk.portAlignment.south",drn="org.eclipse.elk.portAlignment.west",brn="org.eclipse.elk.portAlignment.east",MS="org.eclipse.elk.contentAlignment",wrn="org.eclipse.elk.junctionPoints",grn="org.eclipse.elk.edgeLabels.placement",prn="org.eclipse.elk.port.index",mrn="org.eclipse.elk.commentBox",vrn="org.eclipse.elk.hypernode",krn="org.eclipse.elk.port.anchor",FR="org.eclipse.elk.partitioning.activate",BR="org.eclipse.elk.partitioning.partition",TS="org.eclipse.elk.position",yrn="org.eclipse.elk.margins",jrn="org.eclipse.elk.spacing.portsSurrounding",AS="org.eclipse.elk.interactiveLayout",dc="org.eclipse.elk.core.util",Ern={3:1,4:1,5:1,601:1},sVn="NETWORK_SIMPLEX",Crn="SIMPLE",vr={106:1,47:1},SS="org.eclipse.elk.alg.layered.p1cycles",Dl="org.eclipse.elk.alg.layered.p2layers",Mrn={413:1,230:1},fVn={846:1,3:1,4:1},Nu="org.eclipse.elk.alg.layered.p3order",kr="org.eclipse.elk.alg.layered.p4nodes",hVn={3:1,4:1,5:1,854:1},jh=1e-5,aa="org.eclipse.elk.alg.layered.p4nodes.bk",RR="org.eclipse.elk.alg.layered.p5edges",pf="org.eclipse.elk.alg.layered.p5edges.orthogonal",KR="org.eclipse.elk.alg.layered.p5edges.orthogonal.direction",_R=1e-6,jw="org.eclipse.elk.alg.layered.p5edges.splines",HR=.09999999999999998,PS=1e-8,lVn=4.71238898038469,Trn=3.141592653589793,Ll="org.eclipse.elk.alg.mrtree",qR=.10000000149011612,IS="SUPER_ROOT",d8="org.eclipse.elk.alg.mrtree.graph",Arn=-17976931348623157e292,Rc="org.eclipse.elk.alg.mrtree.intermediate",aVn="Processor compute fanout",OS={3:1,6:1,4:1,5:1,534:1,100:1,115:1},dVn="Set neighbors in level",Gy="org.eclipse.elk.alg.mrtree.options",bVn="DESCENDANTS",Srn="org.eclipse.elk.mrtree.compaction",Prn="org.eclipse.elk.mrtree.edgeEndTextureLength",Irn="org.eclipse.elk.mrtree.treeLevel",Orn="org.eclipse.elk.mrtree.positionConstraint",Drn="org.eclipse.elk.mrtree.weighting",Lrn="org.eclipse.elk.mrtree.edgeRoutingMode",Nrn="org.eclipse.elk.mrtree.searchOrder",wVn="Position Constraint",uu="org.eclipse.elk.mrtree",gVn="org.eclipse.elk.tree",pVn="Processor arrange level",Jm="org.eclipse.elk.alg.mrtree.p2order",po="org.eclipse.elk.alg.mrtree.p4route",$rn="org.eclipse.elk.alg.radial",Cd=6.283185307179586,xrn="Before",Frn=5e-324,DS="After",Brn="org.eclipse.elk.alg.radial.intermediate",mVn="COMPACTION",UR="org.eclipse.elk.alg.radial.intermediate.compaction",vVn={3:1,4:1,5:1,100:1},Rrn="org.eclipse.elk.alg.radial.intermediate.optimization",GR="No implementation is available for the layout option ",b8="org.eclipse.elk.alg.radial.options",Krn="org.eclipse.elk.radial.centerOnRoot",_rn="org.eclipse.elk.radial.orderId",Hrn="org.eclipse.elk.radial.radius",LS="org.eclipse.elk.radial.rotate",zR="org.eclipse.elk.radial.compactor",XR="org.eclipse.elk.radial.compactionStepSize",qrn="org.eclipse.elk.radial.sorter",Urn="org.eclipse.elk.radial.wedgeCriteria",Grn="org.eclipse.elk.radial.optimizationCriteria",VR="org.eclipse.elk.radial.rotation.targetAngle",WR="org.eclipse.elk.radial.rotation.computeAdditionalWedgeSpace",zrn="org.eclipse.elk.radial.rotation.outgoingEdgeAngles",kVn="Compaction",Xrn="rotation",es="org.eclipse.elk.radial",yVn="org.eclipse.elk.alg.radial.p1position.wedge",Vrn="org.eclipse.elk.alg.radial.sorting",jVn=5.497787143782138,EVn=3.9269908169872414,CVn=2.356194490192345,MVn="org.eclipse.elk.alg.rectpacking",NS="org.eclipse.elk.alg.rectpacking.intermediate",JR="org.eclipse.elk.alg.rectpacking.options",Wrn="org.eclipse.elk.rectpacking.trybox",Jrn="org.eclipse.elk.rectpacking.currentPosition",Qrn="org.eclipse.elk.rectpacking.desiredPosition",Yrn="org.eclipse.elk.rectpacking.inNewRow",Zrn="org.eclipse.elk.rectpacking.widthApproximation.strategy",ncn="org.eclipse.elk.rectpacking.widthApproximation.targetWidth",ecn="org.eclipse.elk.rectpacking.widthApproximation.optimizationGoal",tcn="org.eclipse.elk.rectpacking.widthApproximation.lastPlaceShift",icn="org.eclipse.elk.rectpacking.packing.strategy",rcn="org.eclipse.elk.rectpacking.packing.compaction.rowHeightReevaluation",ccn="org.eclipse.elk.rectpacking.packing.compaction.iterations",ucn="org.eclipse.elk.rectpacking.whiteSpaceElimination.strategy",QR="widthApproximation",TVn="Compaction Strategy",AVn="packing.compaction",co="org.eclipse.elk.rectpacking",Qm="org.eclipse.elk.alg.rectpacking.p1widthapproximation",$S="org.eclipse.elk.alg.rectpacking.p2packing",SVn="No Compaction",ocn="org.eclipse.elk.alg.rectpacking.p3whitespaceelimination",zy="org.eclipse.elk.alg.rectpacking.util",xS="No implementation available for ",Ew="org.eclipse.elk.alg.spore",Cw="org.eclipse.elk.alg.spore.options",Q0="org.eclipse.elk.sporeCompaction",YR="org.eclipse.elk.underlyingLayoutAlgorithm",scn="org.eclipse.elk.processingOrder.treeConstruction",fcn="org.eclipse.elk.processingOrder.spanningTreeCostFunction",ZR="org.eclipse.elk.processingOrder.preferredRoot",nK="org.eclipse.elk.processingOrder.rootSelection",eK="org.eclipse.elk.structure.structureExtractionStrategy",hcn="org.eclipse.elk.compaction.compactionStrategy",lcn="org.eclipse.elk.compaction.orthogonal",acn="org.eclipse.elk.overlapRemoval.maxIterations",dcn="org.eclipse.elk.overlapRemoval.runScanline",tK="processingOrder",PVn="overlapRemoval",Ym="org.eclipse.elk.sporeOverlap",IVn="org.eclipse.elk.alg.spore.p1structure",iK="org.eclipse.elk.alg.spore.p2processingorder",rK="org.eclipse.elk.alg.spore.p3execution",OVn="Topdown Layout",DVn="Invalid index: ",Zm="org.eclipse.elk.core.alg",c2={341:1},Mw={295:1},LVn="Make sure its type is registered with the ",bcn=" utility class.",nv="true",cK="false",NVn="Couldn't clone property '",Y0=.05,uo="org.eclipse.elk.core.options",$Vn=1.2999999523162842,Z0="org.eclipse.elk.box",wcn="org.eclipse.elk.expandNodes",gcn="org.eclipse.elk.box.packingMode",xVn="org.eclipse.elk.algorithm",FVn="org.eclipse.elk.resolvedAlgorithm",pcn="org.eclipse.elk.bendPoints",iNe="org.eclipse.elk.labelManager",BVn="org.eclipse.elk.scaleFactor",RVn="org.eclipse.elk.childAreaWidth",KVn="org.eclipse.elk.childAreaHeight",_Vn="org.eclipse.elk.animate",HVn="org.eclipse.elk.animTimeFactor",qVn="org.eclipse.elk.layoutAncestors",UVn="org.eclipse.elk.maxAnimTime",GVn="org.eclipse.elk.minAnimTime",zVn="org.eclipse.elk.progressBar",XVn="org.eclipse.elk.validateGraph",VVn="org.eclipse.elk.validateOptions",WVn="org.eclipse.elk.zoomToFit",rNe="org.eclipse.elk.font.name",JVn="org.eclipse.elk.font.size",mcn="org.eclipse.elk.topdown.sizeApproximator",vcn="org.eclipse.elk.topdown.scaleCap",QVn="org.eclipse.elk.edge.type",YVn="partitioning",ZVn="nodeLabels",FS="portAlignment",uK="nodeSize",oK="port",kcn="portLabels",Xy="topdown",nWn="insideSelfLoops",w8="org.eclipse.elk.fixed",BS="org.eclipse.elk.random",ycn={3:1,34:1,22:1,347:1},eWn="port must have a parent node to calculate the port side",tWn="The edge needs to have exactly one edge section. Found: ",g8="org.eclipse.elk.core.util.adapters",ts="org.eclipse.emf.ecore",u2="org.eclipse.elk.graph",iWn="EMapPropertyHolder",rWn="ElkBendPoint",cWn="ElkGraphElement",uWn="ElkConnectableShape",jcn="ElkEdge",oWn="ElkEdgeSection",sWn="EModelElement",fWn="ENamedElement",Ecn="ElkLabel",Ccn="ElkNode",Mcn="ElkPort",hWn={94:1,93:1},g3="org.eclipse.emf.common.notify.impl",da="The feature '",p8="' is not a valid changeable feature",lWn="Expecting null",sK="' is not a valid feature",aWn="The feature ID",dWn=" is not a valid feature ID",kc=32768,bWn={110:1,94:1,93:1,58:1,54:1,99:1},qn="org.eclipse.emf.ecore.impl",Md="org.eclipse.elk.graph.impl",m8="Recursive containment not allowed for ",ev="The datatype '",nb="' is not a valid classifier",fK="The value '",o2={195:1,3:1,4:1},hK="The class '",tv="http://www.eclipse.org/elk/ElkGraph",Tcn="property",v8="value",lK="source",wWn="properties",gWn="identifier",aK="height",dK="width",bK="parent",wK="text",gK="children",pWn="hierarchical",Acn="sources",pK="targets",Scn="sections",RS="bendPoints",Pcn="outgoingShape",Icn="incomingShape",Ocn="outgoingSections",Dcn="incomingSections",or="org.eclipse.emf.common.util",Lcn="Severe implementation error in the Json to ElkGraph importer.",Eh="id",Ui="org.eclipse.elk.graph.json",Ncn="Unhandled parameter types: ",mWn="startPoint",vWn="An edge must have at least one source and one target (edge id: '",iv="').",kWn="Referenced edge section does not exist: ",yWn=" (edge id: '",$cn="target",jWn="sourcePoint",EWn="targetPoint",KS="group",Je="name",CWn="connectableShape cannot be null",MWn="edge cannot be null",mK="Passed edge is not 'simple'.",_S="org.eclipse.elk.graph.util",Vy="The 'no duplicates' constraint is violated",vK="targetIndex=",Td=", size=",kK="sourceIndex=",Ch={3:1,4:1,20:1,31:1,56:1,16:1,15:1,59:1,70:1,66:1,61:1},yK={3:1,4:1,20:1,31:1,56:1,16:1,51:1,15:1,59:1,70:1,66:1,61:1,596:1},HS="logging",TWn="measureExecutionTime",AWn="parser.parse.1",SWn="parser.parse.2",qS="parser.next.1",jK="parser.next.2",PWn="parser.next.3",IWn="parser.next.4",Ad="parser.factor.1",xcn="parser.factor.2",OWn="parser.factor.3",DWn="parser.factor.4",LWn="parser.factor.5",NWn="parser.factor.6",$Wn="parser.atom.1",xWn="parser.atom.2",FWn="parser.atom.3",Fcn="parser.atom.4",EK="parser.atom.5",Bcn="parser.cc.1",US="parser.cc.2",BWn="parser.cc.3",RWn="parser.cc.5",Rcn="parser.cc.6",Kcn="parser.cc.7",CK="parser.cc.8",KWn="parser.ope.1",_Wn="parser.ope.2",HWn="parser.ope.3",g1="parser.descape.1",qWn="parser.descape.2",UWn="parser.descape.3",GWn="parser.descape.4",zWn="parser.descape.5",is="parser.process.1",XWn="parser.quantifier.1",VWn="parser.quantifier.2",WWn="parser.quantifier.3",JWn="parser.quantifier.4",_cn="parser.quantifier.5",QWn="org.eclipse.emf.common.notify",Hcn={424:1,686:1},YWn={3:1,4:1,20:1,31:1,56:1,16:1,15:1,70:1,61:1},Wy={378:1,152:1},k8="index=",MK={3:1,4:1,5:1,129:1},ZWn={3:1,4:1,20:1,31:1,56:1,16:1,15:1,59:1,70:1,61:1},qcn={3:1,6:1,4:1,5:1,198:1},nJn={3:1,4:1,5:1,173:1,379:1},eJn=";/?:@&=+$,",tJn="invalid authority: ",iJn="EAnnotation",rJn="ETypedElement",cJn="EStructuralFeature",uJn="EAttribute",oJn="EClassifier",sJn="EEnumLiteral",fJn="EGenericType",hJn="EOperation",lJn="EParameter",aJn="EReference",dJn="ETypeParameter",Tt="org.eclipse.emf.ecore.util",TK={79:1},Ucn={3:1,20:1,16:1,15:1,61:1,597:1,79:1,71:1,97:1},bJn="org.eclipse.emf.ecore.util.FeatureMap$Entry",$u=8192,Tw=2048,y8="byte",GS="char",j8="double",E8="float",C8="int",M8="long",T8="short",wJn="java.lang.Object",s2={3:1,4:1,5:1,254:1},Gcn={3:1,4:1,5:1,688:1},gJn={3:1,4:1,20:1,31:1,56:1,16:1,15:1,59:1,70:1,66:1,61:1,71:1},Qr={3:1,4:1,20:1,31:1,56:1,16:1,15:1,59:1,70:1,66:1,61:1,79:1,71:1,97:1},Jy="mixed",Fe="http:///org/eclipse/emf/ecore/util/ExtendedMetaData",ms="kind",pJn={3:1,4:1,5:1,689:1},zcn={3:1,4:1,20:1,31:1,56:1,16:1,15:1,70:1,61:1,79:1,71:1,97:1},zS={20:1,31:1,56:1,16:1,15:1,61:1,71:1},XS={51:1,128:1,287:1},VS={76:1,343:1},WS="The value of type '",JS="' must be of type '",f2=1352,vs="http://www.eclipse.org/emf/2002/Ecore",QS=-32768,eb="constraints",Ji="baseType",mJn="getEStructuralFeature",vJn="getFeatureID",A8="feature",kJn="getOperationID",Xcn="operation",yJn="defaultValue",jJn="eTypeParameters",EJn="isInstance",CJn="getEEnumLiteral",MJn="eContainingClass",Ge={57:1},TJn={3:1,4:1,5:1,124:1},AJn="org.eclipse.emf.ecore.resource",SJn={94:1,93:1,599:1,2034:1},AK="org.eclipse.emf.ecore.resource.impl",Vcn="unspecified",Qy="simple",YS="attribute",PJn="attributeWildcard",ZS="element",SK="elementWildcard",mf="collapse",PK="itemType",nP="namespace",Yy="##targetNamespace",ks="whiteSpace",Wcn="wildcards",Sd="http://www.eclipse.org/emf/2003/XMLType",IK="##any",rv="uninitialized",Zy="The multiplicity constraint is violated",eP="org.eclipse.emf.ecore.xml.type",IJn="ProcessingInstruction",OJn="SimpleAnyType",DJn="XMLTypeDocumentRoot",oi="org.eclipse.emf.ecore.xml.type.impl",nj="INF",LJn="processing",NJn="ENTITIES_._base",Jcn="minLength",Qcn="ENTITY",tP="NCName",$Jn="IDREFS_._base",Ycn="integer",OK="token",DK="pattern",xJn="[a-zA-Z]{1,8}(-[a-zA-Z0-9]{1,8})*",Zcn="\\i\\c*",FJn="[\\i-[:]][\\c-[:]]*",BJn="nonPositiveInteger",ej="maxInclusive",nun="NMTOKEN",RJn="NMTOKENS_._base",eun="nonNegativeInteger",tj="minInclusive",KJn="normalizedString",_Jn="unsignedByte",HJn="unsignedInt",qJn="18446744073709551615",UJn="unsignedShort",GJn="processingInstruction",p1="org.eclipse.emf.ecore.xml.type.internal",cv=1114111,zJn="Internal Error: shorthands: \\u",S8="xml:isDigit",LK="xml:isWord",NK="xml:isSpace",$K="xml:isNameChar",xK="xml:isInitialNameChar",XJn="09٠٩۰۹०९০৯੦੯૦૯୦୯௧௯౦౯೦೯൦൯๐๙໐໙༠༩",VJn="AZazÀÖØöøıĴľŁňŊžƀǃǍǰǴǵǺȗɐʨʻˁΆΆΈΊΌΌΎΡΣώϐϖϚϚϜϜϞϞϠϠϢϳЁЌЎяёќўҁҐӄӇӈӋӌӐӫӮӵӸӹԱՖՙՙաֆאתװײءغفيٱڷںھۀێېۓەەۥۦअहऽऽक़ॡঅঌএঐওনপরললশহড়ঢ়য়ৡৰৱਅਊਏਐਓਨਪਰਲਲ਼ਵਸ਼ਸਹਖ਼ੜਫ਼ਫ਼ੲੴઅઋઍઍએઑઓનપરલળવહઽઽૠૠଅଌଏଐଓନପରଲଳଶହଽଽଡ଼ଢ଼ୟୡஅஊஎஐஒகஙசஜஜஞடணதநபமவஷஹఅఌఎఐఒనపళవహౠౡಅಌಎಐಒನಪಳವಹೞೞೠೡഅഌഎഐഒനപഹൠൡกฮะะาำเๅກຂຄຄງຈຊຊຍຍດທນຟມຣລລວວສຫອຮະະາຳຽຽເໄཀཇཉཀྵႠჅაჶᄀᄀᄂᄃᄅᄇᄉᄉᄋᄌᄎᄒᄼᄼᄾᄾᅀᅀᅌᅌᅎᅎᅐᅐᅔᅕᅙᅙᅟᅡᅣᅣᅥᅥᅧᅧᅩᅩᅭᅮᅲᅳᅵᅵᆞᆞᆨᆨᆫᆫᆮᆯᆷᆸᆺᆺᆼᇂᇫᇫᇰᇰᇹᇹḀẛẠỹἀἕἘἝἠὅὈὍὐὗὙὙὛὛὝὝὟώᾀᾴᾶᾼιιῂῄῆῌῐΐῖΊῠῬῲῴῶῼΩΩKÅ℮℮ↀↂ〇〇〡〩ぁゔァヺㄅㄬ一龥가힣",WJn="Private Use",FK="ASSIGNED",BK="\0€ÿĀſƀɏɐʯʰ˿̀ͯͰϿЀӿ԰֏֐׿؀ۿ܀ݏހ޿ऀॿঀ৿਀੿઀૿଀୿஀௿ఀ౿ಀ೿ഀൿ඀෿฀๿຀໿ༀ࿿က႟Ⴀჿᄀᇿሀ፿Ꭰ᏿᐀ᙿ ᚟ᚠ᛿ក៿᠀᢯Ḁỿἀ῿ ⁰₟₠⃏⃐⃿℀⅏⅐↏←⇿∀⋿⌀⏿␀␿⑀⑟①⓿─╿▀▟■◿☀⛿✀➿⠀⣿⺀⻿⼀⿟⿰⿿ 〿぀ゟ゠ヿ㄀ㄯ㄰㆏㆐㆟ㆠㆿ㈀㋿㌀㏿㐀䶵一鿿ꀀ꒏꒐꓏가힣豈﫿ffﭏﭐ﷿︠︯︰﹏﹐﹯ﹰ﻾\uFEFF\uFEFF＀￯",tun="UNASSIGNED",uv={3:1,122:1},JJn="org.eclipse.emf.ecore.xml.type.util",iP={3:1,4:1,5:1,381:1},iun="org.eclipse.xtext.xbase.lib",QJn="Cannot add elements to a Range",YJn="Cannot set elements in a Range",ZJn="Cannot remove elements from a Range",nQn="user.agent",o,rP,RK;y.goog=y.goog||{},y.goog.global=y.goog.global||y,rP={},b(1,null,{},Bu),o.Fb=function(e){return YMn(this,e)},o.Gb=function(){return this.Rm},o.Hb=function(){return l0(this)},o.Ib=function(){var e;return za(wo(this))+"@"+(e=mt(this)>>>0,e.toString(16))},o.equals=function(n){return this.Fb(n)},o.hashCode=function(){return this.Hb()},o.toString=function(){return this.Ib()};var eQn,tQn,iQn;b(297,1,{297:1,2124:1},YQ),o.ve=function(e){var t;return t=new YQ,t.i=4,e>1?t.c=kOn(this,e-1):t.c=this,t},o.we=function(){return ll(this),this.b},o.xe=function(){return za(this)},o.ye=function(){return ll(this),this.k},o.ze=function(){return(this.i&4)!=0},o.Ae=function(){return(this.i&1)!=0},o.Ib=function(){return fQ(this)},o.i=0;var ki=w(ac,"Object",1),run=w(ac,"Class",297);b(2096,1,ky),w(yy,"Optional",2096),b(1191,2096,ky,Ht),o.Fb=function(e){return e===this},o.Hb=function(){return 2040732332},o.Ib=function(){return"Optional.absent()"},o.Jb=function(e){return Se(e),n6(),KK};var KK;w(yy,"Absent",1191),b(636,1,{},yD),w(yy,"Joiner",636);var cNe=Nt(yy,"Predicate");b(589,1,{178:1,589:1,3:1,46:1},A8n),o.Mb=function(e){return kFn(this,e)},o.Lb=function(e){return kFn(this,e)},o.Fb=function(e){var t;return O(e,589)?(t=u(e,589),Wnn(this.a,t.a)):!1},o.Hb=function(){return rY(this.a)+306654252},o.Ib=function(){return Gje(this.a)},w(yy,"Predicates/AndPredicate",589),b(419,2096,{419:1,3:1},TE),o.Fb=function(e){var t;return O(e,419)?(t=u(e,419),rt(this.a,t.a)):!1},o.Hb=function(){return 1502476572+mt(this.a)},o.Ib=function(){return Szn+this.a+")"},o.Jb=function(e){return new TE(TM(e.Kb(this.a),"the Function passed to Optional.transform() must not return null."))},w(yy,"Present",419),b(204,1,$m),o.Nb=function(e){_i(this,e)},o.Qb=function(){_jn()},w(Cn,"UnmodifiableIterator",204),b(2076,204,xm),o.Qb=function(){_jn()},o.Rb=function(e){throw M(new Pe)},o.Wb=function(e){throw M(new Pe)},w(Cn,"UnmodifiableListIterator",2076),b(399,2076,xm),o.Ob=function(){return this.c0},o.Pb=function(){if(this.c>=this.d)throw M(new nc);return this.Xb(this.c++)},o.Tb=function(){return this.c},o.Ub=function(){if(this.c<=0)throw M(new nc);return this.Xb(--this.c)},o.Vb=function(){return this.c-1},o.c=0,o.d=0,w(Cn,"AbstractIndexedListIterator",399),b(713,204,$m),o.Ob=function(){return E$(this)},o.Pb=function(){return iQ(this)},o.e=1,w(Cn,"AbstractIterator",713),b(2084,1,{229:1}),o.Zb=function(){var e;return e=this.f,e||(this.f=this.ac())},o.Fb=function(e){return G$(this,e)},o.Hb=function(){return mt(this.Zb())},o.dc=function(){return this.gc()==0},o.ec=function(){return Tp(this)},o.Ib=function(){return Jr(this.Zb())},w(Cn,"AbstractMultimap",2084),b(742,2084,md),o.$b=function(){gT(this)},o._b=function(e){return uEn(this,e)},o.ac=function(){return new h4(this,this.c)},o.ic=function(e){return this.hc()},o.bc=function(){return new Cg(this,this.c)},o.jc=function(){return this.mc(this.hc())},o.kc=function(){return new Mjn(this)},o.lc=function(){return nF(this.c.vc().Nc(),new ze,64,this.d)},o.cc=function(e){return ot(this,e)},o.fc=function(e){return Lk(this,e)},o.gc=function(){return this.d},o.mc=function(e){return Dn(),new Q3(e)},o.nc=function(){return new Cjn(this)},o.oc=function(){return nF(this.c.Cc().Nc(),new Jt,64,this.d)},o.pc=function(e,t){return new VM(this,e,t,null)},o.d=0,w(Cn,"AbstractMapBasedMultimap",742),b(1696,742,md),o.hc=function(){return new Gc(this.a)},o.jc=function(){return Dn(),Dn(),sr},o.cc=function(e){return u(ot(this,e),15)},o.fc=function(e){return u(Lk(this,e),15)},o.Zb=function(){return Dp(this)},o.Fb=function(e){return G$(this,e)},o.qc=function(e){return u(ot(this,e),15)},o.rc=function(e){return u(Lk(this,e),15)},o.mc=function(e){return TN(u(e,15))},o.pc=function(e,t){return ADn(this,e,u(t,15),null)},w(Cn,"AbstractListMultimap",1696),b(748,1,Si),o.Nb=function(e){_i(this,e)},o.Ob=function(){return this.c.Ob()||this.e.Ob()},o.Pb=function(){var e;return this.e.Ob()||(e=u(this.c.Pb(),44),this.b=e.ld(),this.a=u(e.md(),16),this.e=this.a.Kc()),this.sc(this.b,this.e.Pb())},o.Qb=function(){this.e.Qb(),u(as(this.a),16).dc()&&this.c.Qb(),--this.d.d},w(Cn,"AbstractMapBasedMultimap/Itr",748),b(1129,748,Si,Cjn),o.sc=function(e,t){return t},w(Cn,"AbstractMapBasedMultimap/1",1129),b(1130,1,{},Jt),o.Kb=function(e){return u(e,16).Nc()},w(Cn,"AbstractMapBasedMultimap/1methodref$spliterator$Type",1130),b(1131,748,Si,Mjn),o.sc=function(e,t){return new i0(e,t)},w(Cn,"AbstractMapBasedMultimap/2",1131);var cun=Nt(le,"Map");b(2065,1,X0),o.wc=function(e){h5(this,e)},o.yc=function(e,t,i){return hx(this,e,t,i)},o.$b=function(){this.vc().$b()},o.tc=function(e){return xx(this,e)},o._b=function(e){return!!XZ(this,e,!1)},o.uc=function(e){var t,i,r;for(i=this.vc().Kc();i.Ob();)if(t=u(i.Pb(),44),r=t.md(),x(e)===x(r)||e!=null&&rt(e,r))return!0;return!1},o.Fb=function(e){var t,i,r;if(e===this)return!0;if(!O(e,85)||(r=u(e,85),this.gc()!=r.gc()))return!1;for(i=r.vc().Kc();i.Ob();)if(t=u(i.Pb(),44),!this.tc(t))return!1;return!0},o.xc=function(e){return Kr(XZ(this,e,!1))},o.Hb=function(){return VQ(this.vc())},o.dc=function(){return this.gc()==0},o.ec=function(){return new Ha(this)},o.zc=function(e,t){throw M(new Kl("Put not supported on this map"))},o.Ac=function(e){f5(this,e)},o.Bc=function(e){return Kr(XZ(this,e,!0))},o.gc=function(){return this.vc().gc()},o.Ib=function(){return DKn(this)},o.Cc=function(){return new ol(this)},w(le,"AbstractMap",2065),b(2085,2065,X0),o.bc=function(){return new VE(this)},o.vc=function(){return EPn(this)},o.ec=function(){var e;return e=this.g,e||(this.g=this.bc())},o.Cc=function(){var e;return e=this.i,e||(this.i=new JEn(this))},w(Cn,"Maps/ViewCachingAbstractMap",2085),b(402,2085,X0,h4),o.xc=function(e){return hme(this,e)},o.Bc=function(e){return L6e(this,e)},o.$b=function(){this.d==this.e.c?this.e.$b():iM(new uW(this))},o._b=function(e){return rBn(this.d,e)},o.Ec=function(){return new S8n(this)},o.Dc=function(){return this.Ec()},o.Fb=function(e){return this===e||rt(this.d,e)},o.Hb=function(){return mt(this.d)},o.ec=function(){return this.e.ec()},o.gc=function(){return this.d.gc()},o.Ib=function(){return Jr(this.d)},w(Cn,"AbstractMapBasedMultimap/AsMap",402);var Oo=Nt(ac,"Iterable");b(31,1,pw),o.Jc=function(e){qi(this,e)},o.Lc=function(){return this.Oc()},o.Nc=function(){return new In(this,0)},o.Oc=function(){return new Tn(null,this.Nc())},o.Fc=function(e){throw M(new Kl("Add not supported on this collection"))},o.Gc=function(e){return Bi(this,e)},o.$b=function(){zW(this)},o.Hc=function(e){return iw(this,e,!1)},o.Ic=function(e){return Mk(this,e)},o.dc=function(){return this.gc()==0},o.Mc=function(e){return iw(this,e,!0)},o.Pc=function(){return gW(this)},o.Qc=function(e){return S5(this,e)},o.Ib=function(){return ra(this)},w(le,"AbstractCollection",31);var ys=Nt(le,"Set");b(Rf,31,Lu),o.Nc=function(){return new In(this,1)},o.Fb=function(e){return WBn(this,e)},o.Hb=function(){return VQ(this)},w(le,"AbstractSet",Rf),b(2068,Rf,Lu),w(Cn,"Sets/ImprovedAbstractSet",2068),b(2069,2068,Lu),o.$b=function(){this.Rc().$b()},o.Hc=function(e){return LBn(this,e)},o.dc=function(){return this.Rc().dc()},o.Mc=function(e){var t;return this.Hc(e)&&O(e,44)?(t=u(e,44),this.Rc().ec().Mc(t.ld())):!1},o.gc=function(){return this.Rc().gc()},w(Cn,"Maps/EntrySet",2069),b(1127,2069,Lu,S8n),o.Hc=function(e){return yY(this.a.d.vc(),e)},o.Kc=function(){return new uW(this.a)},o.Rc=function(){return this.a},o.Mc=function(e){var t;return yY(this.a.d.vc(),e)?(t=u(as(u(e,44)),44),Y3e(this.a.e,t.ld()),!0):!1},o.Nc=function(){return x7(this.a.d.vc().Nc(),new P8n(this.a))},w(Cn,"AbstractMapBasedMultimap/AsMap/AsMapEntries",1127),b(1128,1,{},P8n),o.Kb=function(e){return MLn(this.a,u(e,44))},w(Cn,"AbstractMapBasedMultimap/AsMap/AsMapEntries/0methodref$wrapEntry$Type",1128),b(746,1,Si,uW),o.Nb=function(e){_i(this,e)},o.Pb=function(){var e;return e=u(this.b.Pb(),44),this.a=u(e.md(),16),MLn(this.c,e)},o.Ob=function(){return this.b.Ob()},o.Qb=function(){v4(!!this.a),this.b.Qb(),this.c.e.d-=this.a.gc(),this.a.$b(),this.a=null},w(Cn,"AbstractMapBasedMultimap/AsMap/AsMapIterator",746),b(542,2068,Lu,VE),o.$b=function(){this.b.$b()},o.Hc=function(e){return this.b._b(e)},o.Jc=function(e){Se(e),this.b.wc(new z8n(e))},o.dc=function(){return this.b.dc()},o.Kc=function(){return new e6(this.b.vc().Kc())},o.Mc=function(e){return this.b._b(e)?(this.b.Bc(e),!0):!1},o.gc=function(){return this.b.gc()},w(Cn,"Maps/KeySet",542),b(327,542,Lu,Cg),o.$b=function(){var e;iM((e=this.b.vc().Kc(),new Iz(this,e)))},o.Ic=function(e){return this.b.ec().Ic(e)},o.Fb=function(e){return this===e||rt(this.b.ec(),e)},o.Hb=function(){return mt(this.b.ec())},o.Kc=function(){var e;return e=this.b.vc().Kc(),new Iz(this,e)},o.Mc=function(e){var t,i;return i=0,t=u(this.b.Bc(e),16),t&&(i=t.gc(),t.$b(),this.a.d-=i),i>0},o.Nc=function(){return this.b.ec().Nc()},w(Cn,"AbstractMapBasedMultimap/KeySet",327),b(747,1,Si,Iz),o.Nb=function(e){_i(this,e)},o.Ob=function(){return this.c.Ob()},o.Pb=function(){return this.a=u(this.c.Pb(),44),this.a.ld()},o.Qb=function(){var e;v4(!!this.a),e=u(this.a.md(),16),this.c.Qb(),this.b.a.d-=e.gc(),e.$b(),this.a=null},w(Cn,"AbstractMapBasedMultimap/KeySet/1",747),b(503,402,{85:1,133:1},P7),o.bc=function(){return this.Sc()},o.ec=function(){return this.Uc()},o.Sc=function(){return new i7(this.c,this.Wc())},o.Tc=function(){return this.Wc().Tc()},o.Uc=function(){var e;return e=this.b,e||(this.b=this.Sc())},o.Vc=function(){return this.Wc().Vc()},o.Wc=function(){return u(this.d,133)},w(Cn,"AbstractMapBasedMultimap/SortedAsMap",503),b(446,503,wtn,$6),o.bc=function(){return new f4(this.a,u(u(this.d,133),139))},o.Sc=function(){return new f4(this.a,u(u(this.d,133),139))},o.ec=function(){var e;return e=this.b,u(e||(this.b=new f4(this.a,u(u(this.d,133),139))),277)},o.Uc=function(){var e;return e=this.b,u(e||(this.b=new f4(this.a,u(u(this.d,133),139))),277)},o.Wc=function(){return u(u(this.d,133),139)},o.Xc=function(e){return u(u(this.d,133),139).Xc(e)},o.Yc=function(e){return u(u(this.d,133),139).Yc(e)},o.Zc=function(e,t){return new $6(this.a,u(u(this.d,133),139).Zc(e,t))},o.$c=function(e){return u(u(this.d,133),139).$c(e)},o._c=function(e){return u(u(this.d,133),139)._c(e)},o.ad=function(e,t){return new $6(this.a,u(u(this.d,133),139).ad(e,t))},w(Cn,"AbstractMapBasedMultimap/NavigableAsMap",446),b(502,327,Pzn,i7),o.Nc=function(){return this.b.ec().Nc()},w(Cn,"AbstractMapBasedMultimap/SortedKeySet",502),b(401,502,gtn,f4),w(Cn,"AbstractMapBasedMultimap/NavigableKeySet",401),b(551,31,pw,VM),o.Fc=function(e){var t,i;return eo(this),i=this.d.dc(),t=this.d.Fc(e),t&&(++this.f.d,i&&L7(this)),t},o.Gc=function(e){var t,i,r;return e.dc()?!1:(r=(eo(this),this.d.gc()),t=this.d.Gc(e),t&&(i=this.d.gc(),this.f.d+=i-r,r==0&&L7(this)),t)},o.$b=function(){var e;e=(eo(this),this.d.gc()),e!=0&&(this.d.$b(),this.f.d-=e,fM(this))},o.Hc=function(e){return eo(this),this.d.Hc(e)},o.Ic=function(e){return eo(this),this.d.Ic(e)},o.Fb=function(e){return e===this?!0:(eo(this),rt(this.d,e))},o.Hb=function(){return eo(this),mt(this.d)},o.Kc=function(){return eo(this),new qV(this)},o.Mc=function(e){var t;return eo(this),t=this.d.Mc(e),t&&(--this.f.d,fM(this)),t},o.gc=function(){return BMn(this)},o.Nc=function(){return eo(this),this.d.Nc()},o.Ib=function(){return eo(this),Jr(this.d)},w(Cn,"AbstractMapBasedMultimap/WrappedCollection",551);var rs=Nt(le,"List");b(744,551,{20:1,31:1,16:1,15:1},vW),o.jd=function(e){ud(this,e)},o.Nc=function(){return eo(this),this.d.Nc()},o.bd=function(e,t){var i;eo(this),i=this.d.dc(),u(this.d,15).bd(e,t),++this.a.d,i&&L7(this)},o.cd=function(e,t){var i,r,c;return t.dc()?!1:(c=(eo(this),this.d.gc()),i=u(this.d,15).cd(e,t),i&&(r=this.d.gc(),this.a.d+=r-c,c==0&&L7(this)),i)},o.Xb=function(e){return eo(this),u(this.d,15).Xb(e)},o.dd=function(e){return eo(this),u(this.d,15).dd(e)},o.ed=function(){return eo(this),new bTn(this)},o.fd=function(e){return eo(this),new FIn(this,e)},o.gd=function(e){var t;return eo(this),t=u(this.d,15).gd(e),--this.a.d,fM(this),t},o.hd=function(e,t){return eo(this),u(this.d,15).hd(e,t)},o.kd=function(e,t){return eo(this),ADn(this.a,this.e,u(this.d,15).kd(e,t),this.b?this.b:this)},w(Cn,"AbstractMapBasedMultimap/WrappedList",744),b(1126,744,{20:1,31:1,16:1,15:1,59:1},iAn),w(Cn,"AbstractMapBasedMultimap/RandomAccessWrappedList",1126),b(628,1,Si,qV),o.Nb=function(e){_i(this,e)},o.Ob=function(){return I4(this),this.b.Ob()},o.Pb=function(){return I4(this),this.b.Pb()},o.Qb=function(){_Tn(this)},w(Cn,"AbstractMapBasedMultimap/WrappedCollection/WrappedIterator",628),b(745,628,Hh,bTn,FIn),o.Qb=function(){_Tn(this)},o.Rb=function(e){var t;t=BMn(this.a)==0,(I4(this),u(this.b,128)).Rb(e),++this.a.a.d,t&&L7(this.a)},o.Sb=function(){return(I4(this),u(this.b,128)).Sb()},o.Tb=function(){return(I4(this),u(this.b,128)).Tb()},o.Ub=function(){return(I4(this),u(this.b,128)).Ub()},o.Vb=function(){return(I4(this),u(this.b,128)).Vb()},o.Wb=function(e){(I4(this),u(this.b,128)).Wb(e)},w(Cn,"AbstractMapBasedMultimap/WrappedList/WrappedListIterator",745),b(743,551,Pzn,sV),o.Nc=function(){return eo(this),this.d.Nc()},w(Cn,"AbstractMapBasedMultimap/WrappedSortedSet",743),b(1125,743,gtn,fTn),w(Cn,"AbstractMapBasedMultimap/WrappedNavigableSet",1125),b(1124,551,Lu,CAn),o.Nc=function(){return eo(this),this.d.Nc()},w(Cn,"AbstractMapBasedMultimap/WrappedSet",1124),b(1133,1,{},ze),o.Kb=function(e){return s4e(u(e,44))},w(Cn,"AbstractMapBasedMultimap/lambda$1$Type",1133),b(1132,1,{},L8n),o.Kb=function(e){return new i0(this.a,e)},w(Cn,"AbstractMapBasedMultimap/lambda$2$Type",1132);var Pd=Nt(le,"Map/Entry");b(358,1,tB),o.Fb=function(e){var t;return O(e,44)?(t=u(e,44),oh(this.ld(),t.ld())&&oh(this.md(),t.md())):!1},o.Hb=function(){var e,t;return e=this.ld(),t=this.md(),(e==null?0:mt(e))^(t==null?0:mt(t))},o.nd=function(e){throw M(new Pe)},o.Ib=function(){return this.ld()+"="+this.md()},w(Cn,Izn,358),b(2086,31,pw),o.$b=function(){this.od().$b()},o.Hc=function(e){var t;return O(e,44)?(t=u(e,44),Ppe(this.od(),t.ld(),t.md())):!1},o.Mc=function(e){var t;return O(e,44)?(t=u(e,44),sDn(this.od(),t.ld(),t.md())):!1},o.gc=function(){return this.od().d},w(Cn,"Multimaps/Entries",2086),b(749,2086,pw,fG),o.Kc=function(){return this.a.kc()},o.od=function(){return this.a},o.Nc=function(){return this.a.lc()},w(Cn,"AbstractMultimap/Entries",749),b(750,749,Lu,oz),o.Nc=function(){return this.a.lc()},o.Fb=function(e){return dnn(this,e)},o.Hb=function(){return vxn(this)},w(Cn,"AbstractMultimap/EntrySet",750),b(751,31,pw,hG),o.$b=function(){this.a.$b()},o.Hc=function(e){return A6e(this.a,e)},o.Kc=function(){return this.a.nc()},o.gc=function(){return this.a.d},o.Nc=function(){return this.a.oc()},w(Cn,"AbstractMultimap/Values",751),b(2087,31,{849:1,20:1,31:1,16:1}),o.Jc=function(e){Se(e),Tg(this).Jc(new Y8n(e))},o.Nc=function(){var e;return e=Tg(this).Nc(),nF(e,new Cf,64|e.yd()&1296,this.a.d)},o.Fc=function(e){return wz(),!0},o.Gc=function(e){return Se(this),Se(e),O(e,552)?Dpe(u(e,849)):!e.dc()&&b$(this,e.Kc())},o.Hc=function(e){var t;return t=u(tw(Dp(this.a),e),16),(t?t.gc():0)>0},o.Fb=function(e){return nMe(this,e)},o.Hb=function(){return mt(Tg(this))},o.dc=function(){return Tg(this).dc()},o.Mc=function(e){return G_n(this,e,1)>0},o.Ib=function(){return Jr(Tg(this))},w(Cn,"AbstractMultiset",2087),b(2089,2068,Lu),o.$b=function(){gT(this.a.a)},o.Hc=function(e){var t,i;return O(e,504)?(i=u(e,425),u(i.a.md(),16).gc()<=0?!1:(t=$On(this.a,i.a.ld()),t==u(i.a.md(),16).gc())):!1},o.Mc=function(e){var t,i,r,c;return O(e,504)&&(i=u(e,425),t=i.a.ld(),r=u(i.a.md(),16).gc(),r!=0)?(c=this.a,UEe(c,t,r)):!1},w(Cn,"Multisets/EntrySet",2089),b(1139,2089,Lu,N8n),o.Kc=function(){return new Ijn(EPn(Dp(this.a.a)).Kc())},o.gc=function(){return Dp(this.a.a).gc()},w(Cn,"AbstractMultiset/EntrySet",1139),b(627,742,md),o.hc=function(){return this.pd()},o.jc=function(){return this.qd()},o.cc=function(e){return this.rd(e)},o.fc=function(e){return this.sd(e)},o.Zb=function(){var e;return e=this.f,e||(this.f=this.ac())},o.qd=function(){return Dn(),Dn(),hP},o.Fb=function(e){return G$(this,e)},o.rd=function(e){return u(ot(this,e),21)},o.sd=function(e){return u(Lk(this,e),21)},o.mc=function(e){return Dn(),new r4(u(e,21))},o.pc=function(e,t){return new CAn(this,e,u(t,21))},w(Cn,"AbstractSetMultimap",627),b(1723,627,md),o.hc=function(){return new Ul(this.b)},o.pd=function(){return new Ul(this.b)},o.jc=function(){return KW(new Ul(this.b))},o.qd=function(){return KW(new Ul(this.b))},o.cc=function(e){return u(u(ot(this,e),21),87)},o.rd=function(e){return u(u(ot(this,e),21),87)},o.fc=function(e){return u(u(Lk(this,e),21),87)},o.sd=function(e){return u(u(Lk(this,e),21),87)},o.mc=function(e){return O(e,277)?KW(u(e,277)):(Dn(),new XX(u(e,87)))},o.Zb=function(){var e;return e=this.f,e||(this.f=O(this.c,139)?new $6(this,u(this.c,139)):O(this.c,133)?new P7(this,u(this.c,133)):new h4(this,this.c))},o.pc=function(e,t){return O(t,277)?new fTn(this,e,u(t,277)):new sV(this,e,u(t,87))},w(Cn,"AbstractSortedSetMultimap",1723),b(1724,1723,md),o.Zb=function(){var e;return e=this.f,u(u(e||(this.f=O(this.c,139)?new $6(this,u(this.c,139)):O(this.c,133)?new P7(this,u(this.c,133)):new h4(this,this.c)),133),139)},o.ec=function(){var e;return e=this.i,u(u(e||(this.i=O(this.c,139)?new f4(this,u(this.c,139)):O(this.c,133)?new i7(this,u(this.c,133)):new Cg(this,this.c)),87),277)},o.bc=function(){return O(this.c,139)?new f4(this,u(this.c,139)):O(this.c,133)?new i7(this,u(this.c,133)):new Cg(this,this.c)},w(Cn,"AbstractSortedKeySortedSetMultimap",1724),b(2109,1,{2046:1}),o.Fb=function(e){return Mke(this,e)},o.Hb=function(){var e;return VQ((e=this.g,e||(this.g=new zO(this))))},o.Ib=function(){var e;return DKn((e=this.f,e||(this.f=new qX(this))))},w(Cn,"AbstractTable",2109),b(679,Rf,Lu,zO),o.$b=function(){Hjn()},o.Hc=function(e){var t,i;return O(e,479)?(t=u(e,697),i=u(tw(XPn(this.a),_1(t.c.e,t.b)),85),!!i&&yY(i.vc(),new i0(_1(t.c.c,t.a),Rp(t.c,t.b,t.a)))):!1},o.Kc=function(){return Pge(this.a)},o.Mc=function(e){var t,i;return O(e,479)?(t=u(e,697),i=u(tw(XPn(this.a),_1(t.c.e,t.b)),85),!!i&&u5e(i.vc(),new i0(_1(t.c.c,t.a),Rp(t.c,t.b,t.a)))):!1},o.gc=function(){return JSn(this.a)},o.Nc=function(){return $pe(this.a)},w(Cn,"AbstractTable/CellSet",679),b(2025,31,pw,x8n),o.$b=function(){Hjn()},o.Hc=function(e){return pye(this.a,e)},o.Kc=function(){return Ige(this.a)},o.gc=function(){return JSn(this.a)},o.Nc=function(){return oDn(this.a)},w(Cn,"AbstractTable/Values",2025),b(1697,1696,md),w(Cn,"ArrayListMultimapGwtSerializationDependencies",1697),b(520,1697,md,CD,sJ),o.hc=function(){return new Gc(this.a)},o.a=0,w(Cn,"ArrayListMultimap",520),b(678,2109,{678:1,2046:1,3:1},rHn),w(Cn,"ArrayTable",678),b(2021,399,xm,HTn),o.Xb=function(e){return new ZQ(this.a,e)},w(Cn,"ArrayTable/1",2021),b(2022,1,{},I8n),o.td=function(e){return new ZQ(this.a,e)},w(Cn,"ArrayTable/1methodref$getCell$Type",2022),b(2110,1,{697:1}),o.Fb=function(e){var t;return e===this?!0:O(e,479)?(t=u(e,697),oh(_1(this.c.e,this.b),_1(t.c.e,t.b))&&oh(_1(this.c.c,this.a),_1(t.c.c,t.a))&&oh(Rp(this.c,this.b,this.a),Rp(t.c,t.b,t.a))):!1},o.Hb=function(){return Dk(S(T(ki,1),Fn,1,5,[_1(this.c.e,this.b),_1(this.c.c,this.a),Rp(this.c,this.b,this.a)]))},o.Ib=function(){return"("+_1(this.c.e,this.b)+","+_1(this.c.c,this.a)+")="+Rp(this.c,this.b,this.a)},w(Cn,"Tables/AbstractCell",2110),b(479,2110,{479:1,697:1},ZQ),o.a=0,o.b=0,o.d=0,w(Cn,"ArrayTable/2",479),b(2024,1,{},O8n),o.td=function(e){return DNn(this.a,e)},w(Cn,"ArrayTable/2methodref$getValue$Type",2024),b(2023,399,xm,qTn),o.Xb=function(e){return DNn(this.a,e)},w(Cn,"ArrayTable/3",2023),b(2077,2065,X0),o.$b=function(){iM(this.kc())},o.vc=function(){return new G8n(this)},o.lc=function(){return new AIn(this.kc(),this.gc())},w(Cn,"Maps/IteratorBasedAbstractMap",2077),b(842,2077,X0),o.$b=function(){throw M(new Pe)},o._b=function(e){return oEn(this.c,e)},o.kc=function(){return new UTn(this,this.c.b.c.gc())},o.lc=function(){return XL(this.c.b.c.gc(),16,new D8n(this))},o.xc=function(e){var t;return t=u(x6(this.c,e),17),t?this.vd(t.a):null},o.dc=function(){return this.c.b.c.dc()},o.ec=function(){return eN(this.c)},o.zc=function(e,t){var i;if(i=u(x6(this.c,e),17),!i)throw M(new Gn(this.ud()+" "+e+" not in "+eN(this.c)));return this.wd(i.a,t)},o.Bc=function(e){throw M(new Pe)},o.gc=function(){return this.c.b.c.gc()},w(Cn,"ArrayTable/ArrayMap",842),b(2020,1,{},D8n),o.td=function(e){return WPn(this.a,e)},w(Cn,"ArrayTable/ArrayMap/0methodref$getEntry$Type",2020),b(2018,358,tB,LEn),o.ld=function(){return q1e(this.a,this.b)},o.md=function(){return this.a.vd(this.b)},o.nd=function(e){return this.a.wd(this.b,e)},o.b=0,w(Cn,"ArrayTable/ArrayMap/1",2018),b(2019,399,xm,UTn),o.Xb=function(e){return WPn(this.a,e)},w(Cn,"ArrayTable/ArrayMap/2",2019),b(2017,842,X0,xPn),o.ud=function(){return"Column"},o.vd=function(e){return Rp(this.b,this.a,e)},o.wd=function(e,t){return cFn(this.b,this.a,e,t)},o.a=0,w(Cn,"ArrayTable/Row",2017),b(843,842,X0,qX),o.vd=function(e){return new xPn(this.a,e)},o.zc=function(e,t){return u(t,85),hhe()},o.wd=function(e,t){return u(t,85),lhe()},o.ud=function(){return"Row"},w(Cn,"ArrayTable/RowMap",843),b(1157,1,Po,NEn),o.Ad=function(e){return(this.a.yd()&-262&e)!=0},o.yd=function(){return this.a.yd()&-262},o.zd=function(){return this.a.zd()},o.Nb=function(e){this.a.Nb(new xEn(e,this.b))},o.Bd=function(e){return this.a.Bd(new $En(e,this.b))},w(Cn,"CollectSpliterators/1",1157),b(1158,1,ie,$En),o.Cd=function(e){this.a.Cd(this.b.Kb(e))},w(Cn,"CollectSpliterators/1/lambda$0$Type",1158),b(1159,1,ie,xEn),o.Cd=function(e){this.a.Cd(this.b.Kb(e))},w(Cn,"CollectSpliterators/1/lambda$1$Type",1159),b(1154,1,Po,cSn),o.Ad=function(e){return((16464|this.b)&e)!=0},o.yd=function(){return 16464|this.b},o.zd=function(){return this.a.zd()},o.Nb=function(e){this.a.Qe(new BEn(e,this.c))},o.Bd=function(e){return this.a.Re(new FEn(e,this.c))},o.b=0,w(Cn,"CollectSpliterators/1WithCharacteristics",1154),b(1155,1,jy,FEn),o.Dd=function(e){this.a.Cd(this.b.td(e))},w(Cn,"CollectSpliterators/1WithCharacteristics/lambda$0$Type",1155),b(1156,1,jy,BEn),o.Dd=function(e){this.a.Cd(this.b.td(e))},w(Cn,"CollectSpliterators/1WithCharacteristics/lambda$1$Type",1156),b(1150,1,Po),o.Ad=function(e){return(this.a&e)!=0},o.yd=function(){return this.a},o.zd=function(){return this.e&&(this.b=OX(this.b,this.e.zd())),OX(this.b,0)},o.Nb=function(e){this.e&&(this.e.Nb(e),this.e=null),this.c.Nb(new REn(this,e)),this.b=0},o.Bd=function(e){for(;;){if(this.e&&this.e.Bd(e))return M6(this.b,Ey)&&(this.b=bs(this.b,1)),!0;if(this.e=null,!this.c.Bd(new F8n(this)))return!1}},o.a=0,o.b=0,w(Cn,"CollectSpliterators/FlatMapSpliterator",1150),b(1152,1,ie,F8n),o.Cd=function(e){_ae(this.a,e)},w(Cn,"CollectSpliterators/FlatMapSpliterator/lambda$0$Type",1152),b(1153,1,ie,REn),o.Cd=function(e){age(this.a,this.b,e)},w(Cn,"CollectSpliterators/FlatMapSpliterator/lambda$1$Type",1153),b(1151,1150,Po,MDn),w(Cn,"CollectSpliterators/FlatMapSpliteratorOfObject",1151),b(253,1,iB),o.Fd=function(e){return this.Ed(u(e,253))},o.Ed=function(e){var t;return e==(bD(),HK)?1:e==(dD(),_K)?-1:(t=(YC(),kk(this.a,e.a)),t!=0?t:O(this,526)==O(e,526)?0:O(this,526)?1:-1)},o.Id=function(){return this.a},o.Fb=function(e){return vZ(this,e)},w(Cn,"Cut",253),b(1823,253,iB,Ejn),o.Ed=function(e){return e==this?0:1},o.Gd=function(e){throw M(new HG)},o.Hd=function(e){e.a+="+∞)"},o.Id=function(){throw M(new Or(Dzn))},o.Hb=function(){return fl(),rZ(this)},o.Jd=function(e){return!1},o.Ib=function(){return"+∞"};var _K;w(Cn,"Cut/AboveAll",1823),b(526,253,{253:1,526:1,3:1,34:1},JTn),o.Gd=function(e){Dc((e.a+="(",e),this.a)},o.Hd=function(e){Ya(Dc(e,this.a),93)},o.Hb=function(){return~mt(this.a)},o.Jd=function(e){return YC(),kk(this.a,e)<0},o.Ib=function(){return"/"+this.a+"\\"},w(Cn,"Cut/AboveValue",526),b(1822,253,iB,jjn),o.Ed=function(e){return e==this?0:-1},o.Gd=function(e){e.a+="(-∞"},o.Hd=function(e){throw M(new HG)},o.Id=function(){throw M(new Or(Dzn))},o.Hb=function(){return fl(),rZ(this)},o.Jd=function(e){return!0},o.Ib=function(){return"-∞"};var HK;w(Cn,"Cut/BelowAll",1822),b(1824,253,iB,QTn),o.Gd=function(e){Dc((e.a+="[",e),this.a)},o.Hd=function(e){Ya(Dc(e,this.a),41)},o.Hb=function(){return mt(this.a)},o.Jd=function(e){return YC(),kk(this.a,e)<=0},o.Ib=function(){return"\\"+this.a+"/"},w(Cn,"Cut/BelowValue",1824),b(547,1,qh),o.Jc=function(e){qi(this,e)},o.Ib=function(){return A5e(u(TM(this,"use Optional.orNull() instead of Optional.or(null)"),20).Kc())},w(Cn,"FluentIterable",547),b(442,547,qh,S6),o.Kc=function(){return new te(re(this.a.Kc(),new En))},w(Cn,"FluentIterable/2",442),b(1059,547,qh,cTn),o.Kc=function(){return $h(this)},w(Cn,"FluentIterable/3",1059),b(724,399,xm,UX),o.Xb=function(e){return this.a[e].Kc()},w(Cn,"FluentIterable/3/1",724),b(2070,1,{}),o.Ib=function(){return Jr(this.Kd().b)},w(Cn,"ForwardingObject",2070),b(2071,2070,Lzn),o.Kd=function(){return this.Ld()},o.Jc=function(e){qi(this,e)},o.Lc=function(){return this.Oc()},o.Nc=function(){return new In(this,0)},o.Oc=function(){return new Tn(null,this.Nc())},o.Fc=function(e){return this.Ld(),fEn()},o.Gc=function(e){return this.Ld(),hEn()},o.$b=function(){this.Ld(),lEn()},o.Hc=function(e){return this.Ld().Hc(e)},o.Ic=function(e){return this.Ld().Ic(e)},o.dc=function(){return this.Ld().b.dc()},o.Kc=function(){return this.Ld().Kc()},o.Mc=function(e){return this.Ld(),aEn()},o.gc=function(){return this.Ld().b.gc()},o.Pc=function(){return this.Ld().Pc()},o.Qc=function(e){return this.Ld().Qc(e)},w(Cn,"ForwardingCollection",2071),b(2078,31,ptn),o.Kc=function(){return this.Od()},o.Fc=function(e){throw M(new Pe)},o.Gc=function(e){throw M(new Pe)},o.Md=function(){var e;return e=this.c,e||(this.c=this.Nd())},o.$b=function(){throw M(new Pe)},o.Hc=function(e){return e!=null&&iw(this,e,!1)},o.Nd=function(){switch(this.gc()){case 0:return m0(),m0(),qK;case 1:return m0(),new VL(Se(this.Od().Pb()));default:return new EW(this,this.Pc())}},o.Mc=function(e){throw M(new Pe)},w(Cn,"ImmutableCollection",2078),b(727,2078,ptn,KG),o.Kc=function(){return Kp(this.a.Kc())},o.Hc=function(e){return e!=null&&this.a.Hc(e)},o.Ic=function(e){return this.a.Ic(e)},o.dc=function(){return this.a.dc()},o.Od=function(){return Kp(this.a.Kc())},o.gc=function(){return this.a.gc()},o.Pc=function(){return this.a.Pc()},o.Qc=function(e){return this.a.Qc(e)},o.Ib=function(){return Jr(this.a)},w(Cn,"ForwardingImmutableCollection",727),b(307,2078,Fm),o.Kc=function(){return this.Od()},o.ed=function(){return this.Pd(0)},o.fd=function(e){return this.Pd(e)},o.jd=function(e){ud(this,e)},o.Nc=function(){return new In(this,16)},o.kd=function(e,t){return this.Qd(e,t)},o.bd=function(e,t){throw M(new Pe)},o.cd=function(e,t){throw M(new Pe)},o.Md=function(){return this},o.Fb=function(e){return HCe(this,e)},o.Hb=function(){return xve(this)},o.dd=function(e){return e==null?-1:c7e(this,e)},o.Od=function(){return this.Pd(0)},o.Pd=function(e){return TL(this,e)},o.gd=function(e){throw M(new Pe)},o.hd=function(e,t){throw M(new Pe)},o.Qd=function(e,t){var i;return FT((i=new WEn(this),new Jl(i,e,t)))};var qK;w(Cn,"ImmutableList",307),b(2105,307,Fm),o.Kc=function(){return Kp(this.Rd().Kc())},o.kd=function(e,t){return FT(this.Rd().kd(e,t))},o.Hc=function(e){return e!=null&&this.Rd().Hc(e)},o.Ic=function(e){return this.Rd().Ic(e)},o.Fb=function(e){return rt(this.Rd(),e)},o.Xb=function(e){return _1(this,e)},o.Hb=function(){return mt(this.Rd())},o.dd=function(e){return this.Rd().dd(e)},o.dc=function(){return this.Rd().dc()},o.Od=function(){return Kp(this.Rd().Kc())},o.gc=function(){return this.Rd().gc()},o.Qd=function(e,t){return FT(this.Rd().kd(e,t))},o.Pc=function(){return this.Rd().Qc(K(ki,Fn,1,this.Rd().gc(),5,1))},o.Qc=function(e){return this.Rd().Qc(e)},o.Ib=function(){return Jr(this.Rd())},w(Cn,"ForwardingImmutableList",2105),b(729,1,Bm),o.vc=function(){return Wa(this)},o.wc=function(e){h5(this,e)},o.ec=function(){return eN(this)},o.yc=function(e,t,i){return hx(this,e,t,i)},o.Cc=function(){return this.Vd()},o.$b=function(){throw M(new Pe)},o._b=function(e){return this.xc(e)!=null},o.uc=function(e){return this.Vd().Hc(e)},o.Td=function(){return new Oyn(this)},o.Ud=function(){return new Dyn(this)},o.Fb=function(e){return S6e(this,e)},o.Hb=function(){return Wa(this).Hb()},o.dc=function(){return this.gc()==0},o.zc=function(e,t){return fhe()},o.Bc=function(e){throw M(new Pe)},o.Ib=function(){return wje(this)},o.Vd=function(){return this.e?this.e:this.e=this.Ud()},o.c=null,o.d=null,o.e=null;var rQn;w(Cn,"ImmutableMap",729),b(730,729,Bm),o._b=function(e){return oEn(this,e)},o.uc=function(e){return eCn(this.b,e)},o.Sd=function(){return eBn(new $8n(this))},o.Td=function(){return eBn(pIn(this.b))},o.Ud=function(){return uh(),new KG(gIn(this.b))},o.Fb=function(e){return tCn(this.b,e)},o.xc=function(e){return x6(this,e)},o.Hb=function(){return mt(this.b.c)},o.dc=function(){return this.b.c.dc()},o.gc=function(){return this.b.c.gc()},o.Ib=function(){return Jr(this.b.c)},w(Cn,"ForwardingImmutableMap",730),b(2072,2071,rB),o.Kd=function(){return this.Wd()},o.Ld=function(){return this.Wd()},o.Nc=function(){return new In(this,1)},o.Fb=function(e){return e===this||this.Wd().Fb(e)},o.Hb=function(){return this.Wd().Hb()},w(Cn,"ForwardingSet",2072),b(1085,2072,rB,$8n),o.Kd=function(){return S4(this.a.b)},o.Ld=function(){return S4(this.a.b)},o.Hc=function(e){if(O(e,44)&&u(e,44).ld()==null)return!1;try{return nCn(S4(this.a.b),e)}catch(t){if(t=It(t),O(t,212))return!1;throw M(t)}},o.Wd=function(){return S4(this.a.b)},o.Qc=function(e){var t;return t=eOn(S4(this.a.b),e),S4(this.a.b).b.gc()=0?"+":"")+(i/60|0),t=OC(y.Math.abs(i)%60),(UKn(),EQn)[this.q.getDay()]+" "+CQn[this.q.getMonth()]+" "+OC(this.q.getDate())+" "+OC(this.q.getHours())+":"+OC(this.q.getMinutes())+":"+OC(this.q.getSeconds())+" GMT"+e+t+" "+this.q.getFullYear()};var oP=w(le,"Date",206);b(2015,206,Hzn,dKn),o.a=!1,o.b=0,o.c=0,o.d=0,o.e=0,o.f=0,o.g=!1,o.i=0,o.j=0,o.k=0,o.n=0,o.o=0,o.p=0,w("com.google.gwt.i18n.shared.impl","DateRecord",2015),b(2064,1,{}),o.pe=function(){return null},o.qe=function(){return null},o.re=function(){return null},o.se=function(){return null},o.te=function(){return null},w(u3,"JSONValue",2064),b(221,2064,{221:1},Ka,aG),o.Fb=function(e){return O(e,221)?hJ(this.a,u(e,221).a):!1},o.oe=function(){return Nfe},o.Hb=function(){return ZW(this.a)},o.pe=function(){return this},o.Ib=function(){var e,t,i;for(i=new mo("["),t=0,e=this.a.length;t0&&(i.a+=","),Dc(i,Jb(this,t));return i.a+="]",i.a},w(u3,"JSONArray",221),b(493,2064,{493:1},dG),o.oe=function(){return $fe},o.qe=function(){return this},o.Ib=function(){return _n(),""+this.a},o.a=!1;var lQn,aQn;w(u3,"JSONBoolean",493),b(997,63,Pl,Ojn),w(u3,"JSONException",997),b(1036,2064,{},M0n),o.oe=function(){return xfe},o.Ib=function(){return gu};var dQn;w(u3,"JSONNull",1036),b(263,2064,{263:1},AE),o.Fb=function(e){return O(e,263)?this.a==u(e,263).a:!1},o.oe=function(){return Dfe},o.Hb=function(){return pp(this.a)},o.re=function(){return this},o.Ib=function(){return this.a+""},o.a=0,w(u3,"JSONNumber",263),b(190,2064,{190:1},op,z9),o.Fb=function(e){return O(e,190)?hJ(this.a,u(e,190).a):!1},o.oe=function(){return Lfe},o.Hb=function(){return ZW(this.a)},o.se=function(){return this},o.Ib=function(){var e,t,i,r,c,s,f;for(f=new mo("{"),e=!0,s=S$(this,K(fn,J,2,0,6,1)),i=s,r=0,c=i.length;r=0?":"+this.c:"")+")"},o.c=0;var jun=w(ac,"StackTraceElement",319);iQn={3:1,484:1,34:1,2:1};var fn=w(ac,mtn,2);b(111,427,{484:1},Hl,r6,ls),w(ac,"StringBuffer",111),b(104,427,{484:1},x1,lp,mo),w(ac,"StringBuilder",104),b(702,77,AB,gz),w(ac,"StringIndexOutOfBoundsException",702),b(2145,1,{});var pQn;b(48,63,{3:1,103:1,63:1,82:1,48:1},Pe,Kl),w(ac,"UnsupportedOperationException",48),b(247,242,{3:1,34:1,242:1,247:1},xk,Az),o.Fd=function(e){return FUn(this,u(e,247))},o.ue=function(){return sw(lGn(this))},o.Fb=function(e){var t;return this===e?!0:O(e,247)?(t=u(e,247),this.e==t.e&&FUn(this,t)==0):!1},o.Hb=function(){var e;return this.b!=0?this.b:this.a<54?(e=vc(this.f),this.b=Ae(vi(e,-1)),this.b=33*this.b+Ae(vi(w0(e,32),-1)),this.b=17*this.b+wi(this.e),this.b):(this.b=17*JFn(this.c)+wi(this.e),this.b)},o.Ib=function(){return lGn(this)},o.a=0,o.b=0,o.d=0,o.e=0,o.f=0;var mQn,Id,Eun,Cun,Mun,Tun,Aun,Sun,QK=w("java.math","BigDecimal",247);b(92,242,{3:1,34:1,242:1,92:1},gl,HOn,Qa,QBn,H1),o.Fd=function(e){return XBn(this,u(e,92))},o.ue=function(){return sw(ZF(this,0))},o.Fb=function(e){return _Y(this,e)},o.Hb=function(){return JFn(this)},o.Ib=function(){return ZF(this,0)},o.b=-2,o.c=0,o.d=0,o.e=0;var vQn,sP,kQn,YK,fP,O8,h2=w("java.math","BigInteger",92),yQn,jQn,m3,D8;b(498,2065,X0),o.$b=function(){Hu(this)},o._b=function(e){return Zc(this,e)},o.uc=function(e){return OFn(this,e,this.i)||OFn(this,e,this.f)},o.vc=function(){return new qa(this)},o.xc=function(e){return ee(this,e)},o.zc=function(e,t){return Xe(this,e,t)},o.Bc=function(e){return Bp(this,e)},o.gc=function(){return u6(this)},o.g=0,w(le,"AbstractHashMap",498),b(267,Rf,Lu,qa),o.$b=function(){this.a.$b()},o.Hc=function(e){return mDn(this,e)},o.Kc=function(){return new sd(this.a)},o.Mc=function(e){var t;return mDn(this,e)?(t=u(e,44).ld(),this.a.Bc(t),!0):!1},o.gc=function(){return this.a.gc()},w(le,"AbstractHashMap/EntrySet",267),b(268,1,Si,sd),o.Nb=function(e){_i(this,e)},o.Pb=function(){return L0(this)},o.Ob=function(){return this.b},o.Qb=function(){XNn(this)},o.b=!1,o.d=0,w(le,"AbstractHashMap/EntrySetIterator",268),b(426,1,Si,Xv),o.Nb=function(e){_i(this,e)},o.Ob=function(){return DD(this)},o.Pb=function(){return VW(this)},o.Qb=function(){bo(this)},o.b=0,o.c=-1,w(le,"AbstractList/IteratorImpl",426),b(98,426,Hh,xi),o.Qb=function(){bo(this)},o.Rb=function(e){Rb(this,e)},o.Sb=function(){return this.b>0},o.Tb=function(){return this.b},o.Ub=function(){return oe(this.b>0),this.a.Xb(this.c=--this.b)},o.Vb=function(){return this.b-1},o.Wb=function(e){Fb(this.c!=-1),this.a.hd(this.c,e)},w(le,"AbstractList/ListIteratorImpl",98),b(244,56,Rm,Jl),o.bd=function(e,t){zb(e,this.b),this.c.bd(this.a+e,t),++this.b},o.Xb=function(e){return Ln(e,this.b),this.c.Xb(this.a+e)},o.gd=function(e){var t;return Ln(e,this.b),t=this.c.gd(this.a+e),--this.b,t},o.hd=function(e,t){return Ln(e,this.b),this.c.hd(this.a+e,t)},o.gc=function(){return this.b},o.a=0,o.b=0,w(le,"AbstractList/SubList",244),b(266,Rf,Lu,Ha),o.$b=function(){this.a.$b()},o.Hc=function(e){return this.a._b(e)},o.Kc=function(){var e;return e=this.a.vc().Kc(),new PE(e)},o.Mc=function(e){return this.a._b(e)?(this.a.Bc(e),!0):!1},o.gc=function(){return this.a.gc()},w(le,"AbstractMap/1",266),b(541,1,Si,PE),o.Nb=function(e){_i(this,e)},o.Ob=function(){return this.a.Ob()},o.Pb=function(){var e;return e=u(this.a.Pb(),44),e.ld()},o.Qb=function(){this.a.Qb()},w(le,"AbstractMap/1/1",541),b(231,31,pw,ol),o.$b=function(){this.a.$b()},o.Hc=function(e){return this.a.uc(e)},o.Kc=function(){var e;return e=this.a.vc().Kc(),new Sb(e)},o.gc=function(){return this.a.gc()},w(le,"AbstractMap/2",231),b(301,1,Si,Sb),o.Nb=function(e){_i(this,e)},o.Ob=function(){return this.a.Ob()},o.Pb=function(){var e;return e=u(this.a.Pb(),44),e.md()},o.Qb=function(){this.a.Qb()},w(le,"AbstractMap/2/1",301),b(494,1,{494:1,44:1}),o.Fb=function(e){var t;return O(e,44)?(t=u(e,44),mc(this.d,t.ld())&&mc(this.e,t.md())):!1},o.ld=function(){return this.d},o.md=function(){return this.e},o.Hb=function(){return kg(this.d)^kg(this.e)},o.nd=function(e){return wV(this,e)},o.Ib=function(){return this.d+"="+this.e},w(le,"AbstractMap/AbstractEntry",494),b(397,494,{494:1,397:1,44:1},oC),w(le,"AbstractMap/SimpleEntry",397),b(2082,1,IB),o.Fb=function(e){var t;return O(e,44)?(t=u(e,44),mc(this.ld(),t.ld())&&mc(this.md(),t.md())):!1},o.Hb=function(){return kg(this.ld())^kg(this.md())},o.Ib=function(){return this.ld()+"="+this.md()},w(le,Izn,2082),b(2090,2065,wtn),o.Xc=function(e){return MD(this.Ee(e))},o.tc=function(e){return CLn(this,e)},o._b=function(e){return gV(this,e)},o.vc=function(){return new ZO(this)},o.Tc=function(){return BPn(this.Ge())},o.Yc=function(e){return MD(this.He(e))},o.xc=function(e){var t;return t=e,Kr(this.Fe(t))},o.$c=function(e){return MD(this.Ie(e))},o.ec=function(){return new o9n(this)},o.Vc=function(){return BPn(this.Je())},o._c=function(e){return MD(this.Ke(e))},w(le,"AbstractNavigableMap",2090),b(629,Rf,Lu,ZO),o.Hc=function(e){return O(e,44)&&CLn(this.b,u(e,44))},o.Kc=function(){return this.b.De()},o.Mc=function(e){var t;return O(e,44)?(t=u(e,44),this.b.Le(t)):!1},o.gc=function(){return this.b.gc()},w(le,"AbstractNavigableMap/EntrySet",629),b(1146,Rf,gtn,o9n),o.Nc=function(){return new cC(this)},o.$b=function(){this.a.$b()},o.Hc=function(e){return gV(this.a,e)},o.Kc=function(){var e;return e=this.a.vc().b.De(),new s9n(e)},o.Mc=function(e){return gV(this.a,e)?(this.a.Bc(e),!0):!1},o.gc=function(){return this.a.gc()},w(le,"AbstractNavigableMap/NavigableKeySet",1146),b(1147,1,Si,s9n),o.Nb=function(e){_i(this,e)},o.Ob=function(){return DD(this.a.a)},o.Pb=function(){var e;return e=oAn(this.a),e.ld()},o.Qb=function(){dSn(this.a)},w(le,"AbstractNavigableMap/NavigableKeySet/1",1147),b(2103,31,pw),o.Fc=function(e){return Mp(ym(this,e),_m),!0},o.Gc=function(e){return Jn(e),B7(e!=this,"Can't add a queue to itself"),Bi(this,e)},o.$b=function(){for(;w$(this)!=null;);},w(le,"AbstractQueue",2103),b(310,31,{4:1,20:1,31:1,16:1},Eg,dDn),o.Fc=function(e){return kJ(this,e),!0},o.$b=function(){TJ(this)},o.Hc=function(e){return Zxn(new W6(this),e)},o.dc=function(){return i6(this)},o.Kc=function(){return new W6(this)},o.Mc=function(e){return p2e(new W6(this),e)},o.gc=function(){return this.c-this.b&this.a.length-1},o.Nc=function(){return new In(this,272)},o.Qc=function(e){var t;return t=this.c-this.b&this.a.length-1,e.lengtht&&$t(e,t,null),e},o.b=0,o.c=0,w(le,"ArrayDeque",310),b(459,1,Si,W6),o.Nb=function(e){_i(this,e)},o.Ob=function(){return this.a!=this.b},o.Pb=function(){return xT(this)},o.Qb=function(){W$n(this)},o.a=0,o.b=0,o.c=-1,w(le,"ArrayDeque/IteratorImpl",459),b(13,56,Gzn,Z,Gc,_u),o.bd=function(e,t){b0(this,e,t)},o.Fc=function(e){return nn(this,e)},o.cd=function(e,t){return dY(this,e,t)},o.Gc=function(e){return hi(this,e)},o.$b=function(){Pb(this.c,0)},o.Hc=function(e){return qr(this,e,0)!=-1},o.Jc=function(e){nu(this,e)},o.Xb=function(e){return sn(this,e)},o.dd=function(e){return qr(this,e,0)},o.dc=function(){return this.c.length==0},o.Kc=function(){return new C(this)},o.gd=function(e){return Yl(this,e)},o.Mc=function(e){return du(this,e)},o.ce=function(e,t){xOn(this,e,t)},o.hd=function(e,t){return Go(this,e,t)},o.gc=function(){return this.c.length},o.jd=function(e){Yt(this,e)},o.Pc=function(){return ZC(this.c)},o.Qc=function(e){return xf(this,e)};var uNe=w(le,"ArrayList",13);b(7,1,Si,C),o.Nb=function(e){_i(this,e)},o.Ob=function(){return tc(this)},o.Pb=function(){return E(this)},o.Qb=function(){U6(this)},o.a=0,o.b=-1,w(le,"ArrayList/1",7),b(2112,y.Function,{},mE),o.Me=function(e,t){return bt(e,t)},b(151,56,zzn,Ku),o.Hc=function(e){return J$n(this,e)!=-1},o.Jc=function(e){var t,i,r,c;for(Jn(e),i=this.a,r=0,c=i.length;r0)throw M(new Gn(Ttn+e+" greater than "+this.e));return this.f.Te()?cOn(this.c,this.b,this.a,e,t):FOn(this.c,e,t)},o.zc=function(e,t){if(!qx(this.c,this.f,e,this.b,this.a,this.e,this.d))throw M(new Gn(e+" outside the range "+this.b+" to "+this.e));return gFn(this.c,e,t)},o.Bc=function(e){var t;return t=e,qx(this.c,this.f,t,this.b,this.a,this.e,this.d)?uOn(this.c,t):null},o.Le=function(e){return vM(this,e.ld())&&GJ(this.c,e)},o.gc=function(){var e,t,i;if(this.f.Te()?this.a?t=bm(this.c,this.b,!0):t=bm(this.c,this.b,!1):t=eQ(this.c),!(t&&vM(this,t.d)&&t))return 0;for(e=0,i=new P$(this.c,this.f,this.b,this.a,this.e,this.d);DD(i.a);i.b=u(VW(i.a),44))++e;return e},o.ad=function(e,t){if(this.f.Te()&&this.c.a.Ne(e,this.b)<0)throw M(new Gn(Ttn+e+Wzn+this.b));return this.f.Ue()?cOn(this.c,e,t,this.e,this.d):BOn(this.c,e,t)},o.a=!1,o.d=!1,w(le,"TreeMap/SubMap",631),b(304,22,NB,uC),o.Te=function(){return!1},o.Ue=function(){return!1};var e_,t_,i_,r_,lP=we(le,"TreeMap/SubMapType",304,ke,Upe,nde);b(1143,304,NB,lTn),o.Ue=function(){return!0},we(le,"TreeMap/SubMapType/1",1143,lP,null,null),b(1144,304,NB,kTn),o.Te=function(){return!0},o.Ue=function(){return!0},we(le,"TreeMap/SubMapType/2",1144,lP,null,null),b(1145,304,NB,hTn),o.Te=function(){return!0},we(le,"TreeMap/SubMapType/3",1145,lP,null,null);var IQn;b(157,Rf,{3:1,20:1,31:1,16:1,277:1,21:1,87:1,157:1},GG,Ul,Y3),o.Nc=function(){return new cC(this)},o.Fc=function(e){return _7(this,e)},o.$b=function(){this.a.$b()},o.Hc=function(e){return this.a._b(e)},o.Kc=function(){return this.a.ec().Kc()},o.Mc=function(e){return EL(this,e)},o.gc=function(){return this.a.gc()};var aNe=w(le,"TreeSet",157);b(1082,1,{},a9n),o.Ve=function(e,t){return pae(this.a,e,t)},w($B,"BinaryOperator/lambda$0$Type",1082),b(1083,1,{},d9n),o.Ve=function(e,t){return mae(this.a,e,t)},w($B,"BinaryOperator/lambda$1$Type",1083),b(952,1,{},B0n),o.Kb=function(e){return e},w($B,"Function/lambda$0$Type",952),b(395,1,De,Z3),o.Mb=function(e){return!this.a.Mb(e)},w($B,"Predicate/lambda$2$Type",395),b(581,1,{581:1});var OQn=w(e8,"Handler",581);b(2107,1,ky),o.xe=function(){return"DUMMY"},o.Ib=function(){return this.xe()};var $un;w(e8,"Level",2107),b(1706,2107,ky,R0n),o.xe=function(){return"INFO"},w(e8,"Level/LevelInfo",1706),b(1843,1,{},Ryn);var c_;w(e8,"LogManager",1843),b(1896,1,ky,aSn),o.b=null,w(e8,"LogRecord",1896),b(525,1,{525:1},VN),o.e=!1;var DQn=!1,LQn=!1,qf=!1,NQn=!1,$Qn=!1;w(e8,"Logger",525),b(835,581,{581:1},BU),w(e8,"SimpleConsoleLogHandler",835),b(108,22,{3:1,34:1,22:1,108:1},$D);var xun,Yr,Aw,xr=we(ai,"Collector/Characteristics",108,ke,O2e,ede),xQn;b(758,1,{},AW),w(ai,"CollectorImpl",758),b(1074,1,{},K0n),o.Ve=function(e,t){return l5e(u(e,213),u(t,213))},w(ai,"Collectors/10methodref$merge$Type",1074),b(1075,1,{},_0n),o.Kb=function(e){return bDn(u(e,213))},w(ai,"Collectors/11methodref$toString$Type",1075),b(1076,1,{},b9n),o.Kb=function(e){return _n(),!!yX(e)},w(ai,"Collectors/12methodref$test$Type",1076),b(144,1,{},yu),o.Yd=function(e,t){u(e,16).Fc(t)},w(ai,"Collectors/20methodref$add$Type",144),b(146,1,{},ju),o.Xe=function(){return new Z},w(ai,"Collectors/21methodref$ctor$Type",146),b(359,1,{},Q2),o.Xe=function(){return new ni},w(ai,"Collectors/23methodref$ctor$Type",359),b(360,1,{},Y2),o.Yd=function(e,t){fi(u(e,49),t)},w(ai,"Collectors/24methodref$add$Type",360),b(1069,1,{},H0n),o.Ve=function(e,t){return cCn(u(e,15),u(t,16))},w(ai,"Collectors/4methodref$addAll$Type",1069),b(1073,1,{},q0n),o.Yd=function(e,t){pl(u(e,213),u(t,484))},w(ai,"Collectors/9methodref$add$Type",1073),b(1072,1,{},PSn),o.Xe=function(){return new fd(this.a,this.b,this.c)},w(ai,"Collectors/lambda$15$Type",1072),b(1077,1,{},U0n),o.Xe=function(){var e;return e=new Ql,s1(e,(_n(),!1),new Z),s1(e,!0,new Z),e},w(ai,"Collectors/lambda$22$Type",1077),b(1078,1,{},w9n),o.Xe=function(){return S(T(ki,1),Fn,1,5,[this.a])},w(ai,"Collectors/lambda$25$Type",1078),b(1079,1,{},g9n),o.Yd=function(e,t){Fbe(this.a,cd(e))},w(ai,"Collectors/lambda$26$Type",1079),b(1080,1,{},p9n),o.Ve=function(e,t){return lwe(this.a,cd(e),cd(t))},w(ai,"Collectors/lambda$27$Type",1080),b(1081,1,{},G0n),o.Kb=function(e){return cd(e)[0]},w(ai,"Collectors/lambda$28$Type",1081),b(728,1,{},RU),o.Ve=function(e,t){return oW(e,t)},w(ai,"Collectors/lambda$4$Type",728),b(145,1,{},Eu),o.Ve=function(e,t){return zhe(u(e,16),u(t,16))},w(ai,"Collectors/lambda$42$Type",145),b(361,1,{},Z2),o.Ve=function(e,t){return Xhe(u(e,49),u(t,49))},w(ai,"Collectors/lambda$50$Type",361),b(362,1,{},np),o.Kb=function(e){return u(e,49)},w(ai,"Collectors/lambda$51$Type",362),b(1068,1,{},m9n),o.Yd=function(e,t){p6e(this.a,u(e,85),t)},w(ai,"Collectors/lambda$7$Type",1068),b(1070,1,{},z0n),o.Ve=function(e,t){return Xve(u(e,85),u(t,85),new H0n)},w(ai,"Collectors/lambda$8$Type",1070),b(1071,1,{},v9n),o.Kb=function(e){return U5e(this.a,u(e,85))},w(ai,"Collectors/lambda$9$Type",1071),b(550,1,{}),o.$e=function(){V6(this)},o.d=!1,w(ai,"TerminatableStream",550),b(827,550,Atn,uV),o.$e=function(){V6(this)},w(ai,"DoubleStreamImpl",827),b(1847,736,Po,ISn),o.Re=function(e){return X9e(this,u(e,189))},o.a=null,w(ai,"DoubleStreamImpl/2",1847),b(1848,1,Py,k9n),o.Pe=function(e){Kle(this.a,e)},w(ai,"DoubleStreamImpl/2/lambda$0$Type",1848),b(1845,1,Py,y9n),o.Pe=function(e){Rle(this.a,e)},w(ai,"DoubleStreamImpl/lambda$0$Type",1845),b(1846,1,Py,j9n),o.Pe=function(e){IBn(this.a,e)},w(ai,"DoubleStreamImpl/lambda$2$Type",1846),b(1397,735,Po,vLn),o.Re=function(e){return Lpe(this,u(e,202))},o.a=0,o.b=0,o.c=0,w(ai,"IntStream/5",1397),b(806,550,Atn,oV),o.$e=function(){V6(this)},o._e=function(){return z1(this),this.a},w(ai,"IntStreamImpl",806),b(807,550,Atn,Dz),o.$e=function(){V6(this)},o._e=function(){return z1(this),HX(),PQn},w(ai,"IntStreamImpl/Empty",807),b(1687,1,jy,E9n),o.Dd=function(e){Kxn(this.a,e)},w(ai,"IntStreamImpl/lambda$4$Type",1687);var dNe=Nt(ai,"Stream");b(26,550,{533:1,687:1,848:1},Tn),o.$e=function(){V6(this)};var v3;w(ai,"StreamImpl",26),b(1102,500,Po,rSn),o.Bd=function(e){for(;x4e(this);){if(this.a.Bd(e))return!0;V6(this.b),this.b=null,this.a=null}return!1},w(ai,"StreamImpl/1",1102),b(1103,1,ie,C9n),o.Cd=function(e){fbe(this.a,u(e,848))},w(ai,"StreamImpl/1/lambda$0$Type",1103),b(1104,1,De,M9n),o.Mb=function(e){return fi(this.a,e)},w(ai,"StreamImpl/1methodref$add$Type",1104),b(1105,500,Po,BIn),o.Bd=function(e){var t;return this.a||(t=new Z,this.b.a.Nb(new T9n(t)),Dn(),Yt(t,this.c),this.a=new In(t,16)),y$n(this.a,e)},o.a=null,w(ai,"StreamImpl/5",1105),b(1106,1,ie,T9n),o.Cd=function(e){nn(this.a,e)},w(ai,"StreamImpl/5/2methodref$add$Type",1106),b(737,500,Po,tQ),o.Bd=function(e){for(this.b=!1;!this.b&&this.c.Bd(new jCn(this,e)););return this.b},o.b=!1,w(ai,"StreamImpl/FilterSpliterator",737),b(1096,1,ie,jCn),o.Cd=function(e){cwe(this.a,this.b,e)},w(ai,"StreamImpl/FilterSpliterator/lambda$0$Type",1096),b(1091,736,Po,ILn),o.Re=function(e){return Rae(this,u(e,189))},w(ai,"StreamImpl/MapToDoubleSpliterator",1091),b(1095,1,ie,ECn),o.Cd=function(e){fle(this.a,this.b,e)},w(ai,"StreamImpl/MapToDoubleSpliterator/lambda$0$Type",1095),b(1090,735,Po,OLn),o.Re=function(e){return Kae(this,u(e,202))},w(ai,"StreamImpl/MapToIntSpliterator",1090),b(1094,1,ie,CCn),o.Cd=function(e){hle(this.a,this.b,e)},w(ai,"StreamImpl/MapToIntSpliterator/lambda$0$Type",1094),b(734,500,Po,_J),o.Bd=function(e){return eSn(this,e)},w(ai,"StreamImpl/MapToObjSpliterator",734),b(1093,1,ie,MCn),o.Cd=function(e){lle(this.a,this.b,e)},w(ai,"StreamImpl/MapToObjSpliterator/lambda$0$Type",1093),b(1092,500,Po,uxn),o.Bd=function(e){for(;LD(this.b,0);){if(!this.a.Bd(new X0n))return!1;this.b=bs(this.b,1)}return this.a.Bd(e)},o.b=0,w(ai,"StreamImpl/SkipSpliterator",1092),b(1097,1,ie,X0n),o.Cd=function(e){},w(ai,"StreamImpl/SkipSpliterator/lambda$0$Type",1097),b(626,1,ie,LO),o.Cd=function(e){t9n(this,e)},w(ai,"StreamImpl/ValueConsumer",626),b(1098,1,ie,V0n),o.Cd=function(e){Xa()},w(ai,"StreamImpl/lambda$0$Type",1098),b(1099,1,ie,W0n),o.Cd=function(e){Xa()},w(ai,"StreamImpl/lambda$1$Type",1099),b(1100,1,{},A9n),o.Ve=function(e,t){return mde(this.a,e,t)},w(ai,"StreamImpl/lambda$4$Type",1100),b(1101,1,ie,TCn),o.Cd=function(e){Cae(this.b,this.a,e)},w(ai,"StreamImpl/lambda$5$Type",1101),b(1107,1,ie,S9n),o.Cd=function(e){$ve(this.a,u(e,380))},w(ai,"TerminatableStream/lambda$0$Type",1107),b(2142,1,{}),b(2014,1,{},J0n),w("javaemul.internal","ConsoleLogger",2014);var bNe=0;b(2134,1,{}),b(1830,1,ie,Q0n),o.Cd=function(e){u(e,317)},w(Hm,"BowyerWatsonTriangulation/lambda$0$Type",1830),b(1831,1,ie,P9n),o.Cd=function(e){Bi(this.a,u(e,317).e)},w(Hm,"BowyerWatsonTriangulation/lambda$1$Type",1831),b(1832,1,ie,Y0n),o.Cd=function(e){u(e,177)},w(Hm,"BowyerWatsonTriangulation/lambda$2$Type",1832),b(1827,1,Ne,I9n),o.Ne=function(e,t){return m3e(this.a,u(e,177),u(t,177))},o.Fb=function(e){return this===e},o.Oe=function(){return new Te(this)},w(Hm,"NaiveMinST/lambda$0$Type",1827),b(449,1,{},Vv),w(Hm,"NodeMicroLayout",449),b(177,1,{177:1},bp),o.Fb=function(e){var t;return O(e,177)?(t=u(e,177),mc(this.a,t.a)&&mc(this.b,t.b)||mc(this.a,t.b)&&mc(this.b,t.a)):!1},o.Hb=function(){return kg(this.a)+kg(this.b)};var wNe=w(Hm,"TEdge",177);b(317,1,{317:1},_en),o.Fb=function(e){var t;return O(e,317)?(t=u(e,317),tT(this,t.a)&&tT(this,t.b)&&tT(this,t.c)):!1},o.Hb=function(){return kg(this.a)+kg(this.b)+kg(this.c)},w(Hm,"TTriangle",317),b(225,1,{225:1},LC),w(Hm,"Tree",225),b(1218,1,{},EOn),w(Yzn,"Scanline",1218);var FQn=Nt(Yzn,Zzn);b(1758,1,{},m$n),w(zh,"CGraph",1758),b(316,1,{316:1},TOn),o.b=0,o.c=0,o.d=0,o.g=0,o.i=0,o.k=li,w(zh,"CGroup",316),b(830,1,{},VG),w(zh,"CGroup/CGroupBuilder",830),b(60,1,{60:1},BAn),o.Ib=function(){var e;return this.j?Oe(this.j.Kb(this)):(ll(aP),aP.o+"@"+(e=l0(this)>>>0,e.toString(16)))},o.f=0,o.i=li;var aP=w(zh,"CNode",60);b(829,1,{},WG),w(zh,"CNode/CNodeBuilder",829);var BQn;b(1590,1,{},Z0n),o.ff=function(e,t){return 0},o.gf=function(e,t){return 0},w(zh,eXn,1590),b(1853,1,{},nbn),o.cf=function(e){var t,i,r,c,s,f,h,l,a,d,g,p,m,k,j;for(a=St,r=new C(e.a.b);r.ar.d.c||r.d.c==s.d.c&&r.d.b0?e+this.n.d+this.n.a:0},o.kf=function(){var e,t,i,r,c;if(c=0,this.e)this.b?c=this.b.a:this.a[1][1]&&(c=this.a[1][1].kf());else if(this.g)c=RY(this,Gx(this,null,!0));else for(t=(bf(),S(T(Sw,1),G,237,0,[bc,Wc,wc])),i=0,r=t.length;i0?c+this.n.b+this.n.c:0},o.lf=function(){var e,t,i,r,c;if(this.g)for(e=Gx(this,null,!1),i=(bf(),S(T(Sw,1),G,237,0,[bc,Wc,wc])),r=0,c=i.length;r0&&(r[0]+=this.d,i-=r[0]),r[2]>0&&(r[2]+=this.d,i-=r[2]),this.c.a=y.Math.max(0,i),this.c.d=t.d+e.d+(this.c.a-i)/2,r[1]=y.Math.max(r[1],i),FJ(this,Wc,t.d+e.d+r[0]-(r[1]-i)/2,r)},o.b=null,o.d=0,o.e=!1,o.f=!1,o.g=!1;var h_=0,dP=0;w(kd,"GridContainerCell",1538),b(471,22,{3:1,34:1,22:1,471:1},FD);var ga,Mh,Gs,VQn=we(kd,"HorizontalLabelAlignment",471,ke,L2e,ude),WQn;b(314,217,{217:1,314:1},fOn,k$n,tOn),o.jf=function(){return qSn(this)},o.kf=function(){return eW(this)},o.a=0,o.c=!1;var gNe=w(kd,"LabelCell",314);b(252,336,{217:1,336:1,252:1},C5),o.jf=function(){return N5(this)},o.kf=function(){return $5(this)},o.lf=function(){LF(this)},o.mf=function(){NF(this)},o.b=0,o.c=0,o.d=!1,w(kd,"StripContainerCell",252),b(1691,1,De,obn),o.Mb=function(e){return uhe(u(e,217))},w(kd,"StripContainerCell/lambda$0$Type",1691),b(1692,1,{},sbn),o.Ye=function(e){return u(e,217).kf()},w(kd,"StripContainerCell/lambda$1$Type",1692),b(1693,1,De,fbn),o.Mb=function(e){return ohe(u(e,217))},w(kd,"StripContainerCell/lambda$2$Type",1693),b(1694,1,{},hbn),o.Ye=function(e){return u(e,217).jf()},w(kd,"StripContainerCell/lambda$3$Type",1694),b(472,22,{3:1,34:1,22:1,472:1},BD);var zs,pa,vf,JQn=we(kd,"VerticalLabelAlignment",472,ke,D2e,ode),QQn;b(800,1,{},rtn),o.c=0,o.d=0,o.k=0,o.s=0,o.t=0,o.v=!1,o.w=0,o.D=!1,o.F=!1,w(nS,"NodeContext",800),b(1536,1,Ne,lbn),o.Ne=function(e,t){return eTn(u(e,64),u(t,64))},o.Fb=function(e){return this===e},o.Oe=function(){return new Te(this)},w(nS,"NodeContext/0methodref$comparePortSides$Type",1536),b(1537,1,Ne,abn),o.Ne=function(e,t){return xye(u(e,117),u(t,117))},o.Fb=function(e){return this===e},o.Oe=function(){return new Te(this)},w(nS,"NodeContext/1methodref$comparePortContexts$Type",1537),b(164,22,{3:1,34:1,22:1,164:1},Vo);var YQn,ZQn,nYn,eYn,tYn,iYn,rYn,cYn,uYn,oYn,sYn,fYn,hYn,lYn,aYn,dYn,bYn,wYn,gYn,pYn,mYn,l_,vYn=we(nS,"NodeLabelLocation",164,ke,jx,sde),kYn;b(117,1,{117:1},sHn),o.a=!1,w(nS,"PortContext",117),b(1541,1,ie,dbn),o.Cd=function(e){kEn(u(e,314))},w(Oy,bXn,1541),b(1542,1,De,bbn),o.Mb=function(e){return!!u(e,117).c},w(Oy,wXn,1542),b(1543,1,ie,wbn),o.Cd=function(e){kEn(u(e,117).c)},w(Oy,"LabelPlacer/lambda$2$Type",1543);var ron;b(1540,1,ie,gbn),o.Cd=function(e){Bb(),Rfe(u(e,117))},w(Oy,"NodeLabelAndSizeUtilities/lambda$0$Type",1540),b(801,1,ie,NV),o.Cd=function(e){Zhe(this.b,this.c,this.a,u(e,187))},o.a=!1,o.c=!1,w(Oy,"NodeLabelCellCreator/lambda$0$Type",801),b(1539,1,ie,L9n),o.Cd=function(e){Hfe(this.a,u(e,187))},w(Oy,"PortContextCreator/lambda$0$Type",1539);var bP;b(1902,1,{},pbn),w(Um,"GreedyRectangleStripOverlapRemover",1902),b(1903,1,Ne,mbn),o.Ne=function(e,t){return O1e(u(e,226),u(t,226))},o.Fb=function(e){return this===e},o.Oe=function(){return new Te(this)},w(Um,"GreedyRectangleStripOverlapRemover/0methodref$compareByYCoordinate$Type",1903),b(1849,1,{},qyn),o.a=5,o.e=0,w(Um,"RectangleStripOverlapRemover",1849),b(1850,1,Ne,vbn),o.Ne=function(e,t){return D1e(u(e,226),u(t,226))},o.Fb=function(e){return this===e},o.Oe=function(){return new Te(this)},w(Um,"RectangleStripOverlapRemover/0methodref$compareLeftRectangleBorders$Type",1850),b(1852,1,Ne,kbn),o.Ne=function(e,t){return ywe(u(e,226),u(t,226))},o.Fb=function(e){return this===e},o.Oe=function(){return new Te(this)},w(Um,"RectangleStripOverlapRemover/1methodref$compareRightRectangleBorders$Type",1852),b(417,22,{3:1,34:1,22:1,417:1},sC);var ij,a_,d_,rj,yYn=we(Um,"RectangleStripOverlapRemover/OverlapRemovalDirection",417,ke,Xpe,fde),jYn;b(226,1,{226:1},ZL),w(Um,"RectangleStripOverlapRemover/RectangleNode",226),b(1851,1,ie,N9n),o.Cd=function(e){s7e(this.a,u(e,226))},w(Um,"RectangleStripOverlapRemover/lambda$1$Type",1851),b(1323,1,Ne,ybn),o.Ne=function(e,t){return AIe(u(e,176),u(t,176))},o.Fb=function(e){return this===e},o.Oe=function(){return new Te(this)},w(mh,"PolyominoCompactor/CornerCasesGreaterThanRestComparator",1323),b(1326,1,{},jbn),o.Kb=function(e){return u(e,334).a},w(mh,"PolyominoCompactor/CornerCasesGreaterThanRestComparator/lambda$0$Type",1326),b(1327,1,De,Ebn),o.Mb=function(e){return u(e,332).a},w(mh,"PolyominoCompactor/CornerCasesGreaterThanRestComparator/lambda$1$Type",1327),b(1328,1,De,Cbn),o.Mb=function(e){return u(e,332).a},w(mh,"PolyominoCompactor/CornerCasesGreaterThanRestComparator/lambda$2$Type",1328),b(1321,1,Ne,Mbn),o.Ne=function(e,t){return rSe(u(e,176),u(t,176))},o.Fb=function(e){return this===e},o.Oe=function(){return new Te(this)},w(mh,"PolyominoCompactor/MinNumOfExtensionDirectionsComparator",1321),b(1324,1,{},Tbn),o.Kb=function(e){return u(e,334).a},w(mh,"PolyominoCompactor/MinNumOfExtensionDirectionsComparator/lambda$0$Type",1324),b(781,1,Ne,KU),o.Ne=function(e,t){return Kve(u(e,176),u(t,176))},o.Fb=function(e){return this===e},o.Oe=function(){return new Te(this)},w(mh,"PolyominoCompactor/MinNumOfExtensionsComparator",781),b(1319,1,Ne,Abn),o.Ne=function(e,t){return Vme(u(e,330),u(t,330))},o.Fb=function(e){return this===e},o.Oe=function(){return new Te(this)},w(mh,"PolyominoCompactor/MinPerimeterComparator",1319),b(1320,1,Ne,Sbn),o.Ne=function(e,t){return D9e(u(e,330),u(t,330))},o.Fb=function(e){return this===e},o.Oe=function(){return new Te(this)},w(mh,"PolyominoCompactor/MinPerimeterComparatorWithShape",1320),b(1322,1,Ne,Pbn),o.Ne=function(e,t){return CSe(u(e,176),u(t,176))},o.Fb=function(e){return this===e},o.Oe=function(){return new Te(this)},w(mh,"PolyominoCompactor/SingleExtensionSideGreaterThanRestComparator",1322),b(1325,1,{},Ibn),o.Kb=function(e){return u(e,334).a},w(mh,"PolyominoCompactor/SingleExtensionSideGreaterThanRestComparator/lambda$0$Type",1325),b(782,1,{},Gz),o.Ve=function(e,t){return Rpe(this,u(e,42),u(t,176))},w(mh,"SuccessorCombination",782),b(649,1,{},NO),o.Ve=function(e,t){var i;return eCe((i=u(e,42),u(t,176),i))},w(mh,"SuccessorJitter",649),b(648,1,{},$O),o.Ve=function(e,t){var i;return _Te((i=u(e,42),u(t,176),i))},w(mh,"SuccessorLineByLine",648),b(573,1,{},vE),o.Ve=function(e,t){var i;return eMe((i=u(e,42),u(t,176),i))},w(mh,"SuccessorManhattan",573),b(1344,1,{},Obn),o.Ve=function(e,t){var i;return lTe((i=u(e,42),u(t,176),i))},w(mh,"SuccessorMaxNormWindingInMathPosSense",1344),b(409,1,{},n4),o.Ve=function(e,t){return MW(this,e,t)},o.c=!1,o.d=!1,o.e=!1,o.f=!1,w(mh,"SuccessorQuadrantsGeneric",409),b(1345,1,{},Dbn),o.Kb=function(e){return u(e,334).a},w(mh,"SuccessorQuadrantsGeneric/lambda$0$Type",1345),b(332,22,{3:1,34:1,22:1,332:1},fC),o.a=!1;var cj,uj,oj,sj,EYn=we(tS,Btn,332,ke,Gpe,hde),CYn;b(1317,1,{}),o.Ib=function(){var e,t,i,r,c,s;for(i=" ",e=Y(0),c=0;c=0?"b"+e+"["+XN(this.a)+"]":"b["+XN(this.a)+"]"):"b_"+l0(this)},w(Ly,"FBendpoint",250),b(290,137,{3:1,290:1,96:1,137:1},RAn),o.Ib=function(){return XN(this)},w(Ly,"FEdge",290),b(235,137,{3:1,235:1,96:1,137:1},zM);var mNe=w(Ly,"FGraph",235);b(454,309,{3:1,454:1,309:1,96:1,137:1},_Dn),o.Ib=function(){return this.b==null||this.b.length==0?"l["+XN(this.a)+"]":"l_"+this.b},w(Ly,"FLabel",454),b(153,309,{3:1,153:1,309:1,96:1,137:1},vTn),o.Ib=function(){return aJ(this)},o.a=0,w(Ly,"FNode",153),b(2100,1,{}),o.vf=function(e){xen(this,e)},o.wf=function(){HRn(this)},o.d=0,w(Xtn,"AbstractForceModel",2100),b(641,2100,{641:1},Rxn),o.uf=function(e,t){var i,r,c,s,f;return wGn(this.f,e,t),c=mi(Ki(t.d),e.d),f=y.Math.sqrt(c.a*c.a+c.b*c.b),r=y.Math.max(0,f-X6(e.e)/2-X6(t.e)/2),i=Q_n(this.e,e,t),i>0?s=-mwe(r,this.c)*i:s=X1e(r,this.b)*u(v(e,(qs(),k3)),17).a,rh(c,s/f),c},o.vf=function(e){xen(this,e),this.a=u(v(e,(qs(),kP)),17).a,this.c=$(R(v(e,yP))),this.b=$(R(v(e,k_)))},o.xf=function(e){return e0&&(s-=the(r,this.a)*i),rh(c,s*this.b/f),c},o.vf=function(e){var t,i,r,c,s,f,h;for(xen(this,e),this.b=$(R(v(e,(qs(),y_)))),this.c=this.b/u(v(e,kP),17).a,r=e.e.c.length,s=0,c=0,h=new C(e.e);h.a0},o.a=0,o.b=0,o.c=0,w(Xtn,"FruchtermanReingoldModel",642),b(860,1,ps,N5n),o.hf=function(e){vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,cS),""),"Force Model"),"Determines the model for force calculation."),don),(l1(),Pt)),bon),yn((gf(),xn))))),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,Vtn),""),"Iterations"),"The number of iterations on the force model."),Y(300)),Zr),Gi),yn(xn)))),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,Wtn),""),"Repulsive Power"),"Determines how many bend points are added to the edge; such bend points are regarded as repelling particles in the force model"),Y(0)),Zr),Gi),yn(Ph)))),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,ZB),""),"FR Temperature"),"The temperature is used as a scaling factor for particle displacements."),vh),Qi),si),yn(xn)))),ri(e,ZB,cS,UYn),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,nR),""),"Eades Repulsion"),"Factor for repulsive forces in Eades' model."),5),Qi),si),yn(xn)))),ri(e,nR,cS,_Yn),izn((new $5n,e))};var BYn,RYn,don,KYn,_Yn,HYn,qYn,UYn;w(r8,"ForceMetaDataProvider",860),b(432,22,{3:1,34:1,22:1,432:1},Xz);var v_,vP,bon=we(r8,"ForceModelStrategy",432,ke,Rge,dde),GYn;b(d1,1,ps,$5n),o.hf=function(e){izn(e)};var zYn,XYn,won,kP,gon,VYn,WYn,JYn,QYn,pon,YYn,mon,von,ZYn,k3,nZn,k_,kon,eZn,tZn,yP,y_,iZn,rZn,cZn,yon,uZn;w(r8,"ForceOptions",d1),b(1001,1,{},Wbn),o.sf=function(){var e;return e=new XG,e},o.tf=function(e){},w(r8,"ForceOptions/ForceFactory",1001);var lj,$8,y3,jP;b(861,1,ps,x5n),o.hf=function(e){vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,Qtn),""),"Fixed Position"),"Prevent that the node is moved by the layout algorithm."),(_n(),!1)),(l1(),yi)),Gt),yn((gf(),pi))))),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,Ytn),""),"Desired Edge Length"),"Either specified for parent nodes or for individual edges, where the latter takes higher precedence."),100),Qi),si),yt(xn,S(T(Zh,1),G,170,0,[Ph]))))),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,Ztn),""),"Layout Dimension"),"Dimensions that are permitted to be altered during layout."),jon),Pt),Pon),yn(xn)))),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,nin),""),"Stress Epsilon"),"Termination criterion for the iterative process."),vh),Qi),si),yn(xn)))),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,ein),""),"Iteration Limit"),"Maximum number of performed iterations. Takes higher precedence than 'epsilon'."),Y(et)),Zr),Gi),yn(xn)))),OGn((new F5n,e))};var oZn,sZn,jon,fZn,hZn,lZn;w(r8,"StressMetaDataProvider",861),b(1004,1,ps,F5n),o.hf=function(e){OGn(e)};var EP,Eon,Con,Mon,Ton,Aon,aZn,dZn,bZn,wZn,Son,gZn;w(r8,"StressOptions",1004),b(1005,1,{},Xbn),o.sf=function(){var e;return e=new KAn,e},o.tf=function(e){},w(r8,"StressOptions/StressFactory",1005),b(1110,205,yd,KAn),o.rf=function(e,t){var i,r,c,s,f;for(t.Ug(SXn,1),on(un(z(e,(zk(),Ton))))?on(un(z(e,Son)))||W7((i=new Vv((c0(),new Qd(e))),i)):VHn(new XG,e,t.eh(1)),c=fFn(e),r=KUn(this.a,c),f=r.Kc();f.Ob();)s=u(f.Pb(),235),!(s.e.c.length<=1)&&(CIe(this.b,s),JCe(this.b),nu(s.d,new Vbn));c=nzn(r),hzn(c),t.Vg()},w(sS,"StressLayoutProvider",1110),b(1111,1,ie,Vbn),o.Cd=function(e){Uen(u(e,454))},w(sS,"StressLayoutProvider/lambda$0$Type",1111),b(1002,1,{},Byn),o.c=0,o.e=0,o.g=0,w(sS,"StressMajorization",1002),b(391,22,{3:1,34:1,22:1,391:1},RD);var j_,E_,C_,Pon=we(sS,"StressMajorization/Dimension",391,ke,$2e,bde),pZn;b(1003,1,Ne,B9n),o.Ne=function(e,t){return Hae(this.a,u(e,153),u(t,153))},o.Fb=function(e){return this===e},o.Oe=function(){return new Te(this)},w(sS,"StressMajorization/lambda$0$Type",1003),b(1192,1,{},zOn),w(b3,"ElkLayered",1192),b(1193,1,ie,R9n),o.Cd=function(e){MEe(this.a,u(e,36))},w(b3,"ElkLayered/lambda$0$Type",1193),b(1194,1,ie,K9n),o.Cd=function(e){qae(this.a,u(e,36))},w(b3,"ElkLayered/lambda$1$Type",1194),b(1281,1,{},PTn);var mZn,vZn,kZn;w(b3,"GraphConfigurator",1281),b(770,1,ie,OG),o.Cd=function(e){e_n(this.a,u(e,10))},w(b3,"GraphConfigurator/lambda$0$Type",770),b(771,1,{},HU),o.Kb=function(e){return LZ(),new Tn(null,new In(u(e,30).a,16))},w(b3,"GraphConfigurator/lambda$1$Type",771),b(772,1,ie,DG),o.Cd=function(e){e_n(this.a,u(e,10))},w(b3,"GraphConfigurator/lambda$2$Type",772),b(1109,205,yd,Uyn),o.rf=function(e,t){var i;i=cIe(new zyn,e),x(z(e,(cn(),Bw)))===x((jl(),M1))?F5e(this.a,i,t):zCe(this.a,i,t),t.$g()||XGn(new B5n,i)},w(b3,"LayeredLayoutProvider",1109),b(367,22,{3:1,34:1,22:1,367:1},f7);var Xs,Jh,Oc,Kc,zr,Ion=we(b3,"LayeredPhases",367,ke,R3e,wde),yZn;b(1717,1,{},ixn),o.i=0;var jZn;w(Ry,"ComponentsToCGraphTransformer",1717);var EZn;b(1718,1,{},zbn),o.yf=function(e,t){return y.Math.min(e.a!=null?$(e.a):e.c.i,t.a!=null?$(t.a):t.c.i)},o.zf=function(e,t){return y.Math.min(e.a!=null?$(e.a):e.c.i,t.a!=null?$(t.a):t.c.i)},w(Ry,"ComponentsToCGraphTransformer/1",1718),b(86,1,{86:1}),o.i=0,o.k=!0,o.o=li;var M_=w(s8,"CNode",86);b(470,86,{470:1,86:1},QX,oZ),o.Ib=function(){return""},w(Ry,"ComponentsToCGraphTransformer/CRectNode",470),b(1688,1,{},Jbn);var T_,A_;w(Ry,"OneDimensionalComponentsCompaction",1688),b(1689,1,{},Qbn),o.Kb=function(e){return T2e(u(e,42))},o.Fb=function(e){return this===e},w(Ry,"OneDimensionalComponentsCompaction/lambda$0$Type",1689),b(1690,1,{},Ybn),o.Kb=function(e){return R5e(u(e,42))},o.Fb=function(e){return this===e},w(Ry,"OneDimensionalComponentsCompaction/lambda$1$Type",1690),b(1720,1,{},ZPn),w(s8,"CGraph",1720),b(194,1,{194:1},vx),o.b=0,o.c=0,o.e=0,o.g=!0,o.i=li,w(s8,"CGroup",194),b(1719,1,{},Zbn),o.yf=function(e,t){return y.Math.max(e.a!=null?$(e.a):e.c.i,t.a!=null?$(t.a):t.c.i)},o.zf=function(e,t){return y.Math.max(e.a!=null?$(e.a):e.c.i,t.a!=null?$(t.a):t.c.i)},w(s8,eXn,1719),b(1721,1,{},Z_n),o.d=!1;var CZn,S_=w(s8,rXn,1721);b(1722,1,{},nwn),o.Kb=function(e){return Nz(),_n(),u(u(e,42).a,86).d.e!=0},o.Fb=function(e){return this===e},w(s8,cXn,1722),b(833,1,{},sW),o.a=!1,o.b=!1,o.c=!1,o.d=!1,w(s8,uXn,833),b(1898,1,{},wPn),w(fS,oXn,1898);var aj=Nt(Ed,Zzn);b(1899,1,{382:1},WIn),o.bf=function(e){nAe(this,u(e,476))},w(fS,sXn,1899),b(fa,1,Ne,ewn),o.Ne=function(e,t){return fge(u(e,86),u(t,86))},o.Fb=function(e){return this===e},o.Oe=function(){return new Te(this)},w(fS,fXn,fa),b(476,1,{476:1},Wz),o.a=!1,w(fS,hXn,476),b(1901,1,Ne,twn),o.Ne=function(e,t){return hke(u(e,476),u(t,476))},o.Fb=function(e){return this===e},o.Oe=function(){return new Te(this)},w(fS,lXn,1901),b(148,1,{148:1},d4,GV),o.Fb=function(e){var t;return e==null||vNe!=wo(e)?!1:(t=u(e,148),mc(this.c,t.c)&&mc(this.d,t.d))},o.Hb=function(){return Dk(S(T(ki,1),Fn,1,5,[this.c,this.d]))},o.Ib=function(){return"("+this.c+ur+this.d+(this.a?"cx":"")+this.b+")"},o.a=!0,o.c=0,o.d=0;var vNe=w(Ed,"Point",148);b(416,22,{3:1,34:1,22:1,416:1},lC);var rb,Pw,a2,Iw,MZn=we(Ed,"Point/Quadrant",416,ke,Vpe,gde),TZn;b(1708,1,{},Hyn),o.b=null,o.c=null,o.d=null,o.e=null,o.f=null;var AZn,SZn,PZn,IZn,OZn;w(Ed,"RectilinearConvexHull",1708),b(583,1,{382:1},eA),o.bf=function(e){B4e(this,u(e,148))},o.b=0;var Oon;w(Ed,"RectilinearConvexHull/MaximalElementsEventHandler",583),b(1710,1,Ne,iwn),o.Ne=function(e,t){return hge(R(e),R(t))},o.Fb=function(e){return this===e},o.Oe=function(){return new Te(this)},w(Ed,"RectilinearConvexHull/MaximalElementsEventHandler/lambda$0$Type",1710),b(1709,1,{382:1},v$n),o.bf=function(e){wTe(this,u(e,148))},o.a=0,o.b=null,o.c=null,o.d=null,o.e=null,w(Ed,"RectilinearConvexHull/RectangleEventHandler",1709),b(1711,1,Ne,rwn),o.Ne=function(e,t){return mpe(u(e,148),u(t,148))},o.Fb=function(e){return this===e},o.Oe=function(){return new Te(this)},w(Ed,"RectilinearConvexHull/lambda$0$Type",1711),b(1712,1,Ne,own),o.Ne=function(e,t){return vpe(u(e,148),u(t,148))},o.Fb=function(e){return this===e},o.Oe=function(){return new Te(this)},w(Ed,"RectilinearConvexHull/lambda$1$Type",1712),b(1713,1,Ne,swn),o.Ne=function(e,t){return ppe(u(e,148),u(t,148))},o.Fb=function(e){return this===e},o.Oe=function(){return new Te(this)},w(Ed,"RectilinearConvexHull/lambda$2$Type",1713),b(1714,1,Ne,uwn),o.Ne=function(e,t){return kpe(u(e,148),u(t,148))},o.Fb=function(e){return this===e},o.Oe=function(){return new Te(this)},w(Ed,"RectilinearConvexHull/lambda$3$Type",1714),b(1715,1,Ne,fwn),o.Ne=function(e,t){return Qye(u(e,148),u(t,148))},o.Fb=function(e){return this===e},o.Oe=function(){return new Te(this)},w(Ed,"RectilinearConvexHull/lambda$4$Type",1715),b(1716,1,{},COn),w(Ed,"Scanline",1716),b(2104,1,{}),w(_f,"AbstractGraphPlacer",2104),b(335,1,{335:1},lAn),o.Ff=function(e){return this.Gf(e)?(Pn(this.b,u(v(e,(W(),Nl)),21),e),!0):!1},o.Gf=function(e){var t,i,r,c;for(t=u(v(e,(W(),Nl)),21),c=u(ot(wt,t),21),r=c.Kc();r.Ob();)if(i=u(r.Pb(),21),!u(ot(this.b,i),15).dc())return!1;return!0};var wt;w(_f,"ComponentGroup",335),b(779,2104,{},JG),o.Hf=function(e){var t,i;for(i=new C(this.a);i.ai&&(d=0,g+=h+r,h=0),l=s.c,Sm(s,d+l.a,g+l.b),sf(l),c=y.Math.max(c,d+a.a),h=y.Math.max(h,a.b),d+=a.a+r;t.f.a=c,t.f.b=g+h},o.Jf=function(e,t){var i,r,c,s,f;if(x(v(t,(cn(),Fw)))===x((dd(),Ow))){for(r=e.Kc();r.Ob();){for(i=u(r.Pb(),36),f=0,s=new C(i.a);s.ai&&!u(v(s,(W(),Nl)),21).Hc((tn(),Xn))||l&&u(v(l,(W(),Nl)),21).Hc((tn(),Zn))||u(v(s,(W(),Nl)),21).Hc((tn(),Wn)))&&(p=g,m+=h+r,h=0),a=s.c,u(v(s,(W(),Nl)),21).Hc((tn(),Xn))&&(p=c+r),Sm(s,p+a.a,m+a.b),c=y.Math.max(c,p+d.a),u(v(s,Nl),21).Hc(ae)&&(g=y.Math.max(g,p+d.a+r)),sf(a),h=y.Math.max(h,d.b),p+=d.a+r,l=s;t.f.a=c,t.f.b=m+h},o.Jf=function(e,t){},w(_f,"ModelOrderRowGraphPlacer",1313),b(1311,1,Ne,awn),o.Ne=function(e,t){return Fve(u(e,36),u(t,36))},o.Fb=function(e){return this===e},o.Oe=function(){return new Te(this)},w(_f,"SimpleRowGraphPlacer/1",1311);var LZn;b(1280,1,ph,dwn),o.Lb=function(e){var t;return t=u(v(u(e,249).b,(cn(),Fr)),75),!!t&&t.b!=0},o.Fb=function(e){return this===e},o.Mb=function(e){var t;return t=u(v(u(e,249).b,(cn(),Fr)),75),!!t&&t.b!=0},w(hS,"CompoundGraphPostprocessor/1",1280),b(1279,1,vt,Xyn),o.Kf=function(e,t){jRn(this,u(e,36),t)},w(hS,"CompoundGraphPreprocessor",1279),b(453,1,{453:1},aBn),o.c=!1,w(hS,"CompoundGraphPreprocessor/ExternalPort",453),b(249,1,{249:1},zC),o.Ib=function(){return SL(this.c)+":"+X_n(this.b)},w(hS,"CrossHierarchyEdge",249),b(777,1,Ne,LG),o.Ne=function(e,t){return B7e(this,u(e,249),u(t,249))},o.Fb=function(e){return this===e},o.Oe=function(){return new Te(this)},w(hS,"CrossHierarchyEdgeComparator",777),b(305,137,{3:1,305:1,96:1,137:1}),o.p=0,w(Bc,"LGraphElement",305),b(18,305,{3:1,18:1,305:1,96:1,137:1},E0),o.Ib=function(){return X_n(this)};var O_=w(Bc,"LEdge",18);b(36,305,{3:1,20:1,36:1,305:1,96:1,137:1},EQ),o.Jc=function(e){qi(this,e)},o.Kc=function(){return new C(this.b)},o.Ib=function(){return this.b.c.length==0?"G-unlayered"+ra(this.a):this.a.c.length==0?"G-layered"+ra(this.b):"G[layerless"+ra(this.a)+", layers"+ra(this.b)+"]"};var NZn=w(Bc,"LGraph",36),$Zn;b(666,1,{}),o.Lf=function(){return this.e.n},o.of=function(e){return v(this.e,e)},o.Mf=function(){return this.e.o},o.Nf=function(){return this.e.p},o.pf=function(e){return kt(this.e,e)},o.Of=function(e){this.e.n.a=e.a,this.e.n.b=e.b},o.Pf=function(e){this.e.o.a=e.a,this.e.o.b=e.b},o.Qf=function(e){this.e.p=e},w(Bc,"LGraphAdapters/AbstractLShapeAdapter",666),b(474,1,{853:1},Wv),o.Rf=function(){var e,t;if(!this.b)for(this.b=Dh(this.a.b.c.length),t=new C(this.a.b);t.a0&&qFn((zn(t-1,e.length),e.charCodeAt(t-1)),NXn);)--t;if(s> ",e),lA(i)),Be(Dc((e.a+="[",e),i.i),"]")),e.a},o.c=!0,o.d=!1;var xon,Fon,Bon,Ron,Kon,_on,FZn=w(Bc,"LPort",12);b(408,1,qh,e4),o.Jc=function(e){qi(this,e)},o.Kc=function(){var e;return e=new C(this.a.e),new _9n(e)},w(Bc,"LPort/1",408),b(1309,1,Si,_9n),o.Nb=function(e){_i(this,e)},o.Pb=function(){return u(E(this.a),18).c},o.Ob=function(){return tc(this.a)},o.Qb=function(){U6(this.a)},w(Bc,"LPort/1/1",1309),b(369,1,qh,tp),o.Jc=function(e){qi(this,e)},o.Kc=function(){var e;return e=new C(this.a.g),new NG(e)},w(Bc,"LPort/2",369),b(776,1,Si,NG),o.Nb=function(e){_i(this,e)},o.Pb=function(){return u(E(this.a),18).d},o.Ob=function(){return tc(this.a)},o.Qb=function(){U6(this.a)},w(Bc,"LPort/2/1",776),b(1302,1,qh,ICn),o.Jc=function(e){qi(this,e)},o.Kc=function(){return new Of(this)},w(Bc,"LPort/CombineIter",1302),b(208,1,Si,Of),o.Nb=function(e){_i(this,e)},o.Qb=function(){sEn()},o.Ob=function(){return L6(this)},o.Pb=function(){return tc(this.a)?E(this.a):E(this.b)},w(Bc,"LPort/CombineIter/1",208),b(1303,1,ph,wwn),o.Lb=function(e){return PPn(e)},o.Fb=function(e){return this===e},o.Mb=function(e){return Ou(),u(e,12).g.c.length!=0},w(Bc,"LPort/lambda$0$Type",1303),b(1304,1,ph,gwn),o.Lb=function(e){return IPn(e)},o.Fb=function(e){return this===e},o.Mb=function(e){return Ou(),u(e,12).e.c.length!=0},w(Bc,"LPort/lambda$1$Type",1304),b(1305,1,ph,pwn),o.Lb=function(e){return Ou(),u(e,12).j==(tn(),Xn)},o.Fb=function(e){return this===e},o.Mb=function(e){return Ou(),u(e,12).j==(tn(),Xn)},w(Bc,"LPort/lambda$2$Type",1305),b(1306,1,ph,mwn),o.Lb=function(e){return Ou(),u(e,12).j==(tn(),Zn)},o.Fb=function(e){return this===e},o.Mb=function(e){return Ou(),u(e,12).j==(tn(),Zn)},w(Bc,"LPort/lambda$3$Type",1306),b(1307,1,ph,vwn),o.Lb=function(e){return Ou(),u(e,12).j==(tn(),ae)},o.Fb=function(e){return this===e},o.Mb=function(e){return Ou(),u(e,12).j==(tn(),ae)},w(Bc,"LPort/lambda$4$Type",1307),b(1308,1,ph,kwn),o.Lb=function(e){return Ou(),u(e,12).j==(tn(),Wn)},o.Fb=function(e){return this===e},o.Mb=function(e){return Ou(),u(e,12).j==(tn(),Wn)},w(Bc,"LPort/lambda$5$Type",1308),b(30,305,{3:1,20:1,305:1,30:1,96:1,137:1},Lc),o.Jc=function(e){qi(this,e)},o.Kc=function(){return new C(this.a)},o.Ib=function(){return"L_"+qr(this.b.b,this,0)+ra(this.a)},w(Bc,"Layer",30),b(1330,1,{},zyn),w(w1,BXn,1330),b(1334,1,{},ywn),o.Kb=function(e){return Gr(u(e,84))},w(w1,"ElkGraphImporter/0methodref$connectableShapeToNode$Type",1334),b(1337,1,{},jwn),o.Kb=function(e){return Gr(u(e,84))},w(w1,"ElkGraphImporter/1methodref$connectableShapeToNode$Type",1337),b(1331,1,ie,H9n),o.Cd=function(e){hHn(this.a,u(e,123))},w(w1,ztn,1331),b(1332,1,ie,q9n),o.Cd=function(e){hHn(this.a,u(e,123))},w(w1,RXn,1332),b(1333,1,{},Ewn),o.Kb=function(e){return new Tn(null,new In(UW(u(e,74)),16))},w(w1,KXn,1333),b(1335,1,De,U9n),o.Mb=function(e){return _le(this.a,u(e,27))},w(w1,_Xn,1335),b(1336,1,{},Cwn),o.Kb=function(e){return new Tn(null,new In(rge(u(e,74)),16))},w(w1,"ElkGraphImporter/lambda$5$Type",1336),b(1338,1,De,G9n),o.Mb=function(e){return Hle(this.a,u(e,27))},w(w1,"ElkGraphImporter/lambda$7$Type",1338),b(1339,1,De,Mwn),o.Mb=function(e){return mge(u(e,74))},w(w1,"ElkGraphImporter/lambda$8$Type",1339),b(1297,1,{},B5n);var BZn;w(w1,"ElkGraphLayoutTransferrer",1297),b(1298,1,De,z9n),o.Mb=function(e){return Iae(this.a,u(e,18))},w(w1,"ElkGraphLayoutTransferrer/lambda$0$Type",1298),b(1299,1,ie,X9n),o.Cd=function(e){o7(),nn(this.a,u(e,18))},w(w1,"ElkGraphLayoutTransferrer/lambda$1$Type",1299),b(1300,1,De,V9n),o.Mb=function(e){return wae(this.a,u(e,18))},w(w1,"ElkGraphLayoutTransferrer/lambda$2$Type",1300),b(1301,1,ie,W9n),o.Cd=function(e){o7(),nn(this.a,u(e,18))},w(w1,"ElkGraphLayoutTransferrer/lambda$3$Type",1301),b(819,1,{},kV),w(Qn,"BiLinkedHashMultiMap",819),b(1550,1,vt,Twn),o.Kf=function(e,t){ive(u(e,36),t)},w(Qn,"CommentNodeMarginCalculator",1550),b(1551,1,{},Awn),o.Kb=function(e){return new Tn(null,new In(u(e,30).a,16))},w(Qn,"CommentNodeMarginCalculator/lambda$0$Type",1551),b(1552,1,ie,Swn),o.Cd=function(e){iIe(u(e,10))},w(Qn,"CommentNodeMarginCalculator/lambda$1$Type",1552),b(1553,1,vt,Pwn),o.Kf=function(e,t){oAe(u(e,36),t)},w(Qn,"CommentPostprocessor",1553),b(1554,1,vt,Iwn),o.Kf=function(e,t){PDe(u(e,36),t)},w(Qn,"CommentPreprocessor",1554),b(1555,1,vt,Own),o.Kf=function(e,t){CTe(u(e,36),t)},w(Qn,"ConstraintsPostprocessor",1555),b(1556,1,vt,Dwn),o.Kf=function(e,t){Ove(u(e,36),t)},w(Qn,"EdgeAndLayerConstraintEdgeReverser",1556),b(1557,1,vt,Lwn),o.Kf=function(e,t){y8e(u(e,36),t)},w(Qn,"EndLabelPostprocessor",1557),b(1558,1,{},Nwn),o.Kb=function(e){return new Tn(null,new In(u(e,30).a,16))},w(Qn,"EndLabelPostprocessor/lambda$0$Type",1558),b(1559,1,De,$wn),o.Mb=function(e){return x3e(u(e,10))},w(Qn,"EndLabelPostprocessor/lambda$1$Type",1559),b(1560,1,ie,xwn),o.Cd=function(e){lke(u(e,10))},w(Qn,"EndLabelPostprocessor/lambda$2$Type",1560),b(1561,1,vt,Fwn),o.Kf=function(e,t){Zje(u(e,36),t)},w(Qn,"EndLabelPreprocessor",1561),b(1562,1,{},Bwn),o.Kb=function(e){return new Tn(null,new In(u(e,30).a,16))},w(Qn,"EndLabelPreprocessor/lambda$0$Type",1562),b(1563,1,ie,pSn),o.Cd=function(e){nle(this.a,this.b,this.c,u(e,10))},o.a=0,o.b=0,o.c=!1,w(Qn,"EndLabelPreprocessor/lambda$1$Type",1563),b(1564,1,De,Rwn),o.Mb=function(e){return x(v(u(e,72),(cn(),Ah)))===x((Nf(),Rv))},w(Qn,"EndLabelPreprocessor/lambda$2$Type",1564),b(1565,1,ie,J9n),o.Cd=function(e){xe(this.a,u(e,72))},w(Qn,"EndLabelPreprocessor/lambda$3$Type",1565),b(1566,1,De,Kwn),o.Mb=function(e){return x(v(u(e,72),(cn(),Ah)))===x((Nf(),Jw))},w(Qn,"EndLabelPreprocessor/lambda$4$Type",1566),b(1567,1,ie,Q9n),o.Cd=function(e){xe(this.a,u(e,72))},w(Qn,"EndLabelPreprocessor/lambda$5$Type",1567),b(1615,1,vt,I5n),o.Kf=function(e,t){k5e(u(e,36),t)};var RZn;w(Qn,"EndLabelSorter",1615),b(1616,1,Ne,_wn),o.Ne=function(e,t){return Z8e(u(e,466),u(t,466))},o.Fb=function(e){return this===e},o.Oe=function(){return new Te(this)},w(Qn,"EndLabelSorter/1",1616),b(466,1,{466:1},qIn),w(Qn,"EndLabelSorter/LabelGroup",466),b(1617,1,{},Hwn),o.Kb=function(e){return u7(),new Tn(null,new In(u(e,30).a,16))},w(Qn,"EndLabelSorter/lambda$0$Type",1617),b(1618,1,De,qwn),o.Mb=function(e){return u7(),u(e,10).k==(Vn(),zt)},w(Qn,"EndLabelSorter/lambda$1$Type",1618),b(1619,1,ie,Uwn),o.Cd=function(e){dje(u(e,10))},w(Qn,"EndLabelSorter/lambda$2$Type",1619),b(1620,1,De,Gwn),o.Mb=function(e){return u7(),x(v(u(e,72),(cn(),Ah)))===x((Nf(),Jw))},w(Qn,"EndLabelSorter/lambda$3$Type",1620),b(1621,1,De,zwn),o.Mb=function(e){return u7(),x(v(u(e,72),(cn(),Ah)))===x((Nf(),Rv))},w(Qn,"EndLabelSorter/lambda$4$Type",1621),b(1568,1,vt,Xwn),o.Kf=function(e,t){pIe(this,u(e,36))},o.b=0,o.c=0,w(Qn,"FinalSplineBendpointsCalculator",1568),b(1569,1,{},Vwn),o.Kb=function(e){return new Tn(null,new In(u(e,30).a,16))},w(Qn,"FinalSplineBendpointsCalculator/lambda$0$Type",1569),b(1570,1,{},Wwn),o.Kb=function(e){return new Tn(null,new p0(new te(re(Qt(u(e,10)).a.Kc(),new En))))},w(Qn,"FinalSplineBendpointsCalculator/lambda$1$Type",1570),b(1571,1,De,Jwn),o.Mb=function(e){return!fr(u(e,18))},w(Qn,"FinalSplineBendpointsCalculator/lambda$2$Type",1571),b(1572,1,De,Qwn),o.Mb=function(e){return kt(u(e,18),(W(),Dd))},w(Qn,"FinalSplineBendpointsCalculator/lambda$3$Type",1572),b(1573,1,ie,Y9n),o.Cd=function(e){TSe(this.a,u(e,131))},w(Qn,"FinalSplineBendpointsCalculator/lambda$4$Type",1573),b(1574,1,ie,Ywn),o.Cd=function(e){ny(u(e,18).a)},w(Qn,"FinalSplineBendpointsCalculator/lambda$5$Type",1574),b(803,1,vt,$G),o.Kf=function(e,t){lOe(this,u(e,36),t)},w(Qn,"GraphTransformer",803),b(517,22,{3:1,34:1,22:1,517:1},Vz);var L_,dj,KZn=we(Qn,"GraphTransformer/Mode",517,ke,Kge,y0e),_Zn;b(1575,1,vt,Zwn),o.Kf=function(e,t){LMe(u(e,36),t)},w(Qn,"HierarchicalNodeResizingProcessor",1575),b(1576,1,vt,ngn),o.Kf=function(e,t){Yme(u(e,36),t)},w(Qn,"HierarchicalPortConstraintProcessor",1576),b(1577,1,Ne,egn),o.Ne=function(e,t){return k9e(u(e,10),u(t,10))},o.Fb=function(e){return this===e},o.Oe=function(){return new Te(this)},w(Qn,"HierarchicalPortConstraintProcessor/NodeComparator",1577),b(1578,1,vt,tgn),o.Kf=function(e,t){yPe(u(e,36),t)},w(Qn,"HierarchicalPortDummySizeProcessor",1578),b(1579,1,vt,ign),o.Kf=function(e,t){OAe(this,u(e,36),t)},o.a=0,w(Qn,"HierarchicalPortOrthogonalEdgeRouter",1579),b(1580,1,Ne,rgn),o.Ne=function(e,t){return L1e(u(e,10),u(t,10))},o.Fb=function(e){return this===e},o.Oe=function(){return new Te(this)},w(Qn,"HierarchicalPortOrthogonalEdgeRouter/1",1580),b(1581,1,Ne,cgn),o.Ne=function(e,t){return R4e(u(e,10),u(t,10))},o.Fb=function(e){return this===e},o.Oe=function(){return new Te(this)},w(Qn,"HierarchicalPortOrthogonalEdgeRouter/2",1581),b(1582,1,vt,ugn),o.Kf=function(e,t){Vye(u(e,36),t)},w(Qn,"HierarchicalPortPositionProcessor",1582),b(1583,1,vt,R5n),o.Kf=function(e,t){hLe(this,u(e,36))},o.a=0,o.c=0;var CP,MP;w(Qn,"HighDegreeNodeLayeringProcessor",1583),b(580,1,{580:1},ogn),o.b=-1,o.d=-1,w(Qn,"HighDegreeNodeLayeringProcessor/HighDegreeNodeInformation",580),b(1584,1,{},sgn),o.Kb=function(e){return $7(),ji(u(e,10))},o.Fb=function(e){return this===e},w(Qn,"HighDegreeNodeLayeringProcessor/lambda$0$Type",1584),b(1585,1,{},fgn),o.Kb=function(e){return $7(),Qt(u(e,10))},o.Fb=function(e){return this===e},w(Qn,"HighDegreeNodeLayeringProcessor/lambda$1$Type",1585),b(1591,1,vt,hgn),o.Kf=function(e,t){dPe(this,u(e,36),t)},w(Qn,"HyperedgeDummyMerger",1591),b(804,1,{},$V),o.a=!1,o.b=!1,o.c=!1,w(Qn,"HyperedgeDummyMerger/MergeState",804),b(1592,1,{},lgn),o.Kb=function(e){return new Tn(null,new In(u(e,30).a,16))},w(Qn,"HyperedgeDummyMerger/lambda$0$Type",1592),b(1593,1,{},agn),o.Kb=function(e){return new Tn(null,new In(u(e,10).j,16))},w(Qn,"HyperedgeDummyMerger/lambda$1$Type",1593),b(1594,1,ie,dgn),o.Cd=function(e){u(e,12).p=-1},w(Qn,"HyperedgeDummyMerger/lambda$2$Type",1594),b(1595,1,vt,bgn),o.Kf=function(e,t){lPe(u(e,36),t)},w(Qn,"HypernodesProcessor",1595),b(1596,1,vt,wgn),o.Kf=function(e,t){kPe(u(e,36),t)},w(Qn,"InLayerConstraintProcessor",1596),b(1597,1,vt,ggn),o.Kf=function(e,t){dve(u(e,36),t)},w(Qn,"InnermostNodeMarginCalculator",1597),b(1598,1,vt,pgn),o.Kf=function(e,t){MDe(this,u(e,36))},o.a=li,o.b=li,o.c=St,o.d=St;var kNe=w(Qn,"InteractiveExternalPortPositioner",1598);b(1599,1,{},mgn),o.Kb=function(e){return u(e,18).d.i},o.Fb=function(e){return this===e},w(Qn,"InteractiveExternalPortPositioner/lambda$0$Type",1599),b(1600,1,{},Z9n),o.Kb=function(e){return N1e(this.a,R(e))},o.Fb=function(e){return this===e},w(Qn,"InteractiveExternalPortPositioner/lambda$1$Type",1600),b(1601,1,{},vgn),o.Kb=function(e){return u(e,18).c.i},o.Fb=function(e){return this===e},w(Qn,"InteractiveExternalPortPositioner/lambda$2$Type",1601),b(1602,1,{},n7n),o.Kb=function(e){return $1e(this.a,R(e))},o.Fb=function(e){return this===e},w(Qn,"InteractiveExternalPortPositioner/lambda$3$Type",1602),b(1603,1,{},e7n),o.Kb=function(e){return Dae(this.a,R(e))},o.Fb=function(e){return this===e},w(Qn,"InteractiveExternalPortPositioner/lambda$4$Type",1603),b(1604,1,{},t7n),o.Kb=function(e){return Lae(this.a,R(e))},o.Fb=function(e){return this===e},w(Qn,"InteractiveExternalPortPositioner/lambda$5$Type",1604),b(81,22,{3:1,34:1,22:1,81:1,196:1},ei),o.dg=function(){switch(this.g){case 15:return new xpn;case 22:return new Fpn;case 47:return new Kpn;case 28:case 35:return new Ign;case 32:return new Twn;case 42:return new Pwn;case 1:return new Iwn;case 41:return new Own;case 56:return new $G((V4(),dj));case 0:return new $G((V4(),L_));case 2:return new Dwn;case 54:return new Lwn;case 33:return new Fwn;case 51:return new Xwn;case 55:return new Zwn;case 13:return new ngn;case 38:return new tgn;case 44:return new ign;case 40:return new ugn;case 9:return new R5n;case 49:return new tAn;case 37:return new hgn;case 43:return new bgn;case 27:return new wgn;case 30:return new ggn;case 3:return new pgn;case 18:return new ygn;case 29:return new jgn;case 5:return new K5n;case 50:return new kgn;case 34:return new _5n;case 36:return new Ogn;case 52:return new I5n;case 11:return new Dgn;case 7:return new H5n;case 39:return new Lgn;case 45:return new Ngn;case 16:return new $gn;case 10:return new VCn;case 48:return new Rgn;case 21:return new Kgn;case 23:return new gD((O0(),t9));case 8:return new Hgn;case 12:return new Ugn;case 4:return new Ggn;case 19:return new V5n;case 17:return new e2n;case 53:return new t2n;case 6:return new b2n;case 25:return new Wyn;case 46:return new o2n;case 31:return new UAn;case 14:return new j2n;case 26:return new qpn;case 20:return new A2n;case 24:return new gD((O0(),PI));default:throw M(new Gn(cR+(this.f!=null?this.f:""+this.g)))}};var Hon,qon,Uon,Gon,zon,Xon,Von,Won,Jon,Qon,d2,TP,AP,Yon,Zon,nsn,esn,tsn,isn,rsn,x8,csn,usn,osn,ssn,fsn,N_,SP,PP,hsn,IP,OP,DP,hv,Dw,Lw,lsn,LP,NP,asn,$P,xP,dsn,bsn,wsn,gsn,FP,$_,bj,BP,RP,KP,_P,psn,msn,vsn,ksn,yNe=we(Qn,uR,81,ke,iqn,kde),HZn;b(1605,1,vt,ygn),o.Kf=function(e,t){EDe(u(e,36),t)},w(Qn,"InvertedPortProcessor",1605),b(1606,1,vt,jgn),o.Kf=function(e,t){mSe(u(e,36),t)},w(Qn,"LabelAndNodeSizeProcessor",1606),b(1607,1,De,Egn),o.Mb=function(e){return u(e,10).k==(Vn(),zt)},w(Qn,"LabelAndNodeSizeProcessor/lambda$0$Type",1607),b(1608,1,De,Cgn),o.Mb=function(e){return u(e,10).k==(Vn(),Zt)},w(Qn,"LabelAndNodeSizeProcessor/lambda$1$Type",1608),b(1609,1,ie,mSn),o.Cd=function(e){ele(this.b,this.a,this.c,u(e,10))},o.a=!1,o.c=!1,w(Qn,"LabelAndNodeSizeProcessor/lambda$2$Type",1609),b(1610,1,vt,K5n),o.Kf=function(e,t){WOe(u(e,36),t)};var qZn;w(Qn,"LabelDummyInserter",1610),b(1611,1,ph,Mgn),o.Lb=function(e){return x(v(u(e,72),(cn(),Ah)))===x((Nf(),Bv))},o.Fb=function(e){return this===e},o.Mb=function(e){return x(v(u(e,72),(cn(),Ah)))===x((Nf(),Bv))},w(Qn,"LabelDummyInserter/1",1611),b(1612,1,vt,kgn),o.Kf=function(e,t){FOe(u(e,36),t)},w(Qn,"LabelDummyRemover",1612),b(1613,1,De,Tgn),o.Mb=function(e){return on(un(v(u(e,72),(cn(),EH))))},w(Qn,"LabelDummyRemover/lambda$0$Type",1613),b(1378,1,vt,_5n),o.Kf=function(e,t){POe(this,u(e,36),t)},o.a=null;var x_;w(Qn,"LabelDummySwitcher",1378),b(293,1,{293:1},tUn),o.c=0,o.d=null,o.f=0,w(Qn,"LabelDummySwitcher/LabelDummyInfo",293),b(1379,1,{},Agn),o.Kb=function(e){return Hp(),new Tn(null,new In(u(e,30).a,16))},w(Qn,"LabelDummySwitcher/lambda$0$Type",1379),b(1380,1,De,Sgn),o.Mb=function(e){return Hp(),u(e,10).k==(Vn(),Ac)},w(Qn,"LabelDummySwitcher/lambda$1$Type",1380),b(1381,1,{},i7n),o.Kb=function(e){return gae(this.a,u(e,10))},w(Qn,"LabelDummySwitcher/lambda$2$Type",1381),b(1382,1,ie,r7n),o.Cd=function(e){xwe(this.a,u(e,293))},w(Qn,"LabelDummySwitcher/lambda$3$Type",1382),b(1383,1,Ne,Pgn),o.Ne=function(e,t){return uwe(u(e,293),u(t,293))},o.Fb=function(e){return this===e},o.Oe=function(){return new Te(this)},w(Qn,"LabelDummySwitcher/lambda$4$Type",1383),b(802,1,vt,Ign),o.Kf=function(e,t){m4e(u(e,36),t)},w(Qn,"LabelManagementProcessor",802),b(1614,1,vt,Ogn),o.Kf=function(e,t){WTe(u(e,36),t)},w(Qn,"LabelSideSelector",1614),b(1622,1,vt,Dgn),o.Kf=function(e,t){xPe(u(e,36),t)},w(Qn,"LayerConstraintPostprocessor",1622),b(1623,1,vt,H5n),o.Kf=function(e,t){OCe(u(e,36),t)};var ysn;w(Qn,"LayerConstraintPreprocessor",1623),b(371,22,{3:1,34:1,22:1,371:1},dC);var wj,HP,qP,F_,UZn=we(Qn,"LayerConstraintPreprocessor/HiddenNodeConnections",371,ke,Jpe,yde),GZn;b(1624,1,vt,Lgn),o.Kf=function(e,t){ZIe(u(e,36),t)},w(Qn,"LayerSizeAndGraphHeightCalculator",1624),b(1625,1,vt,Ngn),o.Kf=function(e,t){NMe(u(e,36),t)},w(Qn,"LongEdgeJoiner",1625),b(1626,1,vt,$gn),o.Kf=function(e,t){SIe(u(e,36),t)},w(Qn,"LongEdgeSplitter",1626),b(1627,1,vt,VCn),o.Kf=function(e,t){hDe(this,u(e,36),t)},o.e=0,o.f=0,o.j=0,o.k=0,o.n=0,o.o=0;var zZn,XZn;w(Qn,"NodePromotion",1627),b(1628,1,Ne,xgn),o.Ne=function(e,t){return E6e(u(e,10),u(t,10))},o.Fb=function(e){return this===e},o.Oe=function(){return new Te(this)},w(Qn,"NodePromotion/1",1628),b(1629,1,Ne,Fgn),o.Ne=function(e,t){return C6e(u(e,10),u(t,10))},o.Fb=function(e){return this===e},o.Oe=function(){return new Te(this)},w(Qn,"NodePromotion/2",1629),b(1630,1,{},Bgn),o.Kb=function(e){return u(e,42),VC(),_n(),!0},o.Fb=function(e){return this===e},w(Qn,"NodePromotion/lambda$0$Type",1630),b(1631,1,{},s7n),o.Kb=function(e){return v2e(this.a,u(e,42))},o.Fb=function(e){return this===e},o.a=0,w(Qn,"NodePromotion/lambda$1$Type",1631),b(1632,1,{},f7n),o.Kb=function(e){return m2e(this.a,u(e,42))},o.Fb=function(e){return this===e},o.a=0,w(Qn,"NodePromotion/lambda$2$Type",1632),b(1633,1,vt,Rgn),o.Kf=function(e,t){rLe(u(e,36),t)},w(Qn,"NorthSouthPortPostprocessor",1633),b(1634,1,vt,Kgn),o.Kf=function(e,t){BDe(u(e,36),t)},w(Qn,"NorthSouthPortPreprocessor",1634),b(1635,1,Ne,_gn),o.Ne=function(e,t){return Bve(u(e,12),u(t,12))},o.Fb=function(e){return this===e},o.Oe=function(){return new Te(this)},w(Qn,"NorthSouthPortPreprocessor/lambda$0$Type",1635),b(1636,1,vt,Hgn),o.Kf=function(e,t){ZSe(u(e,36),t)},w(Qn,"PartitionMidprocessor",1636),b(1637,1,De,qgn),o.Mb=function(e){return kt(u(e,10),(cn(),Cv))},w(Qn,"PartitionMidprocessor/lambda$0$Type",1637),b(1638,1,ie,h7n),o.Cd=function(e){vge(this.a,u(e,10))},w(Qn,"PartitionMidprocessor/lambda$1$Type",1638),b(1639,1,vt,Ugn),o.Kf=function(e,t){eTe(u(e,36),t)},w(Qn,"PartitionPostprocessor",1639),b(1640,1,vt,Ggn),o.Kf=function(e,t){wCe(u(e,36),t)},w(Qn,"PartitionPreprocessor",1640),b(1641,1,De,zgn),o.Mb=function(e){return kt(u(e,10),(cn(),Cv))},w(Qn,"PartitionPreprocessor/lambda$0$Type",1641),b(1642,1,{},Xgn),o.Kb=function(e){return new Tn(null,new p0(new te(re(Qt(u(e,10)).a.Kc(),new En))))},w(Qn,"PartitionPreprocessor/lambda$1$Type",1642),b(1643,1,De,Vgn),o.Mb=function(e){return c9e(u(e,18))},w(Qn,"PartitionPreprocessor/lambda$2$Type",1643),b(1644,1,ie,Wgn),o.Cd=function(e){e6e(u(e,18))},w(Qn,"PartitionPreprocessor/lambda$3$Type",1644),b(1645,1,vt,V5n),o.Kf=function(e,t){LSe(u(e,36),t)};var jsn,VZn,WZn,JZn,Esn,Csn;w(Qn,"PortListSorter",1645),b(1648,1,Ne,Jgn),o.Ne=function(e,t){return XDn(u(e,12),u(t,12))},o.Fb=function(e){return this===e},o.Oe=function(){return new Te(this)},w(Qn,"PortListSorter/lambda$0$Type",1648),b(1650,1,Ne,Qgn),o.Ne=function(e,t){return TUn(u(e,12),u(t,12))},o.Fb=function(e){return this===e},o.Oe=function(){return new Te(this)},w(Qn,"PortListSorter/lambda$1$Type",1650),b(1646,1,{},Ygn),o.Kb=function(e){return cm(),u(e,12).e},w(Qn,"PortListSorter/lambda$2$Type",1646),b(1647,1,{},Zgn),o.Kb=function(e){return cm(),u(e,12).g},w(Qn,"PortListSorter/lambda$3$Type",1647),b(1649,1,Ne,n2n),o.Ne=function(e,t){return P7e(u(e,12),u(t,12))},o.Fb=function(e){return this===e},o.Oe=function(){return new Te(this)},w(Qn,"PortListSorter/lambda$4$Type",1649),b(1651,1,vt,e2n),o.Kf=function(e,t){UCe(u(e,36),t)},w(Qn,"PortSideProcessor",1651),b(1652,1,vt,t2n),o.Kf=function(e,t){GAe(u(e,36),t)},w(Qn,"ReversedEdgeRestorer",1652),b(1657,1,vt,Wyn),o.Kf=function(e,t){l7e(this,u(e,36),t)},w(Qn,"SelfLoopPortRestorer",1657),b(1658,1,{},i2n),o.Kb=function(e){return new Tn(null,new In(u(e,30).a,16))},w(Qn,"SelfLoopPortRestorer/lambda$0$Type",1658),b(1659,1,De,r2n),o.Mb=function(e){return u(e,10).k==(Vn(),zt)},w(Qn,"SelfLoopPortRestorer/lambda$1$Type",1659),b(1660,1,De,c2n),o.Mb=function(e){return kt(u(e,10),(W(),hb))},w(Qn,"SelfLoopPortRestorer/lambda$2$Type",1660),b(1661,1,{},u2n),o.Kb=function(e){return u(v(u(e,10),(W(),hb)),337)},w(Qn,"SelfLoopPortRestorer/lambda$3$Type",1661),b(1662,1,ie,u7n),o.Cd=function(e){Tje(this.a,u(e,337))},w(Qn,"SelfLoopPortRestorer/lambda$4$Type",1662),b(805,1,ie,GU),o.Cd=function(e){Rje(u(e,105))},w(Qn,"SelfLoopPortRestorer/lambda$5$Type",805),b(1663,1,vt,o2n),o.Kf=function(e,t){p9e(u(e,36),t)},w(Qn,"SelfLoopPostProcessor",1663),b(1664,1,{},s2n),o.Kb=function(e){return new Tn(null,new In(u(e,30).a,16))},w(Qn,"SelfLoopPostProcessor/lambda$0$Type",1664),b(1665,1,De,f2n),o.Mb=function(e){return u(e,10).k==(Vn(),zt)},w(Qn,"SelfLoopPostProcessor/lambda$1$Type",1665),b(1666,1,De,h2n),o.Mb=function(e){return kt(u(e,10),(W(),hb))},w(Qn,"SelfLoopPostProcessor/lambda$2$Type",1666),b(1667,1,ie,l2n),o.Cd=function(e){Ske(u(e,10))},w(Qn,"SelfLoopPostProcessor/lambda$3$Type",1667),b(1668,1,{},a2n),o.Kb=function(e){return new Tn(null,new In(u(e,105).f,1))},w(Qn,"SelfLoopPostProcessor/lambda$4$Type",1668),b(1669,1,ie,c7n),o.Cd=function(e){n3e(this.a,u(e,340))},w(Qn,"SelfLoopPostProcessor/lambda$5$Type",1669),b(1670,1,De,d2n),o.Mb=function(e){return!!u(e,105).i},w(Qn,"SelfLoopPostProcessor/lambda$6$Type",1670),b(1671,1,ie,o7n),o.Cd=function(e){nhe(this.a,u(e,105))},w(Qn,"SelfLoopPostProcessor/lambda$7$Type",1671),b(1653,1,vt,b2n),o.Kf=function(e,t){vMe(u(e,36),t)},w(Qn,"SelfLoopPreProcessor",1653),b(1654,1,{},w2n),o.Kb=function(e){return new Tn(null,new In(u(e,105).f,1))},w(Qn,"SelfLoopPreProcessor/lambda$0$Type",1654),b(1655,1,{},g2n),o.Kb=function(e){return u(e,340).a},w(Qn,"SelfLoopPreProcessor/lambda$1$Type",1655),b(1656,1,ie,p2n),o.Cd=function(e){i1e(u(e,18))},w(Qn,"SelfLoopPreProcessor/lambda$2$Type",1656),b(1672,1,vt,UAn),o.Kf=function(e,t){oje(this,u(e,36),t)},w(Qn,"SelfLoopRouter",1672),b(1673,1,{},m2n),o.Kb=function(e){return new Tn(null,new In(u(e,30).a,16))},w(Qn,"SelfLoopRouter/lambda$0$Type",1673),b(1674,1,De,v2n),o.Mb=function(e){return u(e,10).k==(Vn(),zt)},w(Qn,"SelfLoopRouter/lambda$1$Type",1674),b(1675,1,De,k2n),o.Mb=function(e){return kt(u(e,10),(W(),hb))},w(Qn,"SelfLoopRouter/lambda$2$Type",1675),b(1676,1,{},y2n),o.Kb=function(e){return u(v(u(e,10),(W(),hb)),337)},w(Qn,"SelfLoopRouter/lambda$3$Type",1676),b(1677,1,ie,SCn),o.Cd=function(e){dge(this.a,this.b,u(e,337))},w(Qn,"SelfLoopRouter/lambda$4$Type",1677),b(1678,1,vt,j2n),o.Kf=function(e,t){FTe(u(e,36),t)},w(Qn,"SemiInteractiveCrossMinProcessor",1678),b(1679,1,De,E2n),o.Mb=function(e){return u(e,10).k==(Vn(),zt)},w(Qn,"SemiInteractiveCrossMinProcessor/lambda$0$Type",1679),b(1680,1,De,C2n),o.Mb=function(e){return oPn(u(e,10))._b((cn(),Hw))},w(Qn,"SemiInteractiveCrossMinProcessor/lambda$1$Type",1680),b(1681,1,Ne,M2n),o.Ne=function(e,t){return nve(u(e,10),u(t,10))},o.Fb=function(e){return this===e},o.Oe=function(){return new Te(this)},w(Qn,"SemiInteractiveCrossMinProcessor/lambda$2$Type",1681),b(1682,1,{},T2n),o.Ve=function(e,t){return kge(u(e,10),u(t,10))},w(Qn,"SemiInteractiveCrossMinProcessor/lambda$3$Type",1682),b(1684,1,vt,A2n),o.Kf=function(e,t){oIe(u(e,36),t)},w(Qn,"SortByInputModelProcessor",1684),b(1685,1,De,S2n),o.Mb=function(e){return u(e,12).g.c.length!=0},w(Qn,"SortByInputModelProcessor/lambda$0$Type",1685),b(1686,1,ie,l7n),o.Cd=function(e){Uje(this.a,u(e,12))},w(Qn,"SortByInputModelProcessor/lambda$1$Type",1686),b(1759,817,{},pxn),o.df=function(e){var t,i,r,c;switch(this.c=e,this.a.g){case 2:t=new Z,qt(ct(new Tn(null,new In(this.c.a.b,16)),new H2n),new FCn(this,t)),ey(this,new I2n),nu(t,new O2n),t.c.length=0,qt(ct(new Tn(null,new In(this.c.a.b,16)),new D2n),new d7n(t)),ey(this,new L2n),nu(t,new N2n),t.c.length=0,i=mTn(O$(Ub(new Tn(null,new In(this.c.a.b,16)),new b7n(this))),new $2n),qt(new Tn(null,new In(this.c.a.a,16)),new OCn(i,t)),ey(this,new F2n),nu(t,new B2n),t.c.length=0;break;case 3:r=new Z,ey(this,new P2n),c=mTn(O$(Ub(new Tn(null,new In(this.c.a.b,16)),new a7n(this))),new x2n),qt(ct(new Tn(null,new In(this.c.a.b,16)),new R2n),new LCn(c,r)),ey(this,new K2n),nu(r,new _2n),r.c.length=0;break;default:throw M(new xyn)}},o.b=0,w(di,"EdgeAwareScanlineConstraintCalculation",1759),b(1760,1,ph,P2n),o.Lb=function(e){return O(u(e,60).g,154)},o.Fb=function(e){return this===e},o.Mb=function(e){return O(u(e,60).g,154)},w(di,"EdgeAwareScanlineConstraintCalculation/lambda$0$Type",1760),b(1761,1,{},a7n),o.Ye=function(e){return AEe(this.a,u(e,60))},w(di,"EdgeAwareScanlineConstraintCalculation/lambda$1$Type",1761),b(1769,1,JA,PCn),o.de=function(){I5(this.a,this.b,-1)},o.b=0,w(di,"EdgeAwareScanlineConstraintCalculation/lambda$10$Type",1769),b(1771,1,ph,I2n),o.Lb=function(e){return O(u(e,60).g,154)},o.Fb=function(e){return this===e},o.Mb=function(e){return O(u(e,60).g,154)},w(di,"EdgeAwareScanlineConstraintCalculation/lambda$11$Type",1771),b(1772,1,ie,O2n),o.Cd=function(e){u(e,380).de()},w(di,"EdgeAwareScanlineConstraintCalculation/lambda$12$Type",1772),b(1773,1,De,D2n),o.Mb=function(e){return O(u(e,60).g,10)},w(di,"EdgeAwareScanlineConstraintCalculation/lambda$13$Type",1773),b(1775,1,ie,d7n),o.Cd=function(e){X5e(this.a,u(e,60))},w(di,"EdgeAwareScanlineConstraintCalculation/lambda$14$Type",1775),b(1774,1,JA,NCn),o.de=function(){I5(this.b,this.a,-1)},o.a=0,w(di,"EdgeAwareScanlineConstraintCalculation/lambda$15$Type",1774),b(1776,1,ph,L2n),o.Lb=function(e){return O(u(e,60).g,10)},o.Fb=function(e){return this===e},o.Mb=function(e){return O(u(e,60).g,10)},w(di,"EdgeAwareScanlineConstraintCalculation/lambda$16$Type",1776),b(1777,1,ie,N2n),o.Cd=function(e){u(e,380).de()},w(di,"EdgeAwareScanlineConstraintCalculation/lambda$17$Type",1777),b(1778,1,{},b7n),o.Ye=function(e){return SEe(this.a,u(e,60))},w(di,"EdgeAwareScanlineConstraintCalculation/lambda$18$Type",1778),b(1779,1,{},$2n),o.We=function(){return 0},w(di,"EdgeAwareScanlineConstraintCalculation/lambda$19$Type",1779),b(1762,1,{},x2n),o.We=function(){return 0},w(di,"EdgeAwareScanlineConstraintCalculation/lambda$2$Type",1762),b(1781,1,ie,OCn),o.Cd=function(e){Ybe(this.a,this.b,u(e,316))},o.a=0,w(di,"EdgeAwareScanlineConstraintCalculation/lambda$20$Type",1781),b(1780,1,JA,DCn),o.de=function(){DHn(this.a,this.b,-1)},o.b=0,w(di,"EdgeAwareScanlineConstraintCalculation/lambda$21$Type",1780),b(1782,1,ph,F2n),o.Lb=function(e){return u(e,60),!0},o.Fb=function(e){return this===e},o.Mb=function(e){return u(e,60),!0},w(di,"EdgeAwareScanlineConstraintCalculation/lambda$22$Type",1782),b(1783,1,ie,B2n),o.Cd=function(e){u(e,380).de()},w(di,"EdgeAwareScanlineConstraintCalculation/lambda$23$Type",1783),b(1763,1,De,R2n),o.Mb=function(e){return O(u(e,60).g,10)},w(di,"EdgeAwareScanlineConstraintCalculation/lambda$3$Type",1763),b(1765,1,ie,LCn),o.Cd=function(e){Zbe(this.a,this.b,u(e,60))},o.a=0,w(di,"EdgeAwareScanlineConstraintCalculation/lambda$4$Type",1765),b(1764,1,JA,$Cn),o.de=function(){I5(this.b,this.a,-1)},o.a=0,w(di,"EdgeAwareScanlineConstraintCalculation/lambda$5$Type",1764),b(1766,1,ph,K2n),o.Lb=function(e){return u(e,60),!0},o.Fb=function(e){return this===e},o.Mb=function(e){return u(e,60),!0},w(di,"EdgeAwareScanlineConstraintCalculation/lambda$6$Type",1766),b(1767,1,ie,_2n),o.Cd=function(e){u(e,380).de()},w(di,"EdgeAwareScanlineConstraintCalculation/lambda$7$Type",1767),b(1768,1,De,H2n),o.Mb=function(e){return O(u(e,60).g,154)},w(di,"EdgeAwareScanlineConstraintCalculation/lambda$8$Type",1768),b(1770,1,ie,FCn),o.Cd=function(e){pme(this.a,this.b,u(e,60))},w(di,"EdgeAwareScanlineConstraintCalculation/lambda$9$Type",1770),b(1586,1,vt,tAn),o.Kf=function(e,t){NIe(this,u(e,36),t)};var QZn;w(di,"HorizontalGraphCompactor",1586),b(1587,1,{},w7n),o.ff=function(e,t){var i,r,c;return rQ(e,t)||(i=Sg(e),r=Sg(t),i&&i.k==(Vn(),Zt)||r&&r.k==(Vn(),Zt))?0:(c=u(v(this.a.a,(W(),j2)),312),R1e(c,i?i.k:(Vn(),Mi),r?r.k:(Vn(),Mi)))},o.gf=function(e,t){var i,r,c;return rQ(e,t)?1:(i=Sg(e),r=Sg(t),c=u(v(this.a.a,(W(),j2)),312),WX(c,i?i.k:(Vn(),Mi),r?r.k:(Vn(),Mi)))},w(di,"HorizontalGraphCompactor/1",1587),b(1588,1,{},q2n),o.ef=function(e,t){return s6(),e.a.i==0},w(di,"HorizontalGraphCompactor/lambda$0$Type",1588),b(1589,1,{},g7n),o.ef=function(e,t){return Ege(this.a,e,t)},w(di,"HorizontalGraphCompactor/lambda$1$Type",1589),b(1730,1,{},zNn);var YZn,ZZn;w(di,"LGraphToCGraphTransformer",1730),b(1738,1,De,U2n),o.Mb=function(e){return e!=null},w(di,"LGraphToCGraphTransformer/0methodref$nonNull$Type",1738),b(1731,1,{},G2n),o.Kb=function(e){return xs(),Jr(v(u(u(e,60).g,10),(W(),st)))},w(di,"LGraphToCGraphTransformer/lambda$0$Type",1731),b(1732,1,{},z2n),o.Kb=function(e){return xs(),iBn(u(u(e,60).g,154))},w(di,"LGraphToCGraphTransformer/lambda$1$Type",1732),b(1741,1,De,X2n),o.Mb=function(e){return xs(),O(u(e,60).g,10)},w(di,"LGraphToCGraphTransformer/lambda$10$Type",1741),b(1742,1,ie,V2n),o.Cd=function(e){Sge(u(e,60))},w(di,"LGraphToCGraphTransformer/lambda$11$Type",1742),b(1743,1,De,W2n),o.Mb=function(e){return xs(),O(u(e,60).g,154)},w(di,"LGraphToCGraphTransformer/lambda$12$Type",1743),b(1747,1,ie,J2n),o.Cd=function(e){c5e(u(e,60))},w(di,"LGraphToCGraphTransformer/lambda$13$Type",1747),b(1744,1,ie,p7n),o.Cd=function(e){Dle(this.a,u(e,8))},o.a=0,w(di,"LGraphToCGraphTransformer/lambda$14$Type",1744),b(1745,1,ie,m7n),o.Cd=function(e){Nle(this.a,u(e,116))},o.a=0,w(di,"LGraphToCGraphTransformer/lambda$15$Type",1745),b(1746,1,ie,v7n),o.Cd=function(e){Lle(this.a,u(e,8))},o.a=0,w(di,"LGraphToCGraphTransformer/lambda$16$Type",1746),b(1748,1,{},Q2n),o.Kb=function(e){return xs(),new Tn(null,new p0(new te(re(Qt(u(e,10)).a.Kc(),new En))))},w(di,"LGraphToCGraphTransformer/lambda$17$Type",1748),b(1749,1,De,Y2n),o.Mb=function(e){return xs(),fr(u(e,18))},w(di,"LGraphToCGraphTransformer/lambda$18$Type",1749),b(1750,1,ie,k7n),o.Cd=function(e){W4e(this.a,u(e,18))},w(di,"LGraphToCGraphTransformer/lambda$19$Type",1750),b(1734,1,ie,y7n),o.Cd=function(e){jpe(this.a,u(e,154))},w(di,"LGraphToCGraphTransformer/lambda$2$Type",1734),b(1751,1,{},Z2n),o.Kb=function(e){return xs(),new Tn(null,new In(u(e,30).a,16))},w(di,"LGraphToCGraphTransformer/lambda$20$Type",1751),b(1752,1,{},npn),o.Kb=function(e){return xs(),new Tn(null,new p0(new te(re(Qt(u(e,10)).a.Kc(),new En))))},w(di,"LGraphToCGraphTransformer/lambda$21$Type",1752),b(1753,1,{},epn),o.Kb=function(e){return xs(),u(v(u(e,18),(W(),Dd)),15)},w(di,"LGraphToCGraphTransformer/lambda$22$Type",1753),b(1754,1,De,tpn),o.Mb=function(e){return K1e(u(e,15))},w(di,"LGraphToCGraphTransformer/lambda$23$Type",1754),b(1755,1,ie,j7n),o.Cd=function(e){gEe(this.a,u(e,15))},w(di,"LGraphToCGraphTransformer/lambda$24$Type",1755),b(1733,1,ie,BCn),o.Cd=function(e){v3e(this.a,this.b,u(e,154))},w(di,"LGraphToCGraphTransformer/lambda$3$Type",1733),b(1735,1,{},ipn),o.Kb=function(e){return xs(),new Tn(null,new In(u(e,30).a,16))},w(di,"LGraphToCGraphTransformer/lambda$4$Type",1735),b(1736,1,{},rpn),o.Kb=function(e){return xs(),new Tn(null,new p0(new te(re(Qt(u(e,10)).a.Kc(),new En))))},w(di,"LGraphToCGraphTransformer/lambda$5$Type",1736),b(1737,1,{},cpn),o.Kb=function(e){return xs(),u(v(u(e,18),(W(),Dd)),15)},w(di,"LGraphToCGraphTransformer/lambda$6$Type",1737),b(1739,1,ie,E7n),o.Cd=function(e){PEe(this.a,u(e,15))},w(di,"LGraphToCGraphTransformer/lambda$8$Type",1739),b(1740,1,ie,RCn),o.Cd=function(e){r1e(this.a,this.b,u(e,154))},w(di,"LGraphToCGraphTransformer/lambda$9$Type",1740),b(1729,1,{},upn),o.cf=function(e){var t,i,r,c,s;for(this.a=e,this.d=new oD,this.c=K(ion,Fn,125,this.a.a.a.c.length,0,1),this.b=0,i=new C(this.a.a.a);i.a=j&&(nn(s,Y(d)),D=y.Math.max(D,N[d-1]-g),h+=k,A+=N[d-1]-A,g=N[d-1],k=l[d]),k=y.Math.max(k,l[d]),++d;h+=k}m=y.Math.min(1/D,1/t.b/h),m>r&&(r=m,i=s)}return i},o.pg=function(){return!1},w(yh,"MSDCutIndexHeuristic",816),b(1683,1,vt,qpn),o.Kf=function(e,t){BPe(u(e,36),t)},w(yh,"SingleEdgeGraphWrapper",1683),b(232,22,{3:1,34:1,22:1,232:1},g6);var w2,dv,bv,Nw,F8,g2,wv=we(Tc,"CenterEdgeLabelPlacementStrategy",232,ke,E4e,Mde),lne;b(431,22,{3:1,34:1,22:1,431:1},Jz);var Tsn,V_,Asn=we(Tc,"ConstraintCalculationStrategy",431,ke,qge,Tde),ane;b(322,22,{3:1,34:1,22:1,322:1,188:1,196:1},_D),o.dg=function(){return K_n(this)},o.qg=function(){return K_n(this)};var pj,B8,Ssn,Psn=we(Tc,"CrossingMinimizationStrategy",322,ke,F2e,Ade),dne;b(351,22,{3:1,34:1,22:1,351:1},HD);var Isn,W_,VP,Osn=we(Tc,"CuttingStrategy",351,ke,B2e,Sde),bne;b(348,22,{3:1,34:1,22:1,348:1,188:1,196:1},l7),o.dg=function(){return IHn(this)},o.qg=function(){return IHn(this)};var Dsn,J_,gv,Q_,pv,Lsn=we(Tc,"CycleBreakingStrategy",348,ke,_3e,Pde),wne;b(428,22,{3:1,34:1,22:1,428:1},Qz);var WP,Nsn,$sn=we(Tc,"DirectionCongruency",428,ke,Hge,Ide),gne;b(460,22,{3:1,34:1,22:1,460:1},qD);var mv,Y_,p2,pne=we(Tc,"EdgeConstraint",460,ke,R2e,Fde),mne;b(283,22,{3:1,34:1,22:1,283:1},p6);var Z_,nH,eH,tH,JP,iH,xsn=we(Tc,"EdgeLabelSideSelection",283,ke,k4e,Bde),vne;b(488,22,{3:1,34:1,22:1,488:1},Yz);var QP,Fsn,Bsn=we(Tc,"EdgeStraighteningStrategy",488,ke,Jge,Rde),kne;b(281,22,{3:1,34:1,22:1,281:1},m6);var rH,Rsn,Ksn,YP,_sn,Hsn,qsn=we(Tc,"FixedAlignment",281,ke,y4e,xde),yne;b(282,22,{3:1,34:1,22:1,282:1},v6);var Usn,Gsn,zsn,Xsn,R8,Vsn,Wsn=we(Tc,"GraphCompactionStrategy",282,ke,j4e,Ode),jne;b(259,22,{3:1,34:1,22:1,259:1},Db);var vv,ZP,kv,cs,K8,nI,yv,m2,eI,_8,cH=we(Tc,"GraphProperties",259,ke,uve,Dde),Ene;b(299,22,{3:1,34:1,22:1,299:1},UD);var mj,uH,oH,sH=we(Tc,"GreedySwitchType",299,ke,K2e,Lde),Cne;b(311,22,{3:1,34:1,22:1,311:1},GD);var E3,vj,v2,Mne=we(Tc,"InLayerConstraint",311,ke,_2e,Nde),Tne;b(429,22,{3:1,34:1,22:1,429:1},Zz);var fH,Jsn,Qsn=we(Tc,"InteractiveReferencePoint",429,ke,_ge,$de),Ane,Ysn,C3,ob,tI,Zsn,nfn,iI,efn,kj,rI,H8,M3,Nl,hH,cI,gc,tfn,va,Hc,lH,aH,yj,Od,sb,T3,ifn,A3,jj,$w,kf,js,dH,k2,dt,st,rfn,cfn,ufn,ofn,sfn,bH,uI,Xu,fb,wH,S3,q8,Gf,y2,hb,j2,E2,jv,Dd,ffn,gH,pH,P3;b(171,22,{3:1,34:1,22:1,171:1},a7);var U8,ka,G8,xw,Ej,hfn=we(Tc,"LayerConstraint",171,ke,q3e,Kde),Sne;b(859,1,ps,e8n),o.hf=function(e){vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,uin),""),"Direction Congruency"),"Specifies how drawings of the same graph with different layout directions compare to each other: either a natural reading direction is preserved or the drawings are rotated versions of each other."),kfn),(l1(),Pt)),$sn),yn((gf(),xn))))),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,oin),""),"Feedback Edges"),"Whether feedback edges should be highlighted by routing around the nodes."),(_n(),!1)),yi),Gt),yn(xn)))),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,lS),""),"Interactive Reference Point"),"Determines which point of a node is considered by interactive layout phases."),Tfn),Pt),Qsn),yn(xn)))),ri(e,lS,fR,jee),ri(e,lS,h8,yee),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,sin),""),"Merge Edges"),"Edges that have no ports are merged so they touch the connected nodes at the same points. When this option is disabled, one port is created for each edge directly connected to a node. When it is enabled, all such incoming edges share an input port, and all outgoing edges share an output port."),!1),yi),Gt),yn(xn)))),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,fin),""),"Merge Hierarchy-Crossing Edges"),"If hierarchical layout is active, hierarchy-crossing edges use as few hierarchical ports as possible. They are broken by the algorithm, with hierarchical ports inserted as required. Usually, one such port is created for each edge at each hierarchy crossing point. With this option set to true, we try to create as few hierarchical ports as possible in the process. In particular, all edges that form a hyperedge can share a port."),!0),yi),Gt),yn(xn)))),vn(e,new ln(Dhe(pn(gn(mn(Sn(an(wn(dn(bn(new hn,hin),""),"Allow Non-Flow Ports To Switch Sides"),"Specifies whether non-flow ports may switch sides if their node's port constraints are either FIXED_SIDE or FIXED_ORDER. A non-flow port is a port on a side that is not part of the currently configured layout flow. For instance, given a left-to-right layout direction, north and south ports would be considered non-flow ports. Further note that the underlying criterium whether to switch sides or not solely relies on the minimization of edge crossings. Hence, edge length and other aesthetics criteria are not addressed."),!1),yi),Gt),yn(Kd)),S(T(fn,1),J,2,6,["org.eclipse.elk.layered.northOrSouthPort"])))),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,lin),""),"Port Sorting Strategy"),"Only relevant for nodes with FIXED_SIDE port constraints. Determines the way a node's ports are distributed on the sides of a node if their order is not prescribed. The option is set on parent nodes."),Nfn),Pt),qhn),yn(xn)))),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,ain),""),"Thoroughness"),"How much effort should be spent to produce a nice layout."),Y(7)),Zr),Gi),yn(xn)))),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,din),""),"Add Unnecessary Bendpoints"),"Adds bend points even if an edge does not change direction. If true, each long edge dummy will contribute a bend point to its edges and hierarchy-crossing edges will always get a bend point where they cross hierarchy boundaries. By default, bend points are only added where an edge changes direction."),!1),yi),Gt),yn(xn)))),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,bin),""),"Generate Position and Layer IDs"),"If enabled position id and layer id are generated, which are usually only used internally when setting the interactiveLayout option. This option should be specified on the root node."),!1),yi),Gt),yn(xn)))),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,fR),"cycleBreaking"),"Cycle Breaking Strategy"),"Strategy for cycle breaking. Cycle breaking looks for cycles in the graph and determines which edges to reverse to break the cycles. Reversed edges will end up pointing to the opposite direction of regular edges (that is, reversed edges will point left if edges usually point right)."),vfn),Pt),Lsn),yn(xn)))),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,Hy),LR),"Node Layering Strategy"),"Strategy for node layering."),Pfn),Pt),Ohn),yn(xn)))),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,win),LR),"Layer Constraint"),"Determines a constraint on the placement of the node regarding the layering."),Afn),Pt),hfn),yn(pi)))),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,gin),LR),"Layer Choice Constraint"),"Allows to set a constraint regarding the layer placement of a node. Let i be the value of teh constraint. Assumed the drawing has n layers and i < n. If set to i, it expresses that the node should be placed in i-th layer. Should i>=n be true then the node is placed in the last layer of the drawing. Note that this option is not part of any of ELK Layered's default configurations but is only evaluated as part of the `InteractiveLayeredGraphVisitor`, which must be applied manually or used via the `DiagramLayoutEngine."),null),Zr),Gi),yn(pi)))),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,pin),LR),"Layer ID"),"Layer identifier that was calculated by ELK Layered for a node. This is only generated if interactiveLayot or generatePositionAndLayerIds is set."),Y(-1)),Zr),Gi),yn(pi)))),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,hR),YXn),"Upper Bound On Width [MinWidth Layerer]"),"Defines a loose upper bound on the width of the MinWidth layerer. If set to '-1' multiple values are tested and the best result is selected."),Y(4)),Zr),Gi),yn(xn)))),ri(e,hR,Hy,Pee),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,lR),YXn),"Upper Layer Estimation Scaling Factor [MinWidth Layerer]"),"Multiplied with Upper Bound On Width for defining an upper bound on the width of layers which haven't been determined yet, but whose maximum width had been (roughly) estimated by the MinWidth algorithm. Compensates for too high estimations. If set to '-1' multiple values are tested and the best result is selected."),Y(2)),Zr),Gi),yn(xn)))),ri(e,lR,Hy,Oee),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,aR),ZXn),"Node Promotion Strategy"),"Reduces number of dummy nodes after layering phase (if possible)."),Sfn),Pt),Khn),yn(xn)))),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,dR),ZXn),"Max Node Promotion Iterations"),"Limits the number of iterations for node promotion."),Y(0)),Zr),Gi),yn(xn)))),ri(e,dR,aR,null),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,bR),"layering.coffmanGraham"),"Layer Bound"),"The maximum number of nodes allowed per layer."),Y(et)),Zr),Gi),yn(xn)))),ri(e,bR,Hy,Cee),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,h8),Wm),"Crossing Minimization Strategy"),"Strategy for crossing minimization."),mfn),Pt),Psn),yn(xn)))),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,min),Wm),"Force Node Model Order"),"The node order given by the model does not change to produce a better layout. E.g. if node A is before node B in the model this is not changed during crossing minimization. This assumes that the node model order is already respected before crossing minimization. This can be achieved by setting considerModelOrder.strategy to NODES_AND_EDGES."),!1),yi),Gt),yn(xn)))),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,wR),Wm),"Hierarchical Sweepiness"),"How likely it is to use cross-hierarchy (1) vs bottom-up (-1)."),.1),Qi),si),yn(xn)))),ri(e,wR,CS,Vne),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,gR),Wm),"Semi-Interactive Crossing Minimization"),"Preserves the order of nodes within a layer but still minimizes crossings between edges connecting long edge dummies. Derives the desired order from positions specified by the 'org.eclipse.elk.position' layout option. Requires a crossing minimization strategy that is able to process 'in-layer' constraints."),!1),yi),Gt),yn(xn)))),ri(e,gR,h8,nee),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,vin),Wm),"In Layer Predecessor of"),"Allows to set a constraint which specifies of which node the current node is the predecessor. If set to 's' then the node is the predecessor of 's' and is in the same layer"),null),N2),fn),yn(pi)))),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,kin),Wm),"In Layer Successor of"),"Allows to set a constraint which specifies of which node the current node is the successor. If set to 's' then the node is the successor of 's' and is in the same layer"),null),N2),fn),yn(pi)))),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,yin),Wm),"Position Choice Constraint"),"Allows to set a constraint regarding the position placement of a node in a layer. Assumed the layer in which the node placed includes n other nodes and i < n. If set to i, it expresses that the node should be placed at the i-th position. Should i>=n be true then the node is placed at the last position in the layer. Note that this option is not part of any of ELK Layered's default configurations but is only evaluated as part of the `InteractiveLayeredGraphVisitor`, which must be applied manually or used via the `DiagramLayoutEngine."),null),Zr),Gi),yn(pi)))),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,jin),Wm),"Position ID"),"Position within a layer that was determined by ELK Layered for a node. This is only generated if interactiveLayot or generatePositionAndLayerIds is set."),Y(-1)),Zr),Gi),yn(pi)))),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,Ein),nVn),"Greedy Switch Activation Threshold"),"By default it is decided automatically if the greedy switch is activated or not. The decision is based on whether the size of the input graph (without dummy nodes) is smaller than the value of this option. A '0' enforces the activation."),Y(40)),Zr),Gi),yn(xn)))),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,pR),nVn),"Greedy Switch Crossing Minimization"),"Greedy Switch strategy for crossing minimization. The greedy switch heuristic is executed after the regular crossing minimization as a post-processor. Note that if 'hierarchyHandling' is set to 'INCLUDE_CHILDREN', the 'greedySwitchHierarchical.type' option must be used."),pfn),Pt),sH),yn(xn)))),ri(e,pR,h8,zne),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,aS),"crossingMinimization.greedySwitchHierarchical"),"Greedy Switch Crossing Minimization (hierarchical)"),"Activates the greedy switch heuristic in case hierarchical layout is used. The differences to the non-hierarchical case (see 'greedySwitch.type') are: 1) greedy switch is inactive by default, 3) only the option value set on the node at which hierarchical layout starts is relevant, and 2) if it's activated by the user, it properly addresses hierarchy-crossing edges."),gfn),Pt),sH),yn(xn)))),ri(e,aS,h8,qne),ri(e,aS,CS,Une),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,r2),eVn),"Node Placement Strategy"),"Strategy for node placement."),Lfn),Pt),$hn),yn(xn)))),vn(e,new ln(pn(gn(mn(an(wn(dn(bn(new hn,dS),eVn),"Favor Straight Edges Over Balancing"),"Favor straight edges over a balanced node placement. The default behavior is determined automatically based on the used 'edgeRouting'. For an orthogonal style it is set to true, for all other styles to false."),yi),Gt),yn(xn)))),ri(e,dS,r2,Hee),ri(e,dS,r2,qee),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,mR),tVn),"BK Edge Straightening"),"Specifies whether the Brandes Koepf node placer tries to increase the number of straight edges at the expense of diagram size. There is a subtle difference to the 'favorStraightEdges' option, which decides whether a balanced placement of the nodes is desired, or not. In bk terms this means combining the four alignments into a single balanced one, or not. This option on the other hand tries to straighten additional edges during the creation of each of the four alignments."),Ifn),Pt),Bsn),yn(xn)))),ri(e,mR,r2,Bee),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,vR),tVn),"BK Fixed Alignment"),"Tells the BK node placer to use a certain alignment (out of its four) instead of the one producing the smallest height, or the combination of all four."),Ofn),Pt),qsn),yn(xn)))),ri(e,vR,r2,Kee),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,kR),"nodePlacement.linearSegments"),"Linear Segments Deflection Dampening"),"Dampens the movement of nodes to keep the diagram from getting too large."),.3),Qi),si),yn(xn)))),ri(e,kR,r2,Gee),vn(e,new ln(pn(gn(mn(an(wn(dn(bn(new hn,yR),"nodePlacement.networkSimplex"),"Node Flexibility"),"Aims at shorter and straighter edges. Two configurations are possible: (a) allow ports to move freely on the side they are assigned to (the order is always defined beforehand), (b) additionally allow to enlarge a node wherever it helps. If this option is not configured for a node, the 'nodeFlexibility.default' value is used, which is specified for the node's parent."),Pt),RH),yn(pi)))),ri(e,yR,r2,Wee),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,jR),"nodePlacement.networkSimplex.nodeFlexibility"),"Node Flexibility Default"),"Default value of the 'nodeFlexibility' option for the children of a hierarchical node."),Dfn),Pt),RH),yn(xn)))),ri(e,jR,r2,Vee),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,Cin),iVn),"Self-Loop Distribution"),"Alter the distribution of the loops around the node. It only takes effect for PortConstraints.FREE."),Efn),Pt),zhn),yn(pi)))),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,Min),iVn),"Self-Loop Ordering"),"Alter the ordering of the loops they can either be stacked or sequenced. It only takes effect for PortConstraints.FREE."),Cfn),Pt),Xhn),yn(pi)))),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,bS),"edgeRouting.splines"),"Spline Routing Mode"),"Specifies the way control points are assembled for each individual edge. CONSERVATIVE ensures that edges are properly routed around the nodes but feels rather orthogonal at times. SLOPPY uses fewer control points to obtain curvier edge routes but may result in edges overlapping nodes."),Mfn),Pt),Whn),yn(xn)))),ri(e,bS,qy,lee),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,wS),"edgeRouting.splines.sloppy"),"Sloppy Spline Layer Spacing Factor"),"Spacing factor for routing area between layers when using sloppy spline routing."),.2),Qi),si),yn(xn)))),ri(e,wS,qy,dee),ri(e,wS,bS,bee),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,ER),"edgeRouting.polyline"),"Sloped Edge Zone Width"),"Width of the strip to the left and to the right of each layer where the polyline edge router is allowed to refrain from ensuring that edges are routed horizontally. This prevents awkward bend points for nodes that extent almost to the edge of their layer."),2),Qi),si),yn(xn)))),ri(e,ER,qy,oee),vn(e,new ln(pn(gn(mn(an(wn(dn(bn(new hn,Tin),Hf),"Spacing Base Value"),"An optional base value for all other layout options of the 'spacing' group. It can be used to conveniently alter the overall 'spaciousness' of the drawing. Whenever an explicit value is set for the other layout options, this base value will have no effect. The base value is not inherited, i.e. it must be set for each hierarchical node."),Qi),si),yn(xn)))),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,Ain),Hf),"Edge Node Between Layers Spacing"),"The spacing to be preserved between nodes and edges that are routed next to the node's layer. For the spacing between nodes and edges that cross the node's layer 'spacing.edgeNode' is used."),10),Qi),si),yn(xn)))),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,Sin),Hf),"Edge Edge Between Layer Spacing"),"Spacing to be preserved between pairs of edges that are routed between the same pair of layers. Note that 'spacing.edgeEdge' is used for the spacing between pairs of edges crossing the same layer."),10),Qi),si),yn(xn)))),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,Pin),Hf),"Node Node Between Layers Spacing"),"The spacing to be preserved between any pair of nodes of two adjacent layers. Note that 'spacing.nodeNode' is used for the spacing between nodes within the layer itself."),20),Qi),si),yn(xn)))),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,Iin),Kin),"Direction Priority"),"Defines how important it is to have a certain edge point into the direction of the overall layout. This option is evaluated during the cycle breaking phase."),Y(0)),Zr),Gi),yn(Ph)))),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,Oin),Kin),"Shortness Priority"),"Defines how important it is to keep an edge as short as possible. This option is evaluated during the layering phase."),Y(0)),Zr),Gi),yn(Ph)))),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,Din),Kin),"Straightness Priority"),"Defines how important it is to keep an edge straight, i.e. aligned with one of the two axes. This option is evaluated during node placement."),Y(0)),Zr),Gi),yn(Ph)))),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,CR),_in),vXn),"Tries to further compact components (disconnected sub-graphs)."),!1),yi),Gt),yn(xn)))),ri(e,CR,c8,!0),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,Lin),rVn),"Post Compaction Strategy"),cVn),afn),Pt),Wsn),yn(xn)))),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,Nin),rVn),"Post Compaction Constraint Calculation"),cVn),lfn),Pt),Asn),yn(xn)))),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,gS),Hin),"High Degree Node Treatment"),"Makes room around high degree nodes to place leafs and trees."),!1),yi),Gt),yn(xn)))),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,MR),Hin),"High Degree Node Threshold"),"Whether a node is considered to have a high degree."),Y(16)),Zr),Gi),yn(xn)))),ri(e,MR,gS,!0),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,TR),Hin),"High Degree Node Maximum Tree Height"),"Maximum height of a subtree connected to a high degree node to be moved to separate layers."),Y(5)),Zr),Gi),yn(xn)))),ri(e,TR,gS,!0),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,Ol),qin),"Graph Wrapping Strategy"),"For certain graphs and certain prescribed drawing areas it may be desirable to split the laid out graph into chunks that are placed side by side. The edges that connect different chunks are 'wrapped' around from the end of one chunk to the start of the other chunk. The points between the chunks are referred to as 'cuts'."),Ffn),Pt),Zhn),yn(xn)))),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,pS),qin),"Additional Wrapped Edges Spacing"),"To visually separate edges that are wrapped from regularly routed edges an additional spacing value can be specified in form of this layout option. The spacing is added to the regular edgeNode spacing."),10),Qi),si),yn(xn)))),ri(e,pS,Ol,ste),ri(e,pS,Ol,fte),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,mS),qin),"Correction Factor for Wrapping"),"At times and for certain types of graphs the executed wrapping may produce results that are consistently biased in the same fashion: either wrapping to often or to rarely. This factor can be used to correct the bias. Internally, it is simply multiplied with the 'aspect ratio' layout option."),1),Qi),si),yn(xn)))),ri(e,mS,Ol,lte),ri(e,mS,Ol,ate),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,l8),uVn),"Cutting Strategy"),"The strategy by which the layer indexes are determined at which the layering crumbles into chunks."),xfn),Pt),Osn),yn(xn)))),ri(e,l8,Ol,mte),ri(e,l8,Ol,vte),vn(e,new ln(pn(gn(mn(an(wn(dn(bn(new hn,AR),uVn),"Manually Specified Cuts"),"Allows the user to specify her own cuts for a certain graph."),Xf),rs),yn(xn)))),ri(e,AR,l8,bte),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,SR),"wrapping.cutting.msd"),"MSD Freedom"),"The MSD cutting strategy starts with an initial guess on the number of chunks the graph should be split into. The freedom specifies how much the strategy may deviate from this guess. E.g. if an initial number of 3 is computed, a freedom of 1 allows 2, 3, and 4 cuts."),$fn),Zr),Gi),yn(xn)))),ri(e,SR,l8,gte),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,vS),oVn),"Validification Strategy"),"When wrapping graphs, one can specify indices that are not allowed as split points. The validification strategy makes sure every computed split point is allowed."),Bfn),Pt),Yhn),yn(xn)))),ri(e,vS,Ol,Ote),ri(e,vS,Ol,Dte),vn(e,new ln(pn(gn(mn(an(wn(dn(bn(new hn,kS),oVn),"Valid Indices for Wrapping"),null),Xf),rs),yn(xn)))),ri(e,kS,Ol,Ste),ri(e,kS,Ol,Pte),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,yS),Uin),"Improve Cuts"),"For general graphs it is important that not too many edges wrap backwards. Thus a compromise between evenly-distributed cuts and the total number of cut edges is sought."),!0),yi),Gt),yn(xn)))),ri(e,yS,Ol,Ete),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,jS),Uin),"Distance Penalty When Improving Cuts"),null),2),Qi),si),yn(xn)))),ri(e,jS,Ol,yte),ri(e,jS,yS,!0),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,PR),Uin),"Improve Wrapped Edges"),"The initial wrapping is performed in a very simple way. As a consequence, edges that wrap from one chunk to another may be unnecessarily long. Activating this option tries to shorten such edges."),!0),yi),Gt),yn(xn)))),ri(e,PR,Ol,Mte),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,$in),NR),"Edge Label Side Selection"),"Method to decide on edge label sides."),jfn),Pt),xsn),yn(xn)))),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,xin),NR),"Edge Center Label Placement Strategy"),"Determines in which layer center labels of long edges should be placed."),yfn),Pt),wv),yt(xn,S(T(Zh,1),G,170,0,[E1]))))),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,ES),a8),"Consider Model Order"),"Preserves the order of nodes and edges in the model file if this does not lead to additional edge crossings. Depending on the strategy this is not always possible since the node and edge order might be conflicting."),wfn),Pt),Hhn),yn(xn)))),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,Fin),a8),"Consider Port Order"),"If disabled the port order of output ports is derived from the edge order and input ports are ordered by their incoming connections. If enabled all ports are ordered by the port model order."),!1),yi),Gt),yn(xn)))),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,Bin),a8),"No Model Order"),"Set on a node to not set a model order for this node even though it is a real node."),!1),yi),Gt),yn(pi)))),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,IR),a8),"Consider Model Order for Components"),"If set to NONE the usual ordering strategy (by cumulative node priority and size of nodes) is used. INSIDE_PORT_SIDES orders the components with external ports only inside the groups with the same port side. FORCE_MODEL_ORDER enforces the mode order on components. This option might produce bad alignments and sub optimal drawings in terms of used area since the ordering should be respected."),dfn),Pt),Lon),yn(xn)))),ri(e,IR,c8,null),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,Rin),a8),"Long Edge Ordering Strategy"),"Indicates whether long edges are sorted under, over, or equal to nodes that have no connection to a previous layer in a left-to-right or right-to-left layout. Under and over changes to right and left in a vertical layout."),bfn),Pt),Lhn),yn(xn)))),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,OR),a8),"Crossing Counter Node Order Influence"),"Indicates with what percentage (1 for 100%) violations of the node model order are weighted against the crossings e.g. a value of 0.5 means two model order violations are as important as on edge crossing. This allows some edge crossings in favor of preserving the model order. It is advised to set this value to a very small positive value (e.g. 0.001) to have minimal crossing and a optimal node order. Defaults to no influence (0)."),0),Qi),si),yn(xn)))),ri(e,OR,ES,null),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,DR),a8),"Crossing Counter Port Order Influence"),"Indicates with what percentage (1 for 100%) violations of the port model order are weighted against the crossings e.g. a value of 0.5 means two model order violations are as important as on edge crossing. This allows some edge crossings in favor of preserving the model order. It is advised to set this value to a very small positive value (e.g. 0.001) to have minimal crossing and a optimal port order. Defaults to no influence (0)."),0),Qi),si),yn(xn)))),ri(e,DR,ES,null),Czn((new t8n,e))};var Pne,Ine,One,lfn,Dne,afn,Lne,dfn,Nne,$ne,xne,bfn,Fne,Bne,Rne,wfn,Kne,_ne,Hne,gfn,qne,Une,Gne,pfn,zne,Xne,Vne,Wne,Jne,Qne,Yne,Zne,nee,eee,mfn,tee,vfn,iee,kfn,ree,yfn,cee,jfn,uee,oee,see,Efn,fee,Cfn,hee,Mfn,lee,aee,dee,bee,wee,gee,pee,mee,vee,kee,Tfn,yee,jee,Eee,Cee,Mee,Tee,Afn,Aee,See,Pee,Iee,Oee,Dee,Lee,Sfn,Nee,Pfn,$ee,xee,Fee,Ifn,Bee,Ree,Ofn,Kee,_ee,Hee,qee,Uee,Gee,zee,Xee,Dfn,Vee,Wee,Jee,Lfn,Qee,Nfn,Yee,Zee,nte,ete,tte,ite,rte,cte,ute,ote,ste,fte,hte,lte,ate,dte,bte,wte,$fn,gte,pte,xfn,mte,vte,kte,yte,jte,Ete,Cte,Mte,Tte,Ffn,Ate,Ste,Pte,Ite,Bfn,Ote,Dte;w(Tc,"LayeredMetaDataProvider",859),b(998,1,ps,t8n),o.hf=function(e){Czn(e)};var Th,mH,oI,z8,sI,Rfn,fI,Fw,hI,Kfn,_fn,lI,vH,Yh,kH,lb,Hfn,Cj,yH,qfn,Lte,Nte,$te,aI,jH,X8,Ld,xte,Do,Ufn,Gfn,dI,EH,Ah,bI,$l,zfn,Xfn,Vfn,CH,MH,Wfn,m1,TH,Jfn,Bw,Qfn,Yfn,Zfn,wI,Rw,Nd,nhn,ehn,Fr,thn,Fte,ou,gI,ihn,rhn,chn,ya,$d,pI,uhn,ohn,mI,ab,shn,AH,V8,fhn,db,W8,vI,xd,SH,Ev,kI,Fd,hhn,lhn,ahn,Cv,dhn,Bte,Rte,Kte,_te,bb,Kw,Kt,v1,Hte,_w,bhn,Mv,whn,Hw,qte,Tv,ghn,I3,Ute,Gte,Mj,PH,phn,Tj,Vs,C2,M2,wb,Bd,yI,qw,IH,Av,Sv,gb,T2,OH,Aj,J8,Q8,zte,Xte,Vte,mhn,Wte,DH,vhn,khn,yhn,jhn,LH,Ehn,Chn,Mhn,Thn,NH,jI;w(Tc,"LayeredOptions",998),b(999,1,{},Upn),o.sf=function(){var e;return e=new Uyn,e},o.tf=function(e){},w(Tc,"LayeredOptions/LayeredFactory",999),b(1391,1,{}),o.a=0;var Jte;w(dc,"ElkSpacings/AbstractSpacingsBuilder",1391),b(792,1391,{},XY);var EI,Qte;w(Tc,"LayeredSpacings/LayeredSpacingsBuilder",792),b(265,22,{3:1,34:1,22:1,265:1,188:1,196:1},ag),o.dg=function(){return Rqn(this)},o.qg=function(){return Rqn(this)};var Pv,$H,Iv,Ahn,Shn,Phn,CI,xH,Ihn,Ohn=we(Tc,"LayeringStrategy",265,ke,xme,_de),Yte;b(390,22,{3:1,34:1,22:1,390:1},zD);var FH,Dhn,MI,Lhn=we(Tc,"LongEdgeOrderingStrategy",390,ke,H2e,Hde),Zte;b(203,22,{3:1,34:1,22:1,203:1},wC);var A2,S2,TI,BH,RH=we(Tc,"NodeFlexibility",203,ke,Qpe,qde),nie;b(323,22,{3:1,34:1,22:1,323:1,188:1,196:1},d7),o.dg=function(){return PHn(this)},o.qg=function(){return PHn(this)};var Y8,KH,_H,Z8,Nhn,$hn=we(Tc,"NodePlacementStrategy",323,ke,H3e,Ude),eie;b(243,22,{3:1,34:1,22:1,243:1},Lb);var xhn,pb,Uw,Sj,Fhn,Bhn,Pj,Rhn,AI,SI,Khn=we(Tc,"NodePromotionStrategy",243,ke,ove,Gde),tie;b(284,22,{3:1,34:1,22:1,284:1},gC);var _hn,k1,HH,qH,Hhn=we(Tc,"OrderingStrategy",284,ke,Ype,zde),iie;b(430,22,{3:1,34:1,22:1,430:1},nX);var UH,GH,qhn=we(Tc,"PortSortingStrategy",430,ke,Uge,Xde),rie;b(463,22,{3:1,34:1,22:1,463:1},XD);var Vu,Jc,n9,cie=we(Tc,"PortType",463,ke,q2e,Vde),uie;b(387,22,{3:1,34:1,22:1,387:1},VD);var Uhn,zH,Ghn,zhn=we(Tc,"SelfLoopDistributionStrategy",387,ke,U2e,Wde),oie;b(349,22,{3:1,34:1,22:1,349:1},WD);var XH,Ij,VH,Xhn=we(Tc,"SelfLoopOrderingStrategy",349,ke,G2e,Jde),sie;b(312,1,{312:1},yGn),w(Tc,"Spacings",312),b(350,22,{3:1,34:1,22:1,350:1},JD);var WH,Vhn,e9,Whn=we(Tc,"SplineRoutingMode",350,ke,z2e,Qde),fie;b(352,22,{3:1,34:1,22:1,352:1},QD);var JH,Jhn,Qhn,Yhn=we(Tc,"ValidifyStrategy",352,ke,X2e,Yde),hie;b(388,22,{3:1,34:1,22:1,388:1},YD);var Gw,QH,Ov,Zhn=we(Tc,"WrappingStrategy",388,ke,V2e,Zde),lie;b(1398,1,vr,X5n),o.rg=function(e){return u(e,36),aie},o.Kf=function(e,t){OIe(this,u(e,36),t)};var aie;w(SS,"DepthFirstCycleBreaker",1398),b(793,1,vr,dW),o.rg=function(e){return u(e,36),die},o.Kf=function(e,t){$Le(this,u(e,36),t)},o.sg=function(e){return u(sn(e,cA(this.d,e.c.length)),10)};var die;w(SS,"GreedyCycleBreaker",793),b(1401,793,vr,KMn),o.sg=function(e){var t,i,r,c;for(c=null,t=et,r=new C(e);r.a1&&(on(un(v(Hi((Ln(0,e.c.length),u(e.c[0],10))),(cn(),lb))))?HHn(e,this.d,u(this,669)):(Dn(),Yt(e,this.d)),qxn(this.e,e))},o.lg=function(e,t,i,r){var c,s,f,h,l,a,d;for(t!=uPn(i,e.length)&&(s=e[t-(i?1:-1)],HJ(this.f,s,i?(gr(),Jc):(gr(),Vu))),c=e[t][0],d=!r||c.k==(Vn(),Zt),a=If(e[t]),this.vg(a,d,!1,i),f=0,l=new C(a);l.a"),e0?DN(this.a,e[t-1],e[t]):!i&&t1&&(on(un(v(Hi((Ln(0,e.c.length),u(e.c[0],10))),(cn(),lb))))?HHn(e,this.d,this):(Dn(),Yt(e,this.d)),on(un(v(Hi((Ln(0,e.c.length),u(e.c[0],10))),lb)))||qxn(this.e,e))},w(Nu,"ModelOrderBarycenterHeuristic",669),b(1866,1,Ne,q7n),o.Ne=function(e,t){return Oje(this.a,u(e,10),u(t,10))},o.Fb=function(e){return this===e},o.Oe=function(){return new Te(this)},w(Nu,"ModelOrderBarycenterHeuristic/lambda$0$Type",1866),b(1423,1,vr,r8n),o.rg=function(e){var t;return u(e,36),t=DC(Pie),Re(t,(Vi(),Oc),(tr(),FP)),t},o.Kf=function(e,t){bge((u(e,36),t))};var Pie;w(Nu,"NoCrossingMinimizer",1423),b(809,413,Mrn,Ez),o.tg=function(e,t,i){var r,c,s,f,h,l,a,d,g,p,m;switch(g=this.g,i.g){case 1:{for(c=0,s=0,d=new C(e.j);d.a1&&(c.j==(tn(),Zn)?this.b[e]=!0:c.j==Wn&&e>0&&(this.b[e-1]=!0))},o.f=0,w(Vh,"AllCrossingsCounter",1861),b(595,1,{},ET),o.b=0,o.d=0,w(Vh,"BinaryIndexedTree",595),b(532,1,{},N7);var tln,II;w(Vh,"CrossingsCounter",532),b(1950,1,Ne,U7n),o.Ne=function(e,t){return Kbe(this.a,u(e,12),u(t,12))},o.Fb=function(e){return this===e},o.Oe=function(){return new Te(this)},w(Vh,"CrossingsCounter/lambda$0$Type",1950),b(1951,1,Ne,G7n),o.Ne=function(e,t){return _be(this.a,u(e,12),u(t,12))},o.Fb=function(e){return this===e},o.Oe=function(){return new Te(this)},w(Vh,"CrossingsCounter/lambda$1$Type",1951),b(1952,1,Ne,z7n),o.Ne=function(e,t){return Hbe(this.a,u(e,12),u(t,12))},o.Fb=function(e){return this===e},o.Oe=function(){return new Te(this)},w(Vh,"CrossingsCounter/lambda$2$Type",1952),b(1953,1,Ne,X7n),o.Ne=function(e,t){return qbe(this.a,u(e,12),u(t,12))},o.Fb=function(e){return this===e},o.Oe=function(){return new Te(this)},w(Vh,"CrossingsCounter/lambda$3$Type",1953),b(1954,1,ie,V7n),o.Cd=function(e){q4e(this.a,u(e,12))},w(Vh,"CrossingsCounter/lambda$4$Type",1954),b(1955,1,De,W7n),o.Mb=function(e){return ble(this.a,u(e,12))},w(Vh,"CrossingsCounter/lambda$5$Type",1955),b(1956,1,ie,J7n),o.Cd=function(e){OMn(this,e)},w(Vh,"CrossingsCounter/lambda$6$Type",1956),b(1957,1,ie,HCn),o.Cd=function(e){var t;k4(),V1(this.b,(t=this.a,u(e,12),t))},w(Vh,"CrossingsCounter/lambda$7$Type",1957),b(839,1,ph,YU),o.Lb=function(e){return k4(),kt(u(e,12),(W(),Xu))},o.Fb=function(e){return this===e},o.Mb=function(e){return k4(),kt(u(e,12),(W(),Xu))},w(Vh,"CrossingsCounter/lambda$8$Type",839),b(1949,1,{},Q7n),w(Vh,"HyperedgeCrossingsCounter",1949),b(478,1,{34:1,478:1},GAn),o.Fd=function(e){return H8e(this,u(e,478))},o.b=0,o.c=0,o.e=0,o.f=0;var jNe=w(Vh,"HyperedgeCrossingsCounter/Hyperedge",478);b(374,1,{34:1,374:1},CM),o.Fd=function(e){return tMe(this,u(e,374))},o.b=0,o.c=0;var Iie=w(Vh,"HyperedgeCrossingsCounter/HyperedgeCorner",374);b(531,22,{3:1,34:1,22:1,531:1},eX);var i9,r9,Oie=we(Vh,"HyperedgeCrossingsCounter/HyperedgeCorner/Type",531,ke,Gge,e0e),Die;b(1425,1,vr,c8n),o.rg=function(e){return u(v(u(e,36),(W(),Hc)),21).Hc((pr(),cs))?Lie:null},o.Kf=function(e,t){dke(this,u(e,36),t)};var Lie;w(kr,"InteractiveNodePlacer",1425),b(1426,1,vr,u8n),o.rg=function(e){return u(v(u(e,36),(W(),Hc)),21).Hc((pr(),cs))?Nie:null},o.Kf=function(e,t){Q9e(this,u(e,36),t)};var Nie,OI,DI;w(kr,"LinearSegmentsNodePlacer",1426),b(261,1,{34:1,261:1},QG),o.Fd=function(e){return The(this,u(e,261))},o.Fb=function(e){var t;return O(e,261)?(t=u(e,261),this.b==t.b):!1},o.Hb=function(){return this.b},o.Ib=function(){return"ls"+ra(this.e)},o.a=0,o.b=0,o.c=-1,o.d=-1,o.g=0;var $ie=w(kr,"LinearSegmentsNodePlacer/LinearSegment",261);b(1428,1,vr,gPn),o.rg=function(e){return u(v(u(e,36),(W(),Hc)),21).Hc((pr(),cs))?xie:null},o.Kf=function(e,t){TLe(this,u(e,36),t)},o.b=0,o.g=0;var xie;w(kr,"NetworkSimplexPlacer",1428),b(1447,1,Ne,n3n),o.Ne=function(e,t){return jc(u(e,17).a,u(t,17).a)},o.Fb=function(e){return this===e},o.Oe=function(){return new Te(this)},w(kr,"NetworkSimplexPlacer/0methodref$compare$Type",1447),b(1449,1,Ne,e3n),o.Ne=function(e,t){return jc(u(e,17).a,u(t,17).a)},o.Fb=function(e){return this===e},o.Oe=function(){return new Te(this)},w(kr,"NetworkSimplexPlacer/1methodref$compare$Type",1449),b(655,1,{655:1},qCn);var ENe=w(kr,"NetworkSimplexPlacer/EdgeRep",655);b(412,1,{412:1},XW),o.b=!1;var CNe=w(kr,"NetworkSimplexPlacer/NodeRep",412);b(515,13,{3:1,4:1,20:1,31:1,56:1,13:1,16:1,15:1,59:1,515:1},Zyn),w(kr,"NetworkSimplexPlacer/Path",515),b(1429,1,{},t3n),o.Kb=function(e){return u(e,18).d.i.k},w(kr,"NetworkSimplexPlacer/Path/lambda$0$Type",1429),b(1430,1,De,i3n),o.Mb=function(e){return u(e,273)==(Vn(),Mi)},w(kr,"NetworkSimplexPlacer/Path/lambda$1$Type",1430),b(1431,1,{},r3n),o.Kb=function(e){return u(e,18).d.i},w(kr,"NetworkSimplexPlacer/Path/lambda$2$Type",1431),b(1432,1,De,Y7n),o.Mb=function(e){return PAn(DBn(u(e,10)))},w(kr,"NetworkSimplexPlacer/Path/lambda$3$Type",1432),b(1433,1,De,c3n),o.Mb=function(e){return Cbe(u(e,12))},w(kr,"NetworkSimplexPlacer/lambda$0$Type",1433),b(1434,1,ie,UCn),o.Cd=function(e){c1e(this.a,this.b,u(e,12))},w(kr,"NetworkSimplexPlacer/lambda$1$Type",1434),b(1443,1,ie,Z7n),o.Cd=function(e){OEe(this.a,u(e,18))},w(kr,"NetworkSimplexPlacer/lambda$10$Type",1443),b(1444,1,{},u3n),o.Kb=function(e){return ko(),new Tn(null,new In(u(e,30).a,16))},w(kr,"NetworkSimplexPlacer/lambda$11$Type",1444),b(1445,1,ie,nkn),o.Cd=function(e){MAe(this.a,u(e,10))},w(kr,"NetworkSimplexPlacer/lambda$12$Type",1445),b(1446,1,{},o3n),o.Kb=function(e){return ko(),Y(u(e,125).e)},w(kr,"NetworkSimplexPlacer/lambda$13$Type",1446),b(1448,1,{},s3n),o.Kb=function(e){return ko(),Y(u(e,125).e)},w(kr,"NetworkSimplexPlacer/lambda$15$Type",1448),b(1450,1,De,f3n),o.Mb=function(e){return ko(),u(e,412).c.k==(Vn(),zt)},w(kr,"NetworkSimplexPlacer/lambda$17$Type",1450),b(1451,1,De,h3n),o.Mb=function(e){return ko(),u(e,412).c.j.c.length>1},w(kr,"NetworkSimplexPlacer/lambda$18$Type",1451),b(1452,1,ie,CIn),o.Cd=function(e){h8e(this.c,this.b,this.d,this.a,u(e,412))},o.c=0,o.d=0,w(kr,"NetworkSimplexPlacer/lambda$19$Type",1452),b(1435,1,{},l3n),o.Kb=function(e){return ko(),new Tn(null,new In(u(e,30).a,16))},w(kr,"NetworkSimplexPlacer/lambda$2$Type",1435),b(1453,1,ie,ekn),o.Cd=function(e){o1e(this.a,u(e,12))},o.a=0,w(kr,"NetworkSimplexPlacer/lambda$20$Type",1453),b(1454,1,{},a3n),o.Kb=function(e){return ko(),new Tn(null,new In(u(e,30).a,16))},w(kr,"NetworkSimplexPlacer/lambda$21$Type",1454),b(1455,1,ie,tkn),o.Cd=function(e){v1e(this.a,u(e,10))},w(kr,"NetworkSimplexPlacer/lambda$22$Type",1455),b(1456,1,De,d3n),o.Mb=function(e){return PAn(e)},w(kr,"NetworkSimplexPlacer/lambda$23$Type",1456),b(1457,1,{},b3n),o.Kb=function(e){return ko(),new Tn(null,new In(u(e,30).a,16))},w(kr,"NetworkSimplexPlacer/lambda$24$Type",1457),b(1458,1,De,ikn),o.Mb=function(e){return Sle(this.a,u(e,10))},w(kr,"NetworkSimplexPlacer/lambda$25$Type",1458),b(1459,1,ie,GCn),o.Cd=function(e){$je(this.a,this.b,u(e,10))},w(kr,"NetworkSimplexPlacer/lambda$26$Type",1459),b(1460,1,De,w3n),o.Mb=function(e){return ko(),!fr(u(e,18))},w(kr,"NetworkSimplexPlacer/lambda$27$Type",1460),b(1461,1,De,g3n),o.Mb=function(e){return ko(),!fr(u(e,18))},w(kr,"NetworkSimplexPlacer/lambda$28$Type",1461),b(1462,1,{},rkn),o.Ve=function(e,t){return u1e(this.a,u(e,30),u(t,30))},w(kr,"NetworkSimplexPlacer/lambda$29$Type",1462),b(1436,1,{},p3n),o.Kb=function(e){return ko(),new Tn(null,new p0(new te(re(Qt(u(e,10)).a.Kc(),new En))))},w(kr,"NetworkSimplexPlacer/lambda$3$Type",1436),b(1437,1,De,m3n),o.Mb=function(e){return ko(),xpe(u(e,18))},w(kr,"NetworkSimplexPlacer/lambda$4$Type",1437),b(1438,1,ie,ckn),o.Cd=function(e){NPe(this.a,u(e,18))},w(kr,"NetworkSimplexPlacer/lambda$5$Type",1438),b(1439,1,{},v3n),o.Kb=function(e){return ko(),new Tn(null,new In(u(e,30).a,16))},w(kr,"NetworkSimplexPlacer/lambda$6$Type",1439),b(1440,1,De,k3n),o.Mb=function(e){return ko(),u(e,10).k==(Vn(),zt)},w(kr,"NetworkSimplexPlacer/lambda$7$Type",1440),b(1441,1,{},y3n),o.Kb=function(e){return ko(),new Tn(null,new p0(new te(re(Cl(u(e,10)).a.Kc(),new En))))},w(kr,"NetworkSimplexPlacer/lambda$8$Type",1441),b(1442,1,De,j3n),o.Mb=function(e){return ko(),Ebe(u(e,18))},w(kr,"NetworkSimplexPlacer/lambda$9$Type",1442),b(1424,1,vr,o8n),o.rg=function(e){return u(v(u(e,36),(W(),Hc)),21).Hc((pr(),cs))?Fie:null},o.Kf=function(e,t){bIe(u(e,36),t)};var Fie;w(kr,"SimpleNodePlacer",1424),b(185,1,{185:1},Vg),o.Ib=function(){var e;return e="",this.c==(sh(),mb)?e+=f3:this.c==y1&&(e+=s3),this.o==(Sf(),Rd)?e+=_B:this.o==zf?e+="UP":e+="BALANCED",e},w(aa,"BKAlignedLayout",185),b(523,22,{3:1,34:1,22:1,523:1},tX);var y1,mb,Bie=we(aa,"BKAlignedLayout/HDirection",523,ke,Xge,t0e),Rie;b(522,22,{3:1,34:1,22:1,522:1},iX);var Rd,zf,Kie=we(aa,"BKAlignedLayout/VDirection",522,ke,Vge,i0e),_ie;b(1699,1,{},zCn),w(aa,"BKAligner",1699),b(1702,1,{},iKn),w(aa,"BKCompactor",1702),b(663,1,{663:1},E3n),o.a=0,w(aa,"BKCompactor/ClassEdge",663),b(467,1,{467:1},Jyn),o.a=null,o.b=0,w(aa,"BKCompactor/ClassNode",467),b(1427,1,vr,JCn),o.rg=function(e){return u(v(u(e,36),(W(),Hc)),21).Hc((pr(),cs))?Hie:null},o.Kf=function(e,t){ULe(this,u(e,36),t)},o.d=!1;var Hie;w(aa,"BKNodePlacer",1427),b(1700,1,{},C3n),o.d=0,w(aa,"NeighborhoodInformation",1700),b(1701,1,Ne,ukn),o.Ne=function(e,t){return mme(this,u(e,42),u(t,42))},o.Fb=function(e){return this===e},o.Oe=function(){return new Te(this)},w(aa,"NeighborhoodInformation/NeighborComparator",1701),b(823,1,{}),w(aa,"ThresholdStrategy",823),b(1825,823,{},Qyn),o.wg=function(e,t,i){return this.a.o==(Sf(),zf)?St:li},o.xg=function(){},w(aa,"ThresholdStrategy/NullThresholdStrategy",1825),b(587,1,{587:1},QCn),o.c=!1,o.d=!1,w(aa,"ThresholdStrategy/Postprocessable",587),b(1826,823,{},Yyn),o.wg=function(e,t,i){var r,c,s;return c=t==i,r=this.a.a[i.p]==t,c||r?(s=e,this.a.c==(sh(),mb)?(c&&(s=KF(this,t,!0)),!isNaN(s)&&!isFinite(s)&&r&&(s=KF(this,i,!1))):(c&&(s=KF(this,t,!0)),!isNaN(s)&&!isFinite(s)&&r&&(s=KF(this,i,!1))),s):e},o.xg=function(){for(var e,t,i,r,c;this.d.b!=0;)c=u(f2e(this.d),587),r=PUn(this,c),r.a&&(e=r.a,i=on(this.a.f[this.a.g[c.b.p].p]),!(!i&&!fr(e)&&e.c.i.c==e.d.i.c)&&(t=NHn(this,c),t||Ole(this.e,c)));for(;this.e.a.c.length!=0;)NHn(this,u($Fn(this.e),587))},w(aa,"ThresholdStrategy/SimpleThresholdStrategy",1826),b(645,1,{645:1,188:1,196:1},M3n),o.dg=function(){return Uxn(this)},o.qg=function(){return Uxn(this)};var YH;w(RR,"EdgeRouterFactory",645),b(1485,1,vr,s8n),o.rg=function(e){return eAe(u(e,36))},o.Kf=function(e,t){kIe(u(e,36),t)};var qie,Uie,Gie,zie,Xie,iln,Vie,Wie;w(RR,"OrthogonalEdgeRouter",1485),b(1478,1,vr,WCn),o.rg=function(e){return Eke(u(e,36))},o.Kf=function(e,t){UDe(this,u(e,36),t)};var Jie,Qie,Yie,Zie,Dj,nre;w(RR,"PolylineEdgeRouter",1478),b(1479,1,ph,A3n),o.Lb=function(e){return UQ(u(e,10))},o.Fb=function(e){return this===e},o.Mb=function(e){return UQ(u(e,10))},w(RR,"PolylineEdgeRouter/1",1479),b(1872,1,De,S3n),o.Mb=function(e){return u(e,132).c==(lf(),ja)},w(pf,"HyperEdgeCycleDetector/lambda$0$Type",1872),b(1873,1,{},P3n),o.Ze=function(e){return u(e,132).d},w(pf,"HyperEdgeCycleDetector/lambda$1$Type",1873),b(1874,1,De,I3n),o.Mb=function(e){return u(e,132).c==(lf(),ja)},w(pf,"HyperEdgeCycleDetector/lambda$2$Type",1874),b(1875,1,{},O3n),o.Ze=function(e){return u(e,132).d},w(pf,"HyperEdgeCycleDetector/lambda$3$Type",1875),b(1876,1,{},D3n),o.Ze=function(e){return u(e,132).d},w(pf,"HyperEdgeCycleDetector/lambda$4$Type",1876),b(1877,1,{},T3n),o.Ze=function(e){return u(e,132).d},w(pf,"HyperEdgeCycleDetector/lambda$5$Type",1877),b(118,1,{34:1,118:1},Ek),o.Fd=function(e){return Ahe(this,u(e,118))},o.Fb=function(e){var t;return O(e,118)?(t=u(e,118),this.g==t.g):!1},o.Hb=function(){return this.g},o.Ib=function(){var e,t,i,r;for(e=new mo("{"),r=new C(this.n);r.a"+this.b+" ("+z1e(this.c)+")"},o.d=0,w(pf,"HyperEdgeSegmentDependency",132),b(528,22,{3:1,34:1,22:1,528:1},rX);var ja,zw,ere=we(pf,"HyperEdgeSegmentDependency/DependencyType",528,ke,Wge,r0e),tre;b(1878,1,{},okn),w(pf,"HyperEdgeSegmentSplitter",1878),b(1879,1,{},Zjn),o.a=0,o.b=0,w(pf,"HyperEdgeSegmentSplitter/AreaRating",1879),b(339,1,{339:1},KL),o.a=0,o.b=0,o.c=0,w(pf,"HyperEdgeSegmentSplitter/FreeArea",339),b(1880,1,Ne,L3n),o.Ne=function(e,t){return zae(u(e,118),u(t,118))},o.Fb=function(e){return this===e},o.Oe=function(){return new Te(this)},w(pf,"HyperEdgeSegmentSplitter/lambda$0$Type",1880),b(1881,1,ie,MIn),o.Cd=function(e){k3e(this.a,this.d,this.c,this.b,u(e,118))},o.b=0,w(pf,"HyperEdgeSegmentSplitter/lambda$1$Type",1881),b(1882,1,{},N3n),o.Kb=function(e){return new Tn(null,new In(u(e,118).e,16))},w(pf,"HyperEdgeSegmentSplitter/lambda$2$Type",1882),b(1883,1,{},$3n),o.Kb=function(e){return new Tn(null,new In(u(e,118).j,16))},w(pf,"HyperEdgeSegmentSplitter/lambda$3$Type",1883),b(1884,1,{},x3n),o.Ye=function(e){return $(R(e))},w(pf,"HyperEdgeSegmentSplitter/lambda$4$Type",1884),b(664,1,{},lN),o.a=0,o.b=0,o.c=0,w(pf,"OrthogonalRoutingGenerator",664),b(1703,1,{},F3n),o.Kb=function(e){return new Tn(null,new In(u(e,118).e,16))},w(pf,"OrthogonalRoutingGenerator/lambda$0$Type",1703),b(1704,1,{},B3n),o.Kb=function(e){return new Tn(null,new In(u(e,118).j,16))},w(pf,"OrthogonalRoutingGenerator/lambda$1$Type",1704),b(670,1,{}),w(KR,"BaseRoutingDirectionStrategy",670),b(1870,670,{},tjn),o.yg=function(e,t,i){var r,c,s,f,h,l,a,d,g,p,m,k,j;if(!(e.r&&!e.q))for(d=t+e.o*i,a=new C(e.n);a.avh&&(s=d,c=e,r=new V(g,s),xe(f.a,r),q0(this,f,c,r,!1),p=e.r,p&&(m=$(R(Zo(p.e,0))),r=new V(m,s),xe(f.a,r),q0(this,f,c,r,!1),s=t+p.o*i,c=p,r=new V(m,s),xe(f.a,r),q0(this,f,c,r,!1)),r=new V(j,s),xe(f.a,r),q0(this,f,c,r,!1)))},o.zg=function(e){return e.i.n.a+e.n.a+e.a.a},o.Ag=function(){return tn(),ae},o.Bg=function(){return tn(),Xn},w(KR,"NorthToSouthRoutingStrategy",1870),b(1871,670,{},ijn),o.yg=function(e,t,i){var r,c,s,f,h,l,a,d,g,p,m,k,j;if(!(e.r&&!e.q))for(d=t-e.o*i,a=new C(e.n);a.avh&&(s=d,c=e,r=new V(g,s),xe(f.a,r),q0(this,f,c,r,!1),p=e.r,p&&(m=$(R(Zo(p.e,0))),r=new V(m,s),xe(f.a,r),q0(this,f,c,r,!1),s=t-p.o*i,c=p,r=new V(m,s),xe(f.a,r),q0(this,f,c,r,!1)),r=new V(j,s),xe(f.a,r),q0(this,f,c,r,!1)))},o.zg=function(e){return e.i.n.a+e.n.a+e.a.a},o.Ag=function(){return tn(),Xn},o.Bg=function(){return tn(),ae},w(KR,"SouthToNorthRoutingStrategy",1871),b(1869,670,{},rjn),o.yg=function(e,t,i){var r,c,s,f,h,l,a,d,g,p,m,k,j;if(!(e.r&&!e.q))for(d=t+e.o*i,a=new C(e.n);a.avh&&(s=d,c=e,r=new V(s,g),xe(f.a,r),q0(this,f,c,r,!0),p=e.r,p&&(m=$(R(Zo(p.e,0))),r=new V(s,m),xe(f.a,r),q0(this,f,c,r,!0),s=t+p.o*i,c=p,r=new V(s,m),xe(f.a,r),q0(this,f,c,r,!0)),r=new V(s,j),xe(f.a,r),q0(this,f,c,r,!0)))},o.zg=function(e){return e.i.n.b+e.n.b+e.a.b},o.Ag=function(){return tn(),Zn},o.Bg=function(){return tn(),Wn},w(KR,"WestToEastRoutingStrategy",1869),b(828,1,{},Hen),o.Ib=function(){return ra(this.a)},o.b=0,o.c=!1,o.d=!1,o.f=0,w(jw,"NubSpline",828),b(418,1,{418:1},dqn,iOn),w(jw,"NubSpline/PolarCP",418),b(1480,1,vr,WRn),o.rg=function(e){return aye(u(e,36))},o.Kf=function(e,t){fLe(this,u(e,36),t)};var ire,rre,cre,ure,ore;w(jw,"SplineEdgeRouter",1480),b(274,1,{274:1},XM),o.Ib=function(){return this.a+" ->("+this.c+") "+this.b},o.c=0,w(jw,"SplineEdgeRouter/Dependency",274),b(465,22,{3:1,34:1,22:1,465:1},cX);var Ea,P2,sre=we(jw,"SplineEdgeRouter/SideToProcess",465,ke,e2e,c0e),fre;b(1481,1,De,R3n),o.Mb=function(e){return _5(),!u(e,131).o},w(jw,"SplineEdgeRouter/lambda$0$Type",1481),b(1482,1,{},K3n),o.Ze=function(e){return _5(),u(e,131).v+1},w(jw,"SplineEdgeRouter/lambda$1$Type",1482),b(1483,1,ie,YCn),o.Cd=function(e){Abe(this.a,this.b,u(e,42))},w(jw,"SplineEdgeRouter/lambda$2$Type",1483),b(1484,1,ie,ZCn),o.Cd=function(e){Sbe(this.a,this.b,u(e,42))},w(jw,"SplineEdgeRouter/lambda$3$Type",1484),b(131,1,{34:1,131:1},A_n,Ven),o.Fd=function(e){return Ihe(this,u(e,131))},o.b=0,o.e=!1,o.f=0,o.g=0,o.j=!1,o.k=!1,o.n=0,o.o=!1,o.p=!1,o.q=!1,o.s=0,o.u=0,o.v=0,o.F=0,w(jw,"SplineSegment",131),b(468,1,{468:1},_3n),o.a=0,o.b=!1,o.c=!1,o.d=!1,o.e=!1,o.f=0,w(jw,"SplineSegment/EdgeInformation",468),b(1198,1,{},H3n),w(Ll,Gtn,1198),b(1199,1,Ne,q3n),o.Ne=function(e,t){return VEe(u(e,121),u(t,121))},o.Fb=function(e){return this===e},o.Oe=function(){return new Te(this)},w(Ll,EXn,1199),b(1197,1,{},wEn),w(Ll,"MrTree",1197),b(405,22,{3:1,34:1,22:1,405:1,188:1,196:1},pC),o.dg=function(){return V_n(this)},o.qg=function(){return V_n(this)};var LI,c9,u9,o9,rln=we(Ll,"TreeLayoutPhases",405,ke,i3e,u0e),hre;b(1112,205,yd,qAn),o.rf=function(e,t){var i,r,c,s,f,h,l,a;for(on(un(z(e,(lc(),Pln))))||W7((i=new Vv((c0(),new Qd(e))),i)),f=t.eh(qR),f.Ug("build tGraph",1),h=(l=new rk,Ur(l,e),U(l,(pt(),f9),e),a=new de,KSe(e,l,a),cPe(e,l,a),l),f.Vg(),f=t.eh(qR),f.Ug("Split graph",1),s=zSe(this.a,h),f.Vg(),c=new C(s);c.a"+td(this.c):"e_"+mt(this)},w(d8,"TEdge",65),b(121,137,{3:1,121:1,96:1,137:1},rk),o.Ib=function(){var e,t,i,r,c;for(c=null,r=ge(this.b,0);r.b!=r.d.c;)i=u(be(r),40),c+=(i.c==null||i.c.length==0?"n_"+i.g:"n_"+i.c)+` +`;for(t=ge(this.a,0);t.b!=t.d.c;)e=u(be(t),65),c+=(e.b&&e.c?td(e.b)+"->"+td(e.c):"e_"+mt(e))+` +`;return c};var MNe=w(d8,"TGraph",121);b(643,508,{3:1,508:1,643:1,96:1,137:1}),w(d8,"TShape",643),b(40,643,{3:1,508:1,40:1,643:1,96:1,137:1},q$),o.Ib=function(){return td(this)};var NI=w(d8,"TNode",40);b(236,1,qh,sl),o.Jc=function(e){qi(this,e)},o.Kc=function(){var e;return e=ge(this.a.d,0),new sg(e)},w(d8,"TNode/2",236),b(329,1,Si,sg),o.Nb=function(e){_i(this,e)},o.Pb=function(){return u(be(this.a),65).c},o.Ob=function(){return Z9(this.a)},o.Qb=function(){p$(this.a)},w(d8,"TNode/2/1",329),b(1923,1,vt,J3n),o.Kf=function(e,t){RLe(this,u(e,121),t)},w(Rc,"CompactionProcessor",1923),b(1924,1,Ne,akn),o.Ne=function(e,t){return Tve(this.a,u(e,40),u(t,40))},o.Fb=function(e){return this===e},o.Oe=function(){return new Te(this)},w(Rc,"CompactionProcessor/lambda$0$Type",1924),b(1925,1,De,eMn),o.Mb=function(e){return Dge(this.b,this.a,u(e,42))},o.a=0,o.b=0,w(Rc,"CompactionProcessor/lambda$1$Type",1925),b(1934,1,Ne,Q3n),o.Ne=function(e,t){return Ewe(u(e,40),u(t,40))},o.Fb=function(e){return this===e},o.Oe=function(){return new Te(this)},w(Rc,"CompactionProcessor/lambda$10$Type",1934),b(1935,1,Ne,Y3n),o.Ne=function(e,t){return F1e(u(e,40),u(t,40))},o.Fb=function(e){return this===e},o.Oe=function(){return new Te(this)},w(Rc,"CompactionProcessor/lambda$11$Type",1935),b(1936,1,Ne,Z3n),o.Ne=function(e,t){return Cwe(u(e,40),u(t,40))},o.Fb=function(e){return this===e},o.Oe=function(){return new Te(this)},w(Rc,"CompactionProcessor/lambda$12$Type",1936),b(1926,1,De,dkn),o.Mb=function(e){return k1e(this.a,u(e,42))},o.a=0,w(Rc,"CompactionProcessor/lambda$2$Type",1926),b(1927,1,De,bkn),o.Mb=function(e){return y1e(this.a,u(e,42))},o.a=0,w(Rc,"CompactionProcessor/lambda$3$Type",1927),b(1928,1,De,n4n),o.Mb=function(e){return u(e,40).c.indexOf(IS)==-1},w(Rc,"CompactionProcessor/lambda$4$Type",1928),b(1929,1,{},wkn),o.Kb=function(e){return Npe(this.a,u(e,40))},o.a=0,w(Rc,"CompactionProcessor/lambda$5$Type",1929),b(1930,1,{},gkn),o.Kb=function(e){return H4e(this.a,u(e,40))},o.a=0,w(Rc,"CompactionProcessor/lambda$6$Type",1930),b(1931,1,Ne,pkn),o.Ne=function(e,t){return Z3e(this.a,u(e,240),u(t,240))},o.Fb=function(e){return this===e},o.Oe=function(){return new Te(this)},w(Rc,"CompactionProcessor/lambda$7$Type",1931),b(1932,1,Ne,mkn),o.Ne=function(e,t){return n4e(this.a,u(e,40),u(t,40))},o.Fb=function(e){return this===e},o.Oe=function(){return new Te(this)},w(Rc,"CompactionProcessor/lambda$8$Type",1932),b(1933,1,Ne,e4n),o.Ne=function(e,t){return B1e(u(e,40),u(t,40))},o.Fb=function(e){return this===e},o.Oe=function(){return new Te(this)},w(Rc,"CompactionProcessor/lambda$9$Type",1933),b(1921,1,vt,t4n),o.Kf=function(e,t){$Ae(u(e,121),t)},w(Rc,"DirectionProcessor",1921),b(1913,1,vt,HAn),o.Kf=function(e,t){iPe(this,u(e,121),t)},w(Rc,"FanProcessor",1913),b(1937,1,vt,i4n),o.Kf=function(e,t){EAe(u(e,121),t)},w(Rc,"GraphBoundsProcessor",1937),b(1938,1,{},r4n),o.Ye=function(e){return u(e,40).e.a},w(Rc,"GraphBoundsProcessor/lambda$0$Type",1938),b(1939,1,{},c4n),o.Ye=function(e){return u(e,40).e.b},w(Rc,"GraphBoundsProcessor/lambda$1$Type",1939),b(1940,1,{},u4n),o.Ye=function(e){return ile(u(e,40))},w(Rc,"GraphBoundsProcessor/lambda$2$Type",1940),b(1941,1,{},o4n),o.Ye=function(e){return tle(u(e,40))},w(Rc,"GraphBoundsProcessor/lambda$3$Type",1941),b(262,22,{3:1,34:1,22:1,262:1,196:1},u0),o.dg=function(){switch(this.g){case 0:return new mjn;case 1:return new HAn;case 2:return new pjn;case 3:return new a4n;case 4:return new f4n;case 8:return new s4n;case 5:return new t4n;case 6:return new b4n;case 7:return new J3n;case 9:return new i4n;case 10:return new w4n;default:throw M(new Gn(cR+(this.f!=null?this.f:""+this.g)))}};var cln,uln,oln,sln,fln,hln,lln,aln,dln,bln,ZH,TNe=we(Rc,uR,262,ke,xxn,o0e),lre;b(1920,1,vt,s4n),o.Kf=function(e,t){xDe(u(e,121),t)},w(Rc,"LevelCoordinatesProcessor",1920),b(1918,1,vt,f4n),o.Kf=function(e,t){iTe(this,u(e,121),t)},o.a=0,w(Rc,"LevelHeightProcessor",1918),b(1919,1,qh,h4n),o.Jc=function(e){qi(this,e)},o.Kc=function(){return Dn(),l4(),fv},w(Rc,"LevelHeightProcessor/1",1919),b(1914,1,vt,pjn),o.Kf=function(e,t){pAe(this,u(e,121),t)},w(Rc,"LevelProcessor",1914),b(1915,1,De,l4n),o.Mb=function(e){return on(un(v(u(e,40),(pt(),Ca))))},w(Rc,"LevelProcessor/lambda$0$Type",1915),b(1916,1,vt,a4n),o.Kf=function(e,t){nEe(this,u(e,121),t)},o.a=0,w(Rc,"NeighborsProcessor",1916),b(1917,1,qh,d4n),o.Jc=function(e){qi(this,e)},o.Kc=function(){return Dn(),l4(),fv},w(Rc,"NeighborsProcessor/1",1917),b(1922,1,vt,b4n),o.Kf=function(e,t){tPe(this,u(e,121),t)},o.a=0,w(Rc,"NodePositionProcessor",1922),b(1912,1,vt,mjn),o.Kf=function(e,t){BIe(this,u(e,121),t)},w(Rc,"RootProcessor",1912),b(1942,1,vt,w4n),o.Kf=function(e,t){N9e(u(e,121),t)},w(Rc,"Untreeifyer",1942),b(392,22,{3:1,34:1,22:1,392:1},eL);var Lj,nq,wln,gln=we(Gy,"EdgeRoutingMode",392,ke,J2e,s0e),are,Nj,Dv,eq,pln,mln,tq,iq,vln,rq,kln,cq,s9,uq,$I,xI,Ws,yf,Lv,f9,h9,j1,yln,dre,oq,Ca,$j,xj;b(862,1,ps,f8n),o.hf=function(e){vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,Srn),""),wVn),"Turns on Tree compaction which decreases the size of the whole tree by placing nodes of multiple levels in one large level"),(_n(),!1)),(l1(),yi)),Gt),yn((gf(),xn))))),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,Prn),""),"Edge End Texture Length"),"Should be set to the length of the texture at the end of an edge. This value can be used to improve the Edge Routing."),7),Qi),si),yn(xn)))),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,Irn),""),"Tree Level"),"The index for the tree level the node is in"),Y(0)),Zr),Gi),yn(pi)))),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,Orn),""),wVn),"When set to a positive number this option will force the algorithm to place the node to the specified position within the trees layer if weighting is set to constraint"),Y(-1)),Zr),Gi),yn(pi)))),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,Drn),""),"Weighting of Nodes"),"Which weighting to use when computing a node order."),Cln),Pt),xln),yn(xn)))),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,Lrn),""),"Edge Routing Mode"),"Chooses an Edge Routing algorithm."),jln),Pt),gln),yn(xn)))),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,Nrn),""),"Search Order"),"Which search order to use when computing a spanning tree."),Eln),Pt),Bln),yn(xn)))),rzn((new a8n,e))};var bre,wre,gre,jln,pre,mre,Eln,vre,kre,Cln;w(Gy,"MrTreeMetaDataProvider",862),b(1006,1,ps,a8n),o.hf=function(e){rzn(e)};var yre,Mln,Tln,vb,Aln,Sln,sq,jre,Ere,Cre,Mre,Tre,Are,Sre,Pln,Iln,Oln,Pre,I2,FI,Dln,Ire,Lln,fq,Ore,Dre,Lre,Nln,Nre,Sh,$ln;w(Gy,"MrTreeOptions",1006),b(1007,1,{},g4n),o.sf=function(){var e;return e=new qAn,e},o.tf=function(e){},w(Gy,"MrTreeOptions/MrtreeFactory",1007),b(353,22,{3:1,34:1,22:1,353:1},mC);var hq,BI,lq,aq,xln=we(Gy,"OrderWeighting",353,ke,r3e,f0e),$re;b(433,22,{3:1,34:1,22:1,433:1},uX);var Fln,dq,Bln=we(Gy,"TreeifyingOrder",433,ke,Zge,h0e),xre;b(1486,1,vr,d8n),o.rg=function(e){return u(e,121),Fre},o.Kf=function(e,t){bve(this,u(e,121),t)};var Fre;w("org.eclipse.elk.alg.mrtree.p1treeify","DFSTreeifyer",1486),b(1487,1,vr,b8n),o.rg=function(e){return u(e,121),Bre},o.Kf=function(e,t){yAe(this,u(e,121),t)};var Bre;w(Jm,"NodeOrderer",1487),b(1494,1,{},_se),o.td=function(e){return WSn(e)},w(Jm,"NodeOrderer/0methodref$lambda$6$Type",1494),b(1488,1,De,D4n),o.Mb=function(e){return _p(),on(un(v(u(e,40),(pt(),Ca))))},w(Jm,"NodeOrderer/lambda$0$Type",1488),b(1489,1,De,L4n),o.Mb=function(e){return _p(),u(v(u(e,40),(lc(),I2)),17).a<0},w(Jm,"NodeOrderer/lambda$1$Type",1489),b(1490,1,De,kkn),o.Mb=function(e){return qme(this.a,u(e,40))},w(Jm,"NodeOrderer/lambda$2$Type",1490),b(1491,1,De,vkn),o.Mb=function(e){return Fpe(this.a,u(e,40))},w(Jm,"NodeOrderer/lambda$3$Type",1491),b(1492,1,Ne,N4n),o.Ne=function(e,t){return ame(u(e,40),u(t,40))},o.Fb=function(e){return this===e},o.Oe=function(){return new Te(this)},w(Jm,"NodeOrderer/lambda$4$Type",1492),b(1493,1,De,$4n),o.Mb=function(e){return _p(),u(v(u(e,40),(pt(),iq)),17).a!=0},w(Jm,"NodeOrderer/lambda$5$Type",1493),b(1495,1,vr,l8n),o.rg=function(e){return u(e,121),Rre},o.Kf=function(e,t){PSe(this,u(e,121),t)},o.b=0;var Rre;w("org.eclipse.elk.alg.mrtree.p3place","NodePlacer",1495),b(1496,1,vr,h8n),o.rg=function(e){return u(e,121),Kre},o.Kf=function(e,t){lSe(u(e,121),t)};var Kre,ANe=w(po,"EdgeRouter",1496);b(1498,1,Ne,O4n),o.Ne=function(e,t){return jc(u(e,17).a,u(t,17).a)},o.Fb=function(e){return this===e},o.Oe=function(){return new Te(this)},w(po,"EdgeRouter/0methodref$compare$Type",1498),b(1503,1,{},m4n),o.Ye=function(e){return $(R(e))},w(po,"EdgeRouter/1methodref$doubleValue$Type",1503),b(1505,1,Ne,v4n),o.Ne=function(e,t){return bt($(R(e)),$(R(t)))},o.Fb=function(e){return this===e},o.Oe=function(){return new Te(this)},w(po,"EdgeRouter/2methodref$compare$Type",1505),b(1507,1,Ne,k4n),o.Ne=function(e,t){return bt($(R(e)),$(R(t)))},o.Fb=function(e){return this===e},o.Oe=function(){return new Te(this)},w(po,"EdgeRouter/3methodref$compare$Type",1507),b(1509,1,{},p4n),o.Ye=function(e){return $(R(e))},w(po,"EdgeRouter/4methodref$doubleValue$Type",1509),b(1511,1,Ne,y4n),o.Ne=function(e,t){return bt($(R(e)),$(R(t)))},o.Fb=function(e){return this===e},o.Oe=function(){return new Te(this)},w(po,"EdgeRouter/5methodref$compare$Type",1511),b(1513,1,Ne,j4n),o.Ne=function(e,t){return bt($(R(e)),$(R(t)))},o.Fb=function(e){return this===e},o.Oe=function(){return new Te(this)},w(po,"EdgeRouter/6methodref$compare$Type",1513),b(1497,1,{},E4n),o.Kb=function(e){return kl(),u(v(u(e,40),(lc(),Sh)),17)},w(po,"EdgeRouter/lambda$0$Type",1497),b(1508,1,{},C4n),o.Kb=function(e){return Q1e(u(e,40))},w(po,"EdgeRouter/lambda$11$Type",1508),b(1510,1,{},tMn),o.Kb=function(e){return Mbe(this.b,this.a,u(e,40))},o.a=0,o.b=0,w(po,"EdgeRouter/lambda$13$Type",1510),b(1512,1,{},iMn),o.Kb=function(e){return Y1e(this.b,this.a,u(e,40))},o.a=0,o.b=0,w(po,"EdgeRouter/lambda$15$Type",1512),b(1514,1,Ne,M4n),o.Ne=function(e,t){return h9e(u(e,65),u(t,65))},o.Fb=function(e){return this===e},o.Oe=function(){return new Te(this)},w(po,"EdgeRouter/lambda$17$Type",1514),b(1515,1,Ne,T4n),o.Ne=function(e,t){return l9e(u(e,65),u(t,65))},o.Fb=function(e){return this===e},o.Oe=function(){return new Te(this)},w(po,"EdgeRouter/lambda$18$Type",1515),b(1516,1,Ne,A4n),o.Ne=function(e,t){return d9e(u(e,65),u(t,65))},o.Fb=function(e){return this===e},o.Oe=function(){return new Te(this)},w(po,"EdgeRouter/lambda$19$Type",1516),b(1499,1,De,ykn),o.Mb=function(e){return b2e(this.a,u(e,40))},o.a=0,w(po,"EdgeRouter/lambda$2$Type",1499),b(1517,1,Ne,S4n),o.Ne=function(e,t){return a9e(u(e,65),u(t,65))},o.Fb=function(e){return this===e},o.Oe=function(){return new Te(this)},w(po,"EdgeRouter/lambda$20$Type",1517),b(1500,1,Ne,P4n),o.Ne=function(e,t){return lbe(u(e,40),u(t,40))},o.Fb=function(e){return this===e},o.Oe=function(){return new Te(this)},w(po,"EdgeRouter/lambda$3$Type",1500),b(1501,1,Ne,I4n),o.Ne=function(e,t){return abe(u(e,40),u(t,40))},o.Fb=function(e){return this===e},o.Oe=function(){return new Te(this)},w(po,"EdgeRouter/lambda$4$Type",1501),b(1502,1,{},x4n),o.Kb=function(e){return Z1e(u(e,40))},w(po,"EdgeRouter/lambda$5$Type",1502),b(1504,1,{},rMn),o.Kb=function(e){return Tbe(this.b,this.a,u(e,40))},o.a=0,o.b=0,w(po,"EdgeRouter/lambda$7$Type",1504),b(1506,1,{},cMn),o.Kb=function(e){return nae(this.b,this.a,u(e,40))},o.a=0,o.b=0,w(po,"EdgeRouter/lambda$9$Type",1506),b(675,1,{675:1},FRn),o.e=0,o.f=!1,o.g=!1,w(po,"MultiLevelEdgeNodeNodeGap",675),b(1943,1,Ne,F4n),o.Ne=function(e,t){return C2e(u(e,240),u(t,240))},o.Fb=function(e){return this===e},o.Oe=function(){return new Te(this)},w(po,"MultiLevelEdgeNodeNodeGap/lambda$0$Type",1943),b(1944,1,Ne,B4n),o.Ne=function(e,t){return M2e(u(e,240),u(t,240))},o.Fb=function(e){return this===e},o.Oe=function(){return new Te(this)},w(po,"MultiLevelEdgeNodeNodeGap/lambda$1$Type",1944);var O2;b(501,22,{3:1,34:1,22:1,501:1,188:1,196:1},oX),o.dg=function(){return EBn(this)},o.qg=function(){return EBn(this)};var RI,D2,Rln=we($rn,"RadialLayoutPhases",501,ke,zge,l0e),_re;b(1113,205,yd,bEn),o.rf=function(e,t){var i,r,c,s,f,h;if(i=sqn(this,e),t.Ug("Radial layout",i.c.length),on(un(z(e,(ua(),Jln))))||W7((r=new Vv((c0(),new Qd(e))),r)),h=wye(e),ht(e,(Mg(),O2),h),!h)throw M(new Gn("The given graph is not a tree!"));for(c=$(R(z(e,HI))),c==0&&(c=H_n(e)),ht(e,HI,c),f=new C(sqn(this,e));f.a=3)for(X=u(L(N,0),27),en=u(L(N,1),27),s=0;s+2=X.f+en.f+d||en.f>=H.f+X.f+d){jn=!0;break}else++s;else jn=!0;if(!jn){for(p=N.i,h=new ne(N);h.e!=h.i.gc();)f=u(ce(h),27),ht(f,(qe(),Jj),Y(p)),--p;BUn(e,new up),t.Vg();return}for(i=(U7(this.a),ff(this.a,(XT(),Bj),u(z(e,M1n),188)),ff(this.a,qI,u(z(e,v1n),188)),ff(this.a,Mq,u(z(e,j1n),188)),MX(this.a,(Rn=new ii,Re(Rn,Bj,(rA(),Sq)),Re(Rn,qI,Aq),on(un(z(e,p1n)))&&Re(Rn,Bj,Tq),Rn)),gy(this.a,e)),a=1/i.c.length,k=new C(i);k.a0&&XFn((zn(t-1,e.length),e.charCodeAt(t-1)),NXn);)--t;if(r>=t)throw M(new Gn("The given string does not contain any numbers."));if(c=ww((Fi(r,t,e.length),e.substr(r,t-r)),`,|;|\r| +`),c.length!=2)throw M(new Gn("Exactly two numbers are expected, "+c.length+" were found."));try{this.a=sw(fw(c[0])),this.b=sw(fw(c[1]))}catch(s){throw s=It(s),O(s,130)?(i=s,M(new Gn($Xn+i))):M(s)}},o.Ib=function(){return"("+this.a+","+this.b+")"},o.a=0,o.b=0;var Ei=w(Ky,"KVector",8);b(75,67,{3:1,4:1,20:1,31:1,56:1,16:1,67:1,15:1,75:1,423:1},Mu,GE,aAn),o.Pc=function(){return O6e(this)},o.cg=function(e){var t,i,r,c,s,f;r=ww(e,`,|;|\\(|\\)|\\[|\\]|\\{|\\}| | | +`),vo(this);try{for(i=0,s=0,c=0,f=0;i0&&(s%2==0?c=sw(r[i]):f=sw(r[i]),s>0&&s%2!=0&&xe(this,new V(c,f)),++s),++i}catch(h){throw h=It(h),O(h,130)?(t=h,M(new Gn("The given string does not match the expected format for vectors."+t))):M(h)}},o.Ib=function(){var e,t,i;for(e=new mo("("),t=ge(this,0);t.b!=t.d.c;)i=u(be(t),8),Be(e,i.a+","+i.b),t.b!=t.d.c&&(e.a+="; ");return(e.a+=")",e).a};var san=w(Ky,"KVectorChain",75);b(255,22,{3:1,34:1,22:1,255:1},k6);var Vq,ZI,nO,qj,Uj,eO,fan=we(uo,"Alignment",255,ke,S4e,$0e),yue;b(991,1,ps,E8n),o.hf=function(e){yUn(e)};var han,Wq,jue,lan,aan,Eue,dan,Cue,Mue,ban,wan,Tue;w(uo,"BoxLayouterOptions",991),b(992,1,{},zmn),o.sf=function(){var e;return e=new Wmn,e},o.tf=function(e){},w(uo,"BoxLayouterOptions/BoxFactory",992),b(298,22,{3:1,34:1,22:1,298:1},y6);var m9,Jq,v9,k9,y9,Qq,Yq=we(uo,"ContentAlignment",298,ke,P4e,x0e),Aue;b(699,1,ps,cG),o.hf=function(e){vn(e,new ln(pn(gn(mn(an(wn(dn(bn(new hn,xVn),""),"Layout Algorithm"),"Select a specific layout algorithm."),(l1(),N2)),fn),yn((gf(),xn))))),vn(e,new ln(pn(gn(mn(an(wn(dn(bn(new hn,FVn),""),"Resolved Layout Algorithm"),"Meta data associated with the selected algorithm."),Xf),INe),yn(xn)))),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,rrn),""),"Alignment"),"Alignment of the selected node relative to other nodes; the exact meaning depends on the used algorithm."),gan),Pt),fan),yn(pi)))),vn(e,new ln(pn(gn(mn(an(wn(dn(bn(new hn,l3),""),"Aspect Ratio"),"The desired aspect ratio of the drawing, that is the quotient of width by height."),Qi),si),yn(xn)))),vn(e,new ln(pn(gn(mn(an(wn(dn(bn(new hn,pcn),""),"Bend Points"),"A fixed list of bend points for the edge. This is used by the 'Fixed Layout' algorithm to specify a pre-defined routing for an edge. The vector chain must include the source point, any bend points, and the target point, so it must have at least two points."),Xf),san),yn(Ph)))),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,MS),""),"Content Alignment"),"Specifies how the content of a node are aligned. Each node can individually control the alignment of its contents. I.e. if a node should be aligned top left in its parent node, the parent node should specify that option."),man),L3),Yq),yn(xn)))),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,Uy),""),"Debug Mode"),"Whether additional debug information shall be generated."),(_n(),!1)),yi),Gt),yn(xn)))),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,xR),""),Btn),"Overall direction of edges: horizontal (right / left) or vertical (down / up)."),van),Pt),E9),yn(xn)))),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,qy),""),"Edge Routing"),"What kind of edge routing style should be applied for the content of a parent node. Algorithms may also set this option to single edges in order to mark them as splines. The bend point list of edges with this option set to SPLINES must be interpreted as control points for a piecewise cubic spline."),jan),Pt),aU),yn(xn)))),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,wcn),""),"Expand Nodes"),"If active, nodes are expanded to fill the area of their parent."),!1),yi),Gt),yn(xn)))),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,CS),""),"Hierarchy Handling"),"Determines whether separate layout runs are triggered for different compound nodes in a hierarchical graph. Setting a node's hierarchy handling to `INCLUDE_CHILDREN` will lay out that node and all of its descendants in a single layout run, until a descendant is encountered which has its hierarchy handling set to `SEPARATE_CHILDREN`. In general, `SEPARATE_CHILDREN` will ensure that a new layout run is triggered for a node with that setting. Including multiple levels of hierarchy in a single layout run may allow cross-hierarchical edges to be laid out properly. If the root node is set to `INHERIT` (or not set at all), the default behavior is `SEPARATE_CHILDREN`."),Man),Pt),ldn),yt(xn,S(T(Zh,1),G,170,0,[pi]))))),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,W0),""),"Padding"),"The padding to be left to a parent element's border when placing child elements. This can also serve as an output option of a layout algorithm if node size calculation is setup appropriately."),Nan),Xf),$on),yt(xn,S(T(Zh,1),G,170,0,[pi]))))),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,u8),""),"Interactive"),"Whether the algorithm should be run in interactive mode for the content of a parent node. What this means exactly depends on how the specific algorithm interprets this option. Usually in the interactive mode algorithms try to modify the current layout as little as possible."),!1),yi),Gt),yn(xn)))),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,AS),""),"interactive Layout"),"Whether the graph should be changeable interactively and by setting constraints"),!1),yi),Gt),yn(xn)))),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,o8),""),"Omit Node Micro Layout"),"Node micro layout comprises the computation of node dimensions (if requested), the placement of ports and their labels, and the placement of node labels. The functionality is implemented independent of any specific layout algorithm and shouldn't have any negative impact on the layout algorithm's performance itself. Yet, if any unforeseen behavior occurs, this option allows to deactivate the micro layout."),!1),yi),Gt),yn(xn)))),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,tR),""),"Port Constraints"),"Defines constraints of the position of the ports of a node."),Ran),Pt),bdn),yn(pi)))),vn(e,new ln(pn(gn(mn(an(wn(dn(bn(new hn,TS),""),"Position"),"The position of a node, port, or label. This is used by the 'Fixed Layout' algorithm to specify a pre-defined position."),Xf),Ei),yt(pi,S(T(Zh,1),G,170,0,[Kd,E1]))))),vn(e,new ln(pn(gn(mn(an(wn(dn(bn(new hn,Ny),""),"Priority"),"Defines the priority of an object; its meaning depends on the specific layout algorithm and the context where it is used."),Zr),Gi),yt(pi,S(T(Zh,1),G,170,0,[Ph]))))),vn(e,new ln(pn(gn(mn(an(wn(dn(bn(new hn,uS),""),"Randomization Seed"),"Seed used for pseudo-random number generators to control the layout algorithm. If the value is 0, the seed shall be determined pseudo-randomly (e.g. from the system time)."),Zr),Gi),yn(xn)))),vn(e,new ln(pn(gn(mn(an(wn(dn(bn(new hn,c8),""),"Separate Connected Components"),"Whether each connected component should be processed separately."),yi),Gt),yn(xn)))),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,wrn),""),"Junction Points"),"This option is not used as option, but as output of the layout algorithms. It is attached to edges and determines the points where junction symbols should be drawn in order to represent hyperedges with orthogonal routing. Whether such points are computed depends on the chosen layout algorithm and edge routing style. The points are put into the vector chain with no specific order."),Tan),Xf),san),yn(Ph)))),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,mrn),""),"Comment Box"),"Whether the node should be regarded as a comment box instead of a regular node. In that case its placement should be similar to how labels are handled. Any edges incident to a comment box specify to which graph elements the comment is related."),!1),yi),Gt),yn(pi)))),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,vrn),""),"Hypernode"),"Whether the node should be handled as a hypernode."),!1),yi),Gt),yn(pi)))),vn(e,new ln(pn(gn(mn(an(wn(dn(bn(new hn,iNe),""),"Label Manager"),"Label managers can shorten labels upon a layout algorithm's request."),Xf),$Ne),yt(xn,S(T(Zh,1),G,170,0,[E1]))))),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,yrn),""),"Margins"),"Margins define additional space around the actual bounds of a graph element. For instance, ports or labels being placed on the outside of a node's border might introduce such a margin. The margin is used to guarantee non-overlap of other graph elements with those ports or labels."),Aan),Xf),Non),yn(pi)))),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,trn),""),"No Layout"),"No layout is done for the associated element. This is used to mark parts of a diagram to avoid their inclusion in the layout graph, or to mark parts of the layout graph to prevent layout engines from processing them. If you wish to exclude the contents of a compound node from automatic layout, while the node itself is still considered on its own layer, use the 'Fixed Layout' algorithm for that node."),!1),yi),Gt),yt(pi,S(T(Zh,1),G,170,0,[Ph,Kd,E1]))))),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,BVn),""),"Scale Factor"),"The scaling factor to be applied to the corresponding node in recursive layout. It causes the corresponding node's size to be adjusted, and its ports and labels to be sized and placed accordingly after the layout of that node has been determined (and before the node itself and its siblings are arranged). The scaling is not reverted afterwards, so the resulting layout graph contains the adjusted size and position data. This option is currently not supported if 'Layout Hierarchy' is set."),1),Qi),si),yn(pi)))),vn(e,new ln(pn(gn(mn(an(wn(dn(bn(new hn,RVn),""),"Child Area Width"),"The width of the area occupied by the laid out children of a node."),Qi),si),yn(xn)))),vn(e,new ln(pn(gn(mn(an(wn(dn(bn(new hn,KVn),""),"Child Area Height"),"The height of the area occupied by the laid out children of a node."),Qi),si),yn(xn)))),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,$y),""),OVn),"Turns topdown layout on and off. If this option is enabled, hierarchical layout will be computed first for the root node and then for its children recursively. Layouts are then scaled down to fit the area provided by their parents. Graphs must follow a certain structure for topdown layout to work properly. {@link TopdownNodeTypes.PARALLEL_NODE} nodes must have children of type {@link TopdownNodeTypes.HIERARCHICAL_NODE} and must define {@link topdown.hierarchicalNodeWidth} and {@link topdown.hierarchicalNodeAspectRatio} for their children. Furthermore they need to be laid out using an algorithm that is a {@link TopdownLayoutProvider}. Hierarchical nodes can also be parents of other hierarchical nodes and can optionally use a {@link TopdownSizeApproximator} to dynamically set sizes during topdown layout. In this case {@link topdown.hierarchicalNodeWidth} and {@link topdown.hierarchicalNodeAspectRatio} should be set on the node itself rather than the parent. The values are then used by the size approximator as base values. Hierarchical nodes require the layout option {@link nodeSize.fixedGraphSize} to be true to prevent the algorithm used there from resizing the hierarchical node. This option is not supported if 'Hierarchy Handling' is set to 'INCLUDE_CHILDREN'"),!1),yi),Gt),yn(xn)))),ri(e,$y,J0,null),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,_Vn),""),"Animate"),"Whether the shift from the old layout to the new computed layout shall be animated."),!0),yi),Gt),yn(xn)))),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,HVn),""),"Animation Time Factor"),"Factor for computation of animation time. The higher the value, the longer the animation time. If the value is 0, the resulting time is always equal to the minimum defined by 'Minimal Animation Time'."),Y(100)),Zr),Gi),yn(xn)))),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,qVn),""),"Layout Ancestors"),"Whether the hierarchy levels on the path from the selected element to the root of the diagram shall be included in the layout process."),!1),yi),Gt),yn(xn)))),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,UVn),""),"Maximal Animation Time"),"The maximal time for animations, in milliseconds."),Y(4e3)),Zr),Gi),yn(xn)))),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,GVn),""),"Minimal Animation Time"),"The minimal time for animations, in milliseconds."),Y(400)),Zr),Gi),yn(xn)))),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,zVn),""),"Progress Bar"),"Whether a progress bar shall be displayed during layout computations."),!1),yi),Gt),yn(xn)))),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,XVn),""),"Validate Graph"),"Whether the graph shall be validated before any layout algorithm is applied. If this option is enabled and at least one error is found, the layout process is aborted and a message is shown to the user."),!1),yi),Gt),yn(xn)))),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,VVn),""),"Validate Options"),"Whether layout options shall be validated before any layout algorithm is applied. If this option is enabled and at least one error is found, the layout process is aborted and a message is shown to the user."),!0),yi),Gt),yn(xn)))),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,WVn),""),"Zoom to Fit"),"Whether the zoom level shall be set to view the whole diagram after layout."),!1),yi),Gt),yn(xn)))),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,gcn),"box"),"Box Layout Mode"),"Configures the packing mode used by the {@link BoxLayoutProvider}. If SIMPLE is not required (neither priorities are used nor the interactive mode), GROUP_DEC can improve the packing and decrease the area. GROUP_MIXED and GROUP_INC may, in very specific scenarios, work better."),pan),Pt),Cdn),yn(xn)))),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,Gin),Hf),"Comment Comment Spacing"),"Spacing to be preserved between a comment box and other comment boxes connected to the same node. The space left between comment boxes of different nodes is controlled by the node-node spacing."),10),Qi),si),yn(xn)))),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,zin),Hf),"Comment Node Spacing"),"Spacing to be preserved between a node and its connected comment boxes. The space left between a node and the comments of another node is controlled by the node-node spacing."),10),Qi),si),yn(xn)))),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,WB),Hf),"Components Spacing"),"Spacing to be preserved between pairs of connected components. This option is only relevant if 'separateConnectedComponents' is activated."),20),Qi),si),yn(xn)))),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,Xin),Hf),"Edge Spacing"),"Spacing to be preserved between any two edges. Note that while this can somewhat easily be satisfied for the segments of orthogonally drawn edges, it is harder for general polylines or splines."),10),Qi),si),yn(xn)))),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,eR),Hf),"Edge Label Spacing"),"The minimal distance to be preserved between a label and the edge it is associated with. Note that the placement of a label is influenced by the 'edgelabels.placement' option."),2),Qi),si),yn(xn)))),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,$R),Hf),"Edge Node Spacing"),"Spacing to be preserved between nodes and edges."),10),Qi),si),yn(xn)))),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,Vin),Hf),"Label Spacing"),"Determines the amount of space to be left between two labels of the same graph element."),0),Qi),si),yn(xn)))),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,Qin),Hf),"Label Node Spacing"),"Spacing to be preserved between labels and the border of node they are associated with. Note that the placement of a label is influenced by the 'nodelabels.placement' option."),5),Qi),si),yn(xn)))),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,Win),Hf),"Horizontal spacing between Label and Port"),"Horizontal spacing to be preserved between labels and the ports they are associated with. Note that the placement of a label is influenced by the 'portlabels.placement' option."),1),Qi),si),yn(xn)))),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,Jin),Hf),"Vertical spacing between Label and Port"),"Vertical spacing to be preserved between labels and the ports they are associated with. Note that the placement of a label is influenced by the 'portlabels.placement' option."),1),Qi),si),yn(xn)))),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,yw),Hf),"Node Spacing"),"The minimal distance to be preserved between each two nodes."),20),Qi),si),yn(xn)))),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,Yin),Hf),"Node Self Loop Spacing"),"Spacing to be preserved between a node and its self loops."),10),Qi),si),yn(xn)))),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,Zin),Hf),"Port Spacing"),"Spacing between pairs of ports of the same node."),10),Qi),si),yt(xn,S(T(Zh,1),G,170,0,[pi]))))),vn(e,new ln(pn(gn(mn(an(wn(dn(bn(new hn,nrn),Hf),"Individual Spacing"),"Allows to specify individual spacing values for graph elements that shall be different from the value specified for the element's parent."),Xf),boe),yt(pi,S(T(Zh,1),G,170,0,[Ph,Kd,E1]))))),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,jrn),Hf),"Additional Port Space"),"Additional space around the sets of ports on each node side. For each side of a node, this option can reserve additional space before and after the ports on each side. For example, a top spacing of 20 makes sure that the first port on the western and eastern side is 20 units away from the northern border."),Jan),Xf),Non),yn(xn)))),vn(e,new ln(pn(gn(mn(an(wn(dn(bn(new hn,BR),YVn),"Layout Partition"),"Partition to which the node belongs. This requires Layout Partitioning to be active. Nodes with lower partition IDs will appear to the left of nodes with higher partition IDs (assuming a left-to-right layout direction)."),Zr),Gi),yt(xn,S(T(Zh,1),G,170,0,[pi]))))),ri(e,BR,FR,xue),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,FR),YVn),"Layout Partitioning"),"Whether to activate partitioned layout. This will allow to group nodes through the Layout Partition option. a pair of nodes with different partition indices is then placed such that the node with lower index is placed to the left of the other node (with left-to-right layout direction). Depending on the layout algorithm, this may only be guaranteed to work if all nodes have a layout partition configured, or at least if edges that cross partitions are not part of a partition-crossing cycle."),$an),yi),Gt),yn(xn)))),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,orn),ZVn),"Node Label Padding"),"Define padding for node labels that are placed inside of a node."),Pan),Xf),$on),yn(xn)))),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,Xm),ZVn),"Node Label Placement"),"Hints for where node labels are to be placed; if empty, the node label's position is not modified."),Ian),L3),yr),yt(pi,S(T(Zh,1),G,170,0,[E1]))))),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,hrn),FS),"Port Alignment"),"Defines the default port distribution for a node. May be overridden for each side individually."),Fan),Pt),A9),yn(pi)))),vn(e,new ln(pn(gn(mn(an(wn(dn(bn(new hn,lrn),FS),"Port Alignment (North)"),"Defines how ports on the northern side are placed, overriding the node's general port alignment."),Pt),A9),yn(pi)))),vn(e,new ln(pn(gn(mn(an(wn(dn(bn(new hn,arn),FS),"Port Alignment (South)"),"Defines how ports on the southern side are placed, overriding the node's general port alignment."),Pt),A9),yn(pi)))),vn(e,new ln(pn(gn(mn(an(wn(dn(bn(new hn,drn),FS),"Port Alignment (West)"),"Defines how ports on the western side are placed, overriding the node's general port alignment."),Pt),A9),yn(pi)))),vn(e,new ln(pn(gn(mn(an(wn(dn(bn(new hn,brn),FS),"Port Alignment (East)"),"Defines how ports on the eastern side are placed, overriding the node's general port alignment."),Pt),A9),yn(pi)))),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,i2),uK),"Node Size Constraints"),"What should be taken into account when calculating a node's size. Empty size constraints specify that a node's size is already fixed and should not be changed."),Oan),L3),I9),yn(pi)))),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,a3),uK),"Node Size Options"),"Options modifying the behavior of the size constraints set on a node. Each member of the set specifies something that should be taken into account when calculating node sizes. The empty set corresponds to no further modifications."),Lan),L3),gdn),yn(pi)))),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,d3),uK),"Node Size Minimum"),"The minimal size to which a node can be reduced."),Dan),Xf),Ei),yn(pi)))),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,zm),uK),"Fixed Graph Size"),"By default, the fixed layout provider will enlarge a graph until it is large enough to contain its children. If this option is set, it won't do so."),!1),yi),Gt),yn(xn)))),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,grn),NR),"Edge Label Placement"),"Gives a hint on where to put edge labels."),kan),Pt),Zan),yn(E1)))),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,oS),NR),"Inline Edge Labels"),"If true, an edge label is placed directly on its edge. May only apply to center edge labels. This kind of label placement is only advisable if the label's rendering is such that it is not crossed by its edge and thus stays legible."),!1),yi),Gt),yn(E1)))),vn(e,new ln(pn(gn(mn(an(wn(dn(bn(new hn,rNe),"font"),"Font Name"),"Font name used for a label."),N2),fn),yn(E1)))),vn(e,new ln(pn(gn(mn(an(wn(dn(bn(new hn,JVn),"font"),"Font Size"),"Font size used for a label."),Zr),Gi),yn(E1)))),vn(e,new ln(pn(gn(mn(an(wn(dn(bn(new hn,krn),oK),"Port Anchor Offset"),"The offset to the port position where connections shall be attached."),Xf),Ei),yn(Kd)))),vn(e,new ln(pn(gn(mn(an(wn(dn(bn(new hn,prn),oK),"Port Index"),"The index of a port in the fixed order around a node. The order is assumed as clockwise, starting with the leftmost port on the top side. This option must be set if 'Port Constraints' is set to FIXED_ORDER and no specific positions are given for the ports. Additionally, the option 'Port Side' must be defined in this case."),Zr),Gi),yn(Kd)))),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,irn),oK),"Port Side"),"The side of a node on which a port is situated. This option must be set if 'Port Constraints' is set to FIXED_SIDE or FIXED_ORDER and no specific positions are given for the ports."),Han),Pt),lr),yn(Kd)))),vn(e,new ln(pn(gn(mn(an(wn(dn(bn(new hn,ern),oK),"Port Border Offset"),"The offset of ports on the node border. With a positive offset the port is moved outside of the node, while with a negative offset the port is moved towards the inside. An offset of 0 means that the port is placed directly on the node border, i.e. if the port side is north, the port's south border touches the nodes's north border; if the port side is east, the port's west border touches the nodes's east border; if the port side is south, the port's north border touches the node's south border; if the port side is west, the port's east border touches the node's west border."),Qi),si),yn(Kd)))),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,Vm),kcn),"Port Label Placement"),"Decides on a placement method for port labels; if empty, the node label's position is not modified."),Kan),L3),oO),yn(pi)))),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,srn),kcn),"Port Labels Next to Port"),"Use 'portLabels.placement': NEXT_TO_PORT_OF_POSSIBLE."),!1),yi),Gt),yn(pi)))),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,frn),kcn),"Treat Port Labels as Group"),"If this option is true (default), the labels of a port will be treated as a group when it comes to centering them next to their port. If this option is false, only the first label will be centered next to the port, with the others being placed below. This only applies to labels of eastern and western ports and will have no effect if labels are not placed next to their port."),!0),yi),Gt),yn(pi)))),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,xy),Xy),"Topdown Scale Factor"),"The scaling factor to be applied to the nodes laid out within the node in recursive topdown layout. The difference to 'Scale Factor' is that the node itself is not scaled. This value has to be set on hierarchical nodes."),1),Qi),si),yn(xn)))),ri(e,xy,J0,Uue),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,mcn),Xy),"Topdown Size Approximator"),"The size approximator to be used to set sizes of hierarchical nodes during topdown layout. The default value is null, which results in nodes keeping whatever size is defined for them e.g. through parent parallel node or by manually setting the size."),null),Pt),dO),yn(pi)))),ri(e,mcn,J0,Gue),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,Fy),Xy),"Topdown Hierarchical Node Width"),"The fixed size of a hierarchical node when using topdown layout. If this value is set on a parallel node it applies to its children, when set on a hierarchical node it applies to the node itself."),150),Qi),si),yt(xn,S(T(Zh,1),G,170,0,[pi]))))),ri(e,Fy,J0,null),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,By),Xy),"Topdown Hierarchical Node Aspect Ratio"),"The fixed aspect ratio of a hierarchical node when using topdown layout. Default is 1/sqrt(2). If this value is set on a parallel node it applies to its children, when set on a hierarchical node it applies to the node itself."),1.414),Qi),si),yt(xn,S(T(Zh,1),G,170,0,[pi]))))),ri(e,By,J0,null),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,J0),Xy),"Topdown Node Type"),"The different node types used for topdown layout. If the node type is set to {@link TopdownNodeTypes.PARALLEL_NODE} the algorithm must be set to a {@link TopdownLayoutProvider} such as {@link TopdownPacking}. The {@link nodeSize.fixedGraphSize} option is technically only required for hierarchical nodes."),null),Pt),mdn),yn(pi)))),ri(e,J0,zm,null),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,vcn),Xy),"Topdown Scale Cap"),"Determines the upper limit for the topdown scale factor. The default value is 1.0 which ensures that nested children never end up appearing larger than their parents in terms of unit sizes such as the font size. If the limit is larger, nodes will fully utilize the available space, but it is counteriniuitive for inner nodes to have a larger scale than outer nodes."),1),Qi),si),yn(xn)))),ri(e,vcn,J0,que),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,crn),nWn),"Activate Inside Self Loops"),"Whether this node allows to route self loops inside of it instead of around it. If set to true, this will make the node a compound node if it isn't already, and will require the layout algorithm to support compound nodes with hierarchical ports."),!1),yi),Gt),yn(pi)))),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,urn),nWn),"Inside Self Loop"),"Whether a self loop should be routed inside a node instead of around that node."),!1),yi),Gt),yn(Ph)))),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,JB),"edge"),"Edge Thickness"),"The thickness of an edge. This is a hint on the line width used to draw an edge, possibly requiring more space to be reserved for it."),1),Qi),si),yn(Ph)))),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,QVn),"edge"),"Edge Type"),"The type of an edge. This is usually used for UML class diagrams, where associations must be handled differently from generalizations."),Can),Pt),cdn),yn(Ph)))),h6(e,new Np(c6(u4(c4(new ep,Yn),"Layered"),'The layer-based method was introduced by Sugiyama, Tagawa and Toda in 1981. It emphasizes the direction of edges by pointing as many edges as possible into the same direction. The nodes are arranged in layers, which are sometimes called "hierarchies", and then reordered such that the number of edge crossings is minimized. Afterwards, concrete coordinates are computed for the nodes and edge bend points.'))),h6(e,new Np(c6(u4(c4(new ep,"org.eclipse.elk.orthogonal"),"Orthogonal"),`Orthogonal methods that follow the "topology-shape-metrics" approach by Batini, Nardelli and Tamassia '86. The first phase determines the topology of the drawing by applying a planarization technique, which results in a planar representation of the graph. The orthogonal shape is computed in the second phase, which aims at minimizing the number of edge bends, and is called orthogonalization. The third phase leads to concrete coordinates for nodes and edge bend points by applying a compaction method, thus defining the metrics.`))),h6(e,new Np(c6(u4(c4(new ep,cu),"Force"),"Layout algorithms that follow physical analogies by simulating a system of attractive and repulsive forces. The first successful method of this kind was proposed by Eades in 1984."))),h6(e,new Np(c6(u4(c4(new ep,"org.eclipse.elk.circle"),"Circle"),"Circular layout algorithms emphasize cycles or biconnected components of a graph by arranging them in circles. This is useful if a drawing is desired where such components are clearly grouped, or where cycles are shown as prominent OPTIONS of the graph."))),h6(e,new Np(c6(u4(c4(new ep,gVn),"Tree"),"Specialized layout methods for trees, i.e. acyclic graphs. The regular structure of graphs that have no undirected cycles can be emphasized using an algorithm of this type."))),h6(e,new Np(c6(u4(c4(new ep,"org.eclipse.elk.planar"),"Planar"),"Algorithms that require a planar or upward planar graph. Most of these algorithms are theoretically interesting, but not practically usable."))),h6(e,new Np(c6(u4(c4(new ep,es),"Radial"),"Radial layout algorithms usually position the nodes of the graph on concentric circles."))),uUn((new C8n,e)),yUn((new E8n,e)),Nqn((new M8n,e))};var $v,Sue,gan,$2,Pue,Iue,pan,x2,F2,Oue,Gj,man,zj,_d,van,Zq,nU,kan,yan,jan,Ean,Can,Due,B2,Man,Lue,Xj,eU,Vj,tU,kb,Tan,xv,Aan,San,Pan,R2,Ian,Hd,Oan,Vw,K2,Dan,Ma,Lan,tO,Wj,C1,Nan,Nue,$an,$ue,xue,xan,Fan,iU,rU,cU,uU,Ban,oo,j9,Ran,oU,sU,Ww,Kan,_an,_2,Han,N3,Jj,fU,H2,Fue,hU,Bue,Rue,qan,Kue,Uan,Gan,$3,zan,iO,Xan,Van,qd,_ue,Wan,Jan,Qan,rO,Qj,Fv,x3,Hue,que,cO,Uue,Yan,Gue;w(uo,"CoreOptions",699),b(88,22,{3:1,34:1,22:1,88:1},v7);var Vf,Br,Xr,Wf,us,E9=we(uo,Btn,88,ke,L3e,F0e),zue;b(278,22,{3:1,34:1,22:1,278:1},fL);var Bv,Jw,Rv,Zan=we(uo,"EdgeLabelPlacement",278,ke,spe,B0e),Xue;b(223,22,{3:1,34:1,22:1,223:1},kC);var Kv,Yj,F3,lU,aU=we(uo,"EdgeRouting",223,ke,s3e,R0e),Vue;b(321,22,{3:1,34:1,22:1,321:1},j6);var ndn,edn,tdn,idn,dU,rdn,cdn=we(uo,"EdgeType",321,ke,A4e,K0e),Wue;b(989,1,ps,C8n),o.hf=function(e){uUn(e)};var udn,odn,sdn,fdn,Jue,hdn,C9;w(uo,"FixedLayouterOptions",989),b(990,1,{},Xmn),o.sf=function(){var e;return e=new rvn,e},o.tf=function(e){},w(uo,"FixedLayouterOptions/FixedFactory",990),b(346,22,{3:1,34:1,22:1,346:1},hL);var M1,uO,M9,ldn=we(uo,"HierarchyHandling",346,ke,upe,_0e),Que;b(291,22,{3:1,34:1,22:1,291:1},yC);var nl,Ta,Zj,nE,Yue=we(uo,"LabelSide",291,ke,o3e,H0e),Zue;b(95,22,{3:1,34:1,22:1,95:1},dg);var xl,Js,Es,Qs,Lo,Ys,Cs,el,Zs,yr=we(uo,"NodeLabelPlacement",95,ke,Sme,q0e),noe;b(256,22,{3:1,34:1,22:1,256:1},k7);var adn,T9,Aa,ddn,eE,A9=we(uo,"PortAlignment",256,ke,V3e,U0e),eoe;b(101,22,{3:1,34:1,22:1,101:1},E6);var Ud,qc,tl,_v,Jf,Sa,bdn=we(uo,"PortConstraints",101,ke,T4e,G0e),toe;b(279,22,{3:1,34:1,22:1,279:1},C6);var S9,P9,Fl,tE,Pa,B3,oO=we(uo,"PortLabelPlacement",279,ke,M4e,z0e),ioe;b(64,22,{3:1,34:1,22:1,64:1},y7);var Zn,Xn,os,ss,pu,su,Qf,nf,Wu,xu,Uc,Ju,mu,vu,ef,No,$o,Ms,ae,sc,Wn,lr=we(uo,"PortSide",64,ke,N3e,X0e),roe;b(993,1,ps,M8n),o.hf=function(e){Nqn(e)};var coe,uoe,wdn,ooe,soe;w(uo,"RandomLayouterOptions",993),b(994,1,{},Vmn),o.sf=function(){var e;return e=new evn,e},o.tf=function(e){},w(uo,"RandomLayouterOptions/RandomFactory",994),b(386,22,{3:1,34:1,22:1,386:1},jC);var Qw,iE,rE,Gd,I9=we(uo,"SizeConstraint",386,ke,u3e,V0e),foe;b(264,22,{3:1,34:1,22:1,264:1},bg);var cE,sO,Hv,bU,uE,O9,fO,hO,lO,gdn=we(uo,"SizeOptions",264,ke,Kme,W0e),hoe;b(280,22,{3:1,34:1,22:1,280:1},lL);var Yw,pdn,aO,mdn=we(uo,"TopdownNodeTypes",280,ke,fpe,J0e),loe;b(347,22,ycn);var vdn,kdn,dO=we(uo,"TopdownSizeApproximator",347,ke,r2e,Y0e);b(987,347,ycn,VSn),o.Tg=function(e){return CRn(e)},we(uo,"TopdownSizeApproximator/1",987,dO,null,null),b(988,347,ycn,LPn),o.Tg=function(e){var t,i,r,c,s,f,h,l,a,d,g,p,m,k,j,A,I,D,N,H,X,en,jn,kn,Rn;for(t=u(z(e,(qe(),H2)),143),en=(B1(),m=new Zv,m),uy(en,e),jn=new de,s=new ne((!e.a&&(e.a=new q(Qe,e,10,11)),e.a));s.e!=s.i.gc();)r=u(ce(s),27),D=(p=new Zv,p),SA(D,en),uy(D,r),Rn=CRn(r),vg(D,y.Math.max(r.g,Rn.a),y.Math.max(r.f,Rn.b)),Vc(jn.f,r,D);for(c=new ne((!e.a&&(e.a=new q(Qe,e,10,11)),e.a));c.e!=c.i.gc();)for(r=u(ce(c),27),d=new ne((!r.e&&(r.e=new Nn(Vt,r,7,4)),r.e));d.e!=d.i.gc();)a=u(ce(d),74),H=u(Kr(wr(jn.f,r)),27),X=u(ee(jn,L((!a.c&&(a.c=new Nn(he,a,5,8)),a.c),0)),27),N=(g=new HO,g),ve((!N.b&&(N.b=new Nn(he,N,4,7)),N.b),H),ve((!N.c&&(N.c=new Nn(he,N,5,8)),N.c),X),AA(N,At(H)),uy(N,a);j=u(V7(t.f),205);try{j.rf(en,new ovn),hIn(t.f,j)}catch(Kn){throw Kn=It(Kn),O(Kn,103)?(k=Kn,M(k)):M(Kn)}return Df(en,F2)||Df(en,x2)||otn(en),l=$(R(z(en,F2))),h=$(R(z(en,x2))),f=l/h,i=$(R(z(en,Qj)))*y.Math.sqrt((!en.a&&(en.a=new q(Qe,en,10,11)),en.a).i),kn=u(z(en,C1),107),I=kn.b+kn.c+1,A=kn.d+kn.a+1,new V(y.Math.max(I,i),y.Math.max(A,i/f))},we(uo,"TopdownSizeApproximator/2",988,dO,null,null);var aoe;b(344,1,{871:1},up),o.Ug=function(e,t){return FKn(this,e,t)},o.Vg=function(){u_n(this)},o.Wg=function(){return this.q},o.Xg=function(){return this.f?TN(this.f):null},o.Yg=function(){return TN(this.a)},o.Zg=function(){return this.p},o.$g=function(){return!1},o._g=function(){return this.n},o.ah=function(){return this.p!=null&&!this.b},o.bh=function(e){var t;this.n&&(t=e,nn(this.f,t))},o.dh=function(e,t){var i,r;this.n&&e&&Cpe(this,(i=new GPn,r=IF(i,e),cDe(i),r),(LT(),gU))},o.eh=function(e){var t;return this.b?null:(t=fme(this,this.g),xe(this.a,t),t.i=this,this.d=e,t)},o.fh=function(e){e>0&&!this.b&&CQ(this,e)},o.b=!1,o.c=0,o.d=-1,o.e=null,o.f=null,o.g=-1,o.j=!1,o.k=!1,o.n=!1,o.o=0,o.q=0,o.r=0,w(dc,"BasicProgressMonitor",344),b(717,205,yd,Wmn),o.rf=function(e,t){BUn(e,t)},w(dc,"BoxLayoutProvider",717),b(983,1,Ne,Lkn),o.Ne=function(e,t){return cTe(this,u(e,27),u(t,27))},o.Fb=function(e){return this===e},o.Oe=function(){return new Te(this)},o.a=!1,w(dc,"BoxLayoutProvider/1",983),b(163,1,{163:1},hT,mAn),o.Ib=function(){return this.c?Een(this.c):ra(this.b)},w(dc,"BoxLayoutProvider/Group",163),b(320,22,{3:1,34:1,22:1,320:1},EC);var ydn,jdn,Edn,wU,Cdn=we(dc,"BoxLayoutProvider/PackingMode",320,ke,f3e,Z0e),doe;b(984,1,Ne,Jmn),o.Ne=function(e,t){return Cge(u(e,163),u(t,163))},o.Fb=function(e){return this===e},o.Oe=function(){return new Te(this)},w(dc,"BoxLayoutProvider/lambda$0$Type",984),b(985,1,Ne,Qmn),o.Ne=function(e,t){return gge(u(e,163),u(t,163))},o.Fb=function(e){return this===e},o.Oe=function(){return new Te(this)},w(dc,"BoxLayoutProvider/lambda$1$Type",985),b(986,1,Ne,Ymn),o.Ne=function(e,t){return pge(u(e,163),u(t,163))},o.Fb=function(e){return this===e},o.Oe=function(){return new Te(this)},w(dc,"BoxLayoutProvider/lambda$2$Type",986),b(1384,1,{845:1},Zmn),o.Mg=function(e,t){return nC(),!O(t,167)||vEn((qp(),u(e,167)),t)},w(dc,"ElkSpacings/AbstractSpacingsBuilder/lambda$0$Type",1384),b(1385,1,ie,Nkn),o.Cd=function(e){N6e(this.a,u(e,149))},w(dc,"ElkSpacings/AbstractSpacingsBuilder/lambda$1$Type",1385),b(1386,1,ie,tvn),o.Cd=function(e){u(e,96),nC()},w(dc,"ElkSpacings/AbstractSpacingsBuilder/lambda$2$Type",1386),b(1390,1,ie,$kn),o.Cd=function(e){tve(this.a,u(e,96))},w(dc,"ElkSpacings/AbstractSpacingsBuilder/lambda$3$Type",1390),b(1388,1,De,fMn),o.Mb=function(e){return w6e(this.a,this.b,u(e,149))},w(dc,"ElkSpacings/AbstractSpacingsBuilder/lambda$4$Type",1388),b(1387,1,De,hMn),o.Mb=function(e){return J1e(this.a,this.b,u(e,845))},w(dc,"ElkSpacings/AbstractSpacingsBuilder/lambda$5$Type",1387),b(1389,1,ie,lMn),o.Cd=function(e){fwe(this.a,this.b,u(e,149))},w(dc,"ElkSpacings/AbstractSpacingsBuilder/lambda$6$Type",1389),b(947,1,{},ivn),o.Kb=function(e){return uTn(e)},o.Fb=function(e){return this===e},w(dc,"ElkUtil/lambda$0$Type",947),b(948,1,ie,aMn),o.Cd=function(e){sCe(this.a,this.b,u(e,74))},o.a=0,o.b=0,w(dc,"ElkUtil/lambda$1$Type",948),b(949,1,ie,dMn),o.Cd=function(e){Zfe(this.a,this.b,u(e,166))},o.a=0,o.b=0,w(dc,"ElkUtil/lambda$2$Type",949),b(950,1,ie,bMn),o.Cd=function(e){Vle(this.a,this.b,u(e,135))},o.a=0,o.b=0,w(dc,"ElkUtil/lambda$3$Type",950),b(951,1,ie,xkn),o.Cd=function(e){Ibe(this.a,u(e,377))},w(dc,"ElkUtil/lambda$4$Type",951),b(325,1,{34:1,325:1},Pfe),o.Fd=function(e){return E1e(this,u(e,242))},o.Fb=function(e){var t;return O(e,325)?(t=u(e,325),this.a==t.a):!1},o.Hb=function(){return wi(this.a)},o.Ib=function(){return this.a+" (exclusive)"},o.a=0,w(dc,"ExclusiveBounds/ExclusiveLowerBound",325),b(1119,205,yd,rvn),o.rf=function(e,t){var i,r,c,s,f,h,l,a,d,g,p,m,k,j,A,I,D,N,H,X,en,jn,kn;for(t.Ug("Fixed Layout",1),s=u(z(e,(qe(),yan)),223),g=0,p=0,D=new ne((!e.a&&(e.a=new q(Qe,e,10,11)),e.a));D.e!=D.i.gc();){for(A=u(ce(D),27),kn=u(z(A,(NT(),C9)),8),kn&&(Ro(A,kn.a,kn.b),u(z(A,odn),181).Hc((go(),Qw))&&(m=u(z(A,fdn),8),m.a>0&&m.b>0&&G0(A,m.a,m.b,!0,!0))),g=y.Math.max(g,A.i+A.g),p=y.Math.max(p,A.j+A.f),a=new ne((!A.n&&(A.n=new q(Ar,A,1,7)),A.n));a.e!=a.i.gc();)h=u(ce(a),135),kn=u(z(h,C9),8),kn&&Ro(h,kn.a,kn.b),g=y.Math.max(g,A.i+h.i+h.g),p=y.Math.max(p,A.j+h.j+h.f);for(X=new ne((!A.c&&(A.c=new q(Qu,A,9,9)),A.c));X.e!=X.i.gc();)for(H=u(ce(X),123),kn=u(z(H,C9),8),kn&&Ro(H,kn.a,kn.b),en=A.i+H.i,jn=A.j+H.j,g=y.Math.max(g,en+H.g),p=y.Math.max(p,jn+H.f),l=new ne((!H.n&&(H.n=new q(Ar,H,1,7)),H.n));l.e!=l.i.gc();)h=u(ce(l),135),kn=u(z(h,C9),8),kn&&Ro(h,kn.a,kn.b),g=y.Math.max(g,en+h.i+h.g),p=y.Math.max(p,jn+h.j+h.f);for(c=new te(re(Al(A).a.Kc(),new En));pe(c);)i=u(fe(c),74),d=YGn(i),g=y.Math.max(g,d.a),p=y.Math.max(p,d.b);for(r=new te(re(cy(A).a.Kc(),new En));pe(r);)i=u(fe(r),74),At(Kh(i))!=e&&(d=YGn(i),g=y.Math.max(g,d.a),p=y.Math.max(p,d.b))}if(s==(El(),Kv))for(I=new ne((!e.a&&(e.a=new q(Qe,e,10,11)),e.a));I.e!=I.i.gc();)for(A=u(ce(I),27),r=new te(re(Al(A).a.Kc(),new En));pe(r);)i=u(fe(r),74),f=hPe(i),f.b==0?ht(i,kb,null):ht(i,kb,f);on(un(z(e,(NT(),sdn))))||(N=u(z(e,Jue),107),j=g+N.b+N.c,k=p+N.d+N.a,G0(e,j,k,!0,!0)),t.Vg()},w(dc,"FixedLayoutProvider",1119),b(385,137,{3:1,423:1,385:1,96:1,137:1},_O,JNn),o.cg=function(e){var t,i,r,c,s,f,h,l,a;if(e)try{for(l=ww(e,";,;"),s=l,f=0,h=s.length;f>16&ui|t^r<<16},o.Kc=function(){return new Fkn(this)},o.Ib=function(){return this.a==null&&this.b==null?"pair(null,null)":this.a==null?"pair(null,"+Jr(this.b)+")":this.b==null?"pair("+Jr(this.a)+",null)":"pair("+Jr(this.a)+","+Jr(this.b)+")"},w(dc,"Pair",42),b(995,1,Si,Fkn),o.Nb=function(e){_i(this,e)},o.Ob=function(){return!this.c&&(!this.b&&this.a.a!=null||this.a.b!=null)},o.Pb=function(){if(!this.c&&!this.b&&this.a.a!=null)return this.b=!0,this.a.a;if(!this.c&&this.a.b!=null)return this.c=!0,this.a.b;throw M(new nc)},o.Qb=function(){throw this.c&&this.a.b!=null?this.a.b=null:this.b&&this.a.a!=null&&(this.a.a=null),M(new Cu)},o.b=!1,o.c=!1,w(dc,"Pair/1",995),b(455,1,{455:1},TIn),o.Fb=function(e){return mc(this.a,u(e,455).a)&&mc(this.c,u(e,455).c)&&mc(this.d,u(e,455).d)&&mc(this.b,u(e,455).b)},o.Hb=function(){return Dk(S(T(ki,1),Fn,1,5,[this.a,this.c,this.d,this.b]))},o.Ib=function(){return"("+this.a+ur+this.c+ur+this.d+ur+this.b+")"},w(dc,"Quadruple",455),b(1108,205,yd,evn),o.rf=function(e,t){var i,r,c,s,f;if(t.Ug("Random Layout",1),(!e.a&&(e.a=new q(Qe,e,10,11)),e.a).i==0){t.Vg();return}s=u(z(e,(YY(),ooe)),17),s&&s.a!=0?c=new qM(s.a):c=new dx,i=Y9(R(z(e,coe))),f=Y9(R(z(e,soe))),r=u(z(e,uoe),107),SDe(e,c,i,f,r),t.Vg()},w(dc,"RandomLayoutProvider",1108),b(240,1,{240:1},_L),o.Fb=function(e){return mc(this.a,u(e,240).a)&&mc(this.b,u(e,240).b)&&mc(this.c,u(e,240).c)},o.Hb=function(){return Dk(S(T(ki,1),Fn,1,5,[this.a,this.b,this.c]))},o.Ib=function(){return"("+this.a+ur+this.b+ur+this.c+")"},w(dc,"Triple",240);var poe;b(562,1,{}),o.Lf=function(){return new V(this.f.i,this.f.j)},o.of=function(e){return nOn(e,(qe(),oo))?z(this.f,moe):z(this.f,e)},o.Mf=function(){return new V(this.f.g,this.f.f)},o.Nf=function(){return this.g},o.pf=function(e){return Df(this.f,e)},o.Of=function(e){eu(this.f,e.a),tu(this.f,e.b)},o.Pf=function(e){I0(this.f,e.a),P0(this.f,e.b)},o.Qf=function(e){this.g=e},o.g=0;var moe;w(g8,"ElkGraphAdapters/AbstractElkGraphElementAdapter",562),b(563,1,{853:1},DE),o.Rf=function(){var e,t;if(!this.b)for(this.b=RM(jM(this.a).i),t=new ne(jM(this.a));t.e!=t.i.gc();)e=u(ce(t),135),nn(this.b,new pD(e));return this.b},o.b=null,w(g8,"ElkGraphAdapters/ElkEdgeAdapter",563),b(289,562,{},Qd),o.Sf=function(){return zRn(this)},o.a=null,w(g8,"ElkGraphAdapters/ElkGraphAdapter",289),b(640,562,{187:1},pD),w(g8,"ElkGraphAdapters/ElkLabelAdapter",640),b(639,562,{695:1},ML),o.Rf=function(){return w7e(this)},o.Vf=function(){var e;return e=u(z(this.f,(qe(),xv)),140),!e&&(e=new Yv),e},o.Xf=function(){return g7e(this)},o.Zf=function(e){var t;t=new qL(e),ht(this.f,(qe(),xv),t)},o.$f=function(e){ht(this.f,(qe(),C1),new HV(e))},o.Tf=function(){return this.d},o.Uf=function(){var e,t;if(!this.a)for(this.a=new Z,t=new te(re(cy(u(this.f,27)).a.Kc(),new En));pe(t);)e=u(fe(t),74),nn(this.a,new DE(e));return this.a},o.Wf=function(){var e,t;if(!this.c)for(this.c=new Z,t=new te(re(Al(u(this.f,27)).a.Kc(),new En));pe(t);)e=u(fe(t),74),nn(this.c,new DE(e));return this.c},o.Yf=function(){return AM(u(this.f,27)).i!=0||on(un(u(this.f,27).of((qe(),Xj))))},o._f=function(){V4e(this,(c0(),poe))},o.a=null,o.b=null,o.c=null,o.d=null,o.e=null,w(g8,"ElkGraphAdapters/ElkNodeAdapter",639),b(1284,562,{852:1},Bkn),o.Rf=function(){return C7e(this)},o.Uf=function(){var e,t;if(!this.a)for(this.a=Dh(u(this.f,123).hh().i),t=new ne(u(this.f,123).hh());t.e!=t.i.gc();)e=u(ce(t),74),nn(this.a,new DE(e));return this.a},o.Wf=function(){var e,t;if(!this.c)for(this.c=Dh(u(this.f,123).ih().i),t=new ne(u(this.f,123).ih());t.e!=t.i.gc();)e=u(ce(t),74),nn(this.c,new DE(e));return this.c},o.ag=function(){return u(u(this.f,123).of((qe(),_2)),64)},o.bg=function(){var e,t,i,r,c,s,f,h;for(r=Af(u(this.f,123)),i=new ne(u(this.f,123).ih());i.e!=i.i.gc();)for(e=u(ce(i),74),h=new ne((!e.c&&(e.c=new Nn(he,e,5,8)),e.c));h.e!=h.i.gc();){if(f=u(ce(h),84),Yb(Gr(f),r))return!0;if(Gr(f)==r&&on(un(z(e,(qe(),eU)))))return!0}for(t=new ne(u(this.f,123).hh());t.e!=t.i.gc();)for(e=u(ce(t),74),s=new ne((!e.b&&(e.b=new Nn(he,e,4,7)),e.b));s.e!=s.i.gc();)if(c=u(ce(s),84),Yb(Gr(c),r))return!0;return!1},o.a=null,o.b=null,o.c=null,w(g8,"ElkGraphAdapters/ElkPortAdapter",1284),b(1285,1,Ne,nvn),o.Ne=function(e,t){return tSe(u(e,123),u(t,123))},o.Fb=function(e){return this===e},o.Oe=function(){return new Te(this)},w(g8,"ElkGraphAdapters/PortComparator",1285);var Ia=Nt(ts,"EObject"),qv=Nt(u2,iWn),xo=Nt(u2,rWn),oE=Nt(u2,cWn),sE=Nt(u2,"ElkShape"),he=Nt(u2,uWn),Vt=Nt(u2,jcn),Mt=Nt(u2,oWn),fE=Nt(ts,sWn),D9=Nt(ts,"EFactory"),voe,pU=Nt(ts,fWn),jf=Nt(ts,"EPackage"),Ti,koe,yoe,Sdn,bO,joe,Pdn,Idn,Odn,il,Eoe,Coe,Ar=Nt(u2,Ecn),Qe=Nt(u2,Ccn),Qu=Nt(u2,Mcn);b(93,1,hWn),o.th=function(){return this.uh(),null},o.uh=function(){return null},o.vh=function(){return this.uh(),!1},o.wh=function(){return!1},o.xh=function(e){it(this,e)},w(g3,"BasicNotifierImpl",93),b(99,93,bWn),o.Yh=function(){return fo(this)},o.yh=function(e,t){return e},o.zh=function(){throw M(new Pe)},o.Ah=function(e){var t;return t=br(u($n(this.Dh(),this.Fh()),19)),this.Ph().Th(this,t.n,t.f,e)},o.Bh=function(e,t){throw M(new Pe)},o.Ch=function(e,t,i){return So(this,e,t,i)},o.Dh=function(){var e;return this.zh()&&(e=this.zh().Nk(),e)?e:this.ii()},o.Eh=function(){return dF(this)},o.Fh=function(){throw M(new Pe)},o.Gh=function(){var e,t;return t=this.$h().Ok(),!t&&this.zh().Tk(t=(a6(),e=eJ(bh(this.Dh())),e==null?MU:new T7(this,e))),t},o.Hh=function(e,t){return e},o.Ih=function(e){var t;return t=e.pk(),t?e.Lj():Ot(this.Dh(),e)},o.Jh=function(){var e;return e=this.zh(),e?e.Qk():null},o.Kh=function(){return this.zh()?this.zh().Nk():null},o.Lh=function(e,t,i){return tA(this,e,t,i)},o.Mh=function(e){return x4(this,e)},o.Nh=function(e,t){return YN(this,e,t)},o.Oh=function(){var e;return e=this.zh(),!!e&&e.Rk()},o.Ph=function(){throw M(new Pe)},o.Qh=function(){return WT(this)},o.Rh=function(e,t,i,r){return Wp(this,e,t,r)},o.Sh=function(e,t,i){var r;return r=u($n(this.Dh(),t),69),r.wk().zk(this,this.hi(),t-this.ji(),e,i)},o.Th=function(e,t,i,r){return OM(this,e,t,r)},o.Uh=function(e,t,i){var r;return r=u($n(this.Dh(),t),69),r.wk().Ak(this,this.hi(),t-this.ji(),e,i)},o.Vh=function(){return!!this.zh()&&!!this.zh().Pk()},o.Wh=function(e){return Cx(this,e)},o.Xh=function(e){return bOn(this,e)},o.Zh=function(e){return xGn(this,e)},o.$h=function(){throw M(new Pe)},o._h=function(){return this.zh()?this.zh().Pk():null},o.ai=function(){return WT(this)},o.bi=function(e,t){sF(this,e,t)},o.ci=function(e){this.$h().Sk(e)},o.di=function(e){this.$h().Vk(e)},o.ei=function(e){this.$h().Uk(e)},o.fi=function(e,t){var i,r,c,s;return s=this.Jh(),s&&e&&(t=cr(s.El(),this,t),s.Il(this)),r=this.Ph(),r&&(AF(this,this.Ph(),this.Fh()).Bb&hr?(c=r.Qh(),c&&(e?!s&&c.Il(this):c.Hl(this))):(t=(i=this.Fh(),i>=0?this.Ah(t):this.Ph().Th(this,-1-i,null,t)),t=this.Ch(null,-1,t))),this.di(e),t},o.gi=function(e){var t,i,r,c,s,f,h,l;if(i=this.Dh(),s=Ot(i,e),t=this.ji(),s>=t)return u(e,69).wk().Dk(this,this.hi(),s-t);if(s<=-1)if(f=Jg((Du(),zi),i,e),f){if(dr(),u(f,69).xk()||(f=$p(Lr(zi,f))),c=(r=this.Ih(f),u(r>=0?this.Lh(r,!0,!0):H0(this,f,!0),160)),l=f.Ik(),l>1||l==-1)return u(u(c,220).Sl(e,!1),79)}else throw M(new Gn(da+e.xe()+sK));else if(e.Jk())return r=this.Ih(e),u(r>=0?this.Lh(r,!1,!0):H0(this,e,!1),79);return h=new DMn(this,e),h},o.hi=function(){return uQ(this)},o.ii=function(){return(G1(),Hn).S},o.ji=function(){return se(this.ii())},o.ki=function(e){cF(this,e)},o.Ib=function(){return _s(this)},w(qn,"BasicEObjectImpl",99);var Moe;b(119,99,{110:1,94:1,93:1,58:1,114:1,54:1,99:1,119:1}),o.li=function(e){var t;return t=cQ(this),t[e]},o.mi=function(e,t){var i;i=cQ(this),$t(i,e,t)},o.ni=function(e){var t;t=cQ(this),$t(t,e,null)},o.th=function(){return u(Un(this,4),129)},o.uh=function(){throw M(new Pe)},o.vh=function(){return(this.Db&4)!=0},o.zh=function(){throw M(new Pe)},o.oi=function(e){Xp(this,2,e)},o.Bh=function(e,t){this.Db=t<<16|this.Db&255,this.oi(e)},o.Dh=function(){return au(this)},o.Fh=function(){return this.Db>>16},o.Gh=function(){var e,t;return a6(),t=eJ(bh((e=u(Un(this,16),29),e||this.ii()))),t==null?MU:new T7(this,t)},o.wh=function(){return(this.Db&1)==0},o.Jh=function(){return u(Un(this,128),2034)},o.Kh=function(){return u(Un(this,16),29)},o.Oh=function(){return(this.Db&32)!=0},o.Ph=function(){return u(Un(this,2),54)},o.Vh=function(){return(this.Db&64)!=0},o.$h=function(){throw M(new Pe)},o._h=function(){return u(Un(this,64),288)},o.ci=function(e){Xp(this,16,e)},o.di=function(e){Xp(this,128,e)},o.ei=function(e){Xp(this,64,e)},o.hi=function(){return iu(this)},o.Db=0,w(qn,"MinimalEObjectImpl",119),b(120,119,{110:1,94:1,93:1,58:1,114:1,54:1,99:1,119:1,120:1}),o.oi=function(e){this.Cb=e},o.Ph=function(){return this.Cb},w(qn,"MinimalEObjectImpl/Container",120),b(2083,120,{110:1,342:1,96:1,94:1,93:1,58:1,114:1,54:1,99:1,119:1,120:1}),o.Lh=function(e,t,i){return yZ(this,e,t,i)},o.Uh=function(e,t,i){return hnn(this,e,t,i)},o.Wh=function(e){return wJ(this,e)},o.bi=function(e,t){uY(this,e,t)},o.ii=function(){return Cc(),Coe},o.ki=function(e){WQ(this,e)},o.nf=function(){return aRn(this)},o.gh=function(){return!this.o&&(this.o=new Iu((Cc(),il),T1,this,0)),this.o},o.of=function(e){return z(this,e)},o.pf=function(e){return Df(this,e)},o.qf=function(e,t){return ht(this,e,t)},w(Md,"EMapPropertyHolderImpl",2083),b(572,120,{110:1,377:1,94:1,93:1,58:1,114:1,54:1,99:1,119:1,120:1},yE),o.Lh=function(e,t,i){switch(e){case 0:return this.a;case 1:return this.b}return tA(this,e,t,i)},o.Wh=function(e){switch(e){case 0:return this.a!=0;case 1:return this.b!=0}return Cx(this,e)},o.bi=function(e,t){switch(e){case 0:aT(this,$(R(t)));return;case 1:lT(this,$(R(t)));return}sF(this,e,t)},o.ii=function(){return Cc(),koe},o.ki=function(e){switch(e){case 0:aT(this,0);return;case 1:lT(this,0);return}cF(this,e)},o.Ib=function(){var e;return this.Db&64?_s(this):(e=new ls(_s(this)),e.a+=" (x: ",fg(e,this.a),e.a+=", y: ",fg(e,this.b),e.a+=")",e.a)},o.a=0,o.b=0,w(Md,"ElkBendPointImpl",572),b(739,2083,{110:1,342:1,167:1,96:1,94:1,93:1,58:1,114:1,54:1,99:1,119:1,120:1}),o.Lh=function(e,t,i){return PY(this,e,t,i)},o.Sh=function(e,t,i){return Yx(this,e,t,i)},o.Uh=function(e,t,i){return $$(this,e,t,i)},o.Wh=function(e){return qQ(this,e)},o.bi=function(e,t){KZ(this,e,t)},o.ii=function(){return Cc(),joe},o.ki=function(e){kY(this,e)},o.jh=function(){return this.k},o.kh=function(){return jM(this)},o.Ib=function(){return ox(this)},o.k=null,w(Md,"ElkGraphElementImpl",739),b(740,739,{110:1,342:1,167:1,422:1,96:1,94:1,93:1,58:1,114:1,54:1,99:1,119:1,120:1}),o.Lh=function(e,t,i){return FY(this,e,t,i)},o.Wh=function(e){return qY(this,e)},o.bi=function(e,t){_Z(this,e,t)},o.ii=function(){return Cc(),Eoe},o.ki=function(e){JY(this,e)},o.lh=function(){return this.f},o.mh=function(){return this.g},o.nh=function(){return this.i},o.oh=function(){return this.j},o.ph=function(e,t){vg(this,e,t)},o.qh=function(e,t){Ro(this,e,t)},o.rh=function(e){eu(this,e)},o.sh=function(e){tu(this,e)},o.Ib=function(){return iF(this)},o.f=0,o.g=0,o.i=0,o.j=0,w(Md,"ElkShapeImpl",740),b(741,740,{110:1,342:1,84:1,167:1,422:1,96:1,94:1,93:1,58:1,114:1,54:1,99:1,119:1,120:1}),o.Lh=function(e,t,i){return bZ(this,e,t,i)},o.Sh=function(e,t,i){return NZ(this,e,t,i)},o.Uh=function(e,t,i){return $Z(this,e,t,i)},o.Wh=function(e){return cY(this,e)},o.bi=function(e,t){Vnn(this,e,t)},o.ii=function(){return Cc(),yoe},o.ki=function(e){fZ(this,e)},o.hh=function(){return!this.d&&(this.d=new Nn(Vt,this,8,5)),this.d},o.ih=function(){return!this.e&&(this.e=new Nn(Vt,this,7,4)),this.e},w(Md,"ElkConnectableShapeImpl",741),b(326,739,{110:1,342:1,74:1,167:1,326:1,96:1,94:1,93:1,58:1,114:1,54:1,99:1,119:1,120:1},HO),o.Ah=function(e){return IZ(this,e)},o.Lh=function(e,t,i){switch(e){case 3:return J7(this);case 4:return!this.b&&(this.b=new Nn(he,this,4,7)),this.b;case 5:return!this.c&&(this.c=new Nn(he,this,5,8)),this.c;case 6:return!this.a&&(this.a=new q(Mt,this,6,6)),this.a;case 7:return _n(),!this.b&&(this.b=new Nn(he,this,4,7)),!(this.b.i<=1&&(!this.c&&(this.c=new Nn(he,this,5,8)),this.c.i<=1));case 8:return _n(),!!F5(this);case 9:return _n(),!!_0(this);case 10:return _n(),!this.b&&(this.b=new Nn(he,this,4,7)),this.b.i!=0&&(!this.c&&(this.c=new Nn(he,this,5,8)),this.c.i!=0)}return PY(this,e,t,i)},o.Sh=function(e,t,i){var r;switch(t){case 3:return this.Cb&&(i=(r=this.Db>>16,r>=0?IZ(this,i):this.Cb.Th(this,-1-r,null,i))),lV(this,u(e,27),i);case 4:return!this.b&&(this.b=new Nn(he,this,4,7)),Xc(this.b,e,i);case 5:return!this.c&&(this.c=new Nn(he,this,5,8)),Xc(this.c,e,i);case 6:return!this.a&&(this.a=new q(Mt,this,6,6)),Xc(this.a,e,i)}return Yx(this,e,t,i)},o.Uh=function(e,t,i){switch(t){case 3:return lV(this,null,i);case 4:return!this.b&&(this.b=new Nn(he,this,4,7)),cr(this.b,e,i);case 5:return!this.c&&(this.c=new Nn(he,this,5,8)),cr(this.c,e,i);case 6:return!this.a&&(this.a=new q(Mt,this,6,6)),cr(this.a,e,i)}return $$(this,e,t,i)},o.Wh=function(e){switch(e){case 3:return!!J7(this);case 4:return!!this.b&&this.b.i!=0;case 5:return!!this.c&&this.c.i!=0;case 6:return!!this.a&&this.a.i!=0;case 7:return!this.b&&(this.b=new Nn(he,this,4,7)),!(this.b.i<=1&&(!this.c&&(this.c=new Nn(he,this,5,8)),this.c.i<=1));case 8:return F5(this);case 9:return _0(this);case 10:return!this.b&&(this.b=new Nn(he,this,4,7)),this.b.i!=0&&(!this.c&&(this.c=new Nn(he,this,5,8)),this.c.i!=0)}return qQ(this,e)},o.bi=function(e,t){switch(e){case 3:AA(this,u(t,27));return;case 4:!this.b&&(this.b=new Nn(he,this,4,7)),me(this.b),!this.b&&(this.b=new Nn(he,this,4,7)),Bt(this.b,u(t,16));return;case 5:!this.c&&(this.c=new Nn(he,this,5,8)),me(this.c),!this.c&&(this.c=new Nn(he,this,5,8)),Bt(this.c,u(t,16));return;case 6:!this.a&&(this.a=new q(Mt,this,6,6)),me(this.a),!this.a&&(this.a=new q(Mt,this,6,6)),Bt(this.a,u(t,16));return}KZ(this,e,t)},o.ii=function(){return Cc(),Sdn},o.ki=function(e){switch(e){case 3:AA(this,null);return;case 4:!this.b&&(this.b=new Nn(he,this,4,7)),me(this.b);return;case 5:!this.c&&(this.c=new Nn(he,this,5,8)),me(this.c);return;case 6:!this.a&&(this.a=new q(Mt,this,6,6)),me(this.a);return}kY(this,e)},o.Ib=function(){return nGn(this)},w(Md,"ElkEdgeImpl",326),b(452,2083,{110:1,342:1,166:1,452:1,96:1,94:1,93:1,58:1,114:1,54:1,99:1,119:1,120:1},jE),o.Ah=function(e){return TZ(this,e)},o.Lh=function(e,t,i){switch(e){case 1:return this.j;case 2:return this.k;case 3:return this.b;case 4:return this.c;case 5:return!this.a&&(this.a=new ti(xo,this,5)),this.a;case 6:return hOn(this);case 7:return t?Px(this):this.i;case 8:return t?Sx(this):this.f;case 9:return!this.g&&(this.g=new Nn(Mt,this,9,10)),this.g;case 10:return!this.e&&(this.e=new Nn(Mt,this,10,9)),this.e;case 11:return this.d}return yZ(this,e,t,i)},o.Sh=function(e,t,i){var r,c,s;switch(t){case 6:return this.Cb&&(i=(c=this.Db>>16,c>=0?TZ(this,i):this.Cb.Th(this,-1-c,null,i))),hV(this,u(e,74),i);case 9:return!this.g&&(this.g=new Nn(Mt,this,9,10)),Xc(this.g,e,i);case 10:return!this.e&&(this.e=new Nn(Mt,this,10,9)),Xc(this.e,e,i)}return s=u($n((r=u(Un(this,16),29),r||(Cc(),bO)),t),69),s.wk().zk(this,iu(this),t-se((Cc(),bO)),e,i)},o.Uh=function(e,t,i){switch(t){case 5:return!this.a&&(this.a=new ti(xo,this,5)),cr(this.a,e,i);case 6:return hV(this,null,i);case 9:return!this.g&&(this.g=new Nn(Mt,this,9,10)),cr(this.g,e,i);case 10:return!this.e&&(this.e=new Nn(Mt,this,10,9)),cr(this.e,e,i)}return hnn(this,e,t,i)},o.Wh=function(e){switch(e){case 1:return this.j!=0;case 2:return this.k!=0;case 3:return this.b!=0;case 4:return this.c!=0;case 5:return!!this.a&&this.a.i!=0;case 6:return!!hOn(this);case 7:return!!this.i;case 8:return!!this.f;case 9:return!!this.g&&this.g.i!=0;case 10:return!!this.e&&this.e.i!=0;case 11:return this.d!=null}return wJ(this,e)},o.bi=function(e,t){switch(e){case 1:H4(this,$(R(t)));return;case 2:U4(this,$(R(t)));return;case 3:_4(this,$(R(t)));return;case 4:q4(this,$(R(t)));return;case 5:!this.a&&(this.a=new ti(xo,this,5)),me(this.a),!this.a&&(this.a=new ti(xo,this,5)),Bt(this.a,u(t,16));return;case 6:ZHn(this,u(t,74));return;case 7:vT(this,u(t,84));return;case 8:mT(this,u(t,84));return;case 9:!this.g&&(this.g=new Nn(Mt,this,9,10)),me(this.g),!this.g&&(this.g=new Nn(Mt,this,9,10)),Bt(this.g,u(t,16));return;case 10:!this.e&&(this.e=new Nn(Mt,this,10,9)),me(this.e),!this.e&&(this.e=new Nn(Mt,this,10,9)),Bt(this.e,u(t,16));return;case 11:OQ(this,Oe(t));return}uY(this,e,t)},o.ii=function(){return Cc(),bO},o.ki=function(e){switch(e){case 1:H4(this,0);return;case 2:U4(this,0);return;case 3:_4(this,0);return;case 4:q4(this,0);return;case 5:!this.a&&(this.a=new ti(xo,this,5)),me(this.a);return;case 6:ZHn(this,null);return;case 7:vT(this,null);return;case 8:mT(this,null);return;case 9:!this.g&&(this.g=new Nn(Mt,this,9,10)),me(this.g);return;case 10:!this.e&&(this.e=new Nn(Mt,this,10,9)),me(this.e);return;case 11:OQ(this,null);return}WQ(this,e)},o.Ib=function(){return dHn(this)},o.b=0,o.c=0,o.d=null,o.j=0,o.k=0,w(Md,"ElkEdgeSectionImpl",452),b(158,120,{110:1,94:1,93:1,155:1,58:1,114:1,54:1,99:1,158:1,119:1,120:1}),o.Lh=function(e,t,i){var r;return e==0?(!this.Ab&&(this.Ab=new q(He,this,0,3)),this.Ab):zo(this,e-se(this.ii()),$n((r=u(Un(this,16),29),r||this.ii()),e),t,i)},o.Sh=function(e,t,i){var r,c;return t==0?(!this.Ab&&(this.Ab=new q(He,this,0,3)),Xc(this.Ab,e,i)):(c=u($n((r=u(Un(this,16),29),r||this.ii()),t),69),c.wk().zk(this,iu(this),t-se(this.ii()),e,i))},o.Uh=function(e,t,i){var r,c;return t==0?(!this.Ab&&(this.Ab=new q(He,this,0,3)),cr(this.Ab,e,i)):(c=u($n((r=u(Un(this,16),29),r||this.ii()),t),69),c.wk().Ak(this,iu(this),t-se(this.ii()),e,i))},o.Wh=function(e){var t;return e==0?!!this.Ab&&this.Ab.i!=0:Uo(this,e-se(this.ii()),$n((t=u(Un(this,16),29),t||this.ii()),e))},o.Zh=function(e){return ctn(this,e)},o.bi=function(e,t){var i;switch(e){case 0:!this.Ab&&(this.Ab=new q(He,this,0,3)),me(this.Ab),!this.Ab&&(this.Ab=new q(He,this,0,3)),Bt(this.Ab,u(t,16));return}Jo(this,e-se(this.ii()),$n((i=u(Un(this,16),29),i||this.ii()),e),t)},o.di=function(e){Xp(this,128,e)},o.ii=function(){return On(),qoe},o.ki=function(e){var t;switch(e){case 0:!this.Ab&&(this.Ab=new q(He,this,0,3)),me(this.Ab);return}Wo(this,e-se(this.ii()),$n((t=u(Un(this,16),29),t||this.ii()),e))},o.pi=function(){this.Bb|=1},o.qi=function(e){return U5(this,e)},o.Bb=0,w(qn,"EModelElementImpl",158),b(720,158,{110:1,94:1,93:1,480:1,155:1,58:1,114:1,54:1,99:1,158:1,119:1,120:1},oG),o.ri=function(e,t){return PGn(this,e,t)},o.si=function(e){var t,i,r,c,s;if(this.a!=jo(e)||e.Bb&256)throw M(new Gn(hK+e.zb+nb));for(r=Hr(e);Sc(r.a).i!=0;){if(i=u(py(r,0,(t=u(L(Sc(r.a),0),89),s=t.c,O(s,90)?u(s,29):(On(),Ps))),29),K0(i))return c=jo(i).wi().si(i),u(c,54).ci(e),c;r=Hr(i)}return(e.D!=null?e.D:e.B)=="java.util.Map$Entry"?new zSn(e):new ZV(e)},o.ti=function(e,t){return z0(this,e,t)},o.Lh=function(e,t,i){var r;switch(e){case 0:return!this.Ab&&(this.Ab=new q(He,this,0,3)),this.Ab;case 1:return this.a}return zo(this,e-se((On(),Na)),$n((r=u(Un(this,16),29),r||Na),e),t,i)},o.Sh=function(e,t,i){var r,c;switch(t){case 0:return!this.Ab&&(this.Ab=new q(He,this,0,3)),Xc(this.Ab,e,i);case 1:return this.a&&(i=u(this.a,54).Th(this,4,jf,i)),vY(this,u(e,241),i)}return c=u($n((r=u(Un(this,16),29),r||(On(),Na)),t),69),c.wk().zk(this,iu(this),t-se((On(),Na)),e,i)},o.Uh=function(e,t,i){var r,c;switch(t){case 0:return!this.Ab&&(this.Ab=new q(He,this,0,3)),cr(this.Ab,e,i);case 1:return vY(this,null,i)}return c=u($n((r=u(Un(this,16),29),r||(On(),Na)),t),69),c.wk().Ak(this,iu(this),t-se((On(),Na)),e,i)},o.Wh=function(e){var t;switch(e){case 0:return!!this.Ab&&this.Ab.i!=0;case 1:return!!this.a}return Uo(this,e-se((On(),Na)),$n((t=u(Un(this,16),29),t||Na),e))},o.bi=function(e,t){var i;switch(e){case 0:!this.Ab&&(this.Ab=new q(He,this,0,3)),me(this.Ab),!this.Ab&&(this.Ab=new q(He,this,0,3)),Bt(this.Ab,u(t,16));return;case 1:JKn(this,u(t,241));return}Jo(this,e-se((On(),Na)),$n((i=u(Un(this,16),29),i||Na),e),t)},o.ii=function(){return On(),Na},o.ki=function(e){var t;switch(e){case 0:!this.Ab&&(this.Ab=new q(He,this,0,3)),me(this.Ab);return;case 1:JKn(this,null);return}Wo(this,e-se((On(),Na)),$n((t=u(Un(this,16),29),t||Na),e))};var L9,Ddn,Toe;w(qn,"EFactoryImpl",720),b(1037,720,{110:1,2113:1,94:1,93:1,480:1,155:1,58:1,114:1,54:1,99:1,158:1,119:1,120:1},fvn),o.ri=function(e,t){switch(e.hk()){case 12:return u(t,149).Pg();case 13:return Jr(t);default:throw M(new Gn(ev+e.xe()+nb))}},o.si=function(e){var t,i,r,c,s,f,h,l;switch(e.G==-1&&(e.G=(t=jo(e),t?f1(t.vi(),e):-1)),e.G){case 4:return s=new eG,s;case 6:return f=new Zv,f;case 7:return h=new ez,h;case 8:return r=new HO,r;case 9:return i=new yE,i;case 10:return c=new jE,c;case 11:return l=new hvn,l;default:throw M(new Gn(hK+e.zb+nb))}},o.ti=function(e,t){switch(e.hk()){case 13:case 12:return null;default:throw M(new Gn(ev+e.xe()+nb))}},w(Md,"ElkGraphFactoryImpl",1037),b(448,158,{110:1,94:1,93:1,155:1,197:1,58:1,114:1,54:1,99:1,158:1,119:1,120:1}),o.Gh=function(){var e,t;return t=(e=u(Un(this,16),29),eJ(bh(e||this.ii()))),t==null?(a6(),a6(),MU):new wAn(this,t)},o.Lh=function(e,t,i){var r;switch(e){case 0:return!this.Ab&&(this.Ab=new q(He,this,0,3)),this.Ab;case 1:return this.xe()}return zo(this,e-se(this.ii()),$n((r=u(Un(this,16),29),r||this.ii()),e),t,i)},o.Wh=function(e){var t;switch(e){case 0:return!!this.Ab&&this.Ab.i!=0;case 1:return this.zb!=null}return Uo(this,e-se(this.ii()),$n((t=u(Un(this,16),29),t||this.ii()),e))},o.bi=function(e,t){var i;switch(e){case 0:!this.Ab&&(this.Ab=new q(He,this,0,3)),me(this.Ab),!this.Ab&&(this.Ab=new q(He,this,0,3)),Bt(this.Ab,u(t,16));return;case 1:this.ui(Oe(t));return}Jo(this,e-se(this.ii()),$n((i=u(Un(this,16),29),i||this.ii()),e),t)},o.ii=function(){return On(),Uoe},o.ki=function(e){var t;switch(e){case 0:!this.Ab&&(this.Ab=new q(He,this,0,3)),me(this.Ab);return;case 1:this.ui(null);return}Wo(this,e-se(this.ii()),$n((t=u(Un(this,16),29),t||this.ii()),e))},o.xe=function(){return this.zb},o.ui=function(e){zc(this,e)},o.Ib=function(){return m5(this)},o.zb=null,w(qn,"ENamedElementImpl",448),b(184,448,{110:1,94:1,93:1,155:1,197:1,58:1,241:1,114:1,54:1,99:1,158:1,184:1,119:1,120:1,690:1},HIn),o.Ah=function(e){return oKn(this,e)},o.Lh=function(e,t,i){var r;switch(e){case 0:return!this.Ab&&(this.Ab=new q(He,this,0,3)),this.Ab;case 1:return this.zb;case 2:return this.yb;case 3:return this.xb;case 4:return this.sb;case 5:return!this.rb&&(this.rb=new Hb(this,Ef,this)),this.rb;case 6:return!this.vb&&(this.vb=new jp(jf,this,6,7)),this.vb;case 7:return t?this.Db>>16==7?u(this.Cb,241):null:pOn(this)}return zo(this,e-se((On(),I1)),$n((r=u(Un(this,16),29),r||I1),e),t,i)},o.Sh=function(e,t,i){var r,c,s;switch(t){case 0:return!this.Ab&&(this.Ab=new q(He,this,0,3)),Xc(this.Ab,e,i);case 4:return this.sb&&(i=u(this.sb,54).Th(this,1,D9,i)),jY(this,u(e,480),i);case 5:return!this.rb&&(this.rb=new Hb(this,Ef,this)),Xc(this.rb,e,i);case 6:return!this.vb&&(this.vb=new jp(jf,this,6,7)),Xc(this.vb,e,i);case 7:return this.Cb&&(i=(c=this.Db>>16,c>=0?oKn(this,i):this.Cb.Th(this,-1-c,null,i))),So(this,e,7,i)}return s=u($n((r=u(Un(this,16),29),r||(On(),I1)),t),69),s.wk().zk(this,iu(this),t-se((On(),I1)),e,i)},o.Uh=function(e,t,i){var r,c;switch(t){case 0:return!this.Ab&&(this.Ab=new q(He,this,0,3)),cr(this.Ab,e,i);case 4:return jY(this,null,i);case 5:return!this.rb&&(this.rb=new Hb(this,Ef,this)),cr(this.rb,e,i);case 6:return!this.vb&&(this.vb=new jp(jf,this,6,7)),cr(this.vb,e,i);case 7:return So(this,null,7,i)}return c=u($n((r=u(Un(this,16),29),r||(On(),I1)),t),69),c.wk().Ak(this,iu(this),t-se((On(),I1)),e,i)},o.Wh=function(e){var t;switch(e){case 0:return!!this.Ab&&this.Ab.i!=0;case 1:return this.zb!=null;case 2:return this.yb!=null;case 3:return this.xb!=null;case 4:return!!this.sb;case 5:return!!this.rb&&this.rb.i!=0;case 6:return!!this.vb&&this.vb.i!=0;case 7:return!!pOn(this)}return Uo(this,e-se((On(),I1)),$n((t=u(Un(this,16),29),t||I1),e))},o.Zh=function(e){var t;return t=pTe(this,e),t||ctn(this,e)},o.bi=function(e,t){var i;switch(e){case 0:!this.Ab&&(this.Ab=new q(He,this,0,3)),me(this.Ab),!this.Ab&&(this.Ab=new q(He,this,0,3)),Bt(this.Ab,u(t,16));return;case 1:zc(this,Oe(t));return;case 2:MT(this,Oe(t));return;case 3:CT(this,Oe(t));return;case 4:tF(this,u(t,480));return;case 5:!this.rb&&(this.rb=new Hb(this,Ef,this)),me(this.rb),!this.rb&&(this.rb=new Hb(this,Ef,this)),Bt(this.rb,u(t,16));return;case 6:!this.vb&&(this.vb=new jp(jf,this,6,7)),me(this.vb),!this.vb&&(this.vb=new jp(jf,this,6,7)),Bt(this.vb,u(t,16));return}Jo(this,e-se((On(),I1)),$n((i=u(Un(this,16),29),i||I1),e),t)},o.ei=function(e){var t,i;if(e&&this.rb)for(i=new ne(this.rb);i.e!=i.i.gc();)t=ce(i),O(t,364)&&(u(t,364).w=null);Xp(this,64,e)},o.ii=function(){return On(),I1},o.ki=function(e){var t;switch(e){case 0:!this.Ab&&(this.Ab=new q(He,this,0,3)),me(this.Ab);return;case 1:zc(this,null);return;case 2:MT(this,null);return;case 3:CT(this,null);return;case 4:tF(this,null);return;case 5:!this.rb&&(this.rb=new Hb(this,Ef,this)),me(this.rb);return;case 6:!this.vb&&(this.vb=new jp(jf,this,6,7)),me(this.vb);return}Wo(this,e-se((On(),I1)),$n((t=u(Un(this,16),29),t||I1),e))},o.pi=function(){Hx(this)},o.vi=function(){return!this.rb&&(this.rb=new Hb(this,Ef,this)),this.rb},o.wi=function(){return this.sb},o.xi=function(){return this.ub},o.yi=function(){return this.xb},o.zi=function(){return this.yb},o.Ai=function(e){this.ub=e},o.Ib=function(){var e;return this.Db&64?m5(this):(e=new ls(m5(this)),e.a+=" (nsURI: ",Er(e,this.yb),e.a+=", nsPrefix: ",Er(e,this.xb),e.a+=")",e.a)},o.xb=null,o.yb=null,w(qn,"EPackageImpl",184),b(569,184,{110:1,2115:1,569:1,94:1,93:1,155:1,197:1,58:1,241:1,114:1,54:1,99:1,158:1,184:1,119:1,120:1,690:1},jHn),o.q=!1,o.r=!1;var Aoe=!1;w(Md,"ElkGraphPackageImpl",569),b(366,740,{110:1,342:1,167:1,135:1,422:1,366:1,96:1,94:1,93:1,58:1,114:1,54:1,99:1,119:1,120:1},eG),o.Ah=function(e){return AZ(this,e)},o.Lh=function(e,t,i){switch(e){case 7:return mOn(this);case 8:return this.a}return FY(this,e,t,i)},o.Sh=function(e,t,i){var r;switch(t){case 7:return this.Cb&&(i=(r=this.Db>>16,r>=0?AZ(this,i):this.Cb.Th(this,-1-r,null,i))),bW(this,u(e,167),i)}return Yx(this,e,t,i)},o.Uh=function(e,t,i){return t==7?bW(this,null,i):$$(this,e,t,i)},o.Wh=function(e){switch(e){case 7:return!!mOn(this);case 8:return!An("",this.a)}return qY(this,e)},o.bi=function(e,t){switch(e){case 7:oen(this,u(t,167));return;case 8:TQ(this,Oe(t));return}_Z(this,e,t)},o.ii=function(){return Cc(),Pdn},o.ki=function(e){switch(e){case 7:oen(this,null);return;case 8:TQ(this,"");return}JY(this,e)},o.Ib=function(){return h_n(this)},o.a="",w(Md,"ElkLabelImpl",366),b(207,741,{110:1,342:1,84:1,167:1,27:1,422:1,207:1,96:1,94:1,93:1,58:1,114:1,54:1,99:1,119:1,120:1},Zv),o.Ah=function(e){return OZ(this,e)},o.Lh=function(e,t,i){switch(e){case 9:return!this.c&&(this.c=new q(Qu,this,9,9)),this.c;case 10:return!this.a&&(this.a=new q(Qe,this,10,11)),this.a;case 11:return At(this);case 12:return!this.b&&(this.b=new q(Vt,this,12,3)),this.b;case 13:return _n(),!this.a&&(this.a=new q(Qe,this,10,11)),this.a.i>0}return bZ(this,e,t,i)},o.Sh=function(e,t,i){var r;switch(t){case 9:return!this.c&&(this.c=new q(Qu,this,9,9)),Xc(this.c,e,i);case 10:return!this.a&&(this.a=new q(Qe,this,10,11)),Xc(this.a,e,i);case 11:return this.Cb&&(i=(r=this.Db>>16,r>=0?OZ(this,i):this.Cb.Th(this,-1-r,null,i))),yV(this,u(e,27),i);case 12:return!this.b&&(this.b=new q(Vt,this,12,3)),Xc(this.b,e,i)}return NZ(this,e,t,i)},o.Uh=function(e,t,i){switch(t){case 9:return!this.c&&(this.c=new q(Qu,this,9,9)),cr(this.c,e,i);case 10:return!this.a&&(this.a=new q(Qe,this,10,11)),cr(this.a,e,i);case 11:return yV(this,null,i);case 12:return!this.b&&(this.b=new q(Vt,this,12,3)),cr(this.b,e,i)}return $Z(this,e,t,i)},o.Wh=function(e){switch(e){case 9:return!!this.c&&this.c.i!=0;case 10:return!!this.a&&this.a.i!=0;case 11:return!!At(this);case 12:return!!this.b&&this.b.i!=0;case 13:return!this.a&&(this.a=new q(Qe,this,10,11)),this.a.i>0}return cY(this,e)},o.bi=function(e,t){switch(e){case 9:!this.c&&(this.c=new q(Qu,this,9,9)),me(this.c),!this.c&&(this.c=new q(Qu,this,9,9)),Bt(this.c,u(t,16));return;case 10:!this.a&&(this.a=new q(Qe,this,10,11)),me(this.a),!this.a&&(this.a=new q(Qe,this,10,11)),Bt(this.a,u(t,16));return;case 11:SA(this,u(t,27));return;case 12:!this.b&&(this.b=new q(Vt,this,12,3)),me(this.b),!this.b&&(this.b=new q(Vt,this,12,3)),Bt(this.b,u(t,16));return}Vnn(this,e,t)},o.ii=function(){return Cc(),Idn},o.ki=function(e){switch(e){case 9:!this.c&&(this.c=new q(Qu,this,9,9)),me(this.c);return;case 10:!this.a&&(this.a=new q(Qe,this,10,11)),me(this.a);return;case 11:SA(this,null);return;case 12:!this.b&&(this.b=new q(Vt,this,12,3)),me(this.b);return}fZ(this,e)},o.Ib=function(){return Een(this)},w(Md,"ElkNodeImpl",207),b(193,741,{110:1,342:1,84:1,167:1,123:1,422:1,193:1,96:1,94:1,93:1,58:1,114:1,54:1,99:1,119:1,120:1},ez),o.Ah=function(e){return SZ(this,e)},o.Lh=function(e,t,i){return e==9?Af(this):bZ(this,e,t,i)},o.Sh=function(e,t,i){var r;switch(t){case 9:return this.Cb&&(i=(r=this.Db>>16,r>=0?SZ(this,i):this.Cb.Th(this,-1-r,null,i))),aV(this,u(e,27),i)}return NZ(this,e,t,i)},o.Uh=function(e,t,i){return t==9?aV(this,null,i):$Z(this,e,t,i)},o.Wh=function(e){return e==9?!!Af(this):cY(this,e)},o.bi=function(e,t){switch(e){case 9:ien(this,u(t,27));return}Vnn(this,e,t)},o.ii=function(){return Cc(),Odn},o.ki=function(e){switch(e){case 9:ien(this,null);return}fZ(this,e)},o.Ib=function(){return Yqn(this)},w(Md,"ElkPortImpl",193);var Soe=Nt(or,"BasicEMap/Entry");b(1122,120,{110:1,44:1,94:1,93:1,136:1,58:1,114:1,54:1,99:1,119:1,120:1},hvn),o.Fb=function(e){return this===e},o.ld=function(){return this.b},o.Hb=function(){return l0(this)},o.Di=function(e){AQ(this,u(e,149))},o.Lh=function(e,t,i){switch(e){case 0:return this.b;case 1:return this.c}return tA(this,e,t,i)},o.Wh=function(e){switch(e){case 0:return!!this.b;case 1:return this.c!=null}return Cx(this,e)},o.bi=function(e,t){switch(e){case 0:AQ(this,u(t,149));return;case 1:MQ(this,t);return}sF(this,e,t)},o.ii=function(){return Cc(),il},o.ki=function(e){switch(e){case 0:AQ(this,null);return;case 1:MQ(this,null);return}cF(this,e)},o.Bi=function(){var e;return this.a==-1&&(e=this.b,this.a=e?mt(e):0),this.a},o.md=function(){return this.c},o.Ci=function(e){this.a=e},o.nd=function(e){var t;return t=this.c,MQ(this,e),t},o.Ib=function(){var e;return this.Db&64?_s(this):(e=new x1,Be(Be(Be(e,this.b?this.b.Pg():gu),iR),D6(this.c)),e.a)},o.a=-1,o.c=null;var T1=w(Md,"ElkPropertyToValueMapEntryImpl",1122);b(996,1,{},dvn),w(Ui,"JsonAdapter",996),b(216,63,Pl,nh),w(Ui,"JsonImportException",216),b(868,1,{},sKn),w(Ui,"JsonImporter",868),b(903,1,{},wMn),w(Ui,"JsonImporter/lambda$0$Type",903),b(904,1,{},gMn),w(Ui,"JsonImporter/lambda$1$Type",904),b(912,1,{},Rkn),w(Ui,"JsonImporter/lambda$10$Type",912),b(914,1,{},pMn),w(Ui,"JsonImporter/lambda$11$Type",914),b(915,1,{},mMn),w(Ui,"JsonImporter/lambda$12$Type",915),b(921,1,{},IIn),w(Ui,"JsonImporter/lambda$13$Type",921),b(920,1,{},OIn),w(Ui,"JsonImporter/lambda$14$Type",920),b(916,1,{},vMn),w(Ui,"JsonImporter/lambda$15$Type",916),b(917,1,{},kMn),w(Ui,"JsonImporter/lambda$16$Type",917),b(918,1,{},yMn),w(Ui,"JsonImporter/lambda$17$Type",918),b(919,1,{},jMn),w(Ui,"JsonImporter/lambda$18$Type",919),b(924,1,{},Kkn),w(Ui,"JsonImporter/lambda$19$Type",924),b(905,1,{},_kn),w(Ui,"JsonImporter/lambda$2$Type",905),b(922,1,{},Hkn),w(Ui,"JsonImporter/lambda$20$Type",922),b(923,1,{},qkn),w(Ui,"JsonImporter/lambda$21$Type",923),b(927,1,{},Ukn),w(Ui,"JsonImporter/lambda$22$Type",927),b(925,1,{},Gkn),w(Ui,"JsonImporter/lambda$23$Type",925),b(926,1,{},zkn),w(Ui,"JsonImporter/lambda$24$Type",926),b(929,1,{},Xkn),w(Ui,"JsonImporter/lambda$25$Type",929),b(928,1,{},Vkn),w(Ui,"JsonImporter/lambda$26$Type",928),b(930,1,ie,EMn),o.Cd=function(e){O4e(this.b,this.a,Oe(e))},w(Ui,"JsonImporter/lambda$27$Type",930),b(931,1,ie,CMn),o.Cd=function(e){D4e(this.b,this.a,Oe(e))},w(Ui,"JsonImporter/lambda$28$Type",931),b(932,1,{},MMn),w(Ui,"JsonImporter/lambda$29$Type",932),b(908,1,{},Wkn),w(Ui,"JsonImporter/lambda$3$Type",908),b(933,1,{},TMn),w(Ui,"JsonImporter/lambda$30$Type",933),b(934,1,{},Jkn),w(Ui,"JsonImporter/lambda$31$Type",934),b(935,1,{},Qkn),w(Ui,"JsonImporter/lambda$32$Type",935),b(936,1,{},Ykn),w(Ui,"JsonImporter/lambda$33$Type",936),b(937,1,{},Zkn),w(Ui,"JsonImporter/lambda$34$Type",937),b(870,1,{},nyn),w(Ui,"JsonImporter/lambda$35$Type",870),b(941,1,{},kSn),w(Ui,"JsonImporter/lambda$36$Type",941),b(938,1,ie,eyn),o.Cd=function(e){F3e(this.a,u(e,377))},w(Ui,"JsonImporter/lambda$37$Type",938),b(939,1,ie,AMn),o.Cd=function(e){mle(this.a,this.b,u(e,166))},w(Ui,"JsonImporter/lambda$38$Type",939),b(940,1,ie,SMn),o.Cd=function(e){vle(this.a,this.b,u(e,166))},w(Ui,"JsonImporter/lambda$39$Type",940),b(906,1,{},tyn),w(Ui,"JsonImporter/lambda$4$Type",906),b(942,1,ie,iyn),o.Cd=function(e){B3e(this.a,u(e,8))},w(Ui,"JsonImporter/lambda$40$Type",942),b(907,1,{},ryn),w(Ui,"JsonImporter/lambda$5$Type",907),b(911,1,{},cyn),w(Ui,"JsonImporter/lambda$6$Type",911),b(909,1,{},uyn),w(Ui,"JsonImporter/lambda$7$Type",909),b(910,1,{},oyn),w(Ui,"JsonImporter/lambda$8$Type",910),b(913,1,{},syn),w(Ui,"JsonImporter/lambda$9$Type",913),b(961,1,ie,fyn),o.Cd=function(e){Ip(this.a,new qb(Oe(e)))},w(Ui,"JsonMetaDataConverter/lambda$0$Type",961),b(962,1,ie,hyn),o.Cd=function(e){Pwe(this.a,u(e,245))},w(Ui,"JsonMetaDataConverter/lambda$1$Type",962),b(963,1,ie,lyn),o.Cd=function(e){S2e(this.a,u(e,143))},w(Ui,"JsonMetaDataConverter/lambda$2$Type",963),b(964,1,ie,ayn),o.Cd=function(e){Iwe(this.a,u(e,170))},w(Ui,"JsonMetaDataConverter/lambda$3$Type",964),b(245,22,{3:1,34:1,22:1,245:1},gp);var wO,gO,mU,pO,mO,vO,vU,kU,kO=we(Dy,"GraphFeature",245,ke,dme,tbe),Poe;b(11,1,{34:1,149:1},lt,Dt,Mn,Ni),o.Fd=function(e){return C1e(this,u(e,149))},o.Fb=function(e){return nOn(this,e)},o.Sg=function(){return rn(this)},o.Pg=function(){return this.b},o.Hb=function(){return t1(this.b)},o.Ib=function(){return this.b},w(Dy,"Property",11),b(671,1,Ne,tD),o.Ne=function(e,t){return N5e(this,u(e,96),u(t,96))},o.Fb=function(e){return this===e},o.Oe=function(){return new Te(this)},w(Dy,"PropertyHolderComparator",671),b(709,1,Si,xG),o.Nb=function(e){_i(this,e)},o.Pb=function(){return $4e(this)},o.Qb=function(){sEn()},o.Ob=function(){return!!this.a},w(_S,"ElkGraphUtil/AncestorIterator",709);var Ldn=Nt(or,"EList");b(70,56,{20:1,31:1,56:1,16:1,15:1,70:1,61:1}),o.bd=function(e,t){k5(this,e,t)},o.Fc=function(e){return ve(this,e)},o.cd=function(e,t){return JQ(this,e,t)},o.Gc=function(e){return Bt(this,e)},o.Ii=function(){return new yp(this)},o.Ji=function(){return new A7(this)},o.Ki=function(e){return vk(this,e)},o.Li=function(){return!0},o.Mi=function(e,t){},o.Ni=function(){},o.Oi=function(e,t){t$(this,e,t)},o.Pi=function(e,t,i){},o.Qi=function(e,t){},o.Ri=function(e,t,i){},o.Fb=function(e){return xqn(this,e)},o.Hb=function(){return zQ(this)},o.Si=function(){return!1},o.Kc=function(){return new ne(this)},o.ed=function(){return new kp(this)},o.fd=function(e){var t;if(t=this.gc(),e<0||e>t)throw M(new Kb(e,t));return new oN(this,e)},o.Ui=function(e,t){this.Ti(e,this.dd(t))},o.Mc=function(e){return rT(this,e)},o.Wi=function(e,t){return t},o.hd=function(e,t){return Bg(this,e,t)},o.Ib=function(){return KY(this)},o.Yi=function(){return!0},o.Zi=function(e,t){return rm(this,t)},w(or,"AbstractEList",70),b(66,70,Ch,EE,S0,KQ),o.Ei=function(e,t){return Zx(this,e,t)},o.Fi=function(e){return LRn(this,e)},o.Gi=function(e,t){Nk(this,e,t)},o.Hi=function(e){ik(this,e)},o.$i=function(e){return nQ(this,e)},o.$b=function(){t5(this)},o.Hc=function(e){return km(this,e)},o.Xb=function(e){return L(this,e)},o._i=function(e){var t,i,r;++this.j,i=this.g==null?0:this.g.length,e>i&&(r=this.g,t=i+(i/2|0)+4,t=0?(this.gd(t),!0):!1},o.Xi=function(e,t){return this.Dj(e,this.Zi(e,t))},o.gc=function(){return this.Ej()},o.Pc=function(){return this.Fj()},o.Qc=function(e){return this.Gj(e)},o.Ib=function(){return this.Hj()},w(or,"DelegatingEList",2093),b(2094,2093,YWn),o.Ei=function(e,t){return $en(this,e,t)},o.Fi=function(e){return this.Ei(this.Ej(),e)},o.Gi=function(e,t){EHn(this,e,t)},o.Hi=function(e){lHn(this,e)},o.Li=function(){return!this.Mj()},o.$b=function(){J5(this)},o.Ij=function(e,t,i,r,c){return new ZIn(this,e,t,i,r,c)},o.Jj=function(e){it(this.jj(),e)},o.Kj=function(){return null},o.Lj=function(){return-1},o.jj=function(){return null},o.Mj=function(){return!1},o.Nj=function(e,t){return t},o.Oj=function(e,t){return t},o.Pj=function(){return!1},o.Qj=function(){return!this.Aj()},o.Ti=function(e,t){var i,r;return this.Pj()?(r=this.Qj(),i=onn(this,e,t),this.Jj(this.Ij(7,Y(t),i,e,r)),i):onn(this,e,t)},o.gd=function(e){var t,i,r,c;return this.Pj()?(i=null,r=this.Qj(),t=this.Ij(4,c=tM(this,e),null,e,r),this.Mj()&&c?(i=this.Oj(c,i),i?(i.nj(t),i.oj()):this.Jj(t)):i?(i.nj(t),i.oj()):this.Jj(t),c):(c=tM(this,e),this.Mj()&&c&&(i=this.Oj(c,null),i&&i.oj()),c)},o.Xi=function(e,t){return IUn(this,e,t)},w(g3,"DelegatingNotifyingListImpl",2094),b(152,1,Wy),o.nj=function(e){return zZ(this,e)},o.oj=function(){h$(this)},o.gj=function(){return this.d},o.Kj=function(){return null},o.Rj=function(){return null},o.hj=function(e){return-1},o.ij=function(){return pqn(this)},o.jj=function(){return null},o.kj=function(){return aen(this)},o.lj=function(){return this.o<0?this.o<-2?-2-this.o-1:-1:this.o},o.Sj=function(){return!1},o.mj=function(e){var t,i,r,c,s,f,h,l,a,d,g;switch(this.d){case 1:case 2:switch(c=e.gj(),c){case 1:case 2:if(s=e.jj(),x(s)===x(this.jj())&&this.hj(null)==e.hj(null))return this.g=e.ij(),e.gj()==1&&(this.d=1),!0}case 4:{switch(c=e.gj(),c){case 4:{if(s=e.jj(),x(s)===x(this.jj())&&this.hj(null)==e.hj(null))return a=Yen(this),l=this.o<0?this.o<-2?-2-this.o-1:-1:this.o,f=e.lj(),this.d=6,g=new S0(2),l<=f?(ve(g,this.n),ve(g,e.kj()),this.g=S(T(ye,1),Ke,28,15,[this.o=l,f+1])):(ve(g,e.kj()),ve(g,this.n),this.g=S(T(ye,1),Ke,28,15,[this.o=f,l])),this.n=g,a||(this.o=-2-this.o-1),!0;break}}break}case 6:{switch(c=e.gj(),c){case 4:{if(s=e.jj(),x(s)===x(this.jj())&&this.hj(null)==e.hj(null)){for(a=Yen(this),f=e.lj(),d=u(this.g,53),r=K(ye,Ke,28,d.length+1,15,1),t=0;t>>0,t.toString(16))),r.a+=" (eventType: ",this.d){case 1:{r.a+="SET";break}case 2:{r.a+="UNSET";break}case 3:{r.a+="ADD";break}case 5:{r.a+="ADD_MANY";break}case 4:{r.a+="REMOVE";break}case 6:{r.a+="REMOVE_MANY";break}case 7:{r.a+="MOVE";break}case 8:{r.a+="REMOVING_ADAPTER";break}case 9:{r.a+="RESOLVE";break}default:{TD(r,this.d);break}}if(rUn(this)&&(r.a+=", touch: true"),r.a+=", position: ",TD(r,this.o<0?this.o<-2?-2-this.o-1:-1:this.o),r.a+=", notifier: ",T6(r,this.jj()),r.a+=", feature: ",T6(r,this.Kj()),r.a+=", oldValue: ",T6(r,aen(this)),r.a+=", newValue: ",this.d==6&&O(this.g,53)){for(i=u(this.g,53),r.a+="[",e=0;e10?((!this.b||this.c.j!=this.a)&&(this.b=new B6(this),this.a=this.j),of(this.b,e)):km(this,e)},o.Yi=function(){return!0},o.a=0,w(or,"AbstractEList/1",966),b(302,77,AB,Kb),w(or,"AbstractEList/BasicIndexOutOfBoundsException",302),b(37,1,Si,ne),o.Nb=function(e){_i(this,e)},o.Xj=function(){if(this.i.j!=this.f)throw M(new Bo)},o.Yj=function(){return ce(this)},o.Ob=function(){return this.e!=this.i.gc()},o.Pb=function(){return this.Yj()},o.Qb=function(){D5(this)},o.e=0,o.f=0,o.g=-1,w(or,"AbstractEList/EIterator",37),b(286,37,Hh,kp,oN),o.Qb=function(){D5(this)},o.Rb=function(e){OBn(this,e)},o.Zj=function(){var e;try{return e=this.d.Xb(--this.e),this.Xj(),this.g=this.e,e}catch(t){throw t=It(t),O(t,77)?(this.Xj(),M(new nc)):M(t)}},o.$j=function(e){xRn(this,e)},o.Sb=function(){return this.e!=0},o.Tb=function(){return this.e},o.Ub=function(){return this.Zj()},o.Vb=function(){return this.e-1},o.Wb=function(e){this.$j(e)},w(or,"AbstractEList/EListIterator",286),b(355,37,Si,yp),o.Yj=function(){return Mx(this)},o.Qb=function(){throw M(new Pe)},w(or,"AbstractEList/NonResolvingEIterator",355),b(398,286,Hh,A7,SV),o.Rb=function(e){throw M(new Pe)},o.Yj=function(){var e;try{return e=this.c.Vi(this.e),this.Xj(),this.g=this.e++,e}catch(t){throw t=It(t),O(t,77)?(this.Xj(),M(new nc)):M(t)}},o.Zj=function(){var e;try{return e=this.c.Vi(--this.e),this.Xj(),this.g=this.e,e}catch(t){throw t=It(t),O(t,77)?(this.Xj(),M(new nc)):M(t)}},o.Qb=function(){throw M(new Pe)},o.Wb=function(e){throw M(new Pe)},w(or,"AbstractEList/NonResolvingEListIterator",398),b(2080,70,ZWn),o.Ei=function(e,t){var i,r,c,s,f,h,l,a,d,g,p;if(c=t.gc(),c!=0){for(a=u(Un(this.a,4),129),d=a==null?0:a.length,p=d+c,r=V$(this,p),g=d-e,g>0&&Ic(a,e,r,e+c,g),l=t.Kc(),f=0;fi)throw M(new Kb(e,i));return new yIn(this,e)},o.$b=function(){var e,t;++this.j,e=u(Un(this.a,4),129),t=e==null?0:e.length,gm(this,null),t$(this,t,e)},o.Hc=function(e){var t,i,r,c,s;if(t=u(Un(this.a,4),129),t!=null){if(e!=null){for(r=t,c=0,s=r.length;c=i)throw M(new Kb(e,i));return t[e]},o.dd=function(e){var t,i,r;if(t=u(Un(this.a,4),129),t!=null){if(e!=null){for(i=0,r=t.length;ii)throw M(new Kb(e,i));return new kIn(this,e)},o.Ti=function(e,t){var i,r,c;if(i=_Bn(this),c=i==null?0:i.length,e>=c)throw M(new Ir(vK+e+Td+c));if(t>=c)throw M(new Ir(kK+t+Td+c));return r=i[t],e!=t&&(e0&&Ic(e,0,t,0,i),t},o.Qc=function(e){var t,i,r;return t=u(Un(this.a,4),129),r=t==null?0:t.length,r>0&&(e.lengthr&&$t(e,r,null),e};var Ioe;w(or,"ArrayDelegatingEList",2080),b(1051,37,Si,jLn),o.Xj=function(){if(this.b.j!=this.f||x(u(Un(this.b.a,4),129))!==x(this.a))throw M(new Bo)},o.Qb=function(){D5(this),this.a=u(Un(this.b.a,4),129)},w(or,"ArrayDelegatingEList/EIterator",1051),b(722,286,Hh,NPn,kIn),o.Xj=function(){if(this.b.j!=this.f||x(u(Un(this.b.a,4),129))!==x(this.a))throw M(new Bo)},o.$j=function(e){xRn(this,e),this.a=u(Un(this.b.a,4),129)},o.Qb=function(){D5(this),this.a=u(Un(this.b.a,4),129)},w(or,"ArrayDelegatingEList/EListIterator",722),b(1052,355,Si,ELn),o.Xj=function(){if(this.b.j!=this.f||x(u(Un(this.b.a,4),129))!==x(this.a))throw M(new Bo)},w(or,"ArrayDelegatingEList/NonResolvingEIterator",1052),b(723,398,Hh,$Pn,yIn),o.Xj=function(){if(this.b.j!=this.f||x(u(Un(this.b.a,4),129))!==x(this.a))throw M(new Bo)},w(or,"ArrayDelegatingEList/NonResolvingEListIterator",723),b(615,302,AB,aL),w(or,"BasicEList/BasicIndexOutOfBoundsException",615),b(710,66,Ch,gX),o.bd=function(e,t){throw M(new Pe)},o.Fc=function(e){throw M(new Pe)},o.cd=function(e,t){throw M(new Pe)},o.Gc=function(e){throw M(new Pe)},o.$b=function(){throw M(new Pe)},o._i=function(e){throw M(new Pe)},o.Kc=function(){return this.Ii()},o.ed=function(){return this.Ji()},o.fd=function(e){return this.Ki(e)},o.Ti=function(e,t){throw M(new Pe)},o.Ui=function(e,t){throw M(new Pe)},o.gd=function(e){throw M(new Pe)},o.Mc=function(e){throw M(new Pe)},o.hd=function(e,t){throw M(new Pe)},w(or,"BasicEList/UnmodifiableEList",710),b(721,1,{3:1,20:1,16:1,15:1,61:1,597:1}),o.bd=function(e,t){a1e(this,e,u(t,44))},o.Fc=function(e){return cae(this,u(e,44))},o.Jc=function(e){qi(this,e)},o.Xb=function(e){return u(L(this.c,e),136)},o.Ti=function(e,t){return u(this.c.Ti(e,t),44)},o.Ui=function(e,t){d1e(this,e,u(t,44))},o.Lc=function(){return new Tn(null,new In(this,16))},o.gd=function(e){return u(this.c.gd(e),44)},o.hd=function(e,t){return Swe(this,e,u(t,44))},o.jd=function(e){ud(this,e)},o.Nc=function(){return new In(this,16)},o.Oc=function(){return new Tn(null,new In(this,16))},o.cd=function(e,t){return this.c.cd(e,t)},o.Gc=function(e){return this.c.Gc(e)},o.$b=function(){this.c.$b()},o.Hc=function(e){return this.c.Hc(e)},o.Ic=function(e){return Mk(this.c,e)},o._j=function(){var e,t,i;if(this.d==null){for(this.d=K(Ndn,qcn,66,2*this.f+1,0,1),i=this.e,this.f=0,t=this.c.Kc();t.e!=t.i.gc();)e=u(t.Yj(),136),uA(this,e);this.e=i}},o.Fb=function(e){return sSn(this,e)},o.Hb=function(){return zQ(this.c)},o.dd=function(e){return this.c.dd(e)},o.ak=function(){this.c=new dyn(this)},o.dc=function(){return this.f==0},o.Kc=function(){return this.c.Kc()},o.ed=function(){return this.c.ed()},o.fd=function(e){return this.c.fd(e)},o.bk=function(){return uk(this)},o.ck=function(e,t,i){return new ySn(e,t,i)},o.dk=function(){return new pvn},o.Mc=function(e){return V$n(this,e)},o.gc=function(){return this.f},o.kd=function(e,t){return new Jl(this.c,e,t)},o.Pc=function(){return this.c.Pc()},o.Qc=function(e){return this.c.Qc(e)},o.Ib=function(){return KY(this.c)},o.e=0,o.f=0,w(or,"BasicEMap",721),b(1046,66,Ch,dyn),o.Mi=function(e,t){Ufe(this,u(t,136))},o.Pi=function(e,t,i){var r;++(r=this,u(t,136),r).a.e},o.Qi=function(e,t){Gfe(this,u(t,136))},o.Ri=function(e,t,i){U1e(this,u(t,136),u(i,136))},o.Oi=function(e,t){_xn(this.a)},w(or,"BasicEMap/1",1046),b(1047,66,Ch,pvn),o.aj=function(e){return K(DNe,nJn,621,e,0,1)},w(or,"BasicEMap/2",1047),b(1048,Rf,Lu,byn),o.$b=function(){this.a.c.$b()},o.Hc=function(e){return wx(this.a,e)},o.Kc=function(){return this.a.f==0?(m4(),aE.a):new Jjn(this.a)},o.Mc=function(e){var t;return t=this.a.f,VT(this.a,e),this.a.f!=t},o.gc=function(){return this.a.f},w(or,"BasicEMap/3",1048),b(1049,31,pw,wyn),o.$b=function(){this.a.c.$b()},o.Hc=function(e){return Fqn(this.a,e)},o.Kc=function(){return this.a.f==0?(m4(),aE.a):new Qjn(this.a)},o.gc=function(){return this.a.f},w(or,"BasicEMap/4",1049),b(1050,Rf,Lu,gyn),o.$b=function(){this.a.c.$b()},o.Hc=function(e){var t,i,r,c,s,f,h,l,a;if(this.a.f>0&&O(e,44)&&(this.a._j(),l=u(e,44),h=l.ld(),c=h==null?0:mt(h),s=dV(this.a,c),t=this.a.d[s],t)){for(i=u(t.g,379),a=t.i,f=0;f"+this.c},o.a=0;var DNe=w(or,"BasicEMap/EntryImpl",621);b(546,1,{},CE),w(or,"BasicEMap/View",546);var aE;b(783,1,{}),o.Fb=function(e){return Wnn((Dn(),sr),e)},o.Hb=function(){return rY((Dn(),sr))},o.Ib=function(){return ra((Dn(),sr))},w(or,"ECollections/BasicEmptyUnmodifiableEList",783),b(1348,1,Hh,mvn),o.Nb=function(e){_i(this,e)},o.Rb=function(e){throw M(new Pe)},o.Ob=function(){return!1},o.Sb=function(){return!1},o.Pb=function(){throw M(new nc)},o.Tb=function(){return 0},o.Ub=function(){throw M(new nc)},o.Vb=function(){return-1},o.Qb=function(){throw M(new Pe)},o.Wb=function(e){throw M(new Pe)},w(or,"ECollections/BasicEmptyUnmodifiableEList/1",1348),b(1346,783,{20:1,16:1,15:1,61:1},ujn),o.bd=function(e,t){yEn()},o.Fc=function(e){return jEn()},o.cd=function(e,t){return EEn()},o.Gc=function(e){return CEn()},o.$b=function(){MEn()},o.Hc=function(e){return!1},o.Ic=function(e){return!1},o.Jc=function(e){qi(this,e)},o.Xb=function(e){return vX((Dn(),e)),null},o.dd=function(e){return-1},o.dc=function(){return!0},o.Kc=function(){return this.a},o.ed=function(){return this.a},o.fd=function(e){return this.a},o.Ti=function(e,t){return TEn()},o.Ui=function(e,t){AEn()},o.Lc=function(){return new Tn(null,new In(this,16))},o.gd=function(e){return SEn()},o.Mc=function(e){return PEn()},o.hd=function(e,t){return IEn()},o.gc=function(){return 0},o.jd=function(e){ud(this,e)},o.Nc=function(){return new In(this,16)},o.Oc=function(){return new Tn(null,new In(this,16))},o.kd=function(e,t){return Dn(),new Jl(sr,e,t)},o.Pc=function(){return gW((Dn(),sr))},o.Qc=function(e){return Dn(),S5(sr,e)},w(or,"ECollections/EmptyUnmodifiableEList",1346),b(1347,783,{20:1,16:1,15:1,61:1,597:1},ojn),o.bd=function(e,t){yEn()},o.Fc=function(e){return jEn()},o.cd=function(e,t){return EEn()},o.Gc=function(e){return CEn()},o.$b=function(){MEn()},o.Hc=function(e){return!1},o.Ic=function(e){return!1},o.Jc=function(e){qi(this,e)},o.Xb=function(e){return vX((Dn(),e)),null},o.dd=function(e){return-1},o.dc=function(){return!0},o.Kc=function(){return this.a},o.ed=function(){return this.a},o.fd=function(e){return this.a},o.Ti=function(e,t){return TEn()},o.Ui=function(e,t){AEn()},o.Lc=function(){return new Tn(null,new In(this,16))},o.gd=function(e){return SEn()},o.Mc=function(e){return PEn()},o.hd=function(e,t){return IEn()},o.gc=function(){return 0},o.jd=function(e){ud(this,e)},o.Nc=function(){return new In(this,16)},o.Oc=function(){return new Tn(null,new In(this,16))},o.kd=function(e,t){return Dn(),new Jl(sr,e,t)},o.Pc=function(){return gW((Dn(),sr))},o.Qc=function(e){return Dn(),S5(sr,e)},o.bk=function(){return Dn(),Dn(),Wh},w(or,"ECollections/EmptyUnmodifiableEMap",1347);var xdn=Nt(or,"Enumerator"),yO;b(288,1,{288:1},jF),o.Fb=function(e){var t;return this===e?!0:O(e,288)?(t=u(e,288),this.f==t.f&&Ube(this.i,t.i)&&WL(this.a,this.f&256?t.f&256?t.a:null:t.f&256?null:t.a)&&WL(this.d,t.d)&&WL(this.g,t.g)&&WL(this.e,t.e)&&b9e(this,t)):!1},o.Hb=function(){return this.f},o.Ib=function(){return gUn(this)},o.f=0;var Ooe=0,Doe=0,Loe=0,Noe=0,Fdn=0,Bdn=0,Rdn=0,Kdn=0,_dn=0,$oe,N9=0,$9=0,xoe=0,Foe=0,jO,Hdn;w(or,"URI",288),b(1121,45,Zg,sjn),o.zc=function(e,t){return u(Dr(this,Oe(e),u(t,288)),288)},w(or,"URI/URICache",1121),b(506,66,Ch,avn,sM),o.Si=function(){return!0},w(or,"UniqueEList",506),b(590,63,Pl,eT),w(or,"WrappedException",590);var He=Nt(ts,iJn),Zw=Nt(ts,rJn),ku=Nt(ts,cJn),ng=Nt(ts,uJn),Ef=Nt(ts,oJn),Ts=Nt(ts,"EClass"),EU=Nt(ts,"EDataType"),Boe;b(1233,45,Zg,fjn),o.xc=function(e){return Ai(e)?Nc(this,e):Kr(wr(this.f,e))},w(ts,"EDataType/Internal/ConversionDelegate/Factory/Registry/Impl",1233);var EO=Nt(ts,"EEnum"),Bl=Nt(ts,sJn),jr=Nt(ts,fJn),As=Nt(ts,hJn),Ss,yb=Nt(ts,lJn),eg=Nt(ts,aJn);b(1042,1,{},lvn),o.Ib=function(){return"NIL"},w(ts,"EStructuralFeature/Internal/DynamicValueHolder/1",1042);var Roe;b(1041,45,Zg,hjn),o.xc=function(e){return Ai(e)?Nc(this,e):Kr(wr(this.f,e))},w(ts,"EStructuralFeature/Internal/SettingDelegate/Factory/Registry/Impl",1041);var fu=Nt(ts,dJn),R3=Nt(ts,"EValidator/PatternMatcher"),qdn,Udn,Hn,A1,tg,Da,Koe,_oe,Hoe,La,S1,Na,jb,Yf,qoe,Uoe,Ps,P1,Goe,I1,ig,q2,ar,zoe,Xoe,Eb,CO=Nt(Tt,"FeatureMap/Entry");b(545,1,{76:1},MC),o.Lk=function(){return this.a},o.md=function(){return this.b},w(qn,"BasicEObjectImpl/1",545),b(1040,1,TK,DMn),o.Fk=function(e){return YN(this.a,this.b,e)},o.Qj=function(){return bOn(this.a,this.b)},o.Wb=function(e){rJ(this.a,this.b,e)},o.Gk=function(){_we(this.a,this.b)},w(qn,"BasicEObjectImpl/4",1040),b(2081,1,{114:1}),o.Mk=function(e){this.e=e==0?Voe:K(ki,Fn,1,e,5,1)},o.li=function(e){return this.e[e]},o.mi=function(e,t){this.e[e]=t},o.ni=function(e){this.e[e]=null},o.Nk=function(){return this.c},o.Ok=function(){throw M(new Pe)},o.Pk=function(){throw M(new Pe)},o.Qk=function(){return this.d},o.Rk=function(){return this.e!=null},o.Sk=function(e){this.c=e},o.Tk=function(e){throw M(new Pe)},o.Uk=function(e){throw M(new Pe)},o.Vk=function(e){this.d=e};var Voe;w(qn,"BasicEObjectImpl/EPropertiesHolderBaseImpl",2081),b(192,2081,{114:1},cf),o.Ok=function(){return this.a},o.Pk=function(){return this.b},o.Tk=function(e){this.a=e},o.Uk=function(e){this.b=e},w(qn,"BasicEObjectImpl/EPropertiesHolderImpl",192),b(516,99,bWn,ME),o.uh=function(){return this.f},o.zh=function(){return this.k},o.Bh=function(e,t){this.g=e,this.i=t},o.Dh=function(){return this.j&2?this.$h().Nk():this.ii()},o.Fh=function(){return this.i},o.wh=function(){return(this.j&1)!=0},o.Ph=function(){return this.g},o.Vh=function(){return(this.j&4)!=0},o.$h=function(){return!this.k&&(this.k=new cf),this.k},o.ci=function(e){this.$h().Sk(e),e?this.j|=2:this.j&=-3},o.ei=function(e){this.$h().Uk(e),e?this.j|=4:this.j&=-5},o.ii=function(){return(G1(),Hn).S},o.i=0,o.j=1,w(qn,"EObjectImpl",516),b(798,516,{110:1,94:1,93:1,58:1,114:1,54:1,99:1},ZV),o.li=function(e){return this.e[e]},o.mi=function(e,t){this.e[e]=t},o.ni=function(e){this.e[e]=null},o.Dh=function(){return this.d},o.Ih=function(e){return Ot(this.d,e)},o.Kh=function(){return this.d},o.Oh=function(){return this.e!=null},o.$h=function(){return!this.k&&(this.k=new vvn),this.k},o.ci=function(e){this.d=e},o.hi=function(){var e;return this.e==null&&(e=se(this.d),this.e=e==0?Woe:K(ki,Fn,1,e,5,1)),this},o.ji=function(){return 0};var Woe;w(qn,"DynamicEObjectImpl",798),b(1522,798,{110:1,44:1,94:1,93:1,136:1,58:1,114:1,54:1,99:1},zSn),o.Fb=function(e){return this===e},o.Hb=function(){return l0(this)},o.ci=function(e){this.d=e,this.b=oy(e,"key"),this.c=oy(e,v8)},o.Bi=function(){var e;return this.a==-1&&(e=l$(this,this.b),this.a=e==null?0:mt(e)),this.a},o.ld=function(){return l$(this,this.b)},o.md=function(){return l$(this,this.c)},o.Ci=function(e){this.a=e},o.Di=function(e){rJ(this,this.b,e)},o.nd=function(e){var t;return t=l$(this,this.c),rJ(this,this.c,e),t},o.a=0,w(qn,"DynamicEObjectImpl/BasicEMapEntry",1522),b(1523,1,{114:1},vvn),o.Mk=function(e){throw M(new Pe)},o.li=function(e){throw M(new Pe)},o.mi=function(e,t){throw M(new Pe)},o.ni=function(e){throw M(new Pe)},o.Nk=function(){throw M(new Pe)},o.Ok=function(){return this.a},o.Pk=function(){return this.b},o.Qk=function(){return this.c},o.Rk=function(){throw M(new Pe)},o.Sk=function(e){throw M(new Pe)},o.Tk=function(e){this.a=e},o.Uk=function(e){this.b=e},o.Vk=function(e){this.c=e},w(qn,"DynamicEObjectImpl/DynamicEPropertiesHolderImpl",1523),b(519,158,{110:1,94:1,93:1,598:1,155:1,58:1,114:1,54:1,99:1,519:1,158:1,119:1,120:1},tG),o.Ah=function(e){return PZ(this,e)},o.Lh=function(e,t,i){var r;switch(e){case 0:return!this.Ab&&(this.Ab=new q(He,this,0,3)),this.Ab;case 1:return this.d;case 2:return i?(!this.b&&(this.b=new lo((On(),ar),pc,this)),this.b):(!this.b&&(this.b=new lo((On(),ar),pc,this)),uk(this.b));case 3:return vOn(this);case 4:return!this.a&&(this.a=new ti(Ia,this,4)),this.a;case 5:return!this.c&&(this.c=new jg(Ia,this,5)),this.c}return zo(this,e-se((On(),A1)),$n((r=u(Un(this,16),29),r||A1),e),t,i)},o.Sh=function(e,t,i){var r,c,s;switch(t){case 0:return!this.Ab&&(this.Ab=new q(He,this,0,3)),Xc(this.Ab,e,i);case 3:return this.Cb&&(i=(c=this.Db>>16,c>=0?PZ(this,i):this.Cb.Th(this,-1-c,null,i))),wW(this,u(e,155),i)}return s=u($n((r=u(Un(this,16),29),r||(On(),A1)),t),69),s.wk().zk(this,iu(this),t-se((On(),A1)),e,i)},o.Uh=function(e,t,i){var r,c;switch(t){case 0:return!this.Ab&&(this.Ab=new q(He,this,0,3)),cr(this.Ab,e,i);case 2:return!this.b&&(this.b=new lo((On(),ar),pc,this)),UC(this.b,e,i);case 3:return wW(this,null,i);case 4:return!this.a&&(this.a=new ti(Ia,this,4)),cr(this.a,e,i)}return c=u($n((r=u(Un(this,16),29),r||(On(),A1)),t),69),c.wk().Ak(this,iu(this),t-se((On(),A1)),e,i)},o.Wh=function(e){var t;switch(e){case 0:return!!this.Ab&&this.Ab.i!=0;case 1:return this.d!=null;case 2:return!!this.b&&this.b.f!=0;case 3:return!!vOn(this);case 4:return!!this.a&&this.a.i!=0;case 5:return!!this.c&&this.c.i!=0}return Uo(this,e-se((On(),A1)),$n((t=u(Un(this,16),29),t||A1),e))},o.bi=function(e,t){var i;switch(e){case 0:!this.Ab&&(this.Ab=new q(He,this,0,3)),me(this.Ab),!this.Ab&&(this.Ab=new q(He,this,0,3)),Bt(this.Ab,u(t,16));return;case 1:Obe(this,Oe(t));return;case 2:!this.b&&(this.b=new lo((On(),ar),pc,this)),TT(this.b,t);return;case 3:rqn(this,u(t,155));return;case 4:!this.a&&(this.a=new ti(Ia,this,4)),me(this.a),!this.a&&(this.a=new ti(Ia,this,4)),Bt(this.a,u(t,16));return;case 5:!this.c&&(this.c=new jg(Ia,this,5)),me(this.c),!this.c&&(this.c=new jg(Ia,this,5)),Bt(this.c,u(t,16));return}Jo(this,e-se((On(),A1)),$n((i=u(Un(this,16),29),i||A1),e),t)},o.ii=function(){return On(),A1},o.ki=function(e){var t;switch(e){case 0:!this.Ab&&(this.Ab=new q(He,this,0,3)),me(this.Ab);return;case 1:IQ(this,null);return;case 2:!this.b&&(this.b=new lo((On(),ar),pc,this)),this.b.c.$b();return;case 3:rqn(this,null);return;case 4:!this.a&&(this.a=new ti(Ia,this,4)),me(this.a);return;case 5:!this.c&&(this.c=new jg(Ia,this,5)),me(this.c);return}Wo(this,e-se((On(),A1)),$n((t=u(Un(this,16),29),t||A1),e))},o.Ib=function(){return sBn(this)},o.d=null,w(qn,"EAnnotationImpl",519),b(141,721,Ucn,Iu),o.Gi=function(e,t){Wle(this,e,u(t,44))},o.Wk=function(e,t){return Qae(this,u(e,44),t)},o.$i=function(e){return u(u(this.c,71).$i(e),136)},o.Ii=function(){return u(this.c,71).Ii()},o.Ji=function(){return u(this.c,71).Ji()},o.Ki=function(e){return u(this.c,71).Ki(e)},o.Xk=function(e,t){return UC(this,e,t)},o.Fk=function(e){return u(this.c,79).Fk(e)},o.ak=function(){},o.Qj=function(){return u(this.c,79).Qj()},o.ck=function(e,t,i){var r;return r=u(jo(this.b).wi().si(this.b),136),r.Ci(e),r.Di(t),r.nd(i),r},o.dk=function(){return new BG(this)},o.Wb=function(e){TT(this,e)},o.Gk=function(){u(this.c,79).Gk()},w(Tt,"EcoreEMap",141),b(165,141,Ucn,lo),o._j=function(){var e,t,i,r,c,s;if(this.d==null){for(s=K(Ndn,qcn,66,2*this.f+1,0,1),i=this.c.Kc();i.e!=i.i.gc();)t=u(i.Yj(),136),r=t.Bi(),c=(r&et)%s.length,e=s[c],!e&&(e=s[c]=new BG(this)),e.Fc(t);this.d=s}},w(qn,"EAnnotationImpl/1",165),b(292,448,{110:1,94:1,93:1,155:1,197:1,58:1,114:1,481:1,54:1,99:1,158:1,292:1,119:1,120:1}),o.Lh=function(e,t,i){var r,c;switch(e){case 0:return!this.Ab&&(this.Ab=new q(He,this,0,3)),this.Ab;case 1:return this.zb;case 2:return _n(),!!(this.Bb&256);case 3:return _n(),!!(this.Bb&512);case 4:return Y(this.s);case 5:return Y(this.t);case 6:return _n(),!!this.Jk();case 7:return _n(),c=this.s,c>=1;case 8:return t?ws(this):this.r;case 9:return this.q}return zo(this,e-se(this.ii()),$n((r=u(Un(this,16),29),r||this.ii()),e),t,i)},o.Uh=function(e,t,i){var r,c;switch(t){case 0:return!this.Ab&&(this.Ab=new q(He,this,0,3)),cr(this.Ab,e,i);case 9:return hN(this,i)}return c=u($n((r=u(Un(this,16),29),r||this.ii()),t),69),c.wk().Ak(this,iu(this),t-se(this.ii()),e,i)},o.Wh=function(e){var t,i;switch(e){case 0:return!!this.Ab&&this.Ab.i!=0;case 1:return this.zb!=null;case 2:return(this.Bb&256)==0;case 3:return(this.Bb&512)==0;case 4:return this.s!=0;case 5:return this.t!=1;case 6:return this.Jk();case 7:return i=this.s,i>=1;case 8:return!!this.r&&!this.q.e&&v0(this.q).i==0;case 9:return!!this.q&&!(this.r&&!this.q.e&&v0(this.q).i==0)}return Uo(this,e-se(this.ii()),$n((t=u(Un(this,16),29),t||this.ii()),e))},o.bi=function(e,t){var i,r;switch(e){case 0:!this.Ab&&(this.Ab=new q(He,this,0,3)),me(this.Ab),!this.Ab&&(this.Ab=new q(He,this,0,3)),Bt(this.Ab,u(t,16));return;case 1:this.ui(Oe(t));return;case 2:c1(this,on(un(t)));return;case 3:u1(this,on(un(t)));return;case 4:e1(this,u(t,17).a);return;case 5:this.Zk(u(t,17).a);return;case 8:ad(this,u(t,142));return;case 9:r=Ff(this,u(t,89),null),r&&r.oj();return}Jo(this,e-se(this.ii()),$n((i=u(Un(this,16),29),i||this.ii()),e),t)},o.ii=function(){return On(),Xoe},o.ki=function(e){var t,i;switch(e){case 0:!this.Ab&&(this.Ab=new q(He,this,0,3)),me(this.Ab);return;case 1:this.ui(null);return;case 2:c1(this,!0);return;case 3:u1(this,!0);return;case 4:e1(this,0);return;case 5:this.Zk(1);return;case 8:ad(this,null);return;case 9:i=Ff(this,null,null),i&&i.oj();return}Wo(this,e-se(this.ii()),$n((t=u(Un(this,16),29),t||this.ii()),e))},o.pi=function(){ws(this),this.Bb|=1},o.Hk=function(){return ws(this)},o.Ik=function(){return this.t},o.Jk=function(){var e;return e=this.t,e>1||e==-1},o.Si=function(){return(this.Bb&512)!=0},o.Yk=function(e,t){return EY(this,e,t)},o.Zk=function(e){Zb(this,e)},o.Ib=function(){return Knn(this)},o.s=0,o.t=1,w(qn,"ETypedElementImpl",292),b(462,292,{110:1,94:1,93:1,155:1,197:1,58:1,179:1,69:1,114:1,481:1,54:1,99:1,158:1,462:1,292:1,119:1,120:1,692:1}),o.Ah=function(e){return QRn(this,e)},o.Lh=function(e,t,i){var r,c;switch(e){case 0:return!this.Ab&&(this.Ab=new q(He,this,0,3)),this.Ab;case 1:return this.zb;case 2:return _n(),!!(this.Bb&256);case 3:return _n(),!!(this.Bb&512);case 4:return Y(this.s);case 5:return Y(this.t);case 6:return _n(),!!this.Jk();case 7:return _n(),c=this.s,c>=1;case 8:return t?ws(this):this.r;case 9:return this.q;case 10:return _n(),!!(this.Bb&Us);case 11:return _n(),!!(this.Bb&Tw);case 12:return _n(),!!(this.Bb&vw);case 13:return this.j;case 14:return Tm(this);case 15:return _n(),!!(this.Bb&$u);case 16:return _n(),!!(this.Bb&wh);case 17:return Gb(this)}return zo(this,e-se(this.ii()),$n((r=u(Un(this,16),29),r||this.ii()),e),t,i)},o.Sh=function(e,t,i){var r,c,s;switch(t){case 0:return!this.Ab&&(this.Ab=new q(He,this,0,3)),Xc(this.Ab,e,i);case 17:return this.Cb&&(i=(c=this.Db>>16,c>=0?QRn(this,i):this.Cb.Th(this,-1-c,null,i))),So(this,e,17,i)}return s=u($n((r=u(Un(this,16),29),r||this.ii()),t),69),s.wk().zk(this,iu(this),t-se(this.ii()),e,i)},o.Uh=function(e,t,i){var r,c;switch(t){case 0:return!this.Ab&&(this.Ab=new q(He,this,0,3)),cr(this.Ab,e,i);case 9:return hN(this,i);case 17:return So(this,null,17,i)}return c=u($n((r=u(Un(this,16),29),r||this.ii()),t),69),c.wk().Ak(this,iu(this),t-se(this.ii()),e,i)},o.Wh=function(e){var t,i;switch(e){case 0:return!!this.Ab&&this.Ab.i!=0;case 1:return this.zb!=null;case 2:return(this.Bb&256)==0;case 3:return(this.Bb&512)==0;case 4:return this.s!=0;case 5:return this.t!=1;case 6:return this.Jk();case 7:return i=this.s,i>=1;case 8:return!!this.r&&!this.q.e&&v0(this.q).i==0;case 9:return!!this.q&&!(this.r&&!this.q.e&&v0(this.q).i==0);case 10:return(this.Bb&Us)==0;case 11:return(this.Bb&Tw)!=0;case 12:return(this.Bb&vw)!=0;case 13:return this.j!=null;case 14:return Tm(this)!=null;case 15:return(this.Bb&$u)!=0;case 16:return(this.Bb&wh)!=0;case 17:return!!Gb(this)}return Uo(this,e-se(this.ii()),$n((t=u(Un(this,16),29),t||this.ii()),e))},o.bi=function(e,t){var i,r;switch(e){case 0:!this.Ab&&(this.Ab=new q(He,this,0,3)),me(this.Ab),!this.Ab&&(this.Ab=new q(He,this,0,3)),Bt(this.Ab,u(t,16));return;case 1:FN(this,Oe(t));return;case 2:c1(this,on(un(t)));return;case 3:u1(this,on(un(t)));return;case 4:e1(this,u(t,17).a);return;case 5:this.Zk(u(t,17).a);return;case 8:ad(this,u(t,142));return;case 9:r=Ff(this,u(t,89),null),r&&r.oj();return;case 10:fm(this,on(un(t)));return;case 11:am(this,on(un(t)));return;case 12:hm(this,on(un(t)));return;case 13:wX(this,Oe(t));return;case 15:lm(this,on(un(t)));return;case 16:dm(this,on(un(t)));return}Jo(this,e-se(this.ii()),$n((i=u(Un(this,16),29),i||this.ii()),e),t)},o.ii=function(){return On(),zoe},o.ki=function(e){var t,i;switch(e){case 0:!this.Ab&&(this.Ab=new q(He,this,0,3)),me(this.Ab);return;case 1:O(this.Cb,90)&&hw(Zu(u(this.Cb,90)),4),zc(this,null);return;case 2:c1(this,!0);return;case 3:u1(this,!0);return;case 4:e1(this,0);return;case 5:this.Zk(1);return;case 8:ad(this,null);return;case 9:i=Ff(this,null,null),i&&i.oj();return;case 10:fm(this,!0);return;case 11:am(this,!1);return;case 12:hm(this,!1);return;case 13:this.i=null,kT(this,null);return;case 15:lm(this,!1);return;case 16:dm(this,!1);return}Wo(this,e-se(this.ii()),$n((t=u(Un(this,16),29),t||this.ii()),e))},o.pi=function(){P4(Lr((Du(),zi),this)),ws(this),this.Bb|=1},o.pk=function(){return this.f},o.ik=function(){return Tm(this)},o.qk=function(){return Gb(this)},o.uk=function(){return null},o.$k=function(){return this.k},o.Lj=function(){return this.n},o.vk=function(){return bA(this)},o.wk=function(){var e,t,i,r,c,s,f,h,l;return this.p||(i=Gb(this),(i.i==null&&bh(i),i.i).length,r=this.uk(),r&&se(Gb(r)),c=ws(this),f=c.kk(),e=f?f.i&1?f==so?Gt:f==ye?Gi:f==cg?sv:f==Pi?si:f==xa?tb:f==X2?ib:f==Fu?p3:I8:f:null,t=Tm(this),h=c.ik(),G5e(this),this.Bb&wh&&((s=xZ((Du(),zi),i))&&s!=this||(s=$p(Lr(zi,this))))?this.p=new NMn(this,s):this.Jk()?this.al()?r?this.Bb&$u?e?this.bl()?this.p=new Za(47,e,this,r):this.p=new Za(5,e,this,r):this.bl()?this.p=new rd(46,this,r):this.p=new rd(4,this,r):e?this.bl()?this.p=new Za(49,e,this,r):this.p=new Za(7,e,this,r):this.bl()?this.p=new rd(48,this,r):this.p=new rd(6,this,r):this.Bb&$u?e?e==Pd?this.p=new Xl(50,Soe,this):this.bl()?this.p=new Xl(43,e,this):this.p=new Xl(1,e,this):this.bl()?this.p=new Wl(42,this):this.p=new Wl(0,this):e?e==Pd?this.p=new Xl(41,Soe,this):this.bl()?this.p=new Xl(45,e,this):this.p=new Xl(3,e,this):this.bl()?this.p=new Wl(44,this):this.p=new Wl(2,this):O(c,156)?e==CO?this.p=new Wl(40,this):this.Bb&512?this.Bb&$u?e?this.p=new Xl(9,e,this):this.p=new Wl(8,this):e?this.p=new Xl(11,e,this):this.p=new Wl(10,this):this.Bb&$u?e?this.p=new Xl(13,e,this):this.p=new Wl(12,this):e?this.p=new Xl(15,e,this):this.p=new Wl(14,this):r?(l=r.t,l>1||l==-1?this.bl()?this.Bb&$u?e?this.p=new Za(25,e,this,r):this.p=new rd(24,this,r):e?this.p=new Za(27,e,this,r):this.p=new rd(26,this,r):this.Bb&$u?e?this.p=new Za(29,e,this,r):this.p=new rd(28,this,r):e?this.p=new Za(31,e,this,r):this.p=new rd(30,this,r):this.bl()?this.Bb&$u?e?this.p=new Za(33,e,this,r):this.p=new rd(32,this,r):e?this.p=new Za(35,e,this,r):this.p=new rd(34,this,r):this.Bb&$u?e?this.p=new Za(37,e,this,r):this.p=new rd(36,this,r):e?this.p=new Za(39,e,this,r):this.p=new rd(38,this,r)):this.bl()?this.Bb&$u?e?this.p=new Xl(17,e,this):this.p=new Wl(16,this):e?this.p=new Xl(19,e,this):this.p=new Wl(18,this):this.Bb&$u?e?this.p=new Xl(21,e,this):this.p=new Wl(20,this):e?this.p=new Xl(23,e,this):this.p=new Wl(22,this):this._k()?this.bl()?this.p=new jSn(u(c,29),this,r):this.p=new tJ(u(c,29),this,r):O(c,156)?e==CO?this.p=new Wl(40,this):this.Bb&$u?e?this.p=new yPn(t,h,this,(gx(),f==ye?Qdn:f==so?zdn:f==xa?Ydn:f==cg?Jdn:f==Pi?Wdn:f==X2?Zdn:f==Fu?Xdn:f==fs?Vdn:TU)):this.p=new NIn(u(c,156),t,h,this):e?this.p=new kPn(t,h,this,(gx(),f==ye?Qdn:f==so?zdn:f==xa?Ydn:f==cg?Jdn:f==Pi?Wdn:f==X2?Zdn:f==Fu?Xdn:f==fs?Vdn:TU)):this.p=new LIn(u(c,156),t,h,this):this.al()?r?this.Bb&$u?this.bl()?this.p=new CSn(u(c,29),this,r):this.p=new _V(u(c,29),this,r):this.bl()?this.p=new ESn(u(c,29),this,r):this.p=new HL(u(c,29),this,r):this.Bb&$u?this.bl()?this.p=new kAn(u(c,29),this):this.p=new eV(u(c,29),this):this.bl()?this.p=new vAn(u(c,29),this):this.p=new PL(u(c,29),this):this.bl()?r?this.Bb&$u?this.p=new MSn(u(c,29),this,r):this.p=new RV(u(c,29),this,r):this.Bb&$u?this.p=new yAn(u(c,29),this):this.p=new tV(u(c,29),this):r?this.Bb&$u?this.p=new TSn(u(c,29),this,r):this.p=new KV(u(c,29),this,r):this.Bb&$u?this.p=new jAn(u(c,29),this):this.p=new oM(u(c,29),this)),this.p},o.rk=function(){return(this.Bb&Us)!=0},o._k=function(){return!1},o.al=function(){return!1},o.sk=function(){return(this.Bb&wh)!=0},o.xk=function(){return a$(this)},o.bl=function(){return!1},o.tk=function(){return(this.Bb&$u)!=0},o.cl=function(e){this.k=e},o.ui=function(e){FN(this,e)},o.Ib=function(){return $A(this)},o.e=!1,o.n=0,w(qn,"EStructuralFeatureImpl",462),b(331,462,{110:1,94:1,93:1,35:1,155:1,197:1,58:1,179:1,69:1,114:1,481:1,54:1,99:1,331:1,158:1,462:1,292:1,119:1,120:1,692:1},fD),o.Lh=function(e,t,i){var r,c;switch(e){case 0:return!this.Ab&&(this.Ab=new q(He,this,0,3)),this.Ab;case 1:return this.zb;case 2:return _n(),!!(this.Bb&256);case 3:return _n(),!!(this.Bb&512);case 4:return Y(this.s);case 5:return Y(this.t);case 6:return _n(),!!Nnn(this);case 7:return _n(),c=this.s,c>=1;case 8:return t?ws(this):this.r;case 9:return this.q;case 10:return _n(),!!(this.Bb&Us);case 11:return _n(),!!(this.Bb&Tw);case 12:return _n(),!!(this.Bb&vw);case 13:return this.j;case 14:return Tm(this);case 15:return _n(),!!(this.Bb&$u);case 16:return _n(),!!(this.Bb&wh);case 17:return Gb(this);case 18:return _n(),!!(this.Bb&kc);case 19:return t?x$(this):FLn(this)}return zo(this,e-se((On(),tg)),$n((r=u(Un(this,16),29),r||tg),e),t,i)},o.Wh=function(e){var t,i;switch(e){case 0:return!!this.Ab&&this.Ab.i!=0;case 1:return this.zb!=null;case 2:return(this.Bb&256)==0;case 3:return(this.Bb&512)==0;case 4:return this.s!=0;case 5:return this.t!=1;case 6:return Nnn(this);case 7:return i=this.s,i>=1;case 8:return!!this.r&&!this.q.e&&v0(this.q).i==0;case 9:return!!this.q&&!(this.r&&!this.q.e&&v0(this.q).i==0);case 10:return(this.Bb&Us)==0;case 11:return(this.Bb&Tw)!=0;case 12:return(this.Bb&vw)!=0;case 13:return this.j!=null;case 14:return Tm(this)!=null;case 15:return(this.Bb&$u)!=0;case 16:return(this.Bb&wh)!=0;case 17:return!!Gb(this);case 18:return(this.Bb&kc)!=0;case 19:return!!FLn(this)}return Uo(this,e-se((On(),tg)),$n((t=u(Un(this,16),29),t||tg),e))},o.bi=function(e,t){var i,r;switch(e){case 0:!this.Ab&&(this.Ab=new q(He,this,0,3)),me(this.Ab),!this.Ab&&(this.Ab=new q(He,this,0,3)),Bt(this.Ab,u(t,16));return;case 1:FN(this,Oe(t));return;case 2:c1(this,on(un(t)));return;case 3:u1(this,on(un(t)));return;case 4:e1(this,u(t,17).a);return;case 5:nEn(this,u(t,17).a);return;case 8:ad(this,u(t,142));return;case 9:r=Ff(this,u(t,89),null),r&&r.oj();return;case 10:fm(this,on(un(t)));return;case 11:am(this,on(un(t)));return;case 12:hm(this,on(un(t)));return;case 13:wX(this,Oe(t));return;case 15:lm(this,on(un(t)));return;case 16:dm(this,on(un(t)));return;case 18:sx(this,on(un(t)));return}Jo(this,e-se((On(),tg)),$n((i=u(Un(this,16),29),i||tg),e),t)},o.ii=function(){return On(),tg},o.ki=function(e){var t,i;switch(e){case 0:!this.Ab&&(this.Ab=new q(He,this,0,3)),me(this.Ab);return;case 1:O(this.Cb,90)&&hw(Zu(u(this.Cb,90)),4),zc(this,null);return;case 2:c1(this,!0);return;case 3:u1(this,!0);return;case 4:e1(this,0);return;case 5:this.b=0,Zb(this,1);return;case 8:ad(this,null);return;case 9:i=Ff(this,null,null),i&&i.oj();return;case 10:fm(this,!0);return;case 11:am(this,!1);return;case 12:hm(this,!1);return;case 13:this.i=null,kT(this,null);return;case 15:lm(this,!1);return;case 16:dm(this,!1);return;case 18:sx(this,!1);return}Wo(this,e-se((On(),tg)),$n((t=u(Un(this,16),29),t||tg),e))},o.pi=function(){x$(this),P4(Lr((Du(),zi),this)),ws(this),this.Bb|=1},o.Jk=function(){return Nnn(this)},o.Yk=function(e,t){return this.b=0,this.a=null,EY(this,e,t)},o.Zk=function(e){nEn(this,e)},o.Ib=function(){var e;return this.Db&64?$A(this):(e=new ls($A(this)),e.a+=" (iD: ",ql(e,(this.Bb&kc)!=0),e.a+=")",e.a)},o.b=0,w(qn,"EAttributeImpl",331),b(364,448,{110:1,94:1,93:1,142:1,155:1,197:1,58:1,114:1,54:1,99:1,364:1,158:1,119:1,120:1,691:1}),o.dl=function(e){return e.Dh()==this},o.Ah=function(e){return _x(this,e)},o.Bh=function(e,t){this.w=null,this.Db=t<<16|this.Db&255,this.Cb=e},o.Lh=function(e,t,i){var r;switch(e){case 0:return!this.Ab&&(this.Ab=new q(He,this,0,3)),this.Ab;case 1:return this.zb;case 2:return this.D!=null?this.D:this.B;case 3:return K0(this);case 4:return this.ik();case 5:return this.F;case 6:return t?jo(this):D4(this);case 7:return!this.A&&(this.A=new Tu(fu,this,7)),this.A}return zo(this,e-se(this.ii()),$n((r=u(Un(this,16),29),r||this.ii()),e),t,i)},o.Sh=function(e,t,i){var r,c,s;switch(t){case 0:return!this.Ab&&(this.Ab=new q(He,this,0,3)),Xc(this.Ab,e,i);case 6:return this.Cb&&(i=(c=this.Db>>16,c>=0?_x(this,i):this.Cb.Th(this,-1-c,null,i))),So(this,e,6,i)}return s=u($n((r=u(Un(this,16),29),r||this.ii()),t),69),s.wk().zk(this,iu(this),t-se(this.ii()),e,i)},o.Uh=function(e,t,i){var r,c;switch(t){case 0:return!this.Ab&&(this.Ab=new q(He,this,0,3)),cr(this.Ab,e,i);case 6:return So(this,null,6,i);case 7:return!this.A&&(this.A=new Tu(fu,this,7)),cr(this.A,e,i)}return c=u($n((r=u(Un(this,16),29),r||this.ii()),t),69),c.wk().Ak(this,iu(this),t-se(this.ii()),e,i)},o.Wh=function(e){var t;switch(e){case 0:return!!this.Ab&&this.Ab.i!=0;case 1:return this.zb!=null;case 2:return this.D!=null&&this.D==this.F;case 3:return!!K0(this);case 4:return this.ik()!=null;case 5:return this.F!=null&&this.F!=this.D&&this.F!=this.B;case 6:return!!D4(this);case 7:return!!this.A&&this.A.i!=0}return Uo(this,e-se(this.ii()),$n((t=u(Un(this,16),29),t||this.ii()),e))},o.bi=function(e,t){var i;switch(e){case 0:!this.Ab&&(this.Ab=new q(He,this,0,3)),me(this.Ab),!this.Ab&&(this.Ab=new q(He,this,0,3)),Bt(this.Ab,u(t,16));return;case 1:xM(this,Oe(t));return;case 2:wL(this,Oe(t));return;case 5:Lm(this,Oe(t));return;case 7:!this.A&&(this.A=new Tu(fu,this,7)),me(this.A),!this.A&&(this.A=new Tu(fu,this,7)),Bt(this.A,u(t,16));return}Jo(this,e-se(this.ii()),$n((i=u(Un(this,16),29),i||this.ii()),e),t)},o.ii=function(){return On(),Koe},o.ki=function(e){var t;switch(e){case 0:!this.Ab&&(this.Ab=new q(He,this,0,3)),me(this.Ab);return;case 1:O(this.Cb,184)&&(u(this.Cb,184).tb=null),zc(this,null);return;case 2:um(this,null),G4(this,this.D);return;case 5:Lm(this,null);return;case 7:!this.A&&(this.A=new Tu(fu,this,7)),me(this.A);return}Wo(this,e-se(this.ii()),$n((t=u(Un(this,16),29),t||this.ii()),e))},o.hk=function(){var e;return this.G==-1&&(this.G=(e=jo(this),e?f1(e.vi(),this):-1)),this.G},o.ik=function(){return null},o.jk=function(){return jo(this)},o.el=function(){return this.v},o.kk=function(){return K0(this)},o.lk=function(){return this.D!=null?this.D:this.B},o.mk=function(){return this.F},o.fk=function(e){return OF(this,e)},o.fl=function(e){this.v=e},o.gl=function(e){yxn(this,e)},o.hl=function(e){this.C=e},o.ui=function(e){xM(this,e)},o.Ib=function(){return UT(this)},o.C=null,o.D=null,o.G=-1,w(qn,"EClassifierImpl",364),b(90,364,{110:1,94:1,93:1,29:1,142:1,155:1,197:1,58:1,114:1,54:1,99:1,90:1,364:1,158:1,482:1,119:1,120:1,691:1},uG),o.dl=function(e){return Nae(this,e.Dh())},o.Lh=function(e,t,i){var r;switch(e){case 0:return!this.Ab&&(this.Ab=new q(He,this,0,3)),this.Ab;case 1:return this.zb;case 2:return this.D!=null?this.D:this.B;case 3:return K0(this);case 4:return null;case 5:return this.F;case 6:return t?jo(this):D4(this);case 7:return!this.A&&(this.A=new Tu(fu,this,7)),this.A;case 8:return _n(),!!(this.Bb&256);case 9:return _n(),!!(this.Bb&512);case 10:return Hr(this);case 11:return!this.q&&(this.q=new q(As,this,11,10)),this.q;case 12:return Wg(this);case 13:return X5(this);case 14:return X5(this),this.r;case 15:return Wg(this),this.k;case 16:return Enn(this);case 17:return $F(this);case 18:return bh(this);case 19:return TA(this);case 20:return Wg(this),this.o;case 21:return!this.s&&(this.s=new q(ku,this,21,17)),this.s;case 22:return Sc(this);case 23:return yF(this)}return zo(this,e-se((On(),Da)),$n((r=u(Un(this,16),29),r||Da),e),t,i)},o.Sh=function(e,t,i){var r,c,s;switch(t){case 0:return!this.Ab&&(this.Ab=new q(He,this,0,3)),Xc(this.Ab,e,i);case 6:return this.Cb&&(i=(c=this.Db>>16,c>=0?_x(this,i):this.Cb.Th(this,-1-c,null,i))),So(this,e,6,i);case 11:return!this.q&&(this.q=new q(As,this,11,10)),Xc(this.q,e,i);case 21:return!this.s&&(this.s=new q(ku,this,21,17)),Xc(this.s,e,i)}return s=u($n((r=u(Un(this,16),29),r||(On(),Da)),t),69),s.wk().zk(this,iu(this),t-se((On(),Da)),e,i)},o.Uh=function(e,t,i){var r,c;switch(t){case 0:return!this.Ab&&(this.Ab=new q(He,this,0,3)),cr(this.Ab,e,i);case 6:return So(this,null,6,i);case 7:return!this.A&&(this.A=new Tu(fu,this,7)),cr(this.A,e,i);case 11:return!this.q&&(this.q=new q(As,this,11,10)),cr(this.q,e,i);case 21:return!this.s&&(this.s=new q(ku,this,21,17)),cr(this.s,e,i);case 22:return cr(Sc(this),e,i)}return c=u($n((r=u(Un(this,16),29),r||(On(),Da)),t),69),c.wk().Ak(this,iu(this),t-se((On(),Da)),e,i)},o.Wh=function(e){var t;switch(e){case 0:return!!this.Ab&&this.Ab.i!=0;case 1:return this.zb!=null;case 2:return this.D!=null&&this.D==this.F;case 3:return!!K0(this);case 4:return!1;case 5:return this.F!=null&&this.F!=this.D&&this.F!=this.B;case 6:return!!D4(this);case 7:return!!this.A&&this.A.i!=0;case 8:return(this.Bb&256)!=0;case 9:return(this.Bb&512)!=0;case 10:return!!this.u&&Sc(this.u.a).i!=0&&!(this.n&&Ix(this.n));case 11:return!!this.q&&this.q.i!=0;case 12:return Wg(this).i!=0;case 13:return X5(this).i!=0;case 14:return X5(this),this.r.i!=0;case 15:return Wg(this),this.k.i!=0;case 16:return Enn(this).i!=0;case 17:return $F(this).i!=0;case 18:return bh(this).i!=0;case 19:return TA(this).i!=0;case 20:return Wg(this),!!this.o;case 21:return!!this.s&&this.s.i!=0;case 22:return!!this.n&&Ix(this.n);case 23:return yF(this).i!=0}return Uo(this,e-se((On(),Da)),$n((t=u(Un(this,16),29),t||Da),e))},o.Zh=function(e){var t;return t=this.i==null||this.q&&this.q.i!=0?null:oy(this,e),t||ctn(this,e)},o.bi=function(e,t){var i;switch(e){case 0:!this.Ab&&(this.Ab=new q(He,this,0,3)),me(this.Ab),!this.Ab&&(this.Ab=new q(He,this,0,3)),Bt(this.Ab,u(t,16));return;case 1:xM(this,Oe(t));return;case 2:wL(this,Oe(t));return;case 5:Lm(this,Oe(t));return;case 7:!this.A&&(this.A=new Tu(fu,this,7)),me(this.A),!this.A&&(this.A=new Tu(fu,this,7)),Bt(this.A,u(t,16));return;case 8:CY(this,on(un(t)));return;case 9:MY(this,on(un(t)));return;case 10:J5(Hr(this)),Bt(Hr(this),u(t,16));return;case 11:!this.q&&(this.q=new q(As,this,11,10)),me(this.q),!this.q&&(this.q=new q(As,this,11,10)),Bt(this.q,u(t,16));return;case 21:!this.s&&(this.s=new q(ku,this,21,17)),me(this.s),!this.s&&(this.s=new q(ku,this,21,17)),Bt(this.s,u(t,16));return;case 22:me(Sc(this)),Bt(Sc(this),u(t,16));return}Jo(this,e-se((On(),Da)),$n((i=u(Un(this,16),29),i||Da),e),t)},o.ii=function(){return On(),Da},o.ki=function(e){var t;switch(e){case 0:!this.Ab&&(this.Ab=new q(He,this,0,3)),me(this.Ab);return;case 1:O(this.Cb,184)&&(u(this.Cb,184).tb=null),zc(this,null);return;case 2:um(this,null),G4(this,this.D);return;case 5:Lm(this,null);return;case 7:!this.A&&(this.A=new Tu(fu,this,7)),me(this.A);return;case 8:CY(this,!1);return;case 9:MY(this,!1);return;case 10:this.u&&J5(this.u);return;case 11:!this.q&&(this.q=new q(As,this,11,10)),me(this.q);return;case 21:!this.s&&(this.s=new q(ku,this,21,17)),me(this.s);return;case 22:this.n&&me(this.n);return}Wo(this,e-se((On(),Da)),$n((t=u(Un(this,16),29),t||Da),e))},o.pi=function(){var e,t;if(Wg(this),X5(this),Enn(this),$F(this),bh(this),TA(this),yF(this),t5(ube(Zu(this))),this.s)for(e=0,t=this.s.i;e=0;--t)L(this,t);return WY(this,e)},o.Gk=function(){me(this)},o.Zi=function(e,t){return q$n(this,e,t)},w(Tt,"EcoreEList",632),b(505,632,Qr,R7),o.Li=function(){return!1},o.Lj=function(){return this.c},o.Mj=function(){return!1},o.ol=function(){return!0},o.Si=function(){return!0},o.Wi=function(e,t){return t},o.Yi=function(){return!1},o.c=0,w(Tt,"EObjectEList",505),b(83,505,Qr,ti),o.Mj=function(){return!0},o.ml=function(){return!1},o.al=function(){return!0},w(Tt,"EObjectContainmentEList",83),b(555,83,Qr,$C),o.Ni=function(){this.b=!0},o.Qj=function(){return this.b},o.Gk=function(){var e;me(this),fo(this.e)?(e=this.b,this.b=!1,it(this.e,new Bs(this.e,2,this.c,e,!1))):this.b=!1},o.b=!1,w(Tt,"EObjectContainmentEList/Unsettable",555),b(1161,555,Qr,mPn),o.Ti=function(e,t){var i,r;return i=u(y5(this,e,t),89),fo(this.e)&&t4(this,new ok(this.a,7,(On(),_oe),Y(t),(r=i.c,O(r,90)?u(r,29):Ps),e)),i},o.Uj=function(e,t){return A8e(this,u(e,89),t)},o.Vj=function(e,t){return T8e(this,u(e,89),t)},o.Wj=function(e,t,i){return Ike(this,u(e,89),u(t,89),i)},o.Ij=function(e,t,i,r,c){switch(e){case 3:return J6(this,e,t,i,r,this.i>1);case 5:return J6(this,e,t,i,r,this.i-u(i,15).gc()>0);default:return new ml(this.e,e,this.c,t,i,r,!0)}},o.Tj=function(){return!0},o.Qj=function(){return Ix(this)},o.Gk=function(){me(this)},w(qn,"EClassImpl/1",1161),b(1175,1174,Hcn),o.dj=function(e){var t,i,r,c,s,f,h;if(i=e.gj(),i!=8){if(r=s9e(e),r==0)switch(i){case 1:case 9:{h=e.kj(),h!=null&&(t=Zu(u(h,482)),!t.c&&(t.c=new W3),rT(t.c,e.jj())),f=e.ij(),f!=null&&(c=u(f,482),c.Bb&1||(t=Zu(c),!t.c&&(t.c=new W3),ve(t.c,u(e.jj(),29))));break}case 3:{f=e.ij(),f!=null&&(c=u(f,482),c.Bb&1||(t=Zu(c),!t.c&&(t.c=new W3),ve(t.c,u(e.jj(),29))));break}case 5:{if(f=e.ij(),f!=null)for(s=u(f,16).Kc();s.Ob();)c=u(s.Pb(),482),c.Bb&1||(t=Zu(c),!t.c&&(t.c=new W3),ve(t.c,u(e.jj(),29)));break}case 4:{h=e.kj(),h!=null&&(c=u(h,482),c.Bb&1||(t=Zu(c),!t.c&&(t.c=new W3),rT(t.c,e.jj())));break}case 6:{if(h=e.kj(),h!=null)for(s=u(h,16).Kc();s.Ob();)c=u(s.Pb(),482),c.Bb&1||(t=Zu(c),!t.c&&(t.c=new W3),rT(t.c,e.jj()));break}}this.ql(r)}},o.ql=function(e){Uqn(this,e)},o.b=63,w(qn,"ESuperAdapter",1175),b(1176,1175,Hcn,myn),o.ql=function(e){hw(this,e)},w(qn,"EClassImpl/10",1176),b(1165,710,Qr),o.Ei=function(e,t){return Zx(this,e,t)},o.Fi=function(e){return LRn(this,e)},o.Gi=function(e,t){Nk(this,e,t)},o.Hi=function(e){ik(this,e)},o.$i=function(e){return nQ(this,e)},o.Xi=function(e,t){return d$(this,e,t)},o.Wk=function(e,t){throw M(new Pe)},o.Ii=function(){return new yp(this)},o.Ji=function(){return new A7(this)},o.Ki=function(e){return vk(this,e)},o.Xk=function(e,t){throw M(new Pe)},o.Fk=function(e){return this},o.Qj=function(){return this.i!=0},o.Wb=function(e){throw M(new Pe)},o.Gk=function(){throw M(new Pe)},w(Tt,"EcoreEList/UnmodifiableEList",1165),b(328,1165,Qr,gg),o.Yi=function(){return!1},w(Tt,"EcoreEList/UnmodifiableEList/FastCompare",328),b(1168,328,Qr,bFn),o.dd=function(e){var t,i,r;if(O(e,179)&&(t=u(e,179),i=t.Lj(),i!=-1)){for(r=this.i;i4)if(this.fk(e)){if(this.al()){if(r=u(e,54),i=r.Eh(),h=i==this.b&&(this.ml()?r.yh(r.Fh(),u($n(au(this.b),this.Lj()).Hk(),29).kk())==br(u($n(au(this.b),this.Lj()),19)).n:-1-r.Fh()==this.Lj()),this.nl()&&!h&&!i&&r.Jh()){for(c=0;c1||r==-1)):!1},o.ml=function(){var e,t,i;return t=$n(au(this.b),this.Lj()),O(t,102)?(e=u(t,19),i=br(e),!!i):!1},o.nl=function(){var e,t;return t=$n(au(this.b),this.Lj()),O(t,102)?(e=u(t,19),(e.Bb&hr)!=0):!1},o.dd=function(e){var t,i,r,c;if(r=this.zj(e),r>=0)return r;if(this.ol()){for(i=0,c=this.Ej();i=0;--e)py(this,e,this.xj(e));return this.Fj()},o.Qc=function(e){var t;if(this.nl())for(t=this.Ej()-1;t>=0;--t)py(this,t,this.xj(t));return this.Gj(e)},o.Gk=function(){J5(this)},o.Zi=function(e,t){return kNn(this,e,t)},w(Tt,"DelegatingEcoreEList",756),b(1171,756,zcn,NAn),o.qj=function(e,t){rae(this,e,u(t,29))},o.rj=function(e){zle(this,u(e,29))},o.xj=function(e){var t,i;return t=u(L(Sc(this.a),e),89),i=t.c,O(i,90)?u(i,29):(On(),Ps)},o.Cj=function(e){var t,i;return t=u(dw(Sc(this.a),e),89),i=t.c,O(i,90)?u(i,29):(On(),Ps)},o.Dj=function(e,t){return e7e(this,e,u(t,29))},o.Li=function(){return!1},o.Ij=function(e,t,i,r,c){return null},o.sj=function(){return new yyn(this)},o.tj=function(){me(Sc(this.a))},o.uj=function(e){return hBn(this,e)},o.vj=function(e){var t,i;for(i=e.Kc();i.Ob();)if(t=i.Pb(),!hBn(this,t))return!1;return!0},o.wj=function(e){var t,i,r;if(O(e,15)&&(r=u(e,15),r.gc()==Sc(this.a).i)){for(t=r.Kc(),i=new ne(this);t.Ob();)if(x(t.Pb())!==x(ce(i)))return!1;return!0}return!1},o.yj=function(){var e,t,i,r,c;for(i=1,t=new ne(Sc(this.a));t.e!=t.i.gc();)e=u(ce(t),89),r=(c=e.c,O(c,90)?u(c,29):(On(),Ps)),i=31*i+(r?l0(r):0);return i},o.zj=function(e){var t,i,r,c;for(r=0,i=new ne(Sc(this.a));i.e!=i.i.gc();){if(t=u(ce(i),89),x(e)===x((c=t.c,O(c,90)?u(c,29):(On(),Ps))))return r;++r}return-1},o.Aj=function(){return Sc(this.a).i==0},o.Bj=function(){return null},o.Ej=function(){return Sc(this.a).i},o.Fj=function(){var e,t,i,r,c,s;for(s=Sc(this.a).i,c=K(ki,Fn,1,s,5,1),i=0,t=new ne(Sc(this.a));t.e!=t.i.gc();)e=u(ce(t),89),c[i++]=(r=e.c,O(r,90)?u(r,29):(On(),Ps));return c},o.Gj=function(e){var t,i,r,c,s,f,h;for(h=Sc(this.a).i,e.lengthh&&$t(e,h,null),r=0,i=new ne(Sc(this.a));i.e!=i.i.gc();)t=u(ce(i),89),s=(f=t.c,O(f,90)?u(f,29):(On(),Ps)),$t(e,r++,s);return e},o.Hj=function(){var e,t,i,r,c;for(c=new Hl,c.a+="[",e=Sc(this.a),t=0,r=Sc(this.a).i;t>16,c>=0?_x(this,i):this.Cb.Th(this,-1-c,null,i))),So(this,e,6,i);case 9:return!this.a&&(this.a=new q(Bl,this,9,5)),Xc(this.a,e,i)}return s=u($n((r=u(Un(this,16),29),r||(On(),La)),t),69),s.wk().zk(this,iu(this),t-se((On(),La)),e,i)},o.Uh=function(e,t,i){var r,c;switch(t){case 0:return!this.Ab&&(this.Ab=new q(He,this,0,3)),cr(this.Ab,e,i);case 6:return So(this,null,6,i);case 7:return!this.A&&(this.A=new Tu(fu,this,7)),cr(this.A,e,i);case 9:return!this.a&&(this.a=new q(Bl,this,9,5)),cr(this.a,e,i)}return c=u($n((r=u(Un(this,16),29),r||(On(),La)),t),69),c.wk().Ak(this,iu(this),t-se((On(),La)),e,i)},o.Wh=function(e){var t;switch(e){case 0:return!!this.Ab&&this.Ab.i!=0;case 1:return this.zb!=null;case 2:return this.D!=null&&this.D==this.F;case 3:return!!K0(this);case 4:return!!aY(this);case 5:return this.F!=null&&this.F!=this.D&&this.F!=this.B;case 6:return!!D4(this);case 7:return!!this.A&&this.A.i!=0;case 8:return(this.Bb&256)==0;case 9:return!!this.a&&this.a.i!=0}return Uo(this,e-se((On(),La)),$n((t=u(Un(this,16),29),t||La),e))},o.bi=function(e,t){var i;switch(e){case 0:!this.Ab&&(this.Ab=new q(He,this,0,3)),me(this.Ab),!this.Ab&&(this.Ab=new q(He,this,0,3)),Bt(this.Ab,u(t,16));return;case 1:xM(this,Oe(t));return;case 2:wL(this,Oe(t));return;case 5:Lm(this,Oe(t));return;case 7:!this.A&&(this.A=new Tu(fu,this,7)),me(this.A),!this.A&&(this.A=new Tu(fu,this,7)),Bt(this.A,u(t,16));return;case 8:BT(this,on(un(t)));return;case 9:!this.a&&(this.a=new q(Bl,this,9,5)),me(this.a),!this.a&&(this.a=new q(Bl,this,9,5)),Bt(this.a,u(t,16));return}Jo(this,e-se((On(),La)),$n((i=u(Un(this,16),29),i||La),e),t)},o.ii=function(){return On(),La},o.ki=function(e){var t;switch(e){case 0:!this.Ab&&(this.Ab=new q(He,this,0,3)),me(this.Ab);return;case 1:O(this.Cb,184)&&(u(this.Cb,184).tb=null),zc(this,null);return;case 2:um(this,null),G4(this,this.D);return;case 5:Lm(this,null);return;case 7:!this.A&&(this.A=new Tu(fu,this,7)),me(this.A);return;case 8:BT(this,!0);return;case 9:!this.a&&(this.a=new q(Bl,this,9,5)),me(this.a);return}Wo(this,e-se((On(),La)),$n((t=u(Un(this,16),29),t||La),e))},o.pi=function(){var e,t;if(this.a)for(e=0,t=this.a.i;e>16==5?u(this.Cb,685):null}return zo(this,e-se((On(),S1)),$n((r=u(Un(this,16),29),r||S1),e),t,i)},o.Sh=function(e,t,i){var r,c,s;switch(t){case 0:return!this.Ab&&(this.Ab=new q(He,this,0,3)),Xc(this.Ab,e,i);case 5:return this.Cb&&(i=(c=this.Db>>16,c>=0?uKn(this,i):this.Cb.Th(this,-1-c,null,i))),So(this,e,5,i)}return s=u($n((r=u(Un(this,16),29),r||(On(),S1)),t),69),s.wk().zk(this,iu(this),t-se((On(),S1)),e,i)},o.Uh=function(e,t,i){var r,c;switch(t){case 0:return!this.Ab&&(this.Ab=new q(He,this,0,3)),cr(this.Ab,e,i);case 5:return So(this,null,5,i)}return c=u($n((r=u(Un(this,16),29),r||(On(),S1)),t),69),c.wk().Ak(this,iu(this),t-se((On(),S1)),e,i)},o.Wh=function(e){var t;switch(e){case 0:return!!this.Ab&&this.Ab.i!=0;case 1:return this.zb!=null;case 2:return this.d!=0;case 3:return!!this.b;case 4:return this.c!=null;case 5:return!!(this.Db>>16==5&&u(this.Cb,685))}return Uo(this,e-se((On(),S1)),$n((t=u(Un(this,16),29),t||S1),e))},o.bi=function(e,t){var i;switch(e){case 0:!this.Ab&&(this.Ab=new q(He,this,0,3)),me(this.Ab),!this.Ab&&(this.Ab=new q(He,this,0,3)),Bt(this.Ab,u(t,16));return;case 1:zc(this,Oe(t));return;case 2:v$(this,u(t,17).a);return;case 3:iHn(this,u(t,2039));return;case 4:y$(this,Oe(t));return}Jo(this,e-se((On(),S1)),$n((i=u(Un(this,16),29),i||S1),e),t)},o.ii=function(){return On(),S1},o.ki=function(e){var t;switch(e){case 0:!this.Ab&&(this.Ab=new q(He,this,0,3)),me(this.Ab);return;case 1:zc(this,null);return;case 2:v$(this,0);return;case 3:iHn(this,null);return;case 4:y$(this,null);return}Wo(this,e-se((On(),S1)),$n((t=u(Un(this,16),29),t||S1),e))},o.Ib=function(){var e;return e=this.c,e??this.zb},o.b=null,o.c=null,o.d=0,w(qn,"EEnumLiteralImpl",582);var LNe=Nt(qn,"EFactoryImpl/InternalEDateTimeFormat");b(499,1,{2114:1},W9),w(qn,"EFactoryImpl/1ClientInternalEDateTimeFormat",499),b(248,120,{110:1,94:1,93:1,89:1,58:1,114:1,54:1,99:1,248:1,119:1,120:1},Jd),o.Ch=function(e,t,i){var r;return i=So(this,e,t,i),this.e&&O(e,179)&&(r=MA(this,this.e),r!=this.c&&(i=Nm(this,r,i))),i},o.Lh=function(e,t,i){var r;switch(e){case 0:return this.f;case 1:return!this.d&&(this.d=new ti(jr,this,1)),this.d;case 2:return t?BA(this):this.c;case 3:return this.b;case 4:return this.e;case 5:return t?Lx(this):this.a}return zo(this,e-se((On(),jb)),$n((r=u(Un(this,16),29),r||jb),e),t,i)},o.Uh=function(e,t,i){var r,c;switch(t){case 0:return QFn(this,null,i);case 1:return!this.d&&(this.d=new ti(jr,this,1)),cr(this.d,e,i);case 3:return YFn(this,null,i)}return c=u($n((r=u(Un(this,16),29),r||(On(),jb)),t),69),c.wk().Ak(this,iu(this),t-se((On(),jb)),e,i)},o.Wh=function(e){var t;switch(e){case 0:return!!this.f;case 1:return!!this.d&&this.d.i!=0;case 2:return!!this.c;case 3:return!!this.b;case 4:return!!this.e;case 5:return!!this.a}return Uo(this,e-se((On(),jb)),$n((t=u(Un(this,16),29),t||jb),e))},o.bi=function(e,t){var i;switch(e){case 0:MKn(this,u(t,89));return;case 1:!this.d&&(this.d=new ti(jr,this,1)),me(this.d),!this.d&&(this.d=new ti(jr,this,1)),Bt(this.d,u(t,16));return;case 3:UZ(this,u(t,89));return;case 4:fnn(this,u(t,850));return;case 5:K4(this,u(t,142));return}Jo(this,e-se((On(),jb)),$n((i=u(Un(this,16),29),i||jb),e),t)},o.ii=function(){return On(),jb},o.ki=function(e){var t;switch(e){case 0:MKn(this,null);return;case 1:!this.d&&(this.d=new ti(jr,this,1)),me(this.d);return;case 3:UZ(this,null);return;case 4:fnn(this,null);return;case 5:K4(this,null);return}Wo(this,e-se((On(),jb)),$n((t=u(Un(this,16),29),t||jb),e))},o.Ib=function(){var e;return e=new mo(_s(this)),e.a+=" (expression: ",_F(this,e),e.a+=")",e.a};var Gdn;w(qn,"EGenericTypeImpl",248),b(2067,2062,zS),o.Gi=function(e,t){OAn(this,e,t)},o.Wk=function(e,t){return OAn(this,this.gc(),e),t},o.$i=function(e){return Zo(this.pj(),e)},o.Ii=function(){return this.Ji()},o.pj=function(){return new Myn(this)},o.Ji=function(){return this.Ki(0)},o.Ki=function(e){return this.pj().fd(e)},o.Xk=function(e,t){return iw(this,e,!0),t},o.Ti=function(e,t){var i,r;return r=Ux(this,t),i=this.fd(e),i.Rb(r),r},o.Ui=function(e,t){var i;iw(this,t,!0),i=this.fd(e),i.Rb(t)},w(Tt,"AbstractSequentialInternalEList",2067),b(496,2067,zS,T7),o.$i=function(e){return Zo(this.pj(),e)},o.Ii=function(){return this.b==null?(Gl(),Gl(),dE):this.sl()},o.pj=function(){return new JMn(this.a,this.b)},o.Ji=function(){return this.b==null?(Gl(),Gl(),dE):this.sl()},o.Ki=function(e){var t,i;if(this.b==null){if(e<0||e>1)throw M(new Ir(k8+e+", size=0"));return Gl(),Gl(),dE}for(i=this.sl(),t=0;t0;)if(t=this.c[--this.d],(!this.e||t.pk()!=qv||t.Lj()!=0)&&(!this.vl()||this.b.Xh(t))){if(s=this.b.Nh(t,this.ul()),this.f=(dr(),u(t,69).xk()),this.f||t.Jk()){if(this.ul()?(r=u(s,15),this.k=r):(r=u(s,71),this.k=this.j=r),O(this.k,59)?(this.o=this.k.gc(),this.n=this.o):this.p=this.j?this.j.Ki(this.k.gc()):this.k.fd(this.k.gc()),this.p?v_n(this,this.p):I_n(this))return c=this.p?this.p.Ub():this.j?this.j.$i(--this.n):this.k.Xb(--this.n),this.f?(e=u(c,76),e.Lk(),i=e.md(),this.i=i):(i=c,this.i=i),this.g=-3,!0}else if(s!=null)return this.k=null,this.p=null,i=s,this.i=i,this.g=-2,!0}return this.k=null,this.p=null,this.g=-1,!1}else return c=this.p?this.p.Ub():this.j?this.j.$i(--this.n):this.k.Xb(--this.n),this.f?(e=u(c,76),e.Lk(),i=e.md(),this.i=i):(i=c,this.i=i),this.g=-3,!0}},o.Pb=function(){return PT(this)},o.Tb=function(){return this.a},o.Ub=function(){var e;if(this.g<-1||this.Sb())return--this.a,this.g=0,e=this.i,this.Sb(),e;throw M(new nc)},o.Vb=function(){return this.a-1},o.Qb=function(){throw M(new Pe)},o.ul=function(){return!1},o.Wb=function(e){throw M(new Pe)},o.vl=function(){return!0},o.a=0,o.d=0,o.f=!1,o.g=0,o.n=0,o.o=0;var dE;w(Tt,"EContentsEList/FeatureIteratorImpl",287),b(711,287,XS,nV),o.ul=function(){return!0},w(Tt,"EContentsEList/ResolvingFeatureIteratorImpl",711),b(1178,711,XS,gAn),o.vl=function(){return!1},w(qn,"ENamedElementImpl/1/1",1178),b(1179,287,XS,pAn),o.vl=function(){return!1},w(qn,"ENamedElementImpl/1/2",1179),b(39,152,Wy,Vb,UN,Ci,c$,ml,Bs,dQ,JOn,bQ,QOn,OJ,YOn,pQ,ZOn,DJ,nDn,wQ,eDn,q6,ok,MN,gQ,tDn,LJ,iDn),o.Kj=function(){return JJ(this)},o.Rj=function(){var e;return e=JJ(this),e?e.ik():null},o.hj=function(e){return this.b==-1&&this.a&&(this.b=this.c.Hh(this.a.Lj(),this.a.pk())),this.c.yh(this.b,e)},o.jj=function(){return this.c},o.Sj=function(){var e;return e=JJ(this),e?e.tk():!1},o.b=-1,w(qn,"ENotificationImpl",39),b(411,292,{110:1,94:1,93:1,155:1,197:1,58:1,62:1,114:1,481:1,54:1,99:1,158:1,411:1,292:1,119:1,120:1},hD),o.Ah=function(e){return fKn(this,e)},o.Lh=function(e,t,i){var r,c,s;switch(e){case 0:return!this.Ab&&(this.Ab=new q(He,this,0,3)),this.Ab;case 1:return this.zb;case 2:return _n(),!!(this.Bb&256);case 3:return _n(),!!(this.Bb&512);case 4:return Y(this.s);case 5:return Y(this.t);case 6:return _n(),s=this.t,s>1||s==-1;case 7:return _n(),c=this.s,c>=1;case 8:return t?ws(this):this.r;case 9:return this.q;case 10:return this.Db>>16==10?u(this.Cb,29):null;case 11:return!this.d&&(this.d=new Tu(fu,this,11)),this.d;case 12:return!this.c&&(this.c=new q(yb,this,12,10)),this.c;case 13:return!this.a&&(this.a=new O7(this,this)),this.a;case 14:return no(this)}return zo(this,e-se((On(),P1)),$n((r=u(Un(this,16),29),r||P1),e),t,i)},o.Sh=function(e,t,i){var r,c,s;switch(t){case 0:return!this.Ab&&(this.Ab=new q(He,this,0,3)),Xc(this.Ab,e,i);case 10:return this.Cb&&(i=(c=this.Db>>16,c>=0?fKn(this,i):this.Cb.Th(this,-1-c,null,i))),So(this,e,10,i);case 12:return!this.c&&(this.c=new q(yb,this,12,10)),Xc(this.c,e,i)}return s=u($n((r=u(Un(this,16),29),r||(On(),P1)),t),69),s.wk().zk(this,iu(this),t-se((On(),P1)),e,i)},o.Uh=function(e,t,i){var r,c;switch(t){case 0:return!this.Ab&&(this.Ab=new q(He,this,0,3)),cr(this.Ab,e,i);case 9:return hN(this,i);case 10:return So(this,null,10,i);case 11:return!this.d&&(this.d=new Tu(fu,this,11)),cr(this.d,e,i);case 12:return!this.c&&(this.c=new q(yb,this,12,10)),cr(this.c,e,i);case 14:return cr(no(this),e,i)}return c=u($n((r=u(Un(this,16),29),r||(On(),P1)),t),69),c.wk().Ak(this,iu(this),t-se((On(),P1)),e,i)},o.Wh=function(e){var t,i,r;switch(e){case 0:return!!this.Ab&&this.Ab.i!=0;case 1:return this.zb!=null;case 2:return(this.Bb&256)==0;case 3:return(this.Bb&512)==0;case 4:return this.s!=0;case 5:return this.t!=1;case 6:return r=this.t,r>1||r==-1;case 7:return i=this.s,i>=1;case 8:return!!this.r&&!this.q.e&&v0(this.q).i==0;case 9:return!!this.q&&!(this.r&&!this.q.e&&v0(this.q).i==0);case 10:return!!(this.Db>>16==10&&u(this.Cb,29));case 11:return!!this.d&&this.d.i!=0;case 12:return!!this.c&&this.c.i!=0;case 13:return!!this.a&&no(this.a.a).i!=0&&!(this.b&&Ox(this.b));case 14:return!!this.b&&Ox(this.b)}return Uo(this,e-se((On(),P1)),$n((t=u(Un(this,16),29),t||P1),e))},o.bi=function(e,t){var i,r;switch(e){case 0:!this.Ab&&(this.Ab=new q(He,this,0,3)),me(this.Ab),!this.Ab&&(this.Ab=new q(He,this,0,3)),Bt(this.Ab,u(t,16));return;case 1:zc(this,Oe(t));return;case 2:c1(this,on(un(t)));return;case 3:u1(this,on(un(t)));return;case 4:e1(this,u(t,17).a);return;case 5:Zb(this,u(t,17).a);return;case 8:ad(this,u(t,142));return;case 9:r=Ff(this,u(t,89),null),r&&r.oj();return;case 11:!this.d&&(this.d=new Tu(fu,this,11)),me(this.d),!this.d&&(this.d=new Tu(fu,this,11)),Bt(this.d,u(t,16));return;case 12:!this.c&&(this.c=new q(yb,this,12,10)),me(this.c),!this.c&&(this.c=new q(yb,this,12,10)),Bt(this.c,u(t,16));return;case 13:!this.a&&(this.a=new O7(this,this)),J5(this.a),!this.a&&(this.a=new O7(this,this)),Bt(this.a,u(t,16));return;case 14:me(no(this)),Bt(no(this),u(t,16));return}Jo(this,e-se((On(),P1)),$n((i=u(Un(this,16),29),i||P1),e),t)},o.ii=function(){return On(),P1},o.ki=function(e){var t,i;switch(e){case 0:!this.Ab&&(this.Ab=new q(He,this,0,3)),me(this.Ab);return;case 1:zc(this,null);return;case 2:c1(this,!0);return;case 3:u1(this,!0);return;case 4:e1(this,0);return;case 5:Zb(this,1);return;case 8:ad(this,null);return;case 9:i=Ff(this,null,null),i&&i.oj();return;case 11:!this.d&&(this.d=new Tu(fu,this,11)),me(this.d);return;case 12:!this.c&&(this.c=new q(yb,this,12,10)),me(this.c);return;case 13:this.a&&J5(this.a);return;case 14:this.b&&me(this.b);return}Wo(this,e-se((On(),P1)),$n((t=u(Un(this,16),29),t||P1),e))},o.pi=function(){var e,t;if(this.c)for(e=0,t=this.c.i;eh&&$t(e,h,null),r=0,i=new ne(no(this.a));i.e!=i.i.gc();)t=u(ce(i),89),s=(f=t.c,f||(On(),Yf)),$t(e,r++,s);return e},o.Hj=function(){var e,t,i,r,c;for(c=new Hl,c.a+="[",e=no(this.a),t=0,r=no(this.a).i;t1);case 5:return J6(this,e,t,i,r,this.i-u(i,15).gc()>0);default:return new ml(this.e,e,this.c,t,i,r,!0)}},o.Tj=function(){return!0},o.Qj=function(){return Ox(this)},o.Gk=function(){me(this)},w(qn,"EOperationImpl/2",1377),b(507,1,{2037:1,507:1},LMn),w(qn,"EPackageImpl/1",507),b(14,83,Qr,q),o.il=function(){return this.d},o.jl=function(){return this.b},o.ml=function(){return!0},o.b=0,w(Tt,"EObjectContainmentWithInverseEList",14),b(365,14,Qr,jp),o.nl=function(){return!0},o.Wi=function(e,t){return e3(this,e,u(t,58))},w(Tt,"EObjectContainmentWithInverseEList/Resolving",365),b(308,365,Qr,Hb),o.Ni=function(){this.a.tb=null},w(qn,"EPackageImpl/2",308),b(1278,1,{},qse),w(qn,"EPackageImpl/3",1278),b(733,45,Zg,tz),o._b=function(e){return Ai(e)?AN(this,e):!!wr(this.f,e)},w(qn,"EPackageRegistryImpl",733),b(518,292,{110:1,94:1,93:1,155:1,197:1,58:1,2116:1,114:1,481:1,54:1,99:1,158:1,518:1,292:1,119:1,120:1},lD),o.Ah=function(e){return hKn(this,e)},o.Lh=function(e,t,i){var r,c,s;switch(e){case 0:return!this.Ab&&(this.Ab=new q(He,this,0,3)),this.Ab;case 1:return this.zb;case 2:return _n(),!!(this.Bb&256);case 3:return _n(),!!(this.Bb&512);case 4:return Y(this.s);case 5:return Y(this.t);case 6:return _n(),s=this.t,s>1||s==-1;case 7:return _n(),c=this.s,c>=1;case 8:return t?ws(this):this.r;case 9:return this.q;case 10:return this.Db>>16==10?u(this.Cb,62):null}return zo(this,e-se((On(),ig)),$n((r=u(Un(this,16),29),r||ig),e),t,i)},o.Sh=function(e,t,i){var r,c,s;switch(t){case 0:return!this.Ab&&(this.Ab=new q(He,this,0,3)),Xc(this.Ab,e,i);case 10:return this.Cb&&(i=(c=this.Db>>16,c>=0?hKn(this,i):this.Cb.Th(this,-1-c,null,i))),So(this,e,10,i)}return s=u($n((r=u(Un(this,16),29),r||(On(),ig)),t),69),s.wk().zk(this,iu(this),t-se((On(),ig)),e,i)},o.Uh=function(e,t,i){var r,c;switch(t){case 0:return!this.Ab&&(this.Ab=new q(He,this,0,3)),cr(this.Ab,e,i);case 9:return hN(this,i);case 10:return So(this,null,10,i)}return c=u($n((r=u(Un(this,16),29),r||(On(),ig)),t),69),c.wk().Ak(this,iu(this),t-se((On(),ig)),e,i)},o.Wh=function(e){var t,i,r;switch(e){case 0:return!!this.Ab&&this.Ab.i!=0;case 1:return this.zb!=null;case 2:return(this.Bb&256)==0;case 3:return(this.Bb&512)==0;case 4:return this.s!=0;case 5:return this.t!=1;case 6:return r=this.t,r>1||r==-1;case 7:return i=this.s,i>=1;case 8:return!!this.r&&!this.q.e&&v0(this.q).i==0;case 9:return!!this.q&&!(this.r&&!this.q.e&&v0(this.q).i==0);case 10:return!!(this.Db>>16==10&&u(this.Cb,62))}return Uo(this,e-se((On(),ig)),$n((t=u(Un(this,16),29),t||ig),e))},o.ii=function(){return On(),ig},w(qn,"EParameterImpl",518),b(102,462,{110:1,94:1,93:1,155:1,197:1,58:1,19:1,179:1,69:1,114:1,481:1,54:1,99:1,158:1,102:1,462:1,292:1,119:1,120:1,692:1},cV),o.Lh=function(e,t,i){var r,c,s,f;switch(e){case 0:return!this.Ab&&(this.Ab=new q(He,this,0,3)),this.Ab;case 1:return this.zb;case 2:return _n(),!!(this.Bb&256);case 3:return _n(),!!(this.Bb&512);case 4:return Y(this.s);case 5:return Y(this.t);case 6:return _n(),f=this.t,f>1||f==-1;case 7:return _n(),c=this.s,c>=1;case 8:return t?ws(this):this.r;case 9:return this.q;case 10:return _n(),!!(this.Bb&Us);case 11:return _n(),!!(this.Bb&Tw);case 12:return _n(),!!(this.Bb&vw);case 13:return this.j;case 14:return Tm(this);case 15:return _n(),!!(this.Bb&$u);case 16:return _n(),!!(this.Bb&wh);case 17:return Gb(this);case 18:return _n(),!!(this.Bb&kc);case 19:return _n(),s=br(this),!!(s&&s.Bb&kc);case 20:return _n(),!!(this.Bb&hr);case 21:return t?br(this):this.b;case 22:return t?tY(this):ALn(this);case 23:return!this.a&&(this.a=new jg(ng,this,23)),this.a}return zo(this,e-se((On(),q2)),$n((r=u(Un(this,16),29),r||q2),e),t,i)},o.Wh=function(e){var t,i,r,c;switch(e){case 0:return!!this.Ab&&this.Ab.i!=0;case 1:return this.zb!=null;case 2:return(this.Bb&256)==0;case 3:return(this.Bb&512)==0;case 4:return this.s!=0;case 5:return this.t!=1;case 6:return c=this.t,c>1||c==-1;case 7:return i=this.s,i>=1;case 8:return!!this.r&&!this.q.e&&v0(this.q).i==0;case 9:return!!this.q&&!(this.r&&!this.q.e&&v0(this.q).i==0);case 10:return(this.Bb&Us)==0;case 11:return(this.Bb&Tw)!=0;case 12:return(this.Bb&vw)!=0;case 13:return this.j!=null;case 14:return Tm(this)!=null;case 15:return(this.Bb&$u)!=0;case 16:return(this.Bb&wh)!=0;case 17:return!!Gb(this);case 18:return(this.Bb&kc)!=0;case 19:return r=br(this),!!r&&(r.Bb&kc)!=0;case 20:return(this.Bb&hr)==0;case 21:return!!this.b;case 22:return!!ALn(this);case 23:return!!this.a&&this.a.i!=0}return Uo(this,e-se((On(),q2)),$n((t=u(Un(this,16),29),t||q2),e))},o.bi=function(e,t){var i,r;switch(e){case 0:!this.Ab&&(this.Ab=new q(He,this,0,3)),me(this.Ab),!this.Ab&&(this.Ab=new q(He,this,0,3)),Bt(this.Ab,u(t,16));return;case 1:FN(this,Oe(t));return;case 2:c1(this,on(un(t)));return;case 3:u1(this,on(un(t)));return;case 4:e1(this,u(t,17).a);return;case 5:Zb(this,u(t,17).a);return;case 8:ad(this,u(t,142));return;case 9:r=Ff(this,u(t,89),null),r&&r.oj();return;case 10:fm(this,on(un(t)));return;case 11:am(this,on(un(t)));return;case 12:hm(this,on(un(t)));return;case 13:wX(this,Oe(t));return;case 15:lm(this,on(un(t)));return;case 16:dm(this,on(un(t)));return;case 18:A2e(this,on(un(t)));return;case 20:NY(this,on(un(t)));return;case 21:DQ(this,u(t,19));return;case 23:!this.a&&(this.a=new jg(ng,this,23)),me(this.a),!this.a&&(this.a=new jg(ng,this,23)),Bt(this.a,u(t,16));return}Jo(this,e-se((On(),q2)),$n((i=u(Un(this,16),29),i||q2),e),t)},o.ii=function(){return On(),q2},o.ki=function(e){var t,i;switch(e){case 0:!this.Ab&&(this.Ab=new q(He,this,0,3)),me(this.Ab);return;case 1:O(this.Cb,90)&&hw(Zu(u(this.Cb,90)),4),zc(this,null);return;case 2:c1(this,!0);return;case 3:u1(this,!0);return;case 4:e1(this,0);return;case 5:Zb(this,1);return;case 8:ad(this,null);return;case 9:i=Ff(this,null,null),i&&i.oj();return;case 10:fm(this,!0);return;case 11:am(this,!1);return;case 12:hm(this,!1);return;case 13:this.i=null,kT(this,null);return;case 15:lm(this,!1);return;case 16:dm(this,!1);return;case 18:LY(this,!1),O(this.Cb,90)&&hw(Zu(u(this.Cb,90)),2);return;case 20:NY(this,!0);return;case 21:DQ(this,null);return;case 23:!this.a&&(this.a=new jg(ng,this,23)),me(this.a);return}Wo(this,e-se((On(),q2)),$n((t=u(Un(this,16),29),t||q2),e))},o.pi=function(){tY(this),P4(Lr((Du(),zi),this)),ws(this),this.Bb|=1},o.uk=function(){return br(this)},o._k=function(){var e;return e=br(this),!!e&&(e.Bb&kc)!=0},o.al=function(){return(this.Bb&kc)!=0},o.bl=function(){return(this.Bb&hr)!=0},o.Yk=function(e,t){return this.c=null,EY(this,e,t)},o.Ib=function(){var e;return this.Db&64?$A(this):(e=new ls($A(this)),e.a+=" (containment: ",ql(e,(this.Bb&kc)!=0),e.a+=", resolveProxies: ",ql(e,(this.Bb&hr)!=0),e.a+=")",e.a)},w(qn,"EReferenceImpl",102),b(561,120,{110:1,44:1,94:1,93:1,136:1,58:1,114:1,54:1,99:1,561:1,119:1,120:1},Mvn),o.Fb=function(e){return this===e},o.ld=function(){return this.b},o.md=function(){return this.c},o.Hb=function(){return l0(this)},o.Di=function(e){Dbe(this,Oe(e))},o.nd=function(e){return pbe(this,Oe(e))},o.Lh=function(e,t,i){var r;switch(e){case 0:return this.b;case 1:return this.c}return zo(this,e-se((On(),ar)),$n((r=u(Un(this,16),29),r||ar),e),t,i)},o.Wh=function(e){var t;switch(e){case 0:return this.b!=null;case 1:return this.c!=null}return Uo(this,e-se((On(),ar)),$n((t=u(Un(this,16),29),t||ar),e))},o.bi=function(e,t){var i;switch(e){case 0:Lbe(this,Oe(t));return;case 1:PQ(this,Oe(t));return}Jo(this,e-se((On(),ar)),$n((i=u(Un(this,16),29),i||ar),e),t)},o.ii=function(){return On(),ar},o.ki=function(e){var t;switch(e){case 0:SQ(this,null);return;case 1:PQ(this,null);return}Wo(this,e-se((On(),ar)),$n((t=u(Un(this,16),29),t||ar),e))},o.Bi=function(){var e;return this.a==-1&&(e=this.b,this.a=e==null?0:t1(e)),this.a},o.Ci=function(e){this.a=e},o.Ib=function(){var e;return this.Db&64?_s(this):(e=new ls(_s(this)),e.a+=" (key: ",Er(e,this.b),e.a+=", value: ",Er(e,this.c),e.a+=")",e.a)},o.a=-1,o.b=null,o.c=null;var pc=w(qn,"EStringToStringMapEntryImpl",561),Qoe=Nt(Tt,"FeatureMap/Entry/Internal");b(576,1,VS),o.xl=function(e){return this.yl(u(e,54))},o.yl=function(e){return this.xl(e)},o.Fb=function(e){var t,i;return this===e?!0:O(e,76)?(t=u(e,76),t.Lk()==this.c?(i=this.md(),i==null?t.md()==null:rt(i,t.md())):!1):!1},o.Lk=function(){return this.c},o.Hb=function(){var e;return e=this.md(),mt(this.c)^(e==null?0:mt(e))},o.Ib=function(){var e,t;return e=this.c,t=jo(e.qk()).yi(),e.xe(),(t!=null&&t.length!=0?t+":"+e.xe():e.xe())+"="+this.md()},w(qn,"EStructuralFeatureImpl/BasicFeatureMapEntry",576),b(791,576,VS,bV),o.yl=function(e){return new bV(this.c,e)},o.md=function(){return this.a},o.zl=function(e,t,i){return gve(this,e,this.a,t,i)},o.Al=function(e,t,i){return pve(this,e,this.a,t,i)},w(qn,"EStructuralFeatureImpl/ContainmentUpdatingFeatureMapEntry",791),b(1350,1,{},NMn),o.yk=function(e,t,i,r,c){var s;return s=u(x4(e,this.b),220),s.Yl(this.a).Fk(r)},o.zk=function(e,t,i,r,c){var s;return s=u(x4(e,this.b),220),s.Pl(this.a,r,c)},o.Ak=function(e,t,i,r,c){var s;return s=u(x4(e,this.b),220),s.Ql(this.a,r,c)},o.Bk=function(e,t,i){var r;return r=u(x4(e,this.b),220),r.Yl(this.a).Qj()},o.Ck=function(e,t,i,r){var c;c=u(x4(e,this.b),220),c.Yl(this.a).Wb(r)},o.Dk=function(e,t,i){return u(x4(e,this.b),220).Yl(this.a)},o.Ek=function(e,t,i){var r;r=u(x4(e,this.b),220),r.Yl(this.a).Gk()},w(qn,"EStructuralFeatureImpl/InternalSettingDelegateFeatureMapDelegator",1350),b(91,1,{},Xl,Za,Wl,rd),o.yk=function(e,t,i,r,c){var s;if(s=t.li(i),s==null&&t.mi(i,s=XA(this,e)),!c)switch(this.e){case 50:case 41:return u(s,597).bk();case 40:return u(s,220).Vl()}return s},o.zk=function(e,t,i,r,c){var s,f;return f=t.li(i),f==null&&t.mi(i,f=XA(this,e)),s=u(f,71).Wk(r,c),s},o.Ak=function(e,t,i,r,c){var s;return s=t.li(i),s!=null&&(c=u(s,71).Xk(r,c)),c},o.Bk=function(e,t,i){var r;return r=t.li(i),r!=null&&u(r,79).Qj()},o.Ck=function(e,t,i,r){var c;c=u(t.li(i),79),!c&&t.mi(i,c=XA(this,e)),c.Wb(r)},o.Dk=function(e,t,i){var r,c;return c=t.li(i),c==null&&t.mi(i,c=XA(this,e)),O(c,79)?u(c,79):(r=u(t.li(i),15),new Eyn(r))},o.Ek=function(e,t,i){var r;r=u(t.li(i),79),!r&&t.mi(i,r=XA(this,e)),r.Gk()},o.b=0,o.e=0,w(qn,"EStructuralFeatureImpl/InternalSettingDelegateMany",91),b(512,1,{}),o.zk=function(e,t,i,r,c){throw M(new Pe)},o.Ak=function(e,t,i,r,c){throw M(new Pe)},o.Dk=function(e,t,i){return new DIn(this,e,t,i)};var rl;w(qn,"EStructuralFeatureImpl/InternalSettingDelegateSingle",512),b(1367,1,TK,DIn),o.Fk=function(e){return this.a.yk(this.c,this.d,this.b,e,!0)},o.Qj=function(){return this.a.Bk(this.c,this.d,this.b)},o.Wb=function(e){this.a.Ck(this.c,this.d,this.b,e)},o.Gk=function(){this.a.Ek(this.c,this.d,this.b)},o.b=0,w(qn,"EStructuralFeatureImpl/InternalSettingDelegateSingle/1",1367),b(784,512,{},tJ),o.yk=function(e,t,i,r,c){return AF(e,e.Ph(),e.Fh())==this.b?this.bl()&&r?dF(e):e.Ph():null},o.zk=function(e,t,i,r,c){var s,f;return e.Ph()&&(c=(s=e.Fh(),s>=0?e.Ah(c):e.Ph().Th(e,-1-s,null,c))),f=Ot(e.Dh(),this.e),e.Ch(r,f,c)},o.Ak=function(e,t,i,r,c){var s;return s=Ot(e.Dh(),this.e),e.Ch(null,s,c)},o.Bk=function(e,t,i){var r;return r=Ot(e.Dh(),this.e),!!e.Ph()&&e.Fh()==r},o.Ck=function(e,t,i,r){var c,s,f,h,l;if(r!=null&&!OF(this.a,r))throw M(new i4(WS+(O(r,58)?qZ(u(r,58).Dh()):fQ(wo(r)))+JS+this.a+"'"));if(c=e.Ph(),f=Ot(e.Dh(),this.e),x(r)!==x(c)||e.Fh()!=f&&r!=null){if(mm(e,u(r,58)))throw M(new Gn(m8+e.Ib()));l=null,c&&(l=(s=e.Fh(),s>=0?e.Ah(l):e.Ph().Th(e,-1-s,null,l))),h=u(r,54),h&&(l=h.Rh(e,Ot(h.Dh(),this.b),null,l)),l=e.Ch(h,f,l),l&&l.oj()}else e.vh()&&e.wh()&&it(e,new Ci(e,1,f,r,r))},o.Ek=function(e,t,i){var r,c,s,f;r=e.Ph(),r?(f=(c=e.Fh(),c>=0?e.Ah(null):e.Ph().Th(e,-1-c,null,null)),s=Ot(e.Dh(),this.e),f=e.Ch(null,s,f),f&&f.oj()):e.vh()&&e.wh()&&it(e,new q6(e,1,this.e,null,null))},o.bl=function(){return!1},w(qn,"EStructuralFeatureImpl/InternalSettingDelegateSingleContainer",784),b(1351,784,{},jSn),o.bl=function(){return!0},w(qn,"EStructuralFeatureImpl/InternalSettingDelegateSingleContainerResolving",1351),b(574,512,{}),o.yk=function(e,t,i,r,c){var s;return s=t.li(i),s==null?this.b:x(s)===x(rl)?null:s},o.Bk=function(e,t,i){var r;return r=t.li(i),r!=null&&(x(r)===x(rl)||!rt(r,this.b))},o.Ck=function(e,t,i,r){var c,s;e.vh()&&e.wh()?(c=(s=t.li(i),s==null?this.b:x(s)===x(rl)?null:s),r==null?this.c!=null?(t.mi(i,null),r=this.b):this.b!=null?t.mi(i,rl):t.mi(i,null):(this.Bl(r),t.mi(i,r)),it(e,this.d.Cl(e,1,this.e,c,r))):r==null?this.c!=null?t.mi(i,null):this.b!=null?t.mi(i,rl):t.mi(i,null):(this.Bl(r),t.mi(i,r))},o.Ek=function(e,t,i){var r,c;e.vh()&&e.wh()?(r=(c=t.li(i),c==null?this.b:x(c)===x(rl)?null:c),t.ni(i),it(e,this.d.Cl(e,1,this.e,r,this.b))):t.ni(i)},o.Bl=function(e){throw M(new Nyn)},w(qn,"EStructuralFeatureImpl/InternalSettingDelegateSingleData",574),b(f2,1,{},Tvn),o.Cl=function(e,t,i,r,c){return new q6(e,t,i,r,c)},o.Dl=function(e,t,i,r,c,s){return new MN(e,t,i,r,c,s)};var zdn,Xdn,Vdn,Wdn,Jdn,Qdn,Ydn,TU,Zdn;w(qn,"EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator",f2),b(1368,f2,{},Avn),o.Cl=function(e,t,i,r,c){return new LJ(e,t,i,on(un(r)),on(un(c)))},o.Dl=function(e,t,i,r,c,s){return new iDn(e,t,i,on(un(r)),on(un(c)),s)},w(qn,"EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/1",1368),b(1369,f2,{},Svn),o.Cl=function(e,t,i,r,c){return new dQ(e,t,i,u(r,222).a,u(c,222).a)},o.Dl=function(e,t,i,r,c,s){return new JOn(e,t,i,u(r,222).a,u(c,222).a,s)},w(qn,"EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/2",1369),b(1370,f2,{},Pvn),o.Cl=function(e,t,i,r,c){return new bQ(e,t,i,u(r,180).a,u(c,180).a)},o.Dl=function(e,t,i,r,c,s){return new QOn(e,t,i,u(r,180).a,u(c,180).a,s)},w(qn,"EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/3",1370),b(1371,f2,{},Ivn),o.Cl=function(e,t,i,r,c){return new OJ(e,t,i,$(R(r)),$(R(c)))},o.Dl=function(e,t,i,r,c,s){return new YOn(e,t,i,$(R(r)),$(R(c)),s)},w(qn,"EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/4",1371),b(1372,f2,{},Ovn),o.Cl=function(e,t,i,r,c){return new pQ(e,t,i,u(r,161).a,u(c,161).a)},o.Dl=function(e,t,i,r,c,s){return new ZOn(e,t,i,u(r,161).a,u(c,161).a,s)},w(qn,"EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/5",1372),b(1373,f2,{},Dvn),o.Cl=function(e,t,i,r,c){return new DJ(e,t,i,u(r,17).a,u(c,17).a)},o.Dl=function(e,t,i,r,c,s){return new nDn(e,t,i,u(r,17).a,u(c,17).a,s)},w(qn,"EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/6",1373),b(1374,f2,{},Lvn),o.Cl=function(e,t,i,r,c){return new wQ(e,t,i,u(r,168).a,u(c,168).a)},o.Dl=function(e,t,i,r,c,s){return new eDn(e,t,i,u(r,168).a,u(c,168).a,s)},w(qn,"EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/7",1374),b(1375,f2,{},Nvn),o.Cl=function(e,t,i,r,c){return new gQ(e,t,i,u(r,191).a,u(c,191).a)},o.Dl=function(e,t,i,r,c,s){return new tDn(e,t,i,u(r,191).a,u(c,191).a,s)},w(qn,"EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/8",1375),b(1353,574,{},LIn),o.Bl=function(e){if(!this.a.fk(e))throw M(new i4(WS+wo(e)+JS+this.a+"'"))},w(qn,"EStructuralFeatureImpl/InternalSettingDelegateSingleDataDynamic",1353),b(1354,574,{},kPn),o.Bl=function(e){},w(qn,"EStructuralFeatureImpl/InternalSettingDelegateSingleDataStatic",1354),b(785,574,{}),o.Bk=function(e,t,i){var r;return r=t.li(i),r!=null},o.Ck=function(e,t,i,r){var c,s;e.vh()&&e.wh()?(c=!0,s=t.li(i),s==null?(c=!1,s=this.b):x(s)===x(rl)&&(s=null),r==null?this.c!=null?(t.mi(i,null),r=this.b):t.mi(i,rl):(this.Bl(r),t.mi(i,r)),it(e,this.d.Dl(e,1,this.e,s,r,!c))):r==null?this.c!=null?t.mi(i,null):t.mi(i,rl):(this.Bl(r),t.mi(i,r))},o.Ek=function(e,t,i){var r,c;e.vh()&&e.wh()?(r=!0,c=t.li(i),c==null?(r=!1,c=this.b):x(c)===x(rl)&&(c=null),t.ni(i),it(e,this.d.Dl(e,2,this.e,c,this.b,r))):t.ni(i)},w(qn,"EStructuralFeatureImpl/InternalSettingDelegateSingleDataUnsettable",785),b(1355,785,{},NIn),o.Bl=function(e){if(!this.a.fk(e))throw M(new i4(WS+wo(e)+JS+this.a+"'"))},w(qn,"EStructuralFeatureImpl/InternalSettingDelegateSingleDataUnsettableDynamic",1355),b(1356,785,{},yPn),o.Bl=function(e){},w(qn,"EStructuralFeatureImpl/InternalSettingDelegateSingleDataUnsettableStatic",1356),b(410,512,{},oM),o.yk=function(e,t,i,r,c){var s,f,h,l,a;if(a=t.li(i),this.tk()&&x(a)===x(rl))return null;if(this.bl()&&r&&a!=null){if(h=u(a,54),h.Vh()&&(l=na(e,h),h!=l)){if(!OF(this.a,l))throw M(new i4(WS+wo(l)+JS+this.a+"'"));t.mi(i,a=l),this.al()&&(s=u(l,54),f=h.Th(e,this.b?Ot(h.Dh(),this.b):-1-Ot(e.Dh(),this.e),null,null),!s.Ph()&&(f=s.Rh(e,this.b?Ot(s.Dh(),this.b):-1-Ot(e.Dh(),this.e),null,f)),f&&f.oj()),e.vh()&&e.wh()&&it(e,new q6(e,9,this.e,h,l))}return a}else return a},o.zk=function(e,t,i,r,c){var s,f;return f=t.li(i),x(f)===x(rl)&&(f=null),t.mi(i,r),this.Mj()?x(f)!==x(r)&&f!=null&&(s=u(f,54),c=s.Th(e,Ot(s.Dh(),this.b),null,c)):this.al()&&f!=null&&(c=u(f,54).Th(e,-1-Ot(e.Dh(),this.e),null,c)),e.vh()&&e.wh()&&(!c&&(c=new F1(4)),c.nj(new q6(e,1,this.e,f,r))),c},o.Ak=function(e,t,i,r,c){var s;return s=t.li(i),x(s)===x(rl)&&(s=null),t.ni(i),e.vh()&&e.wh()&&(!c&&(c=new F1(4)),this.tk()?c.nj(new q6(e,2,this.e,s,null)):c.nj(new q6(e,1,this.e,s,null))),c},o.Bk=function(e,t,i){var r;return r=t.li(i),r!=null},o.Ck=function(e,t,i,r){var c,s,f,h,l;if(r!=null&&!OF(this.a,r))throw M(new i4(WS+(O(r,58)?qZ(u(r,58).Dh()):fQ(wo(r)))+JS+this.a+"'"));l=t.li(i),h=l!=null,this.tk()&&x(l)===x(rl)&&(l=null),f=null,this.Mj()?x(l)!==x(r)&&(l!=null&&(c=u(l,54),f=c.Th(e,Ot(c.Dh(),this.b),null,f)),r!=null&&(c=u(r,54),f=c.Rh(e,Ot(c.Dh(),this.b),null,f))):this.al()&&x(l)!==x(r)&&(l!=null&&(f=u(l,54).Th(e,-1-Ot(e.Dh(),this.e),null,f)),r!=null&&(f=u(r,54).Rh(e,-1-Ot(e.Dh(),this.e),null,f))),r==null&&this.tk()?t.mi(i,rl):t.mi(i,r),e.vh()&&e.wh()?(s=new MN(e,1,this.e,l,r,this.tk()&&!h),f?(f.nj(s),f.oj()):it(e,s)):f&&f.oj()},o.Ek=function(e,t,i){var r,c,s,f,h;h=t.li(i),f=h!=null,this.tk()&&x(h)===x(rl)&&(h=null),s=null,h!=null&&(this.Mj()?(r=u(h,54),s=r.Th(e,Ot(r.Dh(),this.b),null,s)):this.al()&&(s=u(h,54).Th(e,-1-Ot(e.Dh(),this.e),null,s))),t.ni(i),e.vh()&&e.wh()?(c=new MN(e,this.tk()?2:1,this.e,h,null,f),s?(s.nj(c),s.oj()):it(e,c)):s&&s.oj()},o.Mj=function(){return!1},o.al=function(){return!1},o.bl=function(){return!1},o.tk=function(){return!1},w(qn,"EStructuralFeatureImpl/InternalSettingDelegateSingleEObject",410),b(575,410,{},PL),o.al=function(){return!0},w(qn,"EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainment",575),b(1359,575,{},vAn),o.bl=function(){return!0},w(qn,"EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainmentResolving",1359),b(787,575,{},eV),o.tk=function(){return!0},w(qn,"EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainmentUnsettable",787),b(1361,787,{},kAn),o.bl=function(){return!0},w(qn,"EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainmentUnsettableResolving",1361),b(650,575,{},HL),o.Mj=function(){return!0},w(qn,"EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainmentWithInverse",650),b(1360,650,{},ESn),o.bl=function(){return!0},w(qn,"EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainmentWithInverseResolving",1360),b(788,650,{},_V),o.tk=function(){return!0},w(qn,"EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainmentWithInverseUnsettable",788),b(1362,788,{},CSn),o.bl=function(){return!0},w(qn,"EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainmentWithInverseUnsettableResolving",1362),b(651,410,{},tV),o.bl=function(){return!0},w(qn,"EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectResolving",651),b(1363,651,{},yAn),o.tk=function(){return!0},w(qn,"EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectResolvingUnsettable",1363),b(789,651,{},RV),o.Mj=function(){return!0},w(qn,"EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectResolvingWithInverse",789),b(1364,789,{},MSn),o.tk=function(){return!0},w(qn,"EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectResolvingWithInverseUnsettable",1364),b(1357,410,{},jAn),o.tk=function(){return!0},w(qn,"EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectUnsettable",1357),b(786,410,{},KV),o.Mj=function(){return!0},w(qn,"EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectWithInverse",786),b(1358,786,{},TSn),o.tk=function(){return!0},w(qn,"EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectWithInverseUnsettable",1358),b(790,576,VS,FW),o.yl=function(e){return new FW(this.a,this.c,e)},o.md=function(){return this.b},o.zl=function(e,t,i){return b4e(this,e,this.b,i)},o.Al=function(e,t,i){return w4e(this,e,this.b,i)},w(qn,"EStructuralFeatureImpl/InverseUpdatingFeatureMapEntry",790),b(1365,1,TK,Eyn),o.Fk=function(e){return this.a},o.Qj=function(){return O(this.a,97)?u(this.a,97).Qj():!this.a.dc()},o.Wb=function(e){this.a.$b(),this.a.Gc(u(e,15))},o.Gk=function(){O(this.a,97)?u(this.a,97).Gk():this.a.$b()},w(qn,"EStructuralFeatureImpl/SettingMany",1365),b(1366,576,VS,VDn),o.xl=function(e){return new DL((at(),R9),this.b.ri(this.a,e))},o.md=function(){return null},o.zl=function(e,t,i){return i},o.Al=function(e,t,i){return i},w(qn,"EStructuralFeatureImpl/SimpleContentFeatureMapEntry",1366),b(652,576,VS,DL),o.xl=function(e){return new DL(this.c,e)},o.md=function(){return this.a},o.zl=function(e,t,i){return i},o.Al=function(e,t,i){return i},w(qn,"EStructuralFeatureImpl/SimpleFeatureMapEntry",652),b(403,506,Ch,W3),o.aj=function(e){return K(Ts,Fn,29,e,0,1)},o.Yi=function(){return!1},w(qn,"ESuperAdapter/1",403),b(457,448,{110:1,94:1,93:1,155:1,197:1,58:1,114:1,850:1,54:1,99:1,158:1,457:1,119:1,120:1},UO),o.Lh=function(e,t,i){var r;switch(e){case 0:return!this.Ab&&(this.Ab=new q(He,this,0,3)),this.Ab;case 1:return this.zb;case 2:return!this.a&&(this.a=new R6(this,jr,this)),this.a}return zo(this,e-se((On(),Eb)),$n((r=u(Un(this,16),29),r||Eb),e),t,i)},o.Uh=function(e,t,i){var r,c;switch(t){case 0:return!this.Ab&&(this.Ab=new q(He,this,0,3)),cr(this.Ab,e,i);case 2:return!this.a&&(this.a=new R6(this,jr,this)),cr(this.a,e,i)}return c=u($n((r=u(Un(this,16),29),r||(On(),Eb)),t),69),c.wk().Ak(this,iu(this),t-se((On(),Eb)),e,i)},o.Wh=function(e){var t;switch(e){case 0:return!!this.Ab&&this.Ab.i!=0;case 1:return this.zb!=null;case 2:return!!this.a&&this.a.i!=0}return Uo(this,e-se((On(),Eb)),$n((t=u(Un(this,16),29),t||Eb),e))},o.bi=function(e,t){var i;switch(e){case 0:!this.Ab&&(this.Ab=new q(He,this,0,3)),me(this.Ab),!this.Ab&&(this.Ab=new q(He,this,0,3)),Bt(this.Ab,u(t,16));return;case 1:zc(this,Oe(t));return;case 2:!this.a&&(this.a=new R6(this,jr,this)),me(this.a),!this.a&&(this.a=new R6(this,jr,this)),Bt(this.a,u(t,16));return}Jo(this,e-se((On(),Eb)),$n((i=u(Un(this,16),29),i||Eb),e),t)},o.ii=function(){return On(),Eb},o.ki=function(e){var t;switch(e){case 0:!this.Ab&&(this.Ab=new q(He,this,0,3)),me(this.Ab);return;case 1:zc(this,null);return;case 2:!this.a&&(this.a=new R6(this,jr,this)),me(this.a);return}Wo(this,e-se((On(),Eb)),$n((t=u(Un(this,16),29),t||Eb),e))},w(qn,"ETypeParameterImpl",457),b(458,83,Qr,R6),o.Nj=function(e,t){return Pye(this,u(e,89),t)},o.Oj=function(e,t){return Iye(this,u(e,89),t)},w(qn,"ETypeParameterImpl/1",458),b(647,45,Zg,aD),o.ec=function(){return new NE(this)},w(qn,"ETypeParameterImpl/2",647),b(570,Rf,Lu,NE),o.Fc=function(e){return VAn(this,u(e,89))},o.Gc=function(e){var t,i,r;for(r=!1,i=e.Kc();i.Ob();)t=u(i.Pb(),89),Xe(this.a,t,"")==null&&(r=!0);return r},o.$b=function(){Hu(this.a)},o.Hc=function(e){return Zc(this.a,e)},o.Kc=function(){var e;return e=new sd(new qa(this.a).a),new $E(e)},o.Mc=function(e){return BLn(this,e)},o.gc=function(){return u6(this.a)},w(qn,"ETypeParameterImpl/2/1",570),b(571,1,Si,$E),o.Nb=function(e){_i(this,e)},o.Pb=function(){return u(L0(this.a).ld(),89)},o.Ob=function(){return this.a.b},o.Qb=function(){XNn(this.a)},w(qn,"ETypeParameterImpl/2/1/1",571),b(1329,45,Zg,djn),o._b=function(e){return Ai(e)?AN(this,e):!!wr(this.f,e)},o.xc=function(e){var t,i;return t=Ai(e)?Nc(this,e):Kr(wr(this.f,e)),O(t,851)?(i=u(t,851),t=i.Kk(),Xe(this,u(e,241),t),t):t??(e==null?(OD(),Zoe):null)},w(qn,"EValidatorRegistryImpl",1329),b(1349,720,{110:1,94:1,93:1,480:1,155:1,58:1,114:1,2040:1,54:1,99:1,158:1,119:1,120:1},$vn),o.ri=function(e,t){switch(e.hk()){case 21:case 22:case 23:case 24:case 26:case 31:case 32:case 37:case 38:case 39:case 40:case 43:case 44:case 48:case 49:case 20:return t==null?null:Jr(t);case 25:return Tme(t);case 27:return K4e(t);case 28:return _4e(t);case 29:return t==null?null:MTn(L9[0],u(t,206));case 41:return t==null?"":za(u(t,297));case 42:return Jr(t);case 50:return Oe(t);default:throw M(new Gn(ev+e.xe()+nb))}},o.si=function(e){var t,i,r,c,s,f,h,l,a,d,g,p,m,k,j,A;switch(e.G==-1&&(e.G=(p=jo(e),p?f1(p.vi(),e):-1)),e.G){case 0:return i=new fD,i;case 1:return t=new tG,t;case 2:return r=new uG,r;case 4:return c=new xE,c;case 5:return s=new ajn,s;case 6:return f=new Fyn,f;case 7:return h=new oG,h;case 10:return a=new ME,a;case 11:return d=new hD,d;case 12:return g=new HIn,g;case 13:return m=new lD,m;case 14:return k=new cV,k;case 17:return j=new Mvn,j;case 18:return l=new Jd,l;case 19:return A=new UO,A;default:throw M(new Gn(hK+e.zb+nb))}},o.ti=function(e,t){switch(e.hk()){case 20:return t==null?null:new Az(t);case 21:return t==null?null:new H1(t);case 23:case 22:return t==null?null:R8e(t);case 26:case 24:return t==null?null:bk(Ao(t,-128,127)<<24>>24);case 25:return rMe(t);case 27:return T7e(t);case 28:return A7e(t);case 29:return Jye(t);case 32:case 31:return t==null?null:sw(t);case 38:case 37:return t==null?null:new UG(t);case 40:case 39:return t==null?null:Y(Ao(t,Wi,et));case 41:return null;case 42:return t==null,null;case 44:case 43:return t==null?null:Ml(zA(t));case 49:case 48:return t==null?null:sm(Ao(t,QS,32767)<<16>>16);case 50:return t;default:throw M(new Gn(ev+e.xe()+nb))}},w(qn,"EcoreFactoryImpl",1349),b(560,184,{110:1,94:1,93:1,155:1,197:1,58:1,241:1,114:1,2038:1,54:1,99:1,158:1,184:1,560:1,119:1,120:1,690:1},aIn),o.gb=!1,o.hb=!1;var n0n,Yoe=!1;w(qn,"EcorePackageImpl",560),b(1234,1,{851:1},xvn),o.Kk=function(){return BTn(),nse},w(qn,"EcorePackageImpl/1",1234),b(1243,1,Ge,Fvn),o.fk=function(e){return O(e,155)},o.gk=function(e){return K(fE,Fn,155,e,0,1)},w(qn,"EcorePackageImpl/10",1243),b(1244,1,Ge,Bvn),o.fk=function(e){return O(e,197)},o.gk=function(e){return K(pU,Fn,197,e,0,1)},w(qn,"EcorePackageImpl/11",1244),b(1245,1,Ge,Rvn),o.fk=function(e){return O(e,58)},o.gk=function(e){return K(Ia,Fn,58,e,0,1)},w(qn,"EcorePackageImpl/12",1245),b(1246,1,Ge,Kvn),o.fk=function(e){return O(e,411)},o.gk=function(e){return K(As,Gcn,62,e,0,1)},w(qn,"EcorePackageImpl/13",1246),b(1247,1,Ge,_vn),o.fk=function(e){return O(e,241)},o.gk=function(e){return K(jf,Fn,241,e,0,1)},w(qn,"EcorePackageImpl/14",1247),b(1248,1,Ge,Hvn),o.fk=function(e){return O(e,518)},o.gk=function(e){return K(yb,Fn,2116,e,0,1)},w(qn,"EcorePackageImpl/15",1248),b(1249,1,Ge,qvn),o.fk=function(e){return O(e,102)},o.gk=function(e){return K(eg,s2,19,e,0,1)},w(qn,"EcorePackageImpl/16",1249),b(1250,1,Ge,Uvn),o.fk=function(e){return O(e,179)},o.gk=function(e){return K(ku,s2,179,e,0,1)},w(qn,"EcorePackageImpl/17",1250),b(1251,1,Ge,Gvn),o.fk=function(e){return O(e,481)},o.gk=function(e){return K(Zw,Fn,481,e,0,1)},w(qn,"EcorePackageImpl/18",1251),b(1252,1,Ge,zvn),o.fk=function(e){return O(e,561)},o.gk=function(e){return K(pc,nJn,561,e,0,1)},w(qn,"EcorePackageImpl/19",1252),b(1235,1,Ge,Xvn),o.fk=function(e){return O(e,331)},o.gk=function(e){return K(ng,s2,35,e,0,1)},w(qn,"EcorePackageImpl/2",1235),b(1253,1,Ge,Vvn),o.fk=function(e){return O(e,248)},o.gk=function(e){return K(jr,pJn,89,e,0,1)},w(qn,"EcorePackageImpl/20",1253),b(1254,1,Ge,Wvn),o.fk=function(e){return O(e,457)},o.gk=function(e){return K(fu,Fn,850,e,0,1)},w(qn,"EcorePackageImpl/21",1254),b(1255,1,Ge,Jvn),o.fk=function(e){return Nb(e)},o.gk=function(e){return K(Gt,J,485,e,8,1)},w(qn,"EcorePackageImpl/22",1255),b(1256,1,Ge,Qvn),o.fk=function(e){return O(e,195)},o.gk=function(e){return K(Fu,J,195,e,0,2)},w(qn,"EcorePackageImpl/23",1256),b(1257,1,Ge,Yvn),o.fk=function(e){return O(e,222)},o.gk=function(e){return K(p3,J,222,e,0,1)},w(qn,"EcorePackageImpl/24",1257),b(1258,1,Ge,Zvn),o.fk=function(e){return O(e,180)},o.gk=function(e){return K(I8,J,180,e,0,1)},w(qn,"EcorePackageImpl/25",1258),b(1259,1,Ge,n6n),o.fk=function(e){return O(e,206)},o.gk=function(e){return K(oP,J,206,e,0,1)},w(qn,"EcorePackageImpl/26",1259),b(1260,1,Ge,e6n),o.fk=function(e){return!1},o.gk=function(e){return K(m0n,Fn,2215,e,0,1)},w(qn,"EcorePackageImpl/27",1260),b(1261,1,Ge,t6n),o.fk=function(e){return $b(e)},o.gk=function(e){return K(si,J,345,e,7,1)},w(qn,"EcorePackageImpl/28",1261),b(1262,1,Ge,i6n),o.fk=function(e){return O(e,61)},o.gk=function(e){return K(Ldn,kw,61,e,0,1)},w(qn,"EcorePackageImpl/29",1262),b(1236,1,Ge,r6n),o.fk=function(e){return O(e,519)},o.gk=function(e){return K(He,{3:1,4:1,5:1,2033:1},598,e,0,1)},w(qn,"EcorePackageImpl/3",1236),b(1263,1,Ge,c6n),o.fk=function(e){return O(e,582)},o.gk=function(e){return K(xdn,Fn,2039,e,0,1)},w(qn,"EcorePackageImpl/30",1263),b(1264,1,Ge,u6n),o.fk=function(e){return O(e,160)},o.gk=function(e){return K(c0n,kw,160,e,0,1)},w(qn,"EcorePackageImpl/31",1264),b(1265,1,Ge,o6n),o.fk=function(e){return O(e,76)},o.gk=function(e){return K(CO,TJn,76,e,0,1)},w(qn,"EcorePackageImpl/32",1265),b(1266,1,Ge,s6n),o.fk=function(e){return O(e,161)},o.gk=function(e){return K(sv,J,161,e,0,1)},w(qn,"EcorePackageImpl/33",1266),b(1267,1,Ge,f6n),o.fk=function(e){return O(e,17)},o.gk=function(e){return K(Gi,J,17,e,0,1)},w(qn,"EcorePackageImpl/34",1267),b(1268,1,Ge,h6n),o.fk=function(e){return O(e,297)},o.gk=function(e){return K(run,Fn,297,e,0,1)},w(qn,"EcorePackageImpl/35",1268),b(1269,1,Ge,l6n),o.fk=function(e){return O(e,168)},o.gk=function(e){return K(tb,J,168,e,0,1)},w(qn,"EcorePackageImpl/36",1269),b(1270,1,Ge,a6n),o.fk=function(e){return O(e,85)},o.gk=function(e){return K(cun,Fn,85,e,0,1)},w(qn,"EcorePackageImpl/37",1270),b(1271,1,Ge,d6n),o.fk=function(e){return O(e,599)},o.gk=function(e){return K(e0n,Fn,599,e,0,1)},w(qn,"EcorePackageImpl/38",1271),b(1272,1,Ge,b6n),o.fk=function(e){return!1},o.gk=function(e){return K(v0n,Fn,2216,e,0,1)},w(qn,"EcorePackageImpl/39",1272),b(1237,1,Ge,w6n),o.fk=function(e){return O(e,90)},o.gk=function(e){return K(Ts,Fn,29,e,0,1)},w(qn,"EcorePackageImpl/4",1237),b(1273,1,Ge,g6n),o.fk=function(e){return O(e,191)},o.gk=function(e){return K(ib,J,191,e,0,1)},w(qn,"EcorePackageImpl/40",1273),b(1274,1,Ge,p6n),o.fk=function(e){return Ai(e)},o.gk=function(e){return K(fn,J,2,e,6,1)},w(qn,"EcorePackageImpl/41",1274),b(1275,1,Ge,m6n),o.fk=function(e){return O(e,596)},o.gk=function(e){return K($dn,Fn,596,e,0,1)},w(qn,"EcorePackageImpl/42",1275),b(1276,1,Ge,v6n),o.fk=function(e){return!1},o.gk=function(e){return K(k0n,J,2217,e,0,1)},w(qn,"EcorePackageImpl/43",1276),b(1277,1,Ge,k6n),o.fk=function(e){return O(e,44)},o.gk=function(e){return K(Pd,WA,44,e,0,1)},w(qn,"EcorePackageImpl/44",1277),b(1238,1,Ge,y6n),o.fk=function(e){return O(e,142)},o.gk=function(e){return K(Ef,Fn,142,e,0,1)},w(qn,"EcorePackageImpl/5",1238),b(1239,1,Ge,j6n),o.fk=function(e){return O(e,156)},o.gk=function(e){return K(EU,Fn,156,e,0,1)},w(qn,"EcorePackageImpl/6",1239),b(1240,1,Ge,E6n),o.fk=function(e){return O(e,469)},o.gk=function(e){return K(EO,Fn,685,e,0,1)},w(qn,"EcorePackageImpl/7",1240),b(1241,1,Ge,C6n),o.fk=function(e){return O(e,582)},o.gk=function(e){return K(Bl,Fn,694,e,0,1)},w(qn,"EcorePackageImpl/8",1241),b(1242,1,Ge,M6n),o.fk=function(e){return O(e,480)},o.gk=function(e){return K(D9,Fn,480,e,0,1)},w(qn,"EcorePackageImpl/9",1242),b(1038,2080,ZWn,Njn),o.Mi=function(e,t){b5e(this,u(t,424))},o.Qi=function(e,t){S_n(this,e,u(t,424))},w(qn,"MinimalEObjectImpl/1ArrayDelegatingAdapterList",1038),b(1039,152,Wy,tIn),o.jj=function(){return this.a.a},w(qn,"MinimalEObjectImpl/1ArrayDelegatingAdapterList/1",1039),b(1067,1066,{},gTn),w("org.eclipse.emf.ecore.plugin","EcorePlugin",1067);var e0n=Nt(AJn,"Resource");b(799,1524,SJn),o.Hl=function(e){},o.Il=function(e){},o.El=function(){return!this.a&&(this.a=new iD(this)),this.a},o.Fl=function(e){var t,i,r,c,s;if(r=e.length,r>0)if(zn(0,e.length),e.charCodeAt(0)==47){for(s=new Gc(4),c=1,t=1;t0&&(e=(Fi(0,i,e.length),e.substr(0,i))));return qEe(this,e)},o.Gl=function(){return this.c},o.Ib=function(){var e;return za(this.Rm)+"@"+(e=mt(this)>>>0,e.toString(16))+" uri='"+this.d+"'"},o.b=!1,w(AK,"ResourceImpl",799),b(1525,799,SJn,Cyn),w(AK,"BinaryResourceImpl",1525),b(1190,708,yK),o.bj=function(e){return O(e,58)?Nge(this,u(e,58)):O(e,599)?new ne(u(e,599).El()):x(e)===x(this.f)?u(e,16).Kc():(m4(),aE.a)},o.Ob=function(){return Fnn(this)},o.a=!1,w(Tt,"EcoreUtil/ContentTreeIterator",1190),b(1526,1190,yK,DPn),o.bj=function(e){return x(e)===x(this.f)?u(e,15).Kc():new PDn(u(e,58))},w(AK,"ResourceImpl/5",1526),b(658,2092,gJn,iD),o.Hc=function(e){return this.i<=4?km(this,e):O(e,54)&&u(e,54).Jh()==this.a},o.Mi=function(e,t){e==this.i-1&&(this.a.b||(this.a.b=!0))},o.Oi=function(e,t){e==0?this.a.b||(this.a.b=!0):t$(this,e,t)},o.Qi=function(e,t){},o.Ri=function(e,t,i){},o.Lj=function(){return 2},o.jj=function(){return this.a},o.Mj=function(){return!0},o.Nj=function(e,t){var i;return i=u(e,54),t=i.fi(this.a,t),t},o.Oj=function(e,t){var i;return i=u(e,54),i.fi(null,t)},o.Pj=function(){return!1},o.Si=function(){return!0},o.aj=function(e){return K(Ia,Fn,58,e,0,1)},o.Yi=function(){return!1},w(AK,"ResourceImpl/ContentsEList",658),b(970,2062,Rm,Myn),o.fd=function(e){return this.a.Ki(e)},o.gc=function(){return this.a.gc()},w(Tt,"AbstractSequentialInternalEList/1",970);var t0n,i0n,zi,r0n;b(634,1,{},NSn);var MO,TO;w(Tt,"BasicExtendedMetaData",634),b(1181,1,{},xMn),o.Jl=function(){return null},o.Kl=function(){return this.a==-2&&dfe(this,qye(this.d,this.b)),this.a},o.Ll=function(){return null},o.Ml=function(){return Dn(),Dn(),sr},o.xe=function(){return this.c==rv&&bfe(this,YBn(this.d,this.b)),this.c},o.Nl=function(){return 0},o.a=-2,o.c=rv,w(Tt,"BasicExtendedMetaData/EClassExtendedMetaDataImpl",1181),b(1182,1,{},cDn),o.Jl=function(){return this.a==($4(),MO)&&pfe(this,HAe(this.f,this.b)),this.a},o.Kl=function(){return 0},o.Ll=function(){return this.c==($4(),MO)&&wfe(this,qAe(this.f,this.b)),this.c},o.Ml=function(){return!this.d&&vfe(this,APe(this.f,this.b)),this.d},o.xe=function(){return this.e==rv&&yfe(this,YBn(this.f,this.b)),this.e},o.Nl=function(){return this.g==-2&&Efe(this,sye(this.f,this.b)),this.g},o.e=rv,o.g=-2,w(Tt,"BasicExtendedMetaData/EDataTypeExtendedMetaDataImpl",1182),b(1180,1,{},FMn),o.b=!1,o.c=!1,w(Tt,"BasicExtendedMetaData/EPackageExtendedMetaDataImpl",1180),b(1183,1,{},uDn),o.c=-2,o.e=rv,o.f=rv,w(Tt,"BasicExtendedMetaData/EStructuralFeatureExtendedMetaDataImpl",1183),b(593,632,Qr,QC),o.Lj=function(){return this.c},o.ol=function(){return!1},o.Wi=function(e,t){return t},o.c=0,w(Tt,"EDataTypeEList",593);var c0n=Nt(Tt,"FeatureMap");b(78,593,{3:1,4:1,20:1,31:1,56:1,16:1,15:1,59:1,70:1,66:1,61:1,79:1,160:1,220:1,2036:1,71:1,97:1},Rt),o.bd=function(e,t){oTe(this,e,u(t,76))},o.Fc=function(e){return MMe(this,u(e,76))},o.Hi=function(e){Owe(this,u(e,76))},o.Nj=function(e,t){return Yae(this,u(e,76),t)},o.Oj=function(e,t){return PV(this,u(e,76),t)},o.Ti=function(e,t){return DSe(this,e,t)},o.Wi=function(e,t){return vOe(this,e,u(t,76))},o.hd=function(e,t){return VTe(this,e,u(t,76))},o.Uj=function(e,t){return Zae(this,u(e,76),t)},o.Vj=function(e,t){return fSn(this,u(e,76),t)},o.Wj=function(e,t,i){return Wke(this,u(e,76),u(t,76),i)},o.Zi=function(e,t){return Jx(this,e,u(t,76))},o.Ol=function(e,t){return Sen(this,e,t)},o.cd=function(e,t){var i,r,c,s,f,h,l,a,d;for(a=new S0(t.gc()),c=t.Kc();c.Ob();)if(r=u(c.Pb(),76),s=r.Lk(),Sl(this.e,s))(!s.Si()||!_M(this,s,r.md())&&!km(a,r))&&ve(a,r);else{for(d=ru(this.e.Dh(),s),i=u(this.g,124),f=!0,h=0;h=0;)if(t=e[this.c],this.k.am(t.Lk()))return this.j=this.f?t:t.md(),this.i=-2,!0;return this.i=-1,this.g=-1,!1},w(Tt,"BasicFeatureMap/FeatureEIterator",420),b(676,420,Hh,dL),o.ul=function(){return!0},w(Tt,"BasicFeatureMap/ResolvingFeatureEIterator",676),b(968,496,zS,TTn),o.pj=function(){return this},w(Tt,"EContentsEList/1",968),b(969,496,zS,JMn),o.ul=function(){return!1},w(Tt,"EContentsEList/2",969),b(967,287,XS,ATn),o.wl=function(e){},o.Ob=function(){return!1},o.Sb=function(){return!1},w(Tt,"EContentsEList/FeatureIteratorImpl/1",967),b(840,593,Qr,xX),o.Ni=function(){this.a=!0},o.Qj=function(){return this.a},o.Gk=function(){var e;me(this),fo(this.e)?(e=this.a,this.a=!1,it(this.e,new Bs(this.e,2,this.c,e,!1))):this.a=!1},o.a=!1,w(Tt,"EDataTypeEList/Unsettable",840),b(1958,593,Qr,NTn),o.Si=function(){return!0},w(Tt,"EDataTypeUniqueEList",1958),b(1959,840,Qr,$Tn),o.Si=function(){return!0},w(Tt,"EDataTypeUniqueEList/Unsettable",1959),b(147,83,Qr,Tu),o.nl=function(){return!0},o.Wi=function(e,t){return e3(this,e,u(t,58))},w(Tt,"EObjectContainmentEList/Resolving",147),b(1184,555,Qr,xTn),o.nl=function(){return!0},o.Wi=function(e,t){return e3(this,e,u(t,58))},w(Tt,"EObjectContainmentEList/Unsettable/Resolving",1184),b(766,14,Qr,jV),o.Ni=function(){this.a=!0},o.Qj=function(){return this.a},o.Gk=function(){var e;me(this),fo(this.e)?(e=this.a,this.a=!1,it(this.e,new Bs(this.e,2,this.c,e,!1))):this.a=!1},o.a=!1,w(Tt,"EObjectContainmentWithInverseEList/Unsettable",766),b(1222,766,Qr,WAn),o.nl=function(){return!0},o.Wi=function(e,t){return e3(this,e,u(t,58))},w(Tt,"EObjectContainmentWithInverseEList/Unsettable/Resolving",1222),b(757,505,Qr,FX),o.Ni=function(){this.a=!0},o.Qj=function(){return this.a},o.Gk=function(){var e;me(this),fo(this.e)?(e=this.a,this.a=!1,it(this.e,new Bs(this.e,2,this.c,e,!1))):this.a=!1},o.a=!1,w(Tt,"EObjectEList/Unsettable",757),b(338,505,Qr,jg),o.nl=function(){return!0},o.Wi=function(e,t){return e3(this,e,u(t,58))},w(Tt,"EObjectResolvingEList",338),b(1844,757,Qr,FTn),o.nl=function(){return!0},o.Wi=function(e,t){return e3(this,e,u(t,58))},w(Tt,"EObjectResolvingEList/Unsettable",1844),b(1527,1,{},T6n);var Zoe;w(Tt,"EObjectValidator",1527),b(559,505,Qr,bM),o.il=function(){return this.d},o.jl=function(){return this.b},o.Mj=function(){return!0},o.ml=function(){return!0},o.b=0,w(Tt,"EObjectWithInverseEList",559),b(1225,559,Qr,JAn),o.ll=function(){return!0},w(Tt,"EObjectWithInverseEList/ManyInverse",1225),b(635,559,Qr,NL),o.Ni=function(){this.a=!0},o.Qj=function(){return this.a},o.Gk=function(){var e;me(this),fo(this.e)?(e=this.a,this.a=!1,it(this.e,new Bs(this.e,2,this.c,e,!1))):this.a=!1},o.a=!1,w(Tt,"EObjectWithInverseEList/Unsettable",635),b(1224,635,Qr,QAn),o.ll=function(){return!0},w(Tt,"EObjectWithInverseEList/Unsettable/ManyInverse",1224),b(767,559,Qr,EV),o.nl=function(){return!0},o.Wi=function(e,t){return e3(this,e,u(t,58))},w(Tt,"EObjectWithInverseResolvingEList",767),b(32,767,Qr,Nn),o.ll=function(){return!0},w(Tt,"EObjectWithInverseResolvingEList/ManyInverse",32),b(768,635,Qr,CV),o.nl=function(){return!0},o.Wi=function(e,t){return e3(this,e,u(t,58))},w(Tt,"EObjectWithInverseResolvingEList/Unsettable",768),b(1223,768,Qr,YAn),o.ll=function(){return!0},w(Tt,"EObjectWithInverseResolvingEList/Unsettable/ManyInverse",1223),b(1185,632,Qr),o.Li=function(){return(this.b&1792)==0},o.Ni=function(){this.b|=1},o.kl=function(){return(this.b&4)!=0},o.Mj=function(){return(this.b&40)!=0},o.ll=function(){return(this.b&16)!=0},o.ml=function(){return(this.b&8)!=0},o.nl=function(){return(this.b&Tw)!=0},o.al=function(){return(this.b&32)!=0},o.ol=function(){return(this.b&Us)!=0},o.fk=function(e){return this.d?BDn(this.d,e):this.Lk().Hk().fk(e)},o.Qj=function(){return this.b&2?(this.b&1)!=0:this.i!=0},o.Si=function(){return(this.b&128)!=0},o.Gk=function(){var e;me(this),this.b&2&&(fo(this.e)?(e=(this.b&1)!=0,this.b&=-2,t4(this,new Bs(this.e,2,Ot(this.e.Dh(),this.Lk()),e,!1))):this.b&=-2)},o.Yi=function(){return(this.b&1536)==0},o.b=0,w(Tt,"EcoreEList/Generic",1185),b(1186,1185,Qr,UIn),o.Lk=function(){return this.a},w(Tt,"EcoreEList/Dynamic",1186),b(765,66,Ch,BG),o.aj=function(e){return mk(this.a.a,e)},w(Tt,"EcoreEMap/1",765),b(764,83,Qr,jW),o.Mi=function(e,t){uA(this.b,u(t,136))},o.Oi=function(e,t){_xn(this.b)},o.Pi=function(e,t,i){var r;++(r=this.b,u(t,136),r).e},o.Qi=function(e,t){cx(this.b,u(t,136))},o.Ri=function(e,t,i){cx(this.b,u(i,136)),x(i)===x(t)&&u(i,136).Ci(Jle(u(t,136).ld())),uA(this.b,u(t,136))},w(Tt,"EcoreEMap/DelegateEObjectContainmentEList",764),b(1220,141,Ucn,rxn),w(Tt,"EcoreEMap/Unsettable",1220),b(1221,764,Qr,ZAn),o.Ni=function(){this.a=!0},o.Qj=function(){return this.a},o.Gk=function(){var e;me(this),fo(this.e)?(e=this.a,this.a=!1,it(this.e,new Bs(this.e,2,this.c,e,!1))):this.a=!1},o.a=!1,w(Tt,"EcoreEMap/Unsettable/UnsettableDelegateEObjectContainmentEList",1221),b(1189,215,Zg,GPn),o.a=!1,o.b=!1,w(Tt,"EcoreUtil/Copier",1189),b(759,1,Si,PDn),o.Nb=function(e){_i(this,e)},o.Ob=function(){return FBn(this)},o.Pb=function(){var e;return FBn(this),e=this.b,this.b=null,e},o.Qb=function(){this.a.Qb()},w(Tt,"EcoreUtil/ProperContentIterator",759),b(1528,1527,{},T8n);var nse;w(Tt,"EcoreValidator",1528);var ese;Nt(Tt,"FeatureMapUtil/Validator"),b(1295,1,{2041:1},A6n),o.am=function(e){return!0},w(Tt,"FeatureMapUtil/1",1295),b(773,1,{2041:1},itn),o.am=function(e){var t;return this.c==e?!0:(t=un(ee(this.a,e)),t==null?WAe(this,e)?(PLn(this.a,e,(_n(),ov)),!0):(PLn(this.a,e,(_n(),wa)),!1):t==(_n(),ov))},o.e=!1;var AU;w(Tt,"FeatureMapUtil/BasicValidator",773),b(774,45,Zg,NX),w(Tt,"FeatureMapUtil/BasicValidator/Cache",774),b(509,56,{20:1,31:1,56:1,16:1,15:1,61:1,79:1,71:1,97:1},j7),o.bd=function(e,t){mqn(this.c,this.b,e,t)},o.Fc=function(e){return Sen(this.c,this.b,e)},o.cd=function(e,t){return gIe(this.c,this.b,e,t)},o.Gc=function(e){return I6(this,e)},o.Gi=function(e,t){lme(this.c,this.b,e,t)},o.Wk=function(e,t){return ken(this.c,this.b,e,t)},o.$i=function(e){return _A(this.c,this.b,e,!1)},o.Ii=function(){return sTn(this.c,this.b)},o.Ji=function(){return Fle(this.c,this.b)},o.Ki=function(e){return g4e(this.c,this.b,e)},o.Xk=function(e,t){return DAn(this,e,t)},o.$b=function(){rp(this)},o.Hc=function(e){return _M(this.c,this.b,e)},o.Ic=function(e){return wve(this.c,this.b,e)},o.Xb=function(e){return _A(this.c,this.b,e,!0)},o.Fk=function(e){return this},o.dd=function(e){return E3e(this.c,this.b,e)},o.dc=function(){return TC(this)},o.Qj=function(){return!Rk(this.c,this.b)},o.Kc=function(){return eme(this.c,this.b)},o.ed=function(){return tme(this.c,this.b)},o.fd=function(e){return L5e(this.c,this.b,e)},o.Ti=function(e,t){return LUn(this.c,this.b,e,t)},o.Ui=function(e,t){v4e(this.c,this.b,e,t)},o.gd=function(e){return l_n(this.c,this.b,e)},o.Mc=function(e){return pSe(this.c,this.b,e)},o.hd=function(e,t){return HUn(this.c,this.b,e,t)},o.Wb=function(e){jA(this.c,this.b),I6(this,u(e,15))},o.gc=function(){return D5e(this.c,this.b)},o.Pc=function(){return Mpe(this.c,this.b)},o.Qc=function(e){return C3e(this.c,this.b,e)},o.Ib=function(){var e,t;for(t=new Hl,t.a+="[",e=sTn(this.c,this.b);W$(e);)Er(t,D6(iA(e))),W$(e)&&(t.a+=ur);return t.a+="]",t.a},o.Gk=function(){jA(this.c,this.b)},w(Tt,"FeatureMapUtil/FeatureEList",509),b(644,39,Wy,GN),o.hj=function(e){return v5(this,e)},o.mj=function(e){var t,i,r,c,s,f,h;switch(this.d){case 1:case 2:{if(s=e.jj(),x(s)===x(this.c)&&v5(this,null)==e.hj(null))return this.g=e.ij(),e.gj()==1&&(this.d=1),!0;break}case 3:{switch(c=e.gj(),c){case 3:{if(s=e.jj(),x(s)===x(this.c)&&v5(this,null)==e.hj(null))return this.d=5,t=new S0(2),ve(t,this.g),ve(t,e.ij()),this.g=t,!0;break}}break}case 5:{switch(c=e.gj(),c){case 3:{if(s=e.jj(),x(s)===x(this.c)&&v5(this,null)==e.hj(null))return i=u(this.g,16),i.Fc(e.ij()),!0;break}}break}case 4:{switch(c=e.gj(),c){case 3:{if(s=e.jj(),x(s)===x(this.c)&&v5(this,null)==e.hj(null))return this.d=1,this.g=e.ij(),!0;break}case 4:{if(s=e.jj(),x(s)===x(this.c)&&v5(this,null)==e.hj(null))return this.d=6,h=new S0(2),ve(h,this.n),ve(h,e.kj()),this.n=h,f=S(T(ye,1),Ke,28,15,[this.o,e.lj()]),this.g=f,!0;break}}break}case 6:{switch(c=e.gj(),c){case 4:{if(s=e.jj(),x(s)===x(this.c)&&v5(this,null)==e.hj(null))return i=u(this.n,16),i.Fc(e.kj()),f=u(this.g,53),r=K(ye,Ke,28,f.length+1,15,1),Ic(f,0,r,0,f.length),r[f.length]=e.lj(),this.g=r,!0;break}}break}}return!1},w(Tt,"FeatureMapUtil/FeatureENotificationImpl",644),b(564,509,{20:1,31:1,56:1,16:1,15:1,61:1,79:1,160:1,220:1,2036:1,71:1,97:1},eM),o.Ol=function(e,t){return Sen(this.c,e,t)},o.Pl=function(e,t,i){return ken(this.c,e,t,i)},o.Ql=function(e,t,i){return zen(this.c,e,t,i)},o.Rl=function(){return this},o.Sl=function(e,t){return wy(this.c,e,t)},o.Tl=function(e){return u(_A(this.c,this.b,e,!1),76).Lk()},o.Ul=function(e){return u(_A(this.c,this.b,e,!1),76).md()},o.Vl=function(){return this.a},o.Wl=function(e){return!Rk(this.c,e)},o.Xl=function(e,t){HA(this.c,e,t)},o.Yl=function(e){return oxn(this.c,e)},o.Zl=function(e){RRn(this.c,e)},w(Tt,"FeatureMapUtil/FeatureFeatureMap",564),b(1294,1,TK,$Mn),o.Fk=function(e){return _A(this.b,this.a,-1,e)},o.Qj=function(){return!Rk(this.b,this.a)},o.Wb=function(e){HA(this.b,this.a,e)},o.Gk=function(){jA(this.b,this.a)},w(Tt,"FeatureMapUtil/FeatureValue",1294);var K3,SU,PU,_3,tse,bE=Nt(eP,"AnyType");b(680,63,Pl,kD),w(eP,"InvalidDatatypeValueException",680);var AO=Nt(eP,IJn),wE=Nt(eP,OJn),u0n=Nt(eP,DJn),ise,yc,o0n,zd,rse,cse,use,ose,sse,fse,hse,lse,ase,dse,bse,U2,wse,G2,F9,gse,Cb,gE,pE,pse,B9,R9;b(844,516,{110:1,94:1,93:1,58:1,54:1,99:1,857:1},iz),o.Lh=function(e,t,i){switch(e){case 0:return i?(!this.c&&(this.c=new Rt(this,0)),this.c):(!this.c&&(this.c=new Rt(this,0)),this.c.b);case 1:return i?(!this.c&&(this.c=new Rt(this,0)),u($c(this.c,(at(),zd)),160)):(!this.c&&(this.c=new Rt(this,0)),u(u($c(this.c,(at(),zd)),160),220)).Vl();case 2:return i?(!this.b&&(this.b=new Rt(this,2)),this.b):(!this.b&&(this.b=new Rt(this,2)),this.b.b)}return zo(this,e-se(this.ii()),$n(this.j&2?(!this.k&&(this.k=new cf),this.k).Nk():this.ii(),e),t,i)},o.Uh=function(e,t,i){var r;switch(t){case 0:return!this.c&&(this.c=new Rt(this,0)),ly(this.c,e,i);case 1:return(!this.c&&(this.c=new Rt(this,0)),u(u($c(this.c,(at(),zd)),160),71)).Xk(e,i);case 2:return!this.b&&(this.b=new Rt(this,2)),ly(this.b,e,i)}return r=u($n(this.j&2?(!this.k&&(this.k=new cf),this.k).Nk():this.ii(),t),69),r.wk().Ak(this,uQ(this),t-se(this.ii()),e,i)},o.Wh=function(e){switch(e){case 0:return!!this.c&&this.c.i!=0;case 1:return!(!this.c&&(this.c=new Rt(this,0)),u($c(this.c,(at(),zd)),160)).dc();case 2:return!!this.b&&this.b.i!=0}return Uo(this,e-se(this.ii()),$n(this.j&2?(!this.k&&(this.k=new cf),this.k).Nk():this.ii(),e))},o.bi=function(e,t){switch(e){case 0:!this.c&&(this.c=new Rt(this,0)),H7(this.c,t);return;case 1:(!this.c&&(this.c=new Rt(this,0)),u(u($c(this.c,(at(),zd)),160),220)).Wb(t);return;case 2:!this.b&&(this.b=new Rt(this,2)),H7(this.b,t);return}Jo(this,e-se(this.ii()),$n(this.j&2?(!this.k&&(this.k=new cf),this.k).Nk():this.ii(),e),t)},o.ii=function(){return at(),o0n},o.ki=function(e){switch(e){case 0:!this.c&&(this.c=new Rt(this,0)),me(this.c);return;case 1:(!this.c&&(this.c=new Rt(this,0)),u($c(this.c,(at(),zd)),160)).$b();return;case 2:!this.b&&(this.b=new Rt(this,2)),me(this.b);return}Wo(this,e-se(this.ii()),$n(this.j&2?(!this.k&&(this.k=new cf),this.k).Nk():this.ii(),e))},o.Ib=function(){var e;return this.j&4?_s(this):(e=new ls(_s(this)),e.a+=" (mixed: ",T6(e,this.c),e.a+=", anyAttribute: ",T6(e,this.b),e.a+=")",e.a)},w(oi,"AnyTypeImpl",844),b(681,516,{110:1,94:1,93:1,58:1,54:1,99:1,2119:1,681:1},B6n),o.Lh=function(e,t,i){switch(e){case 0:return this.a;case 1:return this.b}return zo(this,e-se((at(),U2)),$n(this.j&2?(!this.k&&(this.k=new cf),this.k).Nk():U2,e),t,i)},o.Wh=function(e){switch(e){case 0:return this.a!=null;case 1:return this.b!=null}return Uo(this,e-se((at(),U2)),$n(this.j&2?(!this.k&&(this.k=new cf),this.k).Nk():U2,e))},o.bi=function(e,t){switch(e){case 0:Tfe(this,Oe(t));return;case 1:Sfe(this,Oe(t));return}Jo(this,e-se((at(),U2)),$n(this.j&2?(!this.k&&(this.k=new cf),this.k).Nk():U2,e),t)},o.ii=function(){return at(),U2},o.ki=function(e){switch(e){case 0:this.a=null;return;case 1:this.b=null;return}Wo(this,e-se((at(),U2)),$n(this.j&2?(!this.k&&(this.k=new cf),this.k).Nk():U2,e))},o.Ib=function(){var e;return this.j&4?_s(this):(e=new ls(_s(this)),e.a+=" (data: ",Er(e,this.a),e.a+=", target: ",Er(e,this.b),e.a+=")",e.a)},o.a=null,o.b=null,w(oi,"ProcessingInstructionImpl",681),b(682,844,{110:1,94:1,93:1,58:1,54:1,99:1,857:1,2120:1,682:1},bjn),o.Lh=function(e,t,i){switch(e){case 0:return i?(!this.c&&(this.c=new Rt(this,0)),this.c):(!this.c&&(this.c=new Rt(this,0)),this.c.b);case 1:return i?(!this.c&&(this.c=new Rt(this,0)),u($c(this.c,(at(),zd)),160)):(!this.c&&(this.c=new Rt(this,0)),u(u($c(this.c,(at(),zd)),160),220)).Vl();case 2:return i?(!this.b&&(this.b=new Rt(this,2)),this.b):(!this.b&&(this.b=new Rt(this,2)),this.b.b);case 3:return!this.c&&(this.c=new Rt(this,0)),Oe(wy(this.c,(at(),F9),!0));case 4:return TV(this.a,(!this.c&&(this.c=new Rt(this,0)),Oe(wy(this.c,(at(),F9),!0))));case 5:return this.a}return zo(this,e-se((at(),G2)),$n(this.j&2?(!this.k&&(this.k=new cf),this.k).Nk():G2,e),t,i)},o.Wh=function(e){switch(e){case 0:return!!this.c&&this.c.i!=0;case 1:return!(!this.c&&(this.c=new Rt(this,0)),u($c(this.c,(at(),zd)),160)).dc();case 2:return!!this.b&&this.b.i!=0;case 3:return!this.c&&(this.c=new Rt(this,0)),Oe(wy(this.c,(at(),F9),!0))!=null;case 4:return TV(this.a,(!this.c&&(this.c=new Rt(this,0)),Oe(wy(this.c,(at(),F9),!0))))!=null;case 5:return!!this.a}return Uo(this,e-se((at(),G2)),$n(this.j&2?(!this.k&&(this.k=new cf),this.k).Nk():G2,e))},o.bi=function(e,t){switch(e){case 0:!this.c&&(this.c=new Rt(this,0)),H7(this.c,t);return;case 1:(!this.c&&(this.c=new Rt(this,0)),u(u($c(this.c,(at(),zd)),160),220)).Wb(t);return;case 2:!this.b&&(this.b=new Rt(this,2)),H7(this.b,t);return;case 3:bJ(this,Oe(t));return;case 4:bJ(this,MV(this.a,t));return;case 5:Afe(this,u(t,156));return}Jo(this,e-se((at(),G2)),$n(this.j&2?(!this.k&&(this.k=new cf),this.k).Nk():G2,e),t)},o.ii=function(){return at(),G2},o.ki=function(e){switch(e){case 0:!this.c&&(this.c=new Rt(this,0)),me(this.c);return;case 1:(!this.c&&(this.c=new Rt(this,0)),u($c(this.c,(at(),zd)),160)).$b();return;case 2:!this.b&&(this.b=new Rt(this,2)),me(this.b);return;case 3:!this.c&&(this.c=new Rt(this,0)),HA(this.c,(at(),F9),null);return;case 4:bJ(this,MV(this.a,null));return;case 5:this.a=null;return}Wo(this,e-se((at(),G2)),$n(this.j&2?(!this.k&&(this.k=new cf),this.k).Nk():G2,e))},w(oi,"SimpleAnyTypeImpl",682),b(683,516,{110:1,94:1,93:1,58:1,54:1,99:1,2121:1,683:1},wjn),o.Lh=function(e,t,i){switch(e){case 0:return i?(!this.a&&(this.a=new Rt(this,0)),this.a):(!this.a&&(this.a=new Rt(this,0)),this.a.b);case 1:return i?(!this.b&&(this.b=new Iu((On(),ar),pc,this,1)),this.b):(!this.b&&(this.b=new Iu((On(),ar),pc,this,1)),uk(this.b));case 2:return i?(!this.c&&(this.c=new Iu((On(),ar),pc,this,2)),this.c):(!this.c&&(this.c=new Iu((On(),ar),pc,this,2)),uk(this.c));case 3:return!this.a&&(this.a=new Rt(this,0)),$c(this.a,(at(),gE));case 4:return!this.a&&(this.a=new Rt(this,0)),$c(this.a,(at(),pE));case 5:return!this.a&&(this.a=new Rt(this,0)),$c(this.a,(at(),B9));case 6:return!this.a&&(this.a=new Rt(this,0)),$c(this.a,(at(),R9))}return zo(this,e-se((at(),Cb)),$n(this.j&2?(!this.k&&(this.k=new cf),this.k).Nk():Cb,e),t,i)},o.Uh=function(e,t,i){var r;switch(t){case 0:return!this.a&&(this.a=new Rt(this,0)),ly(this.a,e,i);case 1:return!this.b&&(this.b=new Iu((On(),ar),pc,this,1)),UC(this.b,e,i);case 2:return!this.c&&(this.c=new Iu((On(),ar),pc,this,2)),UC(this.c,e,i);case 5:return!this.a&&(this.a=new Rt(this,0)),DAn($c(this.a,(at(),B9)),e,i)}return r=u($n(this.j&2?(!this.k&&(this.k=new cf),this.k).Nk():(at(),Cb),t),69),r.wk().Ak(this,uQ(this),t-se((at(),Cb)),e,i)},o.Wh=function(e){switch(e){case 0:return!!this.a&&this.a.i!=0;case 1:return!!this.b&&this.b.f!=0;case 2:return!!this.c&&this.c.f!=0;case 3:return!this.a&&(this.a=new Rt(this,0)),!TC($c(this.a,(at(),gE)));case 4:return!this.a&&(this.a=new Rt(this,0)),!TC($c(this.a,(at(),pE)));case 5:return!this.a&&(this.a=new Rt(this,0)),!TC($c(this.a,(at(),B9)));case 6:return!this.a&&(this.a=new Rt(this,0)),!TC($c(this.a,(at(),R9)))}return Uo(this,e-se((at(),Cb)),$n(this.j&2?(!this.k&&(this.k=new cf),this.k).Nk():Cb,e))},o.bi=function(e,t){switch(e){case 0:!this.a&&(this.a=new Rt(this,0)),H7(this.a,t);return;case 1:!this.b&&(this.b=new Iu((On(),ar),pc,this,1)),TT(this.b,t);return;case 2:!this.c&&(this.c=new Iu((On(),ar),pc,this,2)),TT(this.c,t);return;case 3:!this.a&&(this.a=new Rt(this,0)),rp($c(this.a,(at(),gE))),!this.a&&(this.a=new Rt(this,0)),I6($c(this.a,gE),u(t,16));return;case 4:!this.a&&(this.a=new Rt(this,0)),rp($c(this.a,(at(),pE))),!this.a&&(this.a=new Rt(this,0)),I6($c(this.a,pE),u(t,16));return;case 5:!this.a&&(this.a=new Rt(this,0)),rp($c(this.a,(at(),B9))),!this.a&&(this.a=new Rt(this,0)),I6($c(this.a,B9),u(t,16));return;case 6:!this.a&&(this.a=new Rt(this,0)),rp($c(this.a,(at(),R9))),!this.a&&(this.a=new Rt(this,0)),I6($c(this.a,R9),u(t,16));return}Jo(this,e-se((at(),Cb)),$n(this.j&2?(!this.k&&(this.k=new cf),this.k).Nk():Cb,e),t)},o.ii=function(){return at(),Cb},o.ki=function(e){switch(e){case 0:!this.a&&(this.a=new Rt(this,0)),me(this.a);return;case 1:!this.b&&(this.b=new Iu((On(),ar),pc,this,1)),this.b.c.$b();return;case 2:!this.c&&(this.c=new Iu((On(),ar),pc,this,2)),this.c.c.$b();return;case 3:!this.a&&(this.a=new Rt(this,0)),rp($c(this.a,(at(),gE)));return;case 4:!this.a&&(this.a=new Rt(this,0)),rp($c(this.a,(at(),pE)));return;case 5:!this.a&&(this.a=new Rt(this,0)),rp($c(this.a,(at(),B9)));return;case 6:!this.a&&(this.a=new Rt(this,0)),rp($c(this.a,(at(),R9)));return}Wo(this,e-se((at(),Cb)),$n(this.j&2?(!this.k&&(this.k=new cf),this.k).Nk():Cb,e))},o.Ib=function(){var e;return this.j&4?_s(this):(e=new ls(_s(this)),e.a+=" (mixed: ",T6(e,this.a),e.a+=")",e.a)},w(oi,"XMLTypeDocumentRootImpl",683),b(2028,720,{110:1,94:1,93:1,480:1,155:1,58:1,114:1,54:1,99:1,158:1,119:1,120:1,2122:1},S6n),o.ri=function(e,t){switch(e.hk()){case 7:case 8:case 9:case 10:case 16:case 22:case 23:case 24:case 25:case 26:case 32:case 33:case 34:case 36:case 37:case 44:case 45:case 50:case 51:case 53:case 55:case 56:case 57:case 58:case 60:case 61:case 4:return t==null?null:Jr(t);case 19:case 28:case 29:case 35:case 38:case 39:case 41:case 46:case 52:case 54:case 5:return Oe(t);case 6:return fae(u(t,195));case 12:case 47:case 49:case 11:return PGn(this,e,t);case 13:return t==null?null:vIe(u(t,247));case 15:case 14:return t==null?null:Mwe($(R(t)));case 17:return TKn((at(),t));case 18:return TKn(t);case 21:case 20:return t==null?null:Twe(u(t,161).a);case 27:return hae(u(t,195));case 30:return KRn((at(),u(t,15)));case 31:return KRn(u(t,15));case 40:return aae((at(),t));case 42:return AKn((at(),t));case 43:return AKn(t);case 59:case 48:return lae((at(),t));default:throw M(new Gn(ev+e.xe()+nb))}},o.si=function(e){var t,i,r,c,s;switch(e.G==-1&&(e.G=(i=jo(e),i?f1(i.vi(),e):-1)),e.G){case 0:return t=new iz,t;case 1:return r=new B6n,r;case 2:return c=new bjn,c;case 3:return s=new wjn,s;default:throw M(new Gn(hK+e.zb+nb))}},o.ti=function(e,t){var i,r,c,s,f,h,l,a,d,g,p,m,k,j,A,I;switch(e.hk()){case 5:case 52:case 4:return t;case 6:return m9e(t);case 8:case 7:return t==null?null:rye(t);case 9:return t==null?null:bk(Ao((r=Fc(t,!0),r.length>0&&(zn(0,r.length),r.charCodeAt(0)==43)?(zn(1,r.length+1),r.substr(1)):r),-128,127)<<24>>24);case 10:return t==null?null:bk(Ao((c=Fc(t,!0),c.length>0&&(zn(0,c.length),c.charCodeAt(0)==43)?(zn(1,c.length+1),c.substr(1)):c),-128,127)<<24>>24);case 11:return Oe(z0(this,(at(),use),t));case 12:return Oe(z0(this,(at(),ose),t));case 13:return t==null?null:new Az(Fc(t,!0));case 15:case 14:return AMe(t);case 16:return Oe(z0(this,(at(),sse),t));case 17:return HBn((at(),t));case 18:return HBn(t);case 28:case 29:case 35:case 38:case 39:case 41:case 54:case 19:return Fc(t,!0);case 21:case 20:return FMe(t);case 22:return Oe(z0(this,(at(),fse),t));case 23:return Oe(z0(this,(at(),hse),t));case 24:return Oe(z0(this,(at(),lse),t));case 25:return Oe(z0(this,(at(),ase),t));case 26:return Oe(z0(this,(at(),dse),t));case 27:return u9e(t);case 30:return qBn((at(),t));case 31:return qBn(t);case 32:return t==null?null:Y(Ao((d=Fc(t,!0),d.length>0&&(zn(0,d.length),d.charCodeAt(0)==43)?(zn(1,d.length+1),d.substr(1)):d),Wi,et));case 33:return t==null?null:new H1((g=Fc(t,!0),g.length>0&&(zn(0,g.length),g.charCodeAt(0)==43)?(zn(1,g.length+1),g.substr(1)):g));case 34:return t==null?null:Y(Ao((p=Fc(t,!0),p.length>0&&(zn(0,p.length),p.charCodeAt(0)==43)?(zn(1,p.length+1),p.substr(1)):p),Wi,et));case 36:return t==null?null:Ml(zA((m=Fc(t,!0),m.length>0&&(zn(0,m.length),m.charCodeAt(0)==43)?(zn(1,m.length+1),m.substr(1)):m)));case 37:return t==null?null:Ml(zA((k=Fc(t,!0),k.length>0&&(zn(0,k.length),k.charCodeAt(0)==43)?(zn(1,k.length+1),k.substr(1)):k)));case 40:return i7e((at(),t));case 42:return UBn((at(),t));case 43:return UBn(t);case 44:return t==null?null:new H1((j=Fc(t,!0),j.length>0&&(zn(0,j.length),j.charCodeAt(0)==43)?(zn(1,j.length+1),j.substr(1)):j));case 45:return t==null?null:new H1((A=Fc(t,!0),A.length>0&&(zn(0,A.length),A.charCodeAt(0)==43)?(zn(1,A.length+1),A.substr(1)):A));case 46:return Fc(t,!1);case 47:return Oe(z0(this,(at(),bse),t));case 59:case 48:return t7e((at(),t));case 49:return Oe(z0(this,(at(),wse),t));case 50:return t==null?null:sm(Ao((I=Fc(t,!0),I.length>0&&(zn(0,I.length),I.charCodeAt(0)==43)?(zn(1,I.length+1),I.substr(1)):I),QS,32767)<<16>>16);case 51:return t==null?null:sm(Ao((s=Fc(t,!0),s.length>0&&(zn(0,s.length),s.charCodeAt(0)==43)?(zn(1,s.length+1),s.substr(1)):s),QS,32767)<<16>>16);case 53:return Oe(z0(this,(at(),gse),t));case 55:return t==null?null:sm(Ao((f=Fc(t,!0),f.length>0&&(zn(0,f.length),f.charCodeAt(0)==43)?(zn(1,f.length+1),f.substr(1)):f),QS,32767)<<16>>16);case 56:return t==null?null:sm(Ao((h=Fc(t,!0),h.length>0&&(zn(0,h.length),h.charCodeAt(0)==43)?(zn(1,h.length+1),h.substr(1)):h),QS,32767)<<16>>16);case 57:return t==null?null:Ml(zA((l=Fc(t,!0),l.length>0&&(zn(0,l.length),l.charCodeAt(0)==43)?(zn(1,l.length+1),l.substr(1)):l)));case 58:return t==null?null:Ml(zA((a=Fc(t,!0),a.length>0&&(zn(0,a.length),a.charCodeAt(0)==43)?(zn(1,a.length+1),a.substr(1)):a)));case 60:return t==null?null:Y(Ao((i=Fc(t,!0),i.length>0&&(zn(0,i.length),i.charCodeAt(0)==43)?(zn(1,i.length+1),i.substr(1)):i),Wi,et));case 61:return t==null?null:Y(Ao(Fc(t,!0),Wi,et));default:throw M(new Gn(ev+e.xe()+nb))}};var mse,s0n,vse,f0n;w(oi,"XMLTypeFactoryImpl",2028),b(594,184,{110:1,94:1,93:1,155:1,197:1,58:1,241:1,114:1,54:1,99:1,158:1,184:1,119:1,120:1,690:1,2044:1,594:1},dIn),o.N=!1,o.O=!1;var kse=!1;w(oi,"XMLTypePackageImpl",594),b(1961,1,{851:1},P6n),o.Kk=function(){return Fen(),Pse},w(oi,"XMLTypePackageImpl/1",1961),b(1970,1,Ge,I6n),o.fk=function(e){return Ai(e)},o.gk=function(e){return K(fn,J,2,e,6,1)},w(oi,"XMLTypePackageImpl/10",1970),b(1971,1,Ge,O6n),o.fk=function(e){return Ai(e)},o.gk=function(e){return K(fn,J,2,e,6,1)},w(oi,"XMLTypePackageImpl/11",1971),b(1972,1,Ge,D6n),o.fk=function(e){return Ai(e)},o.gk=function(e){return K(fn,J,2,e,6,1)},w(oi,"XMLTypePackageImpl/12",1972),b(1973,1,Ge,L6n),o.fk=function(e){return $b(e)},o.gk=function(e){return K(si,J,345,e,7,1)},w(oi,"XMLTypePackageImpl/13",1973),b(1974,1,Ge,N6n),o.fk=function(e){return Ai(e)},o.gk=function(e){return K(fn,J,2,e,6,1)},w(oi,"XMLTypePackageImpl/14",1974),b(1975,1,Ge,$6n),o.fk=function(e){return O(e,15)},o.gk=function(e){return K(rs,kw,15,e,0,1)},w(oi,"XMLTypePackageImpl/15",1975),b(1976,1,Ge,x6n),o.fk=function(e){return O(e,15)},o.gk=function(e){return K(rs,kw,15,e,0,1)},w(oi,"XMLTypePackageImpl/16",1976),b(1977,1,Ge,F6n),o.fk=function(e){return Ai(e)},o.gk=function(e){return K(fn,J,2,e,6,1)},w(oi,"XMLTypePackageImpl/17",1977),b(1978,1,Ge,R6n),o.fk=function(e){return O(e,161)},o.gk=function(e){return K(sv,J,161,e,0,1)},w(oi,"XMLTypePackageImpl/18",1978),b(1979,1,Ge,K6n),o.fk=function(e){return Ai(e)},o.gk=function(e){return K(fn,J,2,e,6,1)},w(oi,"XMLTypePackageImpl/19",1979),b(1962,1,Ge,_6n),o.fk=function(e){return O(e,857)},o.gk=function(e){return K(bE,Fn,857,e,0,1)},w(oi,"XMLTypePackageImpl/2",1962),b(1980,1,Ge,H6n),o.fk=function(e){return Ai(e)},o.gk=function(e){return K(fn,J,2,e,6,1)},w(oi,"XMLTypePackageImpl/20",1980),b(1981,1,Ge,q6n),o.fk=function(e){return Ai(e)},o.gk=function(e){return K(fn,J,2,e,6,1)},w(oi,"XMLTypePackageImpl/21",1981),b(1982,1,Ge,U6n),o.fk=function(e){return Ai(e)},o.gk=function(e){return K(fn,J,2,e,6,1)},w(oi,"XMLTypePackageImpl/22",1982),b(1983,1,Ge,G6n),o.fk=function(e){return Ai(e)},o.gk=function(e){return K(fn,J,2,e,6,1)},w(oi,"XMLTypePackageImpl/23",1983),b(1984,1,Ge,z6n),o.fk=function(e){return O(e,195)},o.gk=function(e){return K(Fu,J,195,e,0,2)},w(oi,"XMLTypePackageImpl/24",1984),b(1985,1,Ge,X6n),o.fk=function(e){return Ai(e)},o.gk=function(e){return K(fn,J,2,e,6,1)},w(oi,"XMLTypePackageImpl/25",1985),b(1986,1,Ge,V6n),o.fk=function(e){return Ai(e)},o.gk=function(e){return K(fn,J,2,e,6,1)},w(oi,"XMLTypePackageImpl/26",1986),b(1987,1,Ge,W6n),o.fk=function(e){return O(e,15)},o.gk=function(e){return K(rs,kw,15,e,0,1)},w(oi,"XMLTypePackageImpl/27",1987),b(1988,1,Ge,J6n),o.fk=function(e){return O(e,15)},o.gk=function(e){return K(rs,kw,15,e,0,1)},w(oi,"XMLTypePackageImpl/28",1988),b(1989,1,Ge,Q6n),o.fk=function(e){return Ai(e)},o.gk=function(e){return K(fn,J,2,e,6,1)},w(oi,"XMLTypePackageImpl/29",1989),b(1963,1,Ge,Y6n),o.fk=function(e){return O(e,681)},o.gk=function(e){return K(AO,Fn,2119,e,0,1)},w(oi,"XMLTypePackageImpl/3",1963),b(1990,1,Ge,Z6n),o.fk=function(e){return O(e,17)},o.gk=function(e){return K(Gi,J,17,e,0,1)},w(oi,"XMLTypePackageImpl/30",1990),b(1991,1,Ge,n5n),o.fk=function(e){return Ai(e)},o.gk=function(e){return K(fn,J,2,e,6,1)},w(oi,"XMLTypePackageImpl/31",1991),b(1992,1,Ge,e5n),o.fk=function(e){return O(e,168)},o.gk=function(e){return K(tb,J,168,e,0,1)},w(oi,"XMLTypePackageImpl/32",1992),b(1993,1,Ge,t5n),o.fk=function(e){return Ai(e)},o.gk=function(e){return K(fn,J,2,e,6,1)},w(oi,"XMLTypePackageImpl/33",1993),b(1994,1,Ge,i5n),o.fk=function(e){return Ai(e)},o.gk=function(e){return K(fn,J,2,e,6,1)},w(oi,"XMLTypePackageImpl/34",1994),b(1995,1,Ge,r5n),o.fk=function(e){return Ai(e)},o.gk=function(e){return K(fn,J,2,e,6,1)},w(oi,"XMLTypePackageImpl/35",1995),b(1996,1,Ge,c5n),o.fk=function(e){return Ai(e)},o.gk=function(e){return K(fn,J,2,e,6,1)},w(oi,"XMLTypePackageImpl/36",1996),b(1997,1,Ge,u5n),o.fk=function(e){return O(e,15)},o.gk=function(e){return K(rs,kw,15,e,0,1)},w(oi,"XMLTypePackageImpl/37",1997),b(1998,1,Ge,o5n),o.fk=function(e){return O(e,15)},o.gk=function(e){return K(rs,kw,15,e,0,1)},w(oi,"XMLTypePackageImpl/38",1998),b(1999,1,Ge,s5n),o.fk=function(e){return Ai(e)},o.gk=function(e){return K(fn,J,2,e,6,1)},w(oi,"XMLTypePackageImpl/39",1999),b(1964,1,Ge,f5n),o.fk=function(e){return O(e,682)},o.gk=function(e){return K(wE,Fn,2120,e,0,1)},w(oi,"XMLTypePackageImpl/4",1964),b(2e3,1,Ge,h5n),o.fk=function(e){return Ai(e)},o.gk=function(e){return K(fn,J,2,e,6,1)},w(oi,"XMLTypePackageImpl/40",2e3),b(2001,1,Ge,l5n),o.fk=function(e){return Ai(e)},o.gk=function(e){return K(fn,J,2,e,6,1)},w(oi,"XMLTypePackageImpl/41",2001),b(2002,1,Ge,a5n),o.fk=function(e){return Ai(e)},o.gk=function(e){return K(fn,J,2,e,6,1)},w(oi,"XMLTypePackageImpl/42",2002),b(2003,1,Ge,d5n),o.fk=function(e){return Ai(e)},o.gk=function(e){return K(fn,J,2,e,6,1)},w(oi,"XMLTypePackageImpl/43",2003),b(2004,1,Ge,b5n),o.fk=function(e){return Ai(e)},o.gk=function(e){return K(fn,J,2,e,6,1)},w(oi,"XMLTypePackageImpl/44",2004),b(2005,1,Ge,w5n),o.fk=function(e){return O(e,191)},o.gk=function(e){return K(ib,J,191,e,0,1)},w(oi,"XMLTypePackageImpl/45",2005),b(2006,1,Ge,g5n),o.fk=function(e){return Ai(e)},o.gk=function(e){return K(fn,J,2,e,6,1)},w(oi,"XMLTypePackageImpl/46",2006),b(2007,1,Ge,p5n),o.fk=function(e){return Ai(e)},o.gk=function(e){return K(fn,J,2,e,6,1)},w(oi,"XMLTypePackageImpl/47",2007),b(2008,1,Ge,m5n),o.fk=function(e){return Ai(e)},o.gk=function(e){return K(fn,J,2,e,6,1)},w(oi,"XMLTypePackageImpl/48",2008),b(2009,1,Ge,v5n),o.fk=function(e){return O(e,191)},o.gk=function(e){return K(ib,J,191,e,0,1)},w(oi,"XMLTypePackageImpl/49",2009),b(1965,1,Ge,k5n),o.fk=function(e){return O(e,683)},o.gk=function(e){return K(u0n,Fn,2121,e,0,1)},w(oi,"XMLTypePackageImpl/5",1965),b(2010,1,Ge,y5n),o.fk=function(e){return O(e,168)},o.gk=function(e){return K(tb,J,168,e,0,1)},w(oi,"XMLTypePackageImpl/50",2010),b(2011,1,Ge,j5n),o.fk=function(e){return Ai(e)},o.gk=function(e){return K(fn,J,2,e,6,1)},w(oi,"XMLTypePackageImpl/51",2011),b(2012,1,Ge,E5n),o.fk=function(e){return O(e,17)},o.gk=function(e){return K(Gi,J,17,e,0,1)},w(oi,"XMLTypePackageImpl/52",2012),b(1966,1,Ge,C5n),o.fk=function(e){return Ai(e)},o.gk=function(e){return K(fn,J,2,e,6,1)},w(oi,"XMLTypePackageImpl/6",1966),b(1967,1,Ge,M5n),o.fk=function(e){return O(e,195)},o.gk=function(e){return K(Fu,J,195,e,0,2)},w(oi,"XMLTypePackageImpl/7",1967),b(1968,1,Ge,T5n),o.fk=function(e){return Nb(e)},o.gk=function(e){return K(Gt,J,485,e,8,1)},w(oi,"XMLTypePackageImpl/8",1968),b(1969,1,Ge,A5n),o.fk=function(e){return O(e,222)},o.gk=function(e){return K(p3,J,222,e,0,1)},w(oi,"XMLTypePackageImpl/9",1969);var Zf,O1,K9,SO,P;b(55,63,Pl,Le),w(p1,"RegEx/ParseException",55),b(836,1,{},rG),o.bm=function(e){return ei*16)throw M(new Le($e((Ie(),qWn))));i=i*16+c}while(!0);if(this.a!=125)throw M(new Le($e((Ie(),UWn))));if(i>cv)throw M(new Le($e((Ie(),GWn))));e=i}else{if(c=0,this.c!=0||(c=bd(this.a))<0)throw M(new Le($e((Ie(),g1))));if(i=c,Ye(this),this.c!=0||(c=bd(this.a))<0)throw M(new Le($e((Ie(),g1))));i=i*16+c,e=i}break;case 117:if(r=0,Ye(this),this.c!=0||(r=bd(this.a))<0)throw M(new Le($e((Ie(),g1))));if(t=r,Ye(this),this.c!=0||(r=bd(this.a))<0)throw M(new Le($e((Ie(),g1))));if(t=t*16+r,Ye(this),this.c!=0||(r=bd(this.a))<0)throw M(new Le($e((Ie(),g1))));if(t=t*16+r,Ye(this),this.c!=0||(r=bd(this.a))<0)throw M(new Le($e((Ie(),g1))));t=t*16+r,e=t;break;case 118:if(Ye(this),this.c!=0||(r=bd(this.a))<0)throw M(new Le($e((Ie(),g1))));if(t=r,Ye(this),this.c!=0||(r=bd(this.a))<0)throw M(new Le($e((Ie(),g1))));if(t=t*16+r,Ye(this),this.c!=0||(r=bd(this.a))<0)throw M(new Le($e((Ie(),g1))));if(t=t*16+r,Ye(this),this.c!=0||(r=bd(this.a))<0)throw M(new Le($e((Ie(),g1))));if(t=t*16+r,Ye(this),this.c!=0||(r=bd(this.a))<0)throw M(new Le($e((Ie(),g1))));if(t=t*16+r,Ye(this),this.c!=0||(r=bd(this.a))<0)throw M(new Le($e((Ie(),g1))));if(t=t*16+r,t>cv)throw M(new Le($e((Ie(),"parser.descappe.4"))));e=t;break;case 65:case 90:case 122:throw M(new Le($e((Ie(),zWn))))}return e},o.dm=function(e){var t,i;switch(e){case 100:i=(this.e&32)==32?oa("Nd",!0):(nt(),PO);break;case 68:i=(this.e&32)==32?oa("Nd",!1):(nt(),w0n);break;case 119:i=(this.e&32)==32?oa("IsWord",!0):(nt(),zv);break;case 87:i=(this.e&32)==32?oa("IsWord",!1):(nt(),p0n);break;case 115:i=(this.e&32)==32?oa("IsSpace",!0):(nt(),H3);break;case 83:i=(this.e&32)==32?oa("IsSpace",!1):(nt(),g0n);break;default:throw M(new ec((t=e,zJn+t.toString(16))))}return i},o.em=function(e){var t,i,r,c,s,f,h,l,a,d,g,p;for(this.b=1,Ye(this),t=null,this.c==0&&this.a==94?(Ye(this),e?d=(nt(),nt(),new yo(5)):(t=(nt(),nt(),new yo(4)),xc(t,0,cv),d=new yo(4))):d=(nt(),nt(),new yo(4)),c=!0;(p=this.c)!=1&&!(p==0&&this.a==93&&!c);){if(c=!1,i=this.a,r=!1,p==10)switch(i){case 100:case 68:case 119:case 87:case 115:case 83:gw(d,this.dm(i)),r=!0;break;case 105:case 73:case 99:case 67:i=this.um(d,i),i<0&&(r=!0);break;case 112:case 80:if(g=$nn(this,i),!g)throw M(new Le($e((Ie(),EK))));gw(d,g),r=!0;break;default:i=this.cm()}else if(p==20){if(f=w4(this.i,58,this.d),f<0)throw M(new Le($e((Ie(),Bcn))));if(h=!0,Xi(this.i,this.d)==94&&(++this.d,h=!1),s=qo(this.i,this.d,f),l=mNn(s,h,(this.e&512)==512),!l)throw M(new Le($e((Ie(),BWn))));if(gw(d,l),r=!0,f+1>=this.j||Xi(this.i,f+1)!=93)throw M(new Le($e((Ie(),Bcn))));this.d=f+2}if(Ye(this),!r)if(this.c!=0||this.a!=45)xc(d,i,i);else{if(Ye(this),(p=this.c)==1)throw M(new Le($e((Ie(),US))));p==0&&this.a==93?(xc(d,i,i),xc(d,45,45)):(a=this.a,p==10&&(a=this.cm()),Ye(this),xc(d,i,a))}(this.e&Us)==Us&&this.c==0&&this.a==44&&Ye(this)}if(this.c==1)throw M(new Le($e((Ie(),US))));return t&&(Q5(t,d),d=t),Ug(d),W5(d),this.b=0,Ye(this),d},o.fm=function(){var e,t,i,r;for(i=this.em(!1);(r=this.c)!=7;)if(e=this.a,r==0&&(e==45||e==38)||r==4){if(Ye(this),this.c!=9)throw M(new Le($e((Ie(),KWn))));if(t=this.em(!1),r==4)gw(i,t);else if(e==45)Q5(i,t);else if(e==38)MGn(i,t);else throw M(new ec("ASSERT"))}else throw M(new Le($e((Ie(),_Wn))));return Ye(this),i},o.gm=function(){var e,t;return e=this.a-48,t=(nt(),nt(),new IN(12,null,e)),!this.g&&(this.g=new BE),FE(this.g,new RG(e)),Ye(this),t},o.hm=function(){return Ye(this),nt(),Ese},o.im=function(){return Ye(this),nt(),jse},o.jm=function(){throw M(new Le($e((Ie(),is))))},o.km=function(){throw M(new Le($e((Ie(),is))))},o.lm=function(){return Ye(this),y6e()},o.mm=function(){return Ye(this),nt(),Mse},o.nm=function(){return Ye(this),nt(),Ase},o.om=function(){var e;if(this.d>=this.j||((e=Xi(this.i,this.d++))&65504)!=64)throw M(new Le($e((Ie(),$Wn))));return Ye(this),nt(),nt(),new Nh(0,e-64)},o.pm=function(){return Ye(this),CPe()},o.qm=function(){return Ye(this),nt(),Sse},o.rm=function(){var e;return e=(nt(),nt(),new Nh(0,105)),Ye(this),e},o.sm=function(){return Ye(this),nt(),Tse},o.tm=function(){return Ye(this),nt(),Cse},o.um=function(e,t){return this.cm()},o.vm=function(){return Ye(this),nt(),d0n},o.wm=function(){var e,t,i,r,c;if(this.d+1>=this.j)throw M(new Le($e((Ie(),DWn))));if(r=-1,t=null,e=Xi(this.i,this.d),49<=e&&e<=57){if(r=e-48,!this.g&&(this.g=new BE),FE(this.g,new RG(r)),++this.d,Xi(this.i,this.d)!=41)throw M(new Le($e((Ie(),Ad))));++this.d}else switch(e==63&&--this.d,Ye(this),t=stn(this),t.e){case 20:case 21:case 22:case 23:break;case 8:if(this.c!=7)throw M(new Le($e((Ie(),Ad))));break;default:throw M(new Le($e((Ie(),LWn))))}if(Ye(this),c=B0(this),i=null,c.e==2){if(c.Pm()!=2)throw M(new Le($e((Ie(),NWn))));i=c.Lm(1),c=c.Lm(0)}if(this.c!=7)throw M(new Le($e((Ie(),Ad))));return Ye(this),nt(),nt(),new ZNn(r,t,c,i)},o.xm=function(){return Ye(this),nt(),b0n},o.ym=function(){var e;if(Ye(this),e=wM(24,B0(this)),this.c!=7)throw M(new Le($e((Ie(),Ad))));return Ye(this),e},o.zm=function(){var e;if(Ye(this),e=wM(20,B0(this)),this.c!=7)throw M(new Le($e((Ie(),Ad))));return Ye(this),e},o.Am=function(){var e;if(Ye(this),e=wM(22,B0(this)),this.c!=7)throw M(new Le($e((Ie(),Ad))));return Ye(this),e},o.Bm=function(){var e,t,i,r,c;for(e=0,i=0,t=-1;this.d=this.j)throw M(new Le($e((Ie(),xcn))));if(t==45){for(++this.d;this.d=this.j)throw M(new Le($e((Ie(),xcn))))}if(t==58){if(++this.d,Ye(this),r=VPn(B0(this),e,i),this.c!=7)throw M(new Le($e((Ie(),Ad))));Ye(this)}else if(t==41)++this.d,Ye(this),r=VPn(B0(this),e,i);else throw M(new Le($e((Ie(),OWn))));return r},o.Cm=function(){var e;if(Ye(this),e=wM(21,B0(this)),this.c!=7)throw M(new Le($e((Ie(),Ad))));return Ye(this),e},o.Dm=function(){var e;if(Ye(this),e=wM(23,B0(this)),this.c!=7)throw M(new Le($e((Ie(),Ad))));return Ye(this),e},o.Em=function(){var e,t;if(Ye(this),e=this.f++,t=rN(B0(this),e),this.c!=7)throw M(new Le($e((Ie(),Ad))));return Ye(this),t},o.Fm=function(){var e;if(Ye(this),e=rN(B0(this),0),this.c!=7)throw M(new Le($e((Ie(),Ad))));return Ye(this),e},o.Gm=function(e){return Ye(this),this.c==5?(Ye(this),uM(e,(nt(),nt(),new Xb(9,e)))):uM(e,(nt(),nt(),new Xb(3,e)))},o.Hm=function(e){var t;return Ye(this),t=(nt(),nt(),new P6(2)),this.c==5?(Ye(this),pd(t,H9),pd(t,e)):(pd(t,e),pd(t,H9)),t},o.Im=function(e){return Ye(this),this.c==5?(Ye(this),nt(),nt(),new Xb(9,e)):(nt(),nt(),new Xb(3,e))},o.a=0,o.b=0,o.c=0,o.d=0,o.e=0,o.f=1,o.g=null,o.j=0,w(p1,"RegEx/RegexParser",836),b(1947,836,{},gjn),o.bm=function(e){return!1},o.cm=function(){return gen(this)},o.dm=function(e){return Im(e)},o.em=function(e){return kzn(this)},o.fm=function(){throw M(new Le($e((Ie(),is))))},o.gm=function(){throw M(new Le($e((Ie(),is))))},o.hm=function(){throw M(new Le($e((Ie(),is))))},o.im=function(){throw M(new Le($e((Ie(),is))))},o.jm=function(){return Ye(this),Im(67)},o.km=function(){return Ye(this),Im(73)},o.lm=function(){throw M(new Le($e((Ie(),is))))},o.mm=function(){throw M(new Le($e((Ie(),is))))},o.nm=function(){throw M(new Le($e((Ie(),is))))},o.om=function(){return Ye(this),Im(99)},o.pm=function(){throw M(new Le($e((Ie(),is))))},o.qm=function(){throw M(new Le($e((Ie(),is))))},o.rm=function(){return Ye(this),Im(105)},o.sm=function(){throw M(new Le($e((Ie(),is))))},o.tm=function(){throw M(new Le($e((Ie(),is))))},o.um=function(e,t){return gw(e,Im(t)),-1},o.vm=function(){return Ye(this),nt(),nt(),new Nh(0,94)},o.wm=function(){throw M(new Le($e((Ie(),is))))},o.xm=function(){return Ye(this),nt(),nt(),new Nh(0,36)},o.ym=function(){throw M(new Le($e((Ie(),is))))},o.zm=function(){throw M(new Le($e((Ie(),is))))},o.Am=function(){throw M(new Le($e((Ie(),is))))},o.Bm=function(){throw M(new Le($e((Ie(),is))))},o.Cm=function(){throw M(new Le($e((Ie(),is))))},o.Dm=function(){throw M(new Le($e((Ie(),is))))},o.Em=function(){var e;if(Ye(this),e=rN(B0(this),0),this.c!=7)throw M(new Le($e((Ie(),Ad))));return Ye(this),e},o.Fm=function(){throw M(new Le($e((Ie(),is))))},o.Gm=function(e){return Ye(this),uM(e,(nt(),nt(),new Xb(3,e)))},o.Hm=function(e){var t;return Ye(this),t=(nt(),nt(),new P6(2)),pd(t,e),pd(t,H9),t},o.Im=function(e){return Ye(this),nt(),nt(),new Xb(3,e)};var z2=null,Uv=null;w(p1,"RegEx/ParserForXMLSchema",1947),b(122,1,uv,Wd),o.Jm=function(e){throw M(new ec("Not supported."))},o.Km=function(){return-1},o.Lm=function(e){return null},o.Mm=function(){return null},o.Nm=function(e){},o.Om=function(e){},o.Pm=function(){return 0},o.Ib=function(){return this.Qm(0)},o.Qm=function(e){return this.e==11?".":""},o.e=0;var h0n,Gv,_9,yse,l0n,rg=null,PO,IU=null,a0n,H9,OU=null,d0n,b0n,w0n,g0n,p0n,jse,H3,Ese,Cse,Mse,Tse,zv,Ase,Sse,NNe=w(p1,"RegEx/Token",122);b(138,122,{3:1,138:1,122:1},yo),o.Qm=function(e){var t,i,r;if(this.e==4)if(this==a0n)i=".";else if(this==PO)i="\\d";else if(this==zv)i="\\w";else if(this==H3)i="\\s";else{for(r=new Hl,r.a+="[",t=0;t0&&(r.a+=","),this.b[t]===this.b[t+1]?Er(r,by(this.b[t])):(Er(r,by(this.b[t])),r.a+="-",Er(r,by(this.b[t+1])));r.a+="]",i=r.a}else if(this==w0n)i="\\D";else if(this==p0n)i="\\W";else if(this==g0n)i="\\S";else{for(r=new Hl,r.a+="[^",t=0;t0&&(r.a+=","),this.b[t]===this.b[t+1]?Er(r,by(this.b[t])):(Er(r,by(this.b[t])),r.a+="-",Er(r,by(this.b[t+1])));r.a+="]",i=r.a}return i},o.a=!1,o.c=!1,w(p1,"RegEx/RangeToken",138),b(592,1,{592:1},RG),o.a=0,w(p1,"RegEx/RegexParser/ReferencePosition",592),b(591,1,{3:1,591:1},OEn),o.Fb=function(e){var t;return e==null||!O(e,591)?!1:(t=u(e,591),An(this.b,t.b)&&this.a==t.a)},o.Hb=function(){return t1(this.b+"/"+fen(this.a))},o.Ib=function(){return this.c.Qm(this.a)},o.a=0,w(p1,"RegEx/RegularExpression",591),b(228,122,uv,Nh),o.Km=function(){return this.a},o.Qm=function(e){var t,i,r;switch(this.e){case 0:switch(this.a){case 124:case 42:case 43:case 63:case 40:case 41:case 46:case 91:case 123:case 92:r="\\"+LL(this.a&ui);break;case 12:r="\\f";break;case 10:r="\\n";break;case 13:r="\\r";break;case 9:r="\\t";break;case 27:r="\\e";break;default:this.a>=hr?(i=(t=this.a>>>0,"0"+t.toString(16)),r="\\v"+qo(i,i.length-6,i.length)):r=""+LL(this.a&ui)}break;case 8:this==d0n||this==b0n?r=""+LL(this.a&ui):r="\\"+LL(this.a&ui);break;default:r=null}return r},o.a=0,w(p1,"RegEx/Token/CharToken",228),b(318,122,uv,Xb),o.Lm=function(e){return this.a},o.Nm=function(e){this.b=e},o.Om=function(e){this.c=e},o.Pm=function(){return 1},o.Qm=function(e){var t;if(this.e==3)if(this.c<0&&this.b<0)t=this.a.Qm(e)+"*";else if(this.c==this.b)t=this.a.Qm(e)+"{"+this.c+"}";else if(this.c>=0&&this.b>=0)t=this.a.Qm(e)+"{"+this.c+","+this.b+"}";else if(this.c>=0&&this.b<0)t=this.a.Qm(e)+"{"+this.c+",}";else throw M(new ec("Token#toString(): CLOSURE "+this.c+ur+this.b));else if(this.c<0&&this.b<0)t=this.a.Qm(e)+"*?";else if(this.c==this.b)t=this.a.Qm(e)+"{"+this.c+"}?";else if(this.c>=0&&this.b>=0)t=this.a.Qm(e)+"{"+this.c+","+this.b+"}?";else if(this.c>=0&&this.b<0)t=this.a.Qm(e)+"{"+this.c+",}?";else throw M(new ec("Token#toString(): NONGREEDYCLOSURE "+this.c+ur+this.b));return t},o.b=0,o.c=0,w(p1,"RegEx/Token/ClosureToken",318),b(837,122,uv,SW),o.Lm=function(e){return e==0?this.a:this.b},o.Pm=function(){return 2},o.Qm=function(e){var t;return this.b.e==3&&this.b.Lm(0)==this.a?t=this.a.Qm(e)+"+":this.b.e==9&&this.b.Lm(0)==this.a?t=this.a.Qm(e)+"+?":t=this.a.Qm(e)+(""+this.b.Qm(e)),t},w(p1,"RegEx/Token/ConcatToken",837),b(1945,122,uv,ZNn),o.Lm=function(e){if(e==0)return this.d;if(e==1)return this.b;throw M(new ec("Internal Error: "+e))},o.Pm=function(){return this.b?2:1},o.Qm=function(e){var t;return this.c>0?t="(?("+this.c+")":this.a.e==8?t="(?("+this.a+")":t="(?"+this.a,this.b?t+=this.d+"|"+this.b+")":t+=this.d+")",t},o.c=0,w(p1,"RegEx/Token/ConditionToken",1945),b(1946,122,uv,qOn),o.Lm=function(e){return this.b},o.Pm=function(){return 1},o.Qm=function(e){return"(?"+(this.a==0?"":fen(this.a))+(this.c==0?"":fen(this.c))+":"+this.b.Qm(e)+")"},o.a=0,o.c=0,w(p1,"RegEx/Token/ModifierToken",1946),b(838,122,uv,BW),o.Lm=function(e){return this.a},o.Pm=function(){return 1},o.Qm=function(e){var t;switch(t=null,this.e){case 6:this.b==0?t="(?:"+this.a.Qm(e)+")":t="("+this.a.Qm(e)+")";break;case 20:t="(?="+this.a.Qm(e)+")";break;case 21:t="(?!"+this.a.Qm(e)+")";break;case 22:t="(?<="+this.a.Qm(e)+")";break;case 23:t="(?"+this.a.Qm(e)+")"}return t},o.b=0,w(p1,"RegEx/Token/ParenToken",838),b(530,122,{3:1,122:1,530:1},IN),o.Mm=function(){return this.b},o.Qm=function(e){return this.e==12?"\\"+this.a:gMe(this.b)},o.a=0,w(p1,"RegEx/Token/StringToken",530),b(477,122,uv,P6),o.Jm=function(e){pd(this,e)},o.Lm=function(e){return u(k0(this.a,e),122)},o.Pm=function(){return this.a?this.a.a.c.length:0},o.Qm=function(e){var t,i,r,c,s;if(this.e==1){if(this.a.a.c.length==2)t=u(k0(this.a,0),122),i=u(k0(this.a,1),122),i.e==3&&i.Lm(0)==t?c=t.Qm(e)+"+":i.e==9&&i.Lm(0)==t?c=t.Qm(e)+"+?":c=t.Qm(e)+(""+i.Qm(e));else{for(s=new Hl,r=0;r=this.c.b:this.a<=this.c.b},o.Sb=function(){return this.b>0},o.Tb=function(){return this.b},o.Vb=function(){return this.b-1},o.Qb=function(){throw M(new Kl(ZJn))},o.a=0,o.b=0,w(iun,"ExclusiveRange/RangeIterator",258);var fs=A4(GS,"C"),ye=A4(C8,"I"),so=A4(i3,"Z"),xa=A4(M8,"J"),Fu=A4(y8,"B"),Pi=A4(j8,"D"),cg=A4(E8,"F"),X2=A4(T8,"S"),$Ne=Nt("org.eclipse.elk.core.labels","ILabelManager"),m0n=Nt(or,"DiagnosticChain"),v0n=Nt(AJn,"ResourceSet"),k0n=w(or,"InvocationTargetException",null),Ise=(HE(),W3e),Ose=Ose=Kke;Hme(Bfe),Bme("permProps",[[["locale","default"],[nQn,"gecko1_8"]],[["locale","default"],[nQn,"safari"]]]),Ose(null,"elk",null)}).call(this)}).call(this,typeof Nse<"u"?Nse:typeof self<"u"?self:typeof window<"u"?window:{})},{}],3:[function(Xt,gt,Sr){function Di(Jt,ze){if(!(Jt instanceof ze))throw new TypeError("Cannot call a class as a function")}function y(Jt,ze){if(!Jt)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return ze&&(typeof ze=="object"||typeof ze=="function")?ze:Jt}function Wt(Jt,ze){if(typeof ze!="function"&&ze!==null)throw new TypeError("Super expression must either be null or a function, not "+typeof ze);Jt.prototype=Object.create(ze&&ze.prototype,{constructor:{value:Jt,enumerable:!1,writable:!0,configurable:!0}}),ze&&(Object.setPrototypeOf?Object.setPrototypeOf(Jt,ze):Jt.__proto__=ze)}var Bu=Xt("./elk-api.js").default,Ht=function(Jt){Wt(ze,Jt);function ze(){var Yi=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};Di(this,ze);var Ri=Object.assign({},Yi),En=!1;try{Xt.resolve("web-worker"),En=!0}catch{}if(Yi.workerUrl)if(En){var hu=Xt("web-worker");Ri.workerFactory=function(Pr){return new hu(Pr)}}else console.warn(`Web worker requested but 'web-worker' package not installed. +Consider installing the package or pass your own 'workerFactory' to ELK's constructor. +... Falling back to non-web worker version.`);if(!Ri.workerFactory){var Qc=Xt("./elk-worker.min.js"),Ru=Qc.Worker;Ri.workerFactory=function(Pr){return new Ru(Pr)}}return y(this,(ze.__proto__||Object.getPrototypeOf(ze)).call(this,Ri))}return ze}(Bu);Object.defineProperty(gt.exports,"__esModule",{value:!0}),gt.exports=Ht,Ht.default=Ht},{"./elk-api.js":1,"./elk-worker.min.js":2,"web-worker":4}],4:[function(Xt,gt,Sr){gt.exports=Worker},{}]},{},[3])(3)})})(Bse);var VNe=Bse.exports;const WNe=zNe(VNe),JNe=(ut,_t,Xt)=>{const{parentById:gt}=Xt,Sr=new Set;let Di=ut;for(;Di;){if(Sr.add(Di),Di===_t)return Di;Di=gt[Di]}for(Di=_t;Di;){if(Sr.has(Di))return Di;Di=gt[Di]}return"root"},$se=new WNe;let Ab={};const QNe={};let X3={};const YNe=async function(ut,_t,Xt,gt,Sr,Di,y){const Bu=Xt.select(`[id="${_t}"]`).insert("g").attr("class","nodes"),Ht=Object.keys(ut);return await Promise.all(Ht.map(async function(Jt){const ze=ut[Jt];let Yi="default";ze.classes.length>0&&(Yi=ze.classes.join(" ")),Yi=Yi+" flowchart-label";const Ri=E0n(ze.styles);let En=ze.text!==void 0?ze.text:ze.id;const hu={width:0,height:0},Qc=[{id:ze.id+"-west",layoutOptions:{"port.side":"WEST"}},{id:ze.id+"-east",layoutOptions:{"port.side":"EAST"}},{id:ze.id+"-south",layoutOptions:{"port.side":"SOUTH"}},{id:ze.id+"-north",layoutOptions:{"port.side":"NORTH"}}];let Ru=0,Pr="",Cf={};switch(ze.type){case"round":Ru=5,Pr="rect";break;case"square":Pr="rect";break;case"diamond":Pr="question",Cf={portConstraints:"FIXED_SIDE"};break;case"hexagon":Pr="hexagon";break;case"odd":Pr="rect_left_inv_arrow";break;case"lean_right":Pr="lean_right";break;case"lean_left":Pr="lean_left";break;case"trapezoid":Pr="trapezoid";break;case"inv_trapezoid":Pr="inv_trapezoid";break;case"odd_right":Pr="rect_left_inv_arrow";break;case"circle":Pr="circle";break;case"ellipse":Pr="ellipse";break;case"stadium":Pr="stadium";break;case"subroutine":Pr="subroutine";break;case"cylinder":Pr="cylinder";break;case"group":Pr="rect";break;case"doublecircle":Pr="doublecircle";break;default:Pr="rect"}const L1={labelStyle:Ri.labelStyle,shape:Pr,labelText:En,labelType:ze.labelType,rx:Ru,ry:Ru,class:Yi,style:Ri.style,id:ze.id,link:ze.link,linkTarget:ze.linkTarget,tooltip:Sr.db.getTooltip(ze.id)||"",domId:Sr.db.lookUpDomId(ze.id),haveCallback:ze.haveCallback,width:ze.type==="group"?500:void 0,dir:ze.dir,type:ze.type,props:ze.props,padding:xU().flowchart.padding};let N1,og;if(L1.type!=="group")og=await _Ne(Bu,L1,ze.dir),N1=og.node().getBBox();else{gt.createElementNS("http://www.w3.org/2000/svg","text");const{shapeSvg:$1,bbox:ul}=await HNe(Bu,L1,void 0,!0);hu.width=ul.width,hu.wrappingWidth=xU().flowchart.wrappingWidth,hu.height=ul.height,hu.labelNode=$1.node(),L1.labelData=hu}const V3={id:ze.id,ports:ze.type==="diamond"?Qc:[],layoutOptions:Cf,labelText:En,labelData:hu,domId:Sr.db.lookUpDomId(ze.id),width:N1?.width,height:N1?.height,type:ze.type,el:og,parent:Di.parentById[ze.id]};X3[L1.id]=V3})),y},xse=(ut,_t,Xt)=>{const gt={TB:{in:{north:"north"},out:{south:"west",west:"east",east:"south"}},LR:{in:{west:"west"},out:{east:"south",south:"north",north:"east"}},RL:{in:{east:"east"},out:{west:"north",north:"south",south:"west"}},BT:{in:{south:"south"},out:{north:"east",east:"west",west:"north"}}};return gt.TD=gt.TB,gt[Xt][_t][ut]},Fse=(ut,_t,Xt)=>{if(Ba.info("getNextPort",{node:ut,edgeDirection:_t,graphDirection:Xt}),!Ab[ut])switch(Xt){case"TB":case"TD":Ab[ut]={inPosition:"north",outPosition:"south"};break;case"BT":Ab[ut]={inPosition:"south",outPosition:"north"};break;case"RL":Ab[ut]={inPosition:"east",outPosition:"west"};break;case"LR":Ab[ut]={inPosition:"west",outPosition:"east"};break}const gt=_t==="in"?Ab[ut].inPosition:Ab[ut].outPosition;return _t==="in"?Ab[ut].inPosition=xse(Ab[ut].inPosition,_t,Xt):Ab[ut].outPosition=xse(Ab[ut].outPosition,_t,Xt),gt},ZNe=(ut,_t)=>{let Xt=ut.start,gt=ut.end;const Sr=Xt,Di=gt,y=X3[Xt],Wt=X3[gt];return!y||!Wt?{source:Xt,target:gt}:(y.type==="diamond"&&(Xt=`${Xt}-${Fse(Xt,"out",_t)}`),Wt.type==="diamond"&&(gt=`${gt}-${Fse(gt,"in",_t)}`),{source:Xt,target:gt,sourceId:Sr,targetId:Di})},n$e=function(ut,_t,Xt,gt){Ba.info("abc78 edges = ",ut);const Sr=gt.insert("g").attr("class","edgeLabels");let Di={},y=_t.db.getDirection(),Wt,Bu;if(ut.defaultStyle!==void 0){const Ht=E0n(ut.defaultStyle);Wt=Ht.style,Bu=Ht.labelStyle}return ut.forEach(function(Ht){const Jt="L-"+Ht.start+"-"+Ht.end;Di[Jt]===void 0?(Di[Jt]=0,Ba.info("abc78 new entry",Jt,Di[Jt])):(Di[Jt]++,Ba.info("abc78 new entry",Jt,Di[Jt]));let ze=Jt+"-"+Di[Jt];Ba.info("abc78 new link id to be used is",Jt,ze,Di[Jt]);const Yi="LS-"+Ht.start,Ri="LE-"+Ht.end,En={style:"",labelStyle:""};switch(En.minlen=Ht.length||1,Ht.type==="arrow_open"?En.arrowhead="none":En.arrowhead="normal",En.arrowTypeStart="arrow_open",En.arrowTypeEnd="arrow_open",Ht.type){case"double_arrow_cross":En.arrowTypeStart="arrow_cross";case"arrow_cross":En.arrowTypeEnd="arrow_cross";break;case"double_arrow_point":En.arrowTypeStart="arrow_point";case"arrow_point":En.arrowTypeEnd="arrow_point";break;case"double_arrow_circle":En.arrowTypeStart="arrow_circle";case"arrow_circle":En.arrowTypeEnd="arrow_circle";break}let hu="",Qc="";switch(Ht.stroke){case"normal":hu="fill:none;",Wt!==void 0&&(hu=Wt),Bu!==void 0&&(Qc=Bu),En.thickness="normal",En.pattern="solid";break;case"dotted":En.thickness="normal",En.pattern="dotted",En.style="fill:none;stroke-width:2px;stroke-dasharray:3;";break;case"thick":En.thickness="thick",En.pattern="solid",En.style="stroke-width: 3.5px;fill:none;";break}if(Ht.style!==void 0){const og=E0n(Ht.style);hu=og.style,Qc=og.labelStyle}En.style=En.style+=hu,En.labelStyle=En.labelStyle+=Qc,Ht.interpolate!==void 0?En.curve=j0n(Ht.interpolate,$U):ut.defaultInterpolate!==void 0?En.curve=j0n(ut.defaultInterpolate,$U):En.curve=j0n(QNe.curve,$U),Ht.text===void 0?Ht.style!==void 0&&(En.arrowheadStyle="fill: #333"):(En.arrowheadStyle="fill: #333",En.labelpos="c"),En.labelType=Ht.labelType,En.label=Ht.text.replace(RNe.lineBreakRegex,` +`),Ht.style===void 0&&(En.style=En.style||"stroke: #333; stroke-width: 1.5px;fill:none;"),En.labelStyle=En.labelStyle.replace("color:","fill:"),En.id=ze,En.classes="flowchart-link "+Yi+" "+Ri;const Ru=qNe(Sr,En),{source:Pr,target:Cf,sourceId:L1,targetId:N1}=ZNe(Ht,y);Ba.debug("abc78 source and target",Pr,Cf),Xt.edges.push({id:"e"+Ht.start+Ht.end,sources:[Pr],targets:[Cf],sourceId:L1,targetId:N1,labelEl:Ru,labels:[{width:En.width,height:En.height,orgWidth:En.width,orgHeight:En.height,text:En.label,layoutOptions:{"edgeLabels.inline":"true","edgeLabels.placement":"CENTER"}}],edgeData:En})}),Xt},e$e=function(ut,_t,Xt,gt,Sr){let Di="";gt&&(Di=window.location.protocol+"//"+window.location.host+window.location.pathname+window.location.search,Di=Di.replace(/\(/g,"\\("),Di=Di.replace(/\)/g,"\\)")),GNe(ut,_t,Di,Sr,Xt)},t$e=function(ut,_t){return Ba.info("Extracting classes"),_t.db.getClasses()},i$e=function(ut){const _t={parentById:{},childrenById:{}},Xt=ut.getSubGraphs();return Ba.info("Subgraphs - ",Xt),Xt.forEach(function(gt){gt.nodes.forEach(function(Sr){_t.parentById[Sr]=gt.id,_t.childrenById[gt.id]===void 0&&(_t.childrenById[gt.id]=[]),_t.childrenById[gt.id].push(Sr)})}),Xt.forEach(function(gt){gt.id,_t.parentById[gt.id]!==void 0&&_t.parentById[gt.id]}),_t},r$e=function(ut,_t,Xt){const gt=JNe(ut,_t,Xt);if(gt===void 0||gt==="root")return{x:0,y:0};const Sr=X3[gt].offset;return{x:Sr.posX,y:Sr.posY}},c$e=function(ut,_t,Xt,gt,Sr,Di){const y=r$e(_t.sourceId,_t.targetId,Sr),Wt=_t.sections[0].startPoint,Bu=_t.sections[0].endPoint,Jt=(_t.sections[0].bendPoints?_t.sections[0].bendPoints:[]).map(Cf=>[Cf.x+y.x,Cf.y+y.y]),ze=[[Wt.x+y.x,Wt.y+y.y],...Jt,[Bu.x+y.x,Bu.y+y.y]],{x:Yi,y:Ri}=UNe(_t.edgeData),En=XNe().x(Yi).y(Ri).curve($U),hu=ut.insert("path").attr("d",En(ze)).attr("class","path "+Xt.classes).attr("fill","none"),Qc=ut.insert("g").attr("class","edgeLabel"),Ru=IO(Qc.node().appendChild(_t.labelEl)),Pr=Ru.node().firstChild.getBoundingClientRect();Ru.attr("width",Pr.width),Ru.attr("height",Pr.height),Qc.attr("transform",`translate(${_t.labels[0].x+y.x}, ${_t.labels[0].y+y.y})`),e$e(hu,Xt,gt.type,gt.arrowMarkerAbsolute,Di)},Rse=(ut,_t)=>{ut.forEach(Xt=>{Xt.children||(Xt.children=[]);const gt=_t.childrenById[Xt.id];gt&>.forEach(Sr=>{Xt.children.push(X3[Sr])}),Rse(Xt.children,_t)})},u$e=async function(ut,_t,Xt,gt){var Sr;gt.db.clear(),X3={},Ab={},gt.db.setGen("gen-2"),gt.parser.parse(ut);const Di=IO("body").append("div").attr("style","height:400px").attr("id","cy");let y={id:"root",layoutOptions:{"elk.hierarchyHandling":"INCLUDE_CHILDREN","org.eclipse.elk.padding":"[top=100, left=100, bottom=110, right=110]","elk.layered.spacing.edgeNodeBetweenLayers":"30","elk.direction":"DOWN"},children:[],edges:[]};switch(Ba.info("Drawing flowchart using v3 renderer",$se),gt.db.getDirection()){case"BT":y.layoutOptions["elk.direction"]="UP";break;case"TB":y.layoutOptions["elk.direction"]="DOWN";break;case"LR":y.layoutOptions["elk.direction"]="RIGHT";break;case"RL":y.layoutOptions["elk.direction"]="LEFT";break}const{securityLevel:Bu,flowchart:Ht}=xU();let Jt;Bu==="sandbox"&&(Jt=IO("#i"+_t));const ze=Bu==="sandbox"?IO(Jt.nodes()[0].contentDocument.body):IO("body"),Yi=Bu==="sandbox"?Jt.nodes()[0].contentDocument:document,Ri=ze.select(`[id="${_t}"]`);KNe(Ri,["point","circle","cross"],gt.type,_t);const hu=gt.db.getVertices();let Qc;const Ru=gt.db.getSubGraphs();Ba.info("Subgraphs - ",Ru);for(let $1=Ru.length-1;$1>=0;$1--)Qc=Ru[$1],gt.db.addVertex(Qc.id,{text:Qc.title,type:Qc.labelType},"group",void 0,Qc.classes,Qc.dir);const Pr=Ri.insert("g").attr("class","subgraphs"),Cf=i$e(gt.db);y=await YNe(hu,_t,ze,Yi,gt,Cf,y);const L1=Ri.insert("g").attr("class","edges edgePath"),N1=gt.db.getEdges();y=n$e(N1,gt,y,Ri),Object.keys(X3).forEach($1=>{const ul=X3[$1];ul.parent||y.children.push(ul),Cf.childrenById[$1]!==void 0&&(ul.labels=[{text:ul.labelText,layoutOptions:{"nodeLabels.placement":"[H_CENTER, V_TOP, INSIDE]"},width:ul.labelData.width,height:ul.labelData.height}],delete ul.x,delete ul.y,delete ul.width,delete ul.height)}),Rse(y.children,Cf),Ba.info("after layout",JSON.stringify(y,null,2));const V3=await $se.layout(y);Kse(0,0,V3.children,Ri,Pr,gt,0),Ba.info("after layout",V3),(Sr=V3.edges)==null||Sr.map($1=>{c$e(L1,$1,$1.edgeData,gt,Cf,_t)}),BNe({},Ri,Ht.diagramPadding,Ht.useMaxWidth),Di.remove()},Kse=(ut,_t,Xt,gt,Sr,Di,y)=>{Xt.forEach(function(Wt){if(Wt)if(X3[Wt.id].offset={posX:Wt.x+ut,posY:Wt.y+_t,x:ut,y:_t,depth:y,width:Wt.width,height:Wt.height},Wt.type==="group"){const Bu=Sr.insert("g").attr("class","subgraph");Bu.insert("rect").attr("class","subgraph subgraph-lvl-"+y%5+" node").attr("x",Wt.x+ut).attr("y",Wt.y+_t).attr("width",Wt.width).attr("height",Wt.height);const Ht=Bu.insert("g").attr("class","label"),Jt=xU().flowchart.htmlLabels?Wt.labelData.width/2:0;Ht.attr("transform",`translate(${Wt.labels[0].x+ut+Wt.x+Jt}, ${Wt.labels[0].y+_t+Wt.y+3})`),Ht.node().appendChild(Wt.labelData.labelNode),Ba.info("Id (UGH)= ",Wt.type,Wt.labels)}else Ba.info("Id (UGH)= ",Wt.id),Wt.el.attr("transform",`translate(${Wt.x+ut+Wt.width/2}, ${Wt.y+_t+Wt.height/2})`)}),Xt.forEach(function(Wt){Wt&&Wt.type==="group"&&Kse(ut+Wt.x,_t+Wt.y,Wt.children,gt,Sr,Di,y+1)})},o$e={getClasses:t$e,draw:u$e},s$e=ut=>{let _t="";for(let Xt=0;Xt<5;Xt++)_t+=` + .subgraph-lvl-${Xt} { + fill: ${ut[`surface${Xt}`]}; + stroke: ${ut[`surfacePeer${Xt}`]}; + } + `;return _t},f$e=ut=>`.label { + font-family: ${ut.fontFamily}; + color: ${ut.nodeTextColor||ut.textColor}; + } + .cluster-label text { + fill: ${ut.titleColor}; + } + .cluster-label span { + color: ${ut.titleColor}; + } + + .label text,span { + fill: ${ut.nodeTextColor||ut.textColor}; + color: ${ut.nodeTextColor||ut.textColor}; + } + + .node rect, + .node circle, + .node ellipse, + .node polygon, + .node path { + fill: ${ut.mainBkg}; + stroke: ${ut.nodeBorder}; + stroke-width: 1px; + } + + .node .label { + text-align: center; + } + .node.clickable { + cursor: pointer; + } + + .arrowheadPath { + fill: ${ut.arrowheadColor}; + } + + .edgePath .path { + stroke: ${ut.lineColor}; + stroke-width: 2.0px; + } + + .flowchart-link { + stroke: ${ut.lineColor}; + fill: none; + } + + .edgeLabel { + background-color: ${ut.edgeLabelBackground}; + rect { + opacity: 0.85; + background-color: ${ut.edgeLabelBackground}; + fill: ${ut.edgeLabelBackground}; + } + text-align: center; + } + + .cluster rect { + fill: ${ut.clusterBkg}; + stroke: ${ut.clusterBorder}; + stroke-width: 1px; + } + + .cluster text { + fill: ${ut.titleColor}; + } + + .cluster span { + color: ${ut.titleColor}; + } + /* .cluster div { + color: ${ut.titleColor}; + } */ + + div.mermaidTooltip { + position: absolute; + text-align: center; + max-width: 200px; + padding: 2px; + font-family: ${ut.fontFamily}; + font-size: 12px; + background: ${ut.tertiaryColor}; + border: 1px solid ${ut.border2}; + border-radius: 2px; + pointer-events: none; + z-index: 100; + } + + .flowchartTitleText { + text-anchor: middle; + font-size: 18px; + fill: ${ut.textColor}; + } + .subgraph { + stroke-width:2; + rx:3; + } + // .subgraph-lvl-1 { + // fill:#ccc; + // // stroke:black; + // } + + .flowchart-label text { + text-anchor: middle; + } + + ${s$e(ut)} +`,h$e=f$e,v$e={db:xNe,renderer:o$e,parser:FNe,styles:h$e};export{v$e as diagram}; diff --git a/assets/ganttDiagram-c361ad54-DAUMiWli.js b/assets/ganttDiagram-c361ad54-DAUMiWli.js new file mode 100644 index 00000000..884e6895 --- /dev/null +++ b/assets/ganttDiagram-c361ad54-DAUMiWli.js @@ -0,0 +1,257 @@ +import{au as Be,av as Ze,aw as Xe,ax as qe,ay as Dn,az as Kt,aA as Mn,aB as nt,c as Dt,s as Sn,g as _n,x as Yn,y as Un,b as Fn,a as Ln,A as An,m as En,l as Gt,h as Rt,i as In,j as Wn,z as On}from"./mermaid.core-B_tqKmhs.js";import{c as ye,g as ke}from"./index-Be9IN4QR.js";import{b as Hn,t as Ye,c as Nn,a as Vn,l as zn}from"./linear-Du8N0-WX.js";import{i as Pn}from"./init-Gi6I4Gst.js";function Rn(t,e){let n;if(e===void 0)for(const r of t)r!=null&&(n=r)&&(n=r);else{let r=-1;for(let i of t)(i=e(i,++r,t))!=null&&(n=i)&&(n=i)}return n}function Bn(t,e){let n;if(e===void 0)for(const r of t)r!=null&&(n>r||n===void 0&&r>=r)&&(n=r);else{let r=-1;for(let i of t)(i=e(i,++r,t))!=null&&(n>i||n===void 0&&i>=i)&&(n=i)}return n}function Zn(t){return t}var Zt=1,te=2,ue=3,Bt=4,Ue=1e-6;function Xn(t){return"translate("+t+",0)"}function qn(t){return"translate(0,"+t+")"}function Gn(t){return e=>+t(e)}function Qn(t,e){return e=Math.max(0,t.bandwidth()-e*2)/2,t.round()&&(e=Math.round(e)),n=>+t(n)+e}function jn(){return!this.__axis}function Ge(t,e){var n=[],r=null,i=null,s=6,a=6,y=3,S=typeof window<"u"&&window.devicePixelRatio>1?0:.5,p=t===Zt||t===Bt?-1:1,g=t===Bt||t===te?"x":"y",F=t===Zt||t===ue?Xn:qn;function w(T){var q=r??(e.ticks?e.ticks.apply(e,n):e.domain()),I=i??(e.tickFormat?e.tickFormat.apply(e,n):Zn),D=Math.max(s,0)+y,L=e.range(),H=+L[0]+S,A=+L[L.length-1]+S,Z=(e.bandwidth?Qn:Gn)(e.copy(),S),j=T.selection?T.selection():T,b=j.selectAll(".domain").data([null]),W=j.selectAll(".tick").data(q,e).order(),v=W.exit(),U=W.enter().append("g").attr("class","tick"),_=W.select("line"),x=W.select("text");b=b.merge(b.enter().insert("path",".tick").attr("class","domain").attr("stroke","currentColor")),W=W.merge(U),_=_.merge(U.append("line").attr("stroke","currentColor").attr(g+"2",p*s)),x=x.merge(U.append("text").attr("fill","currentColor").attr(g,p*D).attr("dy",t===Zt?"0em":t===ue?"0.71em":"0.32em")),T!==j&&(b=b.transition(T),W=W.transition(T),_=_.transition(T),x=x.transition(T),v=v.transition(T).attr("opacity",Ue).attr("transform",function(o){return isFinite(o=Z(o))?F(o+S):this.getAttribute("transform")}),U.attr("opacity",Ue).attr("transform",function(o){var f=this.parentNode.__axis;return F((f&&isFinite(f=f(o))?f:Z(o))+S)})),v.remove(),b.attr("d",t===Bt||t===te?a?"M"+p*a+","+H+"H"+S+"V"+A+"H"+p*a:"M"+S+","+H+"V"+A:a?"M"+H+","+p*a+"V"+S+"H"+A+"V"+p*a:"M"+H+","+S+"H"+A),W.attr("opacity",1).attr("transform",function(o){return F(Z(o)+S)}),_.attr(g+"2",p*s),x.attr(g,p*D).text(I),j.filter(jn).attr("fill","none").attr("font-size",10).attr("font-family","sans-serif").attr("text-anchor",t===te?"start":t===Bt?"end":"middle"),j.each(function(){this.__axis=Z})}return w.scale=function(T){return arguments.length?(e=T,w):e},w.ticks=function(){return n=Array.from(arguments),w},w.tickArguments=function(T){return arguments.length?(n=T==null?[]:Array.from(T),w):n.slice()},w.tickValues=function(T){return arguments.length?(r=T==null?null:Array.from(T),w):r&&r.slice()},w.tickFormat=function(T){return arguments.length?(i=T,w):i},w.tickSize=function(T){return arguments.length?(s=a=+T,w):s},w.tickSizeInner=function(T){return arguments.length?(s=+T,w):s},w.tickSizeOuter=function(T){return arguments.length?(a=+T,w):a},w.tickPadding=function(T){return arguments.length?(y=+T,w):y},w.offset=function(T){return arguments.length?(S=+T,w):S},w}function Jn(t){return Ge(Zt,t)}function $n(t){return Ge(ue,t)}const Kn=Math.PI/180,tr=180/Math.PI,Qt=18,Qe=.96422,je=1,Je=.82521,$e=4/29,Mt=6/29,Ke=3*Mt*Mt,er=Mt*Mt*Mt;function tn(t){if(t instanceof st)return new st(t.l,t.a,t.b,t.opacity);if(t instanceof ft)return en(t);t instanceof Xe||(t=Dn(t));var e=ie(t.r),n=ie(t.g),r=ie(t.b),i=ee((.2225045*e+.7168786*n+.0606169*r)/je),s,a;return e===n&&n===r?s=a=i:(s=ee((.4360747*e+.3850649*n+.1430804*r)/Qe),a=ee((.0139322*e+.0971045*n+.7141733*r)/Je)),new st(116*i-16,500*(s-i),200*(i-a),t.opacity)}function nr(t,e,n,r){return arguments.length===1?tn(t):new st(t,e,n,r??1)}function st(t,e,n,r){this.l=+t,this.a=+e,this.b=+n,this.opacity=+r}Be(st,nr,Ze(qe,{brighter(t){return new st(this.l+Qt*(t??1),this.a,this.b,this.opacity)},darker(t){return new st(this.l-Qt*(t??1),this.a,this.b,this.opacity)},rgb(){var t=(this.l+16)/116,e=isNaN(this.a)?t:t+this.a/500,n=isNaN(this.b)?t:t-this.b/200;return e=Qe*ne(e),t=je*ne(t),n=Je*ne(n),new Xe(re(3.1338561*e-1.6168667*t-.4906146*n),re(-.9787684*e+1.9161415*t+.033454*n),re(.0719453*e-.2289914*t+1.4052427*n),this.opacity)}}));function ee(t){return t>er?Math.pow(t,1/3):t/Ke+$e}function ne(t){return t>Mt?t*t*t:Ke*(t-$e)}function re(t){return 255*(t<=.0031308?12.92*t:1.055*Math.pow(t,1/2.4)-.055)}function ie(t){return(t/=255)<=.04045?t/12.92:Math.pow((t+.055)/1.055,2.4)}function rr(t){if(t instanceof ft)return new ft(t.h,t.c,t.l,t.opacity);if(t instanceof st||(t=tn(t)),t.a===0&&t.b===0)return new ft(NaN,0(t(s=new Date(+s)),s),i.ceil=s=>(t(s=new Date(s-1)),e(s,1),t(s),s),i.round=s=>{const a=i(s),y=i.ceil(s);return s-a(e(s=new Date(+s),a==null?1:Math.floor(a)),s),i.range=(s,a,y)=>{const S=[];if(s=i.ceil(s),y=y==null?1:Math.floor(y),!(s0))return S;let p;do S.push(p=new Date(+s)),e(s,y),t(s);while(ptt(a=>{if(a>=a)for(;t(a),!s(a);)a.setTime(a-1)},(a,y)=>{if(a>=a)if(y<0)for(;++y<=0;)for(;e(a,-1),!s(a););else for(;--y>=0;)for(;e(a,1),!s(a););}),n&&(i.count=(s,a)=>(se.setTime(+s),ae.setTime(+a),t(se),t(ae),Math.floor(n(se,ae))),i.every=s=>(s=Math.floor(s),!isFinite(s)||!(s>0)?null:s>1?i.filter(r?a=>r(a)%s===0:a=>i.count(0,a)%s===0):i)),i}const _t=tt(()=>{},(t,e)=>{t.setTime(+t+e)},(t,e)=>e-t);_t.every=t=>(t=Math.floor(t),!isFinite(t)||!(t>0)?null:t>1?tt(e=>{e.setTime(Math.floor(e/t)*t)},(e,n)=>{e.setTime(+e+n*t)},(e,n)=>(n-e)/t):_t);_t.range;const ht=1e3,rt=ht*60,dt=rt*60,mt=dt*24,pe=mt*7,Fe=mt*30,oe=mt*365,kt=tt(t=>{t.setTime(t-t.getMilliseconds())},(t,e)=>{t.setTime(+t+e*ht)},(t,e)=>(e-t)/ht,t=>t.getUTCSeconds());kt.range;const Et=tt(t=>{t.setTime(t-t.getMilliseconds()-t.getSeconds()*ht)},(t,e)=>{t.setTime(+t+e*rt)},(t,e)=>(e-t)/rt,t=>t.getMinutes());Et.range;const or=tt(t=>{t.setUTCSeconds(0,0)},(t,e)=>{t.setTime(+t+e*rt)},(t,e)=>(e-t)/rt,t=>t.getUTCMinutes());or.range;const It=tt(t=>{t.setTime(t-t.getMilliseconds()-t.getSeconds()*ht-t.getMinutes()*rt)},(t,e)=>{t.setTime(+t+e*dt)},(t,e)=>(e-t)/dt,t=>t.getHours());It.range;const cr=tt(t=>{t.setUTCMinutes(0,0,0)},(t,e)=>{t.setTime(+t+e*dt)},(t,e)=>(e-t)/dt,t=>t.getUTCHours());cr.range;const pt=tt(t=>t.setHours(0,0,0,0),(t,e)=>t.setDate(t.getDate()+e),(t,e)=>(e-t-(e.getTimezoneOffset()-t.getTimezoneOffset())*rt)/mt,t=>t.getDate()-1);pt.range;const Te=tt(t=>{t.setUTCHours(0,0,0,0)},(t,e)=>{t.setUTCDate(t.getUTCDate()+e)},(t,e)=>(e-t)/mt,t=>t.getUTCDate()-1);Te.range;const lr=tt(t=>{t.setUTCHours(0,0,0,0)},(t,e)=>{t.setUTCDate(t.getUTCDate()+e)},(t,e)=>(e-t)/mt,t=>Math.floor(t/mt));lr.range;function bt(t){return tt(e=>{e.setDate(e.getDate()-(e.getDay()+7-t)%7),e.setHours(0,0,0,0)},(e,n)=>{e.setDate(e.getDate()+n*7)},(e,n)=>(n-e-(n.getTimezoneOffset()-e.getTimezoneOffset())*rt)/pe)}const Ht=bt(0),Wt=bt(1),nn=bt(2),rn=bt(3),Tt=bt(4),sn=bt(5),an=bt(6);Ht.range;Wt.range;nn.range;rn.range;Tt.range;sn.range;an.range;function xt(t){return tt(e=>{e.setUTCDate(e.getUTCDate()-(e.getUTCDay()+7-t)%7),e.setUTCHours(0,0,0,0)},(e,n)=>{e.setUTCDate(e.getUTCDate()+n*7)},(e,n)=>(n-e)/pe)}const on=xt(0),jt=xt(1),ur=xt(2),fr=xt(3),Yt=xt(4),hr=xt(5),dr=xt(6);on.range;jt.range;ur.range;fr.range;Yt.range;hr.range;dr.range;const Ot=tt(t=>{t.setDate(1),t.setHours(0,0,0,0)},(t,e)=>{t.setMonth(t.getMonth()+e)},(t,e)=>e.getMonth()-t.getMonth()+(e.getFullYear()-t.getFullYear())*12,t=>t.getMonth());Ot.range;const mr=tt(t=>{t.setUTCDate(1),t.setUTCHours(0,0,0,0)},(t,e)=>{t.setUTCMonth(t.getUTCMonth()+e)},(t,e)=>e.getUTCMonth()-t.getUTCMonth()+(e.getUTCFullYear()-t.getUTCFullYear())*12,t=>t.getUTCMonth());mr.range;const gt=tt(t=>{t.setMonth(0,1),t.setHours(0,0,0,0)},(t,e)=>{t.setFullYear(t.getFullYear()+e)},(t,e)=>e.getFullYear()-t.getFullYear(),t=>t.getFullYear());gt.every=t=>!isFinite(t=Math.floor(t))||!(t>0)?null:tt(e=>{e.setFullYear(Math.floor(e.getFullYear()/t)*t),e.setMonth(0,1),e.setHours(0,0,0,0)},(e,n)=>{e.setFullYear(e.getFullYear()+n*t)});gt.range;const vt=tt(t=>{t.setUTCMonth(0,1),t.setUTCHours(0,0,0,0)},(t,e)=>{t.setUTCFullYear(t.getUTCFullYear()+e)},(t,e)=>e.getUTCFullYear()-t.getUTCFullYear(),t=>t.getUTCFullYear());vt.every=t=>!isFinite(t=Math.floor(t))||!(t>0)?null:tt(e=>{e.setUTCFullYear(Math.floor(e.getUTCFullYear()/t)*t),e.setUTCMonth(0,1),e.setUTCHours(0,0,0,0)},(e,n)=>{e.setUTCFullYear(e.getUTCFullYear()+n*t)});vt.range;function gr(t,e,n,r,i,s){const a=[[kt,1,ht],[kt,5,5*ht],[kt,15,15*ht],[kt,30,30*ht],[s,1,rt],[s,5,5*rt],[s,15,15*rt],[s,30,30*rt],[i,1,dt],[i,3,3*dt],[i,6,6*dt],[i,12,12*dt],[r,1,mt],[r,2,2*mt],[n,1,pe],[e,1,Fe],[e,3,3*Fe],[t,1,oe]];function y(p,g,F){const w=gD).right(a,w);if(T===a.length)return t.every(Ye(p/oe,g/oe,F));if(T===0)return _t.every(Math.max(Ye(p,g,F),1));const[q,I]=a[w/a[T-1][2]53)return null;"w"in l||(l.w=1),"Z"in l?(V=le(Ft(l.y,0,1)),Q=V.getUTCDay(),V=Q>4||Q===0?jt.ceil(V):jt(V),V=Te.offset(V,(l.V-1)*7),l.y=V.getUTCFullYear(),l.m=V.getUTCMonth(),l.d=V.getUTCDate()+(l.w+6)%7):(V=ce(Ft(l.y,0,1)),Q=V.getDay(),V=Q>4||Q===0?Wt.ceil(V):Wt(V),V=pt.offset(V,(l.V-1)*7),l.y=V.getFullYear(),l.m=V.getMonth(),l.d=V.getDate()+(l.w+6)%7)}else("W"in l||"U"in l)&&("w"in l||(l.w="u"in l?l.u%7:"W"in l?1:0),Q="Z"in l?le(Ft(l.y,0,1)).getUTCDay():ce(Ft(l.y,0,1)).getDay(),l.m=0,l.d="W"in l?(l.w+6)%7+l.W*7-(Q+5)%7:l.w+l.U*7-(Q+6)%7);return"Z"in l?(l.H+=l.Z/100|0,l.M+=l.Z%100,le(l)):ce(l)}}function v(k,E,Y,l){for(var B=0,V=E.length,Q=Y.length,J,$;B=Q)return-1;if(J=E.charCodeAt(B++),J===37){if(J=E.charAt(B++),$=j[J in Le?E.charAt(B++):J],!$||(l=$(k,Y,l))<0)return-1}else if(J!=Y.charCodeAt(l++))return-1}return l}function U(k,E,Y){var l=p.exec(E.slice(Y));return l?(k.p=g.get(l[0].toLowerCase()),Y+l[0].length):-1}function _(k,E,Y){var l=T.exec(E.slice(Y));return l?(k.w=q.get(l[0].toLowerCase()),Y+l[0].length):-1}function x(k,E,Y){var l=F.exec(E.slice(Y));return l?(k.w=w.get(l[0].toLowerCase()),Y+l[0].length):-1}function o(k,E,Y){var l=L.exec(E.slice(Y));return l?(k.m=H.get(l[0].toLowerCase()),Y+l[0].length):-1}function f(k,E,Y){var l=I.exec(E.slice(Y));return l?(k.m=D.get(l[0].toLowerCase()),Y+l[0].length):-1}function m(k,E,Y){return v(k,e,E,Y)}function u(k,E,Y){return v(k,n,E,Y)}function M(k,E,Y){return v(k,r,E,Y)}function c(k){return a[k.getDay()]}function G(k){return s[k.getDay()]}function d(k){return S[k.getMonth()]}function h(k){return y[k.getMonth()]}function C(k){return i[+(k.getHours()>=12)]}function X(k){return 1+~~(k.getMonth()/3)}function O(k){return a[k.getUTCDay()]}function z(k){return s[k.getUTCDay()]}function N(k){return S[k.getUTCMonth()]}function P(k){return y[k.getUTCMonth()]}function at(k){return i[+(k.getUTCHours()>=12)]}function ot(k){return 1+~~(k.getUTCMonth()/3)}return{format:function(k){var E=b(k+="",A);return E.toString=function(){return k},E},parse:function(k){var E=W(k+="",!1);return E.toString=function(){return k},E},utcFormat:function(k){var E=b(k+="",Z);return E.toString=function(){return k},E},utcParse:function(k){var E=W(k+="",!0);return E.toString=function(){return k},E}}}var Le={"-":"",_:" ",0:"0"},et=/^\s*\d+/,Tr=/^%/,vr=/[\\^$*+?|[\]().{}]/g;function R(t,e,n){var r=t<0?"-":"",i=(r?-t:t)+"",s=i.length;return r+(s[e.toLowerCase(),n]))}function xr(t,e,n){var r=et.exec(e.slice(n,n+1));return r?(t.w=+r[0],n+r[0].length):-1}function wr(t,e,n){var r=et.exec(e.slice(n,n+1));return r?(t.u=+r[0],n+r[0].length):-1}function Cr(t,e,n){var r=et.exec(e.slice(n,n+2));return r?(t.U=+r[0],n+r[0].length):-1}function Dr(t,e,n){var r=et.exec(e.slice(n,n+2));return r?(t.V=+r[0],n+r[0].length):-1}function Mr(t,e,n){var r=et.exec(e.slice(n,n+2));return r?(t.W=+r[0],n+r[0].length):-1}function Ae(t,e,n){var r=et.exec(e.slice(n,n+4));return r?(t.y=+r[0],n+r[0].length):-1}function Ee(t,e,n){var r=et.exec(e.slice(n,n+2));return r?(t.y=+r[0]+(+r[0]>68?1900:2e3),n+r[0].length):-1}function Sr(t,e,n){var r=/^(Z)|([+-]\d\d)(?::?(\d\d))?/.exec(e.slice(n,n+6));return r?(t.Z=r[1]?0:-(r[2]+(r[3]||"00")),n+r[0].length):-1}function _r(t,e,n){var r=et.exec(e.slice(n,n+1));return r?(t.q=r[0]*3-3,n+r[0].length):-1}function Yr(t,e,n){var r=et.exec(e.slice(n,n+2));return r?(t.m=r[0]-1,n+r[0].length):-1}function Ie(t,e,n){var r=et.exec(e.slice(n,n+2));return r?(t.d=+r[0],n+r[0].length):-1}function Ur(t,e,n){var r=et.exec(e.slice(n,n+3));return r?(t.m=0,t.d=+r[0],n+r[0].length):-1}function We(t,e,n){var r=et.exec(e.slice(n,n+2));return r?(t.H=+r[0],n+r[0].length):-1}function Fr(t,e,n){var r=et.exec(e.slice(n,n+2));return r?(t.M=+r[0],n+r[0].length):-1}function Lr(t,e,n){var r=et.exec(e.slice(n,n+2));return r?(t.S=+r[0],n+r[0].length):-1}function Ar(t,e,n){var r=et.exec(e.slice(n,n+3));return r?(t.L=+r[0],n+r[0].length):-1}function Er(t,e,n){var r=et.exec(e.slice(n,n+6));return r?(t.L=Math.floor(r[0]/1e3),n+r[0].length):-1}function Ir(t,e,n){var r=Tr.exec(e.slice(n,n+1));return r?n+r[0].length:-1}function Wr(t,e,n){var r=et.exec(e.slice(n));return r?(t.Q=+r[0],n+r[0].length):-1}function Or(t,e,n){var r=et.exec(e.slice(n));return r?(t.s=+r[0],n+r[0].length):-1}function Oe(t,e){return R(t.getDate(),e,2)}function Hr(t,e){return R(t.getHours(),e,2)}function Nr(t,e){return R(t.getHours()%12||12,e,2)}function Vr(t,e){return R(1+pt.count(gt(t),t),e,3)}function cn(t,e){return R(t.getMilliseconds(),e,3)}function zr(t,e){return cn(t,e)+"000"}function Pr(t,e){return R(t.getMonth()+1,e,2)}function Rr(t,e){return R(t.getMinutes(),e,2)}function Br(t,e){return R(t.getSeconds(),e,2)}function Zr(t){var e=t.getDay();return e===0?7:e}function Xr(t,e){return R(Ht.count(gt(t)-1,t),e,2)}function ln(t){var e=t.getDay();return e>=4||e===0?Tt(t):Tt.ceil(t)}function qr(t,e){return t=ln(t),R(Tt.count(gt(t),t)+(gt(t).getDay()===4),e,2)}function Gr(t){return t.getDay()}function Qr(t,e){return R(Wt.count(gt(t)-1,t),e,2)}function jr(t,e){return R(t.getFullYear()%100,e,2)}function Jr(t,e){return t=ln(t),R(t.getFullYear()%100,e,2)}function $r(t,e){return R(t.getFullYear()%1e4,e,4)}function Kr(t,e){var n=t.getDay();return t=n>=4||n===0?Tt(t):Tt.ceil(t),R(t.getFullYear()%1e4,e,4)}function ti(t){var e=t.getTimezoneOffset();return(e>0?"-":(e*=-1,"+"))+R(e/60|0,"0",2)+R(e%60,"0",2)}function He(t,e){return R(t.getUTCDate(),e,2)}function ei(t,e){return R(t.getUTCHours(),e,2)}function ni(t,e){return R(t.getUTCHours()%12||12,e,2)}function ri(t,e){return R(1+Te.count(vt(t),t),e,3)}function un(t,e){return R(t.getUTCMilliseconds(),e,3)}function ii(t,e){return un(t,e)+"000"}function si(t,e){return R(t.getUTCMonth()+1,e,2)}function ai(t,e){return R(t.getUTCMinutes(),e,2)}function oi(t,e){return R(t.getUTCSeconds(),e,2)}function ci(t){var e=t.getUTCDay();return e===0?7:e}function li(t,e){return R(on.count(vt(t)-1,t),e,2)}function fn(t){var e=t.getUTCDay();return e>=4||e===0?Yt(t):Yt.ceil(t)}function ui(t,e){return t=fn(t),R(Yt.count(vt(t),t)+(vt(t).getUTCDay()===4),e,2)}function fi(t){return t.getUTCDay()}function hi(t,e){return R(jt.count(vt(t)-1,t),e,2)}function di(t,e){return R(t.getUTCFullYear()%100,e,2)}function mi(t,e){return t=fn(t),R(t.getUTCFullYear()%100,e,2)}function gi(t,e){return R(t.getUTCFullYear()%1e4,e,4)}function yi(t,e){var n=t.getUTCDay();return t=n>=4||n===0?Yt(t):Yt.ceil(t),R(t.getUTCFullYear()%1e4,e,4)}function ki(){return"+0000"}function Ne(){return"%"}function Ve(t){return+t}function ze(t){return Math.floor(+t/1e3)}var Ct,Jt;pi({dateTime:"%x, %X",date:"%-m/%-d/%Y",time:"%-I:%M:%S %p",periods:["AM","PM"],days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],shortDays:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],months:["January","February","March","April","May","June","July","August","September","October","November","December"],shortMonths:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]});function pi(t){return Ct=pr(t),Jt=Ct.format,Ct.parse,Ct.utcFormat,Ct.utcParse,Ct}function Ti(t){return new Date(t)}function vi(t){return t instanceof Date?+t:+new Date(+t)}function hn(t,e,n,r,i,s,a,y,S,p){var g=Nn(),F=g.invert,w=g.domain,T=p(".%L"),q=p(":%S"),I=p("%I:%M"),D=p("%I %p"),L=p("%a %d"),H=p("%b %d"),A=p("%B"),Z=p("%Y");function j(b){return(S(b)4&&(T+=7),w.add(T,n));return q.diff(I,"week")+1},y.isoWeekday=function(p){return this.$utils().u(p)?this.day()||7:this.day(this.day()%7?p:p-7)};var S=y.startOf;y.startOf=function(p,g){var F=this.$utils(),w=!!F.u(g)||g;return F.p(p)==="isoweek"?w?this.date(this.date()-(this.isoWeekday()-1)).startOf("day"):this.date(this.date()-1-(this.isoWeekday()-1)+7).endOf("day"):S.bind(this)(p,g)}}})})(dn);var xi=dn.exports;const wi=ke(xi);var mn={exports:{}};(function(t,e){(function(n,r){t.exports=r()})(ye,function(){var n={LTS:"h:mm:ss A",LT:"h:mm A",L:"MM/DD/YYYY",LL:"MMMM D, YYYY",LLL:"MMMM D, YYYY h:mm A",LLLL:"dddd, MMMM D, YYYY h:mm A"},r=/(\[[^[]*\])|([-_:/.,()\s]+)|(A|a|Q|YYYY|YY?|ww?|MM?M?M?|Do|DD?|hh?|HH?|mm?|ss?|S{1,3}|z|ZZ?)/g,i=/\d/,s=/\d\d/,a=/\d\d?/,y=/\d*[^-_:/,()\s\d]+/,S={},p=function(D){return(D=+D)+(D>68?1900:2e3)},g=function(D){return function(L){this[D]=+L}},F=[/[+-]\d\d:?(\d\d)?|Z/,function(D){(this.zone||(this.zone={})).offset=function(L){if(!L||L==="Z")return 0;var H=L.match(/([+-]|\d\d)/g),A=60*H[1]+(+H[2]||0);return A===0?0:H[0]==="+"?-A:A}(D)}],w=function(D){var L=S[D];return L&&(L.indexOf?L:L.s.concat(L.f))},T=function(D,L){var H,A=S.meridiem;if(A){for(var Z=1;Z<=24;Z+=1)if(D.indexOf(A(Z,0,L))>-1){H=Z>12;break}}else H=D===(L?"pm":"PM");return H},q={A:[y,function(D){this.afternoon=T(D,!1)}],a:[y,function(D){this.afternoon=T(D,!0)}],Q:[i,function(D){this.month=3*(D-1)+1}],S:[i,function(D){this.milliseconds=100*+D}],SS:[s,function(D){this.milliseconds=10*+D}],SSS:[/\d{3}/,function(D){this.milliseconds=+D}],s:[a,g("seconds")],ss:[a,g("seconds")],m:[a,g("minutes")],mm:[a,g("minutes")],H:[a,g("hours")],h:[a,g("hours")],HH:[a,g("hours")],hh:[a,g("hours")],D:[a,g("day")],DD:[s,g("day")],Do:[y,function(D){var L=S.ordinal,H=D.match(/\d+/);if(this.day=H[0],L)for(var A=1;A<=31;A+=1)L(A).replace(/\[|\]/g,"")===D&&(this.day=A)}],w:[a,g("week")],ww:[s,g("week")],M:[a,g("month")],MM:[s,g("month")],MMM:[y,function(D){var L=w("months"),H=(w("monthsShort")||L.map(function(A){return A.slice(0,3)})).indexOf(D)+1;if(H<1)throw new Error;this.month=H%12||H}],MMMM:[y,function(D){var L=w("months").indexOf(D)+1;if(L<1)throw new Error;this.month=L%12||L}],Y:[/[+-]?\d+/,g("year")],YY:[s,function(D){this.year=p(D)}],YYYY:[/\d{4}/,g("year")],Z:F,ZZ:F};function I(D){var L,H;L=D,H=S&&S.formats;for(var A=(D=L.replace(/(\[[^\]]+])|(LTS?|l{1,4}|L{1,4})/g,function(_,x,o){var f=o&&o.toUpperCase();return x||H[o]||n[o]||H[f].replace(/(\[[^\]]+])|(MMMM|MM|DD|dddd)/g,function(m,u,M){return u||M.slice(1)})})).match(r),Z=A.length,j=0;j-1)return new Date((G==="X"?1e3:1)*c);var C=I(G)(c),X=C.year,O=C.month,z=C.day,N=C.hours,P=C.minutes,at=C.seconds,ot=C.milliseconds,k=C.zone,E=C.week,Y=new Date,l=z||(X||O?1:Y.getDate()),B=X||Y.getFullYear(),V=0;X&&!O||(V=O>0?O-1:Y.getMonth());var Q,J=N||0,$=P||0,ct=at||0,yt=ot||0;return k?new Date(Date.UTC(B,V,l,J,$,ct,yt+60*k.offset*1e3)):d?new Date(Date.UTC(B,V,l,J,$,ct,yt)):(Q=new Date(B,V,l,J,$,ct,yt),E&&(Q=h(Q).week(E).toDate()),Q)}catch{return new Date("")}}(b,U,W,H),this.init(),f&&f!==!0&&(this.$L=this.locale(f).$L),o&&b!=this.format(U)&&(this.$d=new Date("")),S={}}else if(U instanceof Array)for(var m=U.length,u=1;u<=m;u+=1){v[1]=U[u-1];var M=H.apply(this,v);if(M.isValid()){this.$d=M.$d,this.$L=M.$L,this.init();break}u===m&&(this.$d=new Date(""))}else Z.call(this,j)}}})})(mn);var Ci=mn.exports;const Di=ke(Ci);var gn={exports:{}};(function(t,e){(function(n,r){t.exports=r()})(ye,function(){return function(n,r){var i=r.prototype,s=i.format;i.format=function(a){var y=this,S=this.$locale();if(!this.isValid())return s.bind(this)(a);var p=this.$utils(),g=(a||"YYYY-MM-DDTHH:mm:ssZ").replace(/\[([^\]]+)]|Q|wo|ww|w|WW|W|zzz|z|gggg|GGGG|Do|X|x|k{1,2}|S/g,function(F){switch(F){case"Q":return Math.ceil((y.$M+1)/3);case"Do":return S.ordinal(y.$D);case"gggg":return y.weekYear();case"GGGG":return y.isoWeekYear();case"wo":return S.ordinal(y.week(),"W");case"w":case"ww":return p.s(y.week(),F==="w"?1:2,"0");case"W":case"WW":return p.s(y.isoWeek(),F==="W"?1:2,"0");case"k":case"kk":return p.s(String(y.$H===0?24:y.$H),F==="k"?1:2,"0");case"X":return Math.floor(y.$d.getTime()/1e3);case"x":return y.$d.getTime();case"z":return"["+y.offsetName()+"]";case"zzz":return"["+y.offsetName("long")+"]";default:return F}});return s.bind(this)(g)}}})})(gn);var Mi=gn.exports;const Si=ke(Mi);var he=function(){var t=function(x,o,f,m){for(f=f||{},m=x.length;m--;f[x[m]]=o);return f},e=[6,8,10,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,30,32,33,35,37],n=[1,25],r=[1,26],i=[1,27],s=[1,28],a=[1,29],y=[1,30],S=[1,31],p=[1,9],g=[1,10],F=[1,11],w=[1,12],T=[1,13],q=[1,14],I=[1,15],D=[1,16],L=[1,18],H=[1,19],A=[1,20],Z=[1,21],j=[1,22],b=[1,24],W=[1,32],v={trace:function(){},yy:{},symbols_:{error:2,start:3,gantt:4,document:5,EOF:6,line:7,SPACE:8,statement:9,NL:10,weekday:11,weekday_monday:12,weekday_tuesday:13,weekday_wednesday:14,weekday_thursday:15,weekday_friday:16,weekday_saturday:17,weekday_sunday:18,dateFormat:19,inclusiveEndDates:20,topAxis:21,axisFormat:22,tickInterval:23,excludes:24,includes:25,todayMarker:26,title:27,acc_title:28,acc_title_value:29,acc_descr:30,acc_descr_value:31,acc_descr_multiline_value:32,section:33,clickStatement:34,taskTxt:35,taskData:36,click:37,callbackname:38,callbackargs:39,href:40,clickStatementDebug:41,$accept:0,$end:1},terminals_:{2:"error",4:"gantt",6:"EOF",8:"SPACE",10:"NL",12:"weekday_monday",13:"weekday_tuesday",14:"weekday_wednesday",15:"weekday_thursday",16:"weekday_friday",17:"weekday_saturday",18:"weekday_sunday",19:"dateFormat",20:"inclusiveEndDates",21:"topAxis",22:"axisFormat",23:"tickInterval",24:"excludes",25:"includes",26:"todayMarker",27:"title",28:"acc_title",29:"acc_title_value",30:"acc_descr",31:"acc_descr_value",32:"acc_descr_multiline_value",33:"section",35:"taskTxt",36:"taskData",37:"click",38:"callbackname",39:"callbackargs",40:"href"},productions_:[0,[3,3],[5,0],[5,2],[7,2],[7,1],[7,1],[7,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[9,1],[9,1],[9,1],[9,1],[9,1],[9,1],[9,1],[9,1],[9,1],[9,1],[9,2],[9,2],[9,1],[9,1],[9,1],[9,2],[34,2],[34,3],[34,3],[34,4],[34,3],[34,4],[34,2],[41,2],[41,3],[41,3],[41,4],[41,3],[41,4],[41,2]],performAction:function(o,f,m,u,M,c,G){var d=c.length-1;switch(M){case 1:return c[d-1];case 2:this.$=[];break;case 3:c[d-1].push(c[d]),this.$=c[d-1];break;case 4:case 5:this.$=c[d];break;case 6:case 7:this.$=[];break;case 8:u.setWeekday("monday");break;case 9:u.setWeekday("tuesday");break;case 10:u.setWeekday("wednesday");break;case 11:u.setWeekday("thursday");break;case 12:u.setWeekday("friday");break;case 13:u.setWeekday("saturday");break;case 14:u.setWeekday("sunday");break;case 15:u.setDateFormat(c[d].substr(11)),this.$=c[d].substr(11);break;case 16:u.enableInclusiveEndDates(),this.$=c[d].substr(18);break;case 17:u.TopAxis(),this.$=c[d].substr(8);break;case 18:u.setAxisFormat(c[d].substr(11)),this.$=c[d].substr(11);break;case 19:u.setTickInterval(c[d].substr(13)),this.$=c[d].substr(13);break;case 20:u.setExcludes(c[d].substr(9)),this.$=c[d].substr(9);break;case 21:u.setIncludes(c[d].substr(9)),this.$=c[d].substr(9);break;case 22:u.setTodayMarker(c[d].substr(12)),this.$=c[d].substr(12);break;case 24:u.setDiagramTitle(c[d].substr(6)),this.$=c[d].substr(6);break;case 25:this.$=c[d].trim(),u.setAccTitle(this.$);break;case 26:case 27:this.$=c[d].trim(),u.setAccDescription(this.$);break;case 28:u.addSection(c[d].substr(8)),this.$=c[d].substr(8);break;case 30:u.addTask(c[d-1],c[d]),this.$="task";break;case 31:this.$=c[d-1],u.setClickEvent(c[d-1],c[d],null);break;case 32:this.$=c[d-2],u.setClickEvent(c[d-2],c[d-1],c[d]);break;case 33:this.$=c[d-2],u.setClickEvent(c[d-2],c[d-1],null),u.setLink(c[d-2],c[d]);break;case 34:this.$=c[d-3],u.setClickEvent(c[d-3],c[d-2],c[d-1]),u.setLink(c[d-3],c[d]);break;case 35:this.$=c[d-2],u.setClickEvent(c[d-2],c[d],null),u.setLink(c[d-2],c[d-1]);break;case 36:this.$=c[d-3],u.setClickEvent(c[d-3],c[d-1],c[d]),u.setLink(c[d-3],c[d-2]);break;case 37:this.$=c[d-1],u.setLink(c[d-1],c[d]);break;case 38:case 44:this.$=c[d-1]+" "+c[d];break;case 39:case 40:case 42:this.$=c[d-2]+" "+c[d-1]+" "+c[d];break;case 41:case 43:this.$=c[d-3]+" "+c[d-2]+" "+c[d-1]+" "+c[d];break}},table:[{3:1,4:[1,2]},{1:[3]},t(e,[2,2],{5:3}),{6:[1,4],7:5,8:[1,6],9:7,10:[1,8],11:17,12:n,13:r,14:i,15:s,16:a,17:y,18:S,19:p,20:g,21:F,22:w,23:T,24:q,25:I,26:D,27:L,28:H,30:A,32:Z,33:j,34:23,35:b,37:W},t(e,[2,7],{1:[2,1]}),t(e,[2,3]),{9:33,11:17,12:n,13:r,14:i,15:s,16:a,17:y,18:S,19:p,20:g,21:F,22:w,23:T,24:q,25:I,26:D,27:L,28:H,30:A,32:Z,33:j,34:23,35:b,37:W},t(e,[2,5]),t(e,[2,6]),t(e,[2,15]),t(e,[2,16]),t(e,[2,17]),t(e,[2,18]),t(e,[2,19]),t(e,[2,20]),t(e,[2,21]),t(e,[2,22]),t(e,[2,23]),t(e,[2,24]),{29:[1,34]},{31:[1,35]},t(e,[2,27]),t(e,[2,28]),t(e,[2,29]),{36:[1,36]},t(e,[2,8]),t(e,[2,9]),t(e,[2,10]),t(e,[2,11]),t(e,[2,12]),t(e,[2,13]),t(e,[2,14]),{38:[1,37],40:[1,38]},t(e,[2,4]),t(e,[2,25]),t(e,[2,26]),t(e,[2,30]),t(e,[2,31],{39:[1,39],40:[1,40]}),t(e,[2,37],{38:[1,41]}),t(e,[2,32],{40:[1,42]}),t(e,[2,33]),t(e,[2,35],{39:[1,43]}),t(e,[2,34]),t(e,[2,36])],defaultActions:{},parseError:function(o,f){if(f.recoverable)this.trace(o);else{var m=new Error(o);throw m.hash=f,m}},parse:function(o){var f=this,m=[0],u=[],M=[null],c=[],G=this.table,d="",h=0,C=0,X=2,O=1,z=c.slice.call(arguments,1),N=Object.create(this.lexer),P={yy:{}};for(var at in this.yy)Object.prototype.hasOwnProperty.call(this.yy,at)&&(P.yy[at]=this.yy[at]);N.setInput(o,P.yy),P.yy.lexer=N,P.yy.parser=this,typeof N.yylloc>"u"&&(N.yylloc={});var ot=N.yylloc;c.push(ot);var k=N.options&&N.options.ranges;typeof P.yy.parseError=="function"?this.parseError=P.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function E(){var lt;return lt=u.pop()||N.lex()||O,typeof lt!="number"&&(lt instanceof Array&&(u=lt,lt=u.pop()),lt=f.symbols_[lt]||lt),lt}for(var Y,l,B,V,Q={},J,$,ct,yt;;){if(l=m[m.length-1],this.defaultActions[l]?B=this.defaultActions[l]:((Y===null||typeof Y>"u")&&(Y=E()),B=G[l]&&G[l][Y]),typeof B>"u"||!B.length||!B[0]){var Pt="";yt=[];for(J in G[l])this.terminals_[J]&&J>X&&yt.push("'"+this.terminals_[J]+"'");N.showPosition?Pt="Parse error on line "+(h+1)+`: +`+N.showPosition()+` +Expecting `+yt.join(", ")+", got '"+(this.terminals_[Y]||Y)+"'":Pt="Parse error on line "+(h+1)+": Unexpected "+(Y==O?"end of input":"'"+(this.terminals_[Y]||Y)+"'"),this.parseError(Pt,{text:N.match,token:this.terminals_[Y]||Y,line:N.yylineno,loc:ot,expected:yt})}if(B[0]instanceof Array&&B.length>1)throw new Error("Parse Error: multiple actions possible at state: "+l+", token: "+Y);switch(B[0]){case 1:m.push(Y),M.push(N.yytext),c.push(N.yylloc),m.push(B[1]),Y=null,C=N.yyleng,d=N.yytext,h=N.yylineno,ot=N.yylloc;break;case 2:if($=this.productions_[B[1]][1],Q.$=M[M.length-$],Q._$={first_line:c[c.length-($||1)].first_line,last_line:c[c.length-1].last_line,first_column:c[c.length-($||1)].first_column,last_column:c[c.length-1].last_column},k&&(Q._$.range=[c[c.length-($||1)].range[0],c[c.length-1].range[1]]),V=this.performAction.apply(Q,[d,C,h,P.yy,B[1],M,c].concat(z)),typeof V<"u")return V;$&&(m=m.slice(0,-1*$*2),M=M.slice(0,-1*$),c=c.slice(0,-1*$)),m.push(this.productions_[B[1]][0]),M.push(Q.$),c.push(Q._$),ct=G[m[m.length-2]][m[m.length-1]],m.push(ct);break;case 3:return!0}}return!0}},U=function(){var x={EOF:1,parseError:function(f,m){if(this.yy.parser)this.yy.parser.parseError(f,m);else throw new Error(f)},setInput:function(o,f){return this.yy=f||this.yy||{},this._input=o,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var o=this._input[0];this.yytext+=o,this.yyleng++,this.offset++,this.match+=o,this.matched+=o;var f=o.match(/(?:\r\n?|\n).*/g);return f?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),o},unput:function(o){var f=o.length,m=o.split(/(?:\r\n?|\n)/g);this._input=o+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-f),this.offset-=f;var u=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),m.length-1&&(this.yylineno-=m.length-1);var M=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:m?(m.length===u.length?this.yylloc.first_column:0)+u[u.length-m.length].length-m[0].length:this.yylloc.first_column-f},this.options.ranges&&(this.yylloc.range=[M[0],M[0]+this.yyleng-f]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true). +`+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},less:function(o){this.unput(this.match.slice(o))},pastInput:function(){var o=this.matched.substr(0,this.matched.length-this.match.length);return(o.length>20?"...":"")+o.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var o=this.match;return o.length<20&&(o+=this._input.substr(0,20-o.length)),(o.substr(0,20)+(o.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var o=this.pastInput(),f=new Array(o.length+1).join("-");return o+this.upcomingInput()+` +`+f+"^"},test_match:function(o,f){var m,u,M;if(this.options.backtrack_lexer&&(M={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(M.yylloc.range=this.yylloc.range.slice(0))),u=o[0].match(/(?:\r\n?|\n).*/g),u&&(this.yylineno+=u.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:u?u[u.length-1].length-u[u.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+o[0].length},this.yytext+=o[0],this.match+=o[0],this.matches=o,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(o[0].length),this.matched+=o[0],m=this.performAction.call(this,this.yy,this,f,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),m)return m;if(this._backtrack){for(var c in M)this[c]=M[c];return!1}return!1},next:function(){if(this.done)return this.EOF;this._input||(this.done=!0);var o,f,m,u;this._more||(this.yytext="",this.match="");for(var M=this._currentRules(),c=0;cf[0].length)){if(f=m,u=c,this.options.backtrack_lexer){if(o=this.test_match(m,M[c]),o!==!1)return o;if(this._backtrack){f=!1;continue}else return!1}else if(!this.options.flex)break}return f?(o=this.test_match(f,M[u]),o!==!1?o:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text. +`+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var f=this.next();return f||this.lex()},begin:function(f){this.conditionStack.push(f)},popState:function(){var f=this.conditionStack.length-1;return f>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(f){return f=this.conditionStack.length-1-Math.abs(f||0),f>=0?this.conditionStack[f]:"INITIAL"},pushState:function(f){this.begin(f)},stateStackSize:function(){return this.conditionStack.length},options:{"case-insensitive":!0},performAction:function(f,m,u,M){switch(u){case 0:return this.begin("open_directive"),"open_directive";case 1:return this.begin("acc_title"),28;case 2:return this.popState(),"acc_title_value";case 3:return this.begin("acc_descr"),30;case 4:return this.popState(),"acc_descr_value";case 5:this.begin("acc_descr_multiline");break;case 6:this.popState();break;case 7:return"acc_descr_multiline_value";case 8:break;case 9:break;case 10:break;case 11:return 10;case 12:break;case 13:break;case 14:this.begin("href");break;case 15:this.popState();break;case 16:return 40;case 17:this.begin("callbackname");break;case 18:this.popState();break;case 19:this.popState(),this.begin("callbackargs");break;case 20:return 38;case 21:this.popState();break;case 22:return 39;case 23:this.begin("click");break;case 24:this.popState();break;case 25:return 37;case 26:return 4;case 27:return 19;case 28:return 20;case 29:return 21;case 30:return 22;case 31:return 23;case 32:return 25;case 33:return 24;case 34:return 26;case 35:return 12;case 36:return 13;case 37:return 14;case 38:return 15;case 39:return 16;case 40:return 17;case 41:return 18;case 42:return"date";case 43:return 27;case 44:return"accDescription";case 45:return 33;case 46:return 35;case 47:return 36;case 48:return":";case 49:return 6;case 50:return"INVALID"}},rules:[/^(?:%%\{)/i,/^(?:accTitle\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*\{\s*)/i,/^(?:[\}])/i,/^(?:[^\}]*)/i,/^(?:%%(?!\{)*[^\n]*)/i,/^(?:[^\}]%%*[^\n]*)/i,/^(?:%%*[^\n]*[\n]*)/i,/^(?:[\n]+)/i,/^(?:\s+)/i,/^(?:%[^\n]*)/i,/^(?:href[\s]+["])/i,/^(?:["])/i,/^(?:[^"]*)/i,/^(?:call[\s]+)/i,/^(?:\([\s]*\))/i,/^(?:\()/i,/^(?:[^(]*)/i,/^(?:\))/i,/^(?:[^)]*)/i,/^(?:click[\s]+)/i,/^(?:[\s\n])/i,/^(?:[^\s\n]*)/i,/^(?:gantt\b)/i,/^(?:dateFormat\s[^#\n;]+)/i,/^(?:inclusiveEndDates\b)/i,/^(?:topAxis\b)/i,/^(?:axisFormat\s[^#\n;]+)/i,/^(?:tickInterval\s[^#\n;]+)/i,/^(?:includes\s[^#\n;]+)/i,/^(?:excludes\s[^#\n;]+)/i,/^(?:todayMarker\s[^\n;]+)/i,/^(?:weekday\s+monday\b)/i,/^(?:weekday\s+tuesday\b)/i,/^(?:weekday\s+wednesday\b)/i,/^(?:weekday\s+thursday\b)/i,/^(?:weekday\s+friday\b)/i,/^(?:weekday\s+saturday\b)/i,/^(?:weekday\s+sunday\b)/i,/^(?:\d\d\d\d-\d\d-\d\d\b)/i,/^(?:title\s[^\n]+)/i,/^(?:accDescription\s[^#\n;]+)/i,/^(?:section\s[^\n]+)/i,/^(?:[^:\n]+)/i,/^(?::[^#\n;]+)/i,/^(?::)/i,/^(?:$)/i,/^(?:.)/i],conditions:{acc_descr_multiline:{rules:[6,7],inclusive:!1},acc_descr:{rules:[4],inclusive:!1},acc_title:{rules:[2],inclusive:!1},callbackargs:{rules:[21,22],inclusive:!1},callbackname:{rules:[18,19,20],inclusive:!1},href:{rules:[15,16],inclusive:!1},click:{rules:[24,25],inclusive:!1},INITIAL:{rules:[0,1,3,5,8,9,10,11,12,13,14,17,23,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50],inclusive:!0}}};return x}();v.lexer=U;function _(){this.yy={}}return _.prototype=v,v.Parser=_,new _}();he.parser=he;const _i=he;nt.extend(wi);nt.extend(Di);nt.extend(Si);let it="",ve="",be,xe="",Nt=[],Vt=[],we={},Ce=[],$t=[],Ut="",De="";const yn=["active","done","crit","milestone"];let Me=[],zt=!1,Se=!1,_e="sunday",de=0;const Yi=function(){Ce=[],$t=[],Ut="",Me=[],Xt=0,ge=void 0,qt=void 0,K=[],it="",ve="",De="",be=void 0,xe="",Nt=[],Vt=[],zt=!1,Se=!1,de=0,we={},An(),_e="sunday"},Ui=function(t){ve=t},Fi=function(){return ve},Li=function(t){be=t},Ai=function(){return be},Ei=function(t){xe=t},Ii=function(){return xe},Wi=function(t){it=t},Oi=function(){zt=!0},Hi=function(){return zt},Ni=function(){Se=!0},Vi=function(){return Se},zi=function(t){De=t},Pi=function(){return De},Ri=function(){return it},Bi=function(t){Nt=t.toLowerCase().split(/[\s,]+/)},Zi=function(){return Nt},Xi=function(t){Vt=t.toLowerCase().split(/[\s,]+/)},qi=function(){return Vt},Gi=function(){return we},Qi=function(t){Ut=t,Ce.push(t)},ji=function(){return Ce},Ji=function(){let t=Pe();const e=10;let n=0;for(;!t&&n=6&&n.includes("weekends")||n.includes(t.format("dddd").toLowerCase())?!0:n.includes(t.format(e.trim()))},$i=function(t){_e=t},Ki=function(){return _e},pn=function(t,e,n,r){if(!n.length||t.manualEndTime)return;let i;t.startTime instanceof Date?i=nt(t.startTime):i=nt(t.startTime,e,!0),i=i.add(1,"d");let s;t.endTime instanceof Date?s=nt(t.endTime):s=nt(t.endTime,e,!0);const[a,y]=ts(i,s,e,n,r);t.endTime=a.toDate(),t.renderEndTime=y},ts=function(t,e,n,r,i){let s=!1,a=null;for(;t<=e;)s||(a=e.toDate()),s=kn(t,n,r,i),s&&(e=e.add(1,"d")),t=t.add(1,"d");return[e,a]},me=function(t,e,n){n=n.trim();const i=/^after\s+(?[\d\w- ]+)/.exec(n);if(i!==null){let a=null;for(const S of i.groups.ids.split(" ")){let p=wt(S);p!==void 0&&(!a||p.endTime>a.endTime)&&(a=p)}if(a)return a.endTime;const y=new Date;return y.setHours(0,0,0,0),y}let s=nt(n,e.trim(),!0);if(s.isValid())return s.toDate();{Gt.debug("Invalid date:"+n),Gt.debug("With date format:"+e.trim());const a=new Date(n);if(a===void 0||isNaN(a.getTime())||a.getFullYear()<-1e4||a.getFullYear()>1e4)throw new Error("Invalid date:"+n);return a}},Tn=function(t){const e=/^(\d+(?:\.\d+)?)([Mdhmswy]|ms)$/.exec(t.trim());return e!==null?[Number.parseFloat(e[1]),e[2]]:[NaN,"ms"]},vn=function(t,e,n,r=!1){n=n.trim();const s=/^until\s+(?[\d\w- ]+)/.exec(n);if(s!==null){let g=null;for(const w of s.groups.ids.split(" ")){let T=wt(w);T!==void 0&&(!g||T.startTime{window.open(n,"_self")}),we[r]=n)}),xn(t,"clickable")},xn=function(t,e){t.split(",").forEach(function(n){let r=wt(n);r!==void 0&&r.classes.push(e)})},as=function(t,e,n){if(Dt().securityLevel!=="loose"||e===void 0)return;let r=[];if(typeof n=="string"){r=n.split(/,(?=(?:(?:[^"]*"){2})*[^"]*$)/);for(let s=0;s{On.runFunc(e,...r)})},wn=function(t,e){Me.push(function(){const n=document.querySelector(`[id="${t}"]`);n!==null&&n.addEventListener("click",function(){e()})},function(){const n=document.querySelector(`[id="${t}-text"]`);n!==null&&n.addEventListener("click",function(){e()})})},os=function(t,e,n){t.split(",").forEach(function(r){as(r,e,n)}),xn(t,"clickable")},cs=function(t){Me.forEach(function(e){e(t)})},ls={getConfig:()=>Dt().gantt,clear:Yi,setDateFormat:Wi,getDateFormat:Ri,enableInclusiveEndDates:Oi,endDatesAreInclusive:Hi,enableTopAxis:Ni,topAxisEnabled:Vi,setAxisFormat:Ui,getAxisFormat:Fi,setTickInterval:Li,getTickInterval:Ai,setTodayMarker:Ei,getTodayMarker:Ii,setAccTitle:Sn,getAccTitle:_n,setDiagramTitle:Yn,getDiagramTitle:Un,setDisplayMode:zi,getDisplayMode:Pi,setAccDescription:Fn,getAccDescription:Ln,addSection:Qi,getSections:ji,getTasks:Ji,addTask:rs,findTaskById:wt,addTaskOrg:is,setIncludes:Bi,getIncludes:Zi,setExcludes:Xi,getExcludes:qi,setClickEvent:os,setLink:ss,getLinks:Gi,bindFunctions:cs,parseDuration:Tn,isInvalidDate:kn,setWeekday:$i,getWeekday:Ki};function Cn(t,e,n){let r=!0;for(;r;)r=!1,n.forEach(function(i){const s="^\\s*"+i+"\\s*$",a=new RegExp(s);t[0].match(a)&&(e[i]=!0,t.shift(1),r=!0)})}const us=function(){Gt.debug("Something is calling, setConf, remove the call")},Re={monday:Wt,tuesday:nn,wednesday:rn,thursday:Tt,friday:sn,saturday:an,sunday:Ht},fs=(t,e)=>{let n=[...t].map(()=>-1/0),r=[...t].sort((s,a)=>s.startTime-a.startTime||s.order-a.order),i=0;for(const s of r)for(let a=0;a=n[a]){n[a]=s.endTime,s.order=a+e,a>i&&(i=a);break}return i};let ut;const hs=function(t,e,n,r){const i=Dt().gantt,s=Dt().securityLevel;let a;s==="sandbox"&&(a=Rt("#i"+e));const y=s==="sandbox"?Rt(a.nodes()[0].contentDocument.body):Rt("body"),S=s==="sandbox"?a.nodes()[0].contentDocument:document,p=S.getElementById(e);ut=p.parentElement.offsetWidth,ut===void 0&&(ut=1200),i.useWidth!==void 0&&(ut=i.useWidth);const g=r.db.getTasks();let F=[];for(const v of g)F.push(v.type);F=W(F);const w={};let T=2*i.topPadding;if(r.db.getDisplayMode()==="compact"||i.displayMode==="compact"){const v={};for(const _ of g)v[_.section]===void 0?v[_.section]=[_]:v[_.section].push(_);let U=0;for(const _ of Object.keys(v)){const x=fs(v[_],U)+1;U+=x,T+=x*(i.barHeight+i.barGap),w[_]=x}}else{T+=g.length*(i.barHeight+i.barGap);for(const v of F)w[v]=g.filter(U=>U.type===v).length}p.setAttribute("viewBox","0 0 "+ut+" "+T);const q=y.select(`[id="${e}"]`),I=bi().domain([Bn(g,function(v){return v.startTime}),Rn(g,function(v){return v.endTime})]).rangeRound([0,ut-i.leftPadding-i.rightPadding]);function D(v,U){const _=v.startTime,x=U.startTime;let o=0;return _>x?o=1:_h.order))].map(h=>v.find(C=>C.order===h));q.append("g").selectAll("rect").data(M).enter().append("rect").attr("x",0).attr("y",function(h,C){return C=h.order,C*U+_-2}).attr("width",function(){return m-i.rightPadding/2}).attr("height",U).attr("class",function(h){for(const[C,X]of F.entries())if(h.type===X)return"section section"+C%i.numberSectionStyles;return"section section0"});const c=q.append("g").selectAll("rect").data(v).enter(),G=r.db.getLinks();if(c.append("rect").attr("id",function(h){return h.id}).attr("rx",3).attr("ry",3).attr("x",function(h){return h.milestone?I(h.startTime)+x+.5*(I(h.endTime)-I(h.startTime))-.5*o:I(h.startTime)+x}).attr("y",function(h,C){return C=h.order,C*U+_}).attr("width",function(h){return h.milestone?o:I(h.renderEndTime||h.endTime)-I(h.startTime)}).attr("height",o).attr("transform-origin",function(h,C){return C=h.order,(I(h.startTime)+x+.5*(I(h.endTime)-I(h.startTime))).toString()+"px "+(C*U+_+.5*o).toString()+"px"}).attr("class",function(h){const C="task";let X="";h.classes.length>0&&(X=h.classes.join(" "));let O=0;for(const[N,P]of F.entries())h.type===P&&(O=N%i.numberSectionStyles);let z="";return h.active?h.crit?z+=" activeCrit":z=" active":h.done?h.crit?z=" doneCrit":z=" done":h.crit&&(z+=" crit"),z.length===0&&(z=" task"),h.milestone&&(z=" milestone "+z),z+=O,z+=" "+X,C+z}),c.append("text").attr("id",function(h){return h.id+"-text"}).text(function(h){return h.task}).attr("font-size",i.fontSize).attr("x",function(h){let C=I(h.startTime),X=I(h.renderEndTime||h.endTime);h.milestone&&(C+=.5*(I(h.endTime)-I(h.startTime))-.5*o),h.milestone&&(X=C+o);const O=this.getBBox().width;return O>X-C?X+O+1.5*i.leftPadding>m?C+x-5:X+x+5:(X-C)/2+C+x}).attr("y",function(h,C){return C=h.order,C*U+i.barHeight/2+(i.fontSize/2-2)+_}).attr("text-height",o).attr("class",function(h){const C=I(h.startTime);let X=I(h.endTime);h.milestone&&(X=C+o);const O=this.getBBox().width;let z="";h.classes.length>0&&(z=h.classes.join(" "));let N=0;for(const[at,ot]of F.entries())h.type===ot&&(N=at%i.numberSectionStyles);let P="";return h.active&&(h.crit?P="activeCritText"+N:P="activeText"+N),h.done?h.crit?P=P+" doneCritText"+N:P=P+" doneText"+N:h.crit&&(P=P+" critText"+N),h.milestone&&(P+=" milestoneText"),O>X-C?X+O+1.5*i.leftPadding>m?z+" taskTextOutsideLeft taskTextOutside"+N+" "+P:z+" taskTextOutsideRight taskTextOutside"+N+" "+P+" width-"+O:z+" taskText taskText"+N+" "+P+" width-"+O}),Dt().securityLevel==="sandbox"){let h;h=Rt("#i"+e);const C=h.nodes()[0].contentDocument;c.filter(function(X){return G[X.id]!==void 0}).each(function(X){var O=C.querySelector("#"+X.id),z=C.querySelector("#"+X.id+"-text");const N=O.parentNode;var P=C.createElement("a");P.setAttribute("xlink:href",G[X.id]),P.setAttribute("target","_top"),N.appendChild(P),P.appendChild(O),P.appendChild(z)})}}function A(v,U,_,x,o,f,m,u){if(m.length===0&&u.length===0)return;let M,c;for(const{startTime:O,endTime:z}of f)(M===void 0||Oc)&&(c=z);if(!M||!c)return;if(nt(c).diff(nt(M),"year")>5){Gt.warn("The difference between the min and max time is more than 5 years. This will cause performance issues. Skipping drawing exclude days.");return}const G=r.db.getDateFormat(),d=[];let h=null,C=nt(M);for(;C.valueOf()<=c;)r.db.isInvalidDate(C,G,m,u)?h?h.end=C:h={start:C,end:C}:h&&(d.push(h),h=null),C=C.add(1,"d");q.append("g").selectAll("rect").data(d).enter().append("rect").attr("id",function(O){return"exclude-"+O.start.format("YYYY-MM-DD")}).attr("x",function(O){return I(O.start)+_}).attr("y",i.gridLineStartPadding).attr("width",function(O){const z=O.end.add(1,"day");return I(z)-I(O.start)}).attr("height",o-U-i.gridLineStartPadding).attr("transform-origin",function(O,z){return(I(O.start)+_+.5*(I(O.end)-I(O.start))).toString()+"px "+(z*v+.5*o).toString()+"px"}).attr("class","exclude-range")}function Z(v,U,_,x){let o=$n(I).tickSize(-x+U+i.gridLineStartPadding).tickFormat(Jt(r.db.getAxisFormat()||i.axisFormat||"%Y-%m-%d"));const m=/^([1-9]\d*)(millisecond|second|minute|hour|day|week|month)$/.exec(r.db.getTickInterval()||i.tickInterval);if(m!==null){const u=m[1],M=m[2],c=r.db.getWeekday()||i.weekday;switch(M){case"millisecond":o.ticks(_t.every(u));break;case"second":o.ticks(kt.every(u));break;case"minute":o.ticks(Et.every(u));break;case"hour":o.ticks(It.every(u));break;case"day":o.ticks(pt.every(u));break;case"week":o.ticks(Re[c].every(u));break;case"month":o.ticks(Ot.every(u));break}}if(q.append("g").attr("class","grid").attr("transform","translate("+v+", "+(x-50)+")").call(o).selectAll("text").style("text-anchor","middle").attr("fill","#000").attr("stroke","none").attr("font-size",10).attr("dy","1em"),r.db.topAxisEnabled()||i.topAxis){let u=Jn(I).tickSize(-x+U+i.gridLineStartPadding).tickFormat(Jt(r.db.getAxisFormat()||i.axisFormat||"%Y-%m-%d"));if(m!==null){const M=m[1],c=m[2],G=r.db.getWeekday()||i.weekday;switch(c){case"millisecond":u.ticks(_t.every(M));break;case"second":u.ticks(kt.every(M));break;case"minute":u.ticks(Et.every(M));break;case"hour":u.ticks(It.every(M));break;case"day":u.ticks(pt.every(M));break;case"week":u.ticks(Re[G].every(M));break;case"month":u.ticks(Ot.every(M));break}}q.append("g").attr("class","grid").attr("transform","translate("+v+", "+U+")").call(u).selectAll("text").style("text-anchor","middle").attr("fill","#000").attr("stroke","none").attr("font-size",10)}}function j(v,U){let _=0;const x=Object.keys(w).map(o=>[o,w[o]]);q.append("g").selectAll("text").data(x).enter().append(function(o){const f=o[0].split(Wn.lineBreakRegex),m=-(f.length-1)/2,u=S.createElementNS("http://www.w3.org/2000/svg","text");u.setAttribute("dy",m+"em");for(const[M,c]of f.entries()){const G=S.createElementNS("http://www.w3.org/2000/svg","tspan");G.setAttribute("alignment-baseline","central"),G.setAttribute("x","10"),M>0&&G.setAttribute("dy","1em"),G.textContent=c,u.appendChild(G)}return u}).attr("x",10).attr("y",function(o,f){if(f>0)for(let m=0;m` + .mermaid-main-font { + font-family: var(--mermaid-font-family, "trebuchet ms", verdana, arial, sans-serif); + } + + .exclude-range { + fill: ${t.excludeBkgColor}; + } + + .section { + stroke: none; + opacity: 0.2; + } + + .section0 { + fill: ${t.sectionBkgColor}; + } + + .section2 { + fill: ${t.sectionBkgColor2}; + } + + .section1, + .section3 { + fill: ${t.altSectionBkgColor}; + opacity: 0.2; + } + + .sectionTitle0 { + fill: ${t.titleColor}; + } + + .sectionTitle1 { + fill: ${t.titleColor}; + } + + .sectionTitle2 { + fill: ${t.titleColor}; + } + + .sectionTitle3 { + fill: ${t.titleColor}; + } + + .sectionTitle { + text-anchor: start; + font-family: var(--mermaid-font-family, "trebuchet ms", verdana, arial, sans-serif); + } + + + /* Grid and axis */ + + .grid .tick { + stroke: ${t.gridColor}; + opacity: 0.8; + shape-rendering: crispEdges; + } + + .grid .tick text { + font-family: ${t.fontFamily}; + fill: ${t.textColor}; + } + + .grid path { + stroke-width: 0; + } + + + /* Today line */ + + .today { + fill: none; + stroke: ${t.todayLineColor}; + stroke-width: 2px; + } + + + /* Task styling */ + + /* Default task */ + + .task { + stroke-width: 2; + } + + .taskText { + text-anchor: middle; + font-family: var(--mermaid-font-family, "trebuchet ms", verdana, arial, sans-serif); + } + + .taskTextOutsideRight { + fill: ${t.taskTextDarkColor}; + text-anchor: start; + font-family: var(--mermaid-font-family, "trebuchet ms", verdana, arial, sans-serif); + } + + .taskTextOutsideLeft { + fill: ${t.taskTextDarkColor}; + text-anchor: end; + } + + + /* Special case clickable */ + + .task.clickable { + cursor: pointer; + } + + .taskText.clickable { + cursor: pointer; + fill: ${t.taskTextClickableColor} !important; + font-weight: bold; + } + + .taskTextOutsideLeft.clickable { + cursor: pointer; + fill: ${t.taskTextClickableColor} !important; + font-weight: bold; + } + + .taskTextOutsideRight.clickable { + cursor: pointer; + fill: ${t.taskTextClickableColor} !important; + font-weight: bold; + } + + + /* Specific task settings for the sections*/ + + .taskText0, + .taskText1, + .taskText2, + .taskText3 { + fill: ${t.taskTextColor}; + } + + .task0, + .task1, + .task2, + .task3 { + fill: ${t.taskBkgColor}; + stroke: ${t.taskBorderColor}; + } + + .taskTextOutside0, + .taskTextOutside2 + { + fill: ${t.taskTextOutsideColor}; + } + + .taskTextOutside1, + .taskTextOutside3 { + fill: ${t.taskTextOutsideColor}; + } + + + /* Active task */ + + .active0, + .active1, + .active2, + .active3 { + fill: ${t.activeTaskBkgColor}; + stroke: ${t.activeTaskBorderColor}; + } + + .activeText0, + .activeText1, + .activeText2, + .activeText3 { + fill: ${t.taskTextDarkColor} !important; + } + + + /* Completed task */ + + .done0, + .done1, + .done2, + .done3 { + stroke: ${t.doneTaskBorderColor}; + fill: ${t.doneTaskBkgColor}; + stroke-width: 2; + } + + .doneText0, + .doneText1, + .doneText2, + .doneText3 { + fill: ${t.taskTextDarkColor} !important; + } + + + /* Tasks on the critical line */ + + .crit0, + .crit1, + .crit2, + .crit3 { + stroke: ${t.critBorderColor}; + fill: ${t.critBkgColor}; + stroke-width: 2; + } + + .activeCrit0, + .activeCrit1, + .activeCrit2, + .activeCrit3 { + stroke: ${t.critBorderColor}; + fill: ${t.activeTaskBkgColor}; + stroke-width: 2; + } + + .doneCrit0, + .doneCrit1, + .doneCrit2, + .doneCrit3 { + stroke: ${t.critBorderColor}; + fill: ${t.doneTaskBkgColor}; + stroke-width: 2; + cursor: pointer; + shape-rendering: crispEdges; + } + + .milestone { + transform: rotate(45deg) scale(0.8,0.8); + } + + .milestoneText { + font-style: italic; + } + .doneCritText0, + .doneCritText1, + .doneCritText2, + .doneCritText3 { + fill: ${t.taskTextDarkColor} !important; + } + + .activeCritText0, + .activeCritText1, + .activeCritText2, + .activeCritText3 { + fill: ${t.taskTextDarkColor} !important; + } + + .titleText { + text-anchor: middle; + font-size: 18px; + fill: ${t.titleColor||t.textColor}; + font-family: var(--mermaid-font-family, "trebuchet ms", verdana, arial, sans-serif); + } +`,gs=ms,vs={parser:_i,db:ls,renderer:ds,styles:gs};export{vs as diagram}; diff --git a/assets/gitGraphDiagram-72cf32ee-WEL1-h6_.js b/assets/gitGraphDiagram-72cf32ee-WEL1-h6_.js new file mode 100644 index 00000000..c474c2a6 --- /dev/null +++ b/assets/gitGraphDiagram-72cf32ee-WEL1-h6_.js @@ -0,0 +1,70 @@ +import{c as C,s as vt,g as Ct,a as Ot,b as Pt,x as At,y as Gt,l as B,j as D,A as St,h as It,z as Nt,as as Ht,at as Bt}from"./mermaid.core-B_tqKmhs.js";import"./index-Be9IN4QR.js";var mt=function(){var r=function(G,o,u,d){for(u=u||{},d=G.length;d--;u[G[d]]=o);return u},n=[1,3],l=[1,6],h=[1,4],i=[1,5],c=[2,5],p=[1,12],m=[5,7,13,19,21,23,24,26,28,31,37,40,47],x=[7,13,19,21,23,24,26,28,31,37,40],y=[7,12,13,19,21,23,24,26,28,31,37,40],a=[7,13,47],R=[1,42],_=[1,41],b=[7,13,29,32,35,38,47],f=[1,55],k=[1,56],g=[1,57],E=[7,13,32,35,42,47],z={trace:function(){},yy:{},symbols_:{error:2,start:3,eol:4,GG:5,document:6,EOF:7,":":8,DIR:9,options:10,body:11,OPT:12,NL:13,line:14,statement:15,commitStatement:16,mergeStatement:17,cherryPickStatement:18,acc_title:19,acc_title_value:20,acc_descr:21,acc_descr_value:22,acc_descr_multiline_value:23,section:24,branchStatement:25,CHECKOUT:26,ref:27,BRANCH:28,ORDER:29,NUM:30,CHERRY_PICK:31,COMMIT_ID:32,STR:33,PARENT_COMMIT:34,COMMIT_TAG:35,EMPTYSTR:36,MERGE:37,COMMIT_TYPE:38,commitType:39,COMMIT:40,commit_arg:41,COMMIT_MSG:42,NORMAL:43,REVERSE:44,HIGHLIGHT:45,ID:46,";":47,$accept:0,$end:1},terminals_:{2:"error",5:"GG",7:"EOF",8:":",9:"DIR",12:"OPT",13:"NL",19:"acc_title",20:"acc_title_value",21:"acc_descr",22:"acc_descr_value",23:"acc_descr_multiline_value",24:"section",26:"CHECKOUT",28:"BRANCH",29:"ORDER",30:"NUM",31:"CHERRY_PICK",32:"COMMIT_ID",33:"STR",34:"PARENT_COMMIT",35:"COMMIT_TAG",36:"EMPTYSTR",37:"MERGE",38:"COMMIT_TYPE",40:"COMMIT",42:"COMMIT_MSG",43:"NORMAL",44:"REVERSE",45:"HIGHLIGHT",46:"ID",47:";"},productions_:[0,[3,2],[3,3],[3,4],[3,5],[6,0],[6,2],[10,2],[10,1],[11,0],[11,2],[14,2],[14,1],[15,1],[15,1],[15,1],[15,2],[15,2],[15,1],[15,1],[15,1],[15,2],[25,2],[25,4],[18,3],[18,5],[18,5],[18,7],[18,7],[18,5],[18,5],[18,5],[18,7],[18,7],[18,7],[18,7],[17,2],[17,4],[17,4],[17,4],[17,6],[17,6],[17,6],[17,6],[17,6],[17,6],[17,8],[17,8],[17,8],[17,8],[17,8],[17,8],[16,2],[16,3],[16,3],[16,5],[16,5],[16,3],[16,5],[16,5],[16,5],[16,5],[16,7],[16,7],[16,7],[16,7],[16,7],[16,7],[16,3],[16,5],[16,5],[16,5],[16,5],[16,5],[16,5],[16,7],[16,7],[16,7],[16,7],[16,7],[16,7],[16,7],[16,7],[16,7],[16,7],[16,7],[16,7],[16,7],[16,7],[16,7],[16,7],[16,7],[16,7],[16,9],[16,9],[16,9],[16,9],[16,9],[16,9],[16,9],[16,9],[16,9],[16,9],[16,9],[16,9],[16,9],[16,9],[16,9],[16,9],[16,9],[16,9],[16,9],[16,9],[16,9],[16,9],[16,9],[16,9],[41,0],[41,1],[39,1],[39,1],[39,1],[27,1],[27,1],[4,1],[4,1],[4,1]],performAction:function(o,u,d,s,T,t,X){var e=t.length-1;switch(T){case 2:return t[e];case 3:return t[e-1];case 4:return s.setDirection(t[e-3]),t[e-1];case 6:s.setOptions(t[e-1]),this.$=t[e];break;case 7:t[e-1]+=t[e],this.$=t[e-1];break;case 9:this.$=[];break;case 10:t[e-1].push(t[e]),this.$=t[e-1];break;case 11:this.$=t[e-1];break;case 16:this.$=t[e].trim(),s.setAccTitle(this.$);break;case 17:case 18:this.$=t[e].trim(),s.setAccDescription(this.$);break;case 19:s.addSection(t[e].substr(8)),this.$=t[e].substr(8);break;case 21:s.checkout(t[e]);break;case 22:s.branch(t[e]);break;case 23:s.branch(t[e-2],t[e]);break;case 24:s.cherryPick(t[e],"",void 0);break;case 25:s.cherryPick(t[e-2],"",void 0,t[e]);break;case 26:s.cherryPick(t[e-2],"",t[e]);break;case 27:s.cherryPick(t[e-4],"",t[e],t[e-2]);break;case 28:s.cherryPick(t[e-4],"",t[e-2],t[e]);break;case 29:s.cherryPick(t[e],"",t[e-2]);break;case 30:s.cherryPick(t[e],"","");break;case 31:s.cherryPick(t[e-2],"","");break;case 32:s.cherryPick(t[e-4],"","",t[e-2]);break;case 33:s.cherryPick(t[e-4],"","",t[e]);break;case 34:s.cherryPick(t[e-2],"",t[e-4],t[e]);break;case 35:s.cherryPick(t[e-2],"","",t[e]);break;case 36:s.merge(t[e],"","","");break;case 37:s.merge(t[e-2],t[e],"","");break;case 38:s.merge(t[e-2],"",t[e],"");break;case 39:s.merge(t[e-2],"","",t[e]);break;case 40:s.merge(t[e-4],t[e],"",t[e-2]);break;case 41:s.merge(t[e-4],"",t[e],t[e-2]);break;case 42:s.merge(t[e-4],"",t[e-2],t[e]);break;case 43:s.merge(t[e-4],t[e-2],t[e],"");break;case 44:s.merge(t[e-4],t[e-2],"",t[e]);break;case 45:s.merge(t[e-4],t[e],t[e-2],"");break;case 46:s.merge(t[e-6],t[e-4],t[e-2],t[e]);break;case 47:s.merge(t[e-6],t[e],t[e-4],t[e-2]);break;case 48:s.merge(t[e-6],t[e-4],t[e],t[e-2]);break;case 49:s.merge(t[e-6],t[e-2],t[e-4],t[e]);break;case 50:s.merge(t[e-6],t[e],t[e-2],t[e-4]);break;case 51:s.merge(t[e-6],t[e-2],t[e],t[e-4]);break;case 52:s.commit(t[e]);break;case 53:s.commit("","",s.commitType.NORMAL,t[e]);break;case 54:s.commit("","",t[e],"");break;case 55:s.commit("","",t[e],t[e-2]);break;case 56:s.commit("","",t[e-2],t[e]);break;case 57:s.commit("",t[e],s.commitType.NORMAL,"");break;case 58:s.commit("",t[e-2],s.commitType.NORMAL,t[e]);break;case 59:s.commit("",t[e],s.commitType.NORMAL,t[e-2]);break;case 60:s.commit("",t[e-2],t[e],"");break;case 61:s.commit("",t[e],t[e-2],"");break;case 62:s.commit("",t[e-4],t[e-2],t[e]);break;case 63:s.commit("",t[e-4],t[e],t[e-2]);break;case 64:s.commit("",t[e-2],t[e-4],t[e]);break;case 65:s.commit("",t[e],t[e-4],t[e-2]);break;case 66:s.commit("",t[e],t[e-2],t[e-4]);break;case 67:s.commit("",t[e-2],t[e],t[e-4]);break;case 68:s.commit(t[e],"",s.commitType.NORMAL,"");break;case 69:s.commit(t[e],"",s.commitType.NORMAL,t[e-2]);break;case 70:s.commit(t[e-2],"",s.commitType.NORMAL,t[e]);break;case 71:s.commit(t[e-2],"",t[e],"");break;case 72:s.commit(t[e],"",t[e-2],"");break;case 73:s.commit(t[e],t[e-2],s.commitType.NORMAL,"");break;case 74:s.commit(t[e-2],t[e],s.commitType.NORMAL,"");break;case 75:s.commit(t[e-4],"",t[e-2],t[e]);break;case 76:s.commit(t[e-4],"",t[e],t[e-2]);break;case 77:s.commit(t[e-2],"",t[e-4],t[e]);break;case 78:s.commit(t[e],"",t[e-4],t[e-2]);break;case 79:s.commit(t[e],"",t[e-2],t[e-4]);break;case 80:s.commit(t[e-2],"",t[e],t[e-4]);break;case 81:s.commit(t[e-4],t[e],t[e-2],"");break;case 82:s.commit(t[e-4],t[e-2],t[e],"");break;case 83:s.commit(t[e-2],t[e],t[e-4],"");break;case 84:s.commit(t[e],t[e-2],t[e-4],"");break;case 85:s.commit(t[e],t[e-4],t[e-2],"");break;case 86:s.commit(t[e-2],t[e-4],t[e],"");break;case 87:s.commit(t[e-4],t[e],s.commitType.NORMAL,t[e-2]);break;case 88:s.commit(t[e-4],t[e-2],s.commitType.NORMAL,t[e]);break;case 89:s.commit(t[e-2],t[e],s.commitType.NORMAL,t[e-4]);break;case 90:s.commit(t[e],t[e-2],s.commitType.NORMAL,t[e-4]);break;case 91:s.commit(t[e],t[e-4],s.commitType.NORMAL,t[e-2]);break;case 92:s.commit(t[e-2],t[e-4],s.commitType.NORMAL,t[e]);break;case 93:s.commit(t[e-6],t[e-4],t[e-2],t[e]);break;case 94:s.commit(t[e-6],t[e-4],t[e],t[e-2]);break;case 95:s.commit(t[e-6],t[e-2],t[e-4],t[e]);break;case 96:s.commit(t[e-6],t[e],t[e-4],t[e-2]);break;case 97:s.commit(t[e-6],t[e-2],t[e],t[e-4]);break;case 98:s.commit(t[e-6],t[e],t[e-2],t[e-4]);break;case 99:s.commit(t[e-4],t[e-6],t[e-2],t[e]);break;case 100:s.commit(t[e-4],t[e-6],t[e],t[e-2]);break;case 101:s.commit(t[e-2],t[e-6],t[e-4],t[e]);break;case 102:s.commit(t[e],t[e-6],t[e-4],t[e-2]);break;case 103:s.commit(t[e-2],t[e-6],t[e],t[e-4]);break;case 104:s.commit(t[e],t[e-6],t[e-2],t[e-4]);break;case 105:s.commit(t[e],t[e-4],t[e-2],t[e-6]);break;case 106:s.commit(t[e-2],t[e-4],t[e],t[e-6]);break;case 107:s.commit(t[e],t[e-2],t[e-4],t[e-6]);break;case 108:s.commit(t[e-2],t[e],t[e-4],t[e-6]);break;case 109:s.commit(t[e-4],t[e-2],t[e],t[e-6]);break;case 110:s.commit(t[e-4],t[e],t[e-2],t[e-6]);break;case 111:s.commit(t[e-2],t[e-4],t[e-6],t[e]);break;case 112:s.commit(t[e],t[e-4],t[e-6],t[e-2]);break;case 113:s.commit(t[e-2],t[e],t[e-6],t[e-4]);break;case 114:s.commit(t[e],t[e-2],t[e-6],t[e-4]);break;case 115:s.commit(t[e-4],t[e-2],t[e-6],t[e]);break;case 116:s.commit(t[e-4],t[e],t[e-6],t[e-2]);break;case 117:this.$="";break;case 118:this.$=t[e];break;case 119:this.$=s.commitType.NORMAL;break;case 120:this.$=s.commitType.REVERSE;break;case 121:this.$=s.commitType.HIGHLIGHT;break}},table:[{3:1,4:2,5:n,7:l,13:h,47:i},{1:[3]},{3:7,4:2,5:n,7:l,13:h,47:i},{6:8,7:c,8:[1,9],9:[1,10],10:11,13:p},r(m,[2,124]),r(m,[2,125]),r(m,[2,126]),{1:[2,1]},{7:[1,13]},{6:14,7:c,10:11,13:p},{8:[1,15]},r(x,[2,9],{11:16,12:[1,17]}),r(y,[2,8]),{1:[2,2]},{7:[1,18]},{6:19,7:c,10:11,13:p},{7:[2,6],13:[1,22],14:20,15:21,16:23,17:24,18:25,19:[1,26],21:[1,27],23:[1,28],24:[1,29],25:30,26:[1,31],28:[1,35],31:[1,34],37:[1,33],40:[1,32]},r(y,[2,7]),{1:[2,3]},{7:[1,36]},r(x,[2,10]),{4:37,7:l,13:h,47:i},r(x,[2,12]),r(a,[2,13]),r(a,[2,14]),r(a,[2,15]),{20:[1,38]},{22:[1,39]},r(a,[2,18]),r(a,[2,19]),r(a,[2,20]),{27:40,33:R,46:_},r(a,[2,117],{41:43,32:[1,46],33:[1,48],35:[1,44],38:[1,45],42:[1,47]}),{27:49,33:R,46:_},{32:[1,50],35:[1,51]},{27:52,33:R,46:_},{1:[2,4]},r(x,[2,11]),r(a,[2,16]),r(a,[2,17]),r(a,[2,21]),r(b,[2,122]),r(b,[2,123]),r(a,[2,52]),{33:[1,53]},{39:54,43:f,44:k,45:g},{33:[1,58]},{33:[1,59]},r(a,[2,118]),r(a,[2,36],{32:[1,60],35:[1,62],38:[1,61]}),{33:[1,63]},{33:[1,64],36:[1,65]},r(a,[2,22],{29:[1,66]}),r(a,[2,53],{32:[1,68],38:[1,67],42:[1,69]}),r(a,[2,54],{32:[1,71],35:[1,70],42:[1,72]}),r(E,[2,119]),r(E,[2,120]),r(E,[2,121]),r(a,[2,57],{35:[1,73],38:[1,74],42:[1,75]}),r(a,[2,68],{32:[1,78],35:[1,76],38:[1,77]}),{33:[1,79]},{39:80,43:f,44:k,45:g},{33:[1,81]},r(a,[2,24],{34:[1,82],35:[1,83]}),{32:[1,84]},{32:[1,85]},{30:[1,86]},{39:87,43:f,44:k,45:g},{33:[1,88]},{33:[1,89]},{33:[1,90]},{33:[1,91]},{33:[1,92]},{33:[1,93]},{39:94,43:f,44:k,45:g},{33:[1,95]},{33:[1,96]},{39:97,43:f,44:k,45:g},{33:[1,98]},r(a,[2,37],{35:[1,100],38:[1,99]}),r(a,[2,38],{32:[1,102],35:[1,101]}),r(a,[2,39],{32:[1,103],38:[1,104]}),{33:[1,105]},{33:[1,106],36:[1,107]},{33:[1,108]},{33:[1,109]},r(a,[2,23]),r(a,[2,55],{32:[1,110],42:[1,111]}),r(a,[2,59],{38:[1,112],42:[1,113]}),r(a,[2,69],{32:[1,115],38:[1,114]}),r(a,[2,56],{32:[1,116],42:[1,117]}),r(a,[2,61],{35:[1,118],42:[1,119]}),r(a,[2,72],{32:[1,121],35:[1,120]}),r(a,[2,58],{38:[1,122],42:[1,123]}),r(a,[2,60],{35:[1,124],42:[1,125]}),r(a,[2,73],{35:[1,127],38:[1,126]}),r(a,[2,70],{32:[1,129],38:[1,128]}),r(a,[2,71],{32:[1,131],35:[1,130]}),r(a,[2,74],{35:[1,133],38:[1,132]}),{39:134,43:f,44:k,45:g},{33:[1,135]},{33:[1,136]},{33:[1,137]},{33:[1,138]},{39:139,43:f,44:k,45:g},r(a,[2,25],{35:[1,140]}),r(a,[2,26],{34:[1,141]}),r(a,[2,31],{34:[1,142]}),r(a,[2,29],{34:[1,143]}),r(a,[2,30],{34:[1,144]}),{33:[1,145]},{33:[1,146]},{39:147,43:f,44:k,45:g},{33:[1,148]},{39:149,43:f,44:k,45:g},{33:[1,150]},{33:[1,151]},{33:[1,152]},{33:[1,153]},{33:[1,154]},{33:[1,155]},{33:[1,156]},{39:157,43:f,44:k,45:g},{33:[1,158]},{33:[1,159]},{33:[1,160]},{39:161,43:f,44:k,45:g},{33:[1,162]},{39:163,43:f,44:k,45:g},{33:[1,164]},{33:[1,165]},{33:[1,166]},{39:167,43:f,44:k,45:g},{33:[1,168]},r(a,[2,43],{35:[1,169]}),r(a,[2,44],{38:[1,170]}),r(a,[2,42],{32:[1,171]}),r(a,[2,45],{35:[1,172]}),r(a,[2,40],{38:[1,173]}),r(a,[2,41],{32:[1,174]}),{33:[1,175],36:[1,176]},{33:[1,177]},{33:[1,178]},{33:[1,179]},{33:[1,180]},r(a,[2,66],{42:[1,181]}),r(a,[2,79],{32:[1,182]}),r(a,[2,67],{42:[1,183]}),r(a,[2,90],{38:[1,184]}),r(a,[2,80],{32:[1,185]}),r(a,[2,89],{38:[1,186]}),r(a,[2,65],{42:[1,187]}),r(a,[2,78],{32:[1,188]}),r(a,[2,64],{42:[1,189]}),r(a,[2,84],{35:[1,190]}),r(a,[2,77],{32:[1,191]}),r(a,[2,83],{35:[1,192]}),r(a,[2,63],{42:[1,193]}),r(a,[2,91],{38:[1,194]}),r(a,[2,62],{42:[1,195]}),r(a,[2,85],{35:[1,196]}),r(a,[2,86],{35:[1,197]}),r(a,[2,92],{38:[1,198]}),r(a,[2,76],{32:[1,199]}),r(a,[2,87],{38:[1,200]}),r(a,[2,75],{32:[1,201]}),r(a,[2,81],{35:[1,202]}),r(a,[2,82],{35:[1,203]}),r(a,[2,88],{38:[1,204]}),{33:[1,205]},{39:206,43:f,44:k,45:g},{33:[1,207]},{33:[1,208]},{39:209,43:f,44:k,45:g},{33:[1,210]},r(a,[2,27]),r(a,[2,32]),r(a,[2,28]),r(a,[2,33]),r(a,[2,34]),r(a,[2,35]),{33:[1,211]},{33:[1,212]},{33:[1,213]},{39:214,43:f,44:k,45:g},{33:[1,215]},{39:216,43:f,44:k,45:g},{33:[1,217]},{33:[1,218]},{33:[1,219]},{33:[1,220]},{33:[1,221]},{33:[1,222]},{33:[1,223]},{39:224,43:f,44:k,45:g},{33:[1,225]},{33:[1,226]},{33:[1,227]},{39:228,43:f,44:k,45:g},{33:[1,229]},{39:230,43:f,44:k,45:g},{33:[1,231]},{33:[1,232]},{33:[1,233]},{39:234,43:f,44:k,45:g},r(a,[2,46]),r(a,[2,48]),r(a,[2,47]),r(a,[2,49]),r(a,[2,51]),r(a,[2,50]),r(a,[2,107]),r(a,[2,108]),r(a,[2,105]),r(a,[2,106]),r(a,[2,110]),r(a,[2,109]),r(a,[2,114]),r(a,[2,113]),r(a,[2,112]),r(a,[2,111]),r(a,[2,116]),r(a,[2,115]),r(a,[2,104]),r(a,[2,103]),r(a,[2,102]),r(a,[2,101]),r(a,[2,99]),r(a,[2,100]),r(a,[2,98]),r(a,[2,97]),r(a,[2,96]),r(a,[2,95]),r(a,[2,93]),r(a,[2,94])],defaultActions:{7:[2,1],13:[2,2],18:[2,3],36:[2,4]},parseError:function(o,u){if(u.recoverable)this.trace(o);else{var d=new Error(o);throw d.hash=u,d}},parse:function(o){var u=this,d=[0],s=[],T=[null],t=[],X=this.table,e="",rt=0,ft=0,wt=2,pt=1,Lt=t.slice.call(arguments,1),O=Object.create(this.lexer),F={yy:{}};for(var ct in this.yy)Object.prototype.hasOwnProperty.call(this.yy,ct)&&(F.yy[ct]=this.yy[ct]);O.setInput(o,F.yy),F.yy.lexer=O,F.yy.parser=this,typeof O.yylloc>"u"&&(O.yylloc={});var ot=O.yylloc;t.push(ot);var Rt=O.options&&O.options.ranges;typeof F.yy.parseError=="function"?this.parseError=F.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function Mt(){var q;return q=s.pop()||O.lex()||pt,typeof q!="number"&&(q instanceof Array&&(s=q,q=s.pop()),q=u.symbols_[q]||q),q}for(var N,K,V,lt,J={},it,j,bt,st;;){if(K=d[d.length-1],this.defaultActions[K]?V=this.defaultActions[K]:((N===null||typeof N>"u")&&(N=Mt()),V=X[K]&&X[K][N]),typeof V>"u"||!V.length||!V[0]){var ht="";st=[];for(it in X[K])this.terminals_[it]&&it>wt&&st.push("'"+this.terminals_[it]+"'");O.showPosition?ht="Parse error on line "+(rt+1)+`: +`+O.showPosition()+` +Expecting `+st.join(", ")+", got '"+(this.terminals_[N]||N)+"'":ht="Parse error on line "+(rt+1)+": Unexpected "+(N==pt?"end of input":"'"+(this.terminals_[N]||N)+"'"),this.parseError(ht,{text:O.match,token:this.terminals_[N]||N,line:O.yylineno,loc:ot,expected:st})}if(V[0]instanceof Array&&V.length>1)throw new Error("Parse Error: multiple actions possible at state: "+K+", token: "+N);switch(V[0]){case 1:d.push(N),T.push(O.yytext),t.push(O.yylloc),d.push(V[1]),N=null,ft=O.yyleng,e=O.yytext,rt=O.yylineno,ot=O.yylloc;break;case 2:if(j=this.productions_[V[1]][1],J.$=T[T.length-j],J._$={first_line:t[t.length-(j||1)].first_line,last_line:t[t.length-1].last_line,first_column:t[t.length-(j||1)].first_column,last_column:t[t.length-1].last_column},Rt&&(J._$.range=[t[t.length-(j||1)].range[0],t[t.length-1].range[1]]),lt=this.performAction.apply(J,[e,ft,rt,F.yy,V[1],T,t].concat(Lt)),typeof lt<"u")return lt;j&&(d=d.slice(0,-1*j*2),T=T.slice(0,-1*j),t=t.slice(0,-1*j)),d.push(this.productions_[V[1]][0]),T.push(J.$),t.push(J._$),bt=X[d[d.length-2]][d[d.length-1]],d.push(bt);break;case 3:return!0}}return!0}},M=function(){var G={EOF:1,parseError:function(u,d){if(this.yy.parser)this.yy.parser.parseError(u,d);else throw new Error(u)},setInput:function(o,u){return this.yy=u||this.yy||{},this._input=o,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var o=this._input[0];this.yytext+=o,this.yyleng++,this.offset++,this.match+=o,this.matched+=o;var u=o.match(/(?:\r\n?|\n).*/g);return u?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),o},unput:function(o){var u=o.length,d=o.split(/(?:\r\n?|\n)/g);this._input=o+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-u),this.offset-=u;var s=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),d.length-1&&(this.yylineno-=d.length-1);var T=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:d?(d.length===s.length?this.yylloc.first_column:0)+s[s.length-d.length].length-d[0].length:this.yylloc.first_column-u},this.options.ranges&&(this.yylloc.range=[T[0],T[0]+this.yyleng-u]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true). +`+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},less:function(o){this.unput(this.match.slice(o))},pastInput:function(){var o=this.matched.substr(0,this.matched.length-this.match.length);return(o.length>20?"...":"")+o.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var o=this.match;return o.length<20&&(o+=this._input.substr(0,20-o.length)),(o.substr(0,20)+(o.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var o=this.pastInput(),u=new Array(o.length+1).join("-");return o+this.upcomingInput()+` +`+u+"^"},test_match:function(o,u){var d,s,T;if(this.options.backtrack_lexer&&(T={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(T.yylloc.range=this.yylloc.range.slice(0))),s=o[0].match(/(?:\r\n?|\n).*/g),s&&(this.yylineno+=s.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:s?s[s.length-1].length-s[s.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+o[0].length},this.yytext+=o[0],this.match+=o[0],this.matches=o,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(o[0].length),this.matched+=o[0],d=this.performAction.call(this,this.yy,this,u,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),d)return d;if(this._backtrack){for(var t in T)this[t]=T[t];return!1}return!1},next:function(){if(this.done)return this.EOF;this._input||(this.done=!0);var o,u,d,s;this._more||(this.yytext="",this.match="");for(var T=this._currentRules(),t=0;tu[0].length)){if(u=d,s=t,this.options.backtrack_lexer){if(o=this.test_match(d,T[t]),o!==!1)return o;if(this._backtrack){u=!1;continue}else return!1}else if(!this.options.flex)break}return u?(o=this.test_match(u,T[s]),o!==!1?o:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text. +`+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var u=this.next();return u||this.lex()},begin:function(u){this.conditionStack.push(u)},popState:function(){var u=this.conditionStack.length-1;return u>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(u){return u=this.conditionStack.length-1-Math.abs(u||0),u>=0?this.conditionStack[u]:"INITIAL"},pushState:function(u){this.begin(u)},stateStackSize:function(){return this.conditionStack.length},options:{"case-insensitive":!0},performAction:function(u,d,s,T){switch(s){case 0:return this.begin("acc_title"),19;case 1:return this.popState(),"acc_title_value";case 2:return this.begin("acc_descr"),21;case 3:return this.popState(),"acc_descr_value";case 4:this.begin("acc_descr_multiline");break;case 5:this.popState();break;case 6:return"acc_descr_multiline_value";case 7:return 13;case 8:break;case 9:break;case 10:return 5;case 11:return 40;case 12:return 32;case 13:return 38;case 14:return 42;case 15:return 43;case 16:return 44;case 17:return 45;case 18:return 35;case 19:return 28;case 20:return 29;case 21:return 37;case 22:return 31;case 23:return 34;case 24:return 26;case 25:return 9;case 26:return 9;case 27:return 8;case 28:return"CARET";case 29:this.begin("options");break;case 30:this.popState();break;case 31:return 12;case 32:return 36;case 33:this.begin("string");break;case 34:this.popState();break;case 35:return 33;case 36:return 30;case 37:return 46;case 38:return 7}},rules:[/^(?:accTitle\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*\{\s*)/i,/^(?:[\}])/i,/^(?:[^\}]*)/i,/^(?:(\r?\n)+)/i,/^(?:#[^\n]*)/i,/^(?:%[^\n]*)/i,/^(?:gitGraph\b)/i,/^(?:commit(?=\s|$))/i,/^(?:id:)/i,/^(?:type:)/i,/^(?:msg:)/i,/^(?:NORMAL\b)/i,/^(?:REVERSE\b)/i,/^(?:HIGHLIGHT\b)/i,/^(?:tag:)/i,/^(?:branch(?=\s|$))/i,/^(?:order:)/i,/^(?:merge(?=\s|$))/i,/^(?:cherry-pick(?=\s|$))/i,/^(?:parent:)/i,/^(?:checkout(?=\s|$))/i,/^(?:LR\b)/i,/^(?:TB\b)/i,/^(?::)/i,/^(?:\^)/i,/^(?:options\r?\n)/i,/^(?:[ \r\n\t]+end\b)/i,/^(?:[\s\S]+(?=[ \r\n\t]+end))/i,/^(?:["]["])/i,/^(?:["])/i,/^(?:["])/i,/^(?:[^"]*)/i,/^(?:[0-9]+(?=\s|$))/i,/^(?:\w([-\./\w]*[-\w])?)/i,/^(?:$)/i,/^(?:\s+)/i],conditions:{acc_descr_multiline:{rules:[5,6],inclusive:!1},acc_descr:{rules:[3],inclusive:!1},acc_title:{rules:[1],inclusive:!1},options:{rules:[30,31],inclusive:!1},string:{rules:[34,35],inclusive:!1},INITIAL:{rules:[0,2,4,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,32,33,36,37,38,39],inclusive:!0}}};return G}();z.lexer=M;function S(){this.yy={}}return S.prototype=z,z.Parser=S,new S}();mt.parser=mt;const Vt=mt;let at=C().gitGraph.mainBranchName,Dt=C().gitGraph.mainBranchOrder,v={},I=null,tt={};tt[at]={name:at,order:Dt};let L={};L[at]=I;let A=at,kt="LR",W=0;function ut(){return Bt({length:7})}function zt(r,n){const l=Object.create(null);return r.reduce((h,i)=>{const c=n(i);return l[c]||(l[c]=!0,h.push(i)),h},[])}const jt=function(r){kt=r};let xt={};const qt=function(r){B.debug("options str",r),r=r&&r.trim(),r=r||"{}";try{xt=JSON.parse(r)}catch(n){B.error("error while parsing gitGraph options",n.message)}},Yt=function(){return xt},Ft=function(r,n,l,h){B.debug("Entering commit:",r,n,l,h),n=D.sanitizeText(n,C()),r=D.sanitizeText(r,C()),h=D.sanitizeText(h,C());const i={id:n||W+"-"+ut(),message:r,seq:W++,type:l||Q.NORMAL,tag:h||"",parents:I==null?[]:[I.id],branch:A};I=i,v[i.id]=i,L[A]=i.id,B.debug("in pushCommit "+i.id)},Kt=function(r,n){if(r=D.sanitizeText(r,C()),L[r]===void 0)L[r]=I!=null?I.id:null,tt[r]={name:r,order:n?parseInt(n,10):null},yt(r),B.debug("in createBranch");else{let l=new Error('Trying to create an existing branch. (Help: Either use a new name if you want create a new branch or try using "checkout '+r+'")');throw l.hash={text:"branch "+r,token:"branch "+r,line:"1",loc:{first_line:1,last_line:1,first_column:1,last_column:1},expected:['"checkout '+r+'"']},l}},Ut=function(r,n,l,h){r=D.sanitizeText(r,C()),n=D.sanitizeText(n,C());const i=v[L[A]],c=v[L[r]];if(A===r){let m=new Error('Incorrect usage of "merge". Cannot merge a branch to itself');throw m.hash={text:"merge "+r,token:"merge "+r,line:"1",loc:{first_line:1,last_line:1,first_column:1,last_column:1},expected:["branch abc"]},m}else if(i===void 0||!i){let m=new Error('Incorrect usage of "merge". Current branch ('+A+")has no commits");throw m.hash={text:"merge "+r,token:"merge "+r,line:"1",loc:{first_line:1,last_line:1,first_column:1,last_column:1},expected:["commit"]},m}else if(L[r]===void 0){let m=new Error('Incorrect usage of "merge". Branch to be merged ('+r+") does not exist");throw m.hash={text:"merge "+r,token:"merge "+r,line:"1",loc:{first_line:1,last_line:1,first_column:1,last_column:1},expected:["branch "+r]},m}else if(c===void 0||!c){let m=new Error('Incorrect usage of "merge". Branch to be merged ('+r+") has no commits");throw m.hash={text:"merge "+r,token:"merge "+r,line:"1",loc:{first_line:1,last_line:1,first_column:1,last_column:1},expected:['"commit"']},m}else if(i===c){let m=new Error('Incorrect usage of "merge". Both branches have same head');throw m.hash={text:"merge "+r,token:"merge "+r,line:"1",loc:{first_line:1,last_line:1,first_column:1,last_column:1},expected:["branch abc"]},m}else if(n&&v[n]!==void 0){let m=new Error('Incorrect usage of "merge". Commit with id:'+n+" already exists, use different custom Id");throw m.hash={text:"merge "+r+n+l+h,token:"merge "+r+n+l+h,line:"1",loc:{first_line:1,last_line:1,first_column:1,last_column:1},expected:["merge "+r+" "+n+"_UNIQUE "+l+" "+h]},m}const p={id:n||W+"-"+ut(),message:"merged branch "+r+" into "+A,seq:W++,parents:[I==null?null:I.id,L[r]],branch:A,type:Q.MERGE,customType:l,customId:!!n,tag:h||""};I=p,v[p.id]=p,L[A]=p.id,B.debug(L),B.debug("in mergeBranch")},Wt=function(r,n,l,h){if(B.debug("Entering cherryPick:",r,n,l),r=D.sanitizeText(r,C()),n=D.sanitizeText(n,C()),l=D.sanitizeText(l,C()),h=D.sanitizeText(h,C()),!r||v[r]===void 0){let p=new Error('Incorrect usage of "cherryPick". Source commit id should exist and provided');throw p.hash={text:"cherryPick "+r+" "+n,token:"cherryPick "+r+" "+n,line:"1",loc:{first_line:1,last_line:1,first_column:1,last_column:1},expected:["cherry-pick abc"]},p}let i=v[r],c=i.branch;if(h&&!(Array.isArray(i.parents)&&i.parents.includes(h)))throw new Error("Invalid operation: The specified parent commit is not an immediate parent of the cherry-picked commit.");if(i.type===Q.MERGE&&!h)throw new Error("Incorrect usage of cherry-pick: If the source commit is a merge commit, an immediate parent commit must be specified.");if(!n||v[n]===void 0){if(c===A){let x=new Error('Incorrect usage of "cherryPick". Source commit is already on current branch');throw x.hash={text:"cherryPick "+r+" "+n,token:"cherryPick "+r+" "+n,line:"1",loc:{first_line:1,last_line:1,first_column:1,last_column:1},expected:["cherry-pick abc"]},x}const p=v[L[A]];if(p===void 0||!p){let x=new Error('Incorrect usage of "cherry-pick". Current branch ('+A+")has no commits");throw x.hash={text:"cherryPick "+r+" "+n,token:"cherryPick "+r+" "+n,line:"1",loc:{first_line:1,last_line:1,first_column:1,last_column:1},expected:["cherry-pick abc"]},x}const m={id:W+"-"+ut(),message:"cherry-picked "+i+" into "+A,seq:W++,parents:[I==null?null:I.id,i.id],branch:A,type:Q.CHERRY_PICK,tag:l??`cherry-pick:${i.id}${i.type===Q.MERGE?`|parent:${h}`:""}`};I=m,v[m.id]=m,L[A]=m.id,B.debug(L),B.debug("in cherryPick")}},yt=function(r){if(r=D.sanitizeText(r,C()),L[r]===void 0){let n=new Error('Trying to checkout branch which is not yet created. (Help try using "branch '+r+'")');throw n.hash={text:"checkout "+r,token:"checkout "+r,line:"1",loc:{first_line:1,last_line:1,first_column:1,last_column:1},expected:['"branch '+r+'"']},n}else{A=r;const n=L[A];I=v[n]}};function gt(r,n,l){const h=r.indexOf(n);h===-1?r.push(l):r.splice(h,1,l)}function _t(r){const n=r.reduce((i,c)=>i.seq>c.seq?i:c,r[0]);let l="";r.forEach(function(i){i===n?l+=" *":l+=" |"});const h=[l,n.id,n.seq];for(let i in L)L[i]===n.id&&h.push(i);if(B.debug(h.join(" ")),n.parents&&n.parents.length==2){const i=v[n.parents[0]];gt(r,n,i),r.push(v[n.parents[1]])}else{if(n.parents.length==0)return;{const i=v[n.parents];gt(r,n,i)}}r=zt(r,i=>i.id),_t(r)}const Jt=function(){B.debug(v);const r=Et()[0];_t([r])},Qt=function(){v={},I=null;let r=C().gitGraph.mainBranchName,n=C().gitGraph.mainBranchOrder;L={},L[r]=null,tt={},tt[r]={name:r,order:n},A=r,W=0,St()},Xt=function(){return Object.values(tt).map((n,l)=>n.order!==null?n:{...n,order:parseFloat(`0.${l}`,10)}).sort((n,l)=>n.order-l.order).map(({name:n})=>({name:n}))},Zt=function(){return L},$t=function(){return v},Et=function(){const r=Object.keys(v).map(function(n){return v[n]});return r.forEach(function(n){B.debug(n.id)}),r.sort((n,l)=>n.seq-l.seq),r},te=function(){return A},ee=function(){return kt},re=function(){return I},Q={NORMAL:0,REVERSE:1,HIGHLIGHT:2,MERGE:3,CHERRY_PICK:4},ie={getConfig:()=>C().gitGraph,setDirection:jt,setOptions:qt,getOptions:Yt,commit:Ft,branch:Kt,merge:Ut,cherryPick:Wt,checkout:yt,prettyPrint:Jt,clear:Qt,getBranchesAsObjArray:Xt,getBranches:Zt,getCommits:$t,getCommitsArray:Et,getCurrentBranch:te,getDirection:ee,getHead:re,setAccTitle:vt,getAccTitle:Ct,getAccDescription:Ot,setAccDescription:Pt,setDiagramTitle:At,getDiagramTitle:Gt,commitType:Q};let Z={};const P={NORMAL:0,REVERSE:1,HIGHLIGHT:2,MERGE:3,CHERRY_PICK:4},U=8;let H={},Y={},nt=[],et=0,w="LR";const se=()=>{H={},Y={},Z={},et=0,nt=[],w="LR"},Tt=r=>{const n=document.createElementNS("http://www.w3.org/2000/svg","text");let l=[];typeof r=="string"?l=r.split(/\\n|\n|/gi):Array.isArray(r)?l=r:l=[];for(const h of l){const i=document.createElementNS("http://www.w3.org/2000/svg","tspan");i.setAttributeNS("http://www.w3.org/XML/1998/namespace","xml:space","preserve"),i.setAttribute("dy","1em"),i.setAttribute("x","0"),i.setAttribute("class","row"),i.textContent=h.trim(),n.appendChild(i)}return n},ae=r=>{let n="",l=0;return r.forEach(h=>{const i=w==="TB"?Y[h].y:Y[h].x;i>=l&&(n=h,l=i)}),n||void 0},dt=(r,n,l)=>{const h=C().gitGraph,i=r.append("g").attr("class","commit-bullets"),c=r.append("g").attr("class","commit-labels");let p=0;w==="TB"&&(p=30);const x=Object.keys(n).sort((_,b)=>n[_].seq-n[b].seq),y=h.parallelCommits,a=10,R=40;x.forEach(_=>{const b=n[_];if(y)if(b.parents.length){const E=ae(b.parents);p=w==="TB"?Y[E].y+R:Y[E].x+R}else p=0,w==="TB"&&(p=30);const f=p+a,k=w==="TB"?f:H[b.branch].pos,g=w==="TB"?H[b.branch].pos:f;if(l){let E,z=b.customType!==void 0&&b.customType!==""?b.customType:b.type;switch(z){case P.NORMAL:E="commit-normal";break;case P.REVERSE:E="commit-reverse";break;case P.HIGHLIGHT:E="commit-highlight";break;case P.MERGE:E="commit-merge";break;case P.CHERRY_PICK:E="commit-cherry-pick";break;default:E="commit-normal"}if(z===P.HIGHLIGHT){const M=i.append("rect");M.attr("x",g-10),M.attr("y",k-10),M.attr("height",20),M.attr("width",20),M.attr("class",`commit ${b.id} commit-highlight${H[b.branch].index%U} ${E}-outer`),i.append("rect").attr("x",g-6).attr("y",k-6).attr("height",12).attr("width",12).attr("class",`commit ${b.id} commit${H[b.branch].index%U} ${E}-inner`)}else if(z===P.CHERRY_PICK)i.append("circle").attr("cx",g).attr("cy",k).attr("r",10).attr("class",`commit ${b.id} ${E}`),i.append("circle").attr("cx",g-3).attr("cy",k+2).attr("r",2.75).attr("fill","#fff").attr("class",`commit ${b.id} ${E}`),i.append("circle").attr("cx",g+3).attr("cy",k+2).attr("r",2.75).attr("fill","#fff").attr("class",`commit ${b.id} ${E}`),i.append("line").attr("x1",g+3).attr("y1",k+1).attr("x2",g).attr("y2",k-5).attr("stroke","#fff").attr("class",`commit ${b.id} ${E}`),i.append("line").attr("x1",g-3).attr("y1",k+1).attr("x2",g).attr("y2",k-5).attr("stroke","#fff").attr("class",`commit ${b.id} ${E}`);else{const M=i.append("circle");if(M.attr("cx",g),M.attr("cy",k),M.attr("r",b.type===P.MERGE?9:10),M.attr("class",`commit ${b.id} commit${H[b.branch].index%U}`),z===P.MERGE){const S=i.append("circle");S.attr("cx",g),S.attr("cy",k),S.attr("r",6),S.attr("class",`commit ${E} ${b.id} commit${H[b.branch].index%U}`)}z===P.REVERSE&&i.append("path").attr("d",`M ${g-5},${k-5}L${g+5},${k+5}M${g-5},${k+5}L${g+5},${k-5}`).attr("class",`commit ${E} ${b.id} commit${H[b.branch].index%U}`)}}if(w==="TB"?Y[b.id]={x:g,y:f}:Y[b.id]={x:f,y:k},l){if(b.type!==P.CHERRY_PICK&&(b.customId&&b.type===P.MERGE||b.type!==P.MERGE)&&h.showCommitLabel){const M=c.append("g"),S=M.insert("rect").attr("class","commit-label-bkg"),G=M.append("text").attr("x",p).attr("y",k+25).attr("class","commit-label").text(b.id);let o=G.node().getBBox();if(S.attr("x",f-o.width/2-2).attr("y",k+13.5).attr("width",o.width+2*2).attr("height",o.height+2*2),w==="TB"&&(S.attr("x",g-(o.width+4*4+5)).attr("y",k-12),G.attr("x",g-(o.width+4*4)).attr("y",k+o.height-12)),w!=="TB"&&G.attr("x",f-o.width/2),h.rotateCommitLabel)if(w==="TB")G.attr("transform","rotate(-45, "+g+", "+k+")"),S.attr("transform","rotate(-45, "+g+", "+k+")");else{let u=-7.5-(o.width+10)/25*9.5,d=10+o.width/25*8.5;M.attr("transform","translate("+u+", "+d+") rotate(-45, "+p+", "+k+")")}}if(b.tag){const M=c.insert("polygon"),S=c.append("circle"),G=c.append("text").attr("y",k-16).attr("class","tag-label").text(b.tag);let o=G.node().getBBox();G.attr("x",f-o.width/2);const u=o.height/2,d=k-19.2;M.attr("class","tag-label-bkg").attr("points",` + ${p-o.width/2-4/2},${d+2} + ${p-o.width/2-4/2},${d-2} + ${f-o.width/2-4},${d-u-2} + ${f+o.width/2+4},${d-u-2} + ${f+o.width/2+4},${d+u+2} + ${f-o.width/2-4},${d+u+2}`),S.attr("cx",p-o.width/2+4/2).attr("cy",d).attr("r",1.5).attr("class","tag-hole"),w==="TB"&&(M.attr("class","tag-label-bkg").attr("points",` + ${g},${p+2} + ${g},${p-2} + ${g+a},${p-u-2} + ${g+a+o.width+4},${p-u-2} + ${g+a+o.width+4},${p+u+2} + ${g+a},${p+u+2}`).attr("transform","translate(12,12) rotate(45, "+g+","+p+")"),S.attr("cx",g+4/2).attr("cy",p).attr("transform","translate(12,12) rotate(45, "+g+","+p+")"),G.attr("x",g+5).attr("y",p+3).attr("transform","translate(14,14) rotate(45, "+g+","+p+")"))}}p+=R+a,p>et&&(et=p)})},ne=(r,n,l,h,i)=>{const p=(w==="TB"?l.xy.branch===p,x=y=>y.seq>r.seq&&y.seqx(y)&&m(y))},$=(r,n,l=0)=>{const h=r+Math.abs(r-n)/2;if(l>5)return h;if(nt.every(p=>Math.abs(p-h)>=10))return nt.push(h),h;const c=Math.abs(r-n);return $(r,n-c/5,l+1)},ce=(r,n,l,h)=>{const i=Y[n.id],c=Y[l.id],p=ne(n,l,i,c,h);let m="",x="",y=0,a=0,R=H[l.branch].index;l.type===P.MERGE&&n.id!==l.parents[0]&&(R=H[n.branch].index);let _;if(p){m="A 10 10, 0, 0, 0,",x="A 10 10, 0, 0, 1,",y=10,a=10;const b=i.yc.x&&(m="A 20 20, 0, 0, 0,",x="A 20 20, 0, 0, 1,",y=20,a=20,l.type===P.MERGE&&n.id!==l.parents[0]?_=`M ${i.x} ${i.y} L ${i.x} ${c.y-y} ${x} ${i.x-a} ${c.y} L ${c.x} ${c.y}`:_=`M ${i.x} ${i.y} L ${c.x+y} ${i.y} ${m} ${c.x} ${i.y+a} L ${c.x} ${c.y}`),i.x===c.x&&(_=`M ${i.x} ${i.y} L ${c.x} ${c.y}`)):(i.yc.y&&(l.type===P.MERGE&&n.id!==l.parents[0]?_=`M ${i.x} ${i.y} L ${c.x-y} ${i.y} ${m} ${c.x} ${i.y-a} L ${c.x} ${c.y}`:_=`M ${i.x} ${i.y} L ${i.x} ${c.y+y} ${x} ${i.x+a} ${c.y} L ${c.x} ${c.y}`),i.y===c.y&&(_=`M ${i.x} ${i.y} L ${c.x} ${c.y}`));r.append("path").attr("d",_).attr("class","arrow arrow"+R%U)},oe=(r,n)=>{const l=r.append("g").attr("class","commit-arrows");Object.keys(n).forEach(h=>{const i=n[h];i.parents&&i.parents.length>0&&i.parents.forEach(c=>{ce(l,n[c],i,n)})})},le=(r,n)=>{const l=C().gitGraph,h=r.append("g");n.forEach((i,c)=>{const p=c%U,m=H[i.name].pos,x=h.append("line");x.attr("x1",0),x.attr("y1",m),x.attr("x2",et),x.attr("y2",m),x.attr("class","branch branch"+p),w==="TB"&&(x.attr("y1",30),x.attr("x1",m),x.attr("y2",et),x.attr("x2",m)),nt.push(m);let y=i.name;const a=Tt(y),R=h.insert("rect"),b=h.insert("g").attr("class","branchLabel").insert("g").attr("class","label branch-label"+p);b.node().appendChild(a);let f=a.getBBox();R.attr("class","branchLabelBkg label"+p).attr("rx",4).attr("ry",4).attr("x",-f.width-4-(l.rotateCommitLabel===!0?30:0)).attr("y",-f.height/2+8).attr("width",f.width+18).attr("height",f.height+4),b.attr("transform","translate("+(-f.width-14-(l.rotateCommitLabel===!0?30:0))+", "+(m-f.height/2-1)+")"),w==="TB"&&(R.attr("x",m-f.width/2-10).attr("y",0),b.attr("transform","translate("+(m-f.width/2-5)+", 0)")),w!=="TB"&&R.attr("transform","translate(-19, "+(m-f.height/2)+")")})},he=function(r,n,l,h){se();const i=C(),c=i.gitGraph;B.debug("in gitgraph renderer",r+` +`,"id:",n,l),Z=h.db.getCommits();const p=h.db.getBranchesAsObjArray();w=h.db.getDirection();const m=It(`[id="${n}"]`);let x=0;p.forEach((y,a)=>{const R=Tt(y.name),_=m.append("g"),b=_.insert("g").attr("class","branchLabel"),f=b.insert("g").attr("class","label branch-label");f.node().appendChild(R);let k=R.getBBox();H[y.name]={pos:x,index:a},x+=50+(c.rotateCommitLabel?40:0)+(w==="TB"?k.width/2:0),f.remove(),b.remove(),_.remove()}),dt(m,Z,!1),c.showBranches&&le(m,p),oe(m,Z),dt(m,Z,!0),Nt.insertTitle(m,"gitTitleText",c.titleTopMargin,h.db.getDiagramTitle()),Ht(void 0,m,c.diagramPadding,c.useMaxWidth??i.useMaxWidth)},me={draw:he},ue=r=>` + .commit-id, + .commit-msg, + .branch-label { + fill: lightgrey; + color: lightgrey; + font-family: 'trebuchet ms', verdana, arial, sans-serif; + font-family: var(--mermaid-font-family); + } + ${[0,1,2,3,4,5,6,7].map(n=>` + .branch-label${n} { fill: ${r["gitBranchLabel"+n]}; } + .commit${n} { stroke: ${r["git"+n]}; fill: ${r["git"+n]}; } + .commit-highlight${n} { stroke: ${r["gitInv"+n]}; fill: ${r["gitInv"+n]}; } + .label${n} { fill: ${r["git"+n]}; } + .arrow${n} { stroke: ${r["git"+n]}; } + `).join(` +`)} + + .branch { + stroke-width: 1; + stroke: ${r.lineColor}; + stroke-dasharray: 2; + } + .commit-label { font-size: ${r.commitLabelFontSize}; fill: ${r.commitLabelColor};} + .commit-label-bkg { font-size: ${r.commitLabelFontSize}; fill: ${r.commitLabelBackground}; opacity: 0.5; } + .tag-label { font-size: ${r.tagLabelFontSize}; fill: ${r.tagLabelColor};} + .tag-label-bkg { fill: ${r.tagLabelBackground}; stroke: ${r.tagLabelBorder}; } + .tag-hole { fill: ${r.textColor}; } + + .commit-merge { + stroke: ${r.primaryColor}; + fill: ${r.primaryColor}; + } + .commit-reverse { + stroke: ${r.primaryColor}; + fill: ${r.primaryColor}; + stroke-width: 3; + } + .commit-highlight-outer { + } + .commit-highlight-inner { + stroke: ${r.primaryColor}; + fill: ${r.primaryColor}; + } + + .arrow { stroke-width: 8; stroke-linecap: round; fill: none} + .gitTitleText { + text-anchor: middle; + font-size: 18px; + fill: ${r.textColor}; + } +`,fe=ue,ge={parser:Vt,db:ie,renderer:me,styles:fe};export{ge as diagram}; diff --git a/assets/graph-Es7S6dYR.js b/assets/graph-Es7S6dYR.js new file mode 100644 index 00000000..fbf782cd --- /dev/null +++ b/assets/graph-Es7S6dYR.js @@ -0,0 +1 @@ +import{B as I,C as Ze,S as m,D as y,E as Te,F as qe,G as Xe,H as Je,I as Ee,J as G,K as X,L as Qe,M as me,N as We,O as C,P as x,Q as Oe,R as ve,T as ze,U as Z,V as Ve,W as ke,X as P,Y as en,Z as nn,_ as rn,$ as re,a0 as tn,a1 as sn,a2 as an,a3 as we,a4 as un,a5 as j,a6 as fn,a7 as on,a8 as M,a9 as te,aa as ie}from"./mermaid.core-B_tqKmhs.js";var dn="[object Symbol]";function J(e){return typeof e=="symbol"||I(e)&&Ze(e)==dn}function $e(e,n){for(var r=-1,t=e==null?0:e.length,i=Array(t);++r-1}function T(e){return Te(e)?qe(e):Xe(e)}var yn=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,An=/^\w*$/;function Q(e,n){if(y(e))return!1;var r=typeof e;return r=="number"||r=="symbol"||r=="boolean"||e==null||J(e)?!0:An.test(e)||!yn.test(e)||n!=null&&e in Object(n)}var Tn=500;function En(e){var n=Je(e,function(t){return r.size===Tn&&r.clear(),t}),r=n.cache;return n}var mn=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,On=/\\(\\)?/g,vn=En(function(e){var n=[];return e.charCodeAt(0)===46&&n.push(""),e.replace(mn,function(r,t,i,s){n.push(i?s.replace(On,"$1"):t||r)}),n});function wn(e){return e==null?"":Le(e)}function Ie(e,n){return y(e)?e:Q(e,n)?[e]:vn(wn(e))}var $n=1/0;function U(e){if(typeof e=="string"||J(e))return e;var n=e+"";return n=="0"&&1/e==-$n?"-0":n}function Ce(e,n){n=Ie(n,e);for(var r=0,t=n.length;e!=null&&ru))return!1;var l=s.get(e),g=s.get(n);if(l&&g)return l==n&&g==e;var o=-1,h=!0,A=r&Qr?new S:void 0;for(s.set(e,n),s.set(n,e);++o=Ht){var l=Kt(e);if(l)return V(l);a=!1,i=Ge,f=new S}else f=u;e:for(;++t1?i.setNode(s,r):i.setNode(s)}),this}setNode(n,r){return E(this._nodes,n)?(arguments.length>1&&(this._nodes[n]=r),this):(this._nodes[n]=arguments.length>1?r:this._defaultNodeLabelFn(n),this._isCompound&&(this._parent[n]=w,this._children[n]={},this._children[w][n]=!0),this._in[n]={},this._preds[n]={},this._out[n]={},this._sucs[n]={},++this._nodeCount,this)}node(n){return this._nodes[n]}hasNode(n){return E(this._nodes,n)}removeNode(n){var r=this;if(E(this._nodes,n)){var t=function(i){r.removeEdge(r._edgeObjs[i])};delete this._nodes[n],this._isCompound&&(this._removeFromParentsChildList(n),delete this._parent[n],v(this.children(n),function(i){r.setParent(i)}),delete this._children[n]),v(T(this._in[n]),t),delete this._in[n],delete this._preds[n],v(T(this._out[n]),t),delete this._out[n],delete this._sucs[n],--this._nodeCount}return this}setParent(n,r){if(!this._isCompound)throw new Error("Cannot set parent in a non-compound graph");if($(r))r=w;else{r+="";for(var t=r;!$(t);t=this.parent(t))if(t===n)throw new Error("Setting "+r+" as parent of "+n+" would create a cycle");this.setNode(r)}return this.setNode(n),this._removeFromParentsChildList(n),this._parent[n]=r,this._children[r][n]=!0,this}_removeFromParentsChildList(n){delete this._children[this._parent[n]][n]}parent(n){if(this._isCompound){var r=this._parent[n];if(r!==w)return r}}children(n){if($(n)&&(n=w),this._isCompound){var r=this._children[n];if(r)return T(r)}else{if(n===w)return this.nodes();if(this.hasNode(n))return[]}}predecessors(n){var r=this._preds[n];if(r)return T(r)}successors(n){var r=this._sucs[n];if(r)return T(r)}neighbors(n){var r=this.predecessors(n);if(r)return Zt(r,this.successors(n))}isLeaf(n){var r;return this.isDirected()?r=this.successors(n):r=this.neighbors(n),r.length===0}filterNodes(n){var r=new this.constructor({directed:this._isDirected,multigraph:this._isMultigraph,compound:this._isCompound});r.setGraph(this.graph());var t=this;v(this._nodes,function(a,u){n(u)&&r.setNode(u,a)}),v(this._edgeObjs,function(a){r.hasNode(a.v)&&r.hasNode(a.w)&&r.setEdge(a,t.edge(a))});var i={};function s(a){var u=t.parent(a);return u===void 0||r.hasNode(u)?(i[a]=u,u):u in i?i[u]:s(u)}return this._isCompound&&v(r.nodes(),function(a){r.setParent(a,s(a))}),r}setDefaultEdgeLabel(n){return te(n)||(n=M(n)),this._defaultEdgeLabelFn=n,this}edgeCount(){return this._edgeCount}edges(){return H(this._edgeObjs)}setPath(n,r){var t=this,i=arguments;return jt(n,function(s,a){return i.length>1?t.setEdge(s,a,r):t.setEdge(s,a),a}),this}setEdge(){var n,r,t,i,s=!1,a=arguments[0];typeof a=="object"&&a!==null&&"v"in a?(n=a.v,r=a.w,t=a.name,arguments.length===2&&(i=arguments[1],s=!0)):(n=a,r=arguments[1],t=arguments[3],arguments.length>2&&(i=arguments[2],s=!0)),n=""+n,r=""+r,$(t)||(t=""+t);var u=L(this._isDirected,n,r,t);if(E(this._edgeLabels,u))return s&&(this._edgeLabels[u]=i),this;if(!$(t)&&!this._isMultigraph)throw new Error("Cannot set a named edge when isMultigraph = false");this.setNode(n),this.setNode(r),this._edgeLabels[u]=s?i:this._defaultEdgeLabelFn(n,r,t);var f=Xt(this._isDirected,n,r,t);return n=f.v,r=f.w,Object.freeze(f),this._edgeObjs[u]=f,ye(this._preds[r],n),ye(this._sucs[n],r),this._in[r][u]=f,this._out[n][u]=f,this._edgeCount++,this}edge(n,r,t){var i=arguments.length===1?Y(this._isDirected,arguments[0]):L(this._isDirected,n,r,t);return this._edgeLabels[i]}hasEdge(n,r,t){var i=arguments.length===1?Y(this._isDirected,arguments[0]):L(this._isDirected,n,r,t);return E(this._edgeLabels,i)}removeEdge(n,r,t){var i=arguments.length===1?Y(this._isDirected,arguments[0]):L(this._isDirected,n,r,t),s=this._edgeObjs[i];return s&&(n=s.v,r=s.w,delete this._edgeLabels[i],delete this._edgeObjs[i],Ae(this._preds[r],n),Ae(this._sucs[n],r),delete this._in[r][i],delete this._out[n][i],this._edgeCount--),this}inEdges(n,r){var t=this._in[n];if(t){var i=H(t);return r?D(i,function(s){return s.v===r}):i}}outEdges(n,r){var t=this._out[n];if(t){var i=H(t);return r?D(i,function(s){return s.w===r}):i}}nodeEdges(n,r){var t=this.inEdges(n,r);if(t)return t.concat(this.outEdges(n,r))}}Ye.prototype._nodeCount=0;Ye.prototype._edgeCount=0;function ye(e,n){e[n]?e[n]++:e[n]=1}function Ae(e,n){--e[n]||delete e[n]}function L(e,n,r,t){var i=""+n,s=""+r;if(!e&&i>s){var a=i;i=s,s=a}return i+be+s+be+($(t)?qt:t)}function Xt(e,n,r,t){var i=""+n,s=""+r;if(!e&&i>s){var a=i;i=s,s=a}var u={v:i,w:s};return t&&(u.name=t),u}function Y(e,n){return L(e,n.v,n.w,n.name)}export{Ye as G,B as a,In as b,He as c,ln as d,ee as e,v as f,$e as g,E as h,J as i,Ft as j,T as k,St as l,Ie as m,Ce as n,vt as o,wn as p,$ as q,D as r,jt as s,U as t,H as v}; diff --git a/assets/imprint.page-B1y0VG2M.js b/assets/imprint.page-B1y0VG2M.js new file mode 100644 index 00000000..17736d43 --- /dev/null +++ b/assets/imprint.page-B1y0VG2M.js @@ -0,0 +1,8 @@ +import{ɵ as l,a as n,b as e,d as r,e as i}from"./index-Be9IN4QR.js";const t=class t{};t.ɵfac=function(s){return new(s||t)},t.ɵcmp=l({type:t,selectors:[["ng-component"]],decls:46,vars:0,consts:[[1,"wrapper","alt"],[1,"inner"],[1,"major"],[1,"contact","small"],[1,"icon","solid","fa-user-tie"],[1,"icon","solid","fa-home"],[1,"icon","solid","fa-envelope"],["href","mailto:mail@k9n.dev"],[1,"icon","solid","fa-phone"],["href","tel:+4915129134704"]],template:function(s,u){s&1&&(n(0,"section",0)(1,"div",1)(2,"h2",2),e(3,"Imprint"),r(),n(4,"h3"),e(5,"Angaben gemäß § 5 TMG"),r(),n(6,"h4"),e(7,"Vertreten durch"),r(),n(8,"ul",3)(9,"li",4),e(10,"Danny Koppenhagen"),r(),n(11,"li",5)(12,"address"),e(13," Birkenwerderstraße 30A"),i(14,"br"),e(15," 13439 Berlin"),i(16,"br"),e(17," Germany "),r()(),n(18,"li",6)(19,"a",7),e(20,"mail@k9n.dev"),r()(),n(21,"li",8)(22,"a",9),e(23,"+49 (0)151 29134704"),r()()(),n(24,"h3"),e(25,"Haftungsausschluss:"),r(),n(26,"h4"),e(27,"Haftung für Links"),r(),n(28,"p"),e(29," Unser Angebot enthält Links zu externen Webseiten Dritter, auf deren Inhalte wir keinen Einfluss haben. Deshalb können wir für diese fremden Inhalte auch keine Gewähr übernehmen. Für die Inhalte der verlinkten Seiten ist stets der jeweilige Anbieter oder Betreiber der Seiten verantwortlich. Die verlinkten Seiten wurden zum Zeitpunkt der Verlinkung auf mögliche Rechtsverstöße überprüft. Rechtswidrige Inhalte waren zum Zeitpunkt der Verlinkung nicht erkennbar. Eine permanente inhaltliche Kontrolle der verlinkten Seiten ist jedoch ohne konkrete Anhaltspunkte einer Rechtsverletzung nicht zumutbar. Bei Bekanntwerden von Rechtsverletzungen werden wir derartige Links umgehend entfernen. "),r(),n(30,"h4"),e(31,"Urheberrecht"),r(),n(32,"p"),e(33," Die durch die Seitenbetreiber erstellten Inhalte und Werke auf diesen Seiten unterliegen dem deutschen Urheberrecht. Die Vervielfältigung, Bearbeitung, Verbreitung und jede Art der Verwertung außerhalb der Grenzen des Urheberrechtes bedürfen der schriftlichen Zustimmung des jeweiligen Autors bzw. Erstellers. Downloads und Kopien dieser Seite sind nur für den privaten, nicht kommerziellen Gebrauch gestattet. Soweit die Inhalte auf dieser Seite nicht vom Betreiber erstellt wurden, werden die Urheberrechte Dritter beachtet. Insbesondere werden Inhalte Dritter als solche gekennzeichnet. Sollten Sie trotzdem auf eine Urheberrechtsverletzung aufmerksam werden, bitten wir um einen entsprechenden Hinweis. Bei Bekanntwerden von Rechtsverletzungen werden wir derartige Inhalte umgehend entfernen. "),r(),n(34,"h4"),e(35,"Datenschutz"),r(),n(36,"p"),e(37," Die Nutzung unserer Webseite ist in der Regel ohne Angabe personenbezogener Daten möglich. Soweit auf unseren Seiten personenbezogene Daten (beispielsweise Name, Anschrift oder eMail-Adressen) erhoben werden, erfolgt dies, soweit möglich, stets auf freiwilliger Basis. Diese Daten werden ohne Ihre ausdrückliche Zustimmung nicht an Dritte weitergegeben. "),i(38,"br"),e(39," Wir weisen darauf hin, dass die Datenübertragung im Internet (z.B. bei der Kommunikation per E-Mail) Sicherheitslücken aufweisen kann. Ein lückenloser Schutz der Daten vor dem Zugriff durch Dritte ist nicht möglich. "),i(40,"br"),e(41," Der Nutzung von im Rahmen der Imprintspflicht veröffentlichten Kontaktdaten durch Dritte zur Übersendung von nicht ausdrücklich angeforderter Werbung und Informationsmaterialien wird hiermit ausdrücklich widersprochen. Die Betreiber der Seiten behalten sich ausdrücklich rechtliche Schritte im Falle der unverlangten Zusendung von Werbeinformationen, etwa durch Spam-Mails, vor. "),r(),n(42,"h4"),e(43,"Google Analytics"),r(),n(44,"p"),e(45," Diese Website benutzt Google Analytics, einen Webanalysedienst der Google Inc. (''Google''). Google Analytics verwendet sog. ''Cookies'', Textdateien, die auf Ihrem Computer gespeichert werden und die eine Analyse der Benutzung der Website durch Sie ermöglicht. Die durch den Cookie erzeugten Informationen über Ihre Benutzung dieser Website (einschließlich Ihrer IP-Adresse) wird an einen Server von Google in den USA übertragen und dort gespeichert. Google wird diese Informationen benutzen, um Ihre Nutzung der Website auszuwerten, um Reports über die Websiteaktivitäten für die Websitebetreiber zusammenzustellen und um weitere mit der Websitenutzung und der Internetnutzung verbundene Dienstleistungen zu erbringen. Auch wird Google diese Informationen gegebenenfalls an Dritte übertragen, sofern dies gesetzlich vorgeschrieben oder soweit Dritte diese Daten im Auftrag von Google verarbeiten. Google wird in keinem Fall Ihre IP-Adresse mit anderen Daten der Google in Verbindung bringen. Sie können die Installation der Cookies durch eine entsprechende Einstellung Ihrer Browser Software verhindern; wir weisen Sie jedoch darauf hin, dass Sie in diesem Fall gegebenenfalls nicht sämtliche Funktionen dieser Website voll umfänglich nutzen können. Durch die Nutzung dieser Website erklären Sie sich mit der Bearbeitung der über Sie erhobenen Daten durch Google in der zuvor beschriebenen Art und Weise und zu dem zuvor benannten Zweck einverstanden. "),r()()())},styles:[`.wrapper[_ngcontent-%COMP%] { + margin-top: 0; + } + .small[_ngcontent-%COMP%] { + > li { + margin-top: 1em; + } + }`]});let a=t;export{a as default}; diff --git a/assets/index-3862675e-BNucB7R-.js b/assets/index-3862675e-BNucB7R-.js new file mode 100644 index 00000000..2f498423 --- /dev/null +++ b/assets/index-3862675e-BNucB7R-.js @@ -0,0 +1 @@ +import{q as N,G as A}from"./graph-Es7S6dYR.js";import{m as $,l as q}from"./layout-Cjy8fVPY.js";import{c as H}from"./clone-WSVs8Prh.js";import{i as V,u as U,s as W,a as _,b as z,g as D,p as O,c as K,d as Q,e as Y,f as Z,h as J,j as p}from"./edges-e0da2a9e-CFrRRtuw.js";import{l as s,c as T,q as S,h as L}from"./mermaid.core-B_tqKmhs.js";import{c as I}from"./createText-2e5e7dd3-CtNqJc9Q.js";function m(e){var t={options:{directed:e.isDirected(),multigraph:e.isMultigraph(),compound:e.isCompound()},nodes:tt(e),edges:et(e)};return N(e.graph())||(t.value=H(e.graph())),t}function tt(e){return $(e.nodes(),function(t){var n=e.node(t),r=e.parent(t),i={v:t};return N(n)||(i.value=n),N(r)||(i.parent=r),i})}function et(e){return $(e.edges(),function(t){var n=e.edge(t),r={v:t.v,w:t.w};return N(t.name)||(r.name=t.name),N(n)||(r.value=n),r})}let l={},g={},R={};const nt=()=>{g={},R={},l={}},B=(e,t)=>(s.trace("In isDescendant",t," ",e," = ",g[t].includes(e)),!!g[t].includes(e)),it=(e,t)=>(s.info("Descendants of ",t," is ",g[t]),s.info("Edge is ",e),e.v===t||e.w===t?!1:g[t]?g[t].includes(e.v)||B(e.v,t)||B(e.w,t)||g[t].includes(e.w):(s.debug("Tilt, ",t,",not in descendants"),!1)),P=(e,t,n,r)=>{s.warn("Copying children of ",e,"root",r,"data",t.node(e),r);const i=t.children(e)||[];e!==r&&i.push(e),s.warn("Copying (nodes) clusterId",e,"nodes",i),i.forEach(a=>{if(t.children(a).length>0)P(a,t,n,r);else{const d=t.node(a);s.info("cp ",a," to ",r," with parent ",e),n.setNode(a,d),r!==t.parent(a)&&(s.warn("Setting parent",a,t.parent(a)),n.setParent(a,t.parent(a))),e!==r&&a!==e?(s.debug("Setting parent",a,e),n.setParent(a,e)):(s.info("In copy ",e,"root",r,"data",t.node(e),r),s.debug("Not Setting parent for node=",a,"cluster!==rootId",e!==r,"node!==clusterId",a!==e));const u=t.edges(a);s.debug("Copying Edges",u),u.forEach(f=>{s.info("Edge",f);const h=t.edge(f.v,f.w,f.name);s.info("Edge data",h,r);try{it(f,r)?(s.info("Copying as ",f.v,f.w,h,f.name),n.setEdge(f.v,f.w,h,f.name),s.info("newGraph edges ",n.edges(),n.edge(n.edges()[0]))):s.info("Skipping copy of edge ",f.v,"-->",f.w," rootId: ",r," clusterId:",e)}catch(w){s.error(w)}})}s.debug("Removing node",a),t.removeNode(a)})},k=(e,t)=>{const n=t.children(e);let r=[...n];for(const i of n)R[i]=e,r=[...r,...k(i,t)];return r},C=(e,t)=>{s.trace("Searching",e);const n=t.children(e);if(s.trace("Searching children of id ",e,n),n.length<1)return s.trace("This is a valid node",e),e;for(const r of n){const i=C(r,t);if(i)return s.trace("Found replacement for",e," => ",i),i}},X=e=>!l[e]||!l[e].externalConnections?e:l[e]?l[e].id:e,st=(e,t)=>{if(!e||t>10){s.debug("Opting out, no graph ");return}else s.debug("Opting in, graph ");e.nodes().forEach(function(n){e.children(n).length>0&&(s.warn("Cluster identified",n," Replacement id in edges: ",C(n,e)),g[n]=k(n,e),l[n]={id:C(n,e),clusterData:e.node(n)})}),e.nodes().forEach(function(n){const r=e.children(n),i=e.edges();r.length>0?(s.debug("Cluster identified",n,g),i.forEach(a=>{if(a.v!==n&&a.w!==n){const d=B(a.v,n),u=B(a.w,n);d^u&&(s.warn("Edge: ",a," leaves cluster ",n),s.warn("Descendants of XXX ",n,": ",g[n]),l[n].externalConnections=!0)}})):s.debug("Not a cluster ",n,g)});for(let n of Object.keys(l)){const r=l[n].id,i=e.parent(r);i!==n&&l[i]&&!l[i].externalConnections&&(l[n].id=i)}e.edges().forEach(function(n){const r=e.edge(n);s.warn("Edge "+n.v+" -> "+n.w+": "+JSON.stringify(n)),s.warn("Edge "+n.v+" -> "+n.w+": "+JSON.stringify(e.edge(n)));let i=n.v,a=n.w;if(s.warn("Fix XXX",l,"ids:",n.v,n.w,"Translating: ",l[n.v]," --- ",l[n.w]),l[n.v]&&l[n.w]&&l[n.v]===l[n.w]){s.warn("Fixing and trixing link to self - removing XXX",n.v,n.w,n.name),s.warn("Fixing and trixing - removing XXX",n.v,n.w,n.name),i=X(n.v),a=X(n.w),e.removeEdge(n.v,n.w,n.name);const d=n.w+"---"+n.v;e.setNode(d,{domId:d,id:d,labelStyle:"",labelText:r.label,padding:0,shape:"labelRect",style:""});const u=structuredClone(r),f=structuredClone(r);u.label="",u.arrowTypeEnd="none",f.label="",u.fromCluster=n.v,f.toCluster=n.v,e.setEdge(i,d,u,n.name+"-cyclic-special"),e.setEdge(d,a,f,n.name+"-cyclic-special")}else if(l[n.v]||l[n.w]){if(s.warn("Fixing and trixing - removing XXX",n.v,n.w,n.name),i=X(n.v),a=X(n.w),e.removeEdge(n.v,n.w,n.name),i!==n.v){const d=e.parent(i);l[d].externalConnections=!0,r.fromCluster=n.v}if(a!==n.w){const d=e.parent(a);l[d].externalConnections=!0,r.toCluster=n.w}s.warn("Fix Replacing with XXX",i,a,n.name),e.setEdge(i,a,r,n.name)}}),s.warn("Adjusted Graph",m(e)),F(e,0),s.trace(l)},F=(e,t)=>{if(s.warn("extractor - ",t,m(e),e.children("D")),t>10){s.error("Bailing out");return}let n=e.nodes(),r=!1;for(const i of n){const a=e.children(i);r=r||a.length>0}if(!r){s.debug("Done, no node has children",e.nodes());return}s.debug("Nodes = ",n,t);for(const i of n)if(s.debug("Extracting node",i,l,l[i]&&!l[i].externalConnections,!e.parent(i),e.node(i),e.children("D")," Depth ",t),!l[i])s.debug("Not a cluster",i,t);else if(!l[i].externalConnections&&e.children(i)&&e.children(i).length>0){s.warn("Cluster without external connections, without a parent and with children",i,t);let d=e.graph().rankdir==="TB"?"LR":"TB";l[i]&&l[i].clusterData&&l[i].clusterData.dir&&(d=l[i].clusterData.dir,s.warn("Fixing dir",l[i].clusterData.dir,d));const u=new A({multigraph:!0,compound:!0}).setGraph({rankdir:d,nodesep:50,ranksep:50,marginx:8,marginy:8}).setDefaultEdgeLabel(function(){return{}});s.warn("Old graph before copy",m(e)),P(i,e,u,i),e.setNode(i,{clusterNode:!0,id:i,clusterData:l[i].clusterData,labelText:l[i].labelText,graph:u}),s.warn("New graph after copy node: (",i,")",m(u)),s.debug("Old graph after copy",m(e))}else s.warn("Cluster ** ",i," **not meeting the criteria !externalConnections:",!l[i].externalConnections," no parent: ",!e.parent(i)," children ",e.children(i)&&e.children(i).length>0,e.children("D"),t),s.debug(l);n=e.nodes(),s.warn("New list of nodes",n);for(const i of n){const a=e.node(i);s.warn(" Now next level",i,a),a.clusterNode&&F(a.graph,t+1)}},G=(e,t)=>{if(t.length===0)return[];let n=Object.assign(t);return t.forEach(r=>{const i=e.children(r),a=G(e,i);n=[...n,...a]}),n},rt=e=>G(e,e.children()),at=(e,t)=>{s.info("Creating subgraph rect for ",t.id,t);const n=T(),r=e.insert("g").attr("class","cluster"+(t.class?" "+t.class:"")).attr("id",t.id),i=r.insert("rect",":first-child"),a=S(n.flowchart.htmlLabels),d=r.insert("g").attr("class","cluster-label"),u=t.labelType==="markdown"?I(d,t.labelText,{style:t.labelStyle,useHtmlLabels:a}):d.node().appendChild(J(t.labelText,t.labelStyle,void 0,!0));let f=u.getBBox();if(S(n.flowchart.htmlLabels)){const c=u.children[0],o=L(u);f=c.getBoundingClientRect(),o.attr("width",f.width),o.attr("height",f.height)}const h=0*t.padding,w=h/2,x=t.width<=f.width+h?f.width+h:t.width;t.width<=f.width+h?t.diff=(f.width-t.width)/2-t.padding/2:t.diff=-t.padding/2,s.trace("Data ",t,JSON.stringify(t)),i.attr("style",t.style).attr("rx",t.rx).attr("ry",t.ry).attr("x",t.x-x/2).attr("y",t.y-t.height/2-w).attr("width",x).attr("height",t.height+h);const{subGraphTitleTopMargin:v}=D(n);a?d.attr("transform",`translate(${t.x-f.width/2}, ${t.y-t.height/2+v})`):d.attr("transform",`translate(${t.x}, ${t.y-t.height/2+v})`);const y=i.node().getBBox();return t.width=y.width,t.height=y.height,t.intersect=function(c){return p(t,c)},r},ct=(e,t)=>{const n=e.insert("g").attr("class","note-cluster").attr("id",t.id),r=n.insert("rect",":first-child"),i=0*t.padding,a=i/2;r.attr("rx",t.rx).attr("ry",t.ry).attr("x",t.x-t.width/2-a).attr("y",t.y-t.height/2-a).attr("width",t.width+i).attr("height",t.height+i).attr("fill","none");const d=r.node().getBBox();return t.width=d.width,t.height=d.height,t.intersect=function(u){return p(t,u)},n},ot=(e,t)=>{const n=T(),r=e.insert("g").attr("class",t.classes).attr("id",t.id),i=r.insert("rect",":first-child"),a=r.insert("g").attr("class","cluster-label"),d=r.append("rect"),u=a.node().appendChild(J(t.labelText,t.labelStyle,void 0,!0));let f=u.getBBox();if(S(n.flowchart.htmlLabels)){const c=u.children[0],o=L(u);f=c.getBoundingClientRect(),o.attr("width",f.width),o.attr("height",f.height)}f=u.getBBox();const h=0*t.padding,w=h/2,x=t.width<=f.width+t.padding?f.width+t.padding:t.width;t.width<=f.width+t.padding?t.diff=(f.width+t.padding*0-t.width)/2:t.diff=-t.padding/2,i.attr("class","outer").attr("x",t.x-x/2-w).attr("y",t.y-t.height/2-w).attr("width",x+h).attr("height",t.height+h),d.attr("class","inner").attr("x",t.x-x/2-w).attr("y",t.y-t.height/2-w+f.height-1).attr("width",x+h).attr("height",t.height+h-f.height-3);const{subGraphTitleTopMargin:v}=D(n);a.attr("transform",`translate(${t.x-f.width/2}, ${t.y-t.height/2-t.padding/3+(S(n.flowchart.htmlLabels)?5:3)+v})`);const y=i.node().getBBox();return t.height=y.height,t.intersect=function(c){return p(t,c)},r},lt=(e,t)=>{const n=e.insert("g").attr("class",t.classes).attr("id",t.id),r=n.insert("rect",":first-child"),i=0*t.padding,a=i/2;r.attr("class","divider").attr("x",t.x-t.width/2-a).attr("y",t.y-t.height/2).attr("width",t.width+i).attr("height",t.height+i);const d=r.node().getBBox();return t.width=d.width,t.height=d.height,t.diff=-t.padding/2,t.intersect=function(u){return p(t,u)},n},ft={rect:at,roundedWithTitle:ot,noteGroup:ct,divider:lt};let j={};const dt=(e,t)=>{s.trace("Inserting cluster");const n=t.shape||"rect";j[t.id]=ft[n](e,t)},ut=()=>{j={}},M=async(e,t,n,r,i,a)=>{s.info("Graph in recursive render: XXX",m(t),i);const d=t.graph().rankdir;s.trace("Dir in recursive render - dir:",d);const u=e.insert("g").attr("class","root");t.nodes()?s.info("Recursive render XXX",t.nodes()):s.info("No nodes found for",t),t.edges().length>0&&s.trace("Recursive edges",t.edge(t.edges()[0]));const f=u.insert("g").attr("class","clusters"),h=u.insert("g").attr("class","edgePaths"),w=u.insert("g").attr("class","edgeLabels"),x=u.insert("g").attr("class","nodes");await Promise.all(t.nodes().map(async function(c){const o=t.node(c);if(i!==void 0){const b=JSON.parse(JSON.stringify(i.clusterData));s.info("Setting data for cluster XXX (",c,") ",b,i),t.setNode(i.id,b),t.parent(c)||(s.trace("Setting parent",c,i.id),t.setParent(c,i.id,b))}if(s.info("(Insert) Node XXX"+c+": "+JSON.stringify(t.node(c))),o&&o.clusterNode){s.info("Cluster identified",c,o.width,t.node(c));const b=await M(x,o.graph,n,r,t.node(c),a),E=b.elem;U(o,E),o.diff=b.diff||0,s.info("Node bounds (abc123)",c,o,o.width,o.x,o.y),W(E,o),s.warn("Recursive render complete ",E,o)}else t.children(c).length>0?(s.info("Cluster - the non recursive path XXX",c,o.id,o,t),s.info(C(o.id,t)),l[o.id]={id:C(o.id,t),node:o}):(s.info("Node - the non recursive path",c,o.id,o),await _(x,t.node(c),d))})),t.edges().forEach(function(c){const o=t.edge(c.v,c.w,c.name);s.info("Edge "+c.v+" -> "+c.w+": "+JSON.stringify(c)),s.info("Edge "+c.v+" -> "+c.w+": ",c," ",JSON.stringify(t.edge(c))),s.info("Fix",l,"ids:",c.v,c.w,"Translating: ",l[c.v],l[c.w]),z(w,o)}),t.edges().forEach(function(c){s.info("Edge "+c.v+" -> "+c.w+": "+JSON.stringify(c))}),s.info("#############################################"),s.info("### Layout ###"),s.info("#############################################"),s.info(t),q(t),s.info("Graph after layout:",m(t));let v=0;const{subGraphTitleTotalMargin:y}=D(a);return rt(t).forEach(function(c){const o=t.node(c);s.info("Position "+c+": "+JSON.stringify(t.node(c))),s.info("Position "+c+": ("+o.x,","+o.y,") width: ",o.width," height: ",o.height),o&&o.clusterNode?(o.y+=y,O(o)):t.children(c).length>0?(o.height+=y,dt(f,o),l[o.id].node=o):(o.y+=y/2,O(o))}),t.edges().forEach(function(c){const o=t.edge(c);s.info("Edge "+c.v+" -> "+c.w+": "+JSON.stringify(o),o),o.points.forEach(E=>E.y+=y/2);const b=K(h,c,o,l,n,t,r);Q(o,b)}),t.nodes().forEach(function(c){const o=t.node(c);s.info(c,o.type,o.diff),o.type==="group"&&(v=o.diff)}),{elem:u,diff:v}},bt=async(e,t,n,r,i)=>{V(e,n,r,i),Y(),Z(),ut(),nt(),s.warn("Graph at first:",JSON.stringify(m(t))),st(t),s.warn("Graph after:",JSON.stringify(m(t)));const a=T();await M(e,t,r,i,void 0,a)};export{bt as r}; diff --git a/assets/index-Be9IN4QR.js b/assets/index-Be9IN4QR.js new file mode 100644 index 00000000..d2d1209e --- /dev/null +++ b/assets/index-Be9IN4QR.js @@ -0,0 +1,903 @@ +const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/index.page-DWrTCYB7.js","assets/preview.component-4NcaEiV0.js","assets/_slug_.page-D8Ukg_aG.js","assets/sticky-navigation.component-CKipR5YJ.js","assets/meta.service-T2YaP4d8.js","assets/index.page-D_NMszXq.js","assets/_slug_.page-BDKwNsE7.js","assets/index.page-DQrjxOhH.js","assets/_slug_.page-RrGMKIoL.js","assets/index.page-CuA7a2QU.js"])))=>i.map(i=>d[i]); +var vk=Object.defineProperty;var $g=t=>{throw TypeError(t)};var bk=(t,e,n)=>e in t?vk(t,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[e]=n;var l=(t,e,n)=>bk(t,typeof e!="symbol"?e+"":e,n),Wg=(t,e,n)=>e.has(t)||$g("Cannot "+n);var Ks=(t,e,n)=>(Wg(t,e,"read from private field"),n?n.call(t):e.get(t)),Sa=(t,e,n)=>e.has(t)?$g("Cannot add the same private member more than once"):e instanceof WeakSet?e.add(t):e.set(t,n);var Ta=(t,e,n)=>(Wg(t,e,"access private method"),n);(function(){const e=document.createElement("link").relList;if(e&&e.supports&&e.supports("modulepreload"))return;for(const r of document.querySelectorAll('link[rel="modulepreload"]'))i(r);new MutationObserver(r=>{for(const s of r)if(s.type==="childList")for(const o of s.addedNodes)o.tagName==="LINK"&&o.rel==="modulepreload"&&i(o)}).observe(document,{childList:!0,subtree:!0});function n(r){const s={};return r.integrity&&(s.integrity=r.integrity),r.referrerPolicy&&(s.referrerPolicy=r.referrerPolicy),r.crossOrigin==="use-credentials"?s.credentials="include":r.crossOrigin==="anonymous"?s.credentials="omit":s.credentials="same-origin",s}function i(r){if(r.ep)return;r.ep=!0;const s=n(r);fetch(r.href,s)}})();/** + * @license Angular v + * (c) 2010-2024 Google LLC. https://angular.io/ + * License: MIT + */const wn=globalThis;function Wt(t){return(wn.__Zone_symbol_prefix||"__zone_symbol__")+t}function Ek(){const t=wn.performance;function e(D){t&&t.mark&&t.mark(D)}function n(D,A){t&&t.measure&&t.measure(D,A)}e("Zone");let i=(()=>{const v=class v{static assertZonePatched(){if(wn.Promise!==ee.ZoneAwarePromise)throw new Error("Zone.js has detected that ZoneAwarePromise `(window|global).Promise` has been overwritten.\nMost likely cause is that a Promise polyfill has been loaded after Zone.js (Polyfilling Promise api is not necessary when zone.js is loaded. If you must load one, do so before loading zone.js.)")}static get root(){let T=v.current;for(;T.parent;)T=T.parent;return T}static get current(){return $.zone}static get currentTask(){return ne}static __load_patch(T,H,Q=!1){if(ee.hasOwnProperty(T)){const z=wn[Wt("forceDuplicateZoneCheck")]===!0;if(!Q&&z)throw Error("Already loaded patch: "+T)}else if(!wn["__Zone_disable_"+T]){const z="Zone:"+T;e(z),ee[T]=H(wn,v,te),n(z,z)}}get parent(){return this._parent}get name(){return this._name}constructor(T,H){this._parent=T,this._name=H?H.name||"unnamed":"",this._properties=H&&H.properties||{},this._zoneDelegate=new s(this,this._parent&&this._parent._zoneDelegate,H)}get(T){const H=this.getZoneWith(T);if(H)return H._properties[T]}getZoneWith(T){let H=this;for(;H;){if(H._properties.hasOwnProperty(T))return H;H=H._parent}return null}fork(T){if(!T)throw new Error("ZoneSpec required!");return this._zoneDelegate.fork(this,T)}wrap(T,H){if(typeof T!="function")throw new Error("Expecting function got: "+T);const Q=this._zoneDelegate.intercept(this,T,H),z=this;return function(){return z.runGuarded(Q,this,arguments,H)}}run(T,H,Q,z){$={parent:$,zone:this};try{return this._zoneDelegate.invoke(this,T,H,Q,z)}finally{$=$.parent}}runGuarded(T,H=null,Q,z){$={parent:$,zone:this};try{try{return this._zoneDelegate.invoke(this,T,H,Q,z)}catch(he){if(this._zoneDelegate.handleError(this,he))throw he}}finally{$=$.parent}}runTask(T,H,Q){if(T.zone!=this)throw new Error("A task can only be run in the zone of creation! (Creation: "+(T.zone||_).name+"; Execution: "+this.name+")");const z=T,{type:he,data:{isPeriodic:tn=!1,isRefreshable:xt=!1}={}}=T;if(T.state===S&&(he===de||he===P))return;const je=T.state!=N;je&&z._transitionTo(N,E);const R=ne;ne=z,$={parent:$,zone:this};try{he==P&&T.data&&!tn&&!xt&&(T.cancelFn=void 0);try{return this._zoneDelegate.invokeTask(this,z,H,Q)}catch(k){if(this._zoneDelegate.handleError(this,k))throw k}}finally{const k=T.state;if(k!==S&&k!==Y)if(he==de||tn||xt&&k===C)je&&z._transitionTo(E,N,C);else{const b=z._zoneDelegates;this._updateTaskCount(z,-1),je&&z._transitionTo(S,N,S),xt&&(z._zoneDelegates=b)}$=$.parent,ne=R}}scheduleTask(T){if(T.zone&&T.zone!==this){let Q=this;for(;Q;){if(Q===T.zone)throw Error(`can not reschedule task to ${this.name} which is descendants of the original zone ${T.zone.name}`);Q=Q.parent}}T._transitionTo(C,S);const H=[];T._zoneDelegates=H,T._zone=this;try{T=this._zoneDelegate.scheduleTask(this,T)}catch(Q){throw T._transitionTo(Y,C,S),this._zoneDelegate.handleError(this,Q),Q}return T._zoneDelegates===H&&this._updateTaskCount(T,1),T.state==C&&T._transitionTo(E,C),T}scheduleMicroTask(T,H,Q,z){return this.scheduleTask(new o(U,T,H,Q,z,void 0))}scheduleMacroTask(T,H,Q,z,he){return this.scheduleTask(new o(P,T,H,Q,z,he))}scheduleEventTask(T,H,Q,z,he){return this.scheduleTask(new o(de,T,H,Q,z,he))}cancelTask(T){if(T.zone!=this)throw new Error("A task can only be cancelled in the zone of creation! (Creation: "+(T.zone||_).name+"; Execution: "+this.name+")");if(!(T.state!==E&&T.state!==N)){T._transitionTo(L,E,N);try{this._zoneDelegate.cancelTask(this,T)}catch(H){throw T._transitionTo(Y,L),this._zoneDelegate.handleError(this,H),H}return this._updateTaskCount(T,-1),T._transitionTo(S,L),T.runCount=-1,T}}_updateTaskCount(T,H){const Q=T._zoneDelegates;H==-1&&(T._zoneDelegates=null);for(let z=0;zD.hasTask(v,w),onScheduleTask:(D,A,v,w)=>D.scheduleTask(v,w),onInvokeTask:(D,A,v,w,T,H)=>D.invokeTask(v,w,T,H),onCancelTask:(D,A,v,w)=>D.cancelTask(v,w)};class s{get zone(){return this._zone}constructor(A,v,w){this._taskCounts={microTask:0,macroTask:0,eventTask:0},this._zone=A,this._parentDelegate=v,this._forkZS=w&&(w&&w.onFork?w:v._forkZS),this._forkDlgt=w&&(w.onFork?v:v._forkDlgt),this._forkCurrZone=w&&(w.onFork?this._zone:v._forkCurrZone),this._interceptZS=w&&(w.onIntercept?w:v._interceptZS),this._interceptDlgt=w&&(w.onIntercept?v:v._interceptDlgt),this._interceptCurrZone=w&&(w.onIntercept?this._zone:v._interceptCurrZone),this._invokeZS=w&&(w.onInvoke?w:v._invokeZS),this._invokeDlgt=w&&(w.onInvoke?v:v._invokeDlgt),this._invokeCurrZone=w&&(w.onInvoke?this._zone:v._invokeCurrZone),this._handleErrorZS=w&&(w.onHandleError?w:v._handleErrorZS),this._handleErrorDlgt=w&&(w.onHandleError?v:v._handleErrorDlgt),this._handleErrorCurrZone=w&&(w.onHandleError?this._zone:v._handleErrorCurrZone),this._scheduleTaskZS=w&&(w.onScheduleTask?w:v._scheduleTaskZS),this._scheduleTaskDlgt=w&&(w.onScheduleTask?v:v._scheduleTaskDlgt),this._scheduleTaskCurrZone=w&&(w.onScheduleTask?this._zone:v._scheduleTaskCurrZone),this._invokeTaskZS=w&&(w.onInvokeTask?w:v._invokeTaskZS),this._invokeTaskDlgt=w&&(w.onInvokeTask?v:v._invokeTaskDlgt),this._invokeTaskCurrZone=w&&(w.onInvokeTask?this._zone:v._invokeTaskCurrZone),this._cancelTaskZS=w&&(w.onCancelTask?w:v._cancelTaskZS),this._cancelTaskDlgt=w&&(w.onCancelTask?v:v._cancelTaskDlgt),this._cancelTaskCurrZone=w&&(w.onCancelTask?this._zone:v._cancelTaskCurrZone),this._hasTaskZS=null,this._hasTaskDlgt=null,this._hasTaskDlgtOwner=null,this._hasTaskCurrZone=null;const T=w&&w.onHasTask,H=v&&v._hasTaskZS;(T||H)&&(this._hasTaskZS=T?w:r,this._hasTaskDlgt=v,this._hasTaskDlgtOwner=this,this._hasTaskCurrZone=this._zone,w.onScheduleTask||(this._scheduleTaskZS=r,this._scheduleTaskDlgt=v,this._scheduleTaskCurrZone=this._zone),w.onInvokeTask||(this._invokeTaskZS=r,this._invokeTaskDlgt=v,this._invokeTaskCurrZone=this._zone),w.onCancelTask||(this._cancelTaskZS=r,this._cancelTaskDlgt=v,this._cancelTaskCurrZone=this._zone))}fork(A,v){return this._forkZS?this._forkZS.onFork(this._forkDlgt,this.zone,A,v):new i(A,v)}intercept(A,v,w){return this._interceptZS?this._interceptZS.onIntercept(this._interceptDlgt,this._interceptCurrZone,A,v,w):v}invoke(A,v,w,T,H){return this._invokeZS?this._invokeZS.onInvoke(this._invokeDlgt,this._invokeCurrZone,A,v,w,T,H):v.apply(w,T)}handleError(A,v){return this._handleErrorZS?this._handleErrorZS.onHandleError(this._handleErrorDlgt,this._handleErrorCurrZone,A,v):!0}scheduleTask(A,v){let w=v;if(this._scheduleTaskZS)this._hasTaskZS&&w._zoneDelegates.push(this._hasTaskDlgtOwner),w=this._scheduleTaskZS.onScheduleTask(this._scheduleTaskDlgt,this._scheduleTaskCurrZone,A,v),w||(w=v);else if(v.scheduleFn)v.scheduleFn(v);else if(v.type==U)m(v);else throw new Error("Task is missing scheduleFn.");return w}invokeTask(A,v,w,T){return this._invokeTaskZS?this._invokeTaskZS.onInvokeTask(this._invokeTaskDlgt,this._invokeTaskCurrZone,A,v,w,T):v.callback.apply(w,T)}cancelTask(A,v){let w;if(this._cancelTaskZS)w=this._cancelTaskZS.onCancelTask(this._cancelTaskDlgt,this._cancelTaskCurrZone,A,v);else{if(!v.cancelFn)throw Error("Task is not cancelable");w=v.cancelFn(v)}return w}hasTask(A,v){try{this._hasTaskZS&&this._hasTaskZS.onHasTask(this._hasTaskDlgt,this._hasTaskCurrZone,A,v)}catch(w){this.handleError(A,w)}}_updateTaskCount(A,v){const w=this._taskCounts,T=w[A],H=w[A]=T+v;if(H<0)throw new Error("More tasks executed then were scheduled.");if(T==0||H==0){const Q={microTask:w.microTask>0,macroTask:w.macroTask>0,eventTask:w.eventTask>0,change:A};this.hasTask(this._zone,Q)}}}class o{constructor(A,v,w,T,H,Q){if(this._zone=null,this.runCount=0,this._zoneDelegates=null,this._state="notScheduled",this.type=A,this.source=v,this.data=T,this.scheduleFn=H,this.cancelFn=Q,!w)throw new Error("callback is not defined");this.callback=w;const z=this;A===de&&T&&T.useG?this.invoke=o.invokeTask:this.invoke=function(){return o.invokeTask.call(wn,z,this,arguments)}}static invokeTask(A,v,w){A||(A=this),it++;try{return A.runCount++,A.zone.runTask(A,v,w)}finally{it==1&&y(),it--}}get zone(){return this._zone}get state(){return this._state}cancelScheduleRequest(){this._transitionTo(S,C)}_transitionTo(A,v,w){if(this._state===v||this._state===w)this._state=A,A==S&&(this._zoneDelegates=null);else throw new Error(`${this.type} '${this.source}': can not transition to '${A}', expecting state '${v}'${w?" or '"+w+"'":""}, was '${this._state}'.`)}toString(){return this.data&&typeof this.data.handleId<"u"?this.data.handleId.toString():Object.prototype.toString.call(this)}toJSON(){return{type:this.type,state:this.state,source:this.source,zone:this.zone.name,runCount:this.runCount}}}const a=Wt("setTimeout"),c=Wt("Promise"),u=Wt("then");let h=[],f=!1,d;function p(D){if(d||wn[c]&&(d=wn[c].resolve(0)),d){let A=d[u];A||(A=d.then),A.call(d,D)}else wn[a](D,0)}function m(D){it===0&&h.length===0&&p(y),D&&h.push(D)}function y(){if(!f){for(f=!0;h.length;){const D=h;h=[];for(let A=0;A$,onUnhandledError:Be,microtaskDrainDone:Be,scheduleMicroTask:m,showUncaughtError:()=>!i[Wt("ignoreConsoleErrorUncaughtError")],patchEventTarget:()=>[],patchOnProperties:Be,patchMethod:()=>Be,bindArguments:()=>[],patchThen:()=>Be,patchMacroTask:()=>Be,patchEventPrototype:()=>Be,isIEOrEdge:()=>!1,getGlobalObjects:()=>{},ObjectDefineProperty:()=>Be,ObjectGetOwnPropertyDescriptor:()=>{},ObjectCreate:()=>{},ArraySlice:()=>[],patchClass:()=>Be,wrapWithCurrentZone:()=>Be,filterProperties:()=>[],attachOriginToPatched:()=>Be,_redefineProperty:()=>Be,patchCallbacks:()=>Be,nativeScheduleMicroTask:p};let $={parent:null,zone:new i(null,null)},ne=null,it=0;function Be(){}return n("Zone","Zone"),i}function wk(){const t=globalThis,e=t[Wt("forceDuplicateZoneCheck")]===!0;if(t.Zone&&(e||typeof t.Zone.__symbol__!="function"))throw new Error("Zone already loaded.");return t.Zone??(t.Zone=Ek()),t.Zone}const So=Object.getOwnPropertyDescriptor,$d=Object.defineProperty,Wd=Object.getPrototypeOf,Ck=Object.create,Sk=Array.prototype.slice,Gd="addEventListener",qd="removeEventListener",Vu=Wt(Gd),$u=Wt(qd),Vn="true",$n="false",To=Wt("");function Zd(t,e){return Zone.current.wrap(t,e)}function Yd(t,e,n,i,r){return Zone.current.scheduleMacroTask(t,e,n,i,r)}const De=Wt,xc=typeof window<"u",Fs=xc?window:void 0,rt=xc&&Fs||globalThis,Tk="removeAttribute";function Kd(t,e){for(let n=t.length-1;n>=0;n--)typeof t[n]=="function"&&(t[n]=Zd(t[n],e+"_"+n));return t}function Ak(t,e){const n=t.constructor.name;for(let i=0;i{const c=function(){return a.apply(this,Kd(arguments,n+"."+r))};return qn(c,a),c})(s)}}}function L0(t){return t?t.writable===!1?!1:!(typeof t.get=="function"&&typeof t.set>"u"):!0}const M0=typeof WorkerGlobalScope<"u"&&self instanceof WorkerGlobalScope,Rc=!("nw"in rt)&&typeof rt.process<"u"&&rt.process.toString()==="[object process]",Qd=!Rc&&!M0&&!!(xc&&Fs.HTMLElement),B0=typeof rt.process<"u"&&rt.process.toString()==="[object process]"&&!M0&&!!(xc&&Fs.HTMLElement),Fl={},kk=De("enable_beforeunload"),Gg=function(t){if(t=t||rt.event,!t)return;let e=Fl[t.type];e||(e=Fl[t.type]=De("ON_PROPERTY"+t.type));const n=this||t.target||rt,i=n[e];let r;if(Qd&&n===Fs&&t.type==="error"){const s=t;r=i&&i.call(this,s.message,s.filename,s.lineno,s.colno,s.error),r===!0&&t.preventDefault()}else r=i&&i.apply(this,arguments),t.type==="beforeunload"&&rt[kk]&&typeof r=="string"?t.returnValue=r:r!=null&&!r&&t.preventDefault();return r};function qg(t,e,n){let i=So(t,e);if(!i&&n&&So(n,e)&&(i={enumerable:!0,configurable:!0}),!i||!i.configurable)return;const r=De("on"+e+"patched");if(t.hasOwnProperty(r)&&t[r])return;delete i.writable,delete i.value;const s=i.get,o=i.set,a=e.slice(2);let c=Fl[a];c||(c=Fl[a]=De("ON_PROPERTY"+a)),i.set=function(u){let h=this;if(!h&&t===rt&&(h=rt),!h)return;typeof h[c]=="function"&&h.removeEventListener(a,Gg),o&&o.call(h,null),h[c]=u,typeof u=="function"&&h.addEventListener(a,Gg,!1)},i.get=function(){let u=this;if(!u&&t===rt&&(u=rt),!u)return null;const h=u[c];if(h)return h;if(s){let f=s.call(this);if(f)return i.set.call(this,f),typeof u[Tk]=="function"&&u.removeAttribute(e),f}return null},$d(t,e,i),t[r]=!0}function j0(t,e,n){if(e)for(let i=0;ifunction(o,a){const c=n(o,a);return c.cbIdx>=0&&typeof a[c.cbIdx]=="function"?Yd(c.name,a[c.cbIdx],c,r):s.apply(o,a)})}function qn(t,e){t[De("OriginalDelegate")]=e}let Zg=!1,Wu=!1;function Ik(){try{const t=Fs.navigator.userAgent;if(t.indexOf("MSIE ")!==-1||t.indexOf("Trident/")!==-1)return!0}catch{}return!1}function xk(){if(Zg)return Wu;Zg=!0;try{const t=Fs.navigator.userAgent;(t.indexOf("MSIE ")!==-1||t.indexOf("Trident/")!==-1||t.indexOf("Edge/")!==-1)&&(Wu=!0)}catch{}return Wu}function Yg(t){return typeof t=="function"}function Kg(t){return typeof t=="number"}let $i=!1;if(typeof window<"u")try{const t=Object.defineProperty({},"passive",{get:function(){$i=!0}});window.addEventListener("test",t,t),window.removeEventListener("test",t,t)}catch{$i=!1}const Rk={useG:!0},qt={},z0={},H0=new RegExp("^"+To+"(\\w+)(true|false)$"),U0=De("propagationStopped");function V0(t,e){const n=(e?e(t):t)+$n,i=(e?e(t):t)+Vn,r=To+n,s=To+i;qt[t]={},qt[t][$n]=r,qt[t][Vn]=s}function Fk(t,e,n,i){const r=i&&i.add||Gd,s=i&&i.rm||qd,o=i&&i.listeners||"eventListeners",a=i&&i.rmAll||"removeAllListeners",c=De(r),u="."+r+":",h="prependListener",f="."+h+":",d=function(C,E,N){if(C.isRemoved)return;const L=C.callback;typeof L=="object"&&L.handleEvent&&(C.callback=P=>L.handleEvent(P),C.originalDelegate=L);let Y;try{C.invoke(C,E,[N])}catch(P){Y=P}const U=C.options;if(U&&typeof U=="object"&&U.once){const P=C.originalDelegate?C.originalDelegate:C.callback;E[s].call(E,N.type,P,U)}return Y};function p(C,E,N){if(E=E||t.event,!E)return;const L=C||E.target||t,Y=L[qt[E.type][N?Vn:$n]];if(Y){const U=[];if(Y.length===1){const P=d(Y[0],L,E);P&&U.push(P)}else{const P=Y.slice();for(let de=0;de{throw de})}}}const m=function(C){return p(this,C,!1)},y=function(C){return p(this,C,!0)};function _(C,E){if(!C)return!1;let N=!0;E&&E.useG!==void 0&&(N=E.useG);const L=E&&E.vh;let Y=!0;E&&E.chkDup!==void 0&&(Y=E.chkDup);let U=!1;E&&E.rt!==void 0&&(U=E.rt);let P=C;for(;P&&!P.hasOwnProperty(r);)P=Wd(P);if(!P&&C[r]&&(P=C),!P||P[c])return!1;const de=E&&E.eventNameToString,ee={},te=P[c]=P[r],$=P[De(s)]=P[s],ne=P[De(o)]=P[o],it=P[De(a)]=P[a];let Be;E&&E.prepend&&(Be=P[De(E.prepend)]=P[E.prepend]);function D(b,F){return!$i&&typeof b=="object"&&b?!!b.capture:!$i||!F?b:typeof b=="boolean"?{capture:b,passive:!0}:b?typeof b=="object"&&b.passive!==!1?{...b,passive:!0}:b:{passive:!0}}const A=function(b){if(!ee.isExisting)return te.call(ee.target,ee.eventName,ee.capture?y:m,ee.options)},v=function(b){if(!b.isRemoved){const F=qt[b.eventName];let K;F&&(K=F[b.capture?Vn:$n]);const re=K&&b.target[K];if(re){for(let W=0;Wnn.zone.cancelTask(nn);b.call(Pi,"abort",En,{once:!0}),nn.removeAbortListener=()=>Pi.removeEventListener("abort",En)}if(ee.target=null,Ys&&(Ys.taskData=null),jg&&(ee.options.once=!0),!$i&&typeof nn.options=="boolean"||(nn.options=bn),nn.target=pe,nn.capture=Hu,nn.eventName=me,Le&&(nn.originalDelegate=Ne),fe?Ni.unshift(nn):Ni.push(nn),W)return pe}};return P[r]=k(te,u,Q,z,U),Be&&(P[h]=k(Be,f,T,z,U,!0)),P[s]=function(){const b=this||t;let F=arguments[0];E&&E.transferEventName&&(F=E.transferEventName(F));const K=arguments[2],re=K?typeof K=="boolean"?!0:K.capture:!1,W=arguments[1];if(!W)return $.apply(this,arguments);if(L&&!L($,W,b,arguments))return;const fe=qt[F];let pe;fe&&(pe=fe[re?Vn:$n]);const me=pe&&b[pe];if(me)for(let Ne=0;Nefunction(r,s){r[U0]=!0,i&&i.apply(r,s)})}function Pk(t,e){e.patchMethod(t,"queueMicrotask",n=>function(i,r){Zone.current.scheduleMicroTask("queueMicrotask",r[0])})}const Aa=De("zoneTask");function Li(t,e,n,i){let r=null,s=null;e+=i,n+=i;const o={};function a(u){const h=u.data;h.args[0]=function(){return u.invoke.apply(this,arguments)};const f=r.apply(t,h.args);return Kg(f)?h.handleId=f:(h.handle=f,h.isRefreshable=Yg(f.refresh)),u}function c(u){const{handle:h,handleId:f}=u.data;return s.call(t,h??f)}r=Gn(t,e,u=>function(h,f){if(Yg(f[0])){const d={isRefreshable:!1,isPeriodic:i==="Interval",delay:i==="Timeout"||i==="Interval"?f[1]||0:void 0,args:f},p=f[0];f[0]=function(){try{return p.apply(this,arguments)}finally{const{handle:N,handleId:L,isPeriodic:Y,isRefreshable:U}=d;!Y&&!U&&(L?delete o[L]:N&&(N[Aa]=null))}};const m=Yd(e,f[0],d,a,c);if(!m)return m;const{handleId:y,handle:_,isRefreshable:S,isPeriodic:C}=m.data;if(y)o[y]=m;else if(_&&(_[Aa]=m,S&&!C)){const E=_.refresh;_.refresh=function(){const{zone:N,state:L}=m;return L==="notScheduled"?(m._state="scheduled",N._updateTaskCount(m,1)):L==="running"&&(m._state="scheduling"),E.call(this)}}return _??y??m}else return u.apply(t,f)}),s=Gn(t,n,u=>function(h,f){const d=f[0];let p;Kg(d)?(p=o[d],delete o[d]):(p=d?.[Aa],p?d[Aa]=null:p=d),p?.type?p.cancelFn&&p.zone.cancelTask(p):u.apply(t,f)})}function Nk(t,e){const{isBrowser:n,isMix:i}=e.getGlobalObjects();if(!n&&!i||!t.customElements||!("customElements"in t))return;const r=["connectedCallback","disconnectedCallback","adoptedCallback","attributeChangedCallback","formAssociatedCallback","formDisabledCallback","formResetCallback","formStateRestoreCallback"];e.patchCallbacks(e,t.customElements,"customElements","define",r)}function Lk(t,e){if(Zone[e.symbol("patchEventTarget")])return;const{eventNames:n,zoneSymbolEventNames:i,TRUE_STR:r,FALSE_STR:s,ZONE_SYMBOL_PREFIX:o}=e.getGlobalObjects();for(let c=0;cs.target===t);if(!i||i.length===0)return e;const r=i[0].ignoreProperties;return e.filter(s=>r.indexOf(s)===-1)}function Qg(t,e,n,i){if(!t)return;const r=W0(t,e,n);j0(t,r,i)}function $h(t){return Object.getOwnPropertyNames(t).filter(e=>e.startsWith("on")&&e.length>2).map(e=>e.substring(2))}function Bk(t,e){if(Rc&&!B0||Zone[t.symbol("patchEvents")])return;const n=e.__Zone_ignore_on_properties;let i=[];if(Qd){const r=window;i=i.concat(["Document","SVGElement","Element","HTMLElement","HTMLBodyElement","HTMLMediaElement","HTMLFrameSetElement","HTMLFrameElement","HTMLIFrameElement","HTMLMarqueeElement","Worker"]);const s=Ik()?[{target:r,ignoreProperties:["error"]}]:[];Qg(r,$h(r),n&&n.concat(s),Wd(r))}i=i.concat(["XMLHttpRequest","XMLHttpRequestEventTarget","IDBIndex","IDBRequest","IDBOpenDBRequest","IDBDatabase","IDBTransaction","IDBCursor","WebSocket"]);for(let r=0;r{const n=e[t.__symbol__("legacyPatch")];n&&n()}),t.__load_patch("timers",e=>{const n="set",i="clear";Li(e,n,i,"Timeout"),Li(e,n,i,"Interval"),Li(e,n,i,"Immediate")}),t.__load_patch("requestAnimationFrame",e=>{Li(e,"request","cancel","AnimationFrame"),Li(e,"mozRequest","mozCancel","AnimationFrame"),Li(e,"webkitRequest","webkitCancel","AnimationFrame")}),t.__load_patch("blocking",(e,n)=>{const i=["alert","prompt","confirm"];for(let r=0;rfunction(u,h){return n.current.run(o,e,h,c)})}}),t.__load_patch("EventTarget",(e,n,i)=>{Mk(e,i),Lk(e,i);const r=e.XMLHttpRequestEventTarget;r&&r.prototype&&i.patchEventTarget(e,i,[r.prototype])}),t.__load_patch("MutationObserver",(e,n,i)=>{to("MutationObserver"),to("WebKitMutationObserver")}),t.__load_patch("IntersectionObserver",(e,n,i)=>{to("IntersectionObserver")}),t.__load_patch("FileReader",(e,n,i)=>{to("FileReader")}),t.__load_patch("on_property",(e,n,i)=>{Bk(i,e)}),t.__load_patch("customElements",(e,n,i)=>{Nk(e,i)}),t.__load_patch("XHR",(e,n)=>{u(e);const i=De("xhrTask"),r=De("xhrSync"),s=De("xhrListener"),o=De("xhrScheduled"),a=De("xhrURL"),c=De("xhrErrorBeforeScheduled");function u(h){const f=h.XMLHttpRequest;if(!f)return;const d=f.prototype;function p(te){return te[i]}let m=d[Vu],y=d[$u];if(!m){const te=h.XMLHttpRequestEventTarget;if(te){const $=te.prototype;m=$[Vu],y=$[$u]}}const _="readystatechange",S="scheduled";function C(te){const $=te.data,ne=$.target;ne[o]=!1,ne[c]=!1;const it=ne[s];m||(m=ne[Vu],y=ne[$u]),it&&y.call(ne,_,it);const Be=ne[s]=()=>{if(ne.readyState===ne.DONE)if(!$.aborted&&ne[o]&&te.state===S){const A=ne[n.__symbol__("loadfalse")];if(ne.status!==0&&A&&A.length>0){const v=te.invoke;te.invoke=function(){const w=ne[n.__symbol__("loadfalse")];for(let T=0;Tfunction(te,$){return te[r]=$[2]==!1,te[a]=$[1],L.apply(te,$)}),Y="XMLHttpRequest.send",U=De("fetchTaskAborting"),P=De("fetchTaskScheduling"),de=Gn(d,"send",()=>function(te,$){if(n.current[P]===!0||te[r])return de.apply(te,$);{const ne={target:te,url:te[a],isPeriodic:!1,args:$,aborted:!1},it=Yd(Y,E,ne,C,N);te&&te[c]===!0&&!ne.aborted&&it.state===S&&it.invoke()}}),ee=Gn(d,"abort",()=>function(te,$){const ne=p(te);if(ne&&typeof ne.type=="string"){if(ne.cancelFn==null||ne.data&&ne.data.aborted)return;ne.zone.cancelTask(ne)}else if(n.current[U]===!0)return ee.apply(te,$)})}}),t.__load_patch("geolocation",e=>{e.navigator&&e.navigator.geolocation&&Ak(e.navigator.geolocation,["getCurrentPosition","watchPosition"])}),t.__load_patch("PromiseRejectionEvent",(e,n)=>{function i(r){return function(s){$0(e,r).forEach(a=>{const c=e.PromiseRejectionEvent;if(c){const u=new c(r,{promise:s.promise,reason:s.rejection});a.invoke(u)}})}}e.PromiseRejectionEvent&&(n[De("unhandledPromiseRejectionHandler")]=i("unhandledrejection"),n[De("rejectionHandledHandler")]=i("rejectionhandled"))}),t.__load_patch("queueMicrotask",(e,n,i)=>{Pk(e,i)})}function zk(t){t.__load_patch("ZoneAwarePromise",(e,n,i)=>{const r=Object.getOwnPropertyDescriptor,s=Object.defineProperty;function o(R){if(R&&R.toString===Object.prototype.toString){const k=R.constructor&&R.constructor.name;return(k||"")+": "+JSON.stringify(R)}return R?R.toString():Object.prototype.toString.call(R)}const a=i.symbol,c=[],u=e[a("DISABLE_WRAPPING_UNCAUGHT_PROMISE_REJECTION")]!==!1,h=a("Promise"),f=a("then"),d="__creationTrace__";i.onUnhandledError=R=>{if(i.showUncaughtError()){const k=R&&R.rejection;k?console.error("Unhandled Promise rejection:",k instanceof Error?k.message:k,"; Zone:",R.zone.name,"; Task:",R.task&&R.task.source,"; Value:",k,k instanceof Error?k.stack:void 0):console.error(R)}},i.microtaskDrainDone=()=>{for(;c.length;){const R=c.shift();try{R.zone.runGuarded(()=>{throw R.throwOriginal?R.rejection:R})}catch(k){m(k)}}};const p=a("unhandledPromiseRejectionHandler");function m(R){i.onUnhandledError(R);try{const k=n[p];typeof k=="function"&&k.call(this,R)}catch{}}function y(R){return R&&R.then}function _(R){return R}function S(R){return z.reject(R)}const C=a("state"),E=a("value"),N=a("finally"),L=a("parentPromiseValue"),Y=a("parentPromiseState"),U="Promise.then",P=null,de=!0,ee=!1,te=0;function $(R,k){return b=>{try{D(R,k,b)}catch(F){D(R,!1,F)}}}const ne=function(){let R=!1;return function(b){return function(){R||(R=!0,b.apply(null,arguments))}}},it="Promise resolved with itself",Be=a("currentTaskTrace");function D(R,k,b){const F=ne();if(R===b)throw new TypeError(it);if(R[C]===P){let K=null;try{(typeof b=="object"||typeof b=="function")&&(K=b&&b.then)}catch(re){return F(()=>{D(R,!1,re)})(),R}if(k!==ee&&b instanceof z&&b.hasOwnProperty(C)&&b.hasOwnProperty(E)&&b[C]!==P)v(b),D(R,b[C],b[E]);else if(k!==ee&&typeof K=="function")try{K.call(b,F($(R,k)),F($(R,!1)))}catch(re){F(()=>{D(R,!1,re)})()}else{R[C]=k;const re=R[E];if(R[E]=b,R[N]===N&&k===de&&(R[C]=R[Y],R[E]=R[L]),k===ee&&b instanceof Error){const W=n.currentTask&&n.currentTask.data&&n.currentTask.data[d];W&&s(b,Be,{configurable:!0,enumerable:!1,writable:!0,value:W})}for(let W=0;W{try{const fe=R[E],pe=!!b&&N===b[N];pe&&(b[L]=fe,b[Y]=re);const me=k.run(W,void 0,pe&&W!==S&&W!==_?[]:[fe]);D(b,!0,me)}catch(fe){D(b,!1,fe)}},b)}const T="function ZoneAwarePromise() { [native code] }",H=function(){},Q=e.AggregateError;class z{static toString(){return T}static resolve(k){return k instanceof z?k:D(new this(null),de,k)}static reject(k){return D(new this(null),ee,k)}static withResolvers(){const k={};return k.promise=new z((b,F)=>{k.resolve=b,k.reject=F}),k}static any(k){if(!k||typeof k[Symbol.iterator]!="function")return Promise.reject(new Q([],"All promises were rejected"));const b=[];let F=0;try{for(let W of k)F++,b.push(z.resolve(W))}catch{return Promise.reject(new Q([],"All promises were rejected"))}if(F===0)return Promise.reject(new Q([],"All promises were rejected"));let K=!1;const re=[];return new z((W,fe)=>{for(let pe=0;pe{K||(K=!0,W(me))},me=>{re.push(me),F--,F===0&&(K=!0,fe(new Q(re,"All promises were rejected")))})})}static race(k){let b,F,K=new this((fe,pe)=>{b=fe,F=pe});function re(fe){b(fe)}function W(fe){F(fe)}for(let fe of k)y(fe)||(fe=this.resolve(fe)),fe.then(re,W);return K}static all(k){return z.allWithCallback(k)}static allSettled(k){return(this&&this.prototype instanceof z?this:z).allWithCallback(k,{thenCallback:F=>({status:"fulfilled",value:F}),errorCallback:F=>({status:"rejected",reason:F})})}static allWithCallback(k,b){let F,K,re=new this((me,Ne)=>{F=me,K=Ne}),W=2,fe=0;const pe=[];for(let me of k){y(me)||(me=this.resolve(me));const Ne=fe;try{me.then(Le=>{pe[Ne]=b?b.thenCallback(Le):Le,W--,W===0&&F(pe)},Le=>{b?(pe[Ne]=b.errorCallback(Le),W--,W===0&&F(pe)):K(Le)})}catch(Le){K(Le)}W++,fe++}return W-=2,W===0&&F(pe),re}constructor(k){const b=this;if(!(b instanceof z))throw new Error("Must be an instanceof Promise.");b[C]=P,b[E]=[];try{const F=ne();k&&k(F($(b,de)),F($(b,ee)))}catch(F){D(b,!1,F)}}get[Symbol.toStringTag](){return"Promise"}get[Symbol.species](){return z}then(k,b){let F=this.constructor?.[Symbol.species];(!F||typeof F!="function")&&(F=this.constructor||z);const K=new F(H),re=n.current;return this[C]==P?this[E].push(re,K,k,b):w(this,re,K,k,b),K}catch(k){return this.then(null,k)}finally(k){let b=this.constructor?.[Symbol.species];(!b||typeof b!="function")&&(b=z);const F=new b(H);F[N]=N;const K=n.current;return this[C]==P?this[E].push(K,F,k,k):w(this,K,F,k,k),F}}z.resolve=z.resolve,z.reject=z.reject,z.race=z.race,z.all=z.all;const he=e[h]=e.Promise;e.Promise=z;const tn=a("thenPatched");function xt(R){const k=R.prototype,b=r(k,"then");if(b&&(b.writable===!1||!b.configurable))return;const F=k.then;k[f]=F,R.prototype.then=function(K,re){return new z((fe,pe)=>{F.call(this,fe,pe)}).then(K,re)},R[tn]=!0}i.patchThen=xt;function je(R){return function(k,b){let F=R.apply(k,b);if(F instanceof z)return F;let K=F.constructor;return K[tn]||xt(K),F}}return he&&(xt(he),Gn(e,"fetch",R=>je(R))),Promise[n.__symbol__("uncaughtPromiseErrors")]=c,z})}function Hk(t){t.__load_patch("toString",e=>{const n=Function.prototype.toString,i=De("OriginalDelegate"),r=De("Promise"),s=De("Error"),o=function(){if(typeof this=="function"){const h=this[i];if(h)return typeof h=="function"?n.call(h):Object.prototype.toString.call(h);if(this===Promise){const f=e[r];if(f)return n.call(f)}if(this===Error){const f=e[s];if(f)return n.call(f)}}return n.call(this)};o[i]=n,Function.prototype.toString=o;const a=Object.prototype.toString,c="[object Promise]";Object.prototype.toString=function(){return typeof Promise=="function"&&this instanceof Promise?c:a.call(this)}})}function Uk(t,e,n,i,r){const s=Zone.__symbol__(i);if(e[s])return;const o=e[s]=e[i];e[i]=function(a,c,u){return c&&c.prototype&&r.forEach(function(h){const f=`${n}.${i}::`+h,d=c.prototype;try{if(d.hasOwnProperty(h)){const p=t.ObjectGetOwnPropertyDescriptor(d,h);p&&p.value?(p.value=t.wrapWithCurrentZone(p.value,f),t._redefineProperty(c.prototype,h,p)):d[h]&&(d[h]=t.wrapWithCurrentZone(d[h],f))}else d[h]&&(d[h]=t.wrapWithCurrentZone(d[h],f))}catch{}}),o.call(e,a,c,u)},t.attachOriginToPatched(e[i],o)}function Vk(t){t.__load_patch("util",(e,n,i)=>{const r=$h(e);i.patchOnProperties=j0,i.patchMethod=Gn,i.bindArguments=Kd,i.patchMacroTask=Dk;const s=n.__symbol__("BLACK_LISTED_EVENTS"),o=n.__symbol__("UNPATCHED_EVENTS");e[o]&&(e[s]=e[o]),e[s]&&(n[s]=n[o]=e[s]),i.patchEventPrototype=Ok,i.patchEventTarget=Fk,i.isIEOrEdge=xk,i.ObjectDefineProperty=$d,i.ObjectGetOwnPropertyDescriptor=So,i.ObjectCreate=Ck,i.ArraySlice=Sk,i.patchClass=to,i.wrapWithCurrentZone=Zd,i.filterProperties=W0,i.attachOriginToPatched=qn,i._redefineProperty=Object.defineProperty,i.patchCallbacks=Uk,i.getGlobalObjects=()=>({globalSources:z0,zoneSymbolEventNames:qt,eventNames:r,isBrowser:Qd,isMix:B0,isNode:Rc,TRUE_STR:Vn,FALSE_STR:$n,ZONE_SYMBOL_PREFIX:To,ADD_EVENT_LISTENER_STR:Gd,REMOVE_EVENT_LISTENER_STR:qd})})}function $k(t){zk(t),Hk(t),Vk(t)}const G0=wk();$k(G0);jk(G0);/** + * @license Angular v19.0.5 + * (c) 2010-2024 Google LLC. https://angular.io/ + * License: MIT + */function q0(t,e){return Object.is(t,e)}let tt=null,nl=!1,Xd=1;const Qn=Symbol("SIGNAL");function _e(t){const e=tt;return tt=t,e}function Wk(){return tt}const Fc={version:0,lastCleanEpoch:0,dirty:!1,producerNode:void 0,producerLastReadVersion:void 0,producerIndexOfThis:void 0,nextProducerIndex:0,liveConsumerNode:void 0,liveConsumerIndexOfThis:void 0,consumerAllowSignalWrites:!1,consumerIsAlwaysLive:!1,producerMustRecompute:()=>!1,producerRecomputeValue:()=>{},consumerMarkedDirty:()=>{},consumerOnSignalRead:()=>{}};function Jd(t){if(nl)throw new Error("");if(tt===null)return;tt.consumerOnSignalRead(t);const e=tt.nextProducerIndex++;if(Pc(tt),et.nextProducerIndex;)t.producerNode.pop(),t.producerLastReadVersion.pop(),t.producerIndexOfThis.pop()}}function X0(t){Pc(t);for(let e=0;e0}function Pc(t){t.producerNode??(t.producerNode=[]),t.producerIndexOfThis??(t.producerIndexOfThis=[]),t.producerLastReadVersion??(t.producerLastReadVersion=[])}function tb(t){t.liveConsumerNode??(t.liveConsumerNode=[]),t.liveConsumerIndexOfThis??(t.liveConsumerIndexOfThis=[])}function nb(t){return t.producerNode!==void 0}function Zk(t){const e=Object.create(Yk);e.computation=t;const n=()=>{if(Z0(e),Jd(e),e.value===rl)throw e.error;return e.value};return n[Qn]=e,n}const Gu=Symbol("UNSET"),qu=Symbol("COMPUTING"),rl=Symbol("ERRORED"),Yk={...Fc,value:Gu,dirty:!0,error:null,equal:q0,producerMustRecompute(t){return t.value===Gu||t.value===qu},producerRecomputeValue(t){if(t.value===qu)throw new Error("Detected cycle in computations.");const e=t.value;t.value=qu;const n=Wh(t);let i;try{i=t.computation()}catch(r){i=rl,t.error=r}finally{Q0(t,n)}if(e!==Gu&&e!==rl&&i!==rl&&t.equal(e,i)){t.value=e;return}t.value=i,t.version++}};function Kk(){throw new Error}let rb=Kk;function ib(){rb()}function Qk(t){rb=t}function Xk(t){const e=Object.create(sb);e.value=t;const n=()=>(Jd(e),e.value);return n[Qn]=e,n}function ep(t,e){K0()||ib(),t.equal(t.value,e)||(t.value=e,e1(t))}function Jk(t,e){K0()||ib(),ep(t,e(t.value))}const sb={...Fc,equal:q0,value:void 0};function e1(t){t.version++,Gk(),Y0(t)}var Gh=function(t,e){return Gh=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(n,i){n.__proto__=i}||function(n,i){for(var r in i)Object.prototype.hasOwnProperty.call(i,r)&&(n[r]=i[r])},Gh(t,e)};function wt(t,e){if(typeof e!="function"&&e!==null)throw new TypeError("Class extends value "+String(e)+" is not a constructor or null");Gh(t,e);function n(){this.constructor=t}t.prototype=e===null?Object.create(e):(n.prototype=e.prototype,new n)}function t1(t,e,n,i){function r(s){return s instanceof n?s:new n(function(o){o(s)})}return new(n||(n=Promise))(function(s,o){function a(h){try{u(i.next(h))}catch(f){o(f)}}function c(h){try{u(i.throw(h))}catch(f){o(f)}}function u(h){h.done?s(h.value):r(h.value).then(a,c)}u((i=i.apply(t,e||[])).next())})}function ob(t,e){var n={label:0,sent:function(){if(s[0]&1)throw s[1];return s[1]},trys:[],ops:[]},i,r,s,o=Object.create((typeof Iterator=="function"?Iterator:Object).prototype);return o.next=a(0),o.throw=a(1),o.return=a(2),typeof Symbol=="function"&&(o[Symbol.iterator]=function(){return this}),o;function a(u){return function(h){return c([u,h])}}function c(u){if(i)throw new TypeError("Generator is already executing.");for(;o&&(o=0,u[0]&&(n=0)),n;)try{if(i=1,r&&(s=u[0]&2?r.return:u[0]?r.throw||((s=r.return)&&s.call(r),0):r.next)&&!(s=s.call(r,u[1])).done)return s;switch(r=0,s&&(u=[u[0]&2,s.value]),u[0]){case 0:case 1:s=u;break;case 4:return n.label++,{value:u[1],done:!1};case 5:n.label++,r=u[1],u=[0];continue;case 7:u=n.ops.pop(),n.trys.pop();continue;default:if(s=n.trys,!(s=s.length>0&&s[s.length-1])&&(u[0]===6||u[0]===2)){n=0;continue}if(u[0]===3&&(!s||u[1]>s[0]&&u[1]=t.length&&(t=void 0),{value:t&&t[i++],done:!t}}};throw new TypeError(e?"Object is not iterable.":"Symbol.iterator is not defined.")}function Nn(t,e){var n=typeof Symbol=="function"&&t[Symbol.iterator];if(!n)return t;var i=n.call(t),r,s=[],o;try{for(;(e===void 0||e-- >0)&&!(r=i.next()).done;)s.push(r.value)}catch(a){o={error:a}}finally{try{r&&!r.done&&(n=i.return)&&n.call(i)}finally{if(o)throw o.error}}return s}function Xn(t,e,n){if(n||arguments.length===2)for(var i=0,r=e.length,s;i1||c(p,y)})},m&&(r[p]=m(r[p])))}function c(p,m){try{u(i[p](m))}catch(y){d(s[0][3],y)}}function u(p){p.value instanceof fs?Promise.resolve(p.value.v).then(h,f):d(s[0][2],p)}function h(p){c("next",p)}function f(p){c("throw",p)}function d(p,m){p(m),s.shift(),s.length&&c(s[0][0],s[0][1])}}function r1(t){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var e=t[Symbol.asyncIterator],n;return e?e.call(t):(t=typeof li=="function"?li(t):t[Symbol.iterator](),n={},i("next"),i("throw"),i("return"),n[Symbol.asyncIterator]=function(){return this},n);function i(s){n[s]=t[s]&&function(o){return new Promise(function(a,c){o=t[s](o),r(a,c,o.done,o.value)})}}function r(s,o,a,c){Promise.resolve(c).then(function(u){s({value:u,done:a})},o)}}function Te(t){return typeof t=="function"}function tp(t){var e=function(i){Error.call(i),i.stack=new Error().stack},n=t(e);return n.prototype=Object.create(Error.prototype),n.prototype.constructor=n,n}var Zu=tp(function(t){return function(n){t(this),this.message=n?n.length+` errors occurred during unsubscription: +`+n.map(function(i,r){return r+1+") "+i.toString()}).join(` + `):"",this.name="UnsubscriptionError",this.errors=n}});function Ol(t,e){if(t){var n=t.indexOf(e);0<=n&&t.splice(n,1)}}var Je=function(){function t(e){this.initialTeardown=e,this.closed=!1,this._parentage=null,this._finalizers=null}return t.prototype.unsubscribe=function(){var e,n,i,r,s;if(!this.closed){this.closed=!0;var o=this._parentage;if(o)if(this._parentage=null,Array.isArray(o))try{for(var a=li(o),c=a.next();!c.done;c=a.next()){var u=c.value;u.remove(this)}}catch(y){e={error:y}}finally{try{c&&!c.done&&(n=a.return)&&n.call(a)}finally{if(e)throw e.error}}else o.remove(this);var h=this.initialTeardown;if(Te(h))try{h()}catch(y){s=y instanceof Zu?y.errors:[y]}var f=this._finalizers;if(f){this._finalizers=null;try{for(var d=li(f),p=d.next();!p.done;p=d.next()){var m=p.value;try{Jg(m)}catch(y){s=s??[],y instanceof Zu?s=Xn(Xn([],Nn(s)),Nn(y.errors)):s.push(y)}}}catch(y){i={error:y}}finally{try{p&&!p.done&&(r=d.return)&&r.call(d)}finally{if(i)throw i.error}}}if(s)throw new Zu(s)}},t.prototype.add=function(e){var n;if(e&&e!==this)if(this.closed)Jg(e);else{if(e instanceof t){if(e.closed||e._hasParent(this))return;e._addParent(this)}(this._finalizers=(n=this._finalizers)!==null&&n!==void 0?n:[]).push(e)}},t.prototype._hasParent=function(e){var n=this._parentage;return n===e||Array.isArray(n)&&n.includes(e)},t.prototype._addParent=function(e){var n=this._parentage;this._parentage=Array.isArray(n)?(n.push(e),n):n?[n,e]:e},t.prototype._removeParent=function(e){var n=this._parentage;n===e?this._parentage=null:Array.isArray(n)&&Ol(n,e)},t.prototype.remove=function(e){var n=this._finalizers;n&&Ol(n,e),e instanceof t&&e._removeParent(this)},t.EMPTY=function(){var e=new t;return e.closed=!0,e}(),t}(),ab=Je.EMPTY;function lb(t){return t instanceof Je||t&&"closed"in t&&Te(t.remove)&&Te(t.add)&&Te(t.unsubscribe)}function Jg(t){Te(t)?t():t.unsubscribe()}var cb={onUnhandledError:null,onStoppedNotification:null,Promise:void 0,useDeprecatedSynchronousErrorHandling:!1,useDeprecatedNextContext:!1},ub={setTimeout:function(t,e){for(var n=[],i=2;i0},enumerable:!1,configurable:!0}),e.prototype._trySubscribe=function(n){return this._throwIfClosed(),t.prototype._trySubscribe.call(this,n)},e.prototype._subscribe=function(n){return this._throwIfClosed(),this._checkFinalizedStatuses(n),this._innerSubscribe(n)},e.prototype._innerSubscribe=function(n){var i=this,r=this,s=r.hasError,o=r.isStopped,a=r.observers;return s||o?ab:(this.currentObservers=null,a.push(n),new Je(function(){i.currentObservers=null,Ol(a,n)}))},e.prototype._checkFinalizedStatuses=function(n){var i=this,r=i.hasError,s=i.thrownError,o=i.isStopped;r?n.error(s):o&&n.complete()},e.prototype.asObservable=function(){var n=new xe;return n.source=this,n},e.create=function(n,i){return new ty(n,i)},e}(xe),ty=function(t){wt(e,t);function e(n,i){var r=t.call(this)||this;return r.destination=n,r.source=i,r}return e.prototype.next=function(n){var i,r;(r=(i=this.destination)===null||i===void 0?void 0:i.next)===null||r===void 0||r.call(i,n)},e.prototype.error=function(n){var i,r;(r=(i=this.destination)===null||i===void 0?void 0:i.error)===null||r===void 0||r.call(i,n)},e.prototype.complete=function(){var n,i;(i=(n=this.destination)===null||n===void 0?void 0:n.complete)===null||i===void 0||i.call(n)},e.prototype._subscribe=function(n){var i,r;return(r=(i=this.source)===null||i===void 0?void 0:i.subscribe(n))!==null&&r!==void 0?r:ab},e}(oe),Pt=function(t){wt(e,t);function e(n){var i=t.call(this)||this;return i._value=n,i}return Object.defineProperty(e.prototype,"value",{get:function(){return this.getValue()},enumerable:!1,configurable:!0}),e.prototype._subscribe=function(n){var i=t.prototype._subscribe.call(this,n);return!i.closed&&n.next(this._value),i},e.prototype.getValue=function(){var n=this,i=n.hasError,r=n.thrownError,s=n._value;if(i)throw r;return this._throwIfClosed(),s},e.prototype.next=function(n){t.prototype.next.call(this,this._value=n)},e}(oe),ip={now:function(){return(ip.delegate||Date).now()},delegate:void 0},d1=function(t){wt(e,t);function e(n,i,r){n===void 0&&(n=1/0),i===void 0&&(i=1/0),r===void 0&&(r=ip);var s=t.call(this)||this;return s._bufferSize=n,s._windowTime=i,s._timestampProvider=r,s._buffer=[],s._infiniteTimeWindow=!0,s._infiniteTimeWindow=i===1/0,s._bufferSize=Math.max(1,n),s._windowTime=Math.max(1,i),s}return e.prototype.next=function(n){var i=this,r=i.isStopped,s=i._buffer,o=i._infiniteTimeWindow,a=i._timestampProvider,c=i._windowTime;r||(s.push(n),!o&&s.push(a.now()+c)),this._trimBuffer(),t.prototype.next.call(this,n)},e.prototype._subscribe=function(n){this._throwIfClosed(),this._trimBuffer();for(var i=this._innerSubscribe(n),r=this,s=r._infiniteTimeWindow,o=r._buffer,a=o.slice(),c=0;c0?t.prototype.requestAsyncId.call(this,n,i,r):(n.actions.push(this),n._scheduled||(n._scheduled=iy.setImmediate(n.flush.bind(n,void 0))))},e.prototype.recycleAsyncId=function(n,i,r){var s;if(r===void 0&&(r=0),r!=null?r>0:this.delay>0)return t.prototype.recycleAsyncId.call(this,n,i,r);var o=n.actions;i!=null&&((s=o[o.length-1])===null||s===void 0?void 0:s.id)!==i&&(iy.clearImmediate(i),n._scheduled===i&&(n._scheduled=void 0))},e}(sp),sy=function(){function t(e,n){n===void 0&&(n=t.now),this.schedulerActionCtor=e,this.now=n}return t.prototype.schedule=function(e,n,i){return n===void 0&&(n=0),new this.schedulerActionCtor(this,e).schedule(i,n)},t.now=ip.now,t}(),op=function(t){wt(e,t);function e(n,i){i===void 0&&(i=sy.now);var r=t.call(this,n,i)||this;return r.actions=[],r._active=!1,r}return e.prototype.flush=function(n){var i=this.actions;if(this._active){i.push(n);return}var r;this._active=!0;do if(r=n.execute(n.state,n.delay))break;while(n=i.shift());if(this._active=!1,r){for(;n=i.shift();)n.unsubscribe();throw r}},e}(sy),v1=function(t){wt(e,t);function e(){return t!==null&&t.apply(this,arguments)||this}return e.prototype.flush=function(n){this._active=!0;var i=this._scheduled;this._scheduled=void 0;var r=this.actions,s;n=n||r.shift();do if(s=n.execute(n.state,n.delay))break;while((n=r[0])&&n.id===i&&r.shift());if(this._active=!1,s){for(;(n=r[0])&&n.id===i&&r.shift();)n.unsubscribe();throw s}},e}(op),b1=new v1(_1),ap=new op(sp),E1=ap,w1=function(t){wt(e,t);function e(n,i){var r=t.call(this,n,i)||this;return r.scheduler=n,r.work=i,r}return e.prototype.requestAsyncId=function(n,i,r){return r===void 0&&(r=0),r!==null&&r>0?t.prototype.requestAsyncId.call(this,n,i,r):(n.actions.push(this),n._scheduled||(n._scheduled=Kh.requestAnimationFrame(function(){return n.flush(void 0)})))},e.prototype.recycleAsyncId=function(n,i,r){var s;if(r===void 0&&(r=0),r!=null?r>0:this.delay>0)return t.prototype.recycleAsyncId.call(this,n,i,r);var o=n.actions;i!=null&&((s=o[o.length-1])===null||s===void 0?void 0:s.id)!==i&&(Kh.cancelAnimationFrame(i),n._scheduled=void 0)},e}(sp),C1=function(t){wt(e,t);function e(){return t!==null&&t.apply(this,arguments)||this}return e.prototype.flush=function(n){this._active=!0;var i=this._scheduled;this._scheduled=void 0;var r=this.actions,s;n=n||r.shift();do if(s=n.execute(n.state,n.delay))break;while((n=r[0])&&n.id===i&&r.shift());if(this._active=!1,s){for(;(n=r[0])&&n.id===i&&r.shift();)n.unsubscribe();throw s}},e}(op),S1=new C1(w1),Sn=new xe(function(t){return t.complete()});function mb(t){return t&&Te(t.schedule)}function lp(t){return t[t.length-1]}function T1(t){return Te(lp(t))?t.pop():void 0}function Wo(t){return mb(lp(t))?t.pop():void 0}function A1(t,e){return typeof lp(t)=="number"?t.pop():e}var cp=function(t){return t&&typeof t.length=="number"&&typeof t!="function"};function gb(t){return Te(t?.then)}function yb(t){return Te(t[rp])}function _b(t){return Symbol.asyncIterator&&Te(t?.[Symbol.asyncIterator])}function vb(t){return new TypeError("You provided "+(t!==null&&typeof t=="object"?"an invalid object":"'"+t+"'")+" where a stream was expected. You can provide an Observable, Promise, ReadableStream, Array, AsyncIterable, or Iterable.")}function k1(){return typeof Symbol!="function"||!Symbol.iterator?"@@iterator":Symbol.iterator}var bb=k1();function Eb(t){return Te(t?.[bb])}function wb(t){return n1(this,arguments,function(){var n,i,r,s;return ob(this,function(o){switch(o.label){case 0:n=t.getReader(),o.label=1;case 1:o.trys.push([1,,9,10]),o.label=2;case 2:return[4,fs(n.read())];case 3:return i=o.sent(),r=i.value,s=i.done,s?[4,fs(void 0)]:[3,5];case 4:return[2,o.sent()];case 5:return[4,fs(r)];case 6:return[4,o.sent()];case 7:return o.sent(),[3,2];case 8:return[3,10];case 9:return n.releaseLock(),[7];case 10:return[2]}})})}function Cb(t){return Te(t?.getReader)}function Dt(t){if(t instanceof xe)return t;if(t!=null){if(yb(t))return D1(t);if(cp(t))return I1(t);if(gb(t))return x1(t);if(_b(t))return Sb(t);if(Eb(t))return R1(t);if(Cb(t))return F1(t)}throw vb(t)}function D1(t){return new xe(function(e){var n=t[rp]();if(Te(n.subscribe))return n.subscribe(e);throw new TypeError("Provided object does not correctly implement Symbol.observable")})}function I1(t){return new xe(function(e){for(var n=0;n=2;return function(i){return i.pipe(t?At(function(r,s){return t(r,s,i)}):Nr,Jn(1),n?Lc(e):xb(function(){return new qo}))}}function pp(t){return t<=0?function(){return Sn}:$e(function(e,n){var i=[];e.subscribe(Ve(n,function(r){i.push(r),t=2;return function(i){return i.pipe(Nr,pp(1),n?Lc(e):xb(function(){return new qo}))}}function pD(){return $e(function(t,e){var n,i=!1;t.subscribe(Ve(e,function(r){var s=n;n=r,i&&e.next([s,r]),i=!0}))})}function mD(t,e){return $e(cD(t,e,arguments.length>=2,!0))}function gD(t){t===void 0&&(t={});var e=t.connector,n=e===void 0?function(){return new oe}:e,i=t.resetOnError,r=i===void 0?!0:i,s=t.resetOnComplete,o=s===void 0?!0:s,a=t.resetOnRefCountZero,c=a===void 0?!0:a;return function(u){var h,f,d,p=0,m=!1,y=!1,_=function(){f?.unsubscribe(),f=void 0},S=function(){_(),h=d=void 0,m=y=!1},C=function(){var E=h;S(),E?.unsubscribe()};return $e(function(E,N){p++,!y&&!m&&_();var L=d=d??n();N.add(function(){p--,p===0&&!y&&!m&&(f=Qu(C,c))}),L.subscribe(N),!h&&p>0&&(h=new _s({next:function(Y){return L.next(Y)},error:function(Y){y=!0,_(),f=Qu(S,r,Y),L.error(Y)},complete:function(){m=!0,_(),f=Qu(S,o),L.complete()}}),Dt(E).subscribe(h))})(u)}}function Qu(t,e){for(var n=[],i=2;i{const i=ED(e);function r(...s){if(this instanceof r)return i.apply(this,s),this;const o=new r(...s);return a.annotation=o,a;function a(c,u,h){const f=c.hasOwnProperty(Da)?c[Da]:Object.defineProperty(c,Da,{value:[]})[Da];for(;f.length<=h;)f.push(null);return(f[h]=f[h]||[]).push(o),c}}return r.prototype.ngMetadataName=t,r.annotationCls=r,r})}const vr=globalThis;function Oe(t){for(let e in t)if(t[e]===Oe)return e;throw Error("Could not find renamed property on target object.")}function wD(t,e){for(const n in e)e.hasOwnProperty(n)&&!t.hasOwnProperty(n)&&(t[n]=e[n])}function Mt(t){if(typeof t=="string")return t;if(Array.isArray(t))return"["+t.map(Mt).join(", ")+"]";if(t==null)return""+t;if(t.overriddenName)return`${t.overriddenName}`;if(t.name)return`${t.name}`;const e=t.toString();if(e==null)return""+e;const n=e.indexOf(` +`);return n===-1?e:e.substring(0,n)}function Xh(t,e){return t==null||t===""?e===null?"":e:e==null||e===""?t:t+" "+e}const CD=Oe({__forward_ref__:Oe});function gp(t){return t.__forward_ref__=gp,t.toString=function(){return Mt(this())},t}function ut(t){return Nb(t)?t():t}function Nb(t){return typeof t=="function"&&t.hasOwnProperty(CD)&&t.__forward_ref__===gp}function O(t){return{token:t.token,providedIn:t.providedIn||null,factory:t.factory,value:void 0}}function lr(t){return{providers:t.providers||[],imports:t.imports||[]}}function Mc(t){return ly(t,Lb)||ly(t,Mb)}function SD(t){return Mc(t)!==null}function ly(t,e){return t.hasOwnProperty(e)?t[e]:null}function TD(t){const e=t&&(t[Lb]||t[Mb]);return e||null}function cy(t){return t&&(t.hasOwnProperty(uy)||t.hasOwnProperty(AD))?t[uy]:null}const Lb=Oe({ɵprov:Oe}),uy=Oe({ɵinj:Oe}),Mb=Oe({ngInjectableDef:Oe}),AD=Oe({ngInjectorDef:Oe});class B{constructor(e,n){l(this,"_desc");l(this,"ngMetadataName","InjectionToken");l(this,"ɵprov");this._desc=e,this.ɵprov=void 0,typeof n=="number"?this.__NG_ELEMENT_ID__=n:n!==void 0&&(this.ɵprov=O({token:this,providedIn:n.providedIn||"root",factory:n.factory}))}get multi(){return this}toString(){return`InjectionToken ${this._desc}`}}function Bb(t){return t&&!!t.ɵproviders}const kD=Oe({ɵcmp:Oe}),DD=Oe({ɵdir:Oe}),ID=Oe({ɵpipe:Oe}),xD=Oe({ɵmod:Oe}),Ml=Oe({ɵfac:Oe}),uo=Oe({__NG_ELEMENT_ID__:Oe}),hy=Oe({__NG_ENV_ID__:Oe});function Ko(t){return typeof t=="string"?t:t==null?"":String(t)}function RD(t){return typeof t=="function"?t.name||t.toString():typeof t=="object"&&t!=null&&typeof t.type=="function"?t.type.name||t.type.toString():Ko(t)}function FD(t,e){throw new x(-200,t)}function yp(t,e){throw new x(-201,!1)}var ve=function(t){return t[t.Default=0]="Default",t[t.Host=1]="Host",t[t.Self=2]="Self",t[t.SkipSelf=4]="SkipSelf",t[t.Optional=8]="Optional",t}(ve||{});let Jh;function jb(){return Jh}function Ct(t){const e=Jh;return Jh=t,e}function zb(t,e,n){const i=Mc(t);if(i&&i.providedIn=="root")return i.value===void 0?i.value=i.factory():i.value;if(n&ve.Optional)return null;if(e!==void 0)return e;yp()}const OD={},Io=OD,ef="__NG_DI_FLAG__",Bl="ngTempTokenPath",PD="ngTokenPath",ND=/\n/gm,LD="ɵ",fy="__source";let ds;function MD(){return ds}function gr(t){const e=ds;return ds=t,e}function BD(t,e=ve.Default){if(ds===void 0)throw new x(-203,!1);return ds===null?zb(t,void 0,e):ds.get(t,e&ve.Optional?null:void 0,e)}function ie(t,e=ve.Default){return(jb()||BD)(ut(t),e)}function g(t,e=ve.Default){return ie(t,Bc(e))}function Bc(t){return typeof t>"u"||typeof t=="number"?t:0|(t.optional&&8)|(t.host&&1)|(t.self&&2)|(t.skipSelf&&4)}function tf(t){const e=[];for(let n=0;n ");else if(typeof e=="object"){let s=[];for(let o in e)if(e.hasOwnProperty(o)){let a=e[o];s.push(o+":"+(typeof a=="string"?JSON.stringify(a):Mt(a)))}r=`{${s.join(", ")}}`}return`${n}${i?"("+i+")":""}[${r}]: ${t.replace(ND,` + `)}`}const UD=_p(mp("Inject",t=>({token:t})),-1),Hb=_p(mp("Optional"),8),VD=_p(mp("SkipSelf"),4);function ci(t,e){const n=t.hasOwnProperty(Ml);return n?t[Ml]:null}function $D(t,e,n){if(t.length!==e.length)return!1;for(let i=0;iArray.isArray(n)?vp(n,e):e(n))}function Ub(t,e,n){e>=t.length?t.push(n):t.splice(e,0,n)}function jl(t,e){return e>=t.length-1?t.pop():t.splice(e,1)[0]}function GD(t,e){const n=[];for(let i=0;ie;){const s=r-2;t[r]=t[s],r--}t[e]=n,t[e+1]=i}}function bp(t,e,n){let i=Qo(t,e);return i>=0?t[i|1]=n:(i=~i,qD(t,i,e,n)),i}function Xu(t,e){const n=Qo(t,e);if(n>=0)return t[n|1]}function Qo(t,e){return ZD(t,e,1)}function ZD(t,e,n){let i=0,r=t.length>>n;for(;r!==i;){const s=i+(r-i>>1),o=t[s<e?r=s:i=s+1}return~(r<{n.push(o)};return vp(e,o=>{const a=o;nf(a,s,[],i)&&(r||(r=[]),r.push(a))}),r!==void 0&&qb(r,s),n}function qb(t,e){for(let n=0;n{e(s,i)})}}function nf(t,e,n,i){if(t=ut(t),!t)return!1;let r=null,s=cy(t);const o=!s&&tr(t);if(!s&&!o){const c=t.ngModule;if(s=cy(c),s)r=c;else return!1}else{if(o&&!o.standalone)return!1;r=t}const a=i.has(r);if(o){if(a)return!1;if(i.add(r),o.dependencies){const c=typeof o.dependencies=="function"?o.dependencies():o.dependencies;for(const u of c)nf(u,e,n,i)}}else if(s){if(s.imports!=null&&!a){i.add(r);let u;try{vp(s.imports,h=>{nf(h,e,n,i)&&(u||(u=[]),u.push(h))})}finally{}u!==void 0&&qb(u,e)}if(!a){const u=ci(r)||(()=>new r);e({provide:r,useFactory:u,deps:bt},r),e({provide:$b,useValue:r,multi:!0},r),e({provide:vs,useValue:()=>ie(r),multi:!0},r)}const c=s.providers;if(c!=null&&!a){const u=t;Cp(c,h=>{e(h,u)})}}else return!1;return r!==t&&t.providers!==void 0}function Cp(t,e){for(let n of t)Bb(n)&&(n=n.ɵproviders),Array.isArray(n)?Cp(n,e):e(n)}const QD=Oe({provide:String,useValue:Oe});function Zb(t){return t!==null&&typeof t=="object"&&QD in t}function XD(t){return!!(t&&t.useExisting)}function JD(t){return!!(t&&t.useFactory)}function bs(t){return typeof t=="function"}function eI(t){return!!t.useClass}const Sp=new B(""),sl={},tI={};let Ju;function zc(){return Ju===void 0&&(Ju=new Wb),Ju}class Yt{}class Tp extends Yt{constructor(n,i,r,s){super();l(this,"parent");l(this,"source");l(this,"scopes");l(this,"records",new Map);l(this,"_ngOnDestroyHooks",new Set);l(this,"_onDestroyHooks",[]);l(this,"_destroyed",!1);l(this,"injectorDefTypes");this.parent=i,this.source=r,this.scopes=s,sf(n,a=>this.processProvider(a)),this.records.set(Vb,Wi(void 0,this)),s.has("environment")&&this.records.set(Yt,Wi(void 0,this));const o=this.records.get(Sp);o!=null&&typeof o.value=="string"&&this.scopes.add(o.value),this.injectorDefTypes=new Set(this.get($b,bt,ve.Self))}get destroyed(){return this._destroyed}destroy(){no(this),this._destroyed=!0;const n=_e(null);try{for(const r of this._ngOnDestroyHooks)r.ngOnDestroy();const i=this._onDestroyHooks;this._onDestroyHooks=[];for(const r of i)r()}finally{this.records.clear(),this._ngOnDestroyHooks.clear(),this.injectorDefTypes.clear(),_e(n)}}onDestroy(n){return no(this),this._onDestroyHooks.push(n),()=>this.removeOnDestroy(n)}runInContext(n){no(this);const i=gr(this),r=Ct(void 0);try{return n()}finally{gr(i),Ct(r)}}get(n,i=Io,r=ve.Default){if(no(this),n.hasOwnProperty(hy))return n[hy](this);r=Bc(r);const s=gr(this),o=Ct(void 0);try{if(!(r&ve.SkipSelf)){let c=this.records.get(n);if(c===void 0){const u=oI(n)&&Mc(n);u&&this.injectableDefInScope(u)?c=Wi(rf(n),sl):c=null,this.records.set(n,c)}if(c!=null)return this.hydrate(n,c)}const a=r&ve.Self?zc():this.parent;return i=r&ve.Optional&&i===Io?null:i,a.get(n,i)}catch(a){if(a.name==="NullInjectorError"){if((a[Bl]=a[Bl]||[]).unshift(Mt(n)),s)throw a;return zD(a,n,"R3InjectorError",this.source)}else throw a}finally{Ct(o),gr(s)}}resolveInjectorInitializers(){const n=_e(null),i=gr(this),r=Ct(void 0);try{const s=this.get(vs,bt,ve.Self);for(const o of s)o()}finally{gr(i),Ct(r),_e(n)}}toString(){const n=[],i=this.records;for(const r of i.keys())n.push(Mt(r));return`R3Injector[${n.join(", ")}]`}processProvider(n){n=ut(n);let i=bs(n)?n:ut(n&&n.provide);const r=rI(n);if(!bs(n)&&n.multi===!0){let s=this.records.get(i);s||(s=Wi(void 0,sl,!0),s.factory=()=>tf(s.multi),this.records.set(i,s)),i=n,s.multi.push(n)}this.records.set(i,r)}hydrate(n,i){const r=_e(null);try{return i.value===sl&&(i.value=tI,i.value=i.factory()),typeof i.value=="object"&&i.value&&sI(i.value)&&this._ngOnDestroyHooks.add(i.value),i.value}finally{_e(r)}}injectableDefInScope(n){if(!n.providedIn)return!1;const i=ut(n.providedIn);return typeof i=="string"?i==="any"||this.scopes.has(i):this.injectorDefTypes.has(i)}removeOnDestroy(n){const i=this._onDestroyHooks.indexOf(n);i!==-1&&this._onDestroyHooks.splice(i,1)}}function rf(t){const e=Mc(t),n=e!==null?e.factory:ci(t);if(n!==null)return n;if(t instanceof B)throw new x(204,!1);if(t instanceof Function)return nI(t);throw new x(204,!1)}function nI(t){if(t.length>0)throw new x(204,!1);const n=TD(t);return n!==null?()=>n.factory(t):()=>new t}function rI(t){if(Zb(t))return Wi(void 0,t.useValue);{const e=Yb(t);return Wi(e,sl)}}function Yb(t,e,n){let i;if(bs(t)){const r=ut(t);return ci(r)||rf(r)}else if(Zb(t))i=()=>ut(t.useValue);else if(JD(t))i=()=>t.useFactory(...tf(t.deps||[]));else if(XD(t))i=()=>ie(ut(t.useExisting));else{const r=ut(t&&(t.useClass||t.provide));if(iI(t))i=()=>new r(...tf(t.deps));else return ci(r)||rf(r)}return i}function no(t){if(t.destroyed)throw new x(205,!1)}function Wi(t,e,n=!1){return{factory:t,value:e,multi:n?[]:void 0}}function iI(t){return!!t.deps}function sI(t){return t!==null&&typeof t=="object"&&typeof t.ngOnDestroy=="function"}function oI(t){return typeof t=="function"||typeof t=="object"&&t instanceof B}function sf(t,e){for(const n of t)Array.isArray(n)?sf(n,e):n&&Bb(n)?sf(n.ɵproviders,e):e(n)}function gn(t,e){t instanceof Tp&&no(t);const n=gr(t),i=Ct(void 0);try{return e()}finally{gr(n),Ct(i)}}function Kb(){return jb()!==void 0||MD()!=null}function Ap(t){if(!Kb())throw new x(-203,!1)}function aI(t){return typeof t=="function"}const zt=0,Z=1,J=2,at=3,hn=4,It=5,Kt=6,ps=7,Et=8,Qt=9,nr=10,He=11,xo=12,dy=13,Os=14,kt=15,ui=16,Gi=17,fn=18,Hc=19,Qb=20,Er=21,eh=22,zl=23,Bt=24,Pe=25,Xb=1,rr=6,ir=7,Hl=8,Es=9,st=10;var Ul=function(t){return t[t.None=0]="None",t[t.HasTransplantedViews=2]="HasTransplantedViews",t}(Ul||{});function dn(t){return Array.isArray(t)&&typeof t[Xb]=="object"}function Bn(t){return Array.isArray(t)&&t[Xb]===!0}function kp(t){return(t.flags&4)!==0}function Jo(t){return t.componentOffset>-1}function Uc(t){return(t.flags&1)===1}function kr(t){return!!t.template}function Vl(t){return(t[J]&512)!==0}function of(t){return(t[J]&256)===256}class lI{constructor(e,n,i){l(this,"previousValue");l(this,"currentValue");l(this,"firstChange");this.previousValue=e,this.currentValue=n,this.firstChange=i}isFirstChange(){return this.firstChange}}function Jb(t,e,n,i){e!==null?e.applyValueToInputSignal(e,i):t[n]=i}const Ht=(()=>{const t=()=>eE;return t.ngInherit=!0,t})();function eE(t){return t.type.prototype.ngOnChanges&&(t.setInput=uI),cI}function cI(){const t=nE(this),e=t?.current;if(e){const n=t.previous;if(n===er)t.previous=e;else for(let i in e)n[i]=e[i];t.current=null,this.ngOnChanges(e)}}function uI(t,e,n,i,r){const s=this.declaredInputs[i],o=nE(t)||hI(t,{previous:er,current:null}),a=o.current||(o.current={}),c=o.previous,u=c[s];a[s]=new lI(u&&u.currentValue,n,c===er),Jb(t,e,r,n)}const tE="__ngSimpleChanges__";function nE(t){return t[tE]||null}function hI(t,e){return t[tE]=e}const rE=function(t,e,n){},iE="svg",fI="math";function mn(t){for(;Array.isArray(t);)t=t[zt];return t}function Dp(t,e){return mn(e[t])}function Ut(t,e){return mn(e[t.index])}function ea(t,e){return t.data[e]}function dI(t,e){return t[e]}function Lr(t,e){const n=e[t];return dn(n)?n:n[zt]}function pI(t){return(t[J]&4)===4}function Ip(t){return(t[J]&128)===128}function mI(t){return Bn(t[at])}function hi(t,e){return e==null?null:t[e]}function sE(t){t[Gi]=0}function xp(t){t[J]&1024||(t[J]|=1024,Ip(t)&&$c(t))}function gI(t,e){for(;t>0;)e=e[Os],t--;return e}function Vc(t){return!!(t[J]&9216||t[Bt]?.dirty)}function af(t){t[nr].changeDetectionScheduler?.notify(9),t[J]&64&&(t[J]|=1024),Vc(t)&&$c(t)}function $c(t){t[nr].changeDetectionScheduler?.notify(0);let e=fi(t);for(;e!==null&&!(e[J]&8192||(e[J]|=8192,!Ip(e)));)e=fi(e)}function Wc(t,e){if((t[J]&256)===256)throw new x(911,!1);t[Er]===null&&(t[Er]=[]),t[Er].push(e)}function Rp(t,e){if(t[Er]===null)return;const n=t[Er].indexOf(e);n!==-1&&t[Er].splice(n,1)}function fi(t){const e=t[at];return Bn(e)?e[at]:e}const ye={lFrame:hE(null),bindingsEnabled:!0,skipHydrationRootTNode:null};let lf=!1;function yI(){return ye.lFrame.elementDepthCount}function _I(){ye.lFrame.elementDepthCount++}function vI(){ye.lFrame.elementDepthCount--}function Ps(){return ye.skipHydrationRootTNode!==null}function bI(t){return ye.skipHydrationRootTNode===t}function EI(t){ye.skipHydrationRootTNode=t}function wI(){ye.skipHydrationRootTNode=null}function se(){return ye.lFrame.lView}function We(){return ye.lFrame.tView}function CI(t){return ye.lFrame.contextLView=t,t[Et]}function SI(t){return ye.lFrame.contextLView=null,t}function ft(){let t=oE();for(;t!==null&&t.type===64;)t=t.parent;return t}function oE(){return ye.lFrame.currentTNode}function TI(){const t=ye.lFrame,e=t.currentTNode;return t.isParent?e:e.parent}function Mr(t,e){const n=ye.lFrame;n.currentTNode=t,n.isParent=e}function Fp(){return ye.lFrame.isParent}function Op(){ye.lFrame.isParent=!1}function aE(){return lf}function py(t){const e=lf;return lf=t,e}function Pp(){const t=ye.lFrame;let e=t.bindingRootIndex;return e===-1&&(e=t.bindingRootIndex=t.tView.bindingStartIndex),e}function AI(t){return ye.lFrame.bindingIndex=t}function Ns(){return ye.lFrame.bindingIndex++}function lE(t){const e=ye.lFrame,n=e.bindingIndex;return e.bindingIndex=e.bindingIndex+t,n}function kI(){return ye.lFrame.inI18n}function DI(t,e){const n=ye.lFrame;n.bindingIndex=n.bindingRootIndex=t,cf(e)}function II(){return ye.lFrame.currentDirectiveIndex}function cf(t){ye.lFrame.currentDirectiveIndex=t}function xI(t){const e=ye.lFrame.currentDirectiveIndex;return e===-1?null:t[e]}function Np(){return ye.lFrame.currentQueryIndex}function Gc(t){ye.lFrame.currentQueryIndex=t}function RI(t){const e=t[Z];return e.type===2?e.declTNode:e.type===1?t[It]:null}function cE(t,e,n){if(n&ve.SkipSelf){let r=e,s=t;for(;r=r.parent,r===null&&!(n&ve.Host);)if(r=RI(s),r===null||(s=s[Os],r.type&10))break;if(r===null)return!1;e=r,t=s}const i=ye.lFrame=uE();return i.currentTNode=e,i.lView=t,!0}function Lp(t){const e=uE(),n=t[Z];ye.lFrame=e,e.currentTNode=n.firstChild,e.lView=t,e.tView=n,e.contextLView=t,e.bindingIndex=n.bindingStartIndex,e.inI18n=!1}function uE(){const t=ye.lFrame,e=t===null?null:t.child;return e===null?hE(t):e}function hE(t){const e={currentTNode:null,isParent:!0,lView:null,tView:null,selectedIndex:-1,contextLView:null,elementDepthCount:0,currentNamespace:null,currentDirectiveIndex:-1,bindingRootIndex:-1,bindingIndex:-1,currentQueryIndex:0,parent:t,child:null,inI18n:!1};return t!==null&&(t.child=e),e}function fE(){const t=ye.lFrame;return ye.lFrame=t.parent,t.currentTNode=null,t.lView=null,t}const dE=fE;function Mp(){const t=fE();t.isParent=!0,t.tView=null,t.selectedIndex=-1,t.contextLView=null,t.elementDepthCount=0,t.currentDirectiveIndex=-1,t.currentNamespace=null,t.bindingRootIndex=-1,t.bindingIndex=-1,t.currentQueryIndex=0}function FI(t){return(ye.lFrame.contextLView=gI(t,ye.lFrame.contextLView))[Et]}function Br(){return ye.lFrame.selectedIndex}function di(t){ye.lFrame.selectedIndex=t}function Bp(){const t=ye.lFrame;return ea(t.tView,t.selectedIndex)}function m7(){ye.lFrame.currentNamespace=iE}function pE(){return ye.lFrame.currentNamespace}let mE=!0;function qc(){return mE}function jr(t){mE=t}function OI(t,e,n){const{ngOnChanges:i,ngOnInit:r,ngDoCheck:s}=e.type.prototype;if(i){const o=eE(e);(n.preOrderHooks??(n.preOrderHooks=[])).push(t,o),(n.preOrderCheckHooks??(n.preOrderCheckHooks=[])).push(t,o)}r&&(n.preOrderHooks??(n.preOrderHooks=[])).push(0-t,r),s&&((n.preOrderHooks??(n.preOrderHooks=[])).push(t,s),(n.preOrderCheckHooks??(n.preOrderCheckHooks=[])).push(t,s))}function Zc(t,e){for(let n=e.directiveStart,i=e.directiveEnd;n=i)break}else e[c]<0&&(t[Gi]+=65536),(a>14>16&&(t[J]&3)===e&&(t[J]+=16384,my(a,s)):my(a,s)}const ms=-1;class ta{constructor(e,n,i){l(this,"factory");l(this,"injectImpl");l(this,"resolving",!1);l(this,"canSeeViewProviders");l(this,"multi");l(this,"componentProviders");l(this,"index");l(this,"providerFactory");this.factory=e,this.canSeeViewProviders=n,this.injectImpl=i}}function NI(t){return t instanceof ta}function LI(t){return(t.flags&8)!==0}function MI(t){return(t.flags&16)!==0}function uf(t,e,n){let i=0;for(;ie){o=s-1;break}}}for(;s>16}function Wl(t,e){let n=jI(t),i=e;for(;n>0;)i=i[Os],n--;return i}let hf=!0;function Gl(t){const e=hf;return hf=t,e}const zI=256,vE=zI-1,bE=5;let HI=0;const Dn={};function UI(t,e,n){let i;typeof n=="string"?i=n.charCodeAt(0)||0:n.hasOwnProperty(uo)&&(i=n[uo]),i==null&&(i=n[uo]=HI++);const r=i&vE,s=1<>bE)]|=s}function ql(t,e){const n=EE(t,e);if(n!==-1)return n;const i=e[Z];i.firstCreatePass&&(t.injectorIndex=e.length,rh(i.data,t),rh(e,null),rh(i.blueprint,null));const r=jp(t,e),s=t.injectorIndex;if(_E(r)){const o=$l(r),a=Wl(r,e),c=a[Z].data;for(let u=0;u<8;u++)e[s+u]=a[o+u]|c[o+u]}return e[s+8]=r,s}function rh(t,e){t.push(0,0,0,0,0,0,0,0,e)}function EE(t,e){return t.injectorIndex===-1||t.parent&&t.parent.injectorIndex===t.injectorIndex||e[t.injectorIndex+8]===null?-1:t.injectorIndex}function jp(t,e){if(t.parent&&t.parent.injectorIndex!==-1)return t.parent.injectorIndex;let n=0,i=null,r=e;for(;r!==null;){if(i=AE(r),i===null)return ms;if(n++,r=r[Os],i.injectorIndex!==-1)return i.injectorIndex|n<<16}return ms}function ff(t,e,n){UI(t,e,n)}function VI(t,e){const n=t.attrs;if(n){const i=n.length;let r=0;for(;r>20,f=i?a:a+h,d=r?a+h:u;for(let p=f;p=c&&m.type===n)return p}if(r){const p=o[c];if(p&&kr(p)&&p.type===n)return c}return null}function pi(t,e,n,i){let r=t[n];const s=e.data;if(NI(r)){const o=r;o.resolving&&FD(RD(s[n]));const a=Gl(o.canSeeViewProviders);o.resolving=!0;const c=o.injectImpl?Ct(o.injectImpl):null;cE(t,i,ve.Default);try{r=t[n]=o.factory(void 0,s,t,i),e.firstCreatePass&&n>=i.directiveStart&&OI(n,s[n],e)}finally{c!==null&&Ct(c),Gl(a),o.resolving=!1,dE()}}return r}function WI(t){if(typeof t=="string")return t.charCodeAt(0)||0;const e=t.hasOwnProperty(uo)?t[uo]:void 0;return typeof e=="number"?e>=0?e&vE:GI:e}function yy(t,e,n){const i=1<>bE)]&i)}function _y(t,e){return!(t&ve.Self)&&!(t&ve.Host&&e)}class ho{constructor(e,n){l(this,"_tNode");l(this,"_lView");this._tNode=e,this._lView=n}get(e,n,i){return SE(this._tNode,this._lView,e,Bc(i),n)}}function GI(){return new ho(ft(),se())}function ki(t){return Yo(()=>{const e=t.prototype.constructor,n=e[Ml]||df(e),i=Object.prototype;let r=Object.getPrototypeOf(t.prototype).constructor;for(;r&&r!==i;){const s=r[Ml]||df(r);if(s&&s!==n)return s;r=Object.getPrototypeOf(r)}return s=>new s})}function df(t){return Nb(t)?()=>{const e=df(ut(t));return e&&e()}:ci(t)}function qI(t,e,n,i,r){let s=t,o=e;for(;s!==null&&o!==null&&o[J]&2048&&!(o[J]&512);){const a=TE(s,o,n,i|ve.Self,Dn);if(a!==Dn)return a;let c=s.parent;if(!c){const u=o[Qb];if(u){const h=u.get(n,Dn,i);if(h!==Dn)return h}c=AE(o),o=o[Os]}s=c}return r}function AE(t){const e=t[Z],n=e.type;return n===2?e.declTNode:n===1?t[It]:null}function ZI(t){return VI(ft(),t)}function vy(t,e=null,n=null,i){const r=kE(t,e,n,i);return r.resolveInjectorInitializers(),r}function kE(t,e=null,n=null,i,r=new Set){const s=[n||bt,KD(t)];return i=i||(typeof t=="object"?void 0:Mt(t)),new Tp(s,e||zc(),i||null,r)}let gt=(()=>{const e=class e{static create(i,r){if(Array.isArray(i))return vy({name:""},r,i,"");{const s=i.name??"";return vy({name:s},i.parent,i.providers,s)}}};l(e,"THROW_IF_NOT_FOUND",Io),l(e,"NULL",new Wb),l(e,"ɵprov",O({token:e,providedIn:"any",factory:()=>ie(Vb)})),l(e,"__NG_ELEMENT_ID__",-1);let t=e;return t})();const YI=new B("");YI.__NG_ELEMENT_ID__=t=>{const e=ft();if(e===null)throw new x(204,!1);if(e.type&2)return e.value;if(t&ve.Optional)return null;throw new x(204,!1)};const DE=!1;let na=(()=>{class e{}return l(e,"__NG_ELEMENT_ID__",QI),l(e,"__NG_ENV_ID__",i=>i),e})();class KI extends na{constructor(n){super();l(this,"_lView");this._lView=n}onDestroy(n){return Wc(this._lView,n),()=>Rp(this._lView,n)}}function QI(){return new KI(se())}class Yc{}const IE=new B("",{providedIn:"root",factory:()=>!1}),xE=new B(""),RE=new B("");let zr=(()=>{const n=class n{constructor(){l(this,"taskId",0);l(this,"pendingTasks",new Set);l(this,"hasPendingTasks",new Pt(!1))}get _hasPendingTasks(){return this.hasPendingTasks.value}add(){this._hasPendingTasks||this.hasPendingTasks.next(!0);const r=this.taskId++;return this.pendingTasks.add(r),r}has(r){return this.pendingTasks.has(r)}remove(r){this.pendingTasks.delete(r),this.pendingTasks.size===0&&this._hasPendingTasks&&this.hasPendingTasks.next(!1)}ngOnDestroy(){this.pendingTasks.clear(),this._hasPendingTasks&&this.hasPendingTasks.next(!1)}};l(n,"ɵprov",O({token:n,providedIn:"root",factory:()=>new n}));let e=n;return e})();class XI extends oe{constructor(n=!1){super();l(this,"__isAsync");l(this,"destroyRef");l(this,"pendingTasks");this.__isAsync=n,Kb()&&(this.destroyRef=g(na,{optional:!0})??void 0,this.pendingTasks=g(zr,{optional:!0})??void 0)}emit(n){const i=_e(null);try{super.next(n)}finally{_e(i)}}subscribe(n,i,r){let s=n,o=i||(()=>null),a=r;if(n&&typeof n=="object"){const u=n;s=u.next?.bind(u),o=u.error?.bind(u),a=u.complete?.bind(u)}this.__isAsync&&(o=this.wrapInTimeout(o),s&&(s=this.wrapInTimeout(s)),a&&(a=this.wrapInTimeout(a)));const c=super.subscribe({next:s,error:o,complete:a});return n instanceof Je&&n.add(c),c}wrapInTimeout(n){return i=>{const r=this.pendingTasks?.add();setTimeout(()=>{n(i),r!==void 0&&this.pendingTasks?.remove(r)})}}}const Ue=XI;function Zl(...t){}function FE(t){let e,n;function i(){t=Zl;try{n!==void 0&&typeof cancelAnimationFrame=="function"&&cancelAnimationFrame(n),e!==void 0&&clearTimeout(e)}catch{}}return e=setTimeout(()=>{t(),i()}),typeof requestAnimationFrame=="function"&&(n=requestAnimationFrame(()=>{t(),i()})),()=>i()}function by(t){return queueMicrotask(()=>t()),()=>{t=Zl}}const zp="isAngularZone",Yl=zp+"_ID";let JI=0;class ge{constructor(e){l(this,"hasPendingMacrotasks",!1);l(this,"hasPendingMicrotasks",!1);l(this,"isStable",!0);l(this,"onUnstable",new Ue(!1));l(this,"onMicrotaskEmpty",new Ue(!1));l(this,"onStable",new Ue(!1));l(this,"onError",new Ue(!1));const{enableLongStackTrace:n=!1,shouldCoalesceEventChangeDetection:i=!1,shouldCoalesceRunChangeDetection:r=!1,scheduleInRootZone:s=DE}=e;if(typeof Zone>"u")throw new x(908,!1);Zone.assertZonePatched();const o=this;o._nesting=0,o._outer=o._inner=Zone.current,Zone.TaskTrackingZoneSpec&&(o._inner=o._inner.fork(new Zone.TaskTrackingZoneSpec)),n&&Zone.longStackTraceZoneSpec&&(o._inner=o._inner.fork(Zone.longStackTraceZoneSpec)),o.shouldCoalesceEventChangeDetection=!r&&i,o.shouldCoalesceRunChangeDetection=r,o.callbackScheduled=!1,o.scheduleInRootZone=s,nx(o)}static isInAngularZone(){return typeof Zone<"u"&&Zone.current.get(zp)===!0}static assertInAngularZone(){if(!ge.isInAngularZone())throw new x(909,!1)}static assertNotInAngularZone(){if(ge.isInAngularZone())throw new x(909,!1)}run(e,n,i){return this._inner.run(e,n,i)}runTask(e,n,i,r){const s=this._inner,o=s.scheduleEventTask("NgZoneEvent: "+r,e,ex,Zl,Zl);try{return s.runTask(o,n,i)}finally{s.cancelTask(o)}}runGuarded(e,n,i){return this._inner.runGuarded(e,n,i)}runOutsideAngular(e){return this._outer.run(e)}}const ex={};function Hp(t){if(t._nesting==0&&!t.hasPendingMicrotasks&&!t.isStable)try{t._nesting++,t.onMicrotaskEmpty.emit(null)}finally{if(t._nesting--,!t.hasPendingMicrotasks)try{t.runOutsideAngular(()=>t.onStable.emit(null))}finally{t.isStable=!0}}}function tx(t){if(t.isCheckStableRunning||t.callbackScheduled)return;t.callbackScheduled=!0;function e(){FE(()=>{t.callbackScheduled=!1,pf(t),t.isCheckStableRunning=!0,Hp(t),t.isCheckStableRunning=!1})}t.scheduleInRootZone?Zone.root.run(()=>{e()}):t._outer.run(()=>{e()}),pf(t)}function nx(t){const e=()=>{tx(t)},n=JI++;t._inner=t._inner.fork({name:"angular",properties:{[zp]:!0,[Yl]:n,[Yl+n]:!0},onInvokeTask:(i,r,s,o,a,c)=>{if(ix(c))return i.invokeTask(s,o,a,c);try{return Ey(t),i.invokeTask(s,o,a,c)}finally{(t.shouldCoalesceEventChangeDetection&&o.type==="eventTask"||t.shouldCoalesceRunChangeDetection)&&e(),wy(t)}},onInvoke:(i,r,s,o,a,c,u)=>{try{return Ey(t),i.invoke(s,o,a,c,u)}finally{t.shouldCoalesceRunChangeDetection&&!t.callbackScheduled&&!sx(c)&&e(),wy(t)}},onHasTask:(i,r,s,o)=>{i.hasTask(s,o),r===s&&(o.change=="microTask"?(t._hasPendingMicrotasks=o.microTask,pf(t),Hp(t)):o.change=="macroTask"&&(t.hasPendingMacrotasks=o.macroTask))},onHandleError:(i,r,s,o)=>(i.handleError(s,o),t.runOutsideAngular(()=>t.onError.emit(o)),!1)})}function pf(t){t._hasPendingMicrotasks||(t.shouldCoalesceEventChangeDetection||t.shouldCoalesceRunChangeDetection)&&t.callbackScheduled===!0?t.hasPendingMicrotasks=!0:t.hasPendingMicrotasks=!1}function Ey(t){t._nesting++,t.isStable&&(t.isStable=!1,t.onUnstable.emit(null))}function wy(t){t._nesting--,Hp(t)}class rx{constructor(){l(this,"hasPendingMicrotasks",!1);l(this,"hasPendingMacrotasks",!1);l(this,"isStable",!0);l(this,"onUnstable",new Ue);l(this,"onMicrotaskEmpty",new Ue);l(this,"onStable",new Ue);l(this,"onError",new Ue)}run(e,n,i){return e.apply(n,i)}runGuarded(e,n,i){return e.apply(n,i)}runOutsideAngular(e){return e()}runTask(e,n,i,r){return e.apply(n,i)}}function ix(t){return OE(t,"__ignore_ng_zone__")}function sx(t){return OE(t,"__scheduler_tick__")}function OE(t,e){return!Array.isArray(t)||t.length!==1?!1:t[0]?.data?.[e]===!0}class Di{constructor(){l(this,"_console",console)}handleError(e){this._console.error("ERROR",e)}}const ox=new B("",{providedIn:"root",factory:()=>{const t=g(ge),e=g(Di);return n=>t.runOutsideAngular(()=>e.handleError(n))}});class ax{constructor(){l(this,"destroyed",!1);l(this,"listeners",null);l(this,"errorHandler",g(Di,{optional:!0}));l(this,"destroyRef",g(na));this.destroyRef.onDestroy(()=>{this.destroyed=!0,this.listeners=null})}subscribe(e){if(this.destroyed)throw new x(953,!1);return(this.listeners??(this.listeners=[])).push(e),{unsubscribe:()=>{const n=this.listeners?.indexOf(e);n!==void 0&&n!==-1&&this.listeners?.splice(n,1)}}}emit(e){if(this.destroyed)throw new x(953,!1);if(this.listeners===null)return;const n=_e(null);try{for(const i of this.listeners)try{i(e)}catch(r){this.errorHandler?.handleError(r)}}finally{_e(n)}}}function lx(t){return new ax}function Cy(t,e){return Pb(t,e)}function cx(t){return Pb(Ob,t)}const Up=(Cy.required=cx,Cy);function ux(){return Ls(ft(),se())}function Ls(t,e){return new qe(Ut(t,e))}let qe=(()=>{class e{constructor(i){l(this,"nativeElement");this.nativeElement=i}}return l(e,"__NG_ELEMENT_ID__",ux),e})();function PE(t){return t instanceof qe?t.nativeElement:t}function hx(){return this._results[Symbol.iterator]()}var N0;N0=Symbol.iterator;class NE{constructor(e=!1){l(this,"_emitDistinctChangesOnly");l(this,"dirty",!0);l(this,"_onDirty");l(this,"_results",[]);l(this,"_changesDetected",!1);l(this,"_changes");l(this,"length",0);l(this,"first");l(this,"last");l(this,N0,hx);this._emitDistinctChangesOnly=e}get changes(){return this._changes??(this._changes=new oe)}get(e){return this._results[e]}map(e){return this._results.map(e)}filter(e){return this._results.filter(e)}find(e){return this._results.find(e)}reduce(e,n){return this._results.reduce(e,n)}forEach(e){this._results.forEach(e)}some(e){return this._results.some(e)}toArray(){return this._results.slice()}toString(){return this._results.toString()}reset(e,n){this.dirty=!1;const i=WD(e);(this._changesDetected=!$D(this._results,i,n))&&(this._results=i,this.length=i.length,this.last=i[this.length-1],this.first=i[0])}notifyOnChanges(){this._changes!==void 0&&(this._changesDetected||!this._emitDistinctChangesOnly)&&this._changes.next(this)}onDirty(e){this._onDirty=e}setDirty(){this.dirty=!0,this._onDirty?.()}destroy(){this._changes!==void 0&&(this._changes.complete(),this._changes.unsubscribe())}}const fx="ngSkipHydration",dx="ngskiphydration";function LE(t){const e=t.mergedAttrs;if(e===null)return!1;for(let n=0;nvx}),vx="ng",VE=new B(""),Jt=new B("",{providedIn:"platform",factory:()=>"unknown"}),$E=new B(""),Vp=new B("",{providedIn:"root",factory:()=>ra().body?.querySelector("[ngCspNonce]")?.getAttribute("ngCspNonce")||null});function bx(){const t=new Ms;return g(Jt)==="browser"&&(t.store=Ex(ra(),g(Kc))),t}let Ms=(()=>{const n=class n{constructor(){l(this,"store",{});l(this,"onSerializeCallbacks",{})}get(r,s){return this.store[r]!==void 0?this.store[r]:s}set(r,s){this.store[r]=s}remove(r){delete this.store[r]}hasKey(r){return this.store.hasOwnProperty(r)}get isEmpty(){return Object.keys(this.store).length===0}onSerialize(r,s){this.onSerializeCallbacks[r]=s}toJson(){for(const r in this.onSerializeCallbacks)if(this.onSerializeCallbacks.hasOwnProperty(r))try{this.store[r]=this.onSerializeCallbacks[r]()}catch(s){console.warn("Exception in onSerialize callback: ",s)}return JSON.stringify(this.store).replace(/QE}),Ax=new B("");var Wp=function(t){return t[t.CHANGE_DETECTION=0]="CHANGE_DETECTION",t[t.AFTER_NEXT_RENDER=1]="AFTER_NEXT_RENDER",t}(Wp||{});const Qc=new B(""),Ty=new Set;function jn(t){Ty.has(t)||(Ty.add(t),performance?.mark?.("mark_feature_usage",{detail:{feature:t}}))}var qi=function(t){return t[t.EarlyRead=0]="EarlyRead",t[t.Write=1]="Write",t[t.MixedReadWrite=2]="MixedReadWrite",t[t.Read=3]="Read",t}(qi||{});let JE=(()=>{const n=class n{constructor(){l(this,"impl",null)}execute(){this.impl?.execute()}};l(n,"ɵprov",O({token:n,providedIn:"root",factory:()=>new n}));let e=n;return e})();const kx=[qi.EarlyRead,qi.Write,qi.MixedReadWrite,qi.Read];let Dx=(()=>{const n=class n{constructor(){l(this,"ngZone",g(ge));l(this,"scheduler",g(Yc));l(this,"errorHandler",g(Di,{optional:!0}));l(this,"sequences",new Set);l(this,"deferredRegistrations",new Set);l(this,"executing",!1);g(Qc,{optional:!0})}execute(){this.executing=!0;for(const r of kx)for(const s of this.sequences)if(!(s.erroredOrDestroyed||!s.hooks[r]))try{s.pipelinedValue=this.ngZone.runOutsideAngular(()=>this.maybeTrace(()=>s.hooks[r](s.pipelinedValue),s.snapshot))}catch(o){s.erroredOrDestroyed=!0,this.errorHandler?.handleError(o)}this.executing=!1;for(const r of this.sequences)r.afterRun(),r.once&&(this.sequences.delete(r),r.destroy());for(const r of this.deferredRegistrations)this.sequences.add(r);this.deferredRegistrations.size>0&&this.scheduler.notify(8),this.deferredRegistrations.clear()}register(r){this.executing?this.deferredRegistrations.add(r):(this.sequences.add(r),this.scheduler.notify(7))}unregister(r){this.executing&&this.sequences.has(r)?(r.erroredOrDestroyed=!0,r.pipelinedValue=void 0,r.once=!0):(this.sequences.delete(r),this.deferredRegistrations.delete(r))}maybeTrace(r,s){return s?s.run(Wp.AFTER_NEXT_RENDER,r):r()}};l(n,"ɵprov",O({token:n,providedIn:"root",factory:()=>new n}));let e=n;return e})();class Ix{constructor(e,n,i,r,s=null){l(this,"impl");l(this,"hooks");l(this,"once");l(this,"snapshot");l(this,"erroredOrDestroyed",!1);l(this,"pipelinedValue");l(this,"unregisterOnDestroy");this.impl=e,this.hooks=n,this.once=i,this.snapshot=s,this.unregisterOnDestroy=r?.onDestroy(()=>this.destroy())}afterRun(){this.erroredOrDestroyed=!1,this.pipelinedValue=void 0,this.snapshot?.dispose(),this.snapshot=null}destroy(){this.impl.unregister(this),this.unregisterOnDestroy?.()}}function xx(t,e){!e?.injector&&Ap();const n=e?.injector??g(gt);return jn("NgAfterRender"),ew(t,n,e,!1)}function ws(t,e){!e?.injector&&Ap();const n=e?.injector??g(gt);return jn("NgAfterNextRender"),ew(t,n,e,!0)}function Rx(t,e){if(t instanceof Function){const n=[void 0,void 0,void 0,void 0];return n[e]=t,n}else return[t.earlyRead,t.write,t.mixedReadWrite,t.read]}function ew(t,e,n,i){const r=e.get(JE);r.impl??(r.impl=e.get(Dx));const s=e.get(Qc,null,{optional:!0}),o=n?.phase??qi.MixedReadWrite,a=n?.manualCleanup!==!0?e.get(na):null,c=new Ix(r.impl,Rx(t,o),i,a,s?.snapshot(null));return r.impl.register(c),c}var St=function(t){return t[t.NOT_STARTED=0]="NOT_STARTED",t[t.IN_PROGRESS=1]="IN_PROGRESS",t[t.COMPLETE=2]="COMPLETE",t[t.FAILED=3]="FAILED",t}(St||{});const Ay=0,Fx=1;var et=function(t){return t[t.Placeholder=0]="Placeholder",t[t.Loading=1]="Loading",t[t.Complete=2]="Complete",t[t.Error=3]="Error",t}(et||{}),Gp=function(t){return t[t.Initial=-1]="Initial",t}(Gp||{});const Ox=0,Xc=1,Px=4,Nx=5,Lx=6,Mx=7,ih=8,Bx=9;var tw=function(t){return t[t.Manual=0]="Manual",t[t.Playthrough=1]="Playthrough",t}(tw||{});/*! + * @license + * Copyright Google LLC All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.dev/license + */function nw(t,e,n){const i=iw(t);e[i]===null&&(e[i]=[]),e[i].push(n)}function ul(t,e){const n=iw(t),i=e[n];if(i!==null){for(const r of i)r();e[n]=null}}function rw(t){ul(1,t),ul(0,t),ul(2,t)}function iw(t){let e=Px;return t===1?e=Nx:t===2&&(e=Bx),e}function Jc(t){return t+1}function ia(t,e){t[Z];const n=Jc(e.index);return t[n]}function jx(t,e,n){t[Z];const i=Jc(e);t[i]=n}function sa(t,e){const n=Jc(e.index);return t.data[n]}function zx(t,e,n){const i=Jc(e);t.data[i]=n}function Hx(t,e,n){const i=e[Z],r=sa(i,n);switch(t){case et.Complete:return r.primaryTmplIndex;case et.Loading:return r.loadingTmplIndex;case et.Error:return r.errorTmplIndex;case et.Placeholder:return r.placeholderTmplIndex;default:return null}}function ky(t,e){return e===et.Placeholder?t.placeholderBlockConfig?.[Ay]??null:e===et.Loading?t.loadingBlockConfig?.[Ay]??null:null}function Ux(t){return t.loadingBlockConfig?.[Fx]??null}function Dy(t,e){if(!t||t.length===0)return e;const n=new Set(t);for(const i of e)n.add(i);return t.length===n.size?t:Array.from(n)}function Vx(t,e){const n=e.primaryTmplIndex+Pe;return ea(t,n)}const Mi=new WeakMap;let Bi=null,sh=0;class $x{constructor(){l(this,"callbacks",new Set);l(this,"listener",()=>{for(const e of this.callbacks)e()})}}function Wx(t,e,n){const i=n.get(ge);let r=Mi.get(t);return Bi=Bi||i.runOutsideAngular(()=>new IntersectionObserver(s=>{for(const o of s)o.isIntersecting&&Mi.has(o.target)&&i.run(Mi.get(o.target).listener)})),r||(r=new $x,i.runOutsideAngular(()=>Bi.observe(t)),Mi.set(t,r),sh++),r.callbacks.add(e),()=>{Mi.has(t)&&(r.callbacks.delete(e),r.callbacks.size===0&&(Bi?.unobserve(t),Mi.delete(t),sh--),sh===0&&(Bi?.disconnect(),Bi=null))}}function Gx(t,e,n){return t[e.index][st]??null}function qx(t,e){return Dp(Pe+e,t)}function Zx(t,e,n,i,r,s,o){const a=t[Qt],c=a.get(ge);function u(){if(of(t))return;const h=ia(t,e),f=h[Xc];if(f!==Gp.Initial&&f!==et.Placeholder)return;const d=Gx(t,e);if(!d){ws({read:u},{injector:a});return}if(of(d))return;const p=qx(d,n),m=r(p,()=>{c.run(()=>{t!==d&&Rp(d,m),s()})},a);t!==d&&Wc(d,m),nw(o,h,m)}ws({read:u},{injector:a})}const Yx=new B(""),Kx="__nghData__",sw=Kx,oh="ngh",Qx="nghm";let ow=()=>null;function Xx(t,e,n=!1){let i=t.getAttribute(oh);if(i==null)return null;const[r,s]=i.split("|");if(i=n?s:r,!i)return null;const o=s?`|${s}`:"",a=n?r:o;let c={};if(i!==""){const h=e.get(Ms,null,{optional:!0});h!==null&&(c=h.get(sw,[])[Number(i)])}const u={data:c,firstChild:t.firstChild??null};return n&&(u.firstChild=t,eu(u,0,t.nextSibling)),a?t.setAttribute(oh,a):t.removeAttribute(oh),u}function Jx(){ow=Xx}function qp(t,e,n=!1){return ow(t,e,n)}function eR(t){let e=t._lView;return e[Z].type===2?null:(Vl(e)&&(e=e[Pe]),e)}function tR(t){return t.textContent?.replace(/\s/gm,"")}function nR(t){const e=ra(),n=e.createNodeIterator(t,NodeFilter.SHOW_COMMENT,{acceptNode(s){const o=tR(s);return o==="ngetn"||o==="ngtns"?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_REJECT}});let i;const r=[];for(;i=n.nextNode();)r.push(i);for(const s of r)s.textContent==="ngetn"?s.replaceWith(e.createTextNode("")):s.remove()}function eu(t,e,n){t.segmentHeads??(t.segmentHeads={}),t.segmentHeads[e]=n}function _f(t,e){return t.segmentHeads?.[e]??null}function rR(t){return t.get(Ax,!1,{optional:!0})}function iR(t,e){const n=t.data;let i=n[wx]?.[e]??null;return i===null&&n[$p]?.[e]&&(i=Zp(t,e)),i}function aw(t,e){return t.data[$p]?.[e]??null}function Zp(t,e){const n=aw(t,e)??[];let i=0;for(let r of n)i+=r[Ql]*(r[qE]??1);return i}function sR(t){if(typeof t.disconnectedNodes>"u"){const e=t.data[ZE];t.disconnectedNodes=e?new Set(e):null}return t.disconnectedNodes}function oa(t,e){if(typeof t.disconnectedNodes>"u"){const n=t.data[ZE];t.disconnectedNodes=n?new Set(n):null}return!!sR(t)?.has(e)}var Zn=function(t){return t[t.Emulated=0]="Emulated",t[t.None=2]="None",t[t.ShadowDom=3]="ShadowDom",t}(Zn||{});let xa;function oR(){if(xa===void 0&&(xa=null,vr.trustedTypes))try{xa=vr.trustedTypes.createPolicy("angular",{createHTML:t=>t,createScript:t=>t,createScriptURL:t=>t})}catch{}return xa}function tu(t){return oR()?.createHTML(t)||t}let Ra;function lw(){if(Ra===void 0&&(Ra=null,vr.trustedTypes))try{Ra=vr.trustedTypes.createPolicy("angular#unsafe-bypass",{createHTML:t=>t,createScript:t=>t,createScriptURL:t=>t})}catch{}return Ra}function Iy(t){return lw()?.createHTML(t)||t}function xy(t){return lw()?.createScriptURL(t)||t}class Ii{constructor(e){l(this,"changingThisBreaksApplicationSecurity");this.changingThisBreaksApplicationSecurity=e}toString(){return`SafeValue must use [property]=binding: ${this.changingThisBreaksApplicationSecurity} (see ${Fb})`}}class aR extends Ii{getTypeName(){return"HTML"}}class lR extends Ii{getTypeName(){return"Style"}}class cR extends Ii{getTypeName(){return"Script"}}class uR extends Ii{getTypeName(){return"URL"}}class hR extends Ii{getTypeName(){return"ResourceURL"}}function Tn(t){return t instanceof Ii?t.changingThisBreaksApplicationSecurity:t}function yr(t,e){const n=fR(t);if(n!=null&&n!==e){if(n==="ResourceURL"&&e==="URL")return!0;throw new Error(`Required a safe ${e}, got a ${n} (see ${Fb})`)}return n===e}function fR(t){return t instanceof Ii&&t.getTypeName()||null}function dR(t){return new aR(t)}function pR(t){return new lR(t)}function mR(t){return new cR(t)}function gR(t){return new uR(t)}function yR(t){return new hR(t)}function _R(t){const e=new bR(t);return ER()?new vR(e):e}class vR{constructor(e){l(this,"inertDocumentHelper");this.inertDocumentHelper=e}getInertBodyElement(e){e=""+e;try{const n=new window.DOMParser().parseFromString(tu(e),"text/html").body;return n===null?this.inertDocumentHelper.getInertBodyElement(e):(n.firstChild?.remove(),n)}catch{return null}}}class bR{constructor(e){l(this,"defaultDoc");l(this,"inertDocument");this.defaultDoc=e,this.inertDocument=this.defaultDoc.implementation.createHTMLDocument("sanitization-inert")}getInertBodyElement(e){const n=this.inertDocument.createElement("template");return n.innerHTML=tu(e),n}}function ER(){try{return!!new window.DOMParser().parseFromString(tu(""),"text/html")}catch{return!1}}const wR=/^(?!javascript:)(?:[a-z0-9+.-]+:|[^&:\/?#]*(?:[\/?#]|$))/i;function Yp(t){return t=String(t),t.match(wR)?t:"unsafe:"+t}function cr(t){const e={};for(const n of t.split(","))e[n]=!0;return e}function aa(...t){const e={};for(const n of t)for(const i in n)n.hasOwnProperty(i)&&(e[i]=!0);return e}const cw=cr("area,br,col,hr,img,wbr"),uw=cr("colgroup,dd,dt,li,p,tbody,td,tfoot,th,thead,tr"),hw=cr("rp,rt"),CR=aa(hw,uw),SR=aa(uw,cr("address,article,aside,blockquote,caption,center,del,details,dialog,dir,div,dl,figure,figcaption,footer,h1,h2,h3,h4,h5,h6,header,hgroup,hr,ins,main,map,menu,nav,ol,pre,section,summary,table,ul")),TR=aa(hw,cr("a,abbr,acronym,audio,b,bdi,bdo,big,br,cite,code,del,dfn,em,font,i,img,ins,kbd,label,map,mark,picture,q,ruby,rp,rt,s,samp,small,source,span,strike,strong,sub,sup,time,track,tt,u,var,video")),Ry=aa(cw,SR,TR,CR),fw=cr("background,cite,href,itemtype,longdesc,poster,src,xlink:href"),AR=cr("abbr,accesskey,align,alt,autoplay,axis,bgcolor,border,cellpadding,cellspacing,class,clear,color,cols,colspan,compact,controls,coords,datetime,default,dir,download,face,headers,height,hidden,hreflang,hspace,ismap,itemscope,itemprop,kind,label,lang,language,loop,media,muted,nohref,nowrap,open,preload,rel,rev,role,rows,rowspan,rules,scope,scrolling,shape,size,sizes,span,srclang,srcset,start,summary,tabindex,target,title,translate,type,usemap,valign,value,vspace,width"),kR=cr("aria-activedescendant,aria-atomic,aria-autocomplete,aria-busy,aria-checked,aria-colcount,aria-colindex,aria-colspan,aria-controls,aria-current,aria-describedby,aria-details,aria-disabled,aria-dropeffect,aria-errormessage,aria-expanded,aria-flowto,aria-grabbed,aria-haspopup,aria-hidden,aria-invalid,aria-keyshortcuts,aria-label,aria-labelledby,aria-level,aria-live,aria-modal,aria-multiline,aria-multiselectable,aria-orientation,aria-owns,aria-placeholder,aria-posinset,aria-pressed,aria-readonly,aria-relevant,aria-required,aria-roledescription,aria-rowcount,aria-rowindex,aria-rowspan,aria-selected,aria-setsize,aria-sort,aria-valuemax,aria-valuemin,aria-valuenow,aria-valuetext"),DR=aa(fw,AR,kR),IR=cr("script,style,template");class xR{constructor(){l(this,"sanitizedSomething",!1);l(this,"buf",[])}sanitizeChildren(e){let n=e.firstChild,i=!0,r=[];for(;n;){if(n.nodeType===Node.ELEMENT_NODE?i=this.startElement(n):n.nodeType===Node.TEXT_NODE?this.chars(n.nodeValue):this.sanitizedSomething=!0,i&&n.firstChild){r.push(n),n=OR(n);continue}for(;n;){n.nodeType===Node.ELEMENT_NODE&&this.endElement(n);let s=FR(n);if(s){n=s;break}n=r.pop()}}return this.buf.join("")}startElement(e){const n=Fy(e).toLowerCase();if(!Ry.hasOwnProperty(n))return this.sanitizedSomething=!0,!IR.hasOwnProperty(n);this.buf.push("<"),this.buf.push(n);const i=e.attributes;for(let r=0;r"),!0}endElement(e){const n=Fy(e).toLowerCase();Ry.hasOwnProperty(n)&&!cw.hasOwnProperty(n)&&(this.buf.push(""))}chars(e){this.buf.push(Oy(e))}}function RR(t,e){return(t.compareDocumentPosition(e)&Node.DOCUMENT_POSITION_CONTAINED_BY)!==Node.DOCUMENT_POSITION_CONTAINED_BY}function FR(t){const e=t.nextSibling;if(e&&t!==e.previousSibling)throw dw(e);return e}function OR(t){const e=t.firstChild;if(e&&RR(t,e))throw dw(e);return e}function Fy(t){const e=t.nodeName;return typeof e=="string"?e:"FORM"}function dw(t){return new Error(`Failed to sanitize html because the element is clobbered: ${t.outerHTML}`)}const PR=/[\uD800-\uDBFF][\uDC00-\uDFFF]/g,NR=/([^\#-~ |!])/g;function Oy(t){return t.replace(/&/g,"&").replace(PR,function(e){const n=e.charCodeAt(0),i=e.charCodeAt(1);return"&#"+((n-55296)*1024+(i-56320)+65536)+";"}).replace(NR,function(e){return"&#"+e.charCodeAt(0)+";"}).replace(//g,">")}let Fa;function pw(t,e){let n=null;try{Fa=Fa||_R(t);let i=e?String(e):"";n=Fa.getInertBodyElement(i);let r=5,s=i;do{if(r===0)throw new Error("Failed to sanitize html because the input is unstable");r--,i=s,s=n.innerHTML,n=Fa.getInertBodyElement(i)}while(i!==s);const a=new xR().sanitizeChildren(Py(n)||n);return tu(a)}finally{if(n){const i=Py(n)||n;for(;i.firstChild;)i.firstChild.remove()}}}function Py(t){return"content"in t&&LR(t)?t.content:null}function LR(t){return t.nodeType===Node.ELEMENT_NODE&&t.nodeName==="TEMPLATE"}var Cn=function(t){return t[t.NONE=0]="NONE",t[t.HTML=1]="HTML",t[t.STYLE=2]="STYLE",t[t.SCRIPT=3]="SCRIPT",t[t.URL=4]="URL",t[t.RESOURCE_URL=5]="RESOURCE_URL",t}(Cn||{});function la(t){const e=Kp();return e?Iy(e.sanitize(Cn.HTML,t)||""):yr(t,"HTML")?Iy(Tn(t)):pw(ra(),Ko(t))}function MR(t){const e=Kp();return e?e.sanitize(Cn.URL,t)||"":yr(t,"URL")?Tn(t):Yp(Ko(t))}function BR(t){const e=Kp();if(e)return xy(e.sanitize(Cn.RESOURCE_URL,t)||"");if(yr(t,"ResourceURL"))return xy(Tn(t));throw new x(904,!1)}function jR(t,e){return t==="base"||t==="link"?BR:MR}function zR(t,e,n){return jR(e)(t)}function Kp(){const t=se();return t&&t[nr].sanitizer}const HR=/^>|^->||--!>|)/g,VR="​$1​";function $R(t){return t.replace(HR,e=>e.replace(UR,VR))}function WR(t){return t.ownerDocument.defaultView}function GR(t){return t.ownerDocument.body}function mw(t){return t instanceof Function?t():t}var Ir=function(t){return t[t.None=0]="None",t[t.SignalBased=1]="SignalBased",t[t.HasDecoratorInputTransform=2]="HasDecoratorInputTransform",t}(Ir||{}),Xr=function(t){return t[t.Important=1]="Important",t[t.DashCase=2]="DashCase",t}(Xr||{});let qR;function Qp(t,e){return qR(t,e)}function Zi(t,e,n,i,r){if(i!=null){let s,o=!1;Bn(i)?s=i:dn(i)&&(o=!0,i=i[zt]);const a=mn(i);t===0&&n!==null?r==null?Ew(e,n,a):Xl(e,n,a,r||null,!0):t===1&&n!==null?Xl(e,n,a,r||null,!0):t===2?em(e,a,o):t===3&&e.destroyNode(a),s!=null&&oF(e,t,s,n,r)}}function gw(t,e){return t.createText(e)}function ZR(t,e,n){t.setValue(e,n)}function yw(t,e){return t.createComment($R(e))}function Xp(t,e,n){return t.createElement(e,n)}function YR(t,e){_w(t,e),e[zt]=null,e[It]=null}function KR(t,e,n,i,r,s){i[zt]=r,i[It]=e,iu(t,i,n,1,r,s)}function _w(t,e){e[nr].changeDetectionScheduler?.notify(10),iu(t,e,e[He],2,null,null)}function QR(t){let e=t[xo];if(!e)return ah(t[Z],t);for(;e;){let n=null;if(dn(e))n=e[xo];else{const i=e[st];i&&(n=i)}if(!n){for(;e&&!e[hn]&&e!==t;)dn(e)&&ah(e[Z],e),e=e[at];e===null&&(e=t),dn(e)&&ah(e[Z],e),n=e&&e[hn]}e=n}}function XR(t,e,n,i){const r=st+i,s=n.length;i>0&&(n[r-1][hn]=e),i0&&(t[n-1][hn]=i[hn]);const s=jl(t,st+e);YR(i[Z],i);const o=s[fn];o!==null&&o.detachView(s[Z]),i[at]=null,i[hn]=null,i[J]&=-129}return i}function nu(t,e){if(!(e[J]&256)){const n=e[He];n.destroyNode&&iu(t,e,n,3,null,null),QR(e)}}function ah(t,e){if(e[J]&256)return;const n=_e(null);try{e[J]&=-129,e[J]|=256,e[Bt]&&J0(e[Bt]),eF(t,e),JR(t,e),e[Z].type===1&&e[He].destroy();const i=e[ui];if(i!==null&&Bn(e[at])){i!==e[at]&&Jp(i,e);const r=e[fn];r!==null&&r.detachView(t)}mf(e)}finally{_e(n)}}function JR(t,e){const n=t.cleanup,i=e[ps];if(n!==null)for(let o=0;o=0?i[a]():i[-a].unsubscribe(),o+=2}else{const a=i[n[o+1]];n[o].call(a)}i!==null&&(e[ps]=null);const r=e[Er];if(r!==null){e[Er]=null;for(let o=0;o-1){const{encapsulation:s}=t.data[i.directiveStart+r];if(s===Zn.None||s===Zn.Emulated)return null}return Ut(i,n)}}function Xl(t,e,n,i,r){t.insertBefore(e,n,i,r)}function Ew(t,e,n){t.appendChild(e,n)}function Ny(t,e,n,i,r){i!==null?Xl(t,e,n,i,r):Ew(t,e,n)}function ww(t,e){return t.parentNode(e)}function nF(t,e){return t.nextSibling(e)}function Cw(t,e,n){return iF(t,e,n)}function rF(t,e,n){return t.type&40?Ut(t,n):null}let iF=rF;function ru(t,e,n,i){const r=bw(t,i,e),s=e[He],o=i.parent||e[It],a=Cw(o,i,e);if(r!=null)if(Array.isArray(n))for(let c=0;c-1){let s;for(;++rs?f="":f=r[h+1].toLowerCase(),i&2&&u!==f){if(sn(i))return!1;o=!0}}}}return sn(i)||o}function sn(t){return(t&1)===0}function dF(t,e,n,i){if(e===null)return-1;let r=0;if(i||!n){let s=!1;for(;r-1)for(n++;n0?'="'+a+'"':"")+"]"}else i&8?r+="."+o:i&4&&(r+=" "+o);else r!==""&&!sn(o)&&(e+=Ly(s,r),r=""),i=o,s=s||!sn(i);n++}return r!==""&&(e+=Ly(s,r)),e}function _F(t){return t.map(yF).join(",")}function vF(t){const e=[],n=[];let i=1,r=2;for(;iPe&&xw(t,e,Pe,!1),rE(o?2:0,r),n(i,r)}finally{di(s)}}function rm(t,e,n){if(kp(e)){const i=_e(null);try{const r=e.directiveStart,s=e.directiveEnd;for(let o=r;onull;function TF(t){ME(t)?Tw(t):nR(t)}function AF(){Nw=TF}function kF(t,e,n,i){const r=Uw(e);r.push(n),t.firstCreatePass&&Vw(t).push(i,r.length-1)}function DF(t,e,n,i,r,s){let o=e?e.injectorIndex:-1,a=0;return Ps()&&(a|=128),{type:n,index:i,insertBeforeIndex:null,injectorIndex:o,directiveStart:-1,directiveEnd:-1,directiveStylingLast:-1,componentOffset:-1,propertyBindings:null,flags:a,providerIndexes:0,value:r,attrs:s,mergedAttrs:null,localNames:null,initialInputs:void 0,inputs:null,outputs:null,tView:null,next:null,prev:null,projectionNext:null,child:null,parent:e,projection:null,styles:null,stylesWithoutHost:null,residualStyles:void 0,classes:null,classesWithoutHost:null,residualClasses:void 0,classBindings:0,styleBindings:0}}function My(t,e,n,i,r){for(let s in e){if(!e.hasOwnProperty(s))continue;const o=e[s];if(o===void 0)continue;i??(i={});let a,c=Ir.None;Array.isArray(o)?(a=o[0],c=o[1]):a=o;let u=s;if(r!==null){if(!r.hasOwnProperty(s))continue;u=r[s]}t===0?By(i,n,u,a,c):By(i,n,u,a)}return i}function By(t,e,n,i,r){let s;t.hasOwnProperty(n)?(s=t[n]).push(e,i):s=t[n]=[e,i],r!==void 0&&s.push(r)}function IF(t,e,n){const i=e.directiveStart,r=e.directiveEnd,s=t.data,o=e.attrs,a=[];let c=null,u=null;for(let h=i;h0;){const n=t[--e];if(typeof n=="number"&&n<0)return n}return 0}function PF(t,e,n,i){const r=n.directiveStart,s=n.directiveEnd;Jo(n)&&HF(e,n,t.data[r+n.componentOffset]),t.firstCreatePass||ql(n,e),Dr(i,e);const o=n.initialInputs;for(let a=r;a{$c(t.lView)},consumerOnSignalRead(){this.lView[Bt]=this}};function tO(t){const e=t[Bt]??Object.create(nO);return e.lView=t,e}const nO={...Fc,consumerIsAlwaysLive:!0,consumerMarkedDirty:t=>{let e=fi(t.lView);for(;e&&!Gw(e[Z]);)e=fi(e);e&&xp(e)},consumerOnSignalRead(){this.lView[Bt]=this}};function Gw(t){return t.type!==2}function qw(t){if(t[zl]===null)return;let e=!0;for(;e;){let n=!1;for(const i of t[zl])i.dirty&&(n=!0,i.zone===null||Zone.current===i.zone?i.run():i.zone.run(()=>i.run()));e=n&&!!(t[J]&8192)}}const rO=100;function Zw(t,e=!0,n=0){const r=t[nr].rendererFactory;r.begin?.();try{iO(t,n)}catch(s){throw e&&au(t,s),s}finally{r.end?.()}}function iO(t,e){const n=aE();try{py(!0),wf(t,e);let i=0;for(;Vc(t);){if(i===rO)throw new x(103,!1);i++,wf(t,1)}}finally{py(n)}}function sO(t,e,n,i){const r=e[J];if((r&256)===256)return;const s=!1,o=!1;Lp(e);let a=!0,c=null,u=null;Gw(t)?(u=QF(e),c=Wh(u)):Wk()===null?(a=!1,u=tO(e),c=Wh(u)):e[Bt]&&(J0(e[Bt]),e[Bt]=null);try{sE(e),AI(t.bindingStartIndex),n!==null&&Ow(t,e,n,2,i);const h=(r&3)===3;if(!s)if(h){const p=t.preOrderCheckHooks;p!==null&&ol(e,p,null)}else{const p=t.preOrderHooks;p!==null&&al(e,p,0,null),th(e,0)}if(o||oO(e),qw(e),Yw(e,0),t.contentQueries!==null&&Hw(t,e),!s)if(h){const p=t.contentCheckHooks;p!==null&&ol(e,p)}else{const p=t.contentHooks;p!==null&&al(e,p,1),th(e,1)}bF(t,e);const f=t.components;f!==null&&Qw(e,f,0);const d=t.viewQuery;if(d!==null&&Ef(2,d,i),!s)if(h){const p=t.viewCheckHooks;p!==null&&ol(e,p)}else{const p=t.viewHooks;p!==null&&al(e,p,2),th(e,2)}if(t.firstUpdatePass===!0&&(t.firstUpdatePass=!1),e[eh]){for(const p of e[eh])p();e[eh]=null}s||(e[J]&=-73)}catch(h){throw $c(e),h}finally{u!==null&&(Q0(u,c),a&&JF(u)),Mp()}}function Yw(t,e){for(let n=zE(t);n!==null;n=HE(n))for(let i=st;i-1&&(Fo(e,i),jl(n,i))}this._attachedToViewContainer=!1}nu(this._lView[Z],this._lView)}onDestroy(e){Wc(this._lView,e)}markForCheck(){lu(this._cdRefInjectingView||this._lView,4)}markForRefresh(){xp(this._cdRefInjectingView||this._lView)}detach(){this._lView[J]&=-129}reattach(){af(this._lView),this._lView[J]|=128}detectChanges(){this._lView[J]|=1024,Zw(this._lView,this.notifyErrorHandler)}checkNoChanges(){}attachToViewContainerRef(){if(this._appRef)throw new x(902,!1);this._attachedToViewContainer=!0}detachFromAppRef(){this._appRef=null;const e=Vl(this._lView),n=this._lView[ui];n!==null&&!e&&Jp(n,this._lView),_w(this._lView[Z],this._lView)}attachToAppRef(e){if(this._attachedToViewContainer)throw new x(902,!1);this._appRef=e;const n=Vl(this._lView),i=this._lView[ui];i!==null&&!n&&vw(i,this._lView),af(this._lView)}}let xr=(()=>{class e{}return l(e,"__NG_ELEMENT_ID__",uO),e})();const lO=xr,cO=class extends lO{constructor(n,i,r){super();l(this,"_declarationLView");l(this,"_declarationTContainer");l(this,"elementRef");this._declarationLView=n,this._declarationTContainer=i,this.elementRef=r}get ssrId(){return this._declarationTContainer.tView?.ssrId||null}createEmbeddedView(n,i){return this.createEmbeddedViewImpl(n,i)}createEmbeddedViewImpl(n,i,r){const s=Bs(this._declarationLView,this._declarationTContainer,n,{embeddedViewInjector:i,dehydratedView:r});return new Oo(s)}};function uO(){return hm(ft(),se())}function hm(t,e){return t.type&4?new cO(e,t,Ls(t,e)):null}const hO=new RegExp(`^(\\d+)*(${GE}|${WE})*(.*)`);function fO(t){const e=t.match(hO),[n,i,r,s]=e,o=i?parseInt(i,10):r,a=[];for(const[c,u,h]of s.matchAll(/(f|n)(\d*)/g)){const f=parseInt(h,10)||1;a.push(u,f)}return[o,...a]}function dO(t){return!t.prev&&t.parent?.type===8}function lh(t){return t.index-Pe}function pO(t,e){const n=t.i18nNodes;if(n)return n.get(e)}function cu(t,e,n,i){const r=lh(i);let s=pO(t,r);if(s===void 0){const o=t.data[Tx];if(o?.[r])s=gO(o[r],n);else if(e.firstChild===i)s=t.firstChild;else{const a=i.prev===null,c=i.prev??i.parent;if(dO(i)){const u=lh(i.parent);s=_f(t,u)}else{let u=Ut(c,n);if(a)s=u.firstChild;else{const h=lh(c),f=_f(t,h);if(c.type===2&&f){const p=Zp(t,h)+1;s=uu(p,f)}else s=u.nextSibling}}}}return s}function uu(t,e){let n=e;for(let i=0;i0&&(s.firstChild=t,t=uu(i[Ql],t)),n.push(s)}return[t,n]}let eC=()=>null;function wO(t,e){const n=t[rr];return!e||n===null||n.length===0?null:n[0].data[Sx]===e?n.shift():(Xw(t),null)}function CO(){eC=wO}function Cs(t,e){return eC(t,e)}class SO{}class tC{}class TO{resolveComponentFactory(e){throw Error(`No component factory found for ${Mt(e)}.`)}}let hu=(()=>{class t{}return l(t,"NULL",new TO),t})();class Ri{}let zs=(()=>{class e{constructor(){l(this,"destroyNode",null)}}return l(e,"__NG_ELEMENT_ID__",()=>AO()),e})();function AO(){const t=se(),e=ft(),n=Lr(e.index,t);return(dn(n)?n:t)[He]}let kO=(()=>{const n=class n{};l(n,"ɵprov",O({token:n,providedIn:"root",factory:()=>null}));let e=n;return e})();function tc(t,e,n){let i=n?t.styles:null,r=n?t.classes:null,s=0;if(e!==null)for(let o=0;o0&&kw(t,n,s.join(" "))}}function NO(t,e,n){const i=t.projection=[];for(let r=0;r{class e{}return l(e,"__NG_ELEMENT_ID__",MO),e})();function MO(){const t=ft();return iC(t,se())}const BO=ur,rC=class extends BO{constructor(n,i,r){super();l(this,"_lContainer");l(this,"_hostTNode");l(this,"_hostLView");this._lContainer=n,this._hostTNode=i,this._hostLView=r}get element(){return Ls(this._hostTNode,this._hostLView)}get injector(){return new ho(this._hostTNode,this._hostLView)}get parentInjector(){const n=jp(this._hostTNode,this._hostLView);if(_E(n)){const i=Wl(n,this._hostLView),r=$l(n),s=i[Z].data[r+8];return new ho(s,i)}else return new ho(null,this._hostLView)}clear(){for(;this.length>0;)this.remove(this.length-1)}get(n){const i=zy(this._lContainer);return i!==null&&i[n]||null}get length(){return this._lContainer.length-st}createEmbeddedView(n,i,r){let s,o;typeof r=="number"?s=r:r!=null&&(s=r.index,o=r.injector);const a=Cs(this._lContainer,n.ssrId),c=n.createEmbeddedViewImpl(i||{},o,a);return this.insertImpl(c,s,mi(this._hostTNode,a)),c}createComponent(n,i,r,s,o){const a=n&&!aI(n);let c;if(a)c=i;else{const y=i||{};c=y.index,r=y.injector,s=y.projectableNodes,o=y.environmentInjector||y.ngModuleRef}const u=a?n:new fu(tr(n)),h=r||this.parentInjector;if(!o&&u.ngModule==null){const _=(a?h:this.parentInjector).get(Yt,null);_&&(o=_)}const f=tr(u.componentType??{}),d=Cs(this._lContainer,f?.id??null),p=d?.firstChild??null,m=u.create(h,s,p,o);return this.insertImpl(m.hostView,c,mi(this._hostTNode,d)),m}insert(n,i){return this.insertImpl(n,i,!0)}insertImpl(n,i,r){const s=n._lView;if(mI(s)){const c=this.indexOf(n);if(c!==-1)this.detach(c);else{const u=s[at],h=new rC(u,u[It],u[at]);h.detach(h.indexOf(n))}}const o=this._adjustIndex(i),a=this._lContainer;return js(a,s,o,r),n.attachToViewContainerRef(),Ub(ch(a),o,n),n}move(n,i){return this.insert(n,i)}indexOf(n){const i=zy(this._lContainer);return i!==null?i.indexOf(n):-1}remove(n){const i=this._adjustIndex(n,-1),r=Fo(this._lContainer,i);r&&(jl(ch(this._lContainer),i),nu(r[Z],r))}detach(n){const i=this._adjustIndex(n,-1),r=Fo(this._lContainer,i);return r&&jl(ch(this._lContainer),i)!=null?new Oo(r):null}_adjustIndex(n,i=0){return n??this.length+i}};function zy(t){return t[Hl]}function ch(t){return t[Hl]||(t[Hl]=[])}function iC(t,e){let n;const i=e[t.index];return Bn(i)?n=i:(n=zw(i,e,null,t),e[t.index]=n,ou(e,n)),sC(n,e,t,i),new rC(n,t,e)}function jO(t,e){const n=t[He],i=n.createComment(""),r=Ut(e,t),s=ww(n,r);return Xl(n,s,i,nF(n,r),!1),i}let sC=aC,fm=()=>!1;function oC(t,e,n){return fm(t,e,n)}function aC(t,e,n,i){if(t[ir])return;let r;n.type&8?r=mn(i):r=jO(e,n),t[ir]=r}function zO(t,e,n){if(t[ir]&&t[rr])return!0;const i=n[Kt],r=e.index-Pe;if(!i||px(e)||oa(i,r))return!1;const o=_f(i,r),a=i.data[$p]?.[r],[c,u]=EO(o,a);return t[ir]=c,t[rr]=u,!0}function HO(t,e,n,i){fm(t,n,e)||aC(t,e,n,i)}function UO(){sC=HO,fm=zO}class dm{constructor(e){l(this,"queryList");l(this,"matches",null);this.queryList=e}clone(){return new dm(this.queryList)}setDirty(){this.queryList.setDirty()}}class pm{constructor(e=[]){l(this,"queries");this.queries=e}createEmbeddedView(e){const n=e.queries;if(n!==null){const i=e.contentQueries!==null?e.contentQueries[0]:n.length,r=[];for(let s=0;s0)i.push(o[a/2]);else{const u=s[a+1],h=e[-c];for(let f=st;fe.trim())}function fC(t,e,n){t.queries===null&&(t.queries=new mm),t.queries.track(new gm(e,n))}function YO(t,e){const n=t.contentQueries||(t.contentQueries=[]),i=n.length?n[n.length-1]:-1;e!==i&&n.push(t.queries.length-1,e)}function _m(t,e){return t.queries.getByIndex(e)}function dC(t,e){const n=t[Z],i=_m(n,e);return i.crossesNgTemplate?Cf(n,t,e,[]):cC(n,t,i,e)}function pC(t,e){jn("NgSignals");const n=Xk(t),i=n[Qn];return n.set=r=>ep(i,r),n.update=r=>Jk(i,r),n.asReadonly=KO.bind(n),n}function KO(){const t=this[Qn];if(t.readonlyFn===void 0){const e=()=>this();e[Qn]=t,t.readonlyFn=e}return t.readonlyFn}function mC(t,e,n){let i;const r=Zk(()=>{i._dirtyCounter();const s=eP(i,t);if(e&&s===void 0)throw new x(-951,!1);return s});return i=r[Qn],i._dirtyCounter=pC(0),i._flatValue=void 0,r}function QO(t){return mC(!0,!1)}function XO(t){return mC(!0,!0)}function JO(t,e){const n=t[Qn];n._lView=se(),n._queryIndex=e,n._queryList=ym(n._lView,e),n._queryList.onDirty(()=>n._dirtyCounter.update(i=>i+1))}function eP(t,e){const n=t._lView,i=t._queryIndex;if(n===void 0||i===void 0||n[J]&4)return e?void 0:bt;const r=ym(n,i),s=dC(n,i);return r.reset(s,PE),e?r.first:r._changesDetected||t._flatValue===void 0?t._flatValue=r.toArray():t._flatValue}function Hy(t,e){return QO()}function tP(t,e){return XO()}const _7=(Hy.required=tP,Hy);class gi{}class gC{}class nP extends gi{constructor(n,i,r,s=!0){super();l(this,"ngModuleType");l(this,"_parent");l(this,"_bootstrapComponents",[]);l(this,"_r3Injector");l(this,"instance");l(this,"destroyCbs",[]);l(this,"componentFactoryResolver",new nC(this));this.ngModuleType=n,this._parent=i;const o=Gb(n);this._bootstrapComponents=mw(o.bootstrap),this._r3Injector=kE(n,i,[{provide:gi,useValue:this},{provide:hu,useValue:this.componentFactoryResolver},...r],Mt(n),new Set(["environment"])),s&&this.resolveInjectorInitializers()}resolveInjectorInitializers(){this._r3Injector.resolveInjectorInitializers(),this.instance=this._r3Injector.get(this.ngModuleType)}get injector(){return this._r3Injector}destroy(){const n=this._r3Injector;!n.destroyed&&n.destroy(),this.destroyCbs.forEach(i=>i()),this.destroyCbs=null}onDestroy(n){this.destroyCbs.push(n)}}class rP extends gC{constructor(n){super();l(this,"moduleType");this.moduleType=n}create(n){return new nP(this.moduleType,n,[])}}class yC extends gi{constructor(n){super();l(this,"injector");l(this,"componentFactoryResolver",new nC(this));l(this,"instance",null);const i=new Tp([...n.providers,{provide:gi,useValue:this},{provide:hu,useValue:this.componentFactoryResolver}],n.parent||zc(),n.debugName,new Set(["environment"]));this.injector=i,n.runEnvironmentInitializers&&i.resolveInjectorInitializers()}destroy(){this.injector.destroy()}onDestroy(n){this.injector.onDestroy(n)}}function vm(t,e,n=null){return new yC({providers:t,parent:e,debugName:n,runEnvironmentInitializers:!0}).injector}let iP=(()=>{const n=class n{constructor(r){l(this,"_injector");l(this,"cachedInjectors",new Map);this._injector=r}getOrCreateStandaloneInjector(r){if(!r.standalone)return null;if(!this.cachedInjectors.has(r)){const s=wp(!1,r.type),o=s.length>0?vm([s],this._injector,`Standalone[${r.type.name}]`):null;this.cachedInjectors.set(r,o)}return this.cachedInjectors.get(r)}ngOnDestroy(){try{for(const r of this.cachedInjectors.values())r!==null&&r.destroy()}finally{this.cachedInjectors.clear()}}};l(n,"ɵprov",O({token:n,providedIn:"environment",factory:()=>new n(ie(Yt))}));let e=n;return e})();function Ye(t){return Yo(()=>{const e=vC(t),n={...e,decls:t.decls,vars:t.vars,template:t.template,consts:t.consts||null,ngContentSelectors:t.ngContentSelectors,onPush:t.changeDetection===BE.OnPush,directiveDefs:null,pipeDefs:null,dependencies:e.standalone&&t.dependencies||null,getStandaloneInjector:e.standalone?r=>r.get(iP).getOrCreateStandaloneInjector(n):null,getExternalStyles:null,signals:t.signals??!1,data:t.data||{},encapsulation:t.encapsulation||Zn.Emulated,styles:t.styles||bt,_:null,schemas:t.schemas||null,tView:null,id:""};e.standalone&&jn("NgStandalone"),bC(n);const i=t.dependencies;return n.directiveDefs=Vy(i,!1),n.pipeDefs=Vy(i,!0),n.id=aP(n),n})}function sP(t){return tr(t)||jc(t)}function oP(t){return t!==null}function hr(t){return Yo(()=>({type:t.type,bootstrap:t.bootstrap||bt,declarations:t.declarations||bt,imports:t.imports||bt,exports:t.exports||bt,transitiveCompileScopes:null,schemas:t.schemas||null,id:t.id||null}))}function Uy(t,e){if(t==null)return er;const n={};for(const i in t)if(t.hasOwnProperty(i)){const r=t[i];let s,o,a=Ir.None;Array.isArray(r)?(a=r[0],s=r[1],o=r[2]??s):(s=r,o=r),e?(n[s]=a!==Ir.None?[i,a]:i,e[s]=o):n[s]=i}return n}function Ge(t){return Yo(()=>{const e=vC(t);return bC(e),e})}function _C(t){return{type:t.type,name:t.name,factory:null,pure:t.pure!==!1,standalone:t.standalone??!0,onDestroy:t.type.prototype.ngOnDestroy||null}}function vC(t){const e={};return{type:t.type,providersResolver:null,factory:null,hostBindings:t.hostBindings||null,hostVars:t.hostVars||0,hostAttrs:t.hostAttrs||null,contentQueries:t.contentQueries||null,declaredInputs:e,inputTransforms:null,inputConfig:t.inputs||er,exportAs:t.exportAs||null,standalone:t.standalone??!0,signals:t.signals===!0,selectors:t.selectors||bt,viewQuery:t.viewQuery||null,features:t.features||null,setInput:null,findHostDirectiveDefs:null,hostDirectives:null,inputs:Uy(t.inputs,e),outputs:Uy(t.outputs),debugInfo:null}}function bC(t){t.features?.forEach(e=>e(t))}function Vy(t,e){if(!t)return null;const n=e?Ep:sP;return()=>(typeof t=="function"?t():t).map(i=>n(i)).filter(oP)}function aP(t){let e=0;const n=typeof t.consts=="function"?"":t.consts,i=[t.selectors,t.ngContentSelectors,t.hostVars,t.hostAttrs,n,t.vars,t.decls,t.encapsulation,t.standalone,t.signals,t.exportAs,JSON.stringify(t.inputs),JSON.stringify(t.outputs),Object.getOwnPropertyNames(t.type.prototype),!!t.contentQueries,!!t.viewQuery];for(const s of i.join("|"))e=Math.imul(31,e)+s.charCodeAt(0)<<0;return e+=2147483648,"c"+e}function lP(t){return Object.getPrototypeOf(t.prototype).constructor}function _n(t){let e=lP(t.type),n=!0;const i=[t];for(;e;){let r;if(kr(t))r=e.ɵcmp||e.ɵdir;else{if(e.ɵcmp)throw new x(903,!1);r=e.ɵdir}if(r){if(n){i.push(r);const o=t;o.inputs=Oa(t.inputs),o.inputTransforms=Oa(t.inputTransforms),o.declaredInputs=Oa(t.declaredInputs),o.outputs=Oa(t.outputs);const a=r.hostBindings;a&&dP(t,a);const c=r.viewQuery,u=r.contentQueries;if(c&&hP(t,c),u&&fP(t,u),cP(t,r),wD(t.outputs,r.outputs),kr(r)&&r.data.animation){const h=t.data;h.animation=(h.animation||[]).concat(r.data.animation)}}const s=r.features;if(s)for(let o=0;o=0;i--){const r=t[i];r.hostVars=e+=r.hostVars,r.hostAttrs=Ro(r.hostAttrs,n=Ro(n,r.hostAttrs))}}function Oa(t){return t===er?{}:t===bt?[]:t}function hP(t,e){const n=t.viewQuery;n?t.viewQuery=(i,r)=>{e(i,r),n(i,r)}:t.viewQuery=e}function fP(t,e){const n=t.contentQueries;n?t.contentQueries=(i,r,s)=>{e(i,r,s),n(i,r,s)}:t.contentQueries=e}function dP(t,e){const n=t.hostBindings;n?t.hostBindings=(i,r)=>{e(i,r),n(i,r)}:t.hostBindings=e}function EC(t){const e=n=>{const i=Array.isArray(t);n.hostDirectives===null?(n.findHostDirectiveDefs=wC,n.hostDirectives=i?t.map(Sf):[t]):i?n.hostDirectives.unshift(...t.map(Sf)):n.hostDirectives.unshift(t)};return e.ngInherit=!0,e}function wC(t,e,n){if(t.hostDirectives!==null)for(const i of t.hostDirectives)if(typeof i=="function"){const r=i();for(const s of r)$y(Sf(s),e,n)}else $y(i,e,n)}function $y(t,e,n){const i=jc(t.directive);pP(i.declaredInputs,t.inputs),wC(i,e,n),n.set(i,t),e.push(i)}function Sf(t){return typeof t=="function"?{directive:ut(t),inputs:er,outputs:er}:{directive:ut(t.directive),inputs:Wy(t.inputs),outputs:Wy(t.outputs)}}function Wy(t){if(t===void 0||t.length===0)return er;const e={};for(let n=0;n{const n=class n{constructor(){l(this,"cachedInjectors",new Map)}getOrCreateInjector(r,s,o,a){if(!this.cachedInjectors.has(r)){const c=o.length>0?vm(o,s,a):null;this.cachedInjectors.set(r,c)}return this.cachedInjectors.get(r)}ngOnDestroy(){try{for(const r of this.cachedInjectors.values())r!==null&&r.destroy()}finally{this.cachedInjectors.clear()}}};l(n,"ɵprov",O({token:n,providedIn:"environment",factory:()=>new n}));let e=n;return e})();const wP=new B("");function uh(t,e,n){return t.get(EP).getOrCreateInjector(e,t,n,"")}function CP(t,e,n){if(t instanceof ll){const r=t.injector,s=t.parentInjector,o=uh(s,e,n);return new ll(r,o)}const i=t.get(Yt);if(i!==t){const r=uh(i,e,n);return new ll(t,r)}return uh(t,e,n)}function Jr(t,e,n,i=!1){const r=n[at],s=r[Z];if(of(r))return;const o=ia(r,e),a=o[Xc],c=o[Mx];if(!(c!==null&&tn.data[KE]===e[Xc])??null}function TP(t,e,n,i,r){const s=Hx(t,r,i);if(s!==null){e[Xc]=t;const o=r[Z],a=s+Pe,c=ea(o,a),u=0;um(n,u);let h;if(t===et.Complete){const p=sa(o,i),m=p.providers;m&&m.length>0&&(h=CP(r[Qt],p,m))}const f=SP(n,e);n[rr]=null;const d=Bs(r,c,null,{injector:h,dehydratedView:f});if(js(n,d,u,mi(c,f)),lu(d,2),(t===et.Complete||t===et.Error)&&Array.isArray(e[ih])){for(const p of e[ih])p();e[ih]=null}}}function Gy(t,e){return t{t.loadingState===St.COMPLETE?Jr(et.Complete,e,n):t.loadingState===St.FAILED&&Jr(et.Error,e,n)})}let kP=null,DP=(()=>{const n=class n{log(r){console.log(r)}warn(r){console.warn(r)}};l(n,"ɵfac",function(s){return new(s||n)}),l(n,"ɵprov",O({token:n,factory:n.ɵfac,providedIn:"platform"}));let e=n;return e})();const IP=new B("");function pu(t){return!!t&&typeof t.then=="function"}function kC(t){return!!t&&typeof t.subscribe=="function"}const xP=new B("");let DC=(()=>{const n=class n{constructor(){l(this,"resolve");l(this,"reject");l(this,"initialized",!1);l(this,"done",!1);l(this,"donePromise",new Promise((r,s)=>{this.resolve=r,this.reject=s}));l(this,"appInits",g(xP,{optional:!0})??[]);l(this,"injector",g(gt))}runInitializers(){if(this.initialized)return;const r=[];for(const o of this.appInits){const a=gn(this.injector,o);if(pu(a))r.push(a);else if(kC(a)){const c=new Promise((u,h)=>{a.subscribe({complete:u,error:h})});r.push(c)}}const s=()=>{this.done=!0,this.resolve()};Promise.all(r).then(()=>{s()}).catch(o=>{this.reject(o)}),r.length===0&&s(),this.initialized=!0}};l(n,"ɵfac",function(s){return new(s||n)}),l(n,"ɵprov",O({token:n,factory:n.ɵfac,providedIn:"root"}));let e=n;return e})(),RP=(()=>{const n=class n{};l(n,"ɵprov",O({token:n,providedIn:"root",factory:()=>new FP}));let e=n;return e})();class FP{constructor(){l(this,"queuedEffectCount",0);l(this,"queues",new Map)}schedule(e){this.enqueue(e)}enqueue(e){const n=e.zone;this.queues.has(n)||this.queues.set(n,new Set);const i=this.queues.get(n);i.has(e)||(this.queuedEffectCount++,i.add(e))}flush(){for(;this.queuedEffectCount>0;)for(const[e,n]of this.queues)e===null?this.flushQueue(n):e.run(()=>this.flushQueue(n))}flushQueue(e){for(const n of e)e.delete(n),this.queuedEffectCount--,n.run()}}const mu=new B("");function OP(){Qk(()=>{throw new x(600,!1)})}function PP(t){return t.isBoundToModule}const NP=10;function LP(t,e,n){try{const i=n();return pu(i)?i.catch(r=>{throw e.runOutsideAngular(()=>t.handleError(r)),r}):i}catch(i){throw e.runOutsideAngular(()=>t.handleError(i)),i}}let Mn=(()=>{const n=class n{constructor(){l(this,"_runningTick",!1);l(this,"_destroyed",!1);l(this,"_destroyListeners",[]);l(this,"_views",[]);l(this,"internalErrorHandler",g(ox));l(this,"afterRenderManager",g(JE));l(this,"zonelessEnabled",g(IE));l(this,"rootEffectScheduler",g(RP));l(this,"dirtyFlags",0);l(this,"deferredDirtyFlags",0);l(this,"tracingSnapshot",null);l(this,"externalTestViews",new Set);l(this,"afterTick",new oe);l(this,"componentTypes",[]);l(this,"components",[]);l(this,"isStable",g(zr).hasPendingTasks.pipe(ue(r=>!r)));l(this,"_injector",g(Yt));l(this,"_rendererFactory",null);l(this,"_tick",()=>{if(this.tracingSnapshot!==null){const s=this.tracingSnapshot;this.tracingSnapshot=null,s.run(Wp.CHANGE_DETECTION,this._tick),s.dispose();return}if(this._runningTick)throw new x(101,!1);const r=_e(null);try{this._runningTick=!0,this.synchronize()}catch(s){this.internalErrorHandler(s)}finally{this._runningTick=!1,_e(r),this.afterTick.next()}});g(Qc,{optional:!0})}get allViews(){return[...this.externalTestViews.keys(),...this._views]}get destroyed(){return this._destroyed}whenStable(){let r;return new Promise(s=>{r=this.isStable.subscribe({next:o=>{o&&s()}})}).finally(()=>{r.unsubscribe()})}get injector(){return this._injector}bootstrap(r,s){const o=r instanceof tC;if(!this._injector.get(DC).done){!o&&YD(r);const m=!1;throw new x(405,m)}let c;o?c=r:c=this._injector.get(hu).resolveComponentFactory(r),this.componentTypes.push(c.componentType);const u=PP(c)?void 0:this._injector.get(gi),h=s||c.selector,f=c.create(gt.NULL,[],h,u),d=f.location.nativeElement,p=f.injector.get(IP,null);return p?.registerApplication(d),f.onDestroy(()=>{this.detachView(f.hostView),hl(this.components,f),p?.unregisterApplication(d)}),this._loadComponent(f),f}tick(){this.zonelessEnabled||(this.dirtyFlags|=1),this._tick()}synchronize(){this._rendererFactory===null&&!this._injector.destroyed&&(this._rendererFactory=this._injector.get(Ri,null,{optional:!0})),this.dirtyFlags|=this.deferredDirtyFlags,this.deferredDirtyFlags=0;let r=0;for(;this.dirtyFlags!==0&&r++Vc(r))){this.dirtyFlags|=2;return}else this.dirtyFlags&=-8}attachView(r){const s=r;this._views.push(s),s.attachToAppRef(this)}detachView(r){const s=r;hl(this._views,s),s.detachFromAppRef()}_loadComponent(r){this.attachView(r.hostView),this.tick(),this.components.push(r),this._injector.get(mu,[]).forEach(o=>o(r))}ngOnDestroy(){if(!this._destroyed)try{this._destroyListeners.forEach(r=>r()),this._views.slice().forEach(r=>r.destroy())}finally{this._destroyed=!0,this._views=[],this._destroyListeners=[]}}onDestroy(r){return this._destroyListeners.push(r),()=>hl(this._destroyListeners,r)}destroy(){if(this._destroyed)throw new x(406,!1);const r=this._injector;r.destroy&&!r.destroyed&&r.destroy()}get viewCount(){return this._views.length}warnIfDestroyed(){}};l(n,"ɵfac",function(s){return new(s||n)}),l(n,"ɵprov",O({token:n,factory:n.ɵfac,providedIn:"root"}));let e=n;return e})();function hl(t,e){const n=t.indexOf(e);n>-1&&t.splice(n,1)}function MP(t,e,n,i){if(!n&&!Vc(t))return;Zw(t,e,n&&!i?0:1)}function BP(t,e,n){const i=e[Qt],r=e[Z];if(t.loadingState!==St.NOT_STARTED)return t.loadingPromise??Promise.resolve();const s=ia(e,n),o=Vx(r,t);t.loadingState=St.IN_PROGRESS,ul(1,s);let a=t.dependencyResolverFn;const c=i.get(zr),u=c.add();return a?(t.loadingPromise=Promise.allSettled(a()).then(h=>{let f=!1;const d=[],p=[];for(const m of h)if(m.status==="fulfilled"){const y=m.value,_=tr(y)||jc(y);if(_)d.push(_);else{const S=Ep(y);S&&p.push(S)}}else{f=!0;break}if(t.loadingPromise=null,c.remove(u),f){if(t.loadingState=St.FAILED,t.errorTmplIndex===null){const m=new x(750,!1);au(e,m)}}else{t.loadingState=St.COMPLETE;const m=o.tView;if(d.length>0){m.directiveRegistry=Dy(m.directiveRegistry,d);const y=d.map(S=>S.type),_=wp(!1,...y);t.providers=_}p.length>0&&(m.pipeRegistry=Dy(m.pipeRegistry,p))}}),t.loadingPromise):(t.loadingPromise=Promise.resolve().then(()=>{t.loadingPromise=null,t.loadingState=St.COMPLETE,c.remove(u)}),t.loadingPromise)}function jP(t,e){return e[Qt].get(wP,null,{optional:!0})?.behavior!==tw.Manual}function zP(t,e,n){const i=e[Z],r=e[n.index];if(!jP(t,e))return;const s=ia(e,n),o=sa(i,n);switch(rw(s),o.loadingState){case St.NOT_STARTED:Jr(et.Loading,n,r),BP(o,e,n),o.loadingState===St.IN_PROGRESS&&qy(o,n,r);break;case St.IN_PROGRESS:Jr(et.Loading,n,r),qy(o,n,r);break;case St.COMPLETE:Jr(et.Complete,n,r);break;case St.FAILED:Jr(et.Error,n,r);break}}function HP(t,e,n){return UP(e,n)}function UP(t,e){const n=t[Qt],i=sa(t[Z],e),r=rR(n),s=i.flags!==null&&(i.flags&1)===1,a=ia(t,e)[Lx]!==null;return!(s&&a&&r)}function v7(t,e,n,i,r,s,o,a,c,u){const h=se(),f=We(),d=t+Pe,p=bm(h,f,t,null,0,0),m=h[Qt];if(f.firstCreatePass){jn("NgDefer");const L={primaryTmplIndex:e,loadingTmplIndex:null,placeholderTmplIndex:r??null,errorTmplIndex:null,placeholderBlockConfig:null,loadingBlockConfig:null,dependencyResolverFn:n??null,loadingState:St.NOT_STARTED,loadingPromise:null,providers:null,hydrateTriggers:null,prefetchTriggers:null,flags:0};zx(f,d,L)}const y=h[d];oC(y,p,h);let _=null,S=null;if(y[rr]?.length>0){const L=y[rr][0].data;S=L[YE]??null,_=L[KE]}const C=[null,Gp.Initial,null,null,null,null,S,_,null,null];jx(h,d,C);let E=null;S!==null&&(E=m.get(Yx),E.add(S,{lView:h,tNode:p,lContainer:y}));const N=()=>{rw(C),S!==null&&E?.cleanup([S])};nw(0,C,()=>Rp(h,N)),Wc(h,N)}function b7(t,e){const n=se(),i=ft();HP(0,n,i)&&(AP(n,i),Zx(n,i,t,e,Wx,()=>zP(0,n,i),0))}function Hs(t,e,n,i){const r=se(),s=Ns();if(fr(r,s,e)){We();const o=Bp();UF(o,r,t,e,n,i)}return Hs}function VP(t,e,n,i){return fr(t,Ns(),n)?e+Ko(n)+i:yn}function Pa(t,e){return t<<17|e<<2}function yi(t){return t>>17&32767}function $P(t){return(t&2)==2}function WP(t,e){return t&131071|e<<17}function Tf(t){return t|2}function Ss(t){return(t&131068)>>2}function hh(t,e){return t&-131069|e<<2}function GP(t){return(t&1)===1}function Af(t){return t|1}function qP(t,e,n,i,r,s){let o=s?e.classBindings:e.styleBindings,a=yi(o),c=Ss(o);t[i]=n;let u=!1,h;if(Array.isArray(n)){const f=n;h=f[1],(h===null||Qo(f,h)>0)&&(u=!0)}else h=n;if(r)if(c!==0){const d=yi(t[a+1]);t[i+1]=Pa(d,a),d!==0&&(t[d+1]=hh(t[d+1],i)),t[a+1]=WP(t[a+1],i)}else t[i+1]=Pa(a,0),a!==0&&(t[a+1]=hh(t[a+1],i)),a=i;else t[i+1]=Pa(c,0),a===0?a=i:t[c+1]=hh(t[c+1],i),c=i;u&&(t[i+1]=Tf(t[i+1])),Zy(t,h,i,!0),Zy(t,h,i,!1),ZP(e,h,t,i,s),o=Pa(a,c),s?e.classBindings=o:e.styleBindings=o}function ZP(t,e,n,i,r){const s=r?t.residualClasses:t.residualStyles;s!=null&&typeof e=="string"&&Qo(s,e)>=0&&(n[i+1]=Af(n[i+1]))}function Zy(t,e,n,i){const r=t[n+1],s=e===null;let o=i?yi(r):Ss(r),a=!1;for(;o!==0&&(a===!1||s);){const c=t[o],u=t[o+1];YP(c,e)&&(a=!0,t[o+1]=i?Af(u):Tf(u)),o=i?yi(u):Ss(u)}a&&(t[n+1]=i?Tf(r):Af(r))}function YP(t,e){return t===null||e==null||(Array.isArray(t)?t[1]:t)===e?!0:Array.isArray(t)&&typeof e=="string"?Qo(t,e)>=0:!1}const cn={textEnd:0,key:0,keyEnd:0,value:0,valueEnd:0};function KP(t){return t.substring(cn.key,cn.keyEnd)}function QP(t){return XP(t),IC(t,xC(t,0,cn.textEnd))}function IC(t,e){const n=cn.textEnd;return n===e?-1:(e=cn.keyEnd=JP(t,cn.key=e,n),xC(t,e,n))}function XP(t){cn.key=0,cn.keyEnd=0,cn.value=0,cn.valueEnd=0,cn.textEnd=t.length}function xC(t,e,n){for(;e32;)e++;return e}function ha(t,e,n){const i=se(),r=Ns();if(fr(i,r,e)){const s=We(),o=Bp();Lw(s,o,i,t,e,i[He],n,!1)}return ha}function kf(t,e,n,i,r){const s=e.inputs,o=r?"class":"style";lm(t,n,s[o],o,i)}function RC(t,e,n){return OC(t,e,n,!1),RC}function Em(t,e){return OC(t,e,null,!0),Em}function FC(t){t2(a2,e2,t,!0)}function e2(t,e){for(let n=QP(e);n>=0;n=IC(e,n))bp(t,KP(e),!0)}function OC(t,e,n,i){const r=se(),s=We(),o=lE(2);if(s.firstUpdatePass&&NC(s,t,o,i),e!==yn&&fr(r,o,e)){const a=s.data[Br()];LC(s,a,r,r[He],t,r[o+1]=c2(e,n),i,o)}}function t2(t,e,n,i){const r=We(),s=lE(2);r.firstUpdatePass&&NC(r,null,s,i);const o=se();if(n!==yn&&fr(o,s,n)){const a=r.data[Br()];if(MC(a,i)&&!PC(r,s)){let c=a.classesWithoutHost;c!==null&&(n=Xh(c,n||"")),kf(r,a,o,n,i)}else l2(r,a,o,o[He],o[s+1],o[s+1]=o2(t,e,n),i,s)}}function PC(t,e){return e>=t.expandoStartIndex}function NC(t,e,n,i){const r=t.data;if(r[n+1]===null){const s=r[Br()],o=PC(t,n);MC(s,i)&&e===null&&!o&&(e=!1),e=n2(r,s,e,i),qP(r,s,e,n,o,i)}}function n2(t,e,n,i){const r=xI(t);let s=i?e.residualClasses:e.residualStyles;if(r===null)(i?e.classBindings:e.styleBindings)===0&&(n=fh(null,t,e,n,i),n=Po(n,e.attrs,i),s=null);else{const o=e.directiveStylingLast;if(o===-1||t[o]!==r)if(n=fh(r,t,e,n,i),s===null){let c=r2(t,e,i);c!==void 0&&Array.isArray(c)&&(c=fh(null,t,e,c[1],i),c=Po(c,e.attrs,i),i2(t,e,i,c))}else s=s2(t,e,i)}return s!==void 0&&(i?e.residualClasses=s:e.residualStyles=s),n}function r2(t,e,n){const i=n?e.classBindings:e.styleBindings;if(Ss(i)!==0)return t[yi(i)]}function i2(t,e,n,i){const r=n?e.classBindings:e.styleBindings;t[yi(r)]=i}function s2(t,e,n){let i;const r=e.directiveEnd;for(let s=1+e.directiveStylingLast;s0;){const c=t[r],u=Array.isArray(c),h=u?c[1]:c,f=h===null;let d=n[r+1];d===yn&&(d=f?bt:void 0);let p=f?Xu(d,i):h===i?d:void 0;if(u&&!nc(p)&&(p=Xu(c,i)),nc(p)&&(a=p,o))return a;const m=t[r+1];r=o?yi(m):Ss(m)}if(e!==null){let c=s?e.residualClasses:e.residualStyles;c!=null&&(a=Xu(c,i))}return a}function nc(t){return t!==void 0}function c2(t,e){return t==null||t===""||(typeof e=="string"?t=t+e:typeof t=="object"&&(t=Mt(Tn(t)))),t}function MC(t,e){return(t.flags&(e?8:16))!==0}class u2{destroy(e){}updateValue(e,n){}swap(e,n){const i=Math.min(e,n),r=Math.max(e,n),s=this.detach(r);if(r-i>1){const o=this.detach(i);this.attach(i,s),this.attach(r,o)}else this.attach(i,s)}move(e,n){this.attach(n,this.detach(e))}}function dh(t,e,n,i,r){return t===n&&Object.is(e,i)?1:Object.is(r(t,e),r(n,i))?-1:0}function h2(t,e,n){let i,r,s=0,o=t.length-1;if(Array.isArray(e)){let a=e.length-1;for(;s<=o&&s<=a;){const c=t.at(s),u=e[s],h=dh(s,c,s,u,n);if(h!==0){h<0&&t.updateValue(s,u),s++;continue}const f=t.at(o),d=e[a],p=dh(o,f,a,d,n);if(p!==0){p<0&&t.updateValue(o,d),o--,a--;continue}const m=n(s,c),y=n(o,f),_=n(s,u);if(Object.is(_,y)){const S=n(a,d);Object.is(S,m)?(t.swap(s,o),t.updateValue(o,d),a--,o--):t.move(o,s),t.updateValue(s,u),s++;continue}if(i??(i=new Xy),r??(r=Qy(t,s,o,n)),Df(t,i,s,_))t.updateValue(s,u),s++,o++;else if(r.has(_))i.set(m,t.detach(s)),o--;else{const S=t.create(s,e[s]);t.attach(s,S),s++,o++}}for(;s<=a;)Ky(t,i,n,s,e[s]),s++}else if(e!=null){const a=e[Symbol.iterator]();let c=a.next();for(;!c.done&&s<=o;){const u=t.at(s),h=c.value,f=dh(s,u,s,h,n);if(f!==0)f<0&&t.updateValue(s,h),s++,c=a.next();else{i??(i=new Xy),r??(r=Qy(t,s,o,n));const d=n(s,h);if(Df(t,i,s,d))t.updateValue(s,h),s++,o++,c=a.next();else if(!r.has(d))t.attach(s,t.create(s,h)),s++,o++,c=a.next();else{const p=n(s,u);i.set(p,t.detach(s)),o--}}}for(;!c.done;)Ky(t,i,n,t.length,c.value),c=a.next()}for(;s<=o;)t.destroy(t.detach(o--));i?.forEach(a=>{t.destroy(a)})}function Df(t,e,n,i){return e!==void 0&&e.has(i)?(t.attach(n,e.get(i)),e.delete(i),!0):!1}function Ky(t,e,n,i,r){if(Df(t,e,i,n(i,r)))t.updateValue(i,r);else{const s=t.create(i,r);t.attach(i,s)}}function Qy(t,e,n,i){const r=new Set;for(let s=e;s<=n;s++)r.add(i(s,t.at(s)));return r}class Xy{constructor(){l(this,"kvMap",new Map);l(this,"_vMap")}has(e){return this.kvMap.has(e)}delete(e){if(!this.has(e))return!1;const n=this.kvMap.get(e);return this._vMap!==void 0&&this._vMap.has(n)?(this.kvMap.set(e,this._vMap.get(n)),this._vMap.delete(n)):this.kvMap.delete(e),!0}get(e){return this.kvMap.get(e)}set(e,n){if(this.kvMap.has(e)){let i=this.kvMap.get(e);this._vMap===void 0&&(this._vMap=new Map);const r=this._vMap;for(;r.has(i);)i=r.get(i);r.set(i,n)}else this.kvMap.set(e,n)}forEach(e){for(let[n,i]of this.kvMap)if(e(i,n),this._vMap!==void 0){const r=this._vMap;for(;r.has(i);)i=r.get(i),e(i,n)}}}function fl(t,e){jn("NgControlFlow");const n=se(),i=Ns(),r=n[i]!==yn?n[i]:-1,s=r!==-1?rc(n,Pe+r):void 0,o=0;if(fr(n,i,t)){const a=_e(null);try{if(s!==void 0&&um(s,o),t!==-1){const c=Pe+t,u=rc(n,c),h=If(n[Z],c),f=Cs(u,h.tView.ssrId),d=Bs(n,h,e,{dehydratedView:f});js(u,d,o,mi(h,f))}}finally{_e(a)}}else if(s!==void 0){const a=$w(s,o);a!==void 0&&(a[Et]=e)}}class f2{constructor(e,n,i){l(this,"lContainer");l(this,"$implicit");l(this,"$index");this.lContainer=e,this.$implicit=n,this.$index=i}get $count(){return this.lContainer.length-st}}function d2(t,e){return e}class p2{constructor(e,n,i){l(this,"hasEmptyBlock");l(this,"trackByFn");l(this,"liveCollection");this.hasEmptyBlock=e,this.trackByFn=n,this.liveCollection=i}}function BC(t,e,n,i,r,s,o,a,c,u,h,f,d){jn("NgControlFlow");const p=se(),m=We(),y=c!==void 0,_=se(),S=o,C=new p2(y,S);_[Pe+t]=C,bm(p,m,t+1,e,n,i,r,hi(m.consts,s))}class m2 extends u2{constructor(n,i,r){super();l(this,"lContainer");l(this,"hostLView");l(this,"templateTNode");l(this,"operationsCounter");l(this,"needsIndexUpdate",!1);this.lContainer=n,this.hostLView=i,this.templateTNode=r}get length(){return this.lContainer.length-st}at(n){return this.getLView(n)[Et].$implicit}attach(n,i){const r=i[Kt];this.needsIndexUpdate||(this.needsIndexUpdate=n!==this.length),js(this.lContainer,i,n,mi(this.templateTNode,r))}detach(n){return this.needsIndexUpdate||(this.needsIndexUpdate=n!==this.length-1),g2(this.lContainer,n)}create(n,i){const r=Cs(this.lContainer,this.templateTNode.tView.ssrId),s=Bs(this.hostLView,this.templateTNode,new f2(this.lContainer,i,n),{dehydratedView:r});return this.operationsCounter?.recordCreate(),s}destroy(n){nu(n[Z],n),this.operationsCounter?.recordDestroy()}updateValue(n,i){this.getLView(n)[Et].$implicit=i}reset(){this.needsIndexUpdate=!1,this.operationsCounter?.reset()}updateIndexes(){if(this.needsIndexUpdate)for(let n=0;n(jr(!0),Xp(i,r,pE()));function v2(t,e,n,i,r,s){const o=e[Kt],a=!o||Ps()||ua(n)||oa(o,s);if(jr(a),a)return Xp(i,r,pE());const c=cu(o,t,e,n);return aw(o,s)&&eu(o,s,c.nextSibling),o&&(LE(n)||ME(c))&&Jo(n)&&(EI(n),Tw(c)),c}function b2(){zC=v2}function E2(t,e,n,i,r){const s=e.consts,o=hi(s,i),a=xi(e,t,8,"ng-container",o);o!==null&&tc(a,o,!0);const c=hi(s,r);return am(e,n,a,c),e.queries!==null&&e.queries.elementStart(e,a),a}function wm(t,e,n){const i=se(),r=We(),s=t+Pe,o=r.firstCreatePass?E2(s,r,i,e,n):r.data[s];Mr(o,!0);const a=HC(r,i,o,t);return i[s]=a,qc()&&ru(r,i,a,o),Dr(a,i),Uc(o)&&(im(r,i,o),rm(r,o,i)),n!=null&&sm(i,o),wm}function Cm(){let t=ft();const e=We();return Fp()?Op():(t=t.parent,Mr(t,!1)),e.firstCreatePass&&(Zc(e,t),kp(t)&&e.queries.elementEnd(t)),Cm}function w2(t,e,n){return wm(t,e,n),Cm(),w2}let HC=(t,e,n,i)=>(jr(!0),yw(e[He],""));function C2(t,e,n,i){let r;const s=e[Kt],o=!s||Ps()||oa(s,i)||ua(n);if(jr(o),o)return yw(e[He],"");const a=cu(s,t,e,n),c=iR(s,i);return eu(s,i,a),r=uu(c,a),r}function S2(){HC=C2}function T2(){return se()}function gu(t,e,n){const i=se(),r=Ns();if(fr(i,r,e)){const s=We(),o=Bp();Lw(s,o,i,t,e,i[He],n,!0)}return gu}const $r=void 0;function A2(t){const e=Math.floor(Math.abs(t)),n=t.toString().replace(/^[^.]*\.?/,"").length;return e===1&&n===0?1:5}var k2=["en",[["a","p"],["AM","PM"],$r],[["AM","PM"],$r,$r],[["S","M","T","W","T","F","S"],["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],["Su","Mo","Tu","We","Th","Fr","Sa"]],$r,[["J","F","M","A","M","J","J","A","S","O","N","D"],["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],["January","February","March","April","May","June","July","August","September","October","November","December"]],$r,[["B","A"],["BC","AD"],["Before Christ","Anno Domini"]],0,[6,0],["M/d/yy","MMM d, y","MMMM d, y","EEEE, MMMM d, y"],["h:mm a","h:mm:ss a","h:mm:ss a z","h:mm:ss a zzzz"],["{1}, {0}",$r,"{1} 'at' {0}",$r],[".",",",";","%","+","-","E","×","‰","∞","NaN",":"],["#,##0.###","#,##0%","¤#,##0.00","#E0"],"USD","$","US Dollar",{},"ltr",A2];let ph={};function vn(t){const e=D2(t);let n=Jy(e);if(n)return n;const i=e.split("-")[0];if(n=Jy(i),n)return n;if(i==="en")return k2;throw new x(701,!1)}function Jy(t){return t in ph||(ph[t]=vr.ng&&vr.ng.common&&vr.ng.common.locales&&vr.ng.common.locales[t]),ph[t]}var lt=function(t){return t[t.LocaleId=0]="LocaleId",t[t.DayPeriodsFormat=1]="DayPeriodsFormat",t[t.DayPeriodsStandalone=2]="DayPeriodsStandalone",t[t.DaysFormat=3]="DaysFormat",t[t.DaysStandalone=4]="DaysStandalone",t[t.MonthsFormat=5]="MonthsFormat",t[t.MonthsStandalone=6]="MonthsStandalone",t[t.Eras=7]="Eras",t[t.FirstDayOfWeek=8]="FirstDayOfWeek",t[t.WeekendRange=9]="WeekendRange",t[t.DateFormat=10]="DateFormat",t[t.TimeFormat=11]="TimeFormat",t[t.DateTimeFormat=12]="DateTimeFormat",t[t.NumberSymbols=13]="NumberSymbols",t[t.NumberFormats=14]="NumberFormats",t[t.CurrencyCode=15]="CurrencyCode",t[t.CurrencySymbol=16]="CurrencySymbol",t[t.CurrencyName=17]="CurrencyName",t[t.Currencies=18]="Currencies",t[t.Directionality=19]="Directionality",t[t.PluralCase=20]="PluralCase",t[t.ExtraData=21]="ExtraData",t}(lt||{});function D2(t){return t.toLowerCase().replace(/_/g,"-")}const xf="en-US";function I2(t){typeof t=="string"&&t.toLowerCase().replace(/_/g,"-")}function mt(t,e,n,i){const r=se(),s=We(),o=ft();return R2(s,r,r[He],o,t,e,i),mt}function x2(t,e,n,i){const r=t.cleanup;if(r!=null)for(let s=0;sc?a[c]:null}typeof o=="string"&&(s+=2)}return null}function R2(t,e,n,i,r,s,o){const a=Uc(i),u=t.firstCreatePass&&Vw(t),h=e[Et],f=Uw(e);let d=!0;if(i.type&3||o){const y=Ut(i,e),_=o?o(y):y,S=f.length,C=o?N=>o(mn(N[i.index])):i.index;let E=null;if(!o&&a&&(E=x2(t,e,r,i.index)),E!==null){const N=E.__ngLastListenerFn__||E;N.__ngNextListenerFn__=s,E.__ngLastListenerFn__=s,d=!1}else{s=t_(i,e,h,s);const N=n.listen(_,r,s);f.push(s,N),u&&u.push(r,C,S,S+1)}}else s=t_(i,e,h,s);const p=i.outputs;let m;if(d&&p!==null&&(m=p[r])){const y=m.length;if(y)for(let _=0;_-1?Lr(t.index,e):e;lu(o,5);let a=e_(e,n,i,s),c=r.__ngNextListenerFn__;for(;c;)a=e_(e,n,c,s)&&a,c=c.__ngNextListenerFn__;return a}}function F2(t=1){return FI(t)}function Sm(t){const e=se()[kt][It];if(!e.projection){const i=e.projection=GD(1,null),r=i.slice();let s=e.child;for(;s!==null;)s.type!==128&&(r[0]?r[0].projectionNext=s:i[0]=s,r[0]=s),s=s.next}}function Tm(t,e=0,n,i,r,s){const o=se(),a=We(),c=null,u=xi(a,Pe+t,16,null,null);u.projection===null&&(u.projection=e),Op();const f=!o[Kt]||Ps();o[kt][It].projection[u.projection]===null&&c!==null?O2(o,a,c):f&&(u.flags&32)!==32&&sF(a,o,u)}function O2(t,e,n){const i=Pe+n,r=e.data[i],s=t[i],o=Cs(s,r.tView.ssrId),a=Bs(t,r,void 0,{dehydratedView:o});js(s,a,0,mi(r,o))}function P2(t,e,n,i){qO(t,e,n,i)}function Am(t,e,n){hC(t,e,n)}function yu(t){const e=se(),n=We(),i=Np();Gc(i+1);const r=_m(n,i);if(t.dirty&&pI(e)===((r.metadata.flags&2)===2)){if(r.matches===null)t.reset([]);else{const s=dC(e,i);t.reset(s,PE),t.notifyOnChanges()}return!0}return!1}function _u(){return ym(se(),Np())}function E7(t,e,n,i){JO(t,hC(e,n,i))}function w7(t=1){Gc(Np()+t)}function UC(t,e,n,i){n>=t.data.length&&(t.data[n]=null,t.blueprint[n]=null),e[n]=i}function Ee(t,e=""){const n=se(),i=We(),r=t+Pe,s=i.firstCreatePass?xi(i,r,1,e,null):i.data[r],o=VC(i,n,s,e,t);n[r]=o,qc()&&ru(i,n,o,s),Mr(s,!1)}let VC=(t,e,n,i,r)=>(jr(!0),gw(e[He],i));function N2(t,e,n,i,r){const s=e[Kt],o=!s||Ps()||ua(n)||oa(s,r);return jr(o),o?gw(e[He],i):cu(s,t,e,n)}function L2(){VC=N2}function $C(t){return WC("",t,""),$C}function WC(t,e,n){const i=se(),r=VP(i,t,e,n);return r!==yn&&GF(i,Br(),r),WC}/*! + * @license + * Copyright Google LLC All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.dev/license + */const M2={};function B2(t){const e=We(),n=se(),i=t+Pe,r=xi(e,i,128,null,null);return Mr(r,!1),UC(e,n,i,M2),B2}function j2(t,e,n){const i=We();if(i.firstCreatePass){const r=kr(t);Rf(n,i.data,i.blueprint,r,!0),Rf(e,i.data,i.blueprint,r,!1)}}function Rf(t,e,n,i,r){if(t=ut(t),Array.isArray(t))for(let s=0;s>20;if(bs(t)||!t.multi){const p=new ta(u,r,Ce),m=gh(c,e,r?h:h+d,f);m===-1?(ff(ql(a,o),s,c),mh(s,t,e.length),e.push(c),a.directiveStart++,a.directiveEnd++,r&&(a.providerIndexes+=1048576),n.push(p),o.push(p)):(n[m]=p,o[m]=p)}else{const p=gh(c,e,h+d,f),m=gh(c,e,h,h+d),y=p>=0&&n[p],_=m>=0&&n[m];if(r&&!_||!r&&!y){ff(ql(a,o),s,c);const S=U2(r?H2:z2,n.length,r,i,u);!r&&_&&(n[m].providerFactory=S),mh(s,t,e.length,0),e.push(c),a.directiveStart++,a.directiveEnd++,r&&(a.providerIndexes+=1048576),n.push(S),o.push(S)}else{const S=GC(n[r?m:p],u,!r&&i);mh(s,t,p>-1?p:m,S)}!r&&i&&_&&n[m].componentProviders++}}}function mh(t,e,n,i){const r=bs(e),s=eI(e);if(r||s){const c=(s?ut(e.useClass):e).prototype.ngOnDestroy;if(c){const u=t.destroyHooks||(t.destroyHooks=[]);if(!r&&e.multi){const h=u.indexOf(n);h===-1?u.push(n,[i,c]):u[h+1].push(i,c)}else u.push(n,c)}}}function GC(t,e,n){return n&&t.componentProviders++,t.multi.push(e)-1}function gh(t,e,n,i){for(let r=n;r{n.providersResolver=(i,r)=>j2(i,r?r(t):t,e)}}function C7(t,e,n){const i=Pp()+t,r=se();return r[i]===yn?SC(r,i,e()):yP(r,i)}function S7(t,e,n,i){return qC(se(),Pp(),t,e,n,i)}function V2(t,e){const n=t[e];return n===yn?void 0:n}function qC(t,e,n,i,r,s){const o=e+n;return fr(t,o,r)?SC(t,o+1,s?i.call(s,r):i(r)):V2(t,o+1)}function $2(t,e){const n=We();let i;const r=t+Pe;n.firstCreatePass?(i=W2(e,n.pipeRegistry),n.data[r]=i,i.onDestroy&&(n.destroyHooks??(n.destroyHooks=[])).push(r,i.onDestroy)):i=n.data[r];const s=i.factory||(i.factory=ci(i.type,!0)),o=Ct(Ce);try{const a=Gl(!1),c=s();return Gl(a),UC(n,se(),r,c),c}finally{Ct(o)}}function W2(t,e){if(e)for(let n=e.length-1;n>=0;n--){const i=e[n];if(t===i.name)return i}}function G2(t,e,n){const i=t+Pe,r=se(),s=dI(r,i);return q2(r,i)?qC(r,Pp(),e,s.transform,n,s):s.transform(n)}function q2(t,e){return t[Z].data[e].pure}class Z2{constructor(e,n){l(this,"ngModuleFactory");l(this,"componentFactories");this.ngModuleFactory=e,this.componentFactories=n}}let Y2=(()=>{const n=class n{compileModuleSync(r){return new rP(r)}compileModuleAsync(r){return Promise.resolve(this.compileModuleSync(r))}compileModuleAndAllComponentsSync(r){const s=this.compileModuleSync(r),o=Gb(r),a=mw(o.declarations).reduce((c,u)=>{const h=tr(u);return h&&c.push(new fu(h)),c},[]);return new Z2(s,a)}compileModuleAndAllComponentsAsync(r){return Promise.resolve(this.compileModuleAndAllComponentsSync(r))}clearCache(){}clearCacheFor(r){}getModuleId(r){}};l(n,"ɵfac",function(s){return new(s||n)}),l(n,"ɵprov",O({token:n,factory:n.ɵfac,providedIn:"root"}));let e=n;return e})(),K2=(()=>{const n=class n{constructor(){l(this,"zone",g(ge));l(this,"changeDetectionScheduler",g(Yc));l(this,"applicationRef",g(Mn));l(this,"_onMicrotaskEmptySubscription")}initialize(){this._onMicrotaskEmptySubscription||(this._onMicrotaskEmptySubscription=this.zone.onMicrotaskEmpty.subscribe({next:()=>{this.changeDetectionScheduler.runningTick||this.zone.run(()=>{this.applicationRef.tick()})}}))}ngOnDestroy(){this._onMicrotaskEmptySubscription?.unsubscribe()}};l(n,"ɵfac",function(s){return new(s||n)}),l(n,"ɵprov",O({token:n,factory:n.ɵfac,providedIn:"root"}));let e=n;return e})();function Q2({ngZoneFactory:t,ignoreChangesOutsideZone:e,scheduleInRootZone:n}){return t??(t=()=>new ge({...X2(),scheduleInRootZone:n})),[{provide:ge,useFactory:t},{provide:vs,multi:!0,useFactory:()=>{const i=g(K2,{optional:!0});return()=>i.initialize()}},{provide:vs,multi:!0,useFactory:()=>{const i=g(J2);return()=>{i.initialize()}}},e===!0?{provide:xE,useValue:!0}:[],{provide:RE,useValue:n??DE}]}function X2(t){return{enableLongStackTrace:!1,shouldCoalesceEventChangeDetection:t?.eventCoalescing??!1,shouldCoalesceRunChangeDetection:t?.runCoalescing??!1}}let J2=(()=>{const n=class n{constructor(){l(this,"subscription",new Je);l(this,"initialized",!1);l(this,"zone",g(ge));l(this,"pendingTasks",g(zr))}initialize(){if(this.initialized)return;this.initialized=!0;let r=null;!this.zone.isStable&&!this.zone.hasPendingMacrotasks&&!this.zone.hasPendingMicrotasks&&(r=this.pendingTasks.add()),this.zone.runOutsideAngular(()=>{this.subscription.add(this.zone.onStable.subscribe(()=>{ge.assertNotInAngularZone(),queueMicrotask(()=>{r!==null&&!this.zone.hasPendingMacrotasks&&!this.zone.hasPendingMicrotasks&&(this.pendingTasks.remove(r),r=null)})}))}),this.subscription.add(this.zone.onUnstable.subscribe(()=>{ge.assertInAngularZone(),r??(r=this.pendingTasks.add())}))}ngOnDestroy(){this.subscription.unsubscribe()}};l(n,"ɵfac",function(s){return new(s||n)}),l(n,"ɵprov",O({token:n,factory:n.ɵfac,providedIn:"root"}));let e=n;return e})(),eN=(()=>{const n=class n{constructor(){l(this,"appRef",g(Mn));l(this,"taskService",g(zr));l(this,"ngZone",g(ge));l(this,"zonelessEnabled",g(IE));l(this,"tracing",g(Qc,{optional:!0}));l(this,"disableScheduling",g(xE,{optional:!0})??!1);l(this,"zoneIsDefined",typeof Zone<"u"&&!!Zone.root.run);l(this,"schedulerTickApplyArgs",[{data:{__scheduler_tick__:!0}}]);l(this,"subscriptions",new Je);l(this,"angularZoneId",this.zoneIsDefined?this.ngZone._inner?.get(Yl):null);l(this,"scheduleInRootZone",!this.zonelessEnabled&&this.zoneIsDefined&&(g(RE,{optional:!0})??!1));l(this,"cancelScheduledCallback",null);l(this,"useMicrotaskScheduler",!1);l(this,"runningTick",!1);l(this,"pendingRenderTaskId",null);this.subscriptions.add(this.appRef.afterTick.subscribe(()=>{this.runningTick||this.cleanup()})),this.subscriptions.add(this.ngZone.onUnstable.subscribe(()=>{this.runningTick||this.cleanup()})),this.disableScheduling||(this.disableScheduling=!this.zonelessEnabled&&(this.ngZone instanceof rx||!this.zoneIsDefined))}notify(r){if(!this.zonelessEnabled&&r===5)return;let s=!1;switch(r){case 0:{this.appRef.dirtyFlags|=2;break}case 3:case 2:case 4:case 5:case 1:{this.appRef.dirtyFlags|=4;break}case 8:{this.appRef.deferredDirtyFlags|=8;break}case 6:{this.appRef.dirtyFlags|=2,s=!0;break}case 13:{this.appRef.dirtyFlags|=16,s=!0;break}case 14:{this.appRef.dirtyFlags|=2,s=!0;break}case 12:{s=!0;break}case 10:case 9:case 7:case 11:default:this.appRef.dirtyFlags|=8}if(this.appRef.tracingSnapshot=this.tracing?.snapshot(this.appRef.tracingSnapshot)??null,!this.shouldScheduleTick(s))return;const o=this.useMicrotaskScheduler?by:FE;this.pendingRenderTaskId=this.taskService.add(),this.scheduleInRootZone?this.cancelScheduledCallback=Zone.root.run(()=>o(()=>this.tick())):this.cancelScheduledCallback=this.ngZone.runOutsideAngular(()=>o(()=>this.tick()))}shouldScheduleTick(r){return!(this.disableScheduling&&!r||this.appRef.destroyed||this.pendingRenderTaskId!==null||this.runningTick||this.appRef._runningTick||!this.zonelessEnabled&&this.zoneIsDefined&&Zone.current.get(Yl+this.angularZoneId))}tick(){if(this.runningTick||this.appRef.destroyed)return;if(this.appRef.dirtyFlags===0){this.cleanup();return}!this.zonelessEnabled&&this.appRef.dirtyFlags&7&&(this.appRef.dirtyFlags|=1);const r=this.taskService.add();try{this.ngZone.run(()=>{this.runningTick=!0,this.appRef._tick()},void 0,this.schedulerTickApplyArgs)}catch(s){throw this.taskService.remove(r),s}finally{this.cleanup()}this.useMicrotaskScheduler=!0,by(()=>{this.useMicrotaskScheduler=!1,this.taskService.remove(r)})}ngOnDestroy(){this.subscriptions.unsubscribe(),this.cleanup()}cleanup(){if(this.runningTick=!1,this.cancelScheduledCallback?.(),this.cancelScheduledCallback=null,this.pendingRenderTaskId!==null){const r=this.pendingRenderTaskId;this.pendingRenderTaskId=null,this.taskService.remove(r)}}};l(n,"ɵfac",function(s){return new(s||n)}),l(n,"ɵprov",O({token:n,factory:n.ɵfac,providedIn:"root"}));let e=n;return e})();function tN(){return typeof $localize<"u"&&$localize.locale||xf}const km=new B("",{providedIn:"root",factory:()=>g(km,ve.Optional|ve.SkipSelf)||tN()});const Of=new B(""),nN=new B("");function Qs(t){return!t.moduleRef}function rN(t){const e=Qs(t)?t.r3Injector:t.moduleRef.injector,n=e.get(ge);return n.run(()=>{Qs(t)?t.r3Injector.resolveInjectorInitializers():t.moduleRef.resolveInjectorInitializers();const i=e.get(Di,null);let r;if(n.runOutsideAngular(()=>{r=n.onError.subscribe({next:s=>{i.handleError(s)}})}),Qs(t)){const s=()=>e.destroy(),o=t.platformInjector.get(Of);o.add(s),e.onDestroy(()=>{r.unsubscribe(),o.delete(s)})}else{const s=()=>t.moduleRef.destroy(),o=t.platformInjector.get(Of);o.add(s),t.moduleRef.onDestroy(()=>{hl(t.allPlatformModules,t.moduleRef),r.unsubscribe(),o.delete(s)})}return LP(i,n,()=>{const s=e.get(DC);return s.runInitializers(),s.donePromise.then(()=>{const o=e.get(km,xf);if(I2(o||xf),!e.get(nN,!0))return Qs(t)?e.get(Mn):(t.allPlatformModules.push(t.moduleRef),t.moduleRef);if(Qs(t)){const c=e.get(Mn);return t.rootComponent!==void 0&&c.bootstrap(t.rootComponent),c}else return iN(t.moduleRef,t.allPlatformModules),t.moduleRef})})})}function iN(t,e){const n=t.injector.get(Mn);if(t._bootstrapComponents.length>0)t._bootstrapComponents.forEach(i=>n.bootstrap(i));else if(t.instance.ngDoBootstrap)t.instance.ngDoBootstrap(n);else throw new x(-403,!1);e.push(t)}let dl=null;function sN(t=[],e){return gt.create({name:e,providers:[{provide:Sp,useValue:"platform"},{provide:Of,useValue:new Set([()=>dl=null])},...t]})}function oN(t=[]){if(dl)return dl;const e=sN(t);return dl=e,OP(),aN(e),e}function aN(t){const e=t.get(VE,null);gn(t,()=>{e?.forEach(n=>n())})}let Us=(()=>{class e{}return l(e,"__NG_ELEMENT_ID__",lN),e})();function lN(t){return cN(ft(),se(),(t&16)===16)}function cN(t,e,n){if(Jo(t)&&!n){const i=Lr(t.index,e);return new Oo(i,i)}else if(t.type&175){const i=e[kt];return new Oo(i,e)}return null}class uN{constructor(){}supports(e){return CC(e)}create(e){return new fN(e)}}const hN=(t,e)=>e;class fN{constructor(e){l(this,"length",0);l(this,"collection");l(this,"_linkedRecords",null);l(this,"_unlinkedRecords",null);l(this,"_previousItHead",null);l(this,"_itHead",null);l(this,"_itTail",null);l(this,"_additionsHead",null);l(this,"_additionsTail",null);l(this,"_movesHead",null);l(this,"_movesTail",null);l(this,"_removalsHead",null);l(this,"_removalsTail",null);l(this,"_identityChangesHead",null);l(this,"_identityChangesTail",null);l(this,"_trackByFn");this._trackByFn=e||hN}forEachItem(e){let n;for(n=this._itHead;n!==null;n=n._next)e(n)}forEachOperation(e){let n=this._itHead,i=this._removalsHead,r=0,s=null;for(;n||i;){const o=!i||n&&n.currentIndex{o=this._trackByFn(r,a),n===null||!Object.is(n.trackById,o)?(n=this._mismatch(n,a,o,r),i=!0):(i&&(n=this._verifyReinsertion(n,a,o,r)),Object.is(n.item,a)||this._addIdentityChange(n,a)),n=n._next,r++}),this.length=r;return this._truncate(n),this.collection=e,this.isDirty}get isDirty(){return this._additionsHead!==null||this._movesHead!==null||this._removalsHead!==null||this._identityChangesHead!==null}_reset(){if(this.isDirty){let e;for(e=this._previousItHead=this._itHead;e!==null;e=e._next)e._nextPrevious=e._next;for(e=this._additionsHead;e!==null;e=e._nextAdded)e.previousIndex=e.currentIndex;for(this._additionsHead=this._additionsTail=null,e=this._movesHead;e!==null;e=e._nextMoved)e.previousIndex=e.currentIndex;this._movesHead=this._movesTail=null,this._removalsHead=this._removalsTail=null,this._identityChangesHead=this._identityChangesTail=null}}_mismatch(e,n,i,r){let s;return e===null?s=this._itTail:(s=e._prev,this._remove(e)),e=this._unlinkedRecords===null?null:this._unlinkedRecords.get(i,null),e!==null?(Object.is(e.item,n)||this._addIdentityChange(e,n),this._reinsertAfter(e,s,r)):(e=this._linkedRecords===null?null:this._linkedRecords.get(i,r),e!==null?(Object.is(e.item,n)||this._addIdentityChange(e,n),this._moveAfter(e,s,r)):e=this._addAfter(new dN(n,i),s,r)),e}_verifyReinsertion(e,n,i,r){let s=this._unlinkedRecords===null?null:this._unlinkedRecords.get(i,null);return s!==null?e=this._reinsertAfter(s,e._prev,r):e.currentIndex!=r&&(e.currentIndex=r,this._addToMoves(e,r)),e}_truncate(e){for(;e!==null;){const n=e._next;this._addToRemovals(this._unlink(e)),e=n}this._unlinkedRecords!==null&&this._unlinkedRecords.clear(),this._additionsTail!==null&&(this._additionsTail._nextAdded=null),this._movesTail!==null&&(this._movesTail._nextMoved=null),this._itTail!==null&&(this._itTail._next=null),this._removalsTail!==null&&(this._removalsTail._nextRemoved=null),this._identityChangesTail!==null&&(this._identityChangesTail._nextIdentityChange=null)}_reinsertAfter(e,n,i){this._unlinkedRecords!==null&&this._unlinkedRecords.remove(e);const r=e._prevRemoved,s=e._nextRemoved;return r===null?this._removalsHead=s:r._nextRemoved=s,s===null?this._removalsTail=r:s._prevRemoved=r,this._insertAfter(e,n,i),this._addToMoves(e,i),e}_moveAfter(e,n,i){return this._unlink(e),this._insertAfter(e,n,i),this._addToMoves(e,i),e}_addAfter(e,n,i){return this._insertAfter(e,n,i),this._additionsTail===null?this._additionsTail=this._additionsHead=e:this._additionsTail=this._additionsTail._nextAdded=e,e}_insertAfter(e,n,i){const r=n===null?this._itHead:n._next;return e._next=r,e._prev=n,r===null?this._itTail=e:r._prev=e,n===null?this._itHead=e:n._next=e,this._linkedRecords===null&&(this._linkedRecords=new n_),this._linkedRecords.put(e),e.currentIndex=i,e}_remove(e){return this._addToRemovals(this._unlink(e))}_unlink(e){this._linkedRecords!==null&&this._linkedRecords.remove(e);const n=e._prev,i=e._next;return n===null?this._itHead=i:n._next=i,i===null?this._itTail=n:i._prev=n,e}_addToMoves(e,n){return e.previousIndex===n||(this._movesTail===null?this._movesTail=this._movesHead=e:this._movesTail=this._movesTail._nextMoved=e),e}_addToRemovals(e){return this._unlinkedRecords===null&&(this._unlinkedRecords=new n_),this._unlinkedRecords.put(e),e.currentIndex=null,e._nextRemoved=null,this._removalsTail===null?(this._removalsTail=this._removalsHead=e,e._prevRemoved=null):(e._prevRemoved=this._removalsTail,this._removalsTail=this._removalsTail._nextRemoved=e),e}_addIdentityChange(e,n){return e.item=n,this._identityChangesTail===null?this._identityChangesTail=this._identityChangesHead=e:this._identityChangesTail=this._identityChangesTail._nextIdentityChange=e,e}}class dN{constructor(e,n){l(this,"item");l(this,"trackById");l(this,"currentIndex",null);l(this,"previousIndex",null);l(this,"_nextPrevious",null);l(this,"_prev",null);l(this,"_next",null);l(this,"_prevDup",null);l(this,"_nextDup",null);l(this,"_prevRemoved",null);l(this,"_nextRemoved",null);l(this,"_nextAdded",null);l(this,"_nextMoved",null);l(this,"_nextIdentityChange",null);this.item=e,this.trackById=n}}class pN{constructor(){l(this,"_head",null);l(this,"_tail",null)}add(e){this._head===null?(this._head=this._tail=e,e._nextDup=null,e._prevDup=null):(this._tail._nextDup=e,e._prevDup=this._tail,e._nextDup=null,this._tail=e)}get(e,n){let i;for(i=this._head;i!==null;i=i._nextDup)if((n===null||n<=i.currentIndex)&&Object.is(i.trackById,e))return i;return null}remove(e){const n=e._prevDup,i=e._nextDup;return n===null?this._head=i:n._nextDup=i,i===null?this._tail=n:i._prevDup=n,this._head===null}}class n_{constructor(){l(this,"map",new Map)}put(e){const n=e.trackById;let i=this.map.get(n);i||(i=new pN,this.map.set(n,i)),i.add(e)}get(e,n){const i=e,r=this.map.get(i);return r?r.get(e,n):null}remove(e){const n=e.trackById;return this.map.get(n).remove(e)&&this.map.delete(n),e}get isEmpty(){return this.map.size===0}clear(){this.map.clear()}}function r_(t,e,n){const i=t.previousIndex;if(i===null)return i;let r=0;return n&&i{const n=class n{constructor(r){l(this,"factories");this.factories=r}static create(r,s){if(s!=null){const o=s.factories.slice();r=r.concat(o)}return new n(r)}static extend(r){return{provide:n,useFactory:s=>n.create(r,s||i_()),deps:[[n,new VD,new Hb]]}}find(r){const s=this.factories.find(o=>o.supports(r));if(s!=null)return s;throw new x(901,!1)}};l(n,"ɵprov",O({token:n,providedIn:"root",factory:i_}));let e=n;return e})();function mN(t){try{const{rootComponent:e,appProviders:n,platformProviders:i}=t,r=oN(i),s=[Q2({}),{provide:Yc,useExisting:eN},...n||[]],o=new yC({providers:s,parent:r,debugName:"",runEnvironmentInitializers:!1});return rN({r3Injector:o.injector,platformInjector:r,rootComponent:e})}catch(e){return Promise.reject(e)}}let s_=!1;function gN(){s_||(s_=!0,Jx(),b2(),L2(),S2(),bP(),UO(),CO(),AF())}function yN(t,e){return t.whenStable()}function _N(){const t=[{provide:Ia,useFactory:()=>{let e=!0;return e=!!g(Ms,{optional:!0})?.get(sw,null),e&&jn("NgHydration"),e}},{provide:vs,useValue:()=>{g(Ia)&&(vN(),gN())},multi:!0}];return t.push({provide:XE,useFactory:()=>g(Ia)},{provide:mu,useFactory:()=>{if(g(Ia)){const e=g(Mn);return g(gt),()=>{yN(e).then(()=>{bO(e)})}}return()=>{}},multi:!0}),Xo(t)}function vN(){const t=ra();let e;for(const n of t.body.childNodes)if(n.nodeType===Node.COMMENT_NODE&&n.textContent?.trim()===Qx){e=n;break}if(!e)throw new x(-507,!1)}function Ot(t){return typeof t=="boolean"?t:t!=null&&t!=="false"}function T7(t,e=NaN){return!isNaN(parseFloat(t))&&!isNaN(Number(t))?Number(t):e}function Pf(t){const e=_e(null);try{return t()}finally{_e(e)}}function YC(t,e){const n=tr(t),i=e.elementInjector||zc();return new fu(n).create(i,e.projectableNodes,e.hostElement,e.environmentInjector)}/** + * @license Angular v19.0.5 + * (c) 2010-2024 Google LLC. https://angular.io/ + * License: MIT + */let KC=null;function gs(){return KC}function bN(t){KC??(KC=t)}class EN{}const we=new B("");let QC=(()=>{const n=class n{historyGo(r){throw new Error("")}};l(n,"ɵfac",function(s){return new(s||n)}),l(n,"ɵprov",O({token:n,factory:()=>g(wN),providedIn:"platform"}));let e=n;return e})(),wN=(()=>{const n=class n extends QC{constructor(){super();l(this,"_location");l(this,"_history");l(this,"_doc",g(we));this._location=window.location,this._history=window.history}getBaseHrefFromDOM(){return gs().getBaseHref(this._doc)}onPopState(s){const o=gs().getGlobalEventTarget(this._doc,"window");return o.addEventListener("popstate",s,!1),()=>o.removeEventListener("popstate",s)}onHashChange(s){const o=gs().getGlobalEventTarget(this._doc,"window");return o.addEventListener("hashchange",s,!1),()=>o.removeEventListener("hashchange",s)}get href(){return this._location.href}get protocol(){return this._location.protocol}get hostname(){return this._location.hostname}get port(){return this._location.port}get pathname(){return this._location.pathname}get search(){return this._location.search}get hash(){return this._location.hash}set pathname(s){this._location.pathname=s}pushState(s,o,a){this._history.pushState(s,o,a)}replaceState(s,o,a){this._history.replaceState(s,o,a)}forward(){this._history.forward()}back(){this._history.back()}historyGo(s=0){this._history.go(s)}getState(){return this._history.state}};l(n,"ɵfac",function(o){return new(o||n)}),l(n,"ɵprov",O({token:n,factory:()=>new n,providedIn:"platform"}));let e=n;return e})();function XC(t,e){if(t.length==0)return e;if(e.length==0)return t;let n=0;return t.endsWith("/")&&n++,e.startsWith("/")&&n++,n==2?t+e.substring(1):n==1?t+e:t+"/"+e}function o_(t){const e=t.match(/#|\?|$/),n=e&&e.index||t.length,i=n-(t[n-1]==="/"?1:0);return t.slice(0,i)+t.slice(n)}function ei(t){return t&&t[0]!=="?"?"?"+t:t}let vu=(()=>{const n=class n{historyGo(r){throw new Error("")}};l(n,"ɵfac",function(s){return new(s||n)}),l(n,"ɵprov",O({token:n,factory:()=>g(SN),providedIn:"root"}));let e=n;return e})();const CN=new B("");let SN=(()=>{const n=class n extends vu{constructor(s,o){super();l(this,"_platformLocation");l(this,"_baseHref");l(this,"_removeListenerFns",[]);this._platformLocation=s,this._baseHref=o??this._platformLocation.getBaseHrefFromDOM()??g(we).location?.origin??""}ngOnDestroy(){for(;this._removeListenerFns.length;)this._removeListenerFns.pop()()}onPopState(s){this._removeListenerFns.push(this._platformLocation.onPopState(s),this._platformLocation.onHashChange(s))}getBaseHref(){return this._baseHref}prepareExternalUrl(s){return XC(this._baseHref,s)}path(s=!1){const o=this._platformLocation.pathname+ei(this._platformLocation.search),a=this._platformLocation.hash;return a&&s?`${o}${a}`:o}pushState(s,o,a,c){const u=this.prepareExternalUrl(a+ei(c));this._platformLocation.pushState(s,o,u)}replaceState(s,o,a,c){const u=this.prepareExternalUrl(a+ei(c));this._platformLocation.replaceState(s,o,u)}forward(){this._platformLocation.forward()}back(){this._platformLocation.back()}getState(){return this._platformLocation.getState()}historyGo(s=0){this._platformLocation.historyGo?.(s)}};l(n,"ɵfac",function(o){return new(o||n)(ie(QC),ie(CN,8))}),l(n,"ɵprov",O({token:n,factory:n.ɵfac,providedIn:"root"}));let e=n;return e})(),Vs=(()=>{const n=class n{constructor(r){l(this,"_subject",new oe);l(this,"_basePath");l(this,"_locationStrategy");l(this,"_urlChangeListeners",[]);l(this,"_urlChangeSubscription",null);this._locationStrategy=r;const s=this._locationStrategy.getBaseHref();this._basePath=kN(o_(a_(s))),this._locationStrategy.onPopState(o=>{this._subject.next({url:this.path(!0),pop:!0,state:o.state,type:o.type})})}ngOnDestroy(){this._urlChangeSubscription?.unsubscribe(),this._urlChangeListeners=[]}path(r=!1){return this.normalize(this._locationStrategy.path(r))}getState(){return this._locationStrategy.getState()}isCurrentPathEqualTo(r,s=""){return this.path()==this.normalize(r+ei(s))}normalize(r){return n.stripTrailingSlash(AN(this._basePath,a_(r)))}prepareExternalUrl(r){return r&&r[0]!=="/"&&(r="/"+r),this._locationStrategy.prepareExternalUrl(r)}go(r,s="",o=null){this._locationStrategy.pushState(o,"",r,s),this._notifyUrlChangeListeners(this.prepareExternalUrl(r+ei(s)),o)}replaceState(r,s="",o=null){this._locationStrategy.replaceState(o,"",r,s),this._notifyUrlChangeListeners(this.prepareExternalUrl(r+ei(s)),o)}forward(){this._locationStrategy.forward()}back(){this._locationStrategy.back()}historyGo(r=0){this._locationStrategy.historyGo?.(r)}onUrlChange(r){return this._urlChangeListeners.push(r),this._urlChangeSubscription??(this._urlChangeSubscription=this.subscribe(s=>{this._notifyUrlChangeListeners(s.url,s.state)})),()=>{const s=this._urlChangeListeners.indexOf(r);this._urlChangeListeners.splice(s,1),this._urlChangeListeners.length===0&&(this._urlChangeSubscription?.unsubscribe(),this._urlChangeSubscription=null)}}_notifyUrlChangeListeners(r="",s){this._urlChangeListeners.forEach(o=>o(r,s))}subscribe(r,s,o){return this._subject.subscribe({next:r,error:s??void 0,complete:o??void 0})}};l(n,"normalizeQueryParams",ei),l(n,"joinWithSlash",XC),l(n,"stripTrailingSlash",o_),l(n,"ɵfac",function(s){return new(s||n)(ie(vu))}),l(n,"ɵprov",O({token:n,factory:()=>TN(),providedIn:"root"}));let e=n;return e})();function TN(){return new Vs(ie(vu))}function AN(t,e){if(!t||!e.startsWith(t))return e;const n=e.substring(t.length);return n===""||["/",";","?","#"].includes(n[0])?n:e}function a_(t){return t.replace(/\/index.html$/,"")}function kN(t){if(new RegExp("^(https?:)?//").test(t)){const[,n]=t.split(/\/\/[^\/]+/);return n}return t}var vt=function(t){return t[t.Format=0]="Format",t[t.Standalone=1]="Standalone",t}(vt||{}),Fe=function(t){return t[t.Narrow=0]="Narrow",t[t.Abbreviated=1]="Abbreviated",t[t.Wide=2]="Wide",t[t.Short=3]="Short",t}(Fe||{}),Rt=function(t){return t[t.Short=0]="Short",t[t.Medium=1]="Medium",t[t.Long=2]="Long",t[t.Full=3]="Full",t}(Rt||{});const bu={Decimal:0,Group:1,List:2,PercentSign:3,PlusSign:4,MinusSign:5,Exponential:6,SuperscriptingExponent:7,PerMille:8,Infinity:9,NaN:10,TimeSeparator:11,CurrencyDecimal:12,CurrencyGroup:13};function DN(t){return vn(t)[lt.LocaleId]}function IN(t,e,n){const i=vn(t),r=[i[lt.DayPeriodsFormat],i[lt.DayPeriodsStandalone]],s=Xt(r,e);return Xt(s,n)}function xN(t,e,n){const i=vn(t),r=[i[lt.DaysFormat],i[lt.DaysStandalone]],s=Xt(r,e);return Xt(s,n)}function RN(t,e,n){const i=vn(t),r=[i[lt.MonthsFormat],i[lt.MonthsStandalone]],s=Xt(r,e);return Xt(s,n)}function FN(t,e){const i=vn(t)[lt.Eras];return Xt(i,e)}function Na(t,e){const n=vn(t);return Xt(n[lt.DateFormat],e)}function La(t,e){const n=vn(t);return Xt(n[lt.TimeFormat],e)}function Ma(t,e){const i=vn(t)[lt.DateTimeFormat];return Xt(i,e)}function Eu(t,e){return vn(t)[lt.NumberSymbols][e]}function JC(t){if(!t[lt.ExtraData])throw new Error(`Missing extra locale data for the locale "${t[lt.LocaleId]}". Use "registerLocaleData" to load new data. See the "I18n guide" on angular.io to know more.`)}function ON(t){const e=vn(t);return JC(e),(e[lt.ExtraData][2]||[]).map(i=>typeof i=="string"?yh(i):[yh(i[0]),yh(i[1])])}function PN(t,e,n){const i=vn(t);JC(i);const r=[i[lt.ExtraData][0],i[lt.ExtraData][1]],s=Xt(r,e)||[];return Xt(s,n)||[]}function Xt(t,e){for(let n=e;n>-1;n--)if(typeof t[n]<"u")return t[n];throw new Error("Locale data API: locale data undefined")}function yh(t){const[e,n]=t.split(":");return{hours:+e,minutes:+n}}const NN=/^(\d{4,})-?(\d\d)-?(\d\d)(?:T(\d\d)(?::?(\d\d)(?::?(\d\d)(?:\.(\d+))?)?)?(Z|([+-])(\d\d):?(\d\d))?)?$/,ji={},LN=/((?:[^BEGHLMOSWYZabcdhmswyz']+)|(?:'(?:[^']|'')*')|(?:G{1,5}|y{1,4}|Y{1,4}|M{1,5}|L{1,5}|w{1,2}|W{1}|d{1,2}|E{1,6}|c{1,6}|a{1,5}|b{1,5}|B{1,5}|h{1,2}|H{1,2}|m{1,2}|s{1,2}|S{1,3}|z{1,4}|Z{1,5}|O{1,4}))([\s\S]*)/;var Yn=function(t){return t[t.Short=0]="Short",t[t.ShortGMT=1]="ShortGMT",t[t.Long=2]="Long",t[t.Extended=3]="Extended",t}(Yn||{}),ke=function(t){return t[t.FullYear=0]="FullYear",t[t.Month=1]="Month",t[t.Date=2]="Date",t[t.Hours=3]="Hours",t[t.Minutes=4]="Minutes",t[t.Seconds=5]="Seconds",t[t.FractionalSeconds=6]="FractionalSeconds",t[t.Day=7]="Day",t}(ke||{}),Ae=function(t){return t[t.DayPeriods=0]="DayPeriods",t[t.Days=1]="Days",t[t.Months=2]="Months",t[t.Eras=3]="Eras",t}(Ae||{});function MN(t,e,n,i){let r=GN(t);e=Hn(n,e)||e;let o=[],a;for(;e;)if(a=LN.exec(e),a){o=o.concat(a.slice(1));const h=o.pop();if(!h)break;e=h}else{o.push(e);break}let c=r.getTimezoneOffset();i&&(c=tS(i,c),r=WN(r,i));let u="";return o.forEach(h=>{const f=VN(h);u+=f?f(r,n,c):h==="''"?"'":h.replace(/(^'|'$)/g,"").replace(/''/g,"'")}),u}function ic(t,e,n){const i=new Date(0);return i.setFullYear(t,e,n),i.setHours(0,0,0),i}function Hn(t,e){const n=DN(t);if(ji[n]??(ji[n]={}),ji[n][e])return ji[n][e];let i="";switch(e){case"shortDate":i=Na(t,Rt.Short);break;case"mediumDate":i=Na(t,Rt.Medium);break;case"longDate":i=Na(t,Rt.Long);break;case"fullDate":i=Na(t,Rt.Full);break;case"shortTime":i=La(t,Rt.Short);break;case"mediumTime":i=La(t,Rt.Medium);break;case"longTime":i=La(t,Rt.Long);break;case"fullTime":i=La(t,Rt.Full);break;case"short":const r=Hn(t,"shortTime"),s=Hn(t,"shortDate");i=Ba(Ma(t,Rt.Short),[r,s]);break;case"medium":const o=Hn(t,"mediumTime"),a=Hn(t,"mediumDate");i=Ba(Ma(t,Rt.Medium),[o,a]);break;case"long":const c=Hn(t,"longTime"),u=Hn(t,"longDate");i=Ba(Ma(t,Rt.Long),[c,u]);break;case"full":const h=Hn(t,"fullTime"),f=Hn(t,"fullDate");i=Ba(Ma(t,Rt.Full),[h,f]);break}return i&&(ji[n][e]=i),i}function Ba(t,e){return e&&(t=t.replace(/\{([^}]+)}/g,function(n,i){return e!=null&&i in e?e[i]:n})),t}function an(t,e,n="-",i,r){let s="";(t<0||r&&t<=0)&&(r?t=-t+1:(t=-t,s=n));let o=String(t);for(;o.length0||a>-n)&&(a+=n),t===ke.Hours)a===0&&n===-12&&(a=12);else if(t===ke.FractionalSeconds)return BN(a,e);const c=Eu(o,bu.MinusSign);return an(a,e,c,i,r)}}function jN(t,e){switch(t){case ke.FullYear:return e.getFullYear();case ke.Month:return e.getMonth();case ke.Date:return e.getDate();case ke.Hours:return e.getHours();case ke.Minutes:return e.getMinutes();case ke.Seconds:return e.getSeconds();case ke.FractionalSeconds:return e.getMilliseconds();case ke.Day:return e.getDay();default:throw new Error(`Unknown DateType value "${t}".`)}}function Me(t,e,n=vt.Format,i=!1){return function(r,s){return zN(r,s,t,e,n,i)}}function zN(t,e,n,i,r,s){switch(n){case Ae.Months:return RN(e,r,i)[t.getMonth()];case Ae.Days:return xN(e,r,i)[t.getDay()];case Ae.DayPeriods:const o=t.getHours(),a=t.getMinutes();if(s){const u=ON(e),h=PN(e,r,i),f=u.findIndex(d=>{if(Array.isArray(d)){const[p,m]=d,y=o>=p.hours&&a>=p.minutes,_=o0?Math.floor(r/60):Math.ceil(r/60);switch(t){case Yn.Short:return(r>=0?"+":"")+an(o,2,s)+an(Math.abs(r%60),2,s);case Yn.ShortGMT:return"GMT"+(r>=0?"+":"")+an(o,1,s);case Yn.Long:return"GMT"+(r>=0?"+":"")+an(o,2,s)+":"+an(Math.abs(r%60),2,s);case Yn.Extended:return i===0?"Z":(r>=0?"+":"")+an(o,2,s)+":"+an(Math.abs(r%60),2,s);default:throw new Error(`Unknown zone width "${t}"`)}}}const HN=0,pl=4;function UN(t){const e=ic(t,HN,1).getDay();return ic(t,0,1+(e<=pl?pl:pl+7)-e)}function eS(t){const e=t.getDay(),n=e===0?-3:pl-e;return ic(t.getFullYear(),t.getMonth(),t.getDate()+n)}function _h(t,e=!1){return function(n,i){let r;if(e){const s=new Date(n.getFullYear(),n.getMonth(),1).getDay()-1,o=n.getDate();r=1+Math.floor((o+s)/7)}else{const s=eS(n),o=UN(s.getFullYear()),a=s.getTime()-o.getTime();r=1+Math.round(a/6048e5)}return an(r,t,Eu(i,bu.MinusSign))}}function za(t,e=!1){return function(n,i){const s=eS(n).getFullYear();return an(s,t,Eu(i,bu.MinusSign),e)}}const vh={};function VN(t){if(vh[t])return vh[t];let e;switch(t){case"G":case"GG":case"GGG":e=Me(Ae.Eras,Fe.Abbreviated);break;case"GGGG":e=Me(Ae.Eras,Fe.Wide);break;case"GGGGG":e=Me(Ae.Eras,Fe.Narrow);break;case"y":e=Ke(ke.FullYear,1,0,!1,!0);break;case"yy":e=Ke(ke.FullYear,2,0,!0,!0);break;case"yyy":e=Ke(ke.FullYear,3,0,!1,!0);break;case"yyyy":e=Ke(ke.FullYear,4,0,!1,!0);break;case"Y":e=za(1);break;case"YY":e=za(2,!0);break;case"YYY":e=za(3);break;case"YYYY":e=za(4);break;case"M":case"L":e=Ke(ke.Month,1,1);break;case"MM":case"LL":e=Ke(ke.Month,2,1);break;case"MMM":e=Me(Ae.Months,Fe.Abbreviated);break;case"MMMM":e=Me(Ae.Months,Fe.Wide);break;case"MMMMM":e=Me(Ae.Months,Fe.Narrow);break;case"LLL":e=Me(Ae.Months,Fe.Abbreviated,vt.Standalone);break;case"LLLL":e=Me(Ae.Months,Fe.Wide,vt.Standalone);break;case"LLLLL":e=Me(Ae.Months,Fe.Narrow,vt.Standalone);break;case"w":e=_h(1);break;case"ww":e=_h(2);break;case"W":e=_h(1,!0);break;case"d":e=Ke(ke.Date,1);break;case"dd":e=Ke(ke.Date,2);break;case"c":case"cc":e=Ke(ke.Day,1);break;case"ccc":e=Me(Ae.Days,Fe.Abbreviated,vt.Standalone);break;case"cccc":e=Me(Ae.Days,Fe.Wide,vt.Standalone);break;case"ccccc":e=Me(Ae.Days,Fe.Narrow,vt.Standalone);break;case"cccccc":e=Me(Ae.Days,Fe.Short,vt.Standalone);break;case"E":case"EE":case"EEE":e=Me(Ae.Days,Fe.Abbreviated);break;case"EEEE":e=Me(Ae.Days,Fe.Wide);break;case"EEEEE":e=Me(Ae.Days,Fe.Narrow);break;case"EEEEEE":e=Me(Ae.Days,Fe.Short);break;case"a":case"aa":case"aaa":e=Me(Ae.DayPeriods,Fe.Abbreviated);break;case"aaaa":e=Me(Ae.DayPeriods,Fe.Wide);break;case"aaaaa":e=Me(Ae.DayPeriods,Fe.Narrow);break;case"b":case"bb":case"bbb":e=Me(Ae.DayPeriods,Fe.Abbreviated,vt.Standalone,!0);break;case"bbbb":e=Me(Ae.DayPeriods,Fe.Wide,vt.Standalone,!0);break;case"bbbbb":e=Me(Ae.DayPeriods,Fe.Narrow,vt.Standalone,!0);break;case"B":case"BB":case"BBB":e=Me(Ae.DayPeriods,Fe.Abbreviated,vt.Format,!0);break;case"BBBB":e=Me(Ae.DayPeriods,Fe.Wide,vt.Format,!0);break;case"BBBBB":e=Me(Ae.DayPeriods,Fe.Narrow,vt.Format,!0);break;case"h":e=Ke(ke.Hours,1,-12);break;case"hh":e=Ke(ke.Hours,2,-12);break;case"H":e=Ke(ke.Hours,1);break;case"HH":e=Ke(ke.Hours,2);break;case"m":e=Ke(ke.Minutes,1);break;case"mm":e=Ke(ke.Minutes,2);break;case"s":e=Ke(ke.Seconds,1);break;case"ss":e=Ke(ke.Seconds,2);break;case"S":e=Ke(ke.FractionalSeconds,1);break;case"SS":e=Ke(ke.FractionalSeconds,2);break;case"SSS":e=Ke(ke.FractionalSeconds,3);break;case"Z":case"ZZ":case"ZZZ":e=ja(Yn.Short);break;case"ZZZZZ":e=ja(Yn.Extended);break;case"O":case"OO":case"OOO":case"z":case"zz":case"zzz":e=ja(Yn.ShortGMT);break;case"OOOO":case"ZZZZ":case"zzzz":e=ja(Yn.Long);break;default:return null}return vh[t]=e,e}function tS(t,e){t=t.replace(/:/g,"");const n=Date.parse("Jan 01, 1970 00:00:00 "+t)/6e4;return isNaN(n)?e:n}function $N(t,e){return t=new Date(t.getTime()),t.setMinutes(t.getMinutes()+e),t}function WN(t,e,n){const r=t.getTimezoneOffset(),s=tS(e,r);return $N(t,-1*(s-r))}function GN(t){if(l_(t))return t;if(typeof t=="number"&&!isNaN(t))return new Date(t);if(typeof t=="string"){if(t=t.trim(),/^(\d{4}(-\d{1,2}(-\d{1,2})?)?)$/.test(t)){const[r,s=1,o=1]=t.split("-").map(a=>+a);return ic(r,s-1,o)}const n=parseFloat(t);if(!isNaN(t-n))return new Date(n);let i;if(i=t.match(NN))return qN(i)}const e=new Date(t);if(!l_(e))throw new Error(`Unable to convert "${t}" into a date`);return e}function qN(t){const e=new Date(0);let n=0,i=0;const r=t[8]?e.setUTCFullYear:e.setFullYear,s=t[8]?e.setUTCHours:e.setHours;t[9]&&(n=Number(t[9]+t[10]),i=Number(t[9]+t[11])),r.call(e,Number(t[1]),Number(t[2])-1,Number(t[3]));const o=Number(t[4]||0)-n,a=Number(t[5]||0)-i,c=Number(t[6]||0),u=Math.floor(parseFloat("0."+(t[7]||0))*1e3);return s.call(e,o,a,c,u),e}function l_(t){return t instanceof Date&&!isNaN(t.valueOf())}function nS(t,e){e=encodeURIComponent(e);for(const n of t.split(";")){const i=n.indexOf("="),[r,s]=i==-1?[n,""]:[n.slice(0,i),n.slice(i+1)];if(r.trim()===e)return decodeURIComponent(s)}return null}const bh=/\s+/,c_=[];let A7=(()=>{const n=class n{constructor(r,s){l(this,"_ngEl");l(this,"_renderer");l(this,"initialClasses",c_);l(this,"rawClass");l(this,"stateMap",new Map);this._ngEl=r,this._renderer=s}set klass(r){this.initialClasses=r!=null?r.trim().split(bh):c_}set ngClass(r){this.rawClass=typeof r=="string"?r.trim().split(bh):r}ngDoCheck(){for(const s of this.initialClasses)this._updateState(s,!0);const r=this.rawClass;if(Array.isArray(r)||r instanceof Set)for(const s of r)this._updateState(s,!0);else if(r!=null)for(const s of Object.keys(r))this._updateState(s,!!r[s]);this._applyStateDiff()}_updateState(r,s){const o=this.stateMap.get(r);o!==void 0?(o.enabled!==s&&(o.changed=!0,o.enabled=s),o.touched=!0):this.stateMap.set(r,{enabled:s,changed:!0,touched:!0})}_applyStateDiff(){for(const r of this.stateMap){const s=r[0],o=r[1];o.changed?(this._toggleClass(s,o.enabled),o.changed=!1):o.touched||(o.enabled&&this._toggleClass(s,!1),this.stateMap.delete(s)),o.touched=!1}}_toggleClass(r,s){r=r.trim(),r.length>0&&r.split(bh).forEach(o=>{s?this._renderer.addClass(this._ngEl.nativeElement,o):this._renderer.removeClass(this._ngEl.nativeElement,o)})}};l(n,"ɵfac",function(s){return new(s||n)(Ce(qe),Ce(zs))}),l(n,"ɵdir",Ge({type:n,selectors:[["","ngClass",""]],inputs:{klass:[0,"class","klass"],ngClass:"ngClass"}}));let e=n;return e})();function rS(t,e){return new x(2100,!1)}class ZN{createSubscription(e,n){return Pf(()=>e.subscribe({next:n,error:i=>{throw i}}))}dispose(e){Pf(()=>e.unsubscribe())}}class YN{createSubscription(e,n){return e.then(n,i=>{throw i})}dispose(e){}}const KN=new YN,QN=new ZN;let XN=(()=>{const n=class n{constructor(r){l(this,"_ref");l(this,"_latestValue",null);l(this,"markForCheckOnValueUpdate",!0);l(this,"_subscription",null);l(this,"_obj",null);l(this,"_strategy",null);this._ref=r}ngOnDestroy(){this._subscription&&this._dispose(),this._ref=null}transform(r){if(!this._obj){if(r)try{this.markForCheckOnValueUpdate=!1,this._subscribe(r)}finally{this.markForCheckOnValueUpdate=!0}return this._latestValue}return r!==this._obj?(this._dispose(),this.transform(r)):this._latestValue}_subscribe(r){this._obj=r,this._strategy=this._selectStrategy(r),this._subscription=this._strategy.createSubscription(r,s=>this._updateLatestValue(r,s))}_selectStrategy(r){if(pu(r))return KN;if(kC(r))return QN;throw rS()}_dispose(){this._strategy.dispose(this._subscription),this._latestValue=null,this._subscription=null,this._obj=null}_updateLatestValue(r,s){r===this._obj&&(this._latestValue=s,this.markForCheckOnValueUpdate&&this._ref?.markForCheck())}};l(n,"ɵfac",function(s){return new(s||n)(Ce(Us,16))}),l(n,"ɵpipe",_C({name:"async",type:n,pure:!1}));let e=n;return e})();const JN="mediumDate",eL=new B(""),tL=new B("");let k7=(()=>{const n=class n{constructor(r,s,o){l(this,"locale");l(this,"defaultTimezone");l(this,"defaultOptions");this.locale=r,this.defaultTimezone=s,this.defaultOptions=o}transform(r,s,o,a){if(r==null||r===""||r!==r)return null;try{const c=s??this.defaultOptions?.dateFormat??JN,u=o??this.defaultOptions?.timezone??this.defaultTimezone??void 0;return MN(r,c,a||this.locale,u)}catch(c){throw rS(n,c.message)}}};l(n,"ɵfac",function(s){return new(s||n)(Ce(km,16),Ce(eL,24),Ce(tL,24))}),l(n,"ɵpipe",_C({name:"date",type:n,pure:!0}));let e=n;return e})();const iS="browser",nL="server";function wu(t){return t===iS}function Cu(t){return t===nL}let rL=(()=>{const n=class n{};l(n,"ɵprov",O({token:n,providedIn:"root",factory:()=>wu(g(Jt))?new iL(g(we),window):new oL}));let e=n;return e})();class iL{constructor(e,n){l(this,"document");l(this,"window");l(this,"offset",()=>[0,0]);this.document=e,this.window=n}setOffset(e){Array.isArray(e)?this.offset=()=>e:this.offset=e}getScrollPosition(){return[this.window.scrollX,this.window.scrollY]}scrollToPosition(e){this.window.scrollTo(e[0],e[1])}scrollToAnchor(e){const n=sL(this.document,e);n&&(this.scrollToElement(n),n.focus())}setHistoryScrollRestoration(e){this.window.history.scrollRestoration=e}scrollToElement(e){const n=e.getBoundingClientRect(),i=n.left+this.window.pageXOffset,r=n.top+this.window.pageYOffset,s=this.offset();this.window.scrollTo(i-s[0],r-s[1])}}function sL(t,e){const n=t.getElementById(e)||t.getElementsByName(e)[0];if(n)return n;if(typeof t.createTreeWalker=="function"&&t.body&&typeof t.body.attachShadow=="function"){const i=t.createTreeWalker(t.body,NodeFilter.SHOW_ELEMENT);let r=i.currentNode;for(;r;){const s=r.shadowRoot;if(s){const o=s.getElementById(e)||s.querySelector(`[name="${e}"]`);if(o)return o}r=i.nextNode()}}return null}class oL{setOffset(e){}getScrollPosition(){return[0,0]}scrollToPosition(e){}scrollToAnchor(e){}setHistoryScrollRestoration(e){}}class sS{}/** + * @license Angular v19.0.5 + * (c) 2010-2024 Google LLC. https://angular.io/ + * License: MIT + */class Dm{}class Im{}class jt{constructor(e){l(this,"headers");l(this,"normalizedNames",new Map);l(this,"lazyInit");l(this,"lazyUpdate",null);e?typeof e=="string"?this.lazyInit=()=>{this.headers=new Map,e.split(` +`).forEach(n=>{const i=n.indexOf(":");if(i>0){const r=n.slice(0,i),s=n.slice(i+1).trim();this.addHeaderEntry(r,s)}})}:typeof Headers<"u"&&e instanceof Headers?(this.headers=new Map,e.forEach((n,i)=>{this.addHeaderEntry(i,n)})):this.lazyInit=()=>{this.headers=new Map,Object.entries(e).forEach(([n,i])=>{this.setHeaderEntries(n,i)})}:this.headers=new Map}has(e){return this.init(),this.headers.has(e.toLowerCase())}get(e){this.init();const n=this.headers.get(e.toLowerCase());return n&&n.length>0?n[0]:null}keys(){return this.init(),Array.from(this.normalizedNames.values())}getAll(e){return this.init(),this.headers.get(e.toLowerCase())||null}append(e,n){return this.clone({name:e,value:n,op:"a"})}set(e,n){return this.clone({name:e,value:n,op:"s"})}delete(e,n){return this.clone({name:e,value:n,op:"d"})}maybeSetNormalizedName(e,n){this.normalizedNames.has(n)||this.normalizedNames.set(n,e)}init(){this.lazyInit&&(this.lazyInit instanceof jt?this.copyFrom(this.lazyInit):this.lazyInit(),this.lazyInit=null,this.lazyUpdate&&(this.lazyUpdate.forEach(e=>this.applyUpdate(e)),this.lazyUpdate=null))}copyFrom(e){e.init(),Array.from(e.headers.keys()).forEach(n=>{this.headers.set(n,e.headers.get(n)),this.normalizedNames.set(n,e.normalizedNames.get(n))})}clone(e){const n=new jt;return n.lazyInit=this.lazyInit&&this.lazyInit instanceof jt?this.lazyInit:this,n.lazyUpdate=(this.lazyUpdate||[]).concat([e]),n}applyUpdate(e){const n=e.name.toLowerCase();switch(e.op){case"a":case"s":let i=e.value;if(typeof i=="string"&&(i=[i]),i.length===0)return;this.maybeSetNormalizedName(e.name,n);const r=(e.op==="a"?this.headers.get(n):void 0)||[];r.push(...i),this.headers.set(n,r);break;case"d":const s=e.value;if(!s)this.headers.delete(n),this.normalizedNames.delete(n);else{let o=this.headers.get(n);if(!o)return;o=o.filter(a=>s.indexOf(a)===-1),o.length===0?(this.headers.delete(n),this.normalizedNames.delete(n)):this.headers.set(n,o)}break}}addHeaderEntry(e,n){const i=e.toLowerCase();this.maybeSetNormalizedName(e,i),this.headers.has(i)?this.headers.get(i).push(n):this.headers.set(i,[n])}setHeaderEntries(e,n){const i=(Array.isArray(n)?n:[n]).map(s=>s.toString()),r=e.toLowerCase();this.headers.set(r,i),this.maybeSetNormalizedName(e,r)}forEach(e){this.init(),Array.from(this.normalizedNames.keys()).forEach(n=>e(this.normalizedNames.get(n),this.headers.get(n)))}}class aL{encodeKey(e){return u_(e)}encodeValue(e){return u_(e)}decodeKey(e){return decodeURIComponent(e)}decodeValue(e){return decodeURIComponent(e)}}function lL(t,e){const n=new Map;return t.length>0&&t.replace(/^\?/,"").split("&").forEach(r=>{const s=r.indexOf("="),[o,a]=s==-1?[e.decodeKey(r),""]:[e.decodeKey(r.slice(0,s)),e.decodeValue(r.slice(s+1))],c=n.get(o)||[];c.push(a),n.set(o,c)}),n}const cL=/%(\d[a-f0-9])/gi,uL={40:"@","3A":":",24:"$","2C":",","3B":";","3D":"=","3F":"?","2F":"/"};function u_(t){return encodeURIComponent(t).replace(cL,(e,n)=>uL[n]??e)}function Ha(t){return`${t}`}class Cr{constructor(e={}){l(this,"map");l(this,"encoder");l(this,"updates",null);l(this,"cloneFrom",null);if(this.encoder=e.encoder||new aL,e.fromString){if(e.fromObject)throw new Error("Cannot specify both fromString and fromObject.");this.map=lL(e.fromString,this.encoder)}else e.fromObject?(this.map=new Map,Object.keys(e.fromObject).forEach(n=>{const i=e.fromObject[n],r=Array.isArray(i)?i.map(Ha):[Ha(i)];this.map.set(n,r)})):this.map=null}has(e){return this.init(),this.map.has(e)}get(e){this.init();const n=this.map.get(e);return n?n[0]:null}getAll(e){return this.init(),this.map.get(e)||null}keys(){return this.init(),Array.from(this.map.keys())}append(e,n){return this.clone({param:e,value:n,op:"a"})}appendAll(e){const n=[];return Object.keys(e).forEach(i=>{const r=e[i];Array.isArray(r)?r.forEach(s=>{n.push({param:i,value:s,op:"a"})}):n.push({param:i,value:r,op:"a"})}),this.clone(n)}set(e,n){return this.clone({param:e,value:n,op:"s"})}delete(e,n){return this.clone({param:e,value:n,op:"d"})}toString(){return this.init(),this.keys().map(e=>{const n=this.encoder.encodeKey(e);return this.map.get(e).map(i=>n+"="+this.encoder.encodeValue(i)).join("&")}).filter(e=>e!=="").join("&")}clone(e){const n=new Cr({encoder:this.encoder});return n.cloneFrom=this.cloneFrom||this,n.updates=(this.updates||[]).concat(e),n}init(){this.map===null&&(this.map=new Map),this.cloneFrom!==null&&(this.cloneFrom.init(),this.cloneFrom.keys().forEach(e=>this.map.set(e,this.cloneFrom.map.get(e))),this.updates.forEach(e=>{switch(e.op){case"a":case"s":const n=(e.op==="a"?this.map.get(e.param):void 0)||[];n.push(Ha(e.value)),this.map.set(e.param,n);break;case"d":if(e.value!==void 0){let i=this.map.get(e.param)||[];const r=i.indexOf(Ha(e.value));r!==-1&&i.splice(r,1),i.length>0?this.map.set(e.param,i):this.map.delete(e.param)}else{this.map.delete(e.param);break}}}),this.cloneFrom=this.updates=null)}}class hL{constructor(){l(this,"map",new Map)}set(e,n){return this.map.set(e,n),this}get(e){return this.map.has(e)||this.map.set(e,e.defaultValue()),this.map.get(e)}delete(e){return this.map.delete(e),this}has(e){return this.map.has(e)}keys(){return this.map.keys()}}function fL(t){switch(t){case"DELETE":case"GET":case"HEAD":case"OPTIONS":case"JSONP":return!1;default:return!0}}function h_(t){return typeof ArrayBuffer<"u"&&t instanceof ArrayBuffer}function f_(t){return typeof Blob<"u"&&t instanceof Blob}function d_(t){return typeof FormData<"u"&&t instanceof FormData}function dL(t){return typeof URLSearchParams<"u"&&t instanceof URLSearchParams}class fo{constructor(e,n,i,r){l(this,"url");l(this,"body",null);l(this,"headers");l(this,"context");l(this,"reportProgress",!1);l(this,"withCredentials",!1);l(this,"responseType","json");l(this,"method");l(this,"params");l(this,"urlWithParams");l(this,"transferCache");this.url=n,this.method=e.toUpperCase();let s;if(fL(this.method)||r?(this.body=i!==void 0?i:null,s=r):s=i,s&&(this.reportProgress=!!s.reportProgress,this.withCredentials=!!s.withCredentials,s.responseType&&(this.responseType=s.responseType),s.headers&&(this.headers=s.headers),s.context&&(this.context=s.context),s.params&&(this.params=s.params),this.transferCache=s.transferCache),this.headers??(this.headers=new jt),this.context??(this.context=new hL),!this.params)this.params=new Cr,this.urlWithParams=n;else{const o=this.params.toString();if(o.length===0)this.urlWithParams=n;else{const a=n.indexOf("?"),c=a===-1?"?":ad.set(p,e.setHeaders[p]),u)),e.setParams&&(h=Object.keys(e.setParams).reduce((d,p)=>d.set(p,e.setParams[p]),h)),new fo(n,i,o,{params:h,headers:u,context:f,reportProgress:c,responseType:r,withCredentials:a,transferCache:s})}}var Sr=function(t){return t[t.Sent=0]="Sent",t[t.UploadProgress=1]="UploadProgress",t[t.ResponseHeader=2]="ResponseHeader",t[t.DownloadProgress=3]="DownloadProgress",t[t.Response=4]="Response",t[t.User=5]="User",t}(Sr||{});class xm{constructor(e,n=200,i="OK"){l(this,"headers");l(this,"status");l(this,"statusText");l(this,"url");l(this,"ok");l(this,"type");this.headers=e.headers||new jt,this.status=e.status!==void 0?e.status:n,this.statusText=e.statusText||i,this.url=e.url||null,this.ok=this.status>=200&&this.status<300}}class Su extends xm{constructor(n={}){super(n);l(this,"type",Sr.ResponseHeader)}clone(n={}){return new Su({headers:n.headers||this.headers,status:n.status!==void 0?n.status:this.status,statusText:n.statusText||this.statusText,url:n.url||this.url||void 0})}}class _i extends xm{constructor(n={}){super(n);l(this,"body");l(this,"type",Sr.Response);this.body=n.body!==void 0?n.body:null}clone(n={}){return new _i({body:n.body!==void 0?n.body:this.body,headers:n.headers||this.headers,status:n.status!==void 0?n.status:this.status,statusText:n.statusText||this.statusText,url:n.url||this.url||void 0})}}class Yi extends xm{constructor(n){super(n,0,"Unknown Error");l(this,"name","HttpErrorResponse");l(this,"message");l(this,"error");l(this,"ok",!1);this.status>=200&&this.status<300?this.message=`Http failure during parsing for ${n.url||"(unknown url)"}`:this.message=`Http failure response for ${n.url||"(unknown url)"}: ${n.status} ${n.statusText}`,this.error=n.error||null}}const oS=200,pL=204;function Eh(t,e){return{body:e,headers:t.headers,context:t.context,observe:t.observe,params:t.params,reportProgress:t.reportProgress,responseType:t.responseType,withCredentials:t.withCredentials,transferCache:t.transferCache}}let aS=(()=>{const n=class n{constructor(r){l(this,"handler");this.handler=r}request(r,s,o={}){let a;if(r instanceof fo)a=r;else{let h;o.headers instanceof jt?h=o.headers:h=new jt(o.headers);let f;o.params&&(o.params instanceof Cr?f=o.params:f=new Cr({fromObject:o.params})),a=new fo(r,s,o.body!==void 0?o.body:null,{headers:h,context:o.context,params:f,reportProgress:o.reportProgress,responseType:o.responseType||"json",withCredentials:o.withCredentials,transferCache:o.transferCache})}const c=G(a).pipe(Do(h=>this.handler.handle(h)));if(r instanceof fo||o.observe==="events")return c;const u=c.pipe(At(h=>h instanceof _i));switch(o.observe||"body"){case"body":switch(a.responseType){case"arraybuffer":return u.pipe(ue(h=>{if(h.body!==null&&!(h.body instanceof ArrayBuffer))throw new Error("Response is not an ArrayBuffer.");return h.body}));case"blob":return u.pipe(ue(h=>{if(h.body!==null&&!(h.body instanceof Blob))throw new Error("Response is not a Blob.");return h.body}));case"text":return u.pipe(ue(h=>{if(h.body!==null&&typeof h.body!="string")throw new Error("Response is not a string.");return h.body}));case"json":default:return u.pipe(ue(h=>h.body))}case"response":return u;default:throw new Error(`Unreachable: unhandled observe type ${o.observe}}`)}}delete(r,s={}){return this.request("DELETE",r,s)}get(r,s={}){return this.request("GET",r,s)}head(r,s={}){return this.request("HEAD",r,s)}jsonp(r,s){return this.request("JSONP",r,{params:new Cr().append(s,"JSONP_CALLBACK"),observe:"body",responseType:"json"})}options(r,s={}){return this.request("OPTIONS",r,s)}patch(r,s,o={}){return this.request("PATCH",r,Eh(o,s))}post(r,s,o={}){return this.request("POST",r,Eh(o,s))}put(r,s,o={}){return this.request("PUT",r,Eh(o,s))}};l(n,"ɵfac",function(s){return new(s||n)(ie(Dm))}),l(n,"ɵprov",O({token:n,factory:n.ɵfac}));let e=n;return e})();const mL=/^\)\]\}',?\n/,gL="X-Request-URL";function p_(t){if(t.url)return t.url;const e=gL.toLocaleLowerCase();return t.headers.get(e)}let Nf=(()=>{const n=class n{constructor(){l(this,"fetchImpl",g(yL,{optional:!0})?.fetch??((...r)=>globalThis.fetch(...r)));l(this,"ngZone",g(ge))}handle(r){return new xe(s=>{const o=new AbortController;return this.doRequest(r,o.signal,s).then(Lf,a=>s.error(new Yi({error:a}))),()=>o.abort()})}async doRequest(r,s,o){const a=this.createRequestInit(r);let c;try{const y=this.ngZone.runOutsideAngular(()=>this.fetchImpl(r.urlWithParams,{signal:s,...a}));_L(y),o.next({type:Sr.Sent}),c=await y}catch(y){o.error(new Yi({error:y,status:y.status??0,statusText:y.statusText,url:r.urlWithParams,headers:y.headers}));return}const u=new jt(c.headers),h=c.statusText,f=p_(c)??r.urlWithParams;let d=c.status,p=null;if(r.reportProgress&&o.next(new Su({headers:u,status:d,statusText:h,url:f})),c.body){const y=c.headers.get("content-length"),_=[],S=c.body.getReader();let C=0,E,N;const L=typeof Zone<"u"&&Zone.current;await this.ngZone.runOutsideAngular(async()=>{for(;;){const{done:U,value:P}=await S.read();if(U)break;if(_.push(P),C+=P.length,r.reportProgress){N=r.responseType==="text"?(N??"")+(E??(E=new TextDecoder)).decode(P,{stream:!0}):void 0;const de=()=>o.next({type:Sr.DownloadProgress,total:y?+y:void 0,loaded:C,partialText:N});L?L.run(de):de()}}});const Y=this.concatChunks(_,C);try{const U=c.headers.get("Content-Type")??"";p=this.parseBody(r,Y,U)}catch(U){o.error(new Yi({error:U,headers:new jt(c.headers),status:c.status,statusText:c.statusText,url:p_(c)??r.urlWithParams}));return}}d===0&&(d=p?oS:0),d>=200&&d<300?(o.next(new _i({body:p,headers:u,status:d,statusText:h,url:f})),o.complete()):o.error(new Yi({error:p,headers:u,status:d,statusText:h,url:f}))}parseBody(r,s,o){switch(r.responseType){case"json":const a=new TextDecoder().decode(s).replace(mL,"");return a===""?null:JSON.parse(a);case"text":return new TextDecoder().decode(s);case"blob":return new Blob([s],{type:o});case"arraybuffer":return s.buffer}}createRequestInit(r){const s={},o=r.withCredentials?"include":void 0;if(r.headers.forEach((a,c)=>s[a]=c.join(",")),r.headers.has("Accept")||(s.Accept="application/json, text/plain, */*"),!r.headers.has("Content-Type")){const a=r.detectContentTypeHeader();a!==null&&(s["Content-Type"]=a)}return{body:r.serializeBody(),method:r.method,headers:s,credentials:o}}concatChunks(r,s){const o=new Uint8Array(s);let a=0;for(const c of r)o.set(c,a),a+=c.length;return o}};l(n,"ɵfac",function(s){return new(s||n)}),l(n,"ɵprov",O({token:n,factory:n.ɵfac}));let e=n;return e})();class yL{}function Lf(){}function _L(t){t.then(Lf,Lf)}function vL(t,e){return e(t)}function bL(t,e,n){return(i,r)=>gn(n,()=>e(i,s=>t(s,r)))}const lS=new B(""),Rm=new B(""),EL=new B("",{providedIn:"root",factory:()=>!0});let m_=(()=>{const n=class n extends Dm{constructor(s,o){super();l(this,"backend");l(this,"injector");l(this,"chain",null);l(this,"pendingTasks",g(zr));l(this,"contributeToStability",g(EL));this.backend=s,this.injector=o}handle(s){if(this.chain===null){const o=Array.from(new Set([...this.injector.get(lS),...this.injector.get(Rm,[])]));this.chain=o.reduceRight((a,c)=>bL(a,c,this.injector),vL)}if(this.contributeToStability){const o=this.pendingTasks.add();return this.chain(s,a=>this.backend.handle(a)).pipe(Ll(()=>this.pendingTasks.remove(o)))}else return this.chain(s,o=>this.backend.handle(o))}};l(n,"ɵfac",function(o){return new(o||n)(ie(Im),ie(Yt))}),l(n,"ɵprov",O({token:n,factory:n.ɵfac}));let e=n;return e})();const wL=/^\)\]\}',?\n/;function CL(t){return"responseURL"in t&&t.responseURL?t.responseURL:/^X-Request-URL:/m.test(t.getAllResponseHeaders())?t.getResponseHeader("X-Request-URL"):null}let g_=(()=>{const n=class n{constructor(r){l(this,"xhrFactory");this.xhrFactory=r}handle(r){if(r.method==="JSONP")throw new x(-2800,!1);const s=this.xhrFactory;return(s.ɵloadImpl?ot(s.ɵloadImpl()):G(null)).pipe(Zt(()=>new xe(a=>{const c=s.build();if(c.open(r.method,r.urlWithParams),r.withCredentials&&(c.withCredentials=!0),r.headers.forEach((S,C)=>c.setRequestHeader(S,C.join(","))),r.headers.has("Accept")||c.setRequestHeader("Accept","application/json, text/plain, */*"),!r.headers.has("Content-Type")){const S=r.detectContentTypeHeader();S!==null&&c.setRequestHeader("Content-Type",S)}if(r.responseType){const S=r.responseType.toLowerCase();c.responseType=S!=="json"?S:"text"}const u=r.serializeBody();let h=null;const f=()=>{if(h!==null)return h;const S=c.statusText||"OK",C=new jt(c.getAllResponseHeaders()),E=CL(c)||r.url;return h=new Su({headers:C,status:c.status,statusText:S,url:E}),h},d=()=>{let{headers:S,status:C,statusText:E,url:N}=f(),L=null;C!==pL&&(L=typeof c.response>"u"?c.responseText:c.response),C===0&&(C=L?oS:0);let Y=C>=200&&C<300;if(r.responseType==="json"&&typeof L=="string"){const U=L;L=L.replace(wL,"");try{L=L!==""?JSON.parse(L):null}catch(P){L=U,Y&&(Y=!1,L={error:P,text:L})}}Y?(a.next(new _i({body:L,headers:S,status:C,statusText:E,url:N||void 0})),a.complete()):a.error(new Yi({error:L,headers:S,status:C,statusText:E,url:N||void 0}))},p=S=>{const{url:C}=f(),E=new Yi({error:S,status:c.status||0,statusText:c.statusText||"Unknown Error",url:C||void 0});a.error(E)};let m=!1;const y=S=>{m||(a.next(f()),m=!0);let C={type:Sr.DownloadProgress,loaded:S.loaded};S.lengthComputable&&(C.total=S.total),r.responseType==="text"&&c.responseText&&(C.partialText=c.responseText),a.next(C)},_=S=>{let C={type:Sr.UploadProgress,loaded:S.loaded};S.lengthComputable&&(C.total=S.total),a.next(C)};return c.addEventListener("load",d),c.addEventListener("error",p),c.addEventListener("timeout",p),c.addEventListener("abort",p),r.reportProgress&&(c.addEventListener("progress",y),u!==null&&c.upload&&c.upload.addEventListener("progress",_)),c.send(u),a.next({type:Sr.Sent}),()=>{c.removeEventListener("error",p),c.removeEventListener("abort",p),c.removeEventListener("load",d),c.removeEventListener("timeout",p),r.reportProgress&&(c.removeEventListener("progress",y),u!==null&&c.upload&&c.upload.removeEventListener("progress",_)),c.readyState!==c.DONE&&c.abort()}})))}};l(n,"ɵfac",function(s){return new(s||n)(ie(sS))}),l(n,"ɵprov",O({token:n,factory:n.ɵfac}));let e=n;return e})();const cS=new B(""),SL="XSRF-TOKEN",TL=new B("",{providedIn:"root",factory:()=>SL}),AL="X-XSRF-TOKEN",kL=new B("",{providedIn:"root",factory:()=>AL});class uS{}let DL=(()=>{const n=class n{constructor(r,s,o){l(this,"doc");l(this,"platform");l(this,"cookieName");l(this,"lastCookieString","");l(this,"lastToken",null);l(this,"parseCount",0);this.doc=r,this.platform=s,this.cookieName=o}getToken(){if(this.platform==="server")return null;const r=this.doc.cookie||"";return r!==this.lastCookieString&&(this.parseCount++,this.lastToken=nS(r,this.cookieName),this.lastCookieString=r),this.lastToken}};l(n,"ɵfac",function(s){return new(s||n)(ie(we),ie(Jt),ie(TL))}),l(n,"ɵprov",O({token:n,factory:n.ɵfac}));let e=n;return e})();function IL(t,e){const n=t.url.toLowerCase();if(!g(cS)||t.method==="GET"||t.method==="HEAD"||n.startsWith("http://")||n.startsWith("https://"))return e(t);const i=g(uS).getToken(),r=g(kL);return i!=null&&!t.headers.has(r)&&(t=t.clone({headers:t.headers.set(r,i)})),e(t)}var hS=function(t){return t[t.Interceptors=0]="Interceptors",t[t.LegacyInterceptors=1]="LegacyInterceptors",t[t.CustomXsrfConfiguration=2]="CustomXsrfConfiguration",t[t.NoXsrfProtection=3]="NoXsrfProtection",t[t.JsonpSupport=4]="JsonpSupport",t[t.RequestsMadeViaParent=5]="RequestsMadeViaParent",t[t.Fetch=6]="Fetch",t}(hS||{});function xL(t,e){return{ɵkind:t,ɵproviders:e}}function RL(...t){const e=[aS,g_,m_,{provide:Dm,useExisting:m_},{provide:Im,useFactory:()=>g(Nf,{optional:!0})??g(g_)},{provide:lS,useValue:IL,multi:!0},{provide:cS,useValue:!0},{provide:uS,useClass:DL}];for(const n of t)e.push(...n.ɵproviders);return Xo(e)}function FL(){return xL(hS.Fetch,[Nf,{provide:Im,useExisting:Nf}])}const OL=new B(""),y_="b",__="h",v_="s",b_="st",E_="u",w_="rt",ml=new B(""),PL=["GET","HEAD"];function NL(t,e){const{isCacheActive:n,...i}=g(ml),{transferCache:r,method:s}=t;if(!n||r===!1||s==="POST"&&!i.includePostRequests&&!r||s!=="POST"&&!PL.includes(s)||!i.includeRequestsWithAuthHeaders&&LL(t)||i.filter?.(t)===!1)return e(t);const o=g(Ms),a=g(OL,{optional:!0}),c=Cu(g(Jt));if(a&&!c)throw new x(2803,!1);const u=c&&a?HL(t.url,a):t.url,h=BL(t,u),f=o.get(h,null);let d=i.includeHeaders;if(typeof r=="object"&&r.includeHeaders&&(d=r.includeHeaders),f){const{[y_]:p,[w_]:m,[__]:y,[v_]:_,[b_]:S,[E_]:C}=f;let E=p;switch(m){case"arraybuffer":E=new TextEncoder().encode(p).buffer;break;case"blob":E=new Blob([p]);break}let N=new jt(y);return G(new _i({body:E,headers:N,status:_,statusText:S,url:C}))}return e(t).pipe(nt(p=>{p instanceof _i&&c&&o.set(h,{[y_]:p.body,[__]:ML(p.headers,d),[v_]:p.status,[b_]:p.statusText,[E_]:u,[w_]:t.responseType})}))}function LL(t){return t.headers.has("authorization")||t.headers.has("proxy-authorization")}function ML(t,e){if(!e)return{};const n={};for(const i of e){const r=t.getAll(i);r!==null&&(n[i]=r)}return n}function C_(t){return[...t.keys()].sort().map(e=>`${e}=${t.getAll(e)}`).join("&")}function BL(t,e){const{params:n,method:i,responseType:r}=t,s=C_(n);let o=t.serializeBody();o instanceof URLSearchParams?o=C_(o):typeof o!="string"&&(o="");const a=[i,r,e,o,s].join("|"),c=jL(a);return c}function jL(t){let e=0;for(const n of t)e=Math.imul(31,e)+n.charCodeAt(0)<<0;return e+=2147483648,e.toString()}function zL(t){return[{provide:ml,useFactory:()=>(jn("NgHttpTransferCache"),{isCacheActive:!0,...t})},{provide:Rm,useValue:NL,multi:!0,deps:[Ms,ml]},{provide:mu,multi:!0,useFactory:()=>{const e=g(Mn),n=g(ml);return()=>{e.whenStable().then(()=>{n.isCacheActive=!1})}}}]}function HL(t,e){const n=new URL(t,"resolve://").origin,i=e[n];return i?t.replace(n,i):t}/** + * @license Angular v19.0.5 + * (c) 2010-2024 Google LLC. https://angular.io/ + * License: MIT + */class UL extends EN{constructor(){super(...arguments);l(this,"supportsDOMEvents",!0)}}class Fm extends UL{static makeCurrent(){bN(new Fm)}onAndCancel(e,n,i){return e.addEventListener(n,i),()=>{e.removeEventListener(n,i)}}dispatchEvent(e,n){e.dispatchEvent(n)}remove(e){e.remove()}createElement(e,n){return n=n||this.getDefaultDocument(),n.createElement(e)}createHtmlDocument(){return document.implementation.createHTMLDocument("fakeTitle")}getDefaultDocument(){return document}isElementNode(e){return e.nodeType===Node.ELEMENT_NODE}isShadowRoot(e){return e instanceof DocumentFragment}getGlobalEventTarget(e,n){return n==="window"?window:n==="document"?e:n==="body"?e.body:null}getBaseHref(e){const n=VL();return n==null?null:$L(n)}resetBaseElement(){io=null}getUserAgent(){return window.navigator.userAgent}getCookie(e){return nS(document.cookie,e)}}let io=null;function VL(){return io=io||document.querySelector("base"),io?io.getAttribute("href"):null}function $L(t){return new URL(t,document.baseURI).pathname}let WL=(()=>{const n=class n{build(){return new XMLHttpRequest}};l(n,"ɵfac",function(s){return new(s||n)}),l(n,"ɵprov",O({token:n,factory:n.ɵfac}));let e=n;return e})();const Mf=new B("");let fS=(()=>{const n=class n{constructor(r,s){l(this,"_zone");l(this,"_plugins");l(this,"_eventNameToPlugin",new Map);this._zone=s,r.forEach(o=>{o.manager=this}),this._plugins=r.slice().reverse()}addEventListener(r,s,o){return this._findPluginFor(s).addEventListener(r,s,o)}getZone(){return this._zone}_findPluginFor(r){let s=this._eventNameToPlugin.get(r);if(s)return s;if(s=this._plugins.find(a=>a.supports(r)),!s)throw new x(5101,!1);return this._eventNameToPlugin.set(r,s),s}};l(n,"ɵfac",function(s){return new(s||n)(ie(Mf),ie(ge))}),l(n,"ɵprov",O({token:n,factory:n.ɵfac}));let e=n;return e})();class dS{constructor(e){l(this,"_doc");l(this,"manager");this._doc=e}}const gl="ng-app-id";function S_(t){for(const e of t)e.remove()}function T_(t,e){const n=e.createElement("style");return n.textContent=t,n}function GL(t,e,n,i){const r=t.head?.querySelectorAll(`style[${gl}="${e}"],link[${gl}="${e}"]`);if(r)for(const s of r)s.removeAttribute(gl),s instanceof HTMLLinkElement?i.set(s.href.slice(s.href.lastIndexOf("/")+1),{usage:0,elements:[s]}):s.textContent&&n.set(s.textContent,{usage:0,elements:[s]})}function Bf(t,e){const n=e.createElement("link");return n.setAttribute("rel","stylesheet"),n.setAttribute("href",t),n}let pS=(()=>{const n=class n{constructor(r,s,o,a={}){l(this,"doc");l(this,"appId");l(this,"nonce");l(this,"inline",new Map);l(this,"external",new Map);l(this,"hosts",new Set);l(this,"isServer");this.doc=r,this.appId=s,this.nonce=o,this.isServer=Cu(a),GL(r,s,this.inline,this.external),this.hosts.add(r.head)}addStyles(r,s){for(const o of r)this.addUsage(o,this.inline,T_);s?.forEach(o=>this.addUsage(o,this.external,Bf))}removeStyles(r,s){for(const o of r)this.removeUsage(o,this.inline);s?.forEach(o=>this.removeUsage(o,this.external))}addUsage(r,s,o){const a=s.get(r);a?a.usage++:s.set(r,{usage:1,elements:[...this.hosts].map(c=>this.addElement(c,o(r,this.doc)))})}removeUsage(r,s){const o=s.get(r);o&&(o.usage--,o.usage<=0&&(S_(o.elements),s.delete(r)))}ngOnDestroy(){for(const[,{elements:r}]of[...this.inline,...this.external])S_(r);this.hosts.clear()}addHost(r){this.hosts.add(r);for(const[s,{elements:o}]of this.inline)o.push(this.addElement(r,T_(s,this.doc)));for(const[s,{elements:o}]of this.external)o.push(this.addElement(r,Bf(s,this.doc)))}removeHost(r){this.hosts.delete(r)}addElement(r,s){return this.nonce&&s.setAttribute("nonce",this.nonce),this.isServer&&s.setAttribute(gl,this.appId),r.appendChild(s)}};l(n,"ɵfac",function(s){return new(s||n)(ie(we),ie(Kc),ie(Vp,8),ie(Jt))}),l(n,"ɵprov",O({token:n,factory:n.ɵfac}));let e=n;return e})();const wh={svg:"http://www.w3.org/2000/svg",xhtml:"http://www.w3.org/1999/xhtml",xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/",math:"http://www.w3.org/1998/Math/MathML"},Om=/%COMP%/g,mS="%COMP%",qL=`_nghost-${mS}`,ZL=`_ngcontent-${mS}`,YL=!0,KL=new B("",{providedIn:"root",factory:()=>YL});function QL(t){return ZL.replace(Om,t)}function XL(t){return qL.replace(Om,t)}function gS(t,e){return e.map(n=>n.replace(Om,t))}let jf=(()=>{const n=class n{constructor(r,s,o,a,c,u,h,f=null){l(this,"eventManager");l(this,"sharedStylesHost");l(this,"appId");l(this,"removeStylesOnCompDestroy");l(this,"doc");l(this,"platformId");l(this,"ngZone");l(this,"nonce");l(this,"rendererByCompId",new Map);l(this,"defaultRenderer");l(this,"platformIsServer");this.eventManager=r,this.sharedStylesHost=s,this.appId=o,this.removeStylesOnCompDestroy=a,this.doc=c,this.platformId=u,this.ngZone=h,this.nonce=f,this.platformIsServer=Cu(u),this.defaultRenderer=new Pm(r,c,h,this.platformIsServer)}createRenderer(r,s){if(!r||!s)return this.defaultRenderer;this.platformIsServer&&s.encapsulation===Zn.ShadowDom&&(s={...s,encapsulation:Zn.Emulated});const o=this.getOrCreateRenderer(r,s);return o instanceof k_?o.applyToHost(r):o instanceof zf&&o.applyStyles(),o}getOrCreateRenderer(r,s){const o=this.rendererByCompId;let a=o.get(s.id);if(!a){const c=this.doc,u=this.ngZone,h=this.eventManager,f=this.sharedStylesHost,d=this.removeStylesOnCompDestroy,p=this.platformIsServer;switch(s.encapsulation){case Zn.Emulated:a=new k_(h,f,s,this.appId,d,c,u,p);break;case Zn.ShadowDom:return new JL(h,f,r,s,c,u,this.nonce,p);default:a=new zf(h,f,s,d,c,u,p);break}o.set(s.id,a)}return a}ngOnDestroy(){this.rendererByCompId.clear()}};l(n,"ɵfac",function(s){return new(s||n)(ie(fS),ie(pS),ie(Kc),ie(KL),ie(we),ie(Jt),ie(ge),ie(Vp))}),l(n,"ɵprov",O({token:n,factory:n.ɵfac}));let e=n;return e})();class Pm{constructor(e,n,i,r){l(this,"eventManager");l(this,"doc");l(this,"ngZone");l(this,"platformIsServer");l(this,"data",Object.create(null));l(this,"throwOnSyntheticProps",!0);l(this,"destroyNode",null);this.eventManager=e,this.doc=n,this.ngZone=i,this.platformIsServer=r}destroy(){}createElement(e,n){return n?this.doc.createElementNS(wh[n]||n,e):this.doc.createElement(e)}createComment(e){return this.doc.createComment(e)}createText(e){return this.doc.createTextNode(e)}appendChild(e,n){(A_(e)?e.content:e).appendChild(n)}insertBefore(e,n,i){e&&(A_(e)?e.content:e).insertBefore(n,i)}removeChild(e,n){n.remove()}selectRootElement(e,n){let i=typeof e=="string"?this.doc.querySelector(e):e;if(!i)throw new x(-5104,!1);return n||(i.textContent=""),i}parentNode(e){return e.parentNode}nextSibling(e){return e.nextSibling}setAttribute(e,n,i,r){if(r){n=r+":"+n;const s=wh[r];s?e.setAttributeNS(s,n,i):e.setAttribute(n,i)}else e.setAttribute(n,i)}removeAttribute(e,n,i){if(i){const r=wh[i];r?e.removeAttributeNS(r,n):e.removeAttribute(`${i}:${n}`)}else e.removeAttribute(n)}addClass(e,n){e.classList.add(n)}removeClass(e,n){e.classList.remove(n)}setStyle(e,n,i,r){r&(Xr.DashCase|Xr.Important)?e.style.setProperty(n,i,r&Xr.Important?"important":""):e.style[n]=i}removeStyle(e,n,i){i&Xr.DashCase?e.style.removeProperty(n):e.style[n]=""}setProperty(e,n,i){e!=null&&(e[n]=i)}setValue(e,n){e.nodeValue=n}listen(e,n,i){if(typeof e=="string"&&(e=gs().getGlobalEventTarget(this.doc,e),!e))throw new Error(`Unsupported event target ${e} for event ${n}`);return this.eventManager.addEventListener(e,n,this.decoratePreventDefault(i))}decoratePreventDefault(e){return n=>{if(n==="__ngUnwrap__")return e;(this.platformIsServer?this.ngZone.runGuarded(()=>e(n)):e(n))===!1&&n.preventDefault()}}}function A_(t){return t.tagName==="TEMPLATE"&&t.content!==void 0}class JL extends Pm{constructor(n,i,r,s,o,a,c,u){super(n,o,a,u);l(this,"sharedStylesHost");l(this,"hostEl");l(this,"shadowRoot");this.sharedStylesHost=i,this.hostEl=r,this.shadowRoot=r.attachShadow({mode:"open"}),this.sharedStylesHost.addHost(this.shadowRoot);const h=gS(s.id,s.styles);for(const d of h){const p=document.createElement("style");c&&p.setAttribute("nonce",c),p.textContent=d,this.shadowRoot.appendChild(p)}const f=s.getExternalStyles?.();if(f)for(const d of f){const p=Bf(d,o);c&&p.setAttribute("nonce",c),this.shadowRoot.appendChild(p)}}nodeOrShadowRoot(n){return n===this.hostEl?this.shadowRoot:n}appendChild(n,i){return super.appendChild(this.nodeOrShadowRoot(n),i)}insertBefore(n,i,r){return super.insertBefore(this.nodeOrShadowRoot(n),i,r)}removeChild(n,i){return super.removeChild(null,i)}parentNode(n){return this.nodeOrShadowRoot(super.parentNode(this.nodeOrShadowRoot(n)))}destroy(){this.sharedStylesHost.removeHost(this.shadowRoot)}}class zf extends Pm{constructor(n,i,r,s,o,a,c,u){super(n,o,a,c);l(this,"sharedStylesHost");l(this,"removeStylesOnCompDestroy");l(this,"styles");l(this,"styleUrls");this.sharedStylesHost=i,this.removeStylesOnCompDestroy=s,this.styles=u?gS(u,r.styles):r.styles,this.styleUrls=r.getExternalStyles?.(u)}applyStyles(){this.sharedStylesHost.addStyles(this.styles,this.styleUrls)}destroy(){this.removeStylesOnCompDestroy&&this.sharedStylesHost.removeStyles(this.styles,this.styleUrls)}}class k_ extends zf{constructor(n,i,r,s,o,a,c,u){const h=s+"-"+r.id;super(n,i,r,o,a,c,u,h);l(this,"contentAttr");l(this,"hostAttr");this.contentAttr=QL(h),this.hostAttr=XL(h)}applyToHost(n){this.applyStyles(),this.setAttribute(n,this.hostAttr,"")}createElement(n,i){const r=super.createElement(n,i);return super.setAttribute(r,this.contentAttr,""),r}}let eM=(()=>{const n=class n extends dS{constructor(r){super(r)}supports(r){return!0}addEventListener(r,s,o){return r.addEventListener(s,o,!1),()=>this.removeEventListener(r,s,o)}removeEventListener(r,s,o){return r.removeEventListener(s,o)}};l(n,"ɵfac",function(s){return new(s||n)(ie(we))}),l(n,"ɵprov",O({token:n,factory:n.ɵfac}));let e=n;return e})();const D_=["alt","control","meta","shift"],tM={"\b":"Backspace"," ":"Tab","":"Delete","\x1B":"Escape",Del:"Delete",Esc:"Escape",Left:"ArrowLeft",Right:"ArrowRight",Up:"ArrowUp",Down:"ArrowDown",Menu:"ContextMenu",Scroll:"ScrollLock",Win:"OS"},nM={alt:t=>t.altKey,control:t=>t.ctrlKey,meta:t=>t.metaKey,shift:t=>t.shiftKey};let rM=(()=>{const n=class n extends dS{constructor(r){super(r)}supports(r){return n.parseEventName(r)!=null}addEventListener(r,s,o){const a=n.parseEventName(s),c=n.eventCallback(a.fullKey,o,this.manager.getZone());return this.manager.getZone().runOutsideAngular(()=>gs().onAndCancel(r,a.domEventName,c))}static parseEventName(r){const s=r.toLowerCase().split("."),o=s.shift();if(s.length===0||!(o==="keydown"||o==="keyup"))return null;const a=n._normalizeKey(s.pop());let c="",u=s.indexOf("code");if(u>-1&&(s.splice(u,1),c="code."),D_.forEach(f=>{const d=s.indexOf(f);d>-1&&(s.splice(d,1),c+=f+".")}),c+=a,s.length!=0||a.length===0)return null;const h={};return h.domEventName=o,h.fullKey=c,h}static matchEventFullKeyCode(r,s){let o=tM[r.key]||r.key,a="";return s.indexOf("code.")>-1&&(o=r.code,a="code."),o==null||!o?!1:(o=o.toLowerCase(),o===" "?o="space":o==="."&&(o="dot"),D_.forEach(c=>{if(c!==o){const u=nM[c];u(r)&&(a+=c+".")}}),a+=o,a===s)}static eventCallback(r,s,o){return a=>{n.matchEventFullKeyCode(a,r)&&o.runGuarded(()=>s(a))}}static _normalizeKey(r){return r==="esc"?"escape":r}};l(n,"ɵfac",function(s){return new(s||n)(ie(we))}),l(n,"ɵprov",O({token:n,factory:n.ɵfac}));let e=n;return e})();function iM(t,e){return mN({rootComponent:t,...sM(e)})}function sM(t){return{appProviders:[...uM,...t?.providers??[]],platformProviders:cM}}function oM(){Fm.makeCurrent()}function aM(){return new Di}function lM(){return _x(document),document}const cM=[{provide:Jt,useValue:iS},{provide:VE,useValue:oM,multi:!0},{provide:we,useFactory:lM,deps:[]}],uM=[{provide:Sp,useValue:"root"},{provide:Di,useFactory:aM,deps:[]},{provide:Mf,useClass:eM,multi:!0,deps:[we,ge,Jt]},{provide:Mf,useClass:rM,multi:!0,deps:[we]},jf,pS,fS,{provide:Ri,useExisting:jf},{provide:sS,useClass:WL,deps:[]},[]];let hM=(()=>{const n=class n{constructor(r){l(this,"_doc");l(this,"_dom");this._doc=r,this._dom=gs()}addTag(r,s=!1){return r?this._getOrCreateElement(r,s):null}addTags(r,s=!1){return r?r.reduce((o,a)=>(a&&o.push(this._getOrCreateElement(a,s)),o),[]):[]}getTag(r){return r&&this._doc.querySelector(`meta[${r}]`)||null}getTags(r){if(!r)return[];const s=this._doc.querySelectorAll(`meta[${r}]`);return s?[].slice.call(s):[]}updateTag(r,s){if(!r)return null;s=s||this._parseSelector(r);const o=this.getTag(s);return o?this._setMetaElementAttributes(r,o):this._getOrCreateElement(r,!0)}removeTag(r){this.removeTagElement(this.getTag(r))}removeTagElement(r){r&&this._dom.remove(r)}_getOrCreateElement(r,s=!1){if(!s){const c=this._parseSelector(r),u=this.getTags(c).filter(h=>this._containsAttributes(r,h))[0];if(u!==void 0)return u}const o=this._dom.createElement("meta");return this._setMetaElementAttributes(r,o),this._doc.getElementsByTagName("head")[0].appendChild(o),o}_setMetaElementAttributes(r,s){return Object.keys(r).forEach(o=>s.setAttribute(this._getMetaKeyMap(o),r[o])),s}_parseSelector(r){const s=r.name?"name":"property";return`${s}="${r[s]}"`}_containsAttributes(r,s){return Object.keys(r).every(o=>s.getAttribute(this._getMetaKeyMap(o))===r[o])}_getMetaKeyMap(r){return fM[r]||r}};l(n,"ɵfac",function(s){return new(s||n)(ie(we))}),l(n,"ɵprov",O({token:n,factory:n.ɵfac,providedIn:"root"}));let e=n;return e})();const fM={httpEquiv:"http-equiv"};let dM=(()=>{const n=class n{constructor(r){l(this,"_doc");this._doc=r}getTitle(){return this._doc.title}setTitle(r){this._doc.title=r||""}};l(n,"ɵfac",function(s){return new(s||n)(ie(we))}),l(n,"ɵprov",O({token:n,factory:n.ɵfac,providedIn:"root"}));let e=n;return e})(),$s=(()=>{const n=class n{};l(n,"ɵfac",function(s){return new(s||n)}),l(n,"ɵprov",O({token:n,factory:function(s){let o=null;return s?o=new(s||n):o=ie(pM),o},providedIn:"root"}));let e=n;return e})(),pM=(()=>{const n=class n extends $s{constructor(s){super();l(this,"_doc");this._doc=s}sanitize(s,o){if(o==null)return null;switch(s){case Cn.NONE:return o;case Cn.HTML:return yr(o,"HTML")?Tn(o):pw(this._doc,String(o)).toString();case Cn.STYLE:return yr(o,"Style")?Tn(o):o;case Cn.SCRIPT:if(yr(o,"Script"))return Tn(o);throw new x(5200,!1);case Cn.URL:return yr(o,"URL")?Tn(o):Yp(String(o));case Cn.RESOURCE_URL:if(yr(o,"ResourceURL"))return Tn(o);throw new x(5201,!1);default:throw new x(5202,!1)}}bypassSecurityTrustHtml(s){return dR(s)}bypassSecurityTrustStyle(s){return pR(s)}bypassSecurityTrustScript(s){return mR(s)}bypassSecurityTrustUrl(s){return gR(s)}bypassSecurityTrustResourceUrl(s){return yR(s)}};l(n,"ɵfac",function(o){return new(o||n)(ie(we))}),l(n,"ɵprov",O({token:n,factory:n.ɵfac,providedIn:"root"}));let e=n;return e})();var Hf=function(t){return t[t.NoHttpTransferCache=0]="NoHttpTransferCache",t[t.HttpTransferCacheOptions=1]="HttpTransferCacheOptions",t[t.I18nSupport=2]="I18nSupport",t[t.EventReplay=3]="EventReplay",t[t.IncrementalHydration=4]="IncrementalHydration",t}(Hf||{});function mM(...t){const e=[],n=new Set,i=n.has(Hf.HttpTransferCacheOptions);for(const{ɵproviders:r,ɵkind:s}of t)n.add(s),r.length&&e.push(r);return Xo([[],_N(),n.has(Hf.NoHttpTransferCache)||i?[]:zL({}),e])}const Qr=class Qr{constructor(){this.viewportScroller=g(rL)}scrollToElement(e){setTimeout(()=>{this.viewportScroller.scrollToAnchor(e)},100)}scrollToPosition(e){setTimeout(()=>{this.viewportScroller.scrollToPosition(e)},100)}scrollToTop(){this.scrollToPosition([0,0])}};Qr.ɵfac=function(n){return new(n||Qr)},Qr.ɵprov=O({token:Qr,factory:Qr.ɵfac,providedIn:"root"});let Uf=Qr;/** + * @license Angular v19.0.5 + * (c) 2010-2024 Google LLC. https://angular.io/ + * License: MIT + */const ce="primary",fa=Symbol("RouteTitle");class gM{constructor(e){l(this,"params");this.params=e||{}}has(e){return Object.prototype.hasOwnProperty.call(this.params,e)}get(e){if(this.has(e)){const n=this.params[e];return Array.isArray(n)?n[0]:n}return null}getAll(e){if(this.has(e)){const n=this.params[e];return Array.isArray(n)?n:[n]}return[]}get keys(){return Object.keys(this.params)}}function Ts(t){return new gM(t)}function yM(t,e,n){const i=n.path.split("/");if(i.length>t.length||n.pathMatch==="full"&&(e.hasChildren()||i.lengthi[s]===r)}else return t===e}function _S(t){return t.length>0?t[t.length-1]:null}function Ur(t){return Go(t)?t:pu(t)?ot(Promise.resolve(t)):G(t)}const vM={exact:bS,subset:ES},vS={exact:bM,subset:EM,ignored:()=>!0};function I_(t,e,n){return vM[n.paths](t.root,e.root,n.matrixParams)&&vS[n.queryParams](t.queryParams,e.queryParams)&&!(n.fragment==="exact"&&t.fragment!==e.fragment)}function bM(t,e){return On(t,e)}function bS(t,e,n){if(!si(t.segments,e.segments)||!yl(t.segments,e.segments,n)||t.numberOfChildren!==e.numberOfChildren)return!1;for(const i in e.children)if(!t.children[i]||!bS(t.children[i],e.children[i],n))return!1;return!0}function EM(t,e){return Object.keys(e).length<=Object.keys(t).length&&Object.keys(e).every(n=>yS(t[n],e[n]))}function ES(t,e,n){return wS(t,e,e.segments,n)}function wS(t,e,n,i){if(t.segments.length>n.length){const r=t.segments.slice(0,n.length);return!(!si(r,n)||e.hasChildren()||!yl(r,n,i))}else if(t.segments.length===n.length){if(!si(t.segments,n)||!yl(t.segments,n,i))return!1;for(const r in e.children)if(!t.children[r]||!ES(t.children[r],e.children[r],i))return!1;return!0}else{const r=n.slice(0,t.segments.length),s=n.slice(t.segments.length);return!si(t.segments,r)||!yl(t.segments,r,i)||!t.children[ce]?!1:wS(t.children[ce],e,s,i)}}function yl(t,e,n){return e.every((i,r)=>vS[n](t[r].parameters,i.parameters))}class vi{constructor(e=new Re([],{}),n={},i=null){l(this,"root");l(this,"queryParams");l(this,"fragment");l(this,"_queryParamMap");this.root=e,this.queryParams=n,this.fragment=i}get queryParamMap(){return this._queryParamMap??(this._queryParamMap=Ts(this.queryParams)),this._queryParamMap}toString(){return SM.serialize(this)}}class Re{constructor(e,n){l(this,"segments");l(this,"children");l(this,"parent",null);this.segments=e,this.children=n,Object.values(n).forEach(i=>i.parent=this)}hasChildren(){return this.numberOfChildren>0}get numberOfChildren(){return Object.keys(this.children).length}toString(){return _l(this)}}class po{constructor(e,n){l(this,"path");l(this,"parameters");l(this,"_parameterMap");this.path=e,this.parameters=n}get parameterMap(){return this._parameterMap??(this._parameterMap=Ts(this.parameters)),this._parameterMap}toString(){return SS(this)}}function wM(t,e){return si(t,e)&&t.every((n,i)=>On(n.parameters,e[i].parameters))}function si(t,e){return t.length!==e.length?!1:t.every((n,i)=>n.path===e[i].path)}function CM(t,e){let n=[];return Object.entries(t.children).forEach(([i,r])=>{i===ce&&(n=n.concat(e(r,i)))}),Object.entries(t.children).forEach(([i,r])=>{i!==ce&&(n=n.concat(e(r,i)))}),n}let Nm=(()=>{const n=class n{};l(n,"ɵfac",function(s){return new(s||n)}),l(n,"ɵprov",O({token:n,factory:()=>new Lm,providedIn:"root"}));let e=n;return e})();class Lm{parse(e){const n=new NM(e);return new vi(n.parseRootSegment(),n.parseQueryParams(),n.parseFragment())}serialize(e){const n=`/${so(e.root,!0)}`,i=kM(e.queryParams),r=typeof e.fragment=="string"?`#${TM(e.fragment)}`:"";return`${n}${i}${r}`}}const SM=new Lm;function _l(t){return t.segments.map(e=>SS(e)).join("/")}function so(t,e){if(!t.hasChildren())return _l(t);if(e){const n=t.children[ce]?so(t.children[ce],!1):"",i=[];return Object.entries(t.children).forEach(([r,s])=>{r!==ce&&i.push(`${r}:${so(s,!1)}`)}),i.length>0?`${n}(${i.join("//")})`:n}else{const n=CM(t,(i,r)=>r===ce?[so(t.children[ce],!1)]:[`${r}:${so(i,!1)}`]);return Object.keys(t.children).length===1&&t.children[ce]!=null?`${_l(t)}/${n[0]}`:`${_l(t)}/(${n.join("//")})`}}function CS(t){return encodeURIComponent(t).replace(/%40/g,"@").replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",")}function Ua(t){return CS(t).replace(/%3B/gi,";")}function TM(t){return encodeURI(t)}function $f(t){return CS(t).replace(/\(/g,"%28").replace(/\)/g,"%29").replace(/%26/gi,"&")}function vl(t){return decodeURIComponent(t)}function x_(t){return vl(t.replace(/\+/g,"%20"))}function SS(t){return`${$f(t.path)}${AM(t.parameters)}`}function AM(t){return Object.entries(t).map(([e,n])=>`;${$f(e)}=${$f(n)}`).join("")}function kM(t){const e=Object.entries(t).map(([n,i])=>Array.isArray(i)?i.map(r=>`${Ua(n)}=${Ua(r)}`).join("&"):`${Ua(n)}=${Ua(i)}`).filter(n=>n);return e.length?`?${e.join("&")}`:""}const DM=/^[^\/()?;#]+/;function Ch(t){const e=t.match(DM);return e?e[0]:""}const IM=/^[^\/()?;=#]+/;function xM(t){const e=t.match(IM);return e?e[0]:""}const RM=/^[^=?&#]+/;function FM(t){const e=t.match(RM);return e?e[0]:""}const OM=/^[^&#]+/;function PM(t){const e=t.match(OM);return e?e[0]:""}class NM{constructor(e){l(this,"url");l(this,"remaining");this.url=e,this.remaining=e}parseRootSegment(){return this.consumeOptional("/"),this.remaining===""||this.peekStartsWith("?")||this.peekStartsWith("#")?new Re([],{}):new Re([],this.parseChildren())}parseQueryParams(){const e={};if(this.consumeOptional("?"))do this.parseQueryParam(e);while(this.consumeOptional("&"));return e}parseFragment(){return this.consumeOptional("#")?decodeURIComponent(this.remaining):null}parseChildren(){if(this.remaining==="")return{};this.consumeOptional("/");const e=[];for(this.peekStartsWith("(")||e.push(this.parseSegment());this.peekStartsWith("/")&&!this.peekStartsWith("//")&&!this.peekStartsWith("/(");)this.capture("/"),e.push(this.parseSegment());let n={};this.peekStartsWith("/(")&&(this.capture("/"),n=this.parseParens(!0));let i={};return this.peekStartsWith("(")&&(i=this.parseParens(!1)),(e.length>0||Object.keys(n).length>0)&&(i[ce]=new Re(e,n)),i}parseSegment(){const e=Ch(this.remaining);if(e===""&&this.peekStartsWith(";"))throw new x(4009,!1);return this.capture(e),new po(vl(e),this.parseMatrixParams())}parseMatrixParams(){const e={};for(;this.consumeOptional(";");)this.parseParam(e);return e}parseParam(e){const n=xM(this.remaining);if(!n)return;this.capture(n);let i="";if(this.consumeOptional("=")){const r=Ch(this.remaining);r&&(i=r,this.capture(i))}e[vl(n)]=vl(i)}parseQueryParam(e){const n=FM(this.remaining);if(!n)return;this.capture(n);let i="";if(this.consumeOptional("=")){const o=PM(this.remaining);o&&(i=o,this.capture(i))}const r=x_(n),s=x_(i);if(e.hasOwnProperty(r)){let o=e[r];Array.isArray(o)||(o=[o],e[r]=o),o.push(s)}else e[r]=s}parseParens(e){const n={};for(this.capture("(");!this.consumeOptional(")")&&this.remaining.length>0;){const i=Ch(this.remaining),r=this.remaining[i.length];if(r!=="/"&&r!==")"&&r!==";")throw new x(4010,!1);let s;i.indexOf(":")>-1?(s=i.slice(0,i.indexOf(":")),this.capture(s),this.capture(":")):e&&(s=ce);const o=this.parseChildren();n[s]=Object.keys(o).length===1?o[ce]:new Re([],o),this.consumeOptional("//")}return n}peekStartsWith(e){return this.remaining.startsWith(e)}consumeOptional(e){return this.peekStartsWith(e)?(this.remaining=this.remaining.substring(e.length),!0):!1}capture(e){if(!this.consumeOptional(e))throw new x(4011,!1)}}function TS(t){return t.segments.length>0?new Re([],{[ce]:t}):t}function AS(t){const e={};for(const[i,r]of Object.entries(t.children)){const s=AS(r);if(i===ce&&s.segments.length===0&&s.hasChildren())for(const[o,a]of Object.entries(s.children))e[o]=a;else(s.segments.length>0||s.hasChildren())&&(e[i]=s)}const n=new Re(t.segments,e);return LM(n)}function LM(t){if(t.numberOfChildren===1&&t.children[ce]){const e=t.children[ce];return new Re(t.segments.concat(e.segments),e.children)}return t}function bi(t){return t instanceof vi}function MM(t,e,n=null,i=null){const r=kS(t);return DS(r,e,n,i)}function kS(t){let e;function n(s){const o={};for(const c of s.children){const u=n(c);o[c.outlet]=u}const a=new Re(s.url,o);return s===t&&(e=a),a}const i=n(t.root),r=TS(i);return e??r}function DS(t,e,n,i){let r=t;for(;r.parent;)r=r.parent;if(e.length===0)return Sh(r,r,r,n,i);const s=BM(e);if(s.toRoot())return Sh(r,r,new Re([],{}),n,i);const o=jM(s,r,t),a=o.processChildren?mo(o.segmentGroup,o.index,s.commands):xS(o.segmentGroup,o.index,s.commands);return Sh(r,o.segmentGroup,a,n,i)}function sc(t){return typeof t=="object"&&t!=null&&!t.outlets&&!t.segmentPath}function No(t){return typeof t=="object"&&t!=null&&t.outlets}function Sh(t,e,n,i,r){let s={};i&&Object.entries(i).forEach(([c,u])=>{s[c]=Array.isArray(u)?u.map(h=>`${h}`):`${u}`});let o;t===e?o=n:o=IS(t,e,n);const a=TS(AS(o));return new vi(a,s,r)}function IS(t,e,n){const i={};return Object.entries(t.children).forEach(([r,s])=>{s===e?i[r]=n:i[r]=IS(s,e,n)}),new Re(t.segments,i)}class R_{constructor(e,n,i){l(this,"isAbsolute");l(this,"numberOfDoubleDots");l(this,"commands");if(this.isAbsolute=e,this.numberOfDoubleDots=n,this.commands=i,e&&i.length>0&&sc(i[0]))throw new x(4003,!1);const r=i.find(No);if(r&&r!==_S(i))throw new x(4004,!1)}toRoot(){return this.isAbsolute&&this.commands.length===1&&this.commands[0]=="/"}}function BM(t){if(typeof t[0]=="string"&&t.length===1&&t[0]==="/")return new R_(!0,0,t);let e=0,n=!1;const i=t.reduce((r,s,o)=>{if(typeof s=="object"&&s!=null){if(s.outlets){const a={};return Object.entries(s.outlets).forEach(([c,u])=>{a[c]=typeof u=="string"?u.split("/"):u}),[...r,{outlets:a}]}if(s.segmentPath)return[...r,s.segmentPath]}return typeof s!="string"?[...r,s]:o===0?(s.split("/").forEach((a,c)=>{c==0&&a==="."||(c==0&&a===""?n=!0:a===".."?e++:a!=""&&r.push(a))}),r):[...r,s]},[]);return new R_(n,e,i)}class bl{constructor(e,n,i){l(this,"segmentGroup");l(this,"processChildren");l(this,"index");this.segmentGroup=e,this.processChildren=n,this.index=i}}function jM(t,e,n){if(t.isAbsolute)return new bl(e,!0,0);if(!n)return new bl(e,!1,NaN);if(n.parent===null)return new bl(n,!0,0);const i=sc(t.commands[0])?0:1,r=n.segments.length-1+i;return zM(n,r,t.numberOfDoubleDots)}function zM(t,e,n){let i=t,r=e,s=n;for(;s>r;){if(s-=r,i=i.parent,!i)throw new x(4005,!1);r=i.segments.length}return new bl(i,!1,r-s)}function HM(t){return No(t[0])?t[0].outlets:{[ce]:t}}function xS(t,e,n){if(t??(t=new Re([],{})),t.segments.length===0&&t.hasChildren())return mo(t,e,n);const i=UM(t,e,n),r=n.slice(i.commandIndex);if(i.match&&i.pathIndexs!==ce)&&t.children[ce]&&t.numberOfChildren===1&&t.children[ce].segments.length===0){const s=mo(t.children[ce],e,n);return new Re(t.segments,s.children)}return Object.entries(i).forEach(([s,o])=>{typeof o=="string"&&(o=[o]),o!==null&&(r[s]=xS(t.children[s],e,o))}),Object.entries(t.children).forEach(([s,o])=>{i[s]===void 0&&(r[s]=o)}),new Re(t.segments,r)}}function UM(t,e,n){let i=0,r=e;const s={match:!1,pathIndex:0,commandIndex:0};for(;r=n.length)return s;const o=t.segments[r],a=n[i];if(No(a))break;const c=`${a}`,u=i0&&c===void 0)break;if(c&&u&&typeof u=="object"&&u.outlets===void 0){if(!O_(c,u,o))return s;i+=2}else{if(!O_(c,{},o))return s;i++}r++}return{match:!0,pathIndex:r,commandIndex:i}}function Wf(t,e,n){const i=t.segments.slice(0,e);let r=0;for(;r{typeof i=="string"&&(i=[i]),i!==null&&(e[n]=Wf(new Re([],{}),0,i))}),e}function F_(t){const e={};return Object.entries(t).forEach(([n,i])=>e[n]=`${i}`),e}function O_(t,e,n){return t==n.path&&On(e,n.parameters)}const go="imperative";var dt=function(t){return t[t.NavigationStart=0]="NavigationStart",t[t.NavigationEnd=1]="NavigationEnd",t[t.NavigationCancel=2]="NavigationCancel",t[t.NavigationError=3]="NavigationError",t[t.RoutesRecognized=4]="RoutesRecognized",t[t.ResolveStart=5]="ResolveStart",t[t.ResolveEnd=6]="ResolveEnd",t[t.GuardsCheckStart=7]="GuardsCheckStart",t[t.GuardsCheckEnd=8]="GuardsCheckEnd",t[t.RouteConfigLoadStart=9]="RouteConfigLoadStart",t[t.RouteConfigLoadEnd=10]="RouteConfigLoadEnd",t[t.ChildActivationStart=11]="ChildActivationStart",t[t.ChildActivationEnd=12]="ChildActivationEnd",t[t.ActivationStart=13]="ActivationStart",t[t.ActivationEnd=14]="ActivationEnd",t[t.Scroll=15]="Scroll",t[t.NavigationSkipped=16]="NavigationSkipped",t}(dt||{});class zn{constructor(e,n){l(this,"id");l(this,"url");this.id=e,this.url=n}}class Gf extends zn{constructor(n,i,r="imperative",s=null){super(n,i);l(this,"type",dt.NavigationStart);l(this,"navigationTrigger");l(this,"restoredState");this.navigationTrigger=r,this.restoredState=s}toString(){return`NavigationStart(id: ${this.id}, url: '${this.url}')`}}class sr extends zn{constructor(n,i,r){super(n,i);l(this,"urlAfterRedirects");l(this,"type",dt.NavigationEnd);this.urlAfterRedirects=r}toString(){return`NavigationEnd(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}')`}}var Lt=function(t){return t[t.Redirect=0]="Redirect",t[t.SupersededByNewNavigation=1]="SupersededByNewNavigation",t[t.NoDataFromResolver=2]="NoDataFromResolver",t[t.GuardRejected=3]="GuardRejected",t}(Lt||{}),qf=function(t){return t[t.IgnoredSameUrlNavigation=0]="IgnoredSameUrlNavigation",t[t.IgnoredByUrlHandlingStrategy=1]="IgnoredByUrlHandlingStrategy",t}(qf||{});class oi extends zn{constructor(n,i,r,s){super(n,i);l(this,"reason");l(this,"code");l(this,"type",dt.NavigationCancel);this.reason=r,this.code=s}toString(){return`NavigationCancel(id: ${this.id}, url: '${this.url}')`}}class Lo extends zn{constructor(n,i,r,s){super(n,i);l(this,"reason");l(this,"code");l(this,"type",dt.NavigationSkipped);this.reason=r,this.code=s}}class Mm extends zn{constructor(n,i,r,s){super(n,i);l(this,"error");l(this,"target");l(this,"type",dt.NavigationError);this.error=r,this.target=s}toString(){return`NavigationError(id: ${this.id}, url: '${this.url}', error: ${this.error})`}}class RS extends zn{constructor(n,i,r,s){super(n,i);l(this,"urlAfterRedirects");l(this,"state");l(this,"type",dt.RoutesRecognized);this.urlAfterRedirects=r,this.state=s}toString(){return`RoutesRecognized(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state})`}}class $M extends zn{constructor(n,i,r,s){super(n,i);l(this,"urlAfterRedirects");l(this,"state");l(this,"type",dt.GuardsCheckStart);this.urlAfterRedirects=r,this.state=s}toString(){return`GuardsCheckStart(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state})`}}class WM extends zn{constructor(n,i,r,s,o){super(n,i);l(this,"urlAfterRedirects");l(this,"state");l(this,"shouldActivate");l(this,"type",dt.GuardsCheckEnd);this.urlAfterRedirects=r,this.state=s,this.shouldActivate=o}toString(){return`GuardsCheckEnd(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state}, shouldActivate: ${this.shouldActivate})`}}class GM extends zn{constructor(n,i,r,s){super(n,i);l(this,"urlAfterRedirects");l(this,"state");l(this,"type",dt.ResolveStart);this.urlAfterRedirects=r,this.state=s}toString(){return`ResolveStart(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state})`}}class qM extends zn{constructor(n,i,r,s){super(n,i);l(this,"urlAfterRedirects");l(this,"state");l(this,"type",dt.ResolveEnd);this.urlAfterRedirects=r,this.state=s}toString(){return`ResolveEnd(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state})`}}class ZM{constructor(e){l(this,"route");l(this,"type",dt.RouteConfigLoadStart);this.route=e}toString(){return`RouteConfigLoadStart(path: ${this.route.path})`}}class YM{constructor(e){l(this,"route");l(this,"type",dt.RouteConfigLoadEnd);this.route=e}toString(){return`RouteConfigLoadEnd(path: ${this.route.path})`}}class KM{constructor(e){l(this,"snapshot");l(this,"type",dt.ChildActivationStart);this.snapshot=e}toString(){return`ChildActivationStart(path: '${this.snapshot.routeConfig&&this.snapshot.routeConfig.path||""}')`}}class QM{constructor(e){l(this,"snapshot");l(this,"type",dt.ChildActivationEnd);this.snapshot=e}toString(){return`ChildActivationEnd(path: '${this.snapshot.routeConfig&&this.snapshot.routeConfig.path||""}')`}}class XM{constructor(e){l(this,"snapshot");l(this,"type",dt.ActivationStart);this.snapshot=e}toString(){return`ActivationStart(path: '${this.snapshot.routeConfig&&this.snapshot.routeConfig.path||""}')`}}class JM{constructor(e){l(this,"snapshot");l(this,"type",dt.ActivationEnd);this.snapshot=e}toString(){return`ActivationEnd(path: '${this.snapshot.routeConfig&&this.snapshot.routeConfig.path||""}')`}}class Bm{}class oc{constructor(e,n){l(this,"url");l(this,"navigationBehaviorOptions");this.url=e,this.navigationBehaviorOptions=n}}function eB(t,e){return t.providers&&!t._injector&&(t._injector=vm(t.providers,e,`Route: ${t.path}`)),t._injector??e}function un(t){return t.outlet||ce}function tB(t,e){const n=t.filter(i=>un(i)===e);return n.push(...t.filter(i=>un(i)!==e)),n}function da(t){if(!t)return null;if(t.routeConfig?._injector)return t.routeConfig._injector;for(let e=t.parent;e;e=e.parent){const n=e.routeConfig;if(n?._loadedInjector)return n._loadedInjector;if(n?._injector)return n._injector}return null}class nB{constructor(e){l(this,"rootInjector");l(this,"outlet",null);l(this,"route",null);l(this,"children");l(this,"attachRef",null);this.rootInjector=e,this.children=new Tu(this.rootInjector)}get injector(){return da(this.route?.snapshot)??this.rootInjector}}let Tu=(()=>{const n=class n{constructor(r){l(this,"rootInjector");l(this,"contexts",new Map);this.rootInjector=r}onChildOutletCreated(r,s){const o=this.getOrCreateContext(r);o.outlet=s,this.contexts.set(r,o)}onChildOutletDestroyed(r){const s=this.getContext(r);s&&(s.outlet=null,s.attachRef=null)}onOutletDeactivated(){const r=this.contexts;return this.contexts=new Map,r}onOutletReAttached(r){this.contexts=r}getOrCreateContext(r){let s=this.getContext(r);return s||(s=new nB(this.rootInjector),this.contexts.set(r,s)),s}getContext(r){return this.contexts.get(r)||null}};l(n,"ɵfac",function(s){return new(s||n)(ie(Yt))}),l(n,"ɵprov",O({token:n,factory:n.ɵfac,providedIn:"root"}));let e=n;return e})();class FS{constructor(e){l(this,"_root");this._root=e}get root(){return this._root.value}parent(e){const n=this.pathFromRoot(e);return n.length>1?n[n.length-2]:null}children(e){const n=Zf(e,this._root);return n?n.children.map(i=>i.value):[]}firstChild(e){const n=Zf(e,this._root);return n&&n.children.length>0?n.children[0].value:null}siblings(e){const n=Yf(e,this._root);return n.length<2?[]:n[n.length-2].children.map(r=>r.value).filter(r=>r!==e)}pathFromRoot(e){return Yf(e,this._root).map(n=>n.value)}}function Zf(t,e){if(t===e.value)return e;for(const n of e.children){const i=Zf(t,n);if(i)return i}return null}function Yf(t,e){if(t===e.value)return[e];for(const n of e.children){const i=Yf(t,n);if(i.length)return i.unshift(e),i}return[]}class ln{constructor(e,n){l(this,"value");l(this,"children");this.value=e,this.children=n}toString(){return`TreeNode(${this.value})`}}function Ki(t){const e={};return t&&t.children.forEach(n=>e[n.value.outlet]=n),e}class OS extends FS{constructor(n,i){super(n);l(this,"snapshot");this.snapshot=i,jm(this,n)}toString(){return this.snapshot.toString()}}function PS(t){const e=rB(t),n=new Pt([new po("",{})]),i=new Pt({}),r=new Pt({}),s=new Pt({}),o=new Pt(""),a=new Vr(n,i,s,o,r,ce,t,e.root);return a.snapshot=e.root,new OS(new ln(a,[]),e)}function rB(t){const e={},n={},i={},r="",s=new El([],e,i,r,n,ce,t,null,{});return new NS("",new ln(s,[]))}class Vr{constructor(e,n,i,r,s,o,a,c){l(this,"urlSubject");l(this,"paramsSubject");l(this,"queryParamsSubject");l(this,"fragmentSubject");l(this,"dataSubject");l(this,"outlet");l(this,"component");l(this,"snapshot");l(this,"_futureSnapshot");l(this,"_routerState");l(this,"_paramMap");l(this,"_queryParamMap");l(this,"title");l(this,"url");l(this,"params");l(this,"queryParams");l(this,"fragment");l(this,"data");this.urlSubject=e,this.paramsSubject=n,this.queryParamsSubject=i,this.fragmentSubject=r,this.dataSubject=s,this.outlet=o,this.component=a,this._futureSnapshot=c,this.title=this.dataSubject?.pipe(ue(u=>u[fa]))??G(void 0),this.url=e,this.params=n,this.queryParams=i,this.fragment=r,this.data=s}get routeConfig(){return this._futureSnapshot.routeConfig}get root(){return this._routerState.root}get parent(){return this._routerState.parent(this)}get firstChild(){return this._routerState.firstChild(this)}get children(){return this._routerState.children(this)}get pathFromRoot(){return this._routerState.pathFromRoot(this)}get paramMap(){return this._paramMap??(this._paramMap=this.params.pipe(ue(e=>Ts(e)))),this._paramMap}get queryParamMap(){return this._queryParamMap??(this._queryParamMap=this.queryParams.pipe(ue(e=>Ts(e)))),this._queryParamMap}toString(){return this.snapshot?this.snapshot.toString():`Future(${this._futureSnapshot})`}}function ac(t,e,n="emptyOnly"){let i;const{routeConfig:r}=t;return e!==null&&(n==="always"||r?.path===""||!e.component&&!e.routeConfig?.loadComponent)?i={params:{...e.params,...t.params},data:{...e.data,...t.data},resolve:{...t.data,...e.data,...r?.data,...t._resolvedData}}:i={params:{...t.params},data:{...t.data},resolve:{...t.data,...t._resolvedData??{}}},r&&MS(r)&&(i.resolve[fa]=r.title),i}class El{constructor(e,n,i,r,s,o,a,c,u){l(this,"url");l(this,"params");l(this,"queryParams");l(this,"fragment");l(this,"data");l(this,"outlet");l(this,"component");l(this,"routeConfig");l(this,"_resolve");l(this,"_resolvedData");l(this,"_routerState");l(this,"_paramMap");l(this,"_queryParamMap");this.url=e,this.params=n,this.queryParams=i,this.fragment=r,this.data=s,this.outlet=o,this.component=a,this.routeConfig=c,this._resolve=u}get title(){return this.data?.[fa]}get root(){return this._routerState.root}get parent(){return this._routerState.parent(this)}get firstChild(){return this._routerState.firstChild(this)}get children(){return this._routerState.children(this)}get pathFromRoot(){return this._routerState.pathFromRoot(this)}get paramMap(){return this._paramMap??(this._paramMap=Ts(this.params)),this._paramMap}get queryParamMap(){return this._queryParamMap??(this._queryParamMap=Ts(this.queryParams)),this._queryParamMap}toString(){const e=this.url.map(i=>i.toString()).join("/"),n=this.routeConfig?this.routeConfig.path:"";return`Route(url:'${e}', path:'${n}')`}}class NS extends FS{constructor(n,i){super(i);l(this,"url");this.url=n,jm(this,i)}toString(){return LS(this._root)}}function jm(t,e){e.value._routerState=t,e.children.forEach(n=>jm(t,n))}function LS(t){const e=t.children.length>0?` { ${t.children.map(LS).join(", ")} } `:"";return`${t.value}${e}`}function Th(t){if(t.snapshot){const e=t.snapshot,n=t._futureSnapshot;t.snapshot=n,On(e.queryParams,n.queryParams)||t.queryParamsSubject.next(n.queryParams),e.fragment!==n.fragment&&t.fragmentSubject.next(n.fragment),On(e.params,n.params)||t.paramsSubject.next(n.params),_M(e.url,n.url)||t.urlSubject.next(n.url),On(e.data,n.data)||t.dataSubject.next(n.data)}else t.snapshot=t._futureSnapshot,t.dataSubject.next(t._futureSnapshot.data)}function Kf(t,e){const n=On(t.params,e.params)&&wM(t.url,e.url),i=!t.parent!=!e.parent;return n&&!i&&(!t.parent||Kf(t.parent,e.parent))}function MS(t){return typeof t.title=="string"||t.title===null}const iB=new B("");let BS=(()=>{const n=class n{constructor(){l(this,"activated",null);l(this,"_activatedRoute",null);l(this,"name",ce);l(this,"activateEvents",new Ue);l(this,"deactivateEvents",new Ue);l(this,"attachEvents",new Ue);l(this,"detachEvents",new Ue);l(this,"routerOutletData",Up(void 0));l(this,"parentContexts",g(Tu));l(this,"location",g(ur));l(this,"changeDetector",g(Us));l(this,"inputBinder",g(Hm,{optional:!0}));l(this,"supportsBindingToComponentInputs",!0)}get activatedComponentRef(){return this.activated}ngOnChanges(r){if(r.name){const{firstChange:s,previousValue:o}=r.name;if(s)return;this.isTrackedInParentContexts(o)&&(this.deactivate(),this.parentContexts.onChildOutletDestroyed(o)),this.initializeOutletWithName()}}ngOnDestroy(){this.isTrackedInParentContexts(this.name)&&this.parentContexts.onChildOutletDestroyed(this.name),this.inputBinder?.unsubscribeFromRouteData(this)}isTrackedInParentContexts(r){return this.parentContexts.getContext(r)?.outlet===this}ngOnInit(){this.initializeOutletWithName()}initializeOutletWithName(){if(this.parentContexts.onChildOutletCreated(this.name,this),this.activated)return;const r=this.parentContexts.getContext(this.name);r?.route&&(r.attachRef?this.attach(r.attachRef,r.route):this.activateWith(r.route,r.injector))}get isActivated(){return!!this.activated}get component(){if(!this.activated)throw new x(4012,!1);return this.activated.instance}get activatedRoute(){if(!this.activated)throw new x(4012,!1);return this._activatedRoute}get activatedRouteData(){return this._activatedRoute?this._activatedRoute.snapshot.data:{}}detach(){if(!this.activated)throw new x(4012,!1);this.location.detach();const r=this.activated;return this.activated=null,this._activatedRoute=null,this.detachEvents.emit(r.instance),r}attach(r,s){this.activated=r,this._activatedRoute=s,this.location.insert(r.hostView),this.inputBinder?.bindActivatedRouteToOutletComponent(this),this.attachEvents.emit(r.instance)}deactivate(){if(this.activated){const r=this.component;this.activated.destroy(),this.activated=null,this._activatedRoute=null,this.deactivateEvents.emit(r)}}activateWith(r,s){if(this.isActivated)throw new x(4013,!1);this._activatedRoute=r;const o=this.location,c=r.snapshot.component,u=this.parentContexts.getOrCreateContext(this.name).children,h=new zm(r,u,o.injector,this.routerOutletData);this.activated=o.createComponent(c,{index:o.length,injector:h,environmentInjector:s}),this.changeDetector.markForCheck(),this.inputBinder?.bindActivatedRouteToOutletComponent(this),this.activateEvents.emit(this.activated.instance)}};l(n,"ɵfac",function(s){return new(s||n)}),l(n,"ɵdir",Ge({type:n,selectors:[["router-outlet"]],inputs:{name:"name",routerOutletData:[1,"routerOutletData"]},outputs:{activateEvents:"activate",deactivateEvents:"deactivate",attachEvents:"attach",detachEvents:"detach"},exportAs:["outlet"],features:[Ht]}));let e=n;return e})();class zm{constructor(e,n,i,r){l(this,"route");l(this,"childContexts");l(this,"parent");l(this,"outletData");this.route=e,this.childContexts=n,this.parent=i,this.outletData=r}__ngOutletInjector(e){return new zm(this.route,this.childContexts,e,this.outletData)}get(e,n){return e===Vr?this.route:e===Tu?this.childContexts:e===iB?this.outletData:this.parent.get(e,n)}}const Hm=new B("");function sB(t,e,n){const i=Mo(t,e._root,n?n._root:void 0);return new OS(i,e)}function Mo(t,e,n){if(n&&t.shouldReuseRoute(e.value,n.value.snapshot)){const i=n.value;i._futureSnapshot=e.value;const r=oB(t,e,n);return new ln(i,r)}else{if(t.shouldAttach(e.value)){const s=t.retrieve(e.value);if(s!==null){const o=s.route;return o.value._futureSnapshot=e.value,o.children=e.children.map(a=>Mo(t,a)),o}}const i=aB(e.value),r=e.children.map(s=>Mo(t,s));return new ln(i,r)}}function oB(t,e,n){return e.children.map(i=>{for(const r of n.children)if(t.shouldReuseRoute(i.value,r.value.snapshot))return Mo(t,i,r);return Mo(t,i)})}function aB(t){return new Vr(new Pt(t.url),new Pt(t.params),new Pt(t.queryParams),new Pt(t.fragment),new Pt(t.data),t.outlet,t.component,t)}class Um{constructor(e,n){l(this,"redirectTo");l(this,"navigationBehaviorOptions");this.redirectTo=e,this.navigationBehaviorOptions=n}}const jS="ngNavigationCancelingError";function lc(t,e){const{redirectTo:n,navigationBehaviorOptions:i}=bi(e)?{redirectTo:e,navigationBehaviorOptions:void 0}:e,r=zS(!1,Lt.Redirect);return r.url=n,r.navigationBehaviorOptions=i,r}function zS(t,e){const n=new Error("NavigationCancelingError: ");return n[jS]=!0,n.cancellationCode=e,n}function lB(t){return HS(t)&&bi(t.url)}function HS(t){return!!t&&t[jS]}const cB=(t,e,n,i)=>ue(r=>(new uB(e,r.targetRouterState,r.currentRouterState,n,i).activate(t),r));class uB{constructor(e,n,i,r,s){l(this,"routeReuseStrategy");l(this,"futureState");l(this,"currState");l(this,"forwardEvent");l(this,"inputBindingEnabled");this.routeReuseStrategy=e,this.futureState=n,this.currState=i,this.forwardEvent=r,this.inputBindingEnabled=s}activate(e){const n=this.futureState._root,i=this.currState?this.currState._root:null;this.deactivateChildRoutes(n,i,e),Th(this.futureState.root),this.activateChildRoutes(n,i,e)}deactivateChildRoutes(e,n,i){const r=Ki(n);e.children.forEach(s=>{const o=s.value.outlet;this.deactivateRoutes(s,r[o],i),delete r[o]}),Object.values(r).forEach(s=>{this.deactivateRouteAndItsChildren(s,i)})}deactivateRoutes(e,n,i){const r=e.value,s=n?n.value:null;if(r===s)if(r.component){const o=i.getContext(r.outlet);o&&this.deactivateChildRoutes(e,n,o.children)}else this.deactivateChildRoutes(e,n,i);else s&&this.deactivateRouteAndItsChildren(n,i)}deactivateRouteAndItsChildren(e,n){e.value.component&&this.routeReuseStrategy.shouldDetach(e.value.snapshot)?this.detachAndStoreRouteSubtree(e,n):this.deactivateRouteAndOutlet(e,n)}detachAndStoreRouteSubtree(e,n){const i=n.getContext(e.value.outlet),r=i&&e.value.component?i.children:n,s=Ki(e);for(const o of Object.values(s))this.deactivateRouteAndItsChildren(o,r);if(i&&i.outlet){const o=i.outlet.detach(),a=i.children.onOutletDeactivated();this.routeReuseStrategy.store(e.value.snapshot,{componentRef:o,route:e,contexts:a})}}deactivateRouteAndOutlet(e,n){const i=n.getContext(e.value.outlet),r=i&&e.value.component?i.children:n,s=Ki(e);for(const o of Object.values(s))this.deactivateRouteAndItsChildren(o,r);i&&(i.outlet&&(i.outlet.deactivate(),i.children.onOutletDeactivated()),i.attachRef=null,i.route=null)}activateChildRoutes(e,n,i){const r=Ki(n);e.children.forEach(s=>{this.activateRoutes(s,r[s.value.outlet],i),this.forwardEvent(new JM(s.value.snapshot))}),e.children.length&&this.forwardEvent(new QM(e.value.snapshot))}activateRoutes(e,n,i){const r=e.value,s=n?n.value:null;if(Th(r),r===s)if(r.component){const o=i.getOrCreateContext(r.outlet);this.activateChildRoutes(e,n,o.children)}else this.activateChildRoutes(e,n,i);else if(r.component){const o=i.getOrCreateContext(r.outlet);if(this.routeReuseStrategy.shouldAttach(r.snapshot)){const a=this.routeReuseStrategy.retrieve(r.snapshot);this.routeReuseStrategy.store(r.snapshot,null),o.children.onOutletReAttached(a.contexts),o.attachRef=a.componentRef,o.route=a.route.value,o.outlet&&o.outlet.attach(a.componentRef,a.route.value),Th(a.route.value),this.activateChildRoutes(e,null,o.children)}else o.attachRef=null,o.route=r,o.outlet&&o.outlet.activateWith(r,o.injector),this.activateChildRoutes(e,null,o.children)}else this.activateChildRoutes(e,null,i)}}class P_{constructor(e){l(this,"path");l(this,"route");this.path=e,this.route=this.path[this.path.length-1]}}class wl{constructor(e,n){l(this,"component");l(this,"route");this.component=e,this.route=n}}function hB(t,e,n){const i=t._root,r=e?e._root:null;return oo(i,r,n,[i.value])}function fB(t){const e=t.routeConfig?t.routeConfig.canActivateChild:null;return!e||e.length===0?null:{node:t,guards:e}}function Ws(t,e){const n=Symbol(),i=e.get(t,n);return i===n?typeof t=="function"&&!SD(t)?t:e.get(t):i}function oo(t,e,n,i,r={canDeactivateChecks:[],canActivateChecks:[]}){const s=Ki(e);return t.children.forEach(o=>{dB(o,s[o.value.outlet],n,i.concat([o.value]),r),delete s[o.value.outlet]}),Object.entries(s).forEach(([o,a])=>yo(a,n.getContext(o),r)),r}function dB(t,e,n,i,r={canDeactivateChecks:[],canActivateChecks:[]}){const s=t.value,o=e?e.value:null,a=n?n.getContext(t.value.outlet):null;if(o&&s.routeConfig===o.routeConfig){const c=pB(o,s,s.routeConfig.runGuardsAndResolvers);c?r.canActivateChecks.push(new P_(i)):(s.data=o.data,s._resolvedData=o._resolvedData),s.component?oo(t,e,a?a.children:null,i,r):oo(t,e,n,i,r),c&&a&&a.outlet&&a.outlet.isActivated&&r.canDeactivateChecks.push(new wl(a.outlet.component,o))}else o&&yo(e,a,r),r.canActivateChecks.push(new P_(i)),s.component?oo(t,null,a?a.children:null,i,r):oo(t,null,n,i,r);return r}function pB(t,e,n){if(typeof n=="function")return n(t,e);switch(n){case"pathParamsChange":return!si(t.url,e.url);case"pathParamsOrQueryParamsChange":return!si(t.url,e.url)||!On(t.queryParams,e.queryParams);case"always":return!0;case"paramsOrQueryParamsChange":return!Kf(t,e)||!On(t.queryParams,e.queryParams);case"paramsChange":default:return!Kf(t,e)}}function yo(t,e,n){const i=Ki(t),r=t.value;Object.entries(i).forEach(([s,o])=>{r.component?e?yo(o,e.children.getContext(s),n):yo(o,null,n):yo(o,e,n)}),r.component?e&&e.outlet&&e.outlet.isActivated?n.canDeactivateChecks.push(new wl(e.outlet.component,r)):n.canDeactivateChecks.push(new wl(null,r)):n.canDeactivateChecks.push(new wl(null,r))}function pa(t){return typeof t=="function"}function mB(t){return typeof t=="boolean"}function gB(t){return t&&pa(t.canLoad)}function yB(t){return t&&pa(t.canActivate)}function _B(t){return t&&pa(t.canActivateChild)}function vB(t){return t&&pa(t.canDeactivate)}function bB(t){return t&&pa(t.canMatch)}function US(t){return t instanceof qo||t?.name==="EmptyError"}const Va=Symbol("INITIAL_VALUE");function As(){return Zt(t=>up(t.map(e=>e.pipe(Jn(1),Zo(Va)))).pipe(ue(e=>{for(const n of e)if(n!==!0){if(n===Va)return Va;if(n===!1||EB(n))return n}return!0}),At(e=>e!==Va),Jn(1)))}function EB(t){return bi(t)||t instanceof Um}function wB(t,e){return ht(n=>{const{targetSnapshot:i,currentSnapshot:r,guards:{canActivateChecks:s,canDeactivateChecks:o}}=n;return o.length===0&&s.length===0?G({...n,guardsResult:!0}):CB(o,i,r,t).pipe(ht(a=>a&&mB(a)?SB(i,s,t,e):G(a)),ue(a=>({...n,guardsResult:a})))})}function CB(t,e,n,i){return ot(t).pipe(ht(r=>IB(r.component,r.route,n,e,i)),Ai(r=>r!==!0,!0))}function SB(t,e,n,i){return ot(e).pipe(Do(r=>Nl(AB(r.route.parent,i),TB(r.route,i),DB(t,r.path,n),kB(t,r.route,n))),Ai(r=>r!==!0,!0))}function TB(t,e){return t!==null&&e&&e(new XM(t)),G(!0)}function AB(t,e){return t!==null&&e&&e(new KM(t)),G(!0)}function kB(t,e,n){const i=e.routeConfig?e.routeConfig.canActivate:null;if(!i||i.length===0)return G(!0);const r=i.map(s=>hp(()=>{const o=da(e)??n,a=Ws(s,o),c=yB(a)?a.canActivate(e,t):gn(o,()=>a(e,t));return Ur(c).pipe(Ai())}));return G(r).pipe(As())}function DB(t,e,n){const i=e[e.length-1],s=e.slice(0,e.length-1).reverse().map(o=>fB(o)).filter(o=>o!==null).map(o=>hp(()=>{const a=o.guards.map(c=>{const u=da(o.node)??n,h=Ws(c,u),f=_B(h)?h.canActivateChild(i,t):gn(u,()=>h(i,t));return Ur(f).pipe(Ai())});return G(a).pipe(As())}));return G(s).pipe(As())}function IB(t,e,n,i,r){const s=e&&e.routeConfig?e.routeConfig.canDeactivate:null;if(!s||s.length===0)return G(!0);const o=s.map(a=>{const c=da(e)??r,u=Ws(a,c),h=vB(u)?u.canDeactivate(t,e,n,i):gn(c,()=>u(t,e,n,i));return Ur(h).pipe(Ai())});return G(o).pipe(As())}function xB(t,e,n,i){const r=e.canLoad;if(r===void 0||r.length===0)return G(!0);const s=r.map(o=>{const a=Ws(o,t),c=gB(a)?a.canLoad(e,n):gn(t,()=>a(e,n));return Ur(c)});return G(s).pipe(As(),VS(i))}function VS(t){return l1(nt(e=>{if(typeof e!="boolean")throw lc(t,e)}),ue(e=>e===!0))}function RB(t,e,n,i){const r=e.canMatch;if(!r||r.length===0)return G(!0);const s=r.map(o=>{const a=Ws(o,t),c=bB(a)?a.canMatch(e,n):gn(t,()=>a(e,n));return Ur(c)});return G(s).pipe(As(),VS(i))}class Qf{constructor(e){l(this,"segmentGroup");this.segmentGroup=e||null}}class Xf extends Error{constructor(n){super();l(this,"urlTree");this.urlTree=n}}function zi(t){return Nc(new Qf(t))}function FB(t){return Nc(new x(4e3,!1))}function OB(t){return Nc(zS(!1,Lt.GuardRejected))}class PB{constructor(e,n){l(this,"urlSerializer");l(this,"urlTree");this.urlSerializer=e,this.urlTree=n}lineralizeSegments(e,n){let i=[],r=n.root;for(;;){if(i=i.concat(r.segments),r.numberOfChildren===0)return G(i);if(r.numberOfChildren>1||!r.children[ce])return FB(`${e.redirectTo}`);r=r.children[ce]}}applyRedirectCommands(e,n,i,r,s){if(typeof n!="string"){const a=n,{queryParams:c,fragment:u,routeConfig:h,url:f,outlet:d,params:p,data:m,title:y}=r,_=gn(s,()=>a({params:p,data:m,queryParams:c,fragment:u,routeConfig:h,url:f,outlet:d,title:y}));if(_ instanceof vi)throw new Xf(_);n=_}const o=this.applyRedirectCreateUrlTree(n,this.urlSerializer.parse(n),e,i);if(n[0]==="/")throw new Xf(o);return o}applyRedirectCreateUrlTree(e,n,i,r){const s=this.createSegmentGroup(e,n.root,i,r);return new vi(s,this.createQueryParams(n.queryParams,this.urlTree.queryParams),n.fragment)}createQueryParams(e,n){const i={};return Object.entries(e).forEach(([r,s])=>{if(typeof s=="string"&&s[0]===":"){const a=s.substring(1);i[r]=n[a]}else i[r]=s}),i}createSegmentGroup(e,n,i,r){const s=this.createSegments(e,n.segments,i,r);let o={};return Object.entries(n.children).forEach(([a,c])=>{o[a]=this.createSegmentGroup(e,c,i,r)}),new Re(s,o)}createSegments(e,n,i,r){return n.map(s=>s.path[0]===":"?this.findPosParam(e,s,r):this.findOrReturn(s,i))}findPosParam(e,n,i){const r=i[n.path.substring(1)];if(!r)throw new x(4001,!1);return r}findOrReturn(e,n){let i=0;for(const r of n){if(r.path===e.path)return n.splice(i),r;i++}return e}}const Jf={matched:!1,consumedSegments:[],remainingSegments:[],parameters:{},positionalParamSegments:{}};function NB(t,e,n,i,r){const s=$S(t,e,n);return s.matched?(i=eB(e,i),RB(i,e,n,r).pipe(ue(o=>o===!0?s:{...Jf}))):G(s)}function $S(t,e,n){if(e.path==="**")return LB(n);if(e.path==="")return e.pathMatch==="full"&&(t.hasChildren()||n.length>0)?{...Jf}:{matched:!0,consumedSegments:[],remainingSegments:n,parameters:{},positionalParamSegments:{}};const r=(e.matcher||yM)(n,t,e);if(!r)return{...Jf};const s={};Object.entries(r.posParams??{}).forEach(([a,c])=>{s[a]=c.path});const o=r.consumed.length>0?{...s,...r.consumed[r.consumed.length-1].parameters}:s;return{matched:!0,consumedSegments:r.consumed,remainingSegments:n.slice(r.consumed.length),parameters:o,positionalParamSegments:r.posParams??{}}}function LB(t){return{matched:!0,parameters:t.length>0?_S(t).parameters:{},consumedSegments:t,remainingSegments:[],positionalParamSegments:{}}}function N_(t,e,n,i){return n.length>0&&jB(t,n,i)?{segmentGroup:new Re(e,BB(i,new Re(n,t.children))),slicedSegments:[]}:n.length===0&&zB(t,n,i)?{segmentGroup:new Re(t.segments,MB(t,n,i,t.children)),slicedSegments:n}:{segmentGroup:new Re(t.segments,t.children),slicedSegments:n}}function MB(t,e,n,i){const r={};for(const s of n)if(Au(t,e,s)&&!i[un(s)]){const o=new Re([],{});r[un(s)]=o}return{...i,...r}}function BB(t,e){const n={};n[ce]=e;for(const i of t)if(i.path===""&&un(i)!==ce){const r=new Re([],{});n[un(i)]=r}return n}function jB(t,e,n){return n.some(i=>Au(t,e,i)&&un(i)!==ce)}function zB(t,e,n){return n.some(i=>Au(t,e,i))}function Au(t,e,n){return(t.hasChildren()||e.length>0)&&n.pathMatch==="full"?!1:n.path===""}function HB(t,e,n){return e.length===0&&!t.children[n]}class UB{}function VB(t,e,n,i,r,s,o="emptyOnly"){return new WB(t,e,n,i,r,o,s).recognize()}const $B=31;class WB{constructor(e,n,i,r,s,o,a){l(this,"injector");l(this,"configLoader");l(this,"rootComponentType");l(this,"config");l(this,"urlTree");l(this,"paramsInheritanceStrategy");l(this,"urlSerializer");l(this,"applyRedirects");l(this,"absoluteRedirectCount",0);l(this,"allowRedirects",!0);this.injector=e,this.configLoader=n,this.rootComponentType=i,this.config=r,this.urlTree=s,this.paramsInheritanceStrategy=o,this.urlSerializer=a,this.applyRedirects=new PB(this.urlSerializer,this.urlTree)}noMatchError(e){return new x(4002,`'${e.segmentGroup}'`)}recognize(){const e=N_(this.urlTree.root,[],[],this.config).segmentGroup;return this.match(e).pipe(ue(({children:n,rootSnapshot:i})=>{const r=new ln(i,n),s=new NS("",r),o=MM(i,[],this.urlTree.queryParams,this.urlTree.fragment);return o.queryParams=this.urlTree.queryParams,s.url=this.urlSerializer.serialize(o),{state:s,tree:o}}))}match(e){const n=new El([],Object.freeze({}),Object.freeze({...this.urlTree.queryParams}),this.urlTree.fragment,Object.freeze({}),ce,this.rootComponentType,null,{});return this.processSegmentGroup(this.injector,this.config,e,ce,n).pipe(ue(i=>({children:i,rootSnapshot:n})),ii(i=>{if(i instanceof Xf)return this.urlTree=i.urlTree,this.match(i.urlTree.root);throw i instanceof Qf?this.noMatchError(i):i}))}processSegmentGroup(e,n,i,r,s){return i.segments.length===0&&i.hasChildren()?this.processChildren(e,n,i,s):this.processSegment(e,n,i,i.segments,r,!0,s).pipe(ue(o=>o instanceof ln?[o]:[]))}processChildren(e,n,i,r){const s=[];for(const o of Object.keys(i.children))o==="primary"?s.unshift(o):s.push(o);return ot(s).pipe(Do(o=>{const a=i.children[o],c=tB(n,o);return this.processSegmentGroup(e,c,a,o,r)}),mD((o,a)=>(o.push(...a),o)),Lc(null),dD(),ht(o=>{if(o===null)return zi(i);const a=WS(o);return GB(a),G(a)}))}processSegment(e,n,i,r,s,o,a){return ot(n).pipe(Do(c=>this.processSegmentAgainstRoute(c._injector??e,n,c,i,r,s,o,a).pipe(ii(u=>{if(u instanceof Qf)return G(null);throw u}))),Ai(c=>!!c),ii(c=>{if(US(c))return HB(i,r,s)?G(new UB):zi(i);throw c}))}processSegmentAgainstRoute(e,n,i,r,s,o,a,c){return un(i)!==o&&(o===ce||!Au(r,s,i))?zi(r):i.redirectTo===void 0?this.matchSegmentAgainstRoute(e,r,i,s,o,c):this.allowRedirects&&a?this.expandSegmentAgainstRouteUsingRedirect(e,r,n,i,s,o,c):zi(r)}expandSegmentAgainstRouteUsingRedirect(e,n,i,r,s,o,a){const{matched:c,parameters:u,consumedSegments:h,positionalParamSegments:f,remainingSegments:d}=$S(n,r,s);if(!c)return zi(n);typeof r.redirectTo=="string"&&r.redirectTo[0]==="/"&&(this.absoluteRedirectCount++,this.absoluteRedirectCount>$B&&(this.allowRedirects=!1));const p=new El(s,u,Object.freeze({...this.urlTree.queryParams}),this.urlTree.fragment,L_(r),un(r),r.component??r._loadedComponent??null,r,M_(r)),m=ac(p,a,this.paramsInheritanceStrategy);p.params=Object.freeze(m.params),p.data=Object.freeze(m.data);const y=this.applyRedirects.applyRedirectCommands(h,r.redirectTo,f,p,e);return this.applyRedirects.lineralizeSegments(r,y).pipe(ht(_=>this.processSegment(e,i,n,_.concat(d),o,!1,a)))}matchSegmentAgainstRoute(e,n,i,r,s,o){const a=NB(n,i,r,e,this.urlSerializer);return i.path==="**"&&(n.children={}),a.pipe(Zt(c=>c.matched?(e=i._injector??e,this.getChildConfig(e,i,r).pipe(Zt(({routes:u})=>{const h=i._loadedInjector??e,{parameters:f,consumedSegments:d,remainingSegments:p}=c,m=new El(d,f,Object.freeze({...this.urlTree.queryParams}),this.urlTree.fragment,L_(i),un(i),i.component??i._loadedComponent??null,i,M_(i)),y=ac(m,o,this.paramsInheritanceStrategy);m.params=Object.freeze(y.params),m.data=Object.freeze(y.data);const{segmentGroup:_,slicedSegments:S}=N_(n,d,p,u);if(S.length===0&&_.hasChildren())return this.processChildren(h,u,_,m).pipe(ue(E=>new ln(m,E)));if(u.length===0&&S.length===0)return G(new ln(m,[]));const C=un(i)===s;return this.processSegment(h,u,_,S,C?ce:s,!0,m).pipe(ue(E=>new ln(m,E instanceof ln?[E]:[])))}))):zi(n)))}getChildConfig(e,n,i){return n.children?G({routes:n.children,injector:e}):n.loadChildren?n._loadedRoutes!==void 0?G({routes:n._loadedRoutes,injector:n._loadedInjector}):xB(e,n,i,this.urlSerializer).pipe(ht(r=>r?this.configLoader.loadChildren(e,n).pipe(nt(s=>{n._loadedRoutes=s.routes,n._loadedInjector=s.injector})):OB())):G({routes:[],injector:e})}}function GB(t){t.sort((e,n)=>e.value.outlet===ce?-1:n.value.outlet===ce?1:e.value.outlet.localeCompare(n.value.outlet))}function qB(t){const e=t.value.routeConfig;return e&&e.path===""}function WS(t){const e=[],n=new Set;for(const i of t){if(!qB(i)){e.push(i);continue}const r=e.find(s=>i.value.routeConfig===s.value.routeConfig);r!==void 0?(r.children.push(...i.children),n.add(r)):e.push(i)}for(const i of n){const r=WS(i.children);e.push(new ln(i.value,r))}return e.filter(i=>!n.has(i))}function L_(t){return t.data||{}}function M_(t){return t.resolve||{}}function ZB(t,e,n,i,r,s){return ht(o=>VB(t,e,n,i,o.extractedUrl,r,s).pipe(ue(({state:a,tree:c})=>({...o,targetSnapshot:a,urlAfterRedirects:c}))))}function YB(t,e){return ht(n=>{const{targetSnapshot:i,guards:{canActivateChecks:r}}=n;if(!r.length)return G(n);const s=new Set(r.map(c=>c.route)),o=new Set;for(const c of s)if(!o.has(c))for(const u of GS(c))o.add(u);let a=0;return ot(o).pipe(Do(c=>s.has(c)?KB(c,i,t,e):(c.data=ac(c,c.parent,t).resolve,G(void 0))),nt(()=>a++),pp(1),ht(c=>a===o.size?G(n):Sn))})}function GS(t){const e=t.children.map(n=>GS(n)).flat();return[t,...e]}function KB(t,e,n,i){const r=t.routeConfig,s=t._resolve;return r?.title!==void 0&&!MS(r)&&(s[fa]=r.title),QB(s,t,e,i).pipe(ue(o=>(t._resolvedData=o,t.data=ac(t,t.parent,n).resolve,null)))}function QB(t,e,n,i){const r=Vf(t);if(r.length===0)return G({});const s={};return ot(r).pipe(ht(o=>XB(t[o],e,n,i).pipe(Ai(),nt(a=>{if(a instanceof Um)throw lc(new Lm,a);s[o]=a}))),pp(1),uD(s),ii(o=>US(o)?Sn:Nc(o)))}function XB(t,e,n,i){const r=da(e)??i,s=Ws(t,r),o=s.resolve?s.resolve(e,n):gn(r,()=>s(e,n));return Ur(o)}function Ah(t){return Zt(e=>{const n=t(e);return n?ot(n).pipe(ue(()=>e)):G(e)})}let qS=(()=>{const n=class n{buildTitle(r){let s,o=r.root;for(;o!==void 0;)s=this.getResolvedTitleForRoute(o)??s,o=o.children.find(a=>a.outlet===ce);return s}getResolvedTitleForRoute(r){return r.data[fa]}};l(n,"ɵfac",function(s){return new(s||n)}),l(n,"ɵprov",O({token:n,factory:()=>g(JB),providedIn:"root"}));let e=n;return e})(),JB=(()=>{const n=class n extends qS{constructor(s){super();l(this,"title");this.title=s}updateTitle(s){const o=this.buildTitle(s);o!==void 0&&this.title.setTitle(o)}};l(n,"ɵfac",function(o){return new(o||n)(ie(dM))}),l(n,"ɵprov",O({token:n,factory:n.ɵfac,providedIn:"root"}));let e=n;return e})();const Vm=new B("",{providedIn:"root",factory:()=>({})});let ej=(()=>{const n=class n{};l(n,"ɵfac",function(s){return new(s||n)}),l(n,"ɵcmp",Ye({type:n,selectors:[["ng-component"]],decls:1,vars:0,template:function(s,o){s&1&&pn(0,"router-outlet")},dependencies:[BS],encapsulation:2}));let e=n;return e})();function $m(t){const e=t.children&&t.children.map($m),n=e?{...t,children:e}:{...t};return!n.component&&!n.loadComponent&&(e||n.loadChildren)&&n.outlet&&n.outlet!==ce&&(n.component=ej),n}const Wm=new B("");let tj=(()=>{const n=class n{constructor(){l(this,"componentLoaders",new WeakMap);l(this,"childrenLoaders",new WeakMap);l(this,"onLoadStartListener");l(this,"onLoadEndListener");l(this,"compiler",g(Y2))}loadComponent(r){if(this.componentLoaders.get(r))return this.componentLoaders.get(r);if(r._loadedComponent)return G(r._loadedComponent);this.onLoadStartListener&&this.onLoadStartListener(r);const s=Ur(r.loadComponent()).pipe(ue(ZS),nt(a=>{this.onLoadEndListener&&this.onLoadEndListener(r),r._loadedComponent=a}),Ll(()=>{this.componentLoaders.delete(r)})),o=new Yh(s,()=>new oe).pipe(Zh());return this.componentLoaders.set(r,o),o}loadChildren(r,s){if(this.childrenLoaders.get(s))return this.childrenLoaders.get(s);if(s._loadedRoutes)return G({routes:s._loadedRoutes,injector:s._loadedInjector});this.onLoadStartListener&&this.onLoadStartListener(s);const a=nj(s,this.compiler,r,this.onLoadEndListener).pipe(Ll(()=>{this.childrenLoaders.delete(s)})),c=new Yh(a,()=>new oe).pipe(Zh());return this.childrenLoaders.set(s,c),c}};l(n,"ɵfac",function(s){return new(s||n)}),l(n,"ɵprov",O({token:n,factory:n.ɵfac,providedIn:"root"}));let e=n;return e})();function nj(t,e,n,i){return Ur(t.loadChildren()).pipe(ue(ZS),ht(r=>r instanceof gC||Array.isArray(r)?G(r):ot(e.compileModuleAsync(r))),ue(r=>{i&&i(t);let s,o;return Array.isArray(r)?o=r:(s=r.create(n).injector,o=s.get(Wm,[],{optional:!0,self:!0}).flat()),{routes:o.map($m),injector:s}}))}function rj(t){return t&&typeof t=="object"&&"default"in t}function ZS(t){return rj(t)?t.default:t}let Gm=(()=>{const n=class n{};l(n,"ɵfac",function(s){return new(s||n)}),l(n,"ɵprov",O({token:n,factory:()=>g(ij),providedIn:"root"}));let e=n;return e})(),ij=(()=>{const n=class n{shouldProcessUrl(r){return!0}extract(r){return r}merge(r,s){return r}};l(n,"ɵfac",function(s){return new(s||n)}),l(n,"ɵprov",O({token:n,factory:n.ɵfac,providedIn:"root"}));let e=n;return e})();const sj=new B(""),oj=new B("");let aj=(()=>{const n=class n{constructor(){l(this,"currentNavigation",null);l(this,"currentTransition",null);l(this,"lastSuccessfulNavigation",null);l(this,"events",new oe);l(this,"transitionAbortSubject",new oe);l(this,"configLoader",g(tj));l(this,"environmentInjector",g(Yt));l(this,"urlSerializer",g(Nm));l(this,"rootContexts",g(Tu));l(this,"location",g(Vs));l(this,"inputBindingEnabled",g(Hm,{optional:!0})!==null);l(this,"titleStrategy",g(qS));l(this,"options",g(Vm,{optional:!0})||{});l(this,"paramsInheritanceStrategy",this.options.paramsInheritanceStrategy||"emptyOnly");l(this,"urlHandlingStrategy",g(Gm));l(this,"createViewTransition",g(sj,{optional:!0}));l(this,"navigationErrorHandler",g(oj,{optional:!0}));l(this,"navigationId",0);l(this,"transitions");l(this,"afterPreactivation",()=>G(void 0));l(this,"rootComponentType",null);const r=o=>this.events.next(new ZM(o)),s=o=>this.events.next(new YM(o));this.configLoader.onLoadEndListener=s,this.configLoader.onLoadStartListener=r}get hasRequestedNavigation(){return this.navigationId!==0}complete(){this.transitions?.complete()}handleNavigationRequest(r){const s=++this.navigationId;this.transitions?.next({...this.transitions.value,...r,id:s})}setupNavigations(r,s,o){return this.transitions=new Pt({id:0,currentUrlTree:s,currentRawUrl:s,extractedUrl:this.urlHandlingStrategy.extract(s),urlAfterRedirects:this.urlHandlingStrategy.extract(s),rawUrl:s,extras:{},resolve:()=>{},reject:()=>{},promise:Promise.resolve(!0),source:go,restoredState:null,currentSnapshot:o.snapshot,targetSnapshot:null,currentRouterState:o,targetRouterState:null,guards:{canActivateChecks:[],canDeactivateChecks:[]},guardsResult:null}),this.transitions.pipe(At(a=>a.id!==0),ue(a=>({...a,extractedUrl:this.urlHandlingStrategy.extract(a.rawUrl)})),Zt(a=>{let c=!1,u=!1;return G(a).pipe(Zt(h=>{if(this.navigationId>a.id)return this.cancelNavigationTransition(a,"",Lt.SupersededByNewNavigation),Sn;this.currentTransition=a,this.currentNavigation={id:h.id,initialUrl:h.rawUrl,extractedUrl:h.extractedUrl,targetBrowserUrl:typeof h.extras.browserUrl=="string"?this.urlSerializer.parse(h.extras.browserUrl):h.extras.browserUrl,trigger:h.source,extras:h.extras,previousNavigation:this.lastSuccessfulNavigation?{...this.lastSuccessfulNavigation,previousNavigation:null}:null};const f=!r.navigated||this.isUpdatingInternalState()||this.isUpdatedBrowserUrl(),d=h.extras.onSameUrlNavigation??r.onSameUrlNavigation;if(!f&&d!=="reload"){const p="";return this.events.next(new Lo(h.id,this.urlSerializer.serialize(h.rawUrl),p,qf.IgnoredSameUrlNavigation)),h.resolve(!1),Sn}if(this.urlHandlingStrategy.shouldProcessUrl(h.rawUrl))return G(h).pipe(Zt(p=>{const m=this.transitions?.getValue();return this.events.next(new Gf(p.id,this.urlSerializer.serialize(p.extractedUrl),p.source,p.restoredState)),m!==this.transitions?.getValue()?Sn:Promise.resolve(p)}),ZB(this.environmentInjector,this.configLoader,this.rootComponentType,r.config,this.urlSerializer,this.paramsInheritanceStrategy),nt(p=>{a.targetSnapshot=p.targetSnapshot,a.urlAfterRedirects=p.urlAfterRedirects,this.currentNavigation={...this.currentNavigation,finalUrl:p.urlAfterRedirects};const m=new RS(p.id,this.urlSerializer.serialize(p.extractedUrl),this.urlSerializer.serialize(p.urlAfterRedirects),p.targetSnapshot);this.events.next(m)}));if(f&&this.urlHandlingStrategy.shouldProcessUrl(h.currentRawUrl)){const{id:p,extractedUrl:m,source:y,restoredState:_,extras:S}=h,C=new Gf(p,this.urlSerializer.serialize(m),y,_);this.events.next(C);const E=PS(this.rootComponentType).snapshot;return this.currentTransition=a={...h,targetSnapshot:E,urlAfterRedirects:m,extras:{...S,skipLocationChange:!1,replaceUrl:!1}},this.currentNavigation.finalUrl=m,G(a)}else{const p="";return this.events.next(new Lo(h.id,this.urlSerializer.serialize(h.extractedUrl),p,qf.IgnoredByUrlHandlingStrategy)),h.resolve(!1),Sn}}),nt(h=>{const f=new $M(h.id,this.urlSerializer.serialize(h.extractedUrl),this.urlSerializer.serialize(h.urlAfterRedirects),h.targetSnapshot);this.events.next(f)}),ue(h=>(this.currentTransition=a={...h,guards:hB(h.targetSnapshot,h.currentSnapshot,this.rootContexts)},a)),wB(this.environmentInjector,h=>this.events.next(h)),nt(h=>{if(a.guardsResult=h.guardsResult,h.guardsResult&&typeof h.guardsResult!="boolean")throw lc(this.urlSerializer,h.guardsResult);const f=new WM(h.id,this.urlSerializer.serialize(h.extractedUrl),this.urlSerializer.serialize(h.urlAfterRedirects),h.targetSnapshot,!!h.guardsResult);this.events.next(f)}),At(h=>h.guardsResult?!0:(this.cancelNavigationTransition(h,"",Lt.GuardRejected),!1)),Ah(h=>{if(h.guards.canActivateChecks.length)return G(h).pipe(nt(f=>{const d=new GM(f.id,this.urlSerializer.serialize(f.extractedUrl),this.urlSerializer.serialize(f.urlAfterRedirects),f.targetSnapshot);this.events.next(d)}),Zt(f=>{let d=!1;return G(f).pipe(YB(this.paramsInheritanceStrategy,this.environmentInjector),nt({next:()=>d=!0,complete:()=>{d||this.cancelNavigationTransition(f,"",Lt.NoDataFromResolver)}}))}),nt(f=>{const d=new qM(f.id,this.urlSerializer.serialize(f.extractedUrl),this.urlSerializer.serialize(f.urlAfterRedirects),f.targetSnapshot);this.events.next(d)}))}),Ah(h=>{const f=d=>{const p=[];d.routeConfig?.loadComponent&&!d.routeConfig._loadedComponent&&p.push(this.configLoader.loadComponent(d.routeConfig).pipe(nt(m=>{d.component=m}),ue(()=>{})));for(const m of d.children)p.push(...f(m));return p};return up(f(h.targetSnapshot.root)).pipe(Lc(null),Jn(1))}),Ah(()=>this.afterPreactivation()),Zt(()=>{const{currentSnapshot:h,targetSnapshot:f}=a,d=this.createViewTransition?.(this.environmentInjector,h.root,f.root);return d?ot(d).pipe(ue(()=>a)):G(a)}),ue(h=>{const f=sB(r.routeReuseStrategy,h.targetSnapshot,h.currentRouterState);return this.currentTransition=a={...h,targetRouterState:f},this.currentNavigation.targetRouterState=f,a}),nt(()=>{this.events.next(new Bm)}),cB(this.rootContexts,r.routeReuseStrategy,h=>this.events.next(h),this.inputBindingEnabled),Jn(1),nt({next:h=>{c=!0,this.lastSuccessfulNavigation=this.currentNavigation,this.events.next(new sr(h.id,this.urlSerializer.serialize(h.extractedUrl),this.urlSerializer.serialize(h.urlAfterRedirects))),this.titleStrategy?.updateTitle(h.targetRouterState.snapshot),h.resolve(!0)},complete:()=>{c=!0}}),Ln(this.transitionAbortSubject.pipe(nt(h=>{throw h}))),Ll(()=>{!c&&!u&&this.cancelNavigationTransition(a,"",Lt.SupersededByNewNavigation),this.currentTransition?.id===a.id&&(this.currentNavigation=null,this.currentTransition=null)}),ii(h=>{if(u=!0,HS(h))this.events.next(new oi(a.id,this.urlSerializer.serialize(a.extractedUrl),h.message,h.cancellationCode)),lB(h)?this.events.next(new oc(h.url,h.navigationBehaviorOptions)):a.resolve(!1);else{const f=new Mm(a.id,this.urlSerializer.serialize(a.extractedUrl),h,a.targetSnapshot??void 0);try{const d=gn(this.environmentInjector,()=>this.navigationErrorHandler?.(f));if(d instanceof Um){const{message:p,cancellationCode:m}=lc(this.urlSerializer,d);this.events.next(new oi(a.id,this.urlSerializer.serialize(a.extractedUrl),p,m)),this.events.next(new oc(d.redirectTo,d.navigationBehaviorOptions))}else throw this.events.next(f),h}catch(d){this.options.resolveNavigationPromiseOnError?a.resolve(!1):a.reject(d)}}return Sn}))}))}cancelNavigationTransition(r,s,o){const a=new oi(r.id,this.urlSerializer.serialize(r.extractedUrl),s,o);this.events.next(a),r.resolve(!1)}isUpdatingInternalState(){return this.currentTransition?.extractedUrl.toString()!==this.currentTransition?.currentUrlTree.toString()}isUpdatedBrowserUrl(){const r=this.urlHandlingStrategy.extract(this.urlSerializer.parse(this.location.path(!0))),s=this.currentNavigation?.targetBrowserUrl??this.currentNavigation?.extractedUrl;return r.toString()!==s?.toString()&&!this.currentNavigation?.extras.skipLocationChange}};l(n,"ɵfac",function(s){return new(s||n)}),l(n,"ɵprov",O({token:n,factory:n.ɵfac,providedIn:"root"}));let e=n;return e})();function lj(t){return t!==go}let cj=(()=>{const n=class n{};l(n,"ɵfac",function(s){return new(s||n)}),l(n,"ɵprov",O({token:n,factory:()=>g(hj),providedIn:"root"}));let e=n;return e})();class uj{shouldDetach(e){return!1}store(e,n){}shouldAttach(e){return!1}retrieve(e){return null}shouldReuseRoute(e,n){return e.routeConfig===n.routeConfig}}let hj=(()=>{const n=class n extends uj{};l(n,"ɵfac",(()=>{let r;return function(o){return(r||(r=ki(n)))(o||n)}})()),l(n,"ɵprov",O({token:n,factory:n.ɵfac,providedIn:"root"}));let e=n;return e})(),YS=(()=>{const n=class n{};l(n,"ɵfac",function(s){return new(s||n)}),l(n,"ɵprov",O({token:n,factory:()=>g(fj),providedIn:"root"}));let e=n;return e})(),fj=(()=>{const n=class n extends YS{constructor(){super(...arguments);l(this,"location",g(Vs));l(this,"urlSerializer",g(Nm));l(this,"options",g(Vm,{optional:!0})||{});l(this,"canceledNavigationResolution",this.options.canceledNavigationResolution||"replace");l(this,"urlHandlingStrategy",g(Gm));l(this,"urlUpdateStrategy",this.options.urlUpdateStrategy||"deferred");l(this,"currentUrlTree",new vi);l(this,"rawUrlTree",this.currentUrlTree);l(this,"currentPageId",0);l(this,"lastSuccessfulId",-1);l(this,"routerState",PS(null));l(this,"stateMemento",this.createStateMemento())}getCurrentUrlTree(){return this.currentUrlTree}getRawUrlTree(){return this.rawUrlTree}restoredState(){return this.location.getState()}get browserPageId(){return this.canceledNavigationResolution!=="computed"?this.currentPageId:this.restoredState()?.ɵrouterPageId??this.currentPageId}getRouterState(){return this.routerState}createStateMemento(){return{rawUrlTree:this.rawUrlTree,currentUrlTree:this.currentUrlTree,routerState:this.routerState}}registerNonRouterCurrentEntryChangeListener(s){return this.location.subscribe(o=>{o.type==="popstate"&&s(o.url,o.state)})}handleRouterEvent(s,o){if(s instanceof Gf)this.stateMemento=this.createStateMemento();else if(s instanceof Lo)this.rawUrlTree=o.initialUrl;else if(s instanceof RS){if(this.urlUpdateStrategy==="eager"&&!o.extras.skipLocationChange){const a=this.urlHandlingStrategy.merge(o.finalUrl,o.initialUrl);this.setBrowserUrl(o.targetBrowserUrl??a,o)}}else s instanceof Bm?(this.currentUrlTree=o.finalUrl,this.rawUrlTree=this.urlHandlingStrategy.merge(o.finalUrl,o.initialUrl),this.routerState=o.targetRouterState,this.urlUpdateStrategy==="deferred"&&!o.extras.skipLocationChange&&this.setBrowserUrl(o.targetBrowserUrl??this.rawUrlTree,o)):s instanceof oi&&(s.code===Lt.GuardRejected||s.code===Lt.NoDataFromResolver)?this.restoreHistory(o):s instanceof Mm?this.restoreHistory(o,!0):s instanceof sr&&(this.lastSuccessfulId=s.id,this.currentPageId=this.browserPageId)}setBrowserUrl(s,o){const a=s instanceof vi?this.urlSerializer.serialize(s):s;if(this.location.isCurrentPathEqualTo(a)||o.extras.replaceUrl){const c=this.browserPageId,u={...o.extras.state,...this.generateNgRouterState(o.id,c)};this.location.replaceState(a,"",u)}else{const c={...o.extras.state,...this.generateNgRouterState(o.id,this.browserPageId+1)};this.location.go(a,"",c)}}restoreHistory(s,o=!1){if(this.canceledNavigationResolution==="computed"){const a=this.browserPageId,c=this.currentPageId-a;c!==0?this.location.historyGo(c):this.currentUrlTree===s.finalUrl&&c===0&&(this.resetState(s),this.resetUrlToCurrentUrlTree())}else this.canceledNavigationResolution==="replace"&&(o&&this.resetState(s),this.resetUrlToCurrentUrlTree())}resetState(s){this.routerState=this.stateMemento.routerState,this.currentUrlTree=this.stateMemento.currentUrlTree,this.rawUrlTree=this.urlHandlingStrategy.merge(this.currentUrlTree,s.finalUrl??this.rawUrlTree)}resetUrlToCurrentUrlTree(){this.location.replaceState(this.urlSerializer.serialize(this.rawUrlTree),"",this.generateNgRouterState(this.lastSuccessfulId,this.currentPageId))}generateNgRouterState(s,o){return this.canceledNavigationResolution==="computed"?{navigationId:s,ɵrouterPageId:o}:{navigationId:s}}};l(n,"ɵfac",(()=>{let s;return function(a){return(s||(s=ki(n)))(a||n)}})()),l(n,"ɵprov",O({token:n,factory:n.ɵfac,providedIn:"root"}));let e=n;return e})();var ao=function(t){return t[t.COMPLETE=0]="COMPLETE",t[t.FAILED=1]="FAILED",t[t.REDIRECTING=2]="REDIRECTING",t}(ao||{});function dj(t,e){t.events.pipe(At(n=>n instanceof sr||n instanceof oi||n instanceof Mm||n instanceof Lo),ue(n=>n instanceof sr||n instanceof Lo?ao.COMPLETE:(n instanceof oi?n.code===Lt.Redirect||n.code===Lt.SupersededByNewNavigation:!1)?ao.REDIRECTING:ao.FAILED),At(n=>n!==ao.REDIRECTING),Jn(1)).subscribe(()=>{e()})}const pj={paths:"exact",fragment:"ignored",matrixParams:"ignored",queryParams:"exact"},mj={paths:"subset",fragment:"ignored",matrixParams:"ignored",queryParams:"subset"};let Fi=(()=>{const n=class n{constructor(){l(this,"disposed",!1);l(this,"nonRouterCurrentEntryChangeSubscription");l(this,"console",g(DP));l(this,"stateManager",g(YS));l(this,"options",g(Vm,{optional:!0})||{});l(this,"pendingTasks",g(zr));l(this,"urlUpdateStrategy",this.options.urlUpdateStrategy||"deferred");l(this,"navigationTransitions",g(aj));l(this,"urlSerializer",g(Nm));l(this,"location",g(Vs));l(this,"urlHandlingStrategy",g(Gm));l(this,"_events",new oe);l(this,"navigated",!1);l(this,"routeReuseStrategy",g(cj));l(this,"onSameUrlNavigation",this.options.onSameUrlNavigation||"ignore");l(this,"config",g(Wm,{optional:!0})?.flat()??[]);l(this,"componentInputBindingEnabled",!!g(Hm,{optional:!0}));l(this,"eventsSubscription",new Je);this.resetConfig(this.config),this.navigationTransitions.setupNavigations(this,this.currentUrlTree,this.routerState).subscribe({error:r=>{this.console.warn(r)}}),this.subscribeToNavigationEvents()}get currentUrlTree(){return this.stateManager.getCurrentUrlTree()}get rawUrlTree(){return this.stateManager.getRawUrlTree()}get events(){return this._events}get routerState(){return this.stateManager.getRouterState()}subscribeToNavigationEvents(){const r=this.navigationTransitions.events.subscribe(s=>{try{const o=this.navigationTransitions.currentTransition,a=this.navigationTransitions.currentNavigation;if(o!==null&&a!==null){if(this.stateManager.handleRouterEvent(s,a),s instanceof oi&&s.code!==Lt.Redirect&&s.code!==Lt.SupersededByNewNavigation)this.navigated=!0;else if(s instanceof sr)this.navigated=!0;else if(s instanceof oc){const c=s.navigationBehaviorOptions,u=this.urlHandlingStrategy.merge(s.url,o.currentRawUrl),h={browserUrl:o.extras.browserUrl,info:o.extras.info,skipLocationChange:o.extras.skipLocationChange,replaceUrl:o.extras.replaceUrl||this.urlUpdateStrategy==="eager"||lj(o.source),...c};this.scheduleNavigation(u,go,null,h,{resolve:o.resolve,reject:o.reject,promise:o.promise})}}yj(s)&&this._events.next(s)}catch(o){this.navigationTransitions.transitionAbortSubject.next(o)}});this.eventsSubscription.add(r)}resetRootComponentType(r){this.routerState.root.component=r,this.navigationTransitions.rootComponentType=r}initialNavigation(){this.setUpLocationChangeListener(),this.navigationTransitions.hasRequestedNavigation||this.navigateToSyncWithBrowser(this.location.path(!0),go,this.stateManager.restoredState())}setUpLocationChangeListener(){this.nonRouterCurrentEntryChangeSubscription??(this.nonRouterCurrentEntryChangeSubscription=this.stateManager.registerNonRouterCurrentEntryChangeListener((r,s)=>{setTimeout(()=>{this.navigateToSyncWithBrowser(r,"popstate",s)},0)}))}navigateToSyncWithBrowser(r,s,o){const a={replaceUrl:!0},c=o?.navigationId?o:null;if(o){const h={...o};delete h.navigationId,delete h.ɵrouterPageId,Object.keys(h).length!==0&&(a.state=h)}const u=this.parseUrl(r);this.scheduleNavigation(u,s,c,a)}get url(){return this.serializeUrl(this.currentUrlTree)}getCurrentNavigation(){return this.navigationTransitions.currentNavigation}get lastSuccessfulNavigation(){return this.navigationTransitions.lastSuccessfulNavigation}resetConfig(r){this.config=r.map($m),this.navigated=!1}ngOnDestroy(){this.dispose()}dispose(){this.navigationTransitions.complete(),this.nonRouterCurrentEntryChangeSubscription&&(this.nonRouterCurrentEntryChangeSubscription.unsubscribe(),this.nonRouterCurrentEntryChangeSubscription=void 0),this.disposed=!0,this.eventsSubscription.unsubscribe()}createUrlTree(r,s={}){const{relativeTo:o,queryParams:a,fragment:c,queryParamsHandling:u,preserveFragment:h}=s,f=h?this.currentUrlTree.fragment:c;let d=null;switch(u??this.options.defaultQueryParamsHandling){case"merge":d={...this.currentUrlTree.queryParams,...a};break;case"preserve":d=this.currentUrlTree.queryParams;break;default:d=a||null}d!==null&&(d=this.removeEmptyProps(d));let p;try{const m=o?o.snapshot:this.routerState.snapshot.root;p=kS(m)}catch{(typeof r[0]!="string"||r[0][0]!=="/")&&(r=[]),p=this.currentUrlTree.root}return DS(p,r,d,f??null)}navigateByUrl(r,s={skipLocationChange:!1}){const o=bi(r)?r:this.parseUrl(r),a=this.urlHandlingStrategy.merge(o,this.rawUrlTree);return this.scheduleNavigation(a,go,null,s)}navigate(r,s={skipLocationChange:!1}){return gj(r),this.navigateByUrl(this.createUrlTree(r,s),s)}serializeUrl(r){return this.urlSerializer.serialize(r)}parseUrl(r){try{return this.urlSerializer.parse(r)}catch{return this.urlSerializer.parse("/")}}isActive(r,s){let o;if(s===!0?o={...pj}:s===!1?o={...mj}:o=s,bi(r))return I_(this.currentUrlTree,r,o);const a=this.parseUrl(r);return I_(this.currentUrlTree,a,o)}removeEmptyProps(r){return Object.entries(r).reduce((s,[o,a])=>(a!=null&&(s[o]=a),s),{})}scheduleNavigation(r,s,o,a,c){if(this.disposed)return Promise.resolve(!1);let u,h,f;c?(u=c.resolve,h=c.reject,f=c.promise):f=new Promise((p,m)=>{u=p,h=m});const d=this.pendingTasks.add();return dj(this,()=>{queueMicrotask(()=>this.pendingTasks.remove(d))}),this.navigationTransitions.handleNavigationRequest({source:s,restoredState:o,currentUrlTree:this.currentUrlTree,currentRawUrl:this.currentUrlTree,rawUrl:r,extras:a,resolve:u,reject:h,promise:f,currentSnapshot:this.routerState.snapshot,currentRouterState:this.routerState}),f.catch(p=>Promise.reject(p))}};l(n,"ɵfac",function(s){return new(s||n)}),l(n,"ɵprov",O({token:n,factory:n.ɵfac,providedIn:"root"}));let e=n;return e})();function gj(t){for(let e=0;e{const n=class n{constructor(r,s,o,a,c,u){l(this,"router");l(this,"route");l(this,"tabIndexAttribute");l(this,"renderer");l(this,"el");l(this,"locationStrategy");l(this,"href",null);l(this,"target");l(this,"queryParams");l(this,"fragment");l(this,"queryParamsHandling");l(this,"state");l(this,"info");l(this,"relativeTo");l(this,"isAnchorElement");l(this,"subscription");l(this,"onChanges",new oe);l(this,"preserveFragment",!1);l(this,"skipLocationChange",!1);l(this,"replaceUrl",!1);l(this,"routerLinkInput",null);this.router=r,this.route=s,this.tabIndexAttribute=o,this.renderer=a,this.el=c,this.locationStrategy=u;const h=c.nativeElement.tagName?.toLowerCase();this.isAnchorElement=h==="a"||h==="area",this.isAnchorElement?this.subscription=r.events.subscribe(f=>{f instanceof sr&&this.updateHref()}):this.setTabIndexIfNotOnNativeEl("0")}setTabIndexIfNotOnNativeEl(r){this.tabIndexAttribute!=null||this.isAnchorElement||this.applyAttributeValue("tabindex",r)}ngOnChanges(r){this.isAnchorElement&&this.updateHref(),this.onChanges.next(this)}set routerLink(r){r==null?(this.routerLinkInput=null,this.setTabIndexIfNotOnNativeEl(null)):(bi(r)?this.routerLinkInput=r:this.routerLinkInput=Array.isArray(r)?r:[r],this.setTabIndexIfNotOnNativeEl("0"))}onClick(r,s,o,a,c){const u=this.urlTree;if(u===null||this.isAnchorElement&&(r!==0||s||o||a||c||typeof this.target=="string"&&this.target!="_self"))return!0;const h={skipLocationChange:this.skipLocationChange,replaceUrl:this.replaceUrl,state:this.state,info:this.info};return this.router.navigateByUrl(u,h),!this.isAnchorElement}ngOnDestroy(){this.subscription?.unsubscribe()}updateHref(){const r=this.urlTree;this.href=r!==null&&this.locationStrategy?this.locationStrategy?.prepareExternalUrl(this.router.serializeUrl(r)):null;const s=this.href===null?null:zR(this.href,this.el.nativeElement.tagName.toLowerCase());this.applyAttributeValue("href",s)}applyAttributeValue(r,s){const o=this.renderer,a=this.el.nativeElement;s!==null?o.setAttribute(a,r,s):o.removeAttribute(a,r)}get urlTree(){return this.routerLinkInput===null?null:bi(this.routerLinkInput)?this.routerLinkInput:this.router.createUrlTree(this.routerLinkInput,{relativeTo:this.relativeTo!==void 0?this.relativeTo:this.route,queryParams:this.queryParams,fragment:this.fragment,queryParamsHandling:this.queryParamsHandling,preserveFragment:this.preserveFragment})}};l(n,"ɵfac",function(s){return new(s||n)(Ce(Fi),Ce(Vr),ZI("tabindex"),Ce(zs),Ce(qe),Ce(vu))}),l(n,"ɵdir",Ge({type:n,selectors:[["","routerLink",""]],hostVars:1,hostBindings:function(s,o){s&1&&mt("click",function(c){return o.onClick(c.button,c.ctrlKey,c.shiftKey,c.altKey,c.metaKey)}),s&2&&Hs("target",o.target)},inputs:{target:"target",queryParams:"queryParams",fragment:"fragment",queryParamsHandling:"queryParamsHandling",state:"state",info:"info",relativeTo:"relativeTo",preserveFragment:[2,"preserveFragment","preserveFragment",Ot],skipLocationChange:[2,"skipLocationChange","skipLocationChange",Ot],replaceUrl:[2,"replaceUrl","replaceUrl",Ot],routerLink:"routerLink"},features:[ca,Ht]}));let e=n;return e})(),D7=(()=>{const n=class n{constructor(r,s,o,a,c){l(this,"router");l(this,"element");l(this,"renderer");l(this,"cdr");l(this,"link");l(this,"links");l(this,"classes",[]);l(this,"routerEventsSubscription");l(this,"linkInputChangesSubscription");l(this,"_isActive",!1);l(this,"routerLinkActiveOptions",{exact:!1});l(this,"ariaCurrentWhenActive");l(this,"isActiveChange",new Ue);this.router=r,this.element=s,this.renderer=o,this.cdr=a,this.link=c,this.routerEventsSubscription=r.events.subscribe(u=>{u instanceof sr&&this.update()})}get isActive(){return this._isActive}ngAfterContentInit(){G(this.links.changes,G(null)).pipe(Pl()).subscribe(r=>{this.update(),this.subscribeToEachLinkOnChanges()})}subscribeToEachLinkOnChanges(){this.linkInputChangesSubscription?.unsubscribe();const r=[...this.links.toArray(),this.link].filter(s=>!!s).map(s=>s.onChanges);this.linkInputChangesSubscription=ot(r).pipe(Pl()).subscribe(s=>{this._isActive!==this.isLinkActive(this.router)(s)&&this.update()})}set routerLinkActive(r){const s=Array.isArray(r)?r:r.split(" ");this.classes=s.filter(o=>!!o)}ngOnChanges(r){this.update()}ngOnDestroy(){this.routerEventsSubscription.unsubscribe(),this.linkInputChangesSubscription?.unsubscribe()}update(){!this.links||!this.router.navigated||queueMicrotask(()=>{const r=this.hasActiveLinks();this.classes.forEach(s=>{r?this.renderer.addClass(this.element.nativeElement,s):this.renderer.removeClass(this.element.nativeElement,s)}),r&&this.ariaCurrentWhenActive!==void 0?this.renderer.setAttribute(this.element.nativeElement,"aria-current",this.ariaCurrentWhenActive.toString()):this.renderer.removeAttribute(this.element.nativeElement,"aria-current"),this._isActive!==r&&(this._isActive=r,this.cdr.markForCheck(),this.isActiveChange.emit(r))})}isLinkActive(r){const s=_j(this.routerLinkActiveOptions)?this.routerLinkActiveOptions:this.routerLinkActiveOptions.exact||!1;return o=>{const a=o.urlTree;return a?r.isActive(a,s):!1}}hasActiveLinks(){const r=this.isLinkActive(this.router);return this.link&&r(this.link)||this.links.some(r)}};l(n,"ɵfac",function(s){return new(s||n)(Ce(Fi),Ce(qe),Ce(zs),Ce(Us),Ce(Bo,8))}),l(n,"ɵdir",Ge({type:n,selectors:[["","routerLinkActive",""]],contentQueries:function(s,o,a){if(s&1&&P2(a,Bo,5),s&2){let c;yu(c=_u())&&(o.links=c)}},inputs:{routerLinkActiveOptions:"routerLinkActiveOptions",ariaCurrentWhenActive:"ariaCurrentWhenActive",routerLinkActive:"routerLinkActive"},outputs:{isActiveChange:"isActiveChange"},exportAs:["routerLinkActive"],features:[Ht]}));let e=n;return e})();function _j(t){return!!t.paths}const vj=new B("");function bj(t,...e){return Xo([{provide:Wm,multi:!0,useValue:t},[],{provide:Vr,useFactory:Ej,deps:[Fi]},{provide:mu,multi:!0,useFactory:wj},e.map(n=>n.ɵproviders)])}function Ej(t){return t.routerState.root}function wj(){const t=g(gt);return e=>{const n=t.get(Mn);if(e!==n.components[0])return;const i=t.get(Fi),r=t.get(Cj);t.get(Sj)===1&&i.initialNavigation(),t.get(Tj,null,ve.Optional)?.setUpPreloading(),t.get(vj,null,ve.Optional)?.init(),i.resetRootComponentType(n.componentTypes[0]),r.closed||(r.next(),r.complete(),r.unsubscribe())}}const Cj=new B("",{factory:()=>new oe}),Sj=new B("",{providedIn:"root",factory:()=>1}),Tj=new B("");/*! + * Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com + * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) + * Copyright 2024 Fonticons, Inc. + */function Aj(t,e,n){return(e=Dj(e))in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function B_(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);e&&(i=i.filter(function(r){return Object.getOwnPropertyDescriptor(t,r).enumerable})),n.push.apply(n,i)}return n}function I(t){for(var e=1;e{};let qm={},KS={},QS=null,XS={mark:j_,measure:j_};try{typeof window<"u"&&(qm=window),typeof document<"u"&&(KS=document),typeof MutationObserver<"u"&&(QS=MutationObserver),typeof performance<"u"&&(XS=performance)}catch{}const{userAgent:z_=""}=qm.navigator||{},Rr=qm,ze=KS,H_=QS,$a=XS;Rr.document;const dr=!!ze.documentElement&&!!ze.head&&typeof ze.addEventListener=="function"&&typeof ze.createElement=="function",JS=~z_.indexOf("MSIE")||~z_.indexOf("Trident/");var Ij=/fa(s|r|l|t|d|dr|dl|dt|b|k|kd|ss|sr|sl|st|sds|sdr|sdl|sdt)?[\-\ ]/,xj=/Font ?Awesome ?([56 ]*)(Solid|Regular|Light|Thin|Duotone|Brands|Free|Pro|Sharp Duotone|Sharp|Kit)?.*/i,eT={classic:{fa:"solid",fas:"solid","fa-solid":"solid",far:"regular","fa-regular":"regular",fal:"light","fa-light":"light",fat:"thin","fa-thin":"thin",fab:"brands","fa-brands":"brands"},duotone:{fa:"solid",fad:"solid","fa-solid":"solid","fa-duotone":"solid",fadr:"regular","fa-regular":"regular",fadl:"light","fa-light":"light",fadt:"thin","fa-thin":"thin"},sharp:{fa:"solid",fass:"solid","fa-solid":"solid",fasr:"regular","fa-regular":"regular",fasl:"light","fa-light":"light",fast:"thin","fa-thin":"thin"},"sharp-duotone":{fa:"solid",fasds:"solid","fa-solid":"solid",fasdr:"regular","fa-regular":"regular",fasdl:"light","fa-light":"light",fasdt:"thin","fa-thin":"thin"}},Rj={GROUP:"duotone-group",SWAP_OPACITY:"swap-opacity",PRIMARY:"primary",SECONDARY:"secondary"},tT=["fa-classic","fa-duotone","fa-sharp","fa-sharp-duotone"],yt="classic",ku="duotone",Fj="sharp",Oj="sharp-duotone",nT=[yt,ku,Fj,Oj],Pj={classic:{900:"fas",400:"far",normal:"far",300:"fal",100:"fat"},duotone:{900:"fad",400:"fadr",300:"fadl",100:"fadt"},sharp:{900:"fass",400:"fasr",300:"fasl",100:"fast"},"sharp-duotone":{900:"fasds",400:"fasdr",300:"fasdl",100:"fasdt"}},Nj={"Font Awesome 6 Free":{900:"fas",400:"far"},"Font Awesome 6 Pro":{900:"fas",400:"far",normal:"far",300:"fal",100:"fat"},"Font Awesome 6 Brands":{400:"fab",normal:"fab"},"Font Awesome 6 Duotone":{900:"fad",400:"fadr",normal:"fadr",300:"fadl",100:"fadt"},"Font Awesome 6 Sharp":{900:"fass",400:"fasr",normal:"fasr",300:"fasl",100:"fast"},"Font Awesome 6 Sharp Duotone":{900:"fasds",400:"fasdr",normal:"fasdr",300:"fasdl",100:"fasdt"}},Lj=new Map([["classic",{defaultShortPrefixId:"fas",defaultStyleId:"solid",styleIds:["solid","regular","light","thin","brands"],futureStyleIds:[],defaultFontWeight:900}],["sharp",{defaultShortPrefixId:"fass",defaultStyleId:"solid",styleIds:["solid","regular","light","thin"],futureStyleIds:[],defaultFontWeight:900}],["duotone",{defaultShortPrefixId:"fad",defaultStyleId:"solid",styleIds:["solid","regular","light","thin"],futureStyleIds:[],defaultFontWeight:900}],["sharp-duotone",{defaultShortPrefixId:"fasds",defaultStyleId:"solid",styleIds:["solid","regular","light","thin"],futureStyleIds:[],defaultFontWeight:900}]]),Mj={classic:{solid:"fas",regular:"far",light:"fal",thin:"fat",brands:"fab"},duotone:{solid:"fad",regular:"fadr",light:"fadl",thin:"fadt"},sharp:{solid:"fass",regular:"fasr",light:"fasl",thin:"fast"},"sharp-duotone":{solid:"fasds",regular:"fasdr",light:"fasdl",thin:"fasdt"}},Bj=["fak","fa-kit","fakd","fa-kit-duotone"],U_={kit:{fak:"kit","fa-kit":"kit"},"kit-duotone":{fakd:"kit-duotone","fa-kit-duotone":"kit-duotone"}},jj=["kit"],zj={kit:{"fa-kit":"fak"},"kit-duotone":{"fa-kit-duotone":"fakd"}},Hj=["fak","fakd"],Uj={kit:{fak:"fa-kit"},"kit-duotone":{fakd:"fa-kit-duotone"}},V_={kit:{kit:"fak"},"kit-duotone":{"kit-duotone":"fakd"}},Wa={GROUP:"duotone-group",SWAP_OPACITY:"swap-opacity",PRIMARY:"primary",SECONDARY:"secondary"},Vj=["fa-classic","fa-duotone","fa-sharp","fa-sharp-duotone"],$j=["fak","fa-kit","fakd","fa-kit-duotone"],Wj={"Font Awesome Kit":{400:"fak",normal:"fak"},"Font Awesome Kit Duotone":{400:"fakd",normal:"fakd"}},Gj={classic:{"fa-brands":"fab","fa-duotone":"fad","fa-light":"fal","fa-regular":"far","fa-solid":"fas","fa-thin":"fat"},duotone:{"fa-regular":"fadr","fa-light":"fadl","fa-thin":"fadt"},sharp:{"fa-solid":"fass","fa-regular":"fasr","fa-light":"fasl","fa-thin":"fast"},"sharp-duotone":{"fa-solid":"fasds","fa-regular":"fasdr","fa-light":"fasdl","fa-thin":"fasdt"}},qj={classic:["fas","far","fal","fat","fad"],duotone:["fadr","fadl","fadt"],sharp:["fass","fasr","fasl","fast"],"sharp-duotone":["fasds","fasdr","fasdl","fasdt"]},ed={classic:{fab:"fa-brands",fad:"fa-duotone",fal:"fa-light",far:"fa-regular",fas:"fa-solid",fat:"fa-thin"},duotone:{fadr:"fa-regular",fadl:"fa-light",fadt:"fa-thin"},sharp:{fass:"fa-solid",fasr:"fa-regular",fasl:"fa-light",fast:"fa-thin"},"sharp-duotone":{fasds:"fa-solid",fasdr:"fa-regular",fasdl:"fa-light",fasdt:"fa-thin"}},Zj=["fa-solid","fa-regular","fa-light","fa-thin","fa-duotone","fa-brands"],td=["fa","fas","far","fal","fat","fad","fadr","fadl","fadt","fab","fass","fasr","fasl","fast","fasds","fasdr","fasdl","fasdt",...Vj,...Zj],Yj=["solid","regular","light","thin","duotone","brands"],rT=[1,2,3,4,5,6,7,8,9,10],Kj=rT.concat([11,12,13,14,15,16,17,18,19,20]),Qj=[...Object.keys(qj),...Yj,"2xs","xs","sm","lg","xl","2xl","beat","border","fade","beat-fade","bounce","flip-both","flip-horizontal","flip-vertical","flip","fw","inverse","layers-counter","layers-text","layers","li","pull-left","pull-right","pulse","rotate-180","rotate-270","rotate-90","rotate-by","shake","spin-pulse","spin-reverse","spin","stack-1x","stack-2x","stack","ul",Wa.GROUP,Wa.SWAP_OPACITY,Wa.PRIMARY,Wa.SECONDARY].concat(rT.map(t=>"".concat(t,"x"))).concat(Kj.map(t=>"w-".concat(t))),Xj={"Font Awesome 5 Free":{900:"fas",400:"far"},"Font Awesome 5 Pro":{900:"fas",400:"far",normal:"far",300:"fal"},"Font Awesome 5 Brands":{400:"fab",normal:"fab"},"Font Awesome 5 Duotone":{900:"fad"}};const or="___FONT_AWESOME___",nd=16,iT="fa",sT="svg-inline--fa",Ei="data-fa-i2svg",rd="data-fa-pseudo-element",Jj="data-fa-pseudo-element-pending",Zm="data-prefix",Ym="data-icon",$_="fontawesome-i2svg",ez="async",tz=["HTML","HEAD","STYLE","SCRIPT"],oT=(()=>{try{return!0}catch{return!1}})();function ma(t){return new Proxy(t,{get(e,n){return n in e?e[n]:e[yt]}})}const aT=I({},eT);aT[yt]=I(I(I(I({},{"fa-duotone":"duotone"}),eT[yt]),U_.kit),U_["kit-duotone"]);const nz=ma(aT),id=I({},Mj);id[yt]=I(I(I(I({},{duotone:"fad"}),id[yt]),V_.kit),V_["kit-duotone"]);const W_=ma(id),sd=I({},ed);sd[yt]=I(I({},sd[yt]),Uj.kit);const Km=ma(sd),od=I({},Gj);od[yt]=I(I({},od[yt]),zj.kit);ma(od);const rz=Ij,lT="fa-layers-text",iz=xj,sz=I({},Pj);ma(sz);const oz=["class","data-prefix","data-icon","data-fa-transform","data-fa-mask"],kh=Rj,az=[...jj,...Qj],_o=Rr.FontAwesomeConfig||{};function lz(t){var e=ze.querySelector("script["+t+"]");if(e)return e.getAttribute(t)}function cz(t){return t===""?!0:t==="false"?!1:t==="true"?!0:t}ze&&typeof ze.querySelector=="function"&&[["data-family-prefix","familyPrefix"],["data-css-prefix","cssPrefix"],["data-family-default","familyDefault"],["data-style-default","styleDefault"],["data-replacement-class","replacementClass"],["data-auto-replace-svg","autoReplaceSvg"],["data-auto-add-css","autoAddCss"],["data-auto-a11y","autoA11y"],["data-search-pseudo-elements","searchPseudoElements"],["data-observe-mutations","observeMutations"],["data-mutate-approach","mutateApproach"],["data-keep-original-source","keepOriginalSource"],["data-measure-performance","measurePerformance"],["data-show-missing-icons","showMissingIcons"]].forEach(e=>{let[n,i]=e;const r=cz(lz(n));r!=null&&(_o[i]=r)});const cT={styleDefault:"solid",familyDefault:yt,cssPrefix:iT,replacementClass:sT,autoReplaceSvg:!0,autoAddCss:!0,autoA11y:!0,searchPseudoElements:!1,observeMutations:!0,mutateApproach:"async",keepOriginalSource:!0,measurePerformance:!1,showMissingIcons:!0};_o.familyPrefix&&(_o.cssPrefix=_o.familyPrefix);const ks=I(I({},cT),_o);ks.autoReplaceSvg||(ks.observeMutations=!1);const V={};Object.keys(cT).forEach(t=>{Object.defineProperty(V,t,{enumerable:!0,set:function(e){ks[t]=e,vo.forEach(n=>n(V))},get:function(){return ks[t]}})});Object.defineProperty(V,"familyPrefix",{enumerable:!0,set:function(t){ks.cssPrefix=t,vo.forEach(e=>e(V))},get:function(){return ks.cssPrefix}});Rr.FontAwesomeConfig=V;const vo=[];function uz(t){return vo.push(t),()=>{vo.splice(vo.indexOf(t),1)}}const mr=nd,In={size:16,x:0,y:0,rotate:0,flipX:!1,flipY:!1};function hz(t){if(!t||!dr)return;const e=ze.createElement("style");e.setAttribute("type","text/css"),e.innerHTML=t;const n=ze.head.childNodes;let i=null;for(let r=n.length-1;r>-1;r--){const s=n[r],o=(s.tagName||"").toUpperCase();["STYLE","LINK"].indexOf(o)>-1&&(i=s)}return ze.head.insertBefore(e,i),t}const fz="0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";function jo(){let t=12,e="";for(;t-- >0;)e+=fz[Math.random()*62|0];return e}function Gs(t){const e=[];for(let n=(t||[]).length>>>0;n--;)e[n]=t[n];return e}function Qm(t){return t.classList?Gs(t.classList):(t.getAttribute("class")||"").split(" ").filter(e=>e)}function uT(t){return"".concat(t).replace(/&/g,"&").replace(/"/g,""").replace(/'/g,"'").replace(//g,">")}function dz(t){return Object.keys(t||{}).reduce((e,n)=>e+"".concat(n,'="').concat(uT(t[n]),'" '),"").trim()}function Du(t){return Object.keys(t||{}).reduce((e,n)=>e+"".concat(n,": ").concat(t[n].trim(),";"),"")}function Xm(t){return t.size!==In.size||t.x!==In.x||t.y!==In.y||t.rotate!==In.rotate||t.flipX||t.flipY}function pz(t){let{transform:e,containerWidth:n,iconWidth:i}=t;const r={transform:"translate(".concat(n/2," 256)")},s="translate(".concat(e.x*32,", ").concat(e.y*32,") "),o="scale(".concat(e.size/16*(e.flipX?-1:1),", ").concat(e.size/16*(e.flipY?-1:1),") "),a="rotate(".concat(e.rotate," 0 0)"),c={transform:"".concat(s," ").concat(o," ").concat(a)},u={transform:"translate(".concat(i/2*-1," -256)")};return{outer:r,inner:c,path:u}}function mz(t){let{transform:e,width:n=nd,height:i=nd,startCentered:r=!1}=t,s="";return r&&JS?s+="translate(".concat(e.x/mr-n/2,"em, ").concat(e.y/mr-i/2,"em) "):r?s+="translate(calc(-50% + ".concat(e.x/mr,"em), calc(-50% + ").concat(e.y/mr,"em)) "):s+="translate(".concat(e.x/mr,"em, ").concat(e.y/mr,"em) "),s+="scale(".concat(e.size/mr*(e.flipX?-1:1),", ").concat(e.size/mr*(e.flipY?-1:1),") "),s+="rotate(".concat(e.rotate,"deg) "),s}var gz=`:root, :host { + --fa-font-solid: normal 900 1em/1 "Font Awesome 6 Free"; + --fa-font-regular: normal 400 1em/1 "Font Awesome 6 Free"; + --fa-font-light: normal 300 1em/1 "Font Awesome 6 Pro"; + --fa-font-thin: normal 100 1em/1 "Font Awesome 6 Pro"; + --fa-font-duotone: normal 900 1em/1 "Font Awesome 6 Duotone"; + --fa-font-duotone-regular: normal 400 1em/1 "Font Awesome 6 Duotone"; + --fa-font-duotone-light: normal 300 1em/1 "Font Awesome 6 Duotone"; + --fa-font-duotone-thin: normal 100 1em/1 "Font Awesome 6 Duotone"; + --fa-font-brands: normal 400 1em/1 "Font Awesome 6 Brands"; + --fa-font-sharp-solid: normal 900 1em/1 "Font Awesome 6 Sharp"; + --fa-font-sharp-regular: normal 400 1em/1 "Font Awesome 6 Sharp"; + --fa-font-sharp-light: normal 300 1em/1 "Font Awesome 6 Sharp"; + --fa-font-sharp-thin: normal 100 1em/1 "Font Awesome 6 Sharp"; + --fa-font-sharp-duotone-solid: normal 900 1em/1 "Font Awesome 6 Sharp Duotone"; + --fa-font-sharp-duotone-regular: normal 400 1em/1 "Font Awesome 6 Sharp Duotone"; + --fa-font-sharp-duotone-light: normal 300 1em/1 "Font Awesome 6 Sharp Duotone"; + --fa-font-sharp-duotone-thin: normal 100 1em/1 "Font Awesome 6 Sharp Duotone"; +} + +svg:not(:root).svg-inline--fa, svg:not(:host).svg-inline--fa { + overflow: visible; + box-sizing: content-box; +} + +.svg-inline--fa { + display: var(--fa-display, inline-block); + height: 1em; + overflow: visible; + vertical-align: -0.125em; +} +.svg-inline--fa.fa-2xs { + vertical-align: 0.1em; +} +.svg-inline--fa.fa-xs { + vertical-align: 0em; +} +.svg-inline--fa.fa-sm { + vertical-align: -0.0714285705em; +} +.svg-inline--fa.fa-lg { + vertical-align: -0.2em; +} +.svg-inline--fa.fa-xl { + vertical-align: -0.25em; +} +.svg-inline--fa.fa-2xl { + vertical-align: -0.3125em; +} +.svg-inline--fa.fa-pull-left { + margin-right: var(--fa-pull-margin, 0.3em); + width: auto; +} +.svg-inline--fa.fa-pull-right { + margin-left: var(--fa-pull-margin, 0.3em); + width: auto; +} +.svg-inline--fa.fa-li { + width: var(--fa-li-width, 2em); + top: 0.25em; +} +.svg-inline--fa.fa-fw { + width: var(--fa-fw-width, 1.25em); +} + +.fa-layers svg.svg-inline--fa { + bottom: 0; + left: 0; + margin: auto; + position: absolute; + right: 0; + top: 0; +} + +.fa-layers-counter, .fa-layers-text { + display: inline-block; + position: absolute; + text-align: center; +} + +.fa-layers { + display: inline-block; + height: 1em; + position: relative; + text-align: center; + vertical-align: -0.125em; + width: 1em; +} +.fa-layers svg.svg-inline--fa { + transform-origin: center center; +} + +.fa-layers-text { + left: 50%; + top: 50%; + transform: translate(-50%, -50%); + transform-origin: center center; +} + +.fa-layers-counter { + background-color: var(--fa-counter-background-color, #ff253a); + border-radius: var(--fa-counter-border-radius, 1em); + box-sizing: border-box; + color: var(--fa-inverse, #fff); + line-height: var(--fa-counter-line-height, 1); + max-width: var(--fa-counter-max-width, 5em); + min-width: var(--fa-counter-min-width, 1.5em); + overflow: hidden; + padding: var(--fa-counter-padding, 0.25em 0.5em); + right: var(--fa-right, 0); + text-overflow: ellipsis; + top: var(--fa-top, 0); + transform: scale(var(--fa-counter-scale, 0.25)); + transform-origin: top right; +} + +.fa-layers-bottom-right { + bottom: var(--fa-bottom, 0); + right: var(--fa-right, 0); + top: auto; + transform: scale(var(--fa-layers-scale, 0.25)); + transform-origin: bottom right; +} + +.fa-layers-bottom-left { + bottom: var(--fa-bottom, 0); + left: var(--fa-left, 0); + right: auto; + top: auto; + transform: scale(var(--fa-layers-scale, 0.25)); + transform-origin: bottom left; +} + +.fa-layers-top-right { + top: var(--fa-top, 0); + right: var(--fa-right, 0); + transform: scale(var(--fa-layers-scale, 0.25)); + transform-origin: top right; +} + +.fa-layers-top-left { + left: var(--fa-left, 0); + right: auto; + top: var(--fa-top, 0); + transform: scale(var(--fa-layers-scale, 0.25)); + transform-origin: top left; +} + +.fa-1x { + font-size: 1em; +} + +.fa-2x { + font-size: 2em; +} + +.fa-3x { + font-size: 3em; +} + +.fa-4x { + font-size: 4em; +} + +.fa-5x { + font-size: 5em; +} + +.fa-6x { + font-size: 6em; +} + +.fa-7x { + font-size: 7em; +} + +.fa-8x { + font-size: 8em; +} + +.fa-9x { + font-size: 9em; +} + +.fa-10x { + font-size: 10em; +} + +.fa-2xs { + font-size: 0.625em; + line-height: 0.1em; + vertical-align: 0.225em; +} + +.fa-xs { + font-size: 0.75em; + line-height: 0.0833333337em; + vertical-align: 0.125em; +} + +.fa-sm { + font-size: 0.875em; + line-height: 0.0714285718em; + vertical-align: 0.0535714295em; +} + +.fa-lg { + font-size: 1.25em; + line-height: 0.05em; + vertical-align: -0.075em; +} + +.fa-xl { + font-size: 1.5em; + line-height: 0.0416666682em; + vertical-align: -0.125em; +} + +.fa-2xl { + font-size: 2em; + line-height: 0.03125em; + vertical-align: -0.1875em; +} + +.fa-fw { + text-align: center; + width: 1.25em; +} + +.fa-ul { + list-style-type: none; + margin-left: var(--fa-li-margin, 2.5em); + padding-left: 0; +} +.fa-ul > li { + position: relative; +} + +.fa-li { + left: calc(-1 * var(--fa-li-width, 2em)); + position: absolute; + text-align: center; + width: var(--fa-li-width, 2em); + line-height: inherit; +} + +.fa-border { + border-color: var(--fa-border-color, #eee); + border-radius: var(--fa-border-radius, 0.1em); + border-style: var(--fa-border-style, solid); + border-width: var(--fa-border-width, 0.08em); + padding: var(--fa-border-padding, 0.2em 0.25em 0.15em); +} + +.fa-pull-left { + float: left; + margin-right: var(--fa-pull-margin, 0.3em); +} + +.fa-pull-right { + float: right; + margin-left: var(--fa-pull-margin, 0.3em); +} + +.fa-beat { + animation-name: fa-beat; + animation-delay: var(--fa-animation-delay, 0s); + animation-direction: var(--fa-animation-direction, normal); + animation-duration: var(--fa-animation-duration, 1s); + animation-iteration-count: var(--fa-animation-iteration-count, infinite); + animation-timing-function: var(--fa-animation-timing, ease-in-out); +} + +.fa-bounce { + animation-name: fa-bounce; + animation-delay: var(--fa-animation-delay, 0s); + animation-direction: var(--fa-animation-direction, normal); + animation-duration: var(--fa-animation-duration, 1s); + animation-iteration-count: var(--fa-animation-iteration-count, infinite); + animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.28, 0.84, 0.42, 1)); +} + +.fa-fade { + animation-name: fa-fade; + animation-delay: var(--fa-animation-delay, 0s); + animation-direction: var(--fa-animation-direction, normal); + animation-duration: var(--fa-animation-duration, 1s); + animation-iteration-count: var(--fa-animation-iteration-count, infinite); + animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.4, 0, 0.6, 1)); +} + +.fa-beat-fade { + animation-name: fa-beat-fade; + animation-delay: var(--fa-animation-delay, 0s); + animation-direction: var(--fa-animation-direction, normal); + animation-duration: var(--fa-animation-duration, 1s); + animation-iteration-count: var(--fa-animation-iteration-count, infinite); + animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.4, 0, 0.6, 1)); +} + +.fa-flip { + animation-name: fa-flip; + animation-delay: var(--fa-animation-delay, 0s); + animation-direction: var(--fa-animation-direction, normal); + animation-duration: var(--fa-animation-duration, 1s); + animation-iteration-count: var(--fa-animation-iteration-count, infinite); + animation-timing-function: var(--fa-animation-timing, ease-in-out); +} + +.fa-shake { + animation-name: fa-shake; + animation-delay: var(--fa-animation-delay, 0s); + animation-direction: var(--fa-animation-direction, normal); + animation-duration: var(--fa-animation-duration, 1s); + animation-iteration-count: var(--fa-animation-iteration-count, infinite); + animation-timing-function: var(--fa-animation-timing, linear); +} + +.fa-spin { + animation-name: fa-spin; + animation-delay: var(--fa-animation-delay, 0s); + animation-direction: var(--fa-animation-direction, normal); + animation-duration: var(--fa-animation-duration, 2s); + animation-iteration-count: var(--fa-animation-iteration-count, infinite); + animation-timing-function: var(--fa-animation-timing, linear); +} + +.fa-spin-reverse { + --fa-animation-direction: reverse; +} + +.fa-pulse, +.fa-spin-pulse { + animation-name: fa-spin; + animation-direction: var(--fa-animation-direction, normal); + animation-duration: var(--fa-animation-duration, 1s); + animation-iteration-count: var(--fa-animation-iteration-count, infinite); + animation-timing-function: var(--fa-animation-timing, steps(8)); +} + +@media (prefers-reduced-motion: reduce) { + .fa-beat, +.fa-bounce, +.fa-fade, +.fa-beat-fade, +.fa-flip, +.fa-pulse, +.fa-shake, +.fa-spin, +.fa-spin-pulse { + animation-delay: -1ms; + animation-duration: 1ms; + animation-iteration-count: 1; + transition-delay: 0s; + transition-duration: 0s; + } +} +@keyframes fa-beat { + 0%, 90% { + transform: scale(1); + } + 45% { + transform: scale(var(--fa-beat-scale, 1.25)); + } +} +@keyframes fa-bounce { + 0% { + transform: scale(1, 1) translateY(0); + } + 10% { + transform: scale(var(--fa-bounce-start-scale-x, 1.1), var(--fa-bounce-start-scale-y, 0.9)) translateY(0); + } + 30% { + transform: scale(var(--fa-bounce-jump-scale-x, 0.9), var(--fa-bounce-jump-scale-y, 1.1)) translateY(var(--fa-bounce-height, -0.5em)); + } + 50% { + transform: scale(var(--fa-bounce-land-scale-x, 1.05), var(--fa-bounce-land-scale-y, 0.95)) translateY(0); + } + 57% { + transform: scale(1, 1) translateY(var(--fa-bounce-rebound, -0.125em)); + } + 64% { + transform: scale(1, 1) translateY(0); + } + 100% { + transform: scale(1, 1) translateY(0); + } +} +@keyframes fa-fade { + 50% { + opacity: var(--fa-fade-opacity, 0.4); + } +} +@keyframes fa-beat-fade { + 0%, 100% { + opacity: var(--fa-beat-fade-opacity, 0.4); + transform: scale(1); + } + 50% { + opacity: 1; + transform: scale(var(--fa-beat-fade-scale, 1.125)); + } +} +@keyframes fa-flip { + 50% { + transform: rotate3d(var(--fa-flip-x, 0), var(--fa-flip-y, 1), var(--fa-flip-z, 0), var(--fa-flip-angle, -180deg)); + } +} +@keyframes fa-shake { + 0% { + transform: rotate(-15deg); + } + 4% { + transform: rotate(15deg); + } + 8%, 24% { + transform: rotate(-18deg); + } + 12%, 28% { + transform: rotate(18deg); + } + 16% { + transform: rotate(-22deg); + } + 20% { + transform: rotate(22deg); + } + 32% { + transform: rotate(-12deg); + } + 36% { + transform: rotate(12deg); + } + 40%, 100% { + transform: rotate(0deg); + } +} +@keyframes fa-spin { + 0% { + transform: rotate(0deg); + } + 100% { + transform: rotate(360deg); + } +} +.fa-rotate-90 { + transform: rotate(90deg); +} + +.fa-rotate-180 { + transform: rotate(180deg); +} + +.fa-rotate-270 { + transform: rotate(270deg); +} + +.fa-flip-horizontal { + transform: scale(-1, 1); +} + +.fa-flip-vertical { + transform: scale(1, -1); +} + +.fa-flip-both, +.fa-flip-horizontal.fa-flip-vertical { + transform: scale(-1, -1); +} + +.fa-rotate-by { + transform: rotate(var(--fa-rotate-angle, 0)); +} + +.fa-stack { + display: inline-block; + vertical-align: middle; + height: 2em; + position: relative; + width: 2.5em; +} + +.fa-stack-1x, +.fa-stack-2x { + bottom: 0; + left: 0; + margin: auto; + position: absolute; + right: 0; + top: 0; + z-index: var(--fa-stack-z-index, auto); +} + +.svg-inline--fa.fa-stack-1x { + height: 1em; + width: 1.25em; +} +.svg-inline--fa.fa-stack-2x { + height: 2em; + width: 2.5em; +} + +.fa-inverse { + color: var(--fa-inverse, #fff); +} + +.sr-only, +.fa-sr-only { + position: absolute; + width: 1px; + height: 1px; + padding: 0; + margin: -1px; + overflow: hidden; + clip: rect(0, 0, 0, 0); + white-space: nowrap; + border-width: 0; +} + +.sr-only-focusable:not(:focus), +.fa-sr-only-focusable:not(:focus) { + position: absolute; + width: 1px; + height: 1px; + padding: 0; + margin: -1px; + overflow: hidden; + clip: rect(0, 0, 0, 0); + white-space: nowrap; + border-width: 0; +} + +.svg-inline--fa .fa-primary { + fill: var(--fa-primary-color, currentColor); + opacity: var(--fa-primary-opacity, 1); +} + +.svg-inline--fa .fa-secondary { + fill: var(--fa-secondary-color, currentColor); + opacity: var(--fa-secondary-opacity, 0.4); +} + +.svg-inline--fa.fa-swap-opacity .fa-primary { + opacity: var(--fa-secondary-opacity, 0.4); +} + +.svg-inline--fa.fa-swap-opacity .fa-secondary { + opacity: var(--fa-primary-opacity, 1); +} + +.svg-inline--fa mask .fa-primary, +.svg-inline--fa mask .fa-secondary { + fill: black; +}`;function hT(){const t=iT,e=sT,n=V.cssPrefix,i=V.replacementClass;let r=gz;if(n!==t||i!==e){const s=new RegExp("\\.".concat(t,"\\-"),"g"),o=new RegExp("\\--".concat(t,"\\-"),"g"),a=new RegExp("\\.".concat(e),"g");r=r.replace(s,".".concat(n,"-")).replace(o,"--".concat(n,"-")).replace(a,".".concat(i))}return r}let G_=!1;function Dh(){V.autoAddCss&&!G_&&(hz(hT()),G_=!0)}var yz={mixout(){return{dom:{css:hT,insertCss:Dh}}},hooks(){return{beforeDOMElementCreation(){Dh()},beforeI2svg(){Dh()}}}};const ar=Rr||{};ar[or]||(ar[or]={});ar[or].styles||(ar[or].styles={});ar[or].hooks||(ar[or].hooks={});ar[or].shims||(ar[or].shims=[]);var xn=ar[or];const fT=[],dT=function(){ze.removeEventListener("DOMContentLoaded",dT),cc=1,fT.map(t=>t())};let cc=!1;dr&&(cc=(ze.documentElement.doScroll?/^loaded|^c/:/^loaded|^i|^c/).test(ze.readyState),cc||ze.addEventListener("DOMContentLoaded",dT));function _z(t){dr&&(cc?setTimeout(t,0):fT.push(t))}function ga(t){const{tag:e,attributes:n={},children:i=[]}=t;return typeof t=="string"?uT(t):"<".concat(e," ").concat(dz(n),">").concat(i.map(ga).join(""),"")}function q_(t,e,n){if(t&&t[e]&&t[e][n])return{prefix:e,iconName:n,icon:t[e][n]}}var Ih=function(e,n,i,r){var s=Object.keys(e),o=s.length,a=n,c,u,h;for(i===void 0?(c=1,h=e[s[0]]):(c=0,h=i);c=55296&&r<=56319&&n=55296&&i<=56319&&n>e+1&&(r=t.charCodeAt(e+1),r>=56320&&r<=57343)?(i-55296)*1024+r-56320+65536:i}function Z_(t){return Object.keys(t).reduce((e,n)=>{const i=t[n];return!!i.icon?e[i.iconName]=i.icon:e[n]=i,e},{})}function ld(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};const{skipHooks:i=!1}=n,r=Z_(e);typeof xn.hooks.addPack=="function"&&!i?xn.hooks.addPack(t,Z_(e)):xn.styles[t]=I(I({},xn.styles[t]||{}),r),t==="fas"&&ld("fa",e)}const{styles:zo,shims:Ez}=xn,pT=Object.keys(Km),wz=pT.reduce((t,e)=>(t[e]=Object.keys(Km[e]),t),{});let Jm=null,mT={},gT={},yT={},_T={},vT={};function Cz(t){return~az.indexOf(t)}function Sz(t,e){const n=e.split("-"),i=n[0],r=n.slice(1).join("-");return i===t&&r!==""&&!Cz(r)?r:null}const bT=()=>{const t=i=>Ih(zo,(r,s,o)=>(r[o]=Ih(s,i,{}),r),{});mT=t((i,r,s)=>(r[3]&&(i[r[3]]=s),r[2]&&r[2].filter(a=>typeof a=="number").forEach(a=>{i[a.toString(16)]=s}),i)),gT=t((i,r,s)=>(i[s]=s,r[2]&&r[2].filter(a=>typeof a=="string").forEach(a=>{i[a]=s}),i)),vT=t((i,r,s)=>{const o=r[2];return i[s]=s,o.forEach(a=>{i[a]=s}),i});const e="far"in zo||V.autoFetchSvg,n=Ih(Ez,(i,r)=>{const s=r[0];let o=r[1];const a=r[2];return o==="far"&&!e&&(o="fas"),typeof s=="string"&&(i.names[s]={prefix:o,iconName:a}),typeof s=="number"&&(i.unicodes[s.toString(16)]={prefix:o,iconName:a}),i},{names:{},unicodes:{}});yT=n.names,_T=n.unicodes,Jm=Iu(V.styleDefault,{family:V.familyDefault})};uz(t=>{Jm=Iu(t.styleDefault,{family:V.familyDefault})});bT();function eg(t,e){return(mT[t]||{})[e]}function Tz(t,e){return(gT[t]||{})[e]}function ti(t,e){return(vT[t]||{})[e]}function ET(t){return yT[t]||{prefix:null,iconName:null}}function Az(t){const e=_T[t],n=eg("fas",t);return e||(n?{prefix:"fas",iconName:n}:null)||{prefix:null,iconName:null}}function Fr(){return Jm}const wT=()=>({prefix:null,iconName:null,rest:[]});function kz(t){let e=yt;const n=pT.reduce((i,r)=>(i[r]="".concat(V.cssPrefix,"-").concat(r),i),{});return nT.forEach(i=>{(t.includes(n[i])||t.some(r=>wz[i].includes(r)))&&(e=i)}),e}function Iu(t){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};const{family:n=yt}=e,i=nz[n][t];if(n===ku&&!t)return"fad";const r=W_[n][t]||W_[n][i],s=t in xn.styles?t:null;return r||s||null}function Dz(t){let e=[],n=null;return t.forEach(i=>{const r=Sz(V.cssPrefix,i);r?n=r:i&&e.push(i)}),{iconName:n,rest:e}}function Y_(t){return t.sort().filter((e,n,i)=>i.indexOf(e)===n)}function xu(t){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};const{skipLookups:n=!1}=e;let i=null;const r=td.concat($j),s=Y_(t.filter(f=>r.includes(f))),o=Y_(t.filter(f=>!td.includes(f))),a=s.filter(f=>(i=f,!tT.includes(f))),[c=null]=a,u=kz(s),h=I(I({},Dz(o)),{},{prefix:Iu(c,{family:u})});return I(I(I({},h),Fz({values:t,family:u,styles:zo,config:V,canonical:h,givenPrefix:i})),Iz(n,i,h))}function Iz(t,e,n){let{prefix:i,iconName:r}=n;if(t||!i||!r)return{prefix:i,iconName:r};const s=e==="fa"?ET(r):{},o=ti(i,r);return r=s.iconName||o||r,i=s.prefix||i,i==="far"&&!zo.far&&zo.fas&&!V.autoFetchSvg&&(i="fas"),{prefix:i,iconName:r}}const xz=nT.filter(t=>t!==yt||t!==ku),Rz=Object.keys(ed).filter(t=>t!==yt).map(t=>Object.keys(ed[t])).flat();function Fz(t){const{values:e,family:n,canonical:i,givenPrefix:r="",styles:s={},config:o={}}=t,a=n===ku,c=e.includes("fa-duotone")||e.includes("fad"),u=o.familyDefault==="duotone",h=i.prefix==="fad"||i.prefix==="fa-duotone";if(!a&&(c||u||h)&&(i.prefix="fad"),(e.includes("fa-brands")||e.includes("fab"))&&(i.prefix="fab"),!i.prefix&&xz.includes(n)&&(Object.keys(s).find(d=>Rz.includes(d))||o.autoFetchSvg)){const d=Lj.get(n).defaultShortPrefixId;i.prefix=d,i.iconName=ti(i.prefix,i.iconName)||i.iconName}return(i.prefix==="fa"||r==="fa")&&(i.prefix=Fr()||"fas"),i}class Oz{constructor(){this.definitions={}}add(){for(var e=arguments.length,n=new Array(e),i=0;i{this.definitions[s]=I(I({},this.definitions[s]||{}),r[s]),ld(s,r[s]);const o=Km[yt][s];o&&ld(o,r[s]),bT()})}reset(){this.definitions={}}_pullDefinitions(e,n){const i=n.prefix&&n.iconName&&n.icon?{0:n}:n;return Object.keys(i).map(r=>{const{prefix:s,iconName:o,icon:a}=i[r],c=a[2];e[s]||(e[s]={}),c.length>0&&c.forEach(u=>{typeof u=="string"&&(e[s][u]=a)}),e[s][o]=a}),e}}let K_=[],Qi={};const ys={},Pz=Object.keys(ys);function Nz(t,e){let{mixoutsTo:n}=e;return K_=t,Qi={},Object.keys(ys).forEach(i=>{Pz.indexOf(i)===-1&&delete ys[i]}),K_.forEach(i=>{const r=i.mixout?i.mixout():{};if(Object.keys(r).forEach(s=>{typeof r[s]=="function"&&(n[s]=r[s]),typeof r[s]=="object"&&Object.keys(r[s]).forEach(o=>{n[s]||(n[s]={}),n[s][o]=r[s][o]})}),i.hooks){const s=i.hooks();Object.keys(s).forEach(o=>{Qi[o]||(Qi[o]=[]),Qi[o].push(s[o])})}i.provides&&i.provides(ys)}),n}function cd(t,e){for(var n=arguments.length,i=new Array(n>2?n-2:0),r=2;r{e=o.apply(null,[e,...i])}),e}function wi(t){for(var e=arguments.length,n=new Array(e>1?e-1:0),i=1;i{s.apply(null,n)})}function Or(){const t=arguments[0],e=Array.prototype.slice.call(arguments,1);return ys[t]?ys[t].apply(null,e):void 0}function ud(t){t.prefix==="fa"&&(t.prefix="fas");let{iconName:e}=t;const n=t.prefix||Fr();if(e)return e=ti(n,e)||e,q_(CT.definitions,n,e)||q_(xn.styles,n,e)}const CT=new Oz,Lz=()=>{V.autoReplaceSvg=!1,V.observeMutations=!1,wi("noAuto")},Mz={i2svg:function(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};return dr?(wi("beforeI2svg",t),Or("pseudoElements2svg",t),Or("i2svg",t)):Promise.reject(new Error("Operation requires a DOM of some kind."))},watch:function(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};const{autoReplaceSvgRoot:e}=t;V.autoReplaceSvg===!1&&(V.autoReplaceSvg=!0),V.observeMutations=!0,_z(()=>{jz({autoReplaceSvgRoot:e}),wi("watch",t)})}},Bz={icon:t=>{if(t===null)return null;if(typeof t=="object"&&t.prefix&&t.iconName)return{prefix:t.prefix,iconName:ti(t.prefix,t.iconName)||t.iconName};if(Array.isArray(t)&&t.length===2){const e=t[1].indexOf("fa-")===0?t[1].slice(3):t[1],n=Iu(t[0]);return{prefix:n,iconName:ti(n,e)||e}}if(typeof t=="string"&&(t.indexOf("".concat(V.cssPrefix,"-"))>-1||t.match(rz))){const e=xu(t.split(" "),{skipLookups:!0});return{prefix:e.prefix||Fr(),iconName:ti(e.prefix,e.iconName)||e.iconName}}if(typeof t=="string"){const e=Fr();return{prefix:e,iconName:ti(e,t)||t}}}},Vt={noAuto:Lz,config:V,dom:Mz,parse:Bz,library:CT,findIconDefinition:ud,toHtml:ga},jz=function(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};const{autoReplaceSvgRoot:e=ze}=t;(Object.keys(xn.styles).length>0||V.autoFetchSvg)&&dr&&V.autoReplaceSvg&&Vt.dom.i2svg({node:e})};function Ru(t,e){return Object.defineProperty(t,"abstract",{get:e}),Object.defineProperty(t,"html",{get:function(){return t.abstract.map(n=>ga(n))}}),Object.defineProperty(t,"node",{get:function(){if(!dr)return;const n=ze.createElement("div");return n.innerHTML=t.html,n.children}}),t}function zz(t){let{children:e,main:n,mask:i,attributes:r,styles:s,transform:o}=t;if(Xm(o)&&n.found&&!i.found){const{width:a,height:c}=n,u={x:a/c/2,y:.5};r.style=Du(I(I({},s),{},{"transform-origin":"".concat(u.x+o.x/16,"em ").concat(u.y+o.y/16,"em")}))}return[{tag:"svg",attributes:r,children:e}]}function Hz(t){let{prefix:e,iconName:n,children:i,attributes:r,symbol:s}=t;const o=s===!0?"".concat(e,"-").concat(V.cssPrefix,"-").concat(n):s;return[{tag:"svg",attributes:{style:"display: none;"},children:[{tag:"symbol",attributes:I(I({},r),{},{id:o}),children:i}]}]}function tg(t){const{icons:{main:e,mask:n},prefix:i,iconName:r,transform:s,symbol:o,title:a,maskId:c,titleId:u,extra:h,watchable:f=!1}=t,{width:d,height:p}=n.found?n:e,m=Hj.includes(i),y=[V.replacementClass,r?"".concat(V.cssPrefix,"-").concat(r):""].filter(L=>h.classes.indexOf(L)===-1).filter(L=>L!==""||!!L).concat(h.classes).join(" ");let _={children:[],attributes:I(I({},h.attributes),{},{"data-prefix":i,"data-icon":r,class:y,role:h.attributes.role||"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 ".concat(d," ").concat(p)})};const S=m&&!~h.classes.indexOf("fa-fw")?{width:"".concat(d/p*16*.0625,"em")}:{};f&&(_.attributes[Ei]=""),a&&(_.children.push({tag:"title",attributes:{id:_.attributes["aria-labelledby"]||"title-".concat(u||jo())},children:[a]}),delete _.attributes.title);const C=I(I({},_),{},{prefix:i,iconName:r,main:e,mask:n,maskId:c,transform:s,symbol:o,styles:I(I({},S),h.styles)}),{children:E,attributes:N}=n.found&&e.found?Or("generateAbstractMask",C)||{children:[],attributes:{}}:Or("generateAbstractIcon",C)||{children:[],attributes:{}};return C.children=E,C.attributes=N,o?Hz(C):zz(C)}function Q_(t){const{content:e,width:n,height:i,transform:r,title:s,extra:o,watchable:a=!1}=t,c=I(I(I({},o.attributes),s?{title:s}:{}),{},{class:o.classes.join(" ")});a&&(c[Ei]="");const u=I({},o.styles);Xm(r)&&(u.transform=mz({transform:r,startCentered:!0,width:n,height:i}),u["-webkit-transform"]=u.transform);const h=Du(u);h.length>0&&(c.style=h);const f=[];return f.push({tag:"span",attributes:c,children:[e]}),s&&f.push({tag:"span",attributes:{class:"sr-only"},children:[s]}),f}function Uz(t){const{content:e,title:n,extra:i}=t,r=I(I(I({},i.attributes),n?{title:n}:{}),{},{class:i.classes.join(" ")}),s=Du(i.styles);s.length>0&&(r.style=s);const o=[];return o.push({tag:"span",attributes:r,children:[e]}),n&&o.push({tag:"span",attributes:{class:"sr-only"},children:[n]}),o}const{styles:xh}=xn;function hd(t){const e=t[0],n=t[1],[i]=t.slice(4);let r=null;return Array.isArray(i)?r={tag:"g",attributes:{class:"".concat(V.cssPrefix,"-").concat(kh.GROUP)},children:[{tag:"path",attributes:{class:"".concat(V.cssPrefix,"-").concat(kh.SECONDARY),fill:"currentColor",d:i[0]}},{tag:"path",attributes:{class:"".concat(V.cssPrefix,"-").concat(kh.PRIMARY),fill:"currentColor",d:i[1]}}]}:r={tag:"path",attributes:{fill:"currentColor",d:i}},{found:!0,width:e,height:n,icon:r}}const Vz={found:!1,width:512,height:512};function $z(t,e){!oT&&!V.showMissingIcons&&t&&console.error('Icon with name "'.concat(t,'" and prefix "').concat(e,'" is missing.'))}function fd(t,e){let n=e;return e==="fa"&&V.styleDefault!==null&&(e=Fr()),new Promise((i,r)=>{if(n==="fa"){const s=ET(t)||{};t=s.iconName||t,e=s.prefix||e}if(t&&e&&xh[e]&&xh[e][t]){const s=xh[e][t];return i(hd(s))}$z(t,e),i(I(I({},Vz),{},{icon:V.showMissingIcons&&t?Or("missingIconAbstract")||{}:{}}))})}const X_=()=>{},dd=V.measurePerformance&&$a&&$a.mark&&$a.measure?$a:{mark:X_,measure:X_},lo='FA "6.7.2"',Wz=t=>(dd.mark("".concat(lo," ").concat(t," begins")),()=>ST(t)),ST=t=>{dd.mark("".concat(lo," ").concat(t," ends")),dd.measure("".concat(lo," ").concat(t),"".concat(lo," ").concat(t," begins"),"".concat(lo," ").concat(t," ends"))};var ng={begin:Wz,end:ST};const Cl=()=>{};function J_(t){return typeof(t.getAttribute?t.getAttribute(Ei):null)=="string"}function Gz(t){const e=t.getAttribute?t.getAttribute(Zm):null,n=t.getAttribute?t.getAttribute(Ym):null;return e&&n}function qz(t){return t&&t.classList&&t.classList.contains&&t.classList.contains(V.replacementClass)}function Zz(){return V.autoReplaceSvg===!0?Sl.replace:Sl[V.autoReplaceSvg]||Sl.replace}function Yz(t){return ze.createElementNS("http://www.w3.org/2000/svg",t)}function Kz(t){return ze.createElement(t)}function TT(t){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};const{ceFn:n=t.tag==="svg"?Yz:Kz}=e;if(typeof t=="string")return ze.createTextNode(t);const i=n(t.tag);return Object.keys(t.attributes||[]).forEach(function(s){i.setAttribute(s,t.attributes[s])}),(t.children||[]).forEach(function(s){i.appendChild(TT(s,{ceFn:n}))}),i}function Qz(t){let e=" ".concat(t.outerHTML," ");return e="".concat(e,"Font Awesome fontawesome.com "),e}const Sl={replace:function(t){const e=t[0];if(e.parentNode)if(t[1].forEach(n=>{e.parentNode.insertBefore(TT(n),e)}),e.getAttribute(Ei)===null&&V.keepOriginalSource){let n=ze.createComment(Qz(e));e.parentNode.replaceChild(n,e)}else e.remove()},nest:function(t){const e=t[0],n=t[1];if(~Qm(e).indexOf(V.replacementClass))return Sl.replace(t);const i=new RegExp("".concat(V.cssPrefix,"-.*"));if(delete n[0].attributes.id,n[0].attributes.class){const s=n[0].attributes.class.split(" ").reduce((o,a)=>(a===V.replacementClass||a.match(i)?o.toSvg.push(a):o.toNode.push(a),o),{toNode:[],toSvg:[]});n[0].attributes.class=s.toSvg.join(" "),s.toNode.length===0?e.removeAttribute("class"):e.setAttribute("class",s.toNode.join(" "))}const r=n.map(s=>ga(s)).join(` +`);e.setAttribute(Ei,""),e.innerHTML=r}};function ev(t){t()}function AT(t,e){const n=typeof e=="function"?e:Cl;if(t.length===0)n();else{let i=ev;V.mutateApproach===ez&&(i=Rr.requestAnimationFrame||ev),i(()=>{const r=Zz(),s=ng.begin("mutate");t.map(r),s(),n()})}}let rg=!1;function kT(){rg=!0}function pd(){rg=!1}let uc=null;function tv(t){if(!H_||!V.observeMutations)return;const{treeCallback:e=Cl,nodeCallback:n=Cl,pseudoElementsCallback:i=Cl,observeMutationsRoot:r=ze}=t;uc=new H_(s=>{if(rg)return;const o=Fr();Gs(s).forEach(a=>{if(a.type==="childList"&&a.addedNodes.length>0&&!J_(a.addedNodes[0])&&(V.searchPseudoElements&&i(a.target),e(a.target)),a.type==="attributes"&&a.target.parentNode&&V.searchPseudoElements&&i(a.target.parentNode),a.type==="attributes"&&J_(a.target)&&~oz.indexOf(a.attributeName))if(a.attributeName==="class"&&Gz(a.target)){const{prefix:c,iconName:u}=xu(Qm(a.target));a.target.setAttribute(Zm,c||o),u&&a.target.setAttribute(Ym,u)}else qz(a.target)&&n(a.target)})}),dr&&uc.observe(r,{childList:!0,attributes:!0,characterData:!0,subtree:!0})}function Xz(){uc&&uc.disconnect()}function Jz(t){const e=t.getAttribute("style");let n=[];return e&&(n=e.split(";").reduce((i,r)=>{const s=r.split(":"),o=s[0],a=s.slice(1);return o&&a.length>0&&(i[o]=a.join(":").trim()),i},{})),n}function eH(t){const e=t.getAttribute("data-prefix"),n=t.getAttribute("data-icon"),i=t.innerText!==void 0?t.innerText.trim():"";let r=xu(Qm(t));return r.prefix||(r.prefix=Fr()),e&&n&&(r.prefix=e,r.iconName=n),r.iconName&&r.prefix||(r.prefix&&i.length>0&&(r.iconName=Tz(r.prefix,t.innerText)||eg(r.prefix,ad(t.innerText))),!r.iconName&&V.autoFetchSvg&&t.firstChild&&t.firstChild.nodeType===Node.TEXT_NODE&&(r.iconName=t.firstChild.data)),r}function tH(t){const e=Gs(t.attributes).reduce((r,s)=>(r.name!=="class"&&r.name!=="style"&&(r[s.name]=s.value),r),{}),n=t.getAttribute("title"),i=t.getAttribute("data-fa-title-id");return V.autoA11y&&(n?e["aria-labelledby"]="".concat(V.replacementClass,"-title-").concat(i||jo()):(e["aria-hidden"]="true",e.focusable="false")),e}function nH(){return{iconName:null,title:null,titleId:null,prefix:null,transform:In,symbol:!1,mask:{iconName:null,prefix:null,rest:[]},maskId:null,extra:{classes:[],styles:{},attributes:{}}}}function nv(t){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{styleParser:!0};const{iconName:n,prefix:i,rest:r}=eH(t),s=tH(t),o=cd("parseNodeAttributes",{},t);let a=e.styleParser?Jz(t):[];return I({iconName:n,title:t.getAttribute("title"),titleId:t.getAttribute("data-fa-title-id"),prefix:i,transform:In,mask:{iconName:null,prefix:null,rest:[]},maskId:null,symbol:!1,extra:{classes:r,styles:a,attributes:s}},o)}const{styles:rH}=xn;function DT(t){const e=V.autoReplaceSvg==="nest"?nv(t,{styleParser:!1}):nv(t);return~e.extra.classes.indexOf(lT)?Or("generateLayersText",t,e):Or("generateSvgReplacementMutation",t,e)}function iH(){return[...Bj,...td]}function rv(t){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:null;if(!dr)return Promise.resolve();const n=ze.documentElement.classList,i=h=>n.add("".concat($_,"-").concat(h)),r=h=>n.remove("".concat($_,"-").concat(h)),s=V.autoFetchSvg?iH():tT.concat(Object.keys(rH));s.includes("fa")||s.push("fa");const o=[".".concat(lT,":not([").concat(Ei,"])")].concat(s.map(h=>".".concat(h,":not([").concat(Ei,"])"))).join(", ");if(o.length===0)return Promise.resolve();let a=[];try{a=Gs(t.querySelectorAll(o))}catch{}if(a.length>0)i("pending"),r("complete");else return Promise.resolve();const c=ng.begin("onTree"),u=a.reduce((h,f)=>{try{const d=DT(f);d&&h.push(d)}catch(d){oT||d.name==="MissingIcon"&&console.error(d)}return h},[]);return new Promise((h,f)=>{Promise.all(u).then(d=>{AT(d,()=>{i("active"),i("complete"),r("pending"),typeof e=="function"&&e(),c(),h()})}).catch(d=>{c(),f(d)})})}function sH(t){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:null;DT(t).then(n=>{n&&AT([n],e)})}function oH(t){return function(e){let n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};const i=(e||{}).icon?e:ud(e||{});let{mask:r}=n;return r&&(r=(r||{}).icon?r:ud(r||{})),t(i,I(I({},n),{},{mask:r}))}}const aH=function(t){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};const{transform:n=In,symbol:i=!1,mask:r=null,maskId:s=null,title:o=null,titleId:a=null,classes:c=[],attributes:u={},styles:h={}}=e;if(!t)return;const{prefix:f,iconName:d,icon:p}=t;return Ru(I({type:"icon"},t),()=>(wi("beforeDOMElementCreation",{iconDefinition:t,params:e}),V.autoA11y&&(o?u["aria-labelledby"]="".concat(V.replacementClass,"-title-").concat(a||jo()):(u["aria-hidden"]="true",u.focusable="false")),tg({icons:{main:hd(p),mask:r?hd(r.icon):{found:!1,width:null,height:null,icon:{}}},prefix:f,iconName:d,transform:I(I({},In),n),symbol:i,title:o,maskId:s,titleId:a,extra:{attributes:u,styles:h,classes:c}})))};var lH={mixout(){return{icon:oH(aH)}},hooks(){return{mutationObserverCallbacks(t){return t.treeCallback=rv,t.nodeCallback=sH,t}}},provides(t){t.i2svg=function(e){const{node:n=ze,callback:i=()=>{}}=e;return rv(n,i)},t.generateSvgReplacementMutation=function(e,n){const{iconName:i,title:r,titleId:s,prefix:o,transform:a,symbol:c,mask:u,maskId:h,extra:f}=n;return new Promise((d,p)=>{Promise.all([fd(i,o),u.iconName?fd(u.iconName,u.prefix):Promise.resolve({found:!1,width:512,height:512,icon:{}})]).then(m=>{let[y,_]=m;d([e,tg({icons:{main:y,mask:_},prefix:o,iconName:i,transform:a,symbol:c,maskId:h,title:r,titleId:s,extra:f,watchable:!0})])}).catch(p)})},t.generateAbstractIcon=function(e){let{children:n,attributes:i,main:r,transform:s,styles:o}=e;const a=Du(o);a.length>0&&(i.style=a);let c;return Xm(s)&&(c=Or("generateAbstractTransformGrouping",{main:r,transform:s,containerWidth:r.width,iconWidth:r.width})),n.push(c||r.icon),{children:n,attributes:i}}}},cH={mixout(){return{layer(t){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};const{classes:n=[]}=e;return Ru({type:"layer"},()=>{wi("beforeDOMElementCreation",{assembler:t,params:e});let i=[];return t(r=>{Array.isArray(r)?r.map(s=>{i=i.concat(s.abstract)}):i=i.concat(r.abstract)}),[{tag:"span",attributes:{class:["".concat(V.cssPrefix,"-layers"),...n].join(" ")},children:i}]})}}}},uH={mixout(){return{counter(t){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};const{title:n=null,classes:i=[],attributes:r={},styles:s={}}=e;return Ru({type:"counter",content:t},()=>(wi("beforeDOMElementCreation",{content:t,params:e}),Uz({content:t.toString(),title:n,extra:{attributes:r,styles:s,classes:["".concat(V.cssPrefix,"-layers-counter"),...i]}})))}}}},hH={mixout(){return{text(t){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};const{transform:n=In,title:i=null,classes:r=[],attributes:s={},styles:o={}}=e;return Ru({type:"text",content:t},()=>(wi("beforeDOMElementCreation",{content:t,params:e}),Q_({content:t,transform:I(I({},In),n),title:i,extra:{attributes:s,styles:o,classes:["".concat(V.cssPrefix,"-layers-text"),...r]}})))}}},provides(t){t.generateLayersText=function(e,n){const{title:i,transform:r,extra:s}=n;let o=null,a=null;if(JS){const c=parseInt(getComputedStyle(e).fontSize,10),u=e.getBoundingClientRect();o=u.width/c,a=u.height/c}return V.autoA11y&&!i&&(s.attributes["aria-hidden"]="true"),Promise.resolve([e,Q_({content:e.innerHTML,width:o,height:a,transform:r,title:i,extra:s,watchable:!0})])}}};const fH=new RegExp('"',"ug"),iv=[1105920,1112319],sv=I(I(I(I({},{FontAwesome:{normal:"fas",400:"fas"}}),Nj),Xj),Wj),md=Object.keys(sv).reduce((t,e)=>(t[e.toLowerCase()]=sv[e],t),{}),dH=Object.keys(md).reduce((t,e)=>{const n=md[e];return t[e]=n[900]||[...Object.entries(n)][0][1],t},{});function pH(t){const e=t.replace(fH,""),n=bz(e,0),i=n>=iv[0]&&n<=iv[1],r=e.length===2?e[0]===e[1]:!1;return{value:ad(r?e[0]:e),isSecondary:i||r}}function mH(t,e){const n=t.replace(/^['"]|['"]$/g,"").toLowerCase(),i=parseInt(e),r=isNaN(i)?"normal":i;return(md[n]||{})[r]||dH[n]}function ov(t,e){const n="".concat(Jj).concat(e.replace(":","-"));return new Promise((i,r)=>{if(t.getAttribute(n)!==null)return i();const o=Gs(t.children).filter(d=>d.getAttribute(rd)===e)[0],a=Rr.getComputedStyle(t,e),c=a.getPropertyValue("font-family"),u=c.match(iz),h=a.getPropertyValue("font-weight"),f=a.getPropertyValue("content");if(o&&!u)return t.removeChild(o),i();if(u&&f!=="none"&&f!==""){const d=a.getPropertyValue("content");let p=mH(c,h);const{value:m,isSecondary:y}=pH(d),_=u[0].startsWith("FontAwesome");let S=eg(p,m),C=S;if(_){const E=Az(m);E.iconName&&E.prefix&&(S=E.iconName,p=E.prefix)}if(S&&!y&&(!o||o.getAttribute(Zm)!==p||o.getAttribute(Ym)!==C)){t.setAttribute(n,C),o&&t.removeChild(o);const E=nH(),{extra:N}=E;N.attributes[rd]=e,fd(S,p).then(L=>{const Y=tg(I(I({},E),{},{icons:{main:L,mask:wT()},prefix:p,iconName:C,extra:N,watchable:!0})),U=ze.createElementNS("http://www.w3.org/2000/svg","svg");e==="::before"?t.insertBefore(U,t.firstChild):t.appendChild(U),U.outerHTML=Y.map(P=>ga(P)).join(` +`),t.removeAttribute(n),i()}).catch(r)}else i()}else i()})}function gH(t){return Promise.all([ov(t,"::before"),ov(t,"::after")])}function yH(t){return t.parentNode!==document.head&&!~tz.indexOf(t.tagName.toUpperCase())&&!t.getAttribute(rd)&&(!t.parentNode||t.parentNode.tagName!=="svg")}function av(t){if(dr)return new Promise((e,n)=>{const i=Gs(t.querySelectorAll("*")).filter(yH).map(gH),r=ng.begin("searchPseudoElements");kT(),Promise.all(i).then(()=>{r(),pd(),e()}).catch(()=>{r(),pd(),n()})})}var _H={hooks(){return{mutationObserverCallbacks(t){return t.pseudoElementsCallback=av,t}}},provides(t){t.pseudoElements2svg=function(e){const{node:n=ze}=e;V.searchPseudoElements&&av(n)}}};let lv=!1;var vH={mixout(){return{dom:{unwatch(){kT(),lv=!0}}}},hooks(){return{bootstrap(){tv(cd("mutationObserverCallbacks",{}))},noAuto(){Xz()},watch(t){const{observeMutationsRoot:e}=t;lv?pd():tv(cd("mutationObserverCallbacks",{observeMutationsRoot:e}))}}}};const cv=t=>{let e={size:16,x:0,y:0,flipX:!1,flipY:!1,rotate:0};return t.toLowerCase().split(" ").reduce((n,i)=>{const r=i.toLowerCase().split("-"),s=r[0];let o=r.slice(1).join("-");if(s&&o==="h")return n.flipX=!0,n;if(s&&o==="v")return n.flipY=!0,n;if(o=parseFloat(o),isNaN(o))return n;switch(s){case"grow":n.size=n.size+o;break;case"shrink":n.size=n.size-o;break;case"left":n.x=n.x-o;break;case"right":n.x=n.x+o;break;case"up":n.y=n.y-o;break;case"down":n.y=n.y+o;break;case"rotate":n.rotate=n.rotate+o;break}return n},e)};var bH={mixout(){return{parse:{transform:t=>cv(t)}}},hooks(){return{parseNodeAttributes(t,e){const n=e.getAttribute("data-fa-transform");return n&&(t.transform=cv(n)),t}}},provides(t){t.generateAbstractTransformGrouping=function(e){let{main:n,transform:i,containerWidth:r,iconWidth:s}=e;const o={transform:"translate(".concat(r/2," 256)")},a="translate(".concat(i.x*32,", ").concat(i.y*32,") "),c="scale(".concat(i.size/16*(i.flipX?-1:1),", ").concat(i.size/16*(i.flipY?-1:1),") "),u="rotate(".concat(i.rotate," 0 0)"),h={transform:"".concat(a," ").concat(c," ").concat(u)},f={transform:"translate(".concat(s/2*-1," -256)")},d={outer:o,inner:h,path:f};return{tag:"g",attributes:I({},d.outer),children:[{tag:"g",attributes:I({},d.inner),children:[{tag:n.icon.tag,children:n.icon.children,attributes:I(I({},n.icon.attributes),d.path)}]}]}}}};const Rh={x:0,y:0,width:"100%",height:"100%"};function uv(t){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0;return t.attributes&&(t.attributes.fill||e)&&(t.attributes.fill="black"),t}function EH(t){return t.tag==="g"?t.children:[t]}var wH={hooks(){return{parseNodeAttributes(t,e){const n=e.getAttribute("data-fa-mask"),i=n?xu(n.split(" ").map(r=>r.trim())):wT();return i.prefix||(i.prefix=Fr()),t.mask=i,t.maskId=e.getAttribute("data-fa-mask-id"),t}}},provides(t){t.generateAbstractMask=function(e){let{children:n,attributes:i,main:r,mask:s,maskId:o,transform:a}=e;const{width:c,icon:u}=r,{width:h,icon:f}=s,d=pz({transform:a,containerWidth:h,iconWidth:c}),p={tag:"rect",attributes:I(I({},Rh),{},{fill:"white"})},m=u.children?{children:u.children.map(uv)}:{},y={tag:"g",attributes:I({},d.inner),children:[uv(I({tag:u.tag,attributes:I(I({},u.attributes),d.path)},m))]},_={tag:"g",attributes:I({},d.outer),children:[y]},S="mask-".concat(o||jo()),C="clip-".concat(o||jo()),E={tag:"mask",attributes:I(I({},Rh),{},{id:S,maskUnits:"userSpaceOnUse",maskContentUnits:"userSpaceOnUse"}),children:[p,_]},N={tag:"defs",children:[{tag:"clipPath",attributes:{id:C},children:EH(f)},E]};return n.push(N,{tag:"rect",attributes:I({fill:"currentColor","clip-path":"url(#".concat(C,")"),mask:"url(#".concat(S,")")},Rh)}),{children:n,attributes:i}}}},CH={provides(t){let e=!1;Rr.matchMedia&&(e=Rr.matchMedia("(prefers-reduced-motion: reduce)").matches),t.missingIconAbstract=function(){const n=[],i={fill:"currentColor"},r={attributeType:"XML",repeatCount:"indefinite",dur:"2s"};n.push({tag:"path",attributes:I(I({},i),{},{d:"M156.5,447.7l-12.6,29.5c-18.7-9.5-35.9-21.2-51.5-34.9l22.7-22.7C127.6,430.5,141.5,440,156.5,447.7z M40.6,272H8.5 c1.4,21.2,5.4,41.7,11.7,61.1L50,321.2C45.1,305.5,41.8,289,40.6,272z M40.6,240c1.4-18.8,5.2-37,11.1-54.1l-29.5-12.6 C14.7,194.3,10,216.7,8.5,240H40.6z M64.3,156.5c7.8-14.9,17.2-28.8,28.1-41.5L69.7,92.3c-13.7,15.6-25.5,32.8-34.9,51.5 L64.3,156.5z M397,419.6c-13.9,12-29.4,22.3-46.1,30.4l11.9,29.8c20.7-9.9,39.8-22.6,56.9-37.6L397,419.6z M115,92.4 c13.9-12,29.4-22.3,46.1-30.4l-11.9-29.8c-20.7,9.9-39.8,22.6-56.8,37.6L115,92.4z M447.7,355.5c-7.8,14.9-17.2,28.8-28.1,41.5 l22.7,22.7c13.7-15.6,25.5-32.9,34.9-51.5L447.7,355.5z M471.4,272c-1.4,18.8-5.2,37-11.1,54.1l29.5,12.6 c7.5-21.1,12.2-43.5,13.6-66.8H471.4z M321.2,462c-15.7,5-32.2,8.2-49.2,9.4v32.1c21.2-1.4,41.7-5.4,61.1-11.7L321.2,462z M240,471.4c-18.8-1.4-37-5.2-54.1-11.1l-12.6,29.5c21.1,7.5,43.5,12.2,66.8,13.6V471.4z M462,190.8c5,15.7,8.2,32.2,9.4,49.2h32.1 c-1.4-21.2-5.4-41.7-11.7-61.1L462,190.8z M92.4,397c-12-13.9-22.3-29.4-30.4-46.1l-29.8,11.9c9.9,20.7,22.6,39.8,37.6,56.9 L92.4,397z M272,40.6c18.8,1.4,36.9,5.2,54.1,11.1l12.6-29.5C317.7,14.7,295.3,10,272,8.5V40.6z M190.8,50 c15.7-5,32.2-8.2,49.2-9.4V8.5c-21.2,1.4-41.7,5.4-61.1,11.7L190.8,50z M442.3,92.3L419.6,115c12,13.9,22.3,29.4,30.5,46.1 l29.8-11.9C470,128.5,457.3,109.4,442.3,92.3z M397,92.4l22.7-22.7c-15.6-13.7-32.8-25.5-51.5-34.9l-12.6,29.5 C370.4,72.1,384.4,81.5,397,92.4z"})});const s=I(I({},r),{},{attributeName:"opacity"}),o={tag:"circle",attributes:I(I({},i),{},{cx:"256",cy:"364",r:"28"}),children:[]};return e||o.children.push({tag:"animate",attributes:I(I({},r),{},{attributeName:"r",values:"28;14;28;28;14;28;"})},{tag:"animate",attributes:I(I({},s),{},{values:"1;0;1;1;0;1;"})}),n.push(o),n.push({tag:"path",attributes:I(I({},i),{},{opacity:"1",d:"M263.7,312h-16c-6.6,0-12-5.4-12-12c0-71,77.4-63.9,77.4-107.8c0-20-17.8-40.2-57.4-40.2c-29.1,0-44.3,9.6-59.2,28.7 c-3.9,5-11.1,6-16.2,2.4l-13.1-9.2c-5.6-3.9-6.9-11.8-2.6-17.2c21.2-27.2,46.4-44.7,91.2-44.7c52.3,0,97.4,29.8,97.4,80.2 c0,67.6-77.4,63.5-77.4,107.8C275.7,306.6,270.3,312,263.7,312z"}),children:e?[]:[{tag:"animate",attributes:I(I({},s),{},{values:"1;0;0;0;0;1;"})}]}),e||n.push({tag:"path",attributes:I(I({},i),{},{opacity:"0",d:"M232.5,134.5l7,168c0.3,6.4,5.6,11.5,12,11.5h9c6.4,0,11.7-5.1,12-11.5l7-168c0.3-6.8-5.2-12.5-12-12.5h-23 C237.7,122,232.2,127.7,232.5,134.5z"}),children:[{tag:"animate",attributes:I(I({},s),{},{values:"0;0;1;1;0;0;"})}]}),{tag:"g",attributes:{class:"missing"},children:n}}}},SH={hooks(){return{parseNodeAttributes(t,e){const n=e.getAttribute("data-fa-symbol"),i=n===null?!1:n===""?!0:n;return t.symbol=i,t}}}},TH=[yz,lH,cH,uH,hH,_H,vH,bH,wH,CH,SH];Nz(TH,{mixoutsTo:Vt});Vt.noAuto;const AH=Vt.config;Vt.library;const kH=Vt.dom,IT=Vt.parse;Vt.findIconDefinition;Vt.toHtml;const DH=Vt.icon;Vt.layer;const IH=Vt.text,xH=Vt.counter,xT=["*"],RH=t=>{throw new Error(`Could not find icon with iconName=${t.iconName} and prefix=${t.prefix} in the icon library.`)},FH=()=>{throw new Error("Property `icon` is required for `fa-icon`/`fa-duotone-icon` components.")},ig=t=>t!=null&&(t===90||t===180||t===270||t==="90"||t==="180"||t==="270"),RT=t=>{const e=ig(t.rotate),n={[`fa-${t.animation}`]:t.animation!=null&&!t.animation.startsWith("spin"),"fa-spin":t.animation==="spin"||t.animation==="spin-reverse","fa-spin-pulse":t.animation==="spin-pulse"||t.animation==="spin-pulse-reverse","fa-spin-reverse":t.animation==="spin-reverse"||t.animation==="spin-pulse-reverse","fa-pulse":t.animation==="spin-pulse"||t.animation==="spin-pulse-reverse","fa-fw":t.fixedWidth,"fa-border":t.border,"fa-inverse":t.inverse,"fa-layers-counter":t.counter,"fa-flip-horizontal":t.flip==="horizontal"||t.flip==="both","fa-flip-vertical":t.flip==="vertical"||t.flip==="both",[`fa-${t.size}`]:t.size!==null,[`fa-rotate-${t.rotate}`]:e,"fa-rotate-by":t.rotate!=null&&!e,[`fa-pull-${t.pull}`]:t.pull!==null,[`fa-stack-${t.stackItemSize}`]:t.stackItemSize!=null};return Object.keys(n).map(i=>n[i]?i:null).filter(i=>i)},Fh=new WeakSet,hv="fa-auto-css";function Fu(t,e){if(!e.autoAddCss||Fh.has(t))return;if(t.getElementById(hv)!=null){e.autoAddCss=!1,Fh.add(t);return}const n=t.createElement("style");n.setAttribute("type","text/css"),n.setAttribute("id",hv),n.innerHTML=kH.css();const i=t.head.childNodes;let r=null;for(let s=i.length-1;s>-1;s--){const o=i[s],a=o.nodeName.toUpperCase();["STYLE","LINK"].indexOf(a)>-1&&(r=o)}t.head.insertBefore(n,r),e.autoAddCss=!1,Fh.add(t)}const OH=t=>t.prefix!==void 0&&t.iconName!==void 0,PH=(t,e)=>OH(t)?t:Array.isArray(t)&&t.length===2?{prefix:t[0],iconName:t[1]}:{prefix:e,iconName:t};let Ou=(()=>{const n=class n{constructor(){this.defaultPrefix="fas",this.fallbackIcon=null,this._autoAddCss=!0}set autoAddCss(r){AH.autoAddCss=r,this._autoAddCss=r}get autoAddCss(){return this._autoAddCss}};n.ɵfac=function(s){return new(s||n)},n.ɵprov=O({token:n,factory:n.ɵfac,providedIn:"root"});let e=n;return e})(),NH=(()=>{const n=class n{constructor(){this.definitions={}}addIcons(...r){for(const s of r){s.prefix in this.definitions||(this.definitions[s.prefix]={}),this.definitions[s.prefix][s.iconName]=s;for(const o of s.icon[2])typeof o=="string"&&(this.definitions[s.prefix][o]=s)}}addIconPacks(...r){for(const s of r){const o=Object.keys(s).map(a=>s[a]);this.addIcons(...o)}}getIconDefinition(r,s){return r in this.definitions&&s in this.definitions[r]?this.definitions[r][s]:null}};n.ɵfac=function(s){return new(s||n)},n.ɵprov=O({token:n,factory:n.ɵfac,providedIn:"root"});let e=n;return e})(),gd=(()=>{const n=class n{constructor(){this.stackItemSize="1x"}ngOnChanges(r){if("size"in r)throw new Error('fa-icon is not allowed to customize size when used inside fa-stack. Set size on the enclosing fa-stack instead: ....')}};n.ɵfac=function(s){return new(s||n)},n.ɵdir=Ge({type:n,selectors:[["fa-icon","stackItemSize",""],["fa-duotone-icon","stackItemSize",""]],inputs:{stackItemSize:"stackItemSize",size:"size"},features:[Ht]});let e=n;return e})(),yd=(()=>{const n=class n{constructor(r,s){this.renderer=r,this.elementRef=s}ngOnInit(){this.renderer.addClass(this.elementRef.nativeElement,"fa-stack")}ngOnChanges(r){"size"in r&&(r.size.currentValue!=null&&this.renderer.addClass(this.elementRef.nativeElement,`fa-${r.size.currentValue}`),r.size.previousValue!=null&&this.renderer.removeClass(this.elementRef.nativeElement,`fa-${r.size.previousValue}`))}};n.ɵfac=function(s){return new(s||n)(Ce(zs),Ce(qe))},n.ɵcmp=Ye({type:n,selectors:[["fa-stack"]],inputs:{size:"size"},features:[Ht],ngContentSelectors:xT,decls:1,vars:0,template:function(s,o){s&1&&(Sm(),Tm(0))},encapsulation:2});let e=n;return e})(),_d=(()=>{const n=class n{constructor(r,s,o,a,c){this.sanitizer=r,this.config=s,this.iconLibrary=o,this.stackItem=a,this.document=g(we),c!=null&&a==null&&console.error('FontAwesome: fa-icon and fa-duotone-icon elements must specify stackItemSize attribute when wrapped into fa-stack. Example: .')}ngOnChanges(r){if(this.icon==null&&this.config.fallbackIcon==null){FH();return}if(r){const s=this.findIconDefinition(this.icon??this.config.fallbackIcon);if(s!=null){const o=this.buildParams();Fu(this.document,this.config);const a=DH(s,o);this.renderedIconHTML=this.sanitizer.bypassSecurityTrustHtml(a.html.join(` +`))}}}render(){this.ngOnChanges({})}findIconDefinition(r){const s=PH(r,this.config.defaultPrefix);if("icon"in s)return s;const o=this.iconLibrary.getIconDefinition(s.prefix,s.iconName);return o??(RH(s),null)}buildParams(){const r={flip:this.flip,animation:this.animation,border:this.border,inverse:this.inverse,size:this.size||null,pull:this.pull||null,rotate:this.rotate||null,fixedWidth:typeof this.fixedWidth=="boolean"?this.fixedWidth:this.config.fixedWidth,stackItemSize:this.stackItem!=null?this.stackItem.stackItemSize:null},s=typeof this.transform=="string"?IT.transform(this.transform):this.transform,o={};return r.rotate!=null&&!ig(r.rotate)&&(o["--fa-rotate-angle"]=`${r.rotate}`),{title:this.title,transform:s,classes:RT(r),mask:this.mask!=null?this.findIconDefinition(this.mask):null,symbol:this.symbol,attributes:{role:this.a11yRole},styles:o}}};n.ɵfac=function(s){return new(s||n)(Ce($s),Ce(Ou),Ce(NH),Ce(gd,8),Ce(yd,8))},n.ɵcmp=Ye({type:n,selectors:[["fa-icon"]],hostAttrs:[1,"ng-fa-icon"],hostVars:2,hostBindings:function(s,o){s&2&&(gu("innerHTML",o.renderedIconHTML,la),Hs("title",o.title))},inputs:{icon:"icon",title:"title",animation:"animation",mask:"mask",flip:"flip",size:"size",pull:"pull",border:"border",inverse:"inverse",symbol:"symbol",rotate:"rotate",fixedWidth:"fixedWidth",transform:"transform",a11yRole:"a11yRole"},features:[Ht],decls:0,vars:0,template:function(s,o){},encapsulation:2});let e=n;return e})(),fv=(()=>{const n=class n extends _d{findIconDefinition(r){const s=super.findIconDefinition(r);if(s!=null&&!Array.isArray(s.icon[4]))throw new Error(`The specified icon does not appear to be a Duotone icon. Check that you specified the correct style: or use: instead.`);return s}buildParams(){const r=super.buildParams();return(this.swapOpacity===!0||this.swapOpacity==="true")&&(Array.isArray(r.classes)?r.classes.push("fa-swap-opacity"):typeof r.classes=="string"?r.classes=[r.classes,"fa-swap-opacity"]:r.classes=["fa-swap-opacity"]),r.styles==null&&(r.styles={}),this.primaryOpacity!=null&&(r.styles["--fa-primary-opacity"]=this.primaryOpacity.toString()),this.secondaryOpacity!=null&&(r.styles["--fa-secondary-opacity"]=this.secondaryOpacity.toString()),this.primaryColor!=null&&(r.styles["--fa-primary-color"]=this.primaryColor),this.secondaryColor!=null&&(r.styles["--fa-secondary-color"]=this.secondaryColor),r}};n.ɵfac=(()=>{let r;return function(o){return(r||(r=ki(n)))(o||n)}})(),n.ɵcmp=Ye({type:n,selectors:[["fa-duotone-icon"]],inputs:{swapOpacity:"swapOpacity",primaryOpacity:"primaryOpacity",secondaryOpacity:"secondaryOpacity",primaryColor:"primaryColor",secondaryColor:"secondaryColor"},features:[_n],decls:0,vars:0,template:function(s,o){},encapsulation:2});let e=n;return e})();const FT=(t,e,n)=>{if(!t)throw new Error(`${n} should be used as child of ${e} only.`)};let hc=(()=>{const n=class n{constructor(r,s,o){this.renderer=r,this.elementRef=s,this.config=o,this.document=g(we)}ngOnInit(){this.renderer.addClass(this.elementRef.nativeElement,"fa-layers"),Fu(this.document,this.config),this.fixedWidth=typeof this.fixedWidth=="boolean"?this.fixedWidth:this.config.fixedWidth}ngOnChanges(r){"size"in r&&(r.size.currentValue!=null&&this.renderer.addClass(this.elementRef.nativeElement,`fa-${r.size.currentValue}`),r.size.previousValue!=null&&this.renderer.removeClass(this.elementRef.nativeElement,`fa-${r.size.previousValue}`))}};n.ɵfac=function(s){return new(s||n)(Ce(zs),Ce(qe),Ce(Ou))},n.ɵcmp=Ye({type:n,selectors:[["fa-layers"]],hostVars:2,hostBindings:function(s,o){s&2&&Em("fa-fw",o.fixedWidth)},inputs:{size:"size",fixedWidth:"fixedWidth"},features:[Ht],ngContentSelectors:xT,decls:1,vars:0,template:function(s,o){s&1&&(Sm(),Tm(0))},encapsulation:2});let e=n;return e})(),dv=(()=>{const n=class n{constructor(r,s){this.parent=r,this.sanitizer=s,this.document=g(we),this.config=g(Ou),FT(this.parent,"FaLayersComponent",this.constructor.name)}ngOnChanges(r){if(r){const s=this.buildParams();this.updateContent(s)}}buildParams(){return{title:this.title,classes:this.position!=null?[`fa-layers-${this.position}`]:void 0}}updateContent(r){Fu(this.document,this.config),this.renderedHTML=this.sanitizer.bypassSecurityTrustHtml(xH(this.content||"",r).html.join(""))}};n.ɵfac=function(s){return new(s||n)(Ce(hc,8),Ce($s))},n.ɵcmp=Ye({type:n,selectors:[["fa-layers-counter"]],hostAttrs:[1,"ng-fa-layers-counter"],hostVars:1,hostBindings:function(s,o){s&2&&gu("innerHTML",o.renderedHTML,la)},inputs:{content:"content",title:"title",position:"position"},features:[Ht],decls:0,vars:0,template:function(s,o){},encapsulation:2});let e=n;return e})(),pv=(()=>{const n=class n{constructor(r,s){this.parent=r,this.sanitizer=s,this.document=g(we),this.config=g(Ou),FT(this.parent,"FaLayersComponent",this.constructor.name)}ngOnChanges(r){if(r){const s=this.buildParams();this.updateContent(s)}}buildParams(){const r={flip:this.flip,border:this.border,inverse:this.inverse,size:this.size||null,pull:this.pull||null,rotate:this.rotate||null,fixedWidth:this.fixedWidth},s=typeof this.transform=="string"?IT.transform(this.transform):this.transform,o={};return r.rotate!=null&&!ig(r.rotate)&&(o["--fa-rotate-angle"]=`${r.rotate}`),{transform:s,classes:RT(r),title:this.title,styles:o}}updateContent(r){Fu(this.document,this.config),this.renderedHTML=this.sanitizer.bypassSecurityTrustHtml(IH(this.content||"",r).html.join(` +`))}};n.ɵfac=function(s){return new(s||n)(Ce(hc,8),Ce($s))},n.ɵcmp=Ye({type:n,selectors:[["fa-layers-text"]],hostAttrs:[1,"ng-fa-layers-text"],hostVars:1,hostBindings:function(s,o){s&2&&gu("innerHTML",o.renderedHTML,la)},inputs:{content:"content",title:"title",flip:"flip",size:"size",pull:"pull",border:"border",inverse:"inverse",rotate:"rotate",fixedWidth:"fixedWidth",transform:"transform"},features:[Ht],decls:0,vars:0,template:function(s,o){},encapsulation:2});let e=n;return e})(),LH=(()=>{const n=class n{};n.ɵfac=function(s){return new(s||n)},n.ɵmod=hr({type:n,imports:[_d,fv,hc,pv,dv,yd,gd],exports:[_d,fv,hc,pv,dv,yd,gd]}),n.ɵinj=lr({});let e=n;return e})();const is=class is{};is.ɵfac=function(n){return new(n||is)},is.ɵcmp=Ye({type:is,selectors:[["dk-contact"]],decls:42,vars:0,consts:[["id","footer"],["id","contact",1,"inner"],[1,"major"],[1,"contact"],[1,"icon","solid","fa-envelope"],["href","mailto:mail@k9n.dev"],[1,"icon","brands","fa-github"],["href","https://github.com/d-koppenhagen"],["rel","me","href","https://bsky.app/profile/k9n.dev"],[1,"icon","brands","fa-twitter"],["href","https://twitter.com/d_koppenhagen"],[1,"icon","brands","fa-linkedin"],["href","https://www.linkedin.com/in/d-koppenhagen/"],[1,"icon","brands","fa-xing"],["href","https://www.xing.com/profile/Danny_Koppenhagen"],[1,"copyright"],["href","https://html5up.net"],["href","https://github.com/d-koppenhagen/k9n.dev/issues"],["href","https://github.com/d-koppenhagen/k9n.dev/pulls"],["routerLink","/contact"]],template:function(n,i){n&1&&(le(0,"footer",0)(1,"div",1)(2,"h2",2),Ee(3,"Kontaktieren Sie mich"),be(),le(4,"p"),Ee(5," Haben Sie Fragen oder Anregungen? Nehmen Sie gern Kontakt mit mir auf! "),be(),le(6,"ul",3)(7,"li",4)(8,"a",5),Ee(9,"mail@k9n.dev"),be()(),le(10,"li",6)(11,"a",7),Ee(12,"github.com/d-koppenhagen"),be()(),le(13,"li")(14,"a",8),Ee(15," bsky.app/k9n.dev "),be()(),le(16,"li",9)(17,"a",10),Ee(18,"x.com/d_koppenhagen"),be()(),le(19,"li",11)(20,"a",12),Ee(21,"linkedin.com/in/d-koppenhagen"),be()(),le(22,"li",13)(23,"a",14),Ee(24,"xing.com/profile/Danny_Koppenhagen"),be()()(),le(25,"ul",15)(26,"li"),Ee(27,"© 2023 by Danny Koppenhagen"),be(),le(28,"li"),Ee(29,"Design: "),le(30,"a",16),Ee(31,"HTML5 UP"),be()(),le(32,"li"),Ee(33," Vorschläge? Feedback? Bugs? "),le(34,"a",17),Ee(35," Stell ein Issue ein"),be(),Ee(36,", "),le(37,"a",18),Ee(38,"sende mir einen PR"),be(),Ee(39," oder "),le(40,"a",19),Ee(41,"kontaktiere mich"),be()()()()())},dependencies:[Bo],styles:[`@media screen and (min-width: 736px) { + ul.contact[_ngcontent-%COMP%] { + columns: 2; + width: 100% !important; + } +}`]});let vd=is;const ss=class ss{constructor(){this.accepted=lx()}acceptCookies(){this.accepted.emit(!0)}};ss.ɵfac=function(n){return new(n||ss)},ss.ɵcmp=Ye({type:ss,selectors:[["dk-cookie-banner"]],outputs:{accepted:"accepted"},decls:5,vars:0,consts:[["id","cookie-banner"],[1,"banner-text"],["type","button",1,"button","small",3,"click"]],template:function(n,i){n&1&&(le(0,"div",0)(1,"span",1),Ee(2,"🍪 Diese Website nutzt Cookies um eine bestmögliche Nutzererfahrung zu gewährleisten."),be(),le(3,"button",2),mt("click",function(){return i.acceptCookies()}),Ee(4," Okay! "),be()())},styles:[`#cookie-banner[_ngcontent-%COMP%] { + opacity: 0.9; + z-index: 10000; + position: fixed; + bottom: 0px; + width: 100%; + display: flex; + justify-content: space-between; + align-items: baseline; + background-color: #5e7959; +} +#cookie-banner[_ngcontent-%COMP%] .banner-text[_ngcontent-%COMP%], +#cookie-banner[_ngcontent-%COMP%] button[_ngcontent-%COMP%] { + margin: 15px; +} +@media screen and (max-width: 480px) { + button.small[_ngcontent-%COMP%] { + padding: 0 8px !important; + } +}`]});let bd=ss;/** + * @license Angular v19.0.5 + * (c) 2010-2024 Google LLC. https://angular.io/ + * License: MIT + */var ae=function(t){return t[t.State=0]="State",t[t.Transition=1]="Transition",t[t.Sequence=2]="Sequence",t[t.Group=3]="Group",t[t.Animate=4]="Animate",t[t.Keyframes=5]="Keyframes",t[t.Style=6]="Style",t[t.Trigger=7]="Trigger",t[t.Reference=8]="Reference",t[t.AnimateChild=9]="AnimateChild",t[t.AnimateRef=10]="AnimateRef",t[t.Query=11]="Query",t[t.Stagger=12]="Stagger",t}(ae||{});const Kn="*";function MH(t,e){return{type:ae.Trigger,name:t,definitions:e,options:{}}}function BH(t,e=null){return{type:ae.Animate,styles:e,timings:t}}function jH(t,e=null){return{type:ae.Sequence,steps:t,options:e}}function Xi(t){return{type:ae.Style,styles:t,offset:null}}function mv(t,e,n){return{type:ae.State,name:t,styles:e,options:n}}function zH(t,e,n=null){return{type:ae.Transition,expr:t,animation:e,options:n}}class Ho{constructor(e=0,n=0){l(this,"_onDoneFns",[]);l(this,"_onStartFns",[]);l(this,"_onDestroyFns",[]);l(this,"_originalOnDoneFns",[]);l(this,"_originalOnStartFns",[]);l(this,"_started",!1);l(this,"_destroyed",!1);l(this,"_finished",!1);l(this,"_position",0);l(this,"parentPlayer",null);l(this,"totalTime");this.totalTime=e+n}_onFinish(){this._finished||(this._finished=!0,this._onDoneFns.forEach(e=>e()),this._onDoneFns=[])}onStart(e){this._originalOnStartFns.push(e),this._onStartFns.push(e)}onDone(e){this._originalOnDoneFns.push(e),this._onDoneFns.push(e)}onDestroy(e){this._onDestroyFns.push(e)}hasStarted(){return this._started}init(){}play(){this.hasStarted()||(this._onStart(),this.triggerMicrotask()),this._started=!0}triggerMicrotask(){queueMicrotask(()=>this._onFinish())}_onStart(){this._onStartFns.forEach(e=>e()),this._onStartFns=[]}pause(){}restart(){}finish(){this._onFinish()}destroy(){this._destroyed||(this._destroyed=!0,this.hasStarted()||this._onStart(),this.finish(),this._onDestroyFns.forEach(e=>e()),this._onDestroyFns=[])}reset(){this._started=!1,this._finished=!1,this._onStartFns=this._originalOnStartFns,this._onDoneFns=this._originalOnDoneFns}setPosition(e){this._position=this.totalTime?e*this.totalTime:1}getPosition(){return this.totalTime?this._position/this.totalTime:1}triggerCallback(e){const n=e=="start"?this._onStartFns:this._onDoneFns;n.forEach(i=>i()),n.length=0}}class OT{constructor(e){l(this,"_onDoneFns",[]);l(this,"_onStartFns",[]);l(this,"_finished",!1);l(this,"_started",!1);l(this,"_destroyed",!1);l(this,"_onDestroyFns",[]);l(this,"parentPlayer",null);l(this,"totalTime",0);l(this,"players");this.players=e;let n=0,i=0,r=0;const s=this.players.length;s==0?queueMicrotask(()=>this._onFinish()):this.players.forEach(o=>{o.onDone(()=>{++n==s&&this._onFinish()}),o.onDestroy(()=>{++i==s&&this._onDestroy()}),o.onStart(()=>{++r==s&&this._onStart()})}),this.totalTime=this.players.reduce((o,a)=>Math.max(o,a.totalTime),0)}_onFinish(){this._finished||(this._finished=!0,this._onDoneFns.forEach(e=>e()),this._onDoneFns=[])}init(){this.players.forEach(e=>e.init())}onStart(e){this._onStartFns.push(e)}_onStart(){this.hasStarted()||(this._started=!0,this._onStartFns.forEach(e=>e()),this._onStartFns=[])}onDone(e){this._onDoneFns.push(e)}onDestroy(e){this._onDestroyFns.push(e)}hasStarted(){return this._started}play(){this.parentPlayer||this.init(),this._onStart(),this.players.forEach(e=>e.play())}pause(){this.players.forEach(e=>e.pause())}restart(){this.players.forEach(e=>e.restart())}finish(){this._onFinish(),this.players.forEach(e=>e.finish())}destroy(){this._onDestroy()}_onDestroy(){this._destroyed||(this._destroyed=!0,this._onFinish(),this.players.forEach(e=>e.destroy()),this._onDestroyFns.forEach(e=>e()),this._onDestroyFns=[])}reset(){this.players.forEach(e=>e.reset()),this._destroyed=!1,this._finished=!1,this._started=!1}setPosition(e){const n=e*this.totalTime;this.players.forEach(i=>{const r=i.totalTime?Math.min(1,n/i.totalTime):1;i.setPosition(r)})}getPosition(){const e=this.players.reduce((n,i)=>n===null||i.totalTime>n.totalTime?i:n,null);return e!=null?e.getPosition():0}beforeDestroy(){this.players.forEach(e=>{e.beforeDestroy&&e.beforeDestroy()})}triggerCallback(e){const n=e=="start"?this._onStartFns:this._onDoneFns;n.forEach(i=>i()),n.length=0}}const sg="!",HH=(t,e)=>e.value;function UH(t,e){if(t&1&&(le(0,"span",0),Ee(1),be()),t&2){const n=e.$implicit;ha("@slotSpinner",n.state),wr(),$C(n.value)}}const os=class os{constructor(){this.changeDetector=g(Us),this.ngZone=g(ge),this.result=Up.required(),this.currentIndex=0,this.slots=[..."ABCDEFGHIJKLMNOPQRSTUVWXYZ123456789#?!=+&%$§"].map(e=>({value:e,state:"out"}))}get matchValue(){return this.result().toUpperCase()}ngOnInit(){this.animateSpin()}animateSpin(){this.ngZone.runOutsideAngular(()=>{const e=Math.floor(Math.random()*100)+150;this.slots.forEach(n=>n.state="out"),this.currentIndex=Math.floor(Math.random()*this.slots.length),this.slots[this.currentIndex].state="in",this.intervalInstance=setInterval(()=>{this.currentIndex++,this.currentIndex===this.slots.length&&(this.currentIndex=0),this.currentIndex!==0?this.slots[this.currentIndex-1].state="out":this.slots[this.slots.length-1].state="out",this.slots[this.currentIndex].state="in";const n=this.slots.findIndex(i=>i.value===this.matchValue);this.currentIndex===n&&clearInterval(this.intervalInstance),this.changeDetector.detectChanges()},e)})}};os.ɵfac=function(n){return new(n||os)},os.ɵcmp=Ye({type:os,selectors:[["dk-text-slot"]],inputs:{result:[1,"result"]},decls:2,vars:0,consts:[[1,"text-slot"]],template:function(n,i){n&1&&BC(0,UH,2,2,"span",0,HH),n&2&&jC(i.slots)},styles:[`.text-slot[_ngcontent-%COMP%] { + position: relative; + overflow: hidden; +}`],data:{animation:[MH("slotSpinner",[mv("in",Xi({opacity:1,transform:"translateY(0)"})),mv("out",Xi({opacity:0,display:"none",transform:"translateY(-100%)"})),zH("* => in",[Xi({transform:"translateY(100%)",opacity:0}),BH("0.1s",Xi({transform:"translateY(0)",opacity:1}))])])]},changeDetection:0});let Ed=os;function VH(t,e){if(t&1&&(wm(0,0),pn(1,"dk-text-slot",1),Cm()),t&2){const n=e.$implicit;wr(),ha("result",n)}}const as=class as{constructor(){this.result=Up.required()}get letters(){return[...this.result()]}};as.ɵfac=function(n){return new(n||as)},as.ɵcmp=Ye({type:as,selectors:[["dk-text-slot-machine"]],inputs:{result:[1,"result"]},decls:2,vars:0,consts:[[1,"text-slot-machine"],[3,"result"]],template:function(n,i){n&1&&BC(0,VH,2,1,"ng-container",0,d2),n&2&&jC(i.letters)},dependencies:[Ed],styles:[`.text-slot-machine[_ngcontent-%COMP%] { + position: relative; + display: inline-block; + text-overflow: clip; + overflow: hidden; + max-height: 100px; + display: block; + overflow: hidden; +}`],changeDetection:0});let wd=as;function $H(t,e){t&1&&(le(0,"span",5),Ee(1,"9"),be())}function WH(t,e){t&1&&(pn(0,"dk-text-slot-machine",8),Ee(1,"n "))}function GH(t,e){t&1&&(le(0,"span"),Ee(1,"n.dev"),be())}const ls=class ls{constructor(){this.expanded=!1}onMouseEnter(){this.checkScreenWidth()}onMouseLeave(){this.expanded=!1}checkScreenWidth(){if(window?.innerHeight){const e=window.innerWidth;this.expanded=e>900}}};ls.ɵfac=function(n){return new(n||ls)},ls.ɵcmp=Ye({type:ls,selectors:[["dk-header"]],decls:14,vars:3,consts:[["id","banner"],[1,"inner"],["routerLink","/","aria-label","Zur Startseite","title","Startseite","id","logo"],["src","images/logo_header.png","alt","Logo"],["tabindex","0","aria-label","Textanimation: k9n.dev verändert sich zu 'Koppenhagen' zur Visualisierung des Numeronyms","aria-describedby","about-k9n",1,"header-title",3,"mouseenter","mouseleave","focus","blur"],[1,"headline-expanded"],[1,"sub-header-title"],[1,"sub-header"],["result","oppenhage",1,"headline-expanded"]],template:function(n,i){n&1&&(le(0,"header",0)(1,"div",1)(2,"a",2),pn(3,"img",3),be(),le(4,"h1",4),mt("mouseenter",function(){return i.onMouseEnter()})("mouseleave",function(){return i.onMouseLeave()})("focus",function(){return i.onMouseEnter()})("blur",function(){return i.onMouseLeave()}),le(5,"span"),Ee(6,"k"),be(),du(7,$H,2,0,"span",5)(8,WH,2,0)(9,GH,2,0,"span"),be(),le(10,"p",6),Ee(11,"Danny Koppenhagen"),be(),le(12,"p",7),Ee(13,"Entwickler, IT-Berater, Buchautor"),be()()()),n&2&&(wr(7),fl(i.expanded?-1:7),wr(),fl(i.expanded?8:-1),wr(),fl(i.expanded?-1:9))},dependencies:[Bo,wd],styles:[`.header-title[_ngcontent-%COMP%] { + background-image: url("/images/bg-triangles.jpg"); + background-size: cover; + font-size: 5em; + font-family: "Montserrat", sans-serif; + line-height: 1.1; + font-weight: 700; + margin-bottom: 0.2em; + background-clip: text; + color: rgba(0, 0, 0, 0.2901960784); +} + +.sub-header-title[_ngcontent-%COMP%] { + color: #2e3141; + font-size: 1.6em !important; + margin-bottom: 0.5em; + line-height: 1.3 !important; +} + +.sub-header[_ngcontent-%COMP%] { + color: #2e3141; + font-size: 1.2em; +} + +#banner[_ngcontent-%COMP%] { + background-image: url("/images/dk-header.webp"); + background-repeat: no-repeat; + background-position: right; + background-size: contain; + background-color: #fdfdfd; + padding: 9em 0 12em 0; + animation: _ngcontent-%COMP%_headerFadeIn 3s; +} + +@keyframes _ngcontent-%COMP%_headerFadeIn { + from { + opacity: 0; + } + to { + opacity: 1; + } +} + +#logo[_ngcontent-%COMP%] { + position: absolute; + top: 5px; +} + +#logo[_ngcontent-%COMP%] img[_ngcontent-%COMP%] { + width: 70px; + animation: _ngcontent-%COMP%_move-to-top 1s ease, _ngcontent-%COMP%_rotate 4s ease 1; +} + +#logo[_ngcontent-%COMP%]:focus, +h1[_ngcontent-%COMP%]:focus { + outline: 1px solid rgba(185, 167, 167, 0.4); +} + +@keyframes _ngcontent-%COMP%_rotate { + 100% { + transform: rotatey(360deg); + } +} + +@keyframes _ngcontent-%COMP%_move-to-top { + 0% { + top: 100px; + } + 100% { + top: 0px; + } +} + +@media screen and (max-width: 1150px) { + #banner[_ngcontent-%COMP%] { + background-position: right -200px top; + } +} + +@media screen and (max-width: 980px) { + #banner[_ngcontent-%COMP%] { + background-size: contain; + padding: 6em 0 10em 0; + background-position: right -200px top; + } +} + +@media screen and (max-width: 800px) { + .header-title[_ngcontent-%COMP%] { + font-size: 4em; + } +} + +@media screen and (max-width: 736px) { + .sub-header[_ngcontent-%COMP%] { + font-size: 1em !important; + padding-right: 110px; + } + #banner[_ngcontent-%COMP%] { + padding: 6em 0 5em 0; + } +} + +@media screen and (max-width: 620px) { + .header-title[_ngcontent-%COMP%] { + font-size: 3.5em; + padding-right: 40vw; + } + #banner[_ngcontent-%COMP%] { + background-size: cover; + background-position: right -180px top; + } +} + +@media screen and (max-width: 560px) { + .header-title[_ngcontent-%COMP%] { + font-size: 3em; + padding-right: 50vw; + } +} + +@media screen and (max-width: 400px) { + .header-title[_ngcontent-%COMP%] { + opacity: 0.7; + font-size: 2.5em; + padding-right: 50vw; + } +}`]});let Cd=ls,Sd;try{Sd=typeof Intl<"u"&&Intl.v8BreakIterator}catch{Sd=!1}let $t=(()=>{const n=class n{constructor(){l(this,"_platformId",g(Jt));l(this,"isBrowser",this._platformId?wu(this._platformId):typeof document=="object"&&!!document);l(this,"EDGE",this.isBrowser&&/(edge)/i.test(navigator.userAgent));l(this,"TRIDENT",this.isBrowser&&/(msie|trident)/i.test(navigator.userAgent));l(this,"BLINK",this.isBrowser&&!!(window.chrome||Sd)&&typeof CSS<"u"&&!this.EDGE&&!this.TRIDENT);l(this,"WEBKIT",this.isBrowser&&/AppleWebKit/i.test(navigator.userAgent)&&!this.BLINK&&!this.EDGE&&!this.TRIDENT);l(this,"IOS",this.isBrowser&&/iPad|iPhone|iPod/.test(navigator.userAgent)&&!("MSStream"in window));l(this,"FIREFOX",this.isBrowser&&/(firefox|minefield)/i.test(navigator.userAgent));l(this,"ANDROID",this.isBrowser&&/android/i.test(navigator.userAgent)&&!this.TRIDENT);l(this,"SAFARI",this.isBrowser&&/safari/i.test(navigator.userAgent)&&this.WEBKIT)}};l(n,"ɵfac",function(s){return new(s||n)}),l(n,"ɵprov",O({token:n,factory:n.ɵfac,providedIn:"root"}));let e=n;return e})(),Xs;function qH(){if(Xs==null&&typeof window<"u")try{window.addEventListener("test",null,Object.defineProperty({},"passive",{get:()=>Xs=!0}))}finally{Xs=Xs||!1}return Xs}function PT(t){return qH()?t:!!t.capture}var An=function(t){return t[t.NORMAL=0]="NORMAL",t[t.NEGATED=1]="NEGATED",t[t.INVERTED=2]="INVERTED",t}(An||{});let Ga,Wr;function NT(){if(Wr==null){if(typeof document!="object"||!document||typeof Element!="function"||!Element)return Wr=!1,Wr;if("scrollBehavior"in document.documentElement.style)Wr=!0;else{const t=Element.prototype.scrollTo;t?Wr=!/\{\s*\[native code\]\s*\}/.test(t.toString()):Wr=!1}}return Wr}function Js(){if(typeof document!="object"||!document)return An.NORMAL;if(Ga==null){const t=document.createElement("div"),e=t.style;t.dir="rtl",e.width="1px",e.overflow="auto",e.visibility="hidden",e.pointerEvents="none",e.position="absolute";const n=document.createElement("div"),i=n.style;i.width="2px",i.height="1px",t.appendChild(n),document.body.appendChild(t),Ga=An.NORMAL,t.scrollLeft===0&&(t.scrollLeft=1,Ga=t.scrollLeft===0?An.NEGATED:An.INVERTED),t.remove()}return Ga}let Oh;function ZH(){if(Oh==null){const t=typeof document<"u"?document.head:null;Oh=!!(t&&(t.createShadowRoot||t.attachShadow))}return Oh}function YH(t){if(ZH()){const e=t.getRootNode?t.getRootNode():null;if(typeof ShadowRoot<"u"&&ShadowRoot&&e instanceof ShadowRoot)return e}return null}function Tl(){let t=typeof document<"u"&&document?document.activeElement:null;for(;t&&t.shadowRoot;){const e=t.shadowRoot.activeElement;if(e===t)break;t=e}return t}function Tr(t){return t.composedPath?t.composedPath()[0]:t.target}function gv(){return typeof __karma__<"u"&&!!__karma__||typeof jasmine<"u"&&!!jasmine||typeof jest<"u"&&!!jest||typeof Mocha<"u"&&!!Mocha}const qa=new WeakMap;let Pu=(()=>{const n=class n{constructor(){l(this,"_appRef");l(this,"_injector",g(gt));l(this,"_environmentInjector",g(Yt))}load(r){const s=this._appRef=this._appRef||this._injector.get(Mn);let o=qa.get(s);o||(o={loaders:new Set,refs:[]},qa.set(s,o),s.onDestroy(()=>{qa.get(s)?.refs.forEach(a=>a.destroy()),qa.delete(s)})),o.loaders.has(r)||(o.loaders.add(r),o.refs.push(YC(r,{environmentInjector:this._environmentInjector})))}};l(n,"ɵfac",function(s){return new(s||n)}),l(n,"ɵprov",O({token:n,factory:n.ɵfac,providedIn:"root"}));let e=n;return e})(),LT=(()=>{const n=class n{};l(n,"ɵfac",function(s){return new(s||n)}),l(n,"ɵcmp",Ye({type:n,selectors:[["ng-component"]],exportAs:["cdkVisuallyHidden"],decls:0,vars:0,template:function(s,o){},styles:[".cdk-visually-hidden{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;white-space:nowrap;outline:0;-webkit-appearance:none;-moz-appearance:none;left:0}[dir=rtl] .cdk-visually-hidden{left:auto;right:0}"],encapsulation:2,changeDetection:0}));let e=n;return e})();const KH=16,QH=17,XH=18,MT=27,JH=48,e4=57,t4=65,n4=90,r4=91,i4=224;function BT(t,...e){return e.length?e.some(n=>t[n]):t.altKey||t.shiftKey||t.ctrlKey||t.metaKey}function yv(t){return Go(t)?t:G(t)}function bo(t,e=0){return s4(t)?Number(t):arguments.length===2?e:0}function s4(t){return!isNaN(parseFloat(t))&&!isNaN(Number(t))}function fc(t){return Array.isArray(t)?t:[t]}function Qe(t){return t==null?"":typeof t=="string"?t:`${t}px`}function Eo(t){return t instanceof qe?t.nativeElement:t}function o4(t){if(t.type==="characterData"&&t.target instanceof Comment)return!0;if(t.type==="childList"){for(let e=0;e{const n=class n{create(r){return typeof MutationObserver>"u"?null:new MutationObserver(r)}};l(n,"ɵfac",function(s){return new(s||n)}),l(n,"ɵprov",O({token:n,factory:n.ɵfac,providedIn:"root"}));let e=n;return e})(),zT=(()=>{const n=class n{constructor(){l(this,"_mutationObserverFactory",g(jT));l(this,"_observedElements",new Map);l(this,"_ngZone",g(ge))}ngOnDestroy(){this._observedElements.forEach((r,s)=>this._cleanupObserver(s))}observe(r){const s=Eo(r);return new xe(o=>{const c=this._observeElement(s).pipe(ue(u=>u.filter(h=>!o4(h))),At(u=>!!u.length)).subscribe(u=>{this._ngZone.run(()=>{o.next(u)})});return()=>{c.unsubscribe(),this._unobserveElement(s)}})}_observeElement(r){return this._ngZone.runOutsideAngular(()=>{if(this._observedElements.has(r))this._observedElements.get(r).count++;else{const s=new oe,o=this._mutationObserverFactory.create(a=>s.next(a));o&&o.observe(r,{characterData:!0,childList:!0,subtree:!0}),this._observedElements.set(r,{observer:o,stream:s,count:1})}return this._observedElements.get(r).stream})}_unobserveElement(r){this._observedElements.has(r)&&(this._observedElements.get(r).count--,this._observedElements.get(r).count||this._cleanupObserver(r))}_cleanupObserver(r){if(this._observedElements.has(r)){const{observer:s,stream:o}=this._observedElements.get(r);s&&s.disconnect(),o.complete(),this._observedElements.delete(r)}}};l(n,"ɵfac",function(s){return new(s||n)}),l(n,"ɵprov",O({token:n,factory:n.ɵfac,providedIn:"root"}));let e=n;return e})(),_v=(()=>{const n=class n{constructor(){l(this,"_contentObserver",g(zT));l(this,"_elementRef",g(qe));l(this,"event",new Ue);l(this,"_disabled",!1);l(this,"_debounce");l(this,"_currentSubscription",null)}get disabled(){return this._disabled}set disabled(r){this._disabled=r,this._disabled?this._unsubscribe():this._subscribe()}get debounce(){return this._debounce}set debounce(r){this._debounce=bo(r),this._subscribe()}ngAfterContentInit(){!this._currentSubscription&&!this.disabled&&this._subscribe()}ngOnDestroy(){this._unsubscribe()}_subscribe(){this._unsubscribe();const r=this._contentObserver.observe(this._elementRef);this._currentSubscription=(this.debounce?r.pipe(dp(this.debounce)):r).subscribe(this.event)}_unsubscribe(){this._currentSubscription?.unsubscribe()}};l(n,"ɵfac",function(s){return new(s||n)}),l(n,"ɵdir",Ge({type:n,selectors:[["","cdkObserveContent",""]],inputs:{disabled:[2,"cdkObserveContentDisabled","disabled",Ot],debounce:"debounce"},outputs:{event:"cdkObserveContent"},exportAs:["cdkObserveContent"],features:[ca]}));let e=n;return e})(),vv=(()=>{const n=class n{};l(n,"ɵfac",function(s){return new(s||n)}),l(n,"ɵmod",hr({type:n,imports:[_v],exports:[_v]})),l(n,"ɵinj",lr({providers:[jT]}));let e=n;return e})();const bv=new Set;let Gr,a4=(()=>{const n=class n{constructor(){l(this,"_platform",g($t));l(this,"_nonce",g(Vp,{optional:!0}));l(this,"_matchMedia");this._matchMedia=this._platform.isBrowser&&window.matchMedia?window.matchMedia.bind(window):c4}matchMedia(r){return(this._platform.WEBKIT||this._platform.BLINK)&&l4(r,this._nonce),this._matchMedia(r)}};l(n,"ɵfac",function(s){return new(s||n)}),l(n,"ɵprov",O({token:n,factory:n.ɵfac,providedIn:"root"}));let e=n;return e})();function l4(t,e){if(!bv.has(t))try{Gr||(Gr=document.createElement("style"),e&&Gr.setAttribute("nonce",e),Gr.setAttribute("type","text/css"),document.head.appendChild(Gr)),Gr.sheet&&(Gr.sheet.insertRule(`@media ${t} {body{ }}`,0),bv.add(t))}catch(n){console.error(n)}}function c4(t){return{matches:t==="all"||t==="",media:t,addListener:()=>{},removeListener:()=>{}}}let u4=(()=>{const n=class n{constructor(){l(this,"_mediaMatcher",g(a4));l(this,"_zone",g(ge));l(this,"_queries",new Map);l(this,"_destroySubject",new oe)}ngOnDestroy(){this._destroySubject.next(),this._destroySubject.complete()}isMatched(r){return Ev(fc(r)).some(o=>this._registerQuery(o).mql.matches)}observe(r){const o=Ev(fc(r)).map(c=>this._registerQuery(c).observable);let a=up(o);return a=Nl(a.pipe(Jn(1)),a.pipe(Rb(1),dp(0))),a.pipe(ue(c=>{const u={matches:!1,breakpoints:{}};return c.forEach(({matches:h,query:f})=>{u.matches=u.matches||h,u.breakpoints[f]=h}),u}))}_registerQuery(r){if(this._queries.has(r))return this._queries.get(r);const s=this._mediaMatcher.matchMedia(r),a={observable:new xe(c=>{const u=h=>this._zone.run(()=>c.next(h));return s.addListener(u),()=>{s.removeListener(u)}}).pipe(Zo(s),ue(({matches:c})=>({query:r,matches:c})),Ln(this._destroySubject)),mql:s};return this._queries.set(r,a),a}};l(n,"ɵfac",function(s){return new(s||n)}),l(n,"ɵprov",O({token:n,factory:n.ɵfac,providedIn:"root"}));let e=n;return e})();function Ev(t){return t.map(e=>e.split(",")).reduce((e,n)=>e.concat(n)).map(e=>e.trim())}const h4=200;class f4{constructor(e,n){l(this,"_letterKeyStream",new oe);l(this,"_items",[]);l(this,"_selectedItemIndex",-1);l(this,"_pressedLetters",[]);l(this,"_skipPredicateFn");l(this,"_selectedItem",new oe);l(this,"selectedItem",this._selectedItem);const i=typeof n?.debounceInterval=="number"?n.debounceInterval:h4;n?.skipPredicate&&(this._skipPredicateFn=n.skipPredicate),this.setItems(e),this._setupKeyHandler(i)}destroy(){this._pressedLetters=[],this._letterKeyStream.complete(),this._selectedItem.complete()}setCurrentSelectedItemIndex(e){this._selectedItemIndex=e}setItems(e){this._items=e}handleKey(e){const n=e.keyCode;e.key&&e.key.length===1?this._letterKeyStream.next(e.key.toLocaleUpperCase()):(n>=t4&&n<=n4||n>=JH&&n<=e4)&&this._letterKeyStream.next(String.fromCharCode(n))}isTyping(){return this._pressedLetters.length>0}reset(){this._pressedLetters=[]}_setupKeyHandler(e){this._letterKeyStream.pipe(nt(n=>this._pressedLetters.push(n)),dp(e),At(()=>this._pressedLetters.length>0),ue(()=>this._pressedLetters.join("").toLocaleUpperCase())).subscribe(n=>{for(let i=1;i!1);l(this,"_trackByFn",e=>e);l(this,"_items",[]);l(this,"_typeahead");l(this,"_typeaheadSubscription",Je.EMPTY);l(this,"_hasInitialFocused",!1);l(this,"change",new oe);e instanceof NE?(this._items=e.toArray(),e.changes.subscribe(i=>{this._items=i.toArray(),this._typeahead?.setItems(this._items),this._updateActiveItemIndex(this._items),this._initializeFocus()})):Go(e)?e.subscribe(i=>{this._items=i,this._typeahead?.setItems(i),this._updateActiveItemIndex(i),this._initializeFocus()}):(this._items=e,this._initializeFocus()),typeof n.shouldActivationFollowFocus=="boolean"&&(this._shouldActivationFollowFocus=n.shouldActivationFollowFocus),n.horizontalOrientation&&(this._horizontalOrientation=n.horizontalOrientation),n.skipPredicate&&(this._skipPredicateFn=n.skipPredicate),n.trackBy&&(this._trackByFn=n.trackBy),typeof n.typeAheadDebounceInterval<"u"&&this._setTypeAhead(n.typeAheadDebounceInterval)}_initializeFocus(){if(this._hasInitialFocused||this._items.length===0)return;let e=0;for(let i=0;ithis._trackByFn(o)===this._trackByFn(e));if(i<0||i>=this._items.length)return;const r=this._items[i];if(this._activeItem!==null&&this._trackByFn(r)===this._trackByFn(this._activeItem))return;const s=this._activeItem;this._activeItem=r??null,this._activeItemIndex=i,this._typeahead?.setCurrentSelectedItemIndex(i),this._activeItem?.focus(),s?.unfocus(),n.emitChangeEvent&&this.change.next(this._activeItem),this._shouldActivationFollowFocus&&this._activateCurrentItem()}_updateActiveItemIndex(e){const n=this._activeItem;if(!n)return;const i=e.findIndex(r=>this._trackByFn(r)===this._trackByFn(n));i>-1&&i!==this._activeItemIndex&&(this._activeItemIndex=i,this._typeahead?.setCurrentSelectedItemIndex(i))}_setTypeAhead(e){this._typeahead=new f4(this._items,{debounceInterval:typeof e=="number"?e:void 0,skipPredicate:n=>this._skipPredicateFn(n)}),this._typeaheadSubscription=this._typeahead.selectedItem.subscribe(n=>{this.focusItem(n)})}_findNextAvailableItemIndex(e){for(let n=e+1;n=0;n--)if(!this._skipPredicateFn(this._items[n]))return n;return e}_collapseCurrentItem(){if(this._activeItem)if(this._isCurrentItemExpanded())this._activeItem.collapse();else{const e=this._activeItem.getParent();if(!e||this._skipPredicateFn(e))return;this.focusItem(e)}}_expandCurrentItem(){this._activeItem&&(this._isCurrentItemExpanded()?yv(this._activeItem.getChildren()).pipe(Jn(1)).subscribe(e=>{const n=e.find(i=>!this._skipPredicateFn(i));n&&this.focusItem(n)}):this._activeItem.expand())}_isCurrentItemExpanded(){return this._activeItem?typeof this._activeItem.isExpanded=="boolean"?this._activeItem.isExpanded:this._activeItem.isExpanded():!1}_isItemDisabled(e){return typeof e.isDisabled=="boolean"?e.isDisabled:e.isDisabled?.()}_expandAllItemsAtCurrentItemLevel(){if(!this._activeItem)return;const e=this._activeItem.getParent();let n;e?n=yv(e.getChildren()):n=G(this._items.filter(i=>i.getParent()===null)),n.pipe(Jn(1)).subscribe(i=>{for(const r of i)r.expand()})}_activateCurrentItem(){this._activeItem?.activate()}}function p4(){return(t,e)=>new d4(t,e)}const I7=new B("tree-key-manager",{providedIn:"root",factory:p4});let HT=(()=>{const n=class n{constructor(){l(this,"_platform",g($t))}isDisabled(r){return r.hasAttribute("disabled")}isVisible(r){return g4(r)&&getComputedStyle(r).visibility==="visible"}isTabbable(r){if(!this._platform.isBrowser)return!1;const s=m4(S4(r));if(s&&(wv(s)===-1||!this.isVisible(s)))return!1;let o=r.nodeName.toLowerCase(),a=wv(r);return r.hasAttribute("contenteditable")?a!==-1:o==="iframe"||o==="object"||this._platform.WEBKIT&&this._platform.IOS&&!w4(r)?!1:o==="audio"?r.hasAttribute("controls")?a!==-1:!1:o==="video"?a===-1?!1:a!==null?!0:this._platform.FIREFOX||r.hasAttribute("controls"):r.tabIndex>=0}isFocusable(r,s){return C4(r)&&!this.isDisabled(r)&&(s?.ignoreVisibility||this.isVisible(r))}};l(n,"ɵfac",function(s){return new(s||n)}),l(n,"ɵprov",O({token:n,factory:n.ɵfac,providedIn:"root"}));let e=n;return e})();function m4(t){try{return t.frameElement}catch{return null}}function g4(t){return!!(t.offsetWidth||t.offsetHeight||typeof t.getClientRects=="function"&&t.getClientRects().length)}function y4(t){let e=t.nodeName.toLowerCase();return e==="input"||e==="select"||e==="button"||e==="textarea"}function _4(t){return b4(t)&&t.type=="hidden"}function v4(t){return E4(t)&&t.hasAttribute("href")}function b4(t){return t.nodeName.toLowerCase()=="input"}function E4(t){return t.nodeName.toLowerCase()=="a"}function UT(t){if(!t.hasAttribute("tabindex")||t.tabIndex===void 0)return!1;let e=t.getAttribute("tabindex");return!!(e&&!isNaN(parseInt(e,10)))}function wv(t){if(!UT(t))return null;const e=parseInt(t.getAttribute("tabindex")||"",10);return isNaN(e)?-1:e}function w4(t){let e=t.nodeName.toLowerCase(),n=e==="input"&&t.type;return n==="text"||n==="password"||e==="select"||e==="textarea"}function C4(t){return _4(t)?!1:y4(t)||v4(t)||t.hasAttribute("contenteditable")||UT(t)}function S4(t){return t.ownerDocument&&t.ownerDocument.defaultView||window}class T4{constructor(e,n,i,r,s=!1,o){l(this,"_element");l(this,"_checker");l(this,"_ngZone");l(this,"_document");l(this,"_injector");l(this,"_startAnchor");l(this,"_endAnchor");l(this,"_hasAttached",!1);l(this,"startAnchorListener",()=>this.focusLastTabbableElement());l(this,"endAnchorListener",()=>this.focusFirstTabbableElement());l(this,"_enabled",!0);this._element=e,this._checker=n,this._ngZone=i,this._document=r,this._injector=o,s||this.attachAnchors()}get enabled(){return this._enabled}set enabled(e){this._enabled=e,this._startAnchor&&this._endAnchor&&(this._toggleAnchorTabIndex(e,this._startAnchor),this._toggleAnchorTabIndex(e,this._endAnchor))}destroy(){const e=this._startAnchor,n=this._endAnchor;e&&(e.removeEventListener("focus",this.startAnchorListener),e.remove()),n&&(n.removeEventListener("focus",this.endAnchorListener),n.remove()),this._startAnchor=this._endAnchor=null,this._hasAttached=!1}attachAnchors(){return this._hasAttached?!0:(this._ngZone.runOutsideAngular(()=>{this._startAnchor||(this._startAnchor=this._createAnchor(),this._startAnchor.addEventListener("focus",this.startAnchorListener)),this._endAnchor||(this._endAnchor=this._createAnchor(),this._endAnchor.addEventListener("focus",this.endAnchorListener))}),this._element.parentNode&&(this._element.parentNode.insertBefore(this._startAnchor,this._element),this._element.parentNode.insertBefore(this._endAnchor,this._element.nextSibling),this._hasAttached=!0),this._hasAttached)}focusInitialElementWhenReady(e){return new Promise(n=>{this._executeOnStable(()=>n(this.focusInitialElement(e)))})}focusFirstTabbableElementWhenReady(e){return new Promise(n=>{this._executeOnStable(()=>n(this.focusFirstTabbableElement(e)))})}focusLastTabbableElementWhenReady(e){return new Promise(n=>{this._executeOnStable(()=>n(this.focusLastTabbableElement(e)))})}_getRegionBoundary(e){const n=this._element.querySelectorAll(`[cdk-focus-region-${e}], [cdkFocusRegion${e}], [cdk-focus-${e}]`);return e=="start"?n.length?n[0]:this._getFirstTabbableElement(this._element):n.length?n[n.length-1]:this._getLastTabbableElement(this._element)}focusInitialElement(e){const n=this._element.querySelector("[cdk-focus-initial], [cdkFocusInitial]");if(n){if(!this._checker.isFocusable(n)){const i=this._getFirstTabbableElement(n);return i?.focus(e),!!i}return n.focus(e),!0}return this.focusFirstTabbableElement(e)}focusFirstTabbableElement(e){const n=this._getRegionBoundary("start");return n&&n.focus(e),!!n}focusLastTabbableElement(e){const n=this._getRegionBoundary("end");return n&&n.focus(e),!!n}hasAttached(){return this._hasAttached}_getFirstTabbableElement(e){if(this._checker.isFocusable(e)&&this._checker.isTabbable(e))return e;const n=e.children;for(let i=0;i=0;i--){const r=n[i].nodeType===this._document.ELEMENT_NODE?this._getLastTabbableElement(n[i]):null;if(r)return r}return null}_createAnchor(){const e=this._document.createElement("div");return this._toggleAnchorTabIndex(this._enabled,e),e.classList.add("cdk-visually-hidden"),e.classList.add("cdk-focus-trap-anchor"),e.setAttribute("aria-hidden","true"),e}_toggleAnchorTabIndex(e,n){e?n.setAttribute("tabindex","0"):n.removeAttribute("tabindex")}toggleAnchors(e){this._startAnchor&&this._endAnchor&&(this._toggleAnchorTabIndex(e,this._startAnchor),this._toggleAnchorTabIndex(e,this._endAnchor))}_executeOnStable(e){this._injector?ws(e,{injector:this._injector}):setTimeout(e)}}let VT=(()=>{const n=class n{constructor(){l(this,"_checker",g(HT));l(this,"_ngZone",g(ge));l(this,"_document",g(we));l(this,"_injector",g(gt));g(Pu).load(LT)}create(r,s=!1){return new T4(r,this._checker,this._ngZone,this._document,s,this._injector)}};l(n,"ɵfac",function(s){return new(s||n)}),l(n,"ɵprov",O({token:n,factory:n.ɵfac,providedIn:"root"}));let e=n;return e})(),Cv=(()=>{const n=class n{constructor(){l(this,"_elementRef",g(qe));l(this,"_focusTrapFactory",g(VT));l(this,"focusTrap");l(this,"_previouslyFocusedElement",null);l(this,"autoCapture");g($t).isBrowser&&(this.focusTrap=this._focusTrapFactory.create(this._elementRef.nativeElement,!0))}get enabled(){return this.focusTrap?.enabled||!1}set enabled(r){this.focusTrap&&(this.focusTrap.enabled=r)}ngOnDestroy(){this.focusTrap?.destroy(),this._previouslyFocusedElement&&(this._previouslyFocusedElement.focus(),this._previouslyFocusedElement=null)}ngAfterContentInit(){this.focusTrap?.attachAnchors(),this.autoCapture&&this._captureFocus()}ngDoCheck(){this.focusTrap&&!this.focusTrap.hasAttached()&&this.focusTrap.attachAnchors()}ngOnChanges(r){const s=r.autoCapture;s&&!s.firstChange&&this.autoCapture&&this.focusTrap?.hasAttached()&&this._captureFocus()}_captureFocus(){this._previouslyFocusedElement=Tl(),this.focusTrap?.focusInitialElementWhenReady()}};l(n,"ɵfac",function(s){return new(s||n)}),l(n,"ɵdir",Ge({type:n,selectors:[["","cdkTrapFocus",""]],inputs:{enabled:[2,"cdkTrapFocus","enabled",Ot],autoCapture:[2,"cdkTrapFocusAutoCapture","autoCapture",Ot]},exportAs:["cdkTrapFocus"],features:[ca,Ht]}));let e=n;return e})();function A4(t){return t.buttons===0||t.detail===0}function k4(t){const e=t.touches&&t.touches[0]||t.changedTouches&&t.changedTouches[0];return!!e&&e.identifier===-1&&(e.radiusX==null||e.radiusX===1)&&(e.radiusY==null||e.radiusY===1)}const D4=new B("cdk-input-modality-detector-options"),I4={ignoreKeys:[XH,QH,i4,r4,KH]},$T=650,Hi=PT({passive:!0,capture:!0});let x4=(()=>{const n=class n{constructor(){l(this,"_platform",g($t));l(this,"modalityDetected");l(this,"modalityChanged");l(this,"_mostRecentTarget",null);l(this,"_modality",new Pt(null));l(this,"_options");l(this,"_lastTouchMs",0);l(this,"_onKeydown",r=>{this._options?.ignoreKeys?.some(s=>s===r.keyCode)||(this._modality.next("keyboard"),this._mostRecentTarget=Tr(r))});l(this,"_onMousedown",r=>{Date.now()-this._lastTouchMs<$T||(this._modality.next(A4(r)?"keyboard":"mouse"),this._mostRecentTarget=Tr(r))});l(this,"_onTouchstart",r=>{if(k4(r)){this._modality.next("keyboard");return}this._lastTouchMs=Date.now(),this._modality.next("touch"),this._mostRecentTarget=Tr(r)});const r=g(ge),s=g(we),o=g(D4,{optional:!0});this._options={...I4,...o},this.modalityDetected=this._modality.pipe(Rb(1)),this.modalityChanged=this.modalityDetected.pipe(Ib()),this._platform.isBrowser&&r.runOutsideAngular(()=>{s.addEventListener("keydown",this._onKeydown,Hi),s.addEventListener("mousedown",this._onMousedown,Hi),s.addEventListener("touchstart",this._onTouchstart,Hi)})}get mostRecentModality(){return this._modality.value}ngOnDestroy(){this._modality.complete(),this._platform.isBrowser&&(document.removeEventListener("keydown",this._onKeydown,Hi),document.removeEventListener("mousedown",this._onMousedown,Hi),document.removeEventListener("touchstart",this._onTouchstart,Hi))}};l(n,"ɵfac",function(s){return new(s||n)}),l(n,"ɵprov",O({token:n,factory:n.ɵfac,providedIn:"root"}));let e=n;return e})();const R4=new B("liveAnnouncerElement",{providedIn:"root",factory:F4});function F4(){return null}const O4=new B("LIVE_ANNOUNCER_DEFAULT_OPTIONS");let P4=0,N4=(()=>{const n=class n{constructor(){l(this,"_ngZone",g(ge));l(this,"_defaultOptions",g(O4,{optional:!0}));l(this,"_liveElement");l(this,"_document",g(we));l(this,"_previousTimeout");l(this,"_currentPromise");l(this,"_currentResolve");const r=g(R4,{optional:!0});this._liveElement=r||this._createLiveElement()}announce(r,...s){const o=this._defaultOptions;let a,c;return s.length===1&&typeof s[0]=="number"?c=s[0]:[a,c]=s,this.clear(),clearTimeout(this._previousTimeout),a||(a=o&&o.politeness?o.politeness:"polite"),c==null&&o&&(c=o.duration),this._liveElement.setAttribute("aria-live",a),this._liveElement.id&&this._exposeAnnouncerToModals(this._liveElement.id),this._ngZone.runOutsideAngular(()=>(this._currentPromise||(this._currentPromise=new Promise(u=>this._currentResolve=u)),clearTimeout(this._previousTimeout),this._previousTimeout=setTimeout(()=>{this._liveElement.textContent=r,typeof c=="number"&&(this._previousTimeout=setTimeout(()=>this.clear(),c)),this._currentResolve?.(),this._currentPromise=this._currentResolve=void 0},100),this._currentPromise))}clear(){this._liveElement&&(this._liveElement.textContent="")}ngOnDestroy(){clearTimeout(this._previousTimeout),this._liveElement?.remove(),this._liveElement=null,this._currentResolve?.(),this._currentPromise=this._currentResolve=void 0}_createLiveElement(){const r="cdk-live-announcer-element",s=this._document.getElementsByClassName(r),o=this._document.createElement("div");for(let a=0;a .cdk-overlay-container [aria-modal="true"]');for(let o=0;o{const n=class n{constructor(){l(this,"_elementRef",g(qe));l(this,"_liveAnnouncer",g(N4));l(this,"_contentObserver",g(zT));l(this,"_ngZone",g(ge));l(this,"_politeness","polite");l(this,"duration");l(this,"_previousAnnouncedText");l(this,"_subscription");g(Pu).load(LT)}get politeness(){return this._politeness}set politeness(r){this._politeness=r==="off"||r==="assertive"?r:"polite",this._politeness==="off"?this._subscription&&(this._subscription.unsubscribe(),this._subscription=null):this._subscription||(this._subscription=this._ngZone.runOutsideAngular(()=>this._contentObserver.observe(this._elementRef).subscribe(()=>{const s=this._elementRef.nativeElement.textContent;s!==this._previousAnnouncedText&&(this._liveAnnouncer.announce(s,this._politeness,this.duration),this._previousAnnouncedText=s)})))}ngOnDestroy(){this._subscription&&this._subscription.unsubscribe()}};l(n,"ɵfac",function(s){return new(s||n)}),l(n,"ɵdir",Ge({type:n,selectors:[["","cdkAriaLive",""]],inputs:{politeness:[0,"cdkAriaLive","politeness"],duration:[0,"cdkAriaLiveDuration","duration"]},exportAs:["cdkAriaLive"]}));let e=n;return e})();var Al=function(t){return t[t.IMMEDIATE=0]="IMMEDIATE",t[t.EVENTUAL=1]="EVENTUAL",t}(Al||{});const L4=new B("cdk-focus-monitor-default-options"),Za=PT({passive:!0,capture:!0});let WT=(()=>{const n=class n{constructor(){l(this,"_ngZone",g(ge));l(this,"_platform",g($t));l(this,"_inputModalityDetector",g(x4));l(this,"_origin",null);l(this,"_lastFocusOrigin");l(this,"_windowFocused",!1);l(this,"_windowFocusTimeoutId");l(this,"_originTimeoutId");l(this,"_originFromTouchInteraction",!1);l(this,"_elementInfo",new Map);l(this,"_monitoredElementCount",0);l(this,"_rootNodeFocusListenerCount",new Map);l(this,"_detectionMode");l(this,"_windowFocusListener",()=>{this._windowFocused=!0,this._windowFocusTimeoutId=setTimeout(()=>this._windowFocused=!1)});l(this,"_document",g(we,{optional:!0}));l(this,"_stopInputModalityDetector",new oe);l(this,"_rootNodeFocusAndBlurListener",r=>{const s=Tr(r);for(let o=s;o;o=o.parentElement)r.type==="focus"?this._onFocus(r,o):this._onBlur(r,o)});const r=g(L4,{optional:!0});this._detectionMode=r?.detectionMode||Al.IMMEDIATE}monitor(r,s=!1){const o=Eo(r);if(!this._platform.isBrowser||o.nodeType!==1)return G();const a=YH(o)||this._getDocument(),c=this._elementInfo.get(o);if(c)return s&&(c.checkChildren=!0),c.subject;const u={checkChildren:s,subject:new oe,rootNode:a};return this._elementInfo.set(o,u),this._registerGlobalListeners(u),u.subject}stopMonitoring(r){const s=Eo(r),o=this._elementInfo.get(s);o&&(o.subject.complete(),this._setClasses(s),this._elementInfo.delete(s),this._removeGlobalListeners(o))}focusVia(r,s,o){const a=Eo(r),c=this._getDocument().activeElement;a===c?this._getClosestElementsInfo(a).forEach(([u,h])=>this._originChanged(u,s,h)):(this._setOrigin(s),typeof a.focus=="function"&&a.focus(o))}ngOnDestroy(){this._elementInfo.forEach((r,s)=>this.stopMonitoring(s))}_getDocument(){return this._document||document}_getWindow(){return this._getDocument().defaultView||window}_getFocusOrigin(r){return this._origin?this._originFromTouchInteraction?this._shouldBeAttributedToTouch(r)?"touch":"program":this._origin:this._windowFocused&&this._lastFocusOrigin?this._lastFocusOrigin:r&&this._isLastInteractionFromInputLabel(r)?"mouse":"program"}_shouldBeAttributedToTouch(r){return this._detectionMode===Al.EVENTUAL||!!r?.contains(this._inputModalityDetector._mostRecentTarget)}_setClasses(r,s){r.classList.toggle("cdk-focused",!!s),r.classList.toggle("cdk-touch-focused",s==="touch"),r.classList.toggle("cdk-keyboard-focused",s==="keyboard"),r.classList.toggle("cdk-mouse-focused",s==="mouse"),r.classList.toggle("cdk-program-focused",s==="program")}_setOrigin(r,s=!1){this._ngZone.runOutsideAngular(()=>{if(this._origin=r,this._originFromTouchInteraction=r==="touch"&&s,this._detectionMode===Al.IMMEDIATE){clearTimeout(this._originTimeoutId);const o=this._originFromTouchInteraction?$T:1;this._originTimeoutId=setTimeout(()=>this._origin=null,o)}})}_onFocus(r,s){const o=this._elementInfo.get(s),a=Tr(r);!o||!o.checkChildren&&s!==a||this._originChanged(s,this._getFocusOrigin(a),o)}_onBlur(r,s){const o=this._elementInfo.get(s);!o||o.checkChildren&&r.relatedTarget instanceof Node&&s.contains(r.relatedTarget)||(this._setClasses(s),this._emitOrigin(o,null))}_emitOrigin(r,s){r.subject.observers.length&&this._ngZone.run(()=>r.subject.next(s))}_registerGlobalListeners(r){if(!this._platform.isBrowser)return;const s=r.rootNode,o=this._rootNodeFocusListenerCount.get(s)||0;o||this._ngZone.runOutsideAngular(()=>{s.addEventListener("focus",this._rootNodeFocusAndBlurListener,Za),s.addEventListener("blur",this._rootNodeFocusAndBlurListener,Za)}),this._rootNodeFocusListenerCount.set(s,o+1),++this._monitoredElementCount===1&&(this._ngZone.runOutsideAngular(()=>{this._getWindow().addEventListener("focus",this._windowFocusListener)}),this._inputModalityDetector.modalityDetected.pipe(Ln(this._stopInputModalityDetector)).subscribe(a=>{this._setOrigin(a,!0)}))}_removeGlobalListeners(r){const s=r.rootNode;if(this._rootNodeFocusListenerCount.has(s)){const o=this._rootNodeFocusListenerCount.get(s);o>1?this._rootNodeFocusListenerCount.set(s,o-1):(s.removeEventListener("focus",this._rootNodeFocusAndBlurListener,Za),s.removeEventListener("blur",this._rootNodeFocusAndBlurListener,Za),this._rootNodeFocusListenerCount.delete(s))}--this._monitoredElementCount||(this._getWindow().removeEventListener("focus",this._windowFocusListener),this._stopInputModalityDetector.next(),clearTimeout(this._windowFocusTimeoutId),clearTimeout(this._originTimeoutId))}_originChanged(r,s,o){this._setClasses(r,s),this._emitOrigin(o,s),this._lastFocusOrigin=s}_getClosestElementsInfo(r){const s=[];return this._elementInfo.forEach((o,a)=>{(a===r||o.checkChildren&&a.contains(r))&&s.push([a,o])}),s}_isLastInteractionFromInputLabel(r){const{_mostRecentTarget:s,mostRecentModality:o}=this._inputModalityDetector;if(o!=="mouse"||!s||s===r||r.nodeName!=="INPUT"&&r.nodeName!=="TEXTAREA"||r.disabled)return!1;const a=r.labels;if(a){for(let c=0;c{const n=class n{constructor(){l(this,"_elementRef",g(qe));l(this,"_focusMonitor",g(WT));l(this,"_monitorSubscription");l(this,"_focusOrigin",null);l(this,"cdkFocusChange",new Ue)}get focusOrigin(){return this._focusOrigin}ngAfterViewInit(){const r=this._elementRef.nativeElement;this._monitorSubscription=this._focusMonitor.monitor(r,r.nodeType===1&&r.hasAttribute("cdkMonitorSubtreeFocus")).subscribe(s=>{this._focusOrigin=s,this.cdkFocusChange.emit(s)})}ngOnDestroy(){this._focusMonitor.stopMonitoring(this._elementRef),this._monitorSubscription&&this._monitorSubscription.unsubscribe()}};l(n,"ɵfac",function(s){return new(s||n)}),l(n,"ɵdir",Ge({type:n,selectors:[["","cdkMonitorElementFocus",""],["","cdkMonitorSubtreeFocus",""]],outputs:{cdkFocusChange:"cdkFocusChange"},exportAs:["cdkMonitorFocus"]}));let e=n;return e})();var Kr=function(t){return t[t.NONE=0]="NONE",t[t.BLACK_ON_WHITE=1]="BLACK_ON_WHITE",t[t.WHITE_ON_BLACK=2]="WHITE_ON_BLACK",t}(Kr||{});const Av="cdk-high-contrast-black-on-white",kv="cdk-high-contrast-white-on-black",Ph="cdk-high-contrast-active";let M4=(()=>{const n=class n{constructor(){l(this,"_platform",g($t));l(this,"_hasCheckedHighContrastMode");l(this,"_document",g(we));l(this,"_breakpointSubscription");this._breakpointSubscription=g(u4).observe("(forced-colors: active)").subscribe(()=>{this._hasCheckedHighContrastMode&&(this._hasCheckedHighContrastMode=!1,this._applyBodyHighContrastModeCssClasses())})}getHighContrastMode(){if(!this._platform.isBrowser)return Kr.NONE;const r=this._document.createElement("div");r.style.backgroundColor="rgb(1,2,3)",r.style.position="absolute",this._document.body.appendChild(r);const s=this._document.defaultView||window,o=s&&s.getComputedStyle?s.getComputedStyle(r):null,a=(o&&o.backgroundColor||"").replace(/ /g,"");switch(r.remove(),a){case"rgb(0,0,0)":case"rgb(45,50,54)":case"rgb(32,32,32)":return Kr.WHITE_ON_BLACK;case"rgb(255,255,255)":case"rgb(255,250,239)":return Kr.BLACK_ON_WHITE}return Kr.NONE}ngOnDestroy(){this._breakpointSubscription.unsubscribe()}_applyBodyHighContrastModeCssClasses(){if(!this._hasCheckedHighContrastMode&&this._platform.isBrowser&&this._document.body){const r=this._document.body.classList;r.remove(Ph,Av,kv),this._hasCheckedHighContrastMode=!0;const s=this.getHighContrastMode();s===Kr.BLACK_ON_WHITE?r.add(Ph,Av):s===Kr.WHITE_ON_BLACK&&r.add(Ph,kv)}}};l(n,"ɵfac",function(s){return new(s||n)}),l(n,"ɵprov",O({token:n,factory:n.ɵfac,providedIn:"root"}));let e=n;return e})(),Dv=(()=>{const n=class n{constructor(){g(M4)._applyBodyHighContrastModeCssClasses()}};l(n,"ɵfac",function(s){return new(s||n)}),l(n,"ɵmod",hr({type:n,imports:[vv,Sv,Cv,Tv],exports:[Sv,Cv,Tv]})),l(n,"ɵinj",lr({imports:[vv]}));let e=n;return e})();const Nh={};let GT=(()=>{const n=class n{constructor(){l(this,"_appId",g(Kc))}getId(r){return this._appId!=="ng"&&(r+=this._appId),Nh.hasOwnProperty(r)||(Nh[r]=0),`${r}${Nh[r]++}`}};l(n,"ɵfac",function(s){return new(s||n)}),l(n,"ɵprov",O({token:n,factory:n.ɵfac,providedIn:"root"}));let e=n;return e})();const B4=new B("cdk-dir-doc",{providedIn:"root",factory:j4});function j4(){return g(we)}const z4=/^(ar|ckb|dv|he|iw|fa|nqo|ps|sd|ug|ur|yi|.*[-_](Adlm|Arab|Hebr|Nkoo|Rohg|Thaa))(?!.*[-_](Latn|Cyrl)($|-|_))($|-|_)/i;function qT(t){const e=t?.toLowerCase()||"";return e==="auto"&&typeof navigator<"u"&&navigator?.language?z4.test(navigator.language)?"rtl":"ltr":e==="rtl"?"rtl":"ltr"}let Ds=(()=>{const n=class n{constructor(){l(this,"value","ltr");l(this,"change",new Ue);const r=g(B4,{optional:!0});if(r){const s=r.body?r.body.dir:null,o=r.documentElement?r.documentElement.dir:null;this.value=qT(s||o||"ltr")}}ngOnDestroy(){this.change.complete()}};l(n,"ɵfac",function(s){return new(s||n)}),l(n,"ɵprov",O({token:n,factory:n.ɵfac,providedIn:"root"}));let e=n;return e})(),Iv=(()=>{const n=class n{constructor(){l(this,"_dir","ltr");l(this,"_isInitialized",!1);l(this,"_rawDir");l(this,"change",new Ue)}get dir(){return this._dir}set dir(r){const s=this._dir;this._dir=qT(r),this._rawDir=r,s!==this._dir&&this._isInitialized&&this.change.emit(this._dir)}get value(){return this.dir}ngAfterContentInit(){this._isInitialized=!0}ngOnDestroy(){this.change.complete()}};l(n,"ɵfac",function(s){return new(s||n)}),l(n,"ɵdir",Ge({type:n,selectors:[["","dir",""]],hostVars:1,hostBindings:function(s,o){s&2&&Hs("dir",o._rawDir)},inputs:{dir:"dir"},outputs:{change:"dirChange"},exportAs:["dir"],features:[Hr([{provide:Ds,useExisting:n}])]}));let e=n;return e})(),Ji=(()=>{const n=class n{};l(n,"ɵfac",function(s){return new(s||n)}),l(n,"ɵmod",hr({type:n,imports:[Iv],exports:[Iv]})),l(n,"ɵinj",lr({}));let e=n;return e})();class H4{}function U4(t){return t&&typeof t.connect=="function"&&!(t instanceof Yh)}class V4 extends H4{constructor(n){super();l(this,"_data");this._data=n}connect(){return Go(this._data)?this._data:G(this._data)}disconnect(){}}var co=function(t){return t[t.REPLACED=0]="REPLACED",t[t.INSERTED=1]="INSERTED",t[t.MOVED=2]="MOVED",t[t.REMOVED=3]="REMOVED",t}(co||{});const xv=new B("_ViewRepeater");class $4{constructor(){l(this,"viewCacheSize",20);l(this,"_viewCache",[])}applyChanges(e,n,i,r,s){e.forEachOperation((o,a,c)=>{let u,h;if(o.previousIndex==null){const f=()=>i(o,a,c);u=this._insertView(f,c,n,r(o)),h=u?co.INSERTED:co.REPLACED}else c==null?(this._detachAndCacheView(a,n),h=co.REMOVED):(u=this._moveView(a,c,n,r(o)),h=co.MOVED);s&&s({context:u?.context,operation:h,record:o})})}detach(){for(const e of this._viewCache)e.destroy();this._viewCache=[]}_insertView(e,n,i,r){const s=this._insertViewFromCache(n,i);if(s){s.context.$implicit=r;return}const o=e();return i.createEmbeddedView(o.templateRef,o.context,o.index)}_detachAndCacheView(e,n){const i=n.detach(e);this._maybeCacheView(i,n)}_moveView(e,n,i,r){const s=i.get(e);return i.move(s,n),s.context.$implicit=r,s}_maybeCacheView(e,n){if(this._viewCache.lengththis._markSelected(s)):this._markSelected(n[0]),this._selectedToEmit.length=0)}get selected(){return this._selected||(this._selected=Array.from(this._selection.values())),this._selected}select(...e){this._verifyValueAssignment(e),e.forEach(i=>this._markSelected(i));const n=this._hasQueuedChanges();return this._emitChangeEvent(),n}deselect(...e){this._verifyValueAssignment(e),e.forEach(i=>this._unmarkSelected(i));const n=this._hasQueuedChanges();return this._emitChangeEvent(),n}setSelection(...e){this._verifyValueAssignment(e);const n=this.selected,i=new Set(e);e.forEach(s=>this._markSelected(s)),n.filter(s=>!i.has(this._getConcreteValue(s,i))).forEach(s=>this._unmarkSelected(s));const r=this._hasQueuedChanges();return this._emitChangeEvent(),r}toggle(e){return this.isSelected(e)?this.deselect(e):this.select(e)}clear(e=!0){this._unmarkAll();const n=this._hasQueuedChanges();return e&&this._emitChangeEvent(),n}isSelected(e){return this._selection.has(this._getConcreteValue(e))}isEmpty(){return this._selection.size===0}hasValue(){return!this.isEmpty()}sort(e){this._multiple&&this.selected&&this._selected.sort(e)}isMultipleSelection(){return this._multiple}_emitChangeEvent(){this._selected=null,(this._selectedToEmit.length||this._deselectedToEmit.length)&&(this.changed.next({source:this,added:this._selectedToEmit,removed:this._deselectedToEmit}),this._deselectedToEmit=[],this._selectedToEmit=[])}_markSelected(e){e=this._getConcreteValue(e),this.isSelected(e)||(this._multiple||this._unmarkAll(),this.isSelected(e)||this._selection.add(e),this._emitChanges&&this._selectedToEmit.push(e))}_unmarkSelected(e){e=this._getConcreteValue(e),this.isSelected(e)&&(this._selection.delete(e),this._emitChanges&&this._deselectedToEmit.push(e))}_unmarkAll(){this.isEmpty()||this._selection.forEach(e=>this._unmarkSelected(e))}_verifyValueAssignment(e){e.length>1&&this._multiple}_hasQueuedChanges(){return!!(this._deselectedToEmit.length||this._selectedToEmit.length)}_getConcreteValue(e,n){if(this.compareWith){n=n??this._selection;for(let i of n)if(this.compareWith(e,i))return i;return e}else return e}}const W4=["contentWrapper"],G4=["*"],ZT=new B("VIRTUAL_SCROLL_STRATEGY");class q4{constructor(e,n,i){l(this,"_scrolledIndexChange",new oe);l(this,"scrolledIndexChange",this._scrolledIndexChange.pipe(Ib()));l(this,"_viewport",null);l(this,"_itemSize");l(this,"_minBufferPx");l(this,"_maxBufferPx");this._itemSize=e,this._minBufferPx=n,this._maxBufferPx=i}attach(e){this._viewport=e,this._updateTotalContentSize(),this._updateRenderedRange()}detach(){this._scrolledIndexChange.complete(),this._viewport=null}updateItemAndBufferSize(e,n,i){i0?s/this._itemSize:0;if(n.end>r){const c=Math.ceil(i/this._itemSize),u=Math.max(0,Math.min(o,r-c));o!=u&&(o=u,s=u*this._itemSize,n.start=Math.floor(o)),n.end=Math.max(0,Math.min(r,n.start+c))}const a=s-n.start*this._itemSize;if(a0&&(n.end=Math.min(r,n.end+u),n.start=Math.max(0,Math.floor(o-this._minBufferPx/this._itemSize)))}}this._viewport.setRenderedRange(n),this._viewport.setRenderedContentOffset(this._itemSize*n.start),this._scrolledIndexChange.next(Math.floor(o))}}function Z4(t){return t._scrollStrategy}let Rv=(()=>{const n=class n{constructor(){l(this,"_itemSize",20);l(this,"_minBufferPx",100);l(this,"_maxBufferPx",200);l(this,"_scrollStrategy",new q4(this.itemSize,this.minBufferPx,this.maxBufferPx))}get itemSize(){return this._itemSize}set itemSize(r){this._itemSize=bo(r)}get minBufferPx(){return this._minBufferPx}set minBufferPx(r){this._minBufferPx=bo(r)}get maxBufferPx(){return this._maxBufferPx}set maxBufferPx(r){this._maxBufferPx=bo(r)}ngOnChanges(){this._scrollStrategy.updateItemAndBufferSize(this.itemSize,this.minBufferPx,this.maxBufferPx)}};l(n,"ɵfac",function(s){return new(s||n)}),l(n,"ɵdir",Ge({type:n,selectors:[["cdk-virtual-scroll-viewport","itemSize",""]],inputs:{itemSize:"itemSize",minBufferPx:"minBufferPx",maxBufferPx:"maxBufferPx"},features:[Hr([{provide:ZT,useFactory:Z4,deps:[gp(()=>n)]}]),Ht]}));let e=n;return e})();const Y4=20;let YT=(()=>{const n=class n{constructor(){l(this,"_ngZone",g(ge));l(this,"_platform",g($t));l(this,"_document",g(we,{optional:!0}));l(this,"_scrolled",new oe);l(this,"_globalSubscription",null);l(this,"_scrolledCount",0);l(this,"scrollContainers",new Map)}register(r){this.scrollContainers.has(r)||this.scrollContainers.set(r,r.elementScrolled().subscribe(()=>this._scrolled.next(r)))}deregister(r){const s=this.scrollContainers.get(r);s&&(s.unsubscribe(),this.scrollContainers.delete(r))}scrolled(r=Y4){return this._platform.isBrowser?new xe(s=>{this._globalSubscription||this._addGlobalListener();const o=r>0?this._scrolled.pipe(fp(r)).subscribe(s):this._scrolled.subscribe(s);return this._scrolledCount++,()=>{o.unsubscribe(),this._scrolledCount--,this._scrolledCount||this._removeGlobalListener()}}):G()}ngOnDestroy(){this._removeGlobalListener(),this.scrollContainers.forEach((r,s)=>this.deregister(s)),this._scrolled.complete()}ancestorScrolled(r,s){const o=this.getAncestorScrollContainers(r);return this.scrolled(s).pipe(At(a=>!a||o.indexOf(a)>-1))}getAncestorScrollContainers(r){const s=[];return this.scrollContainers.forEach((o,a)=>{this._scrollableContainsElement(a,r)&&s.push(a)}),s}_getWindow(){return this._document.defaultView||window}_scrollableContainsElement(r,s){let o=Eo(s),a=r.getElementRef().nativeElement;do if(o==a)return!0;while(o=o.parentElement);return!1}_addGlobalListener(){this._globalSubscription=this._ngZone.runOutsideAngular(()=>{const r=this._getWindow();return ko(r.document,"scroll").subscribe(()=>this._scrolled.next())})}_removeGlobalListener(){this._globalSubscription&&(this._globalSubscription.unsubscribe(),this._globalSubscription=null)}};l(n,"ɵfac",function(s){return new(s||n)}),l(n,"ɵprov",O({token:n,factory:n.ɵfac,providedIn:"root"}));let e=n;return e})(),dc=(()=>{const n=class n{constructor(){l(this,"elementRef",g(qe));l(this,"scrollDispatcher",g(YT));l(this,"ngZone",g(ge));l(this,"dir",g(Ds,{optional:!0}));l(this,"_destroyed",new oe);l(this,"_elementScrolled",new xe(r=>this.ngZone.runOutsideAngular(()=>ko(this.elementRef.nativeElement,"scroll").pipe(Ln(this._destroyed)).subscribe(r))))}ngOnInit(){this.scrollDispatcher.register(this)}ngOnDestroy(){this.scrollDispatcher.deregister(this),this._destroyed.next(),this._destroyed.complete()}elementScrolled(){return this._elementScrolled}getElementRef(){return this.elementRef}scrollTo(r){const s=this.elementRef.nativeElement,o=this.dir&&this.dir.value=="rtl";r.left==null&&(r.left=o?r.end:r.start),r.right==null&&(r.right=o?r.start:r.end),r.bottom!=null&&(r.top=s.scrollHeight-s.clientHeight-r.bottom),o&&Js()!=An.NORMAL?(r.left!=null&&(r.right=s.scrollWidth-s.clientWidth-r.left),Js()==An.INVERTED?r.left=r.right:Js()==An.NEGATED&&(r.left=r.right?-r.right:r.right)):r.right!=null&&(r.left=s.scrollWidth-s.clientWidth-r.right),this._applyScrollToOptions(r)}_applyScrollToOptions(r){const s=this.elementRef.nativeElement;NT()?s.scrollTo(r):(r.top!=null&&(s.scrollTop=r.top),r.left!=null&&(s.scrollLeft=r.left))}measureScrollOffset(r){const s="left",o="right",a=this.elementRef.nativeElement;if(r=="top")return a.scrollTop;if(r=="bottom")return a.scrollHeight-a.clientHeight-a.scrollTop;const c=this.dir&&this.dir.value=="rtl";return r=="start"?r=c?o:s:r=="end"&&(r=c?s:o),c&&Js()==An.INVERTED?r==s?a.scrollWidth-a.clientWidth-a.scrollLeft:a.scrollLeft:c&&Js()==An.NEGATED?r==s?a.scrollLeft+a.scrollWidth-a.clientWidth:-a.scrollLeft:r==s?a.scrollLeft:a.scrollWidth-a.clientWidth-a.scrollLeft}};l(n,"ɵfac",function(s){return new(s||n)}),l(n,"ɵdir",Ge({type:n,selectors:[["","cdk-scrollable",""],["","cdkScrollable",""]]}));let e=n;return e})();const K4=20;let og=(()=>{const n=class n{constructor(){l(this,"_platform",g($t));l(this,"_listeners");l(this,"_viewportSize");l(this,"_change",new oe);l(this,"_document",g(we,{optional:!0}));const r=g(ge),s=g(Ri).createRenderer(null,null);r.runOutsideAngular(()=>{if(this._platform.isBrowser){const o=a=>this._change.next(a);this._listeners=[s.listen("window","resize",o),s.listen("window","orientationchange",o)]}this.change().subscribe(()=>this._viewportSize=null)})}ngOnDestroy(){this._listeners?.forEach(r=>r()),this._change.complete()}getViewportSize(){this._viewportSize||this._updateViewportSize();const r={width:this._viewportSize.width,height:this._viewportSize.height};return this._platform.isBrowser||(this._viewportSize=null),r}getViewportRect(){const r=this.getViewportScrollPosition(),{width:s,height:o}=this.getViewportSize();return{top:r.top,left:r.left,bottom:r.top+o,right:r.left+s,height:o,width:s}}getViewportScrollPosition(){if(!this._platform.isBrowser)return{top:0,left:0};const r=this._document,s=this._getWindow(),o=r.documentElement,a=o.getBoundingClientRect(),c=-a.top||r.body.scrollTop||s.scrollY||o.scrollTop||0,u=-a.left||r.body.scrollLeft||s.scrollX||o.scrollLeft||0;return{top:c,left:u}}change(r=K4){return r>0?this._change.pipe(fp(r)):this._change}_getWindow(){return this._document.defaultView||window}_updateViewportSize(){const r=this._getWindow();this._viewportSize=this._platform.isBrowser?{width:r.innerWidth,height:r.innerHeight}:{width:0,height:0}}};l(n,"ɵfac",function(s){return new(s||n)}),l(n,"ɵprov",O({token:n,factory:n.ɵfac,providedIn:"root"}));let e=n;return e})();const pc=new B("VIRTUAL_SCROLLABLE");let ag=(()=>{const n=class n extends dc{constructor(){super()}measureViewportSize(r){const s=this.elementRef.nativeElement;return r==="horizontal"?s.clientWidth:s.clientHeight}};l(n,"ɵfac",function(s){return new(s||n)}),l(n,"ɵdir",Ge({type:n,features:[_n]}));let e=n;return e})();function Q4(t,e){return t.start==e.start&&t.end==e.end}const X4=typeof requestAnimationFrame<"u"?S1:b1;let Td=(()=>{const n=class n extends ag{constructor(){super();l(this,"elementRef",g(qe));l(this,"_changeDetectorRef",g(Us));l(this,"_scrollStrategy",g(ZT,{optional:!0}));l(this,"scrollable",g(pc,{optional:!0}));l(this,"_platform",g($t));l(this,"_detachedSubject",new oe);l(this,"_renderedRangeSubject",new oe);l(this,"_orientation","vertical");l(this,"appendOnly",!1);l(this,"scrolledIndexChange",new xe(s=>this._scrollStrategy.scrolledIndexChange.subscribe(o=>Promise.resolve().then(()=>this.ngZone.run(()=>s.next(o))))));l(this,"_contentWrapper");l(this,"renderedRangeStream",this._renderedRangeSubject);l(this,"_totalContentSize",0);l(this,"_totalContentWidth","");l(this,"_totalContentHeight","");l(this,"_renderedContentTransform");l(this,"_renderedRange",{start:0,end:0});l(this,"_dataLength",0);l(this,"_viewportSize",0);l(this,"_forOf");l(this,"_renderedContentOffset",0);l(this,"_renderedContentOffsetNeedsRewrite",!1);l(this,"_isChangeDetectionPending",!1);l(this,"_runAfterChangeDetection",[]);l(this,"_viewportChanges",Je.EMPTY);l(this,"_injector",g(gt));l(this,"_isDestroyed",!1);const s=g(og);this._scrollStrategy,this._viewportChanges=s.change().subscribe(()=>{this.checkViewportSize()}),this.scrollable||(this.elementRef.nativeElement.classList.add("cdk-virtual-scrollable"),this.scrollable=this)}get orientation(){return this._orientation}set orientation(s){this._orientation!==s&&(this._orientation=s,this._calculateSpacerSize())}ngOnInit(){this._platform.isBrowser&&(this.scrollable===this&&super.ngOnInit(),this.ngZone.runOutsideAngular(()=>Promise.resolve().then(()=>{this._measureViewportSize(),this._scrollStrategy.attach(this),this.scrollable.elementScrolled().pipe(Zo(null),fp(0,X4),Ln(this._destroyed)).subscribe(()=>this._scrollStrategy.onContentScrolled()),this._markChangeDetectionNeeded()})))}ngOnDestroy(){this.detach(),this._scrollStrategy.detach(),this._renderedRangeSubject.complete(),this._detachedSubject.complete(),this._viewportChanges.unsubscribe(),this._isDestroyed=!0,super.ngOnDestroy()}attach(s){this._forOf,this.ngZone.runOutsideAngular(()=>{this._forOf=s,this._forOf.dataStream.pipe(Ln(this._detachedSubject)).subscribe(o=>{const a=o.length;a!==this._dataLength&&(this._dataLength=a,this._scrollStrategy.onDataLengthChanged()),this._doChangeDetection()})})}detach(){this._forOf=null,this._detachedSubject.next()}getDataLength(){return this._dataLength}getViewportSize(){return this._viewportSize}getRenderedRange(){return this._renderedRange}measureBoundingClientRectWithScrollOffset(s){return this.getElementRef().nativeElement.getBoundingClientRect()[s]}setTotalContentSize(s){this._totalContentSize!==s&&(this._totalContentSize=s,this._calculateSpacerSize(),this._markChangeDetectionNeeded())}setRenderedRange(s){Q4(this._renderedRange,s)||(this.appendOnly&&(s={start:0,end:Math.max(this._renderedRange.end,s.end)}),this._renderedRangeSubject.next(this._renderedRange=s),this._markChangeDetectionNeeded(()=>this._scrollStrategy.onContentRendered()))}getOffsetToRenderedContentStart(){return this._renderedContentOffsetNeedsRewrite?null:this._renderedContentOffset}setRenderedContentOffset(s,o="to-start"){s=this.appendOnly&&o==="to-start"?0:s;const a=this.dir&&this.dir.value=="rtl",c=this.orientation=="horizontal",u=c?"X":"Y";let f=`translate${u}(${Number((c&&a?-1:1)*s)}px)`;this._renderedContentOffset=s,o==="to-end"&&(f+=` translate${u}(-100%)`,this._renderedContentOffsetNeedsRewrite=!0),this._renderedContentTransform!=f&&(this._renderedContentTransform=f,this._markChangeDetectionNeeded(()=>{this._renderedContentOffsetNeedsRewrite?(this._renderedContentOffset-=this.measureRenderedContentSize(),this._renderedContentOffsetNeedsRewrite=!1,this.setRenderedContentOffset(this._renderedContentOffset)):this._scrollStrategy.onRenderedOffsetChanged()}))}scrollToOffset(s,o="auto"){const a={behavior:o};this.orientation==="horizontal"?a.start=s:a.top=s,this.scrollable.scrollTo(a)}scrollToIndex(s,o="auto"){this._scrollStrategy.scrollToIndex(s,o)}measureScrollOffset(s){let o;return this.scrollable==this?o=a=>super.measureScrollOffset(a):o=a=>this.scrollable.measureScrollOffset(a),Math.max(0,o(s??(this.orientation==="horizontal"?"start":"top"))-this.measureViewportOffset())}measureViewportOffset(s){let o;const a="left",c="right",u=this.dir?.value=="rtl";s=="start"?o=u?c:a:s=="end"?o=u?a:c:s?o=s:o=this.orientation==="horizontal"?"left":"top";const h=this.scrollable.measureBoundingClientRectWithScrollOffset(o);return this.elementRef.nativeElement.getBoundingClientRect()[o]-h}measureRenderedContentSize(){const s=this._contentWrapper.nativeElement;return this.orientation==="horizontal"?s.offsetWidth:s.offsetHeight}measureRangeSize(s){return this._forOf?this._forOf.measureRangeSize(s,this.orientation):0}checkViewportSize(){this._measureViewportSize(),this._scrollStrategy.onDataLengthChanged()}_measureViewportSize(){this._viewportSize=this.scrollable.measureViewportSize(this.orientation)}_markChangeDetectionNeeded(s){s&&this._runAfterChangeDetection.push(s),this._isChangeDetectionPending||(this._isChangeDetectionPending=!0,this.ngZone.runOutsideAngular(()=>Promise.resolve().then(()=>{this._doChangeDetection()})))}_doChangeDetection(){this._isDestroyed||this.ngZone.run(()=>{this._changeDetectorRef.markForCheck(),this._contentWrapper.nativeElement.style.transform=this._renderedContentTransform,ws(()=>{this._isChangeDetectionPending=!1;const s=this._runAfterChangeDetection;this._runAfterChangeDetection=[];for(const o of s)o()},{injector:this._injector})})}_calculateSpacerSize(){this._totalContentHeight=this.orientation==="horizontal"?"":`${this._totalContentSize}px`,this._totalContentWidth=this.orientation==="horizontal"?`${this._totalContentSize}px`:""}};l(n,"ɵfac",function(o){return new(o||n)}),l(n,"ɵcmp",Ye({type:n,selectors:[["cdk-virtual-scroll-viewport"]],viewQuery:function(o,a){if(o&1&&Am(W4,7),o&2){let c;yu(c=_u())&&(a._contentWrapper=c.first)}},hostAttrs:[1,"cdk-virtual-scroll-viewport"],hostVars:4,hostBindings:function(o,a){o&2&&Em("cdk-virtual-scroll-orientation-horizontal",a.orientation==="horizontal")("cdk-virtual-scroll-orientation-vertical",a.orientation!=="horizontal")},inputs:{orientation:"orientation",appendOnly:[2,"appendOnly","appendOnly",Ot]},outputs:{scrolledIndexChange:"scrolledIndexChange"},features:[Hr([{provide:dc,useFactory:(s,o)=>s||o,deps:[[new Hb,new UD(pc)],n]}]),ca,_n],ngContentSelectors:G4,decls:4,vars:4,consts:[["contentWrapper",""],[1,"cdk-virtual-scroll-content-wrapper"],[1,"cdk-virtual-scroll-spacer"]],template:function(o,a){o&1&&(Sm(),le(0,"div",1,0),Tm(2),be(),pn(3,"div",2)),o&2&&(wr(3),RC("width",a._totalContentWidth)("height",a._totalContentHeight))},styles:["cdk-virtual-scroll-viewport{display:block;position:relative;transform:translateZ(0)}.cdk-virtual-scrollable{overflow:auto;will-change:scroll-position;contain:strict;-webkit-overflow-scrolling:touch}.cdk-virtual-scroll-content-wrapper{position:absolute;top:0;left:0;contain:content}[dir=rtl] .cdk-virtual-scroll-content-wrapper{right:0;left:auto}.cdk-virtual-scroll-orientation-horizontal .cdk-virtual-scroll-content-wrapper{min-height:100%}.cdk-virtual-scroll-orientation-horizontal .cdk-virtual-scroll-content-wrapper>dl:not([cdkVirtualFor]),.cdk-virtual-scroll-orientation-horizontal .cdk-virtual-scroll-content-wrapper>ol:not([cdkVirtualFor]),.cdk-virtual-scroll-orientation-horizontal .cdk-virtual-scroll-content-wrapper>table:not([cdkVirtualFor]),.cdk-virtual-scroll-orientation-horizontal .cdk-virtual-scroll-content-wrapper>ul:not([cdkVirtualFor]){padding-left:0;padding-right:0;margin-left:0;margin-right:0;border-left-width:0;border-right-width:0;outline:none}.cdk-virtual-scroll-orientation-vertical .cdk-virtual-scroll-content-wrapper{min-width:100%}.cdk-virtual-scroll-orientation-vertical .cdk-virtual-scroll-content-wrapper>dl:not([cdkVirtualFor]),.cdk-virtual-scroll-orientation-vertical .cdk-virtual-scroll-content-wrapper>ol:not([cdkVirtualFor]),.cdk-virtual-scroll-orientation-vertical .cdk-virtual-scroll-content-wrapper>table:not([cdkVirtualFor]),.cdk-virtual-scroll-orientation-vertical .cdk-virtual-scroll-content-wrapper>ul:not([cdkVirtualFor]){padding-top:0;padding-bottom:0;margin-top:0;margin-bottom:0;border-top-width:0;border-bottom-width:0;outline:none}.cdk-virtual-scroll-spacer{height:1px;transform-origin:0 0;flex:0 0 auto}[dir=rtl] .cdk-virtual-scroll-spacer{transform-origin:100% 0}"],encapsulation:2,changeDetection:0}));let e=n;return e})();function Fv(t,e,n){const i=n;if(!i.getBoundingClientRect)return 0;const r=i.getBoundingClientRect();return t==="horizontal"?e==="start"?r.left:r.right:e==="start"?r.top:r.bottom}let Ov=(()=>{const n=class n{constructor(){l(this,"_viewContainerRef",g(ur));l(this,"_template",g(xr));l(this,"_differs",g(ZC));l(this,"_viewRepeater",g(xv));l(this,"_viewport",g(Td,{skipSelf:!0}));l(this,"viewChange",new oe);l(this,"_dataSourceChanges",new oe);l(this,"_cdkVirtualForOf");l(this,"_cdkVirtualForTrackBy");l(this,"dataStream",this._dataSourceChanges.pipe(Zo(null),pD(),Zt(([r,s])=>this._changeDataSource(r,s)),yD(1)));l(this,"_differ",null);l(this,"_data");l(this,"_renderedItems");l(this,"_renderedRange");l(this,"_needsUpdate",!1);l(this,"_destroyed",new oe);const r=g(ge);this.dataStream.subscribe(s=>{this._data=s,this._onRenderedDataChange()}),this._viewport.renderedRangeStream.pipe(Ln(this._destroyed)).subscribe(s=>{this._renderedRange=s,this.viewChange.observers.length&&r.run(()=>this.viewChange.next(this._renderedRange)),this._onRenderedDataChange()}),this._viewport.attach(this)}get cdkVirtualForOf(){return this._cdkVirtualForOf}set cdkVirtualForOf(r){this._cdkVirtualForOf=r,U4(r)?this._dataSourceChanges.next(r):this._dataSourceChanges.next(new V4(Go(r)?r:Array.from(r||[])))}get cdkVirtualForTrackBy(){return this._cdkVirtualForTrackBy}set cdkVirtualForTrackBy(r){this._needsUpdate=!0,this._cdkVirtualForTrackBy=r?(s,o)=>r(s+(this._renderedRange?this._renderedRange.start:0),o):void 0}set cdkVirtualForTemplate(r){r&&(this._needsUpdate=!0,this._template=r)}get cdkVirtualForTemplateCacheSize(){return this._viewRepeater.viewCacheSize}set cdkVirtualForTemplateCacheSize(r){this._viewRepeater.viewCacheSize=bo(r)}measureRangeSize(r,s){if(r.start>=r.end)return 0;r.startthis._renderedRange.end;const o=r.start-this._renderedRange.start,a=r.end-r.start;let c,u;for(let h=0;h-1;h--){const f=this._viewContainerRef.get(h+o);if(f&&f.rootNodes.length){u=f.rootNodes[f.rootNodes.length-1];break}}return c&&u?Fv(s,"end",u)-Fv(s,"start",c):0}ngDoCheck(){if(this._differ&&this._needsUpdate){const r=this._differ.diff(this._renderedItems);r?this._applyChanges(r):this._updateContext(),this._needsUpdate=!1}}ngOnDestroy(){this._viewport.detach(),this._dataSourceChanges.next(void 0),this._dataSourceChanges.complete(),this.viewChange.complete(),this._destroyed.next(),this._destroyed.complete(),this._viewRepeater.detach()}_onRenderedDataChange(){this._renderedRange&&(this._renderedItems=this._data.slice(this._renderedRange.start,this._renderedRange.end),this._differ||(this._differ=this._differs.find(this._renderedItems).create((r,s)=>this.cdkVirtualForTrackBy?this.cdkVirtualForTrackBy(r,s):s)),this._needsUpdate=!0)}_changeDataSource(r,s){return r&&r.disconnect(this),this._needsUpdate=!0,s?s.connect(this):G()}_updateContext(){const r=this._data.length;let s=this._viewContainerRef.length;for(;s--;){const o=this._viewContainerRef.get(s);o.context.index=this._renderedRange.start+s,o.context.count=r,this._updateComputedContextProperties(o.context),o.detectChanges()}}_applyChanges(r){this._viewRepeater.applyChanges(r,this._viewContainerRef,(a,c,u)=>this._getEmbeddedViewArgs(a,u),a=>a.item),r.forEachIdentityChange(a=>{const c=this._viewContainerRef.get(a.currentIndex);c.context.$implicit=a.item});const s=this._data.length;let o=this._viewContainerRef.length;for(;o--;){const a=this._viewContainerRef.get(o);a.context.index=this._renderedRange.start+o,a.context.count=s,this._updateComputedContextProperties(a.context)}}_updateComputedContextProperties(r){r.first=r.index===0,r.last=r.index===r.count-1,r.even=r.index%2===0,r.odd=!r.even}_getEmbeddedViewArgs(r,s){return{templateRef:this._template,context:{$implicit:r.item,cdkVirtualForOf:this._cdkVirtualForOf,index:-1,count:-1,first:!1,last:!1,odd:!1,even:!1},index:s}}static ngTemplateContextGuard(r,s){return!0}};l(n,"ɵfac",function(s){return new(s||n)}),l(n,"ɵdir",Ge({type:n,selectors:[["","cdkVirtualFor","","cdkVirtualForOf",""]],inputs:{cdkVirtualForOf:"cdkVirtualForOf",cdkVirtualForTrackBy:"cdkVirtualForTrackBy",cdkVirtualForTemplate:"cdkVirtualForTemplate",cdkVirtualForTemplateCacheSize:"cdkVirtualForTemplateCacheSize"},features:[Hr([{provide:xv,useClass:$4}])]}));let e=n;return e})(),Pv=(()=>{const n=class n extends ag{constructor(){super()}measureBoundingClientRectWithScrollOffset(r){return this.getElementRef().nativeElement.getBoundingClientRect()[r]-this.measureScrollOffset(r)}};l(n,"ɵfac",function(s){return new(s||n)}),l(n,"ɵdir",Ge({type:n,selectors:[["","cdkVirtualScrollingElement",""]],hostAttrs:[1,"cdk-virtual-scrollable"],features:[Hr([{provide:pc,useExisting:n}]),_n]}));let e=n;return e})(),Nv=(()=>{const n=class n extends ag{constructor(){super();l(this,"_elementScrolled",new xe(s=>this.ngZone.runOutsideAngular(()=>ko(document,"scroll").pipe(Ln(this._destroyed)).subscribe(s))));this.elementRef=new qe(document.documentElement)}measureBoundingClientRectWithScrollOffset(s){return this.getElementRef().nativeElement.getBoundingClientRect()[s]}};l(n,"ɵfac",function(o){return new(o||n)}),l(n,"ɵdir",Ge({type:n,selectors:[["cdk-virtual-scroll-viewport","scrollWindow",""]],features:[Hr([{provide:pc,useExisting:n}]),_n]}));let e=n;return e})(),Ya=(()=>{const n=class n{};l(n,"ɵfac",function(s){return new(s||n)}),l(n,"ɵmod",hr({type:n,imports:[dc],exports:[dc]})),l(n,"ɵinj",lr({}));let e=n;return e})(),Ka=(()=>{const n=class n{};l(n,"ɵfac",function(s){return new(s||n)}),l(n,"ɵmod",hr({type:n,imports:[Ji,Ya,Td,Rv,Ov,Nv,Pv],exports:[Ji,Ya,Rv,Ov,Td,Nv,Pv]})),l(n,"ɵinj",lr({imports:[Ji,Ya,Ji,Ya]}));let e=n;return e})();class lg{constructor(){l(this,"_attachedHost")}attach(e){return this._attachedHost=e,e.attach(this)}detach(){let e=this._attachedHost;e!=null&&(this._attachedHost=null,e.detach())}get isAttached(){return this._attachedHost!=null}setAttachedHost(e){this._attachedHost=e}}class Ad extends lg{constructor(n,i,r,s,o){super();l(this,"component");l(this,"viewContainerRef");l(this,"injector");l(this,"componentFactoryResolver");l(this,"projectableNodes");this.component=n,this.viewContainerRef=i,this.injector=r,this.projectableNodes=o}}class Nu extends lg{constructor(n,i,r,s){super();l(this,"templateRef");l(this,"viewContainerRef");l(this,"context");l(this,"injector");this.templateRef=n,this.viewContainerRef=i,this.context=r,this.injector=s}get origin(){return this.templateRef.elementRef}attach(n,i=this.context){return this.context=i,super.attach(n)}detach(){return this.context=void 0,super.detach()}}class J4 extends lg{constructor(n){super();l(this,"element");this.element=n instanceof qe?n.nativeElement:n}}class cg{constructor(){l(this,"_attachedPortal");l(this,"_disposeFn");l(this,"_isDisposed",!1);l(this,"attachDomPortal",null)}hasAttached(){return!!this._attachedPortal}attach(e){if(e instanceof Ad)return this._attachedPortal=e,this.attachComponentPortal(e);if(e instanceof Nu)return this._attachedPortal=e,this.attachTemplatePortal(e);if(this.attachDomPortal&&e instanceof J4)return this._attachedPortal=e,this.attachDomPortal(e)}detach(){this._attachedPortal&&(this._attachedPortal.setAttachedHost(null),this._attachedPortal=null),this._invokeDisposeFn()}dispose(){this.hasAttached()&&this.detach(),this._invokeDisposeFn(),this._isDisposed=!0}setDisposeFn(e){this._disposeFn=e}_invokeDisposeFn(){this._disposeFn&&(this._disposeFn(),this._disposeFn=null)}}class eU extends cg{constructor(n,i,r,s,o){super();l(this,"outletElement");l(this,"_appRef");l(this,"_defaultInjector");l(this,"_document");l(this,"attachDomPortal",n=>{const i=n.element;i.parentNode;const r=this._document.createComment("dom-portal");i.parentNode.insertBefore(r,i),this.outletElement.appendChild(i),this._attachedPortal=n,super.setDisposeFn(()=>{r.parentNode&&r.parentNode.replaceChild(i,r)})});this.outletElement=n,this._appRef=r,this._defaultInjector=s,this._document=o}attachComponentPortal(n){let i;if(n.viewContainerRef){const r=n.injector||n.viewContainerRef.injector,s=r.get(gi,null,{optional:!0})||void 0;i=n.viewContainerRef.createComponent(n.component,{index:n.viewContainerRef.length,injector:r,ngModuleRef:s,projectableNodes:n.projectableNodes||void 0}),this.setDisposeFn(()=>i.destroy())}else i=YC(n.component,{elementInjector:n.injector||this._defaultInjector||gt.NULL,environmentInjector:this._appRef.injector,projectableNodes:n.projectableNodes||void 0}),this._appRef.attachView(i.hostView),this.setDisposeFn(()=>{this._appRef.viewCount>0&&this._appRef.detachView(i.hostView),i.destroy()});return this.outletElement.appendChild(this._getComponentRootNode(i)),this._attachedPortal=n,i}attachTemplatePortal(n){let i=n.viewContainerRef,r=i.createEmbeddedView(n.templateRef,n.context,{injector:n.injector});return r.rootNodes.forEach(s=>this.outletElement.appendChild(s)),r.detectChanges(),this.setDisposeFn(()=>{let s=i.indexOf(r);s!==-1&&i.remove(s)}),this._attachedPortal=n,r}dispose(){super.dispose(),this.outletElement.remove()}_getComponentRootNode(n){return n.hostView.rootNodes[0]}}let mc=(()=>{const n=class n extends Nu{constructor(){const r=g(xr),s=g(ur);super(r,s)}};l(n,"ɵfac",function(s){return new(s||n)}),l(n,"ɵdir",Ge({type:n,selectors:[["","cdkPortal",""]],exportAs:["cdkPortal"],features:[_n]}));let e=n;return e})(),Lv=(()=>{const n=class n extends mc{};l(n,"ɵfac",(()=>{let r;return function(o){return(r||(r=ki(n)))(o||n)}})()),l(n,"ɵdir",Ge({type:n,selectors:[["","cdk-portal",""],["","portal",""]],exportAs:["cdkPortal"],features:[Hr([{provide:mc,useExisting:n}]),_n]}));let e=n;return e})(),Is=(()=>{const n=class n extends cg{constructor(){super();l(this,"_moduleRef",g(gi,{optional:!0}));l(this,"_document",g(we));l(this,"_viewContainerRef",g(ur));l(this,"_isInitialized",!1);l(this,"_attachedRef");l(this,"attached",new Ue);l(this,"attachDomPortal",s=>{const o=s.element;o.parentNode;const a=this._document.createComment("dom-portal");s.setAttachedHost(this),o.parentNode.insertBefore(a,o),this._getRootNode().appendChild(o),this._attachedPortal=s,super.setDisposeFn(()=>{a.parentNode&&a.parentNode.replaceChild(o,a)})})}get portal(){return this._attachedPortal}set portal(s){this.hasAttached()&&!s&&!this._isInitialized||(this.hasAttached()&&super.detach(),s&&super.attach(s),this._attachedPortal=s||null)}get attachedRef(){return this._attachedRef}ngOnInit(){this._isInitialized=!0}ngOnDestroy(){super.dispose(),this._attachedRef=this._attachedPortal=null}attachComponentPortal(s){s.setAttachedHost(this);const o=s.viewContainerRef!=null?s.viewContainerRef:this._viewContainerRef,a=o.createComponent(s.component,{index:o.length,injector:s.injector||o.injector,projectableNodes:s.projectableNodes||void 0,ngModuleRef:this._moduleRef||void 0});return o!==this._viewContainerRef&&this._getRootNode().appendChild(a.hostView.rootNodes[0]),super.setDisposeFn(()=>a.destroy()),this._attachedPortal=s,this._attachedRef=a,this.attached.emit(a),a}attachTemplatePortal(s){s.setAttachedHost(this);const o=this._viewContainerRef.createEmbeddedView(s.templateRef,s.context,{injector:s.injector});return super.setDisposeFn(()=>this._viewContainerRef.clear()),this._attachedPortal=s,this._attachedRef=o,this.attached.emit(o),o}_getRootNode(){const s=this._viewContainerRef.element.nativeElement;return s.nodeType===s.ELEMENT_NODE?s:s.parentNode}};l(n,"ɵfac",function(o){return new(o||n)}),l(n,"ɵdir",Ge({type:n,selectors:[["","cdkPortalOutlet",""]],inputs:{portal:[0,"cdkPortalOutlet","portal"]},outputs:{attached:"attached"},exportAs:["cdkPortalOutlet"],features:[_n]}));let e=n;return e})(),Mv=(()=>{const n=class n extends Is{};l(n,"ɵfac",(()=>{let r;return function(o){return(r||(r=ki(n)))(o||n)}})()),l(n,"ɵdir",Ge({type:n,selectors:[["","cdkPortalHost",""],["","portalHost",""]],inputs:{portal:[0,"cdkPortalHost","portal"]},exportAs:["cdkPortalHost"],features:[Hr([{provide:Is,useExisting:n}]),_n]}));let e=n;return e})(),es=(()=>{const n=class n{};l(n,"ɵfac",function(s){return new(s||n)}),l(n,"ɵmod",hr({type:n,imports:[mc,Is,Lv,Mv],exports:[mc,Is,Lv,Mv]})),l(n,"ɵinj",lr({}));let e=n;return e})();const Bv=NT();class tU{constructor(e,n){l(this,"_viewportRuler");l(this,"_previousHTMLStyles",{top:"",left:""});l(this,"_previousScrollPosition");l(this,"_isEnabled",!1);l(this,"_document");this._viewportRuler=e,this._document=n}attach(){}enable(){if(this._canBeEnabled()){const e=this._document.documentElement;this._previousScrollPosition=this._viewportRuler.getViewportScrollPosition(),this._previousHTMLStyles.left=e.style.left||"",this._previousHTMLStyles.top=e.style.top||"",e.style.left=Qe(-this._previousScrollPosition.left),e.style.top=Qe(-this._previousScrollPosition.top),e.classList.add("cdk-global-scrollblock"),this._isEnabled=!0}}disable(){if(this._isEnabled){const e=this._document.documentElement,n=this._document.body,i=e.style,r=n.style,s=i.scrollBehavior||"",o=r.scrollBehavior||"";this._isEnabled=!1,i.left=this._previousHTMLStyles.left,i.top=this._previousHTMLStyles.top,e.classList.remove("cdk-global-scrollblock"),Bv&&(i.scrollBehavior=r.scrollBehavior="auto"),window.scroll(this._previousScrollPosition.left,this._previousScrollPosition.top),Bv&&(i.scrollBehavior=s,r.scrollBehavior=o)}}_canBeEnabled(){if(this._document.documentElement.classList.contains("cdk-global-scrollblock")||this._isEnabled)return!1;const n=this._document.body,i=this._viewportRuler.getViewportSize();return n.scrollHeight>i.height||n.scrollWidth>i.width}}class nU{constructor(e,n,i,r){l(this,"_scrollDispatcher");l(this,"_ngZone");l(this,"_viewportRuler");l(this,"_config");l(this,"_scrollSubscription",null);l(this,"_overlayRef");l(this,"_initialScrollPosition");l(this,"_detach",()=>{this.disable(),this._overlayRef.hasAttached()&&this._ngZone.run(()=>this._overlayRef.detach())});this._scrollDispatcher=e,this._ngZone=n,this._viewportRuler=i,this._config=r}attach(e){this._overlayRef,this._overlayRef=e}enable(){if(this._scrollSubscription)return;const e=this._scrollDispatcher.scrolled(0).pipe(At(n=>!n||!this._overlayRef.overlayElement.contains(n.getElementRef().nativeElement)));this._config&&this._config.threshold&&this._config.threshold>1?(this._initialScrollPosition=this._viewportRuler.getViewportScrollPosition().top,this._scrollSubscription=e.subscribe(()=>{const n=this._viewportRuler.getViewportScrollPosition().top;Math.abs(n-this._initialScrollPosition)>this._config.threshold?this._detach():this._overlayRef.updatePosition()})):this._scrollSubscription=e.subscribe(this._detach)}disable(){this._scrollSubscription&&(this._scrollSubscription.unsubscribe(),this._scrollSubscription=null)}detach(){this.disable(),this._overlayRef=null}}class KT{enable(){}disable(){}attach(){}}function kd(t,e){return e.some(n=>{const i=t.bottomn.bottom,s=t.rightn.right;return i||r||s||o})}function jv(t,e){return e.some(n=>{const i=t.topn.bottom,s=t.leftn.right;return i||r||s||o})}class rU{constructor(e,n,i,r){l(this,"_scrollDispatcher");l(this,"_viewportRuler");l(this,"_ngZone");l(this,"_config");l(this,"_scrollSubscription",null);l(this,"_overlayRef");this._scrollDispatcher=e,this._viewportRuler=n,this._ngZone=i,this._config=r}attach(e){this._overlayRef,this._overlayRef=e}enable(){if(!this._scrollSubscription){const e=this._config?this._config.scrollThrottle:0;this._scrollSubscription=this._scrollDispatcher.scrolled(e).subscribe(()=>{if(this._overlayRef.updatePosition(),this._config&&this._config.autoClose){const n=this._overlayRef.overlayElement.getBoundingClientRect(),{width:i,height:r}=this._viewportRuler.getViewportSize();kd(n,[{width:i,height:r,bottom:r,right:i,top:0,left:0}])&&(this.disable(),this._ngZone.run(()=>this._overlayRef.detach()))}})}}disable(){this._scrollSubscription&&(this._scrollSubscription.unsubscribe(),this._scrollSubscription=null)}detach(){this.disable(),this._overlayRef=null}}let iU=(()=>{const n=class n{constructor(){l(this,"_scrollDispatcher",g(YT));l(this,"_viewportRuler",g(og));l(this,"_ngZone",g(ge));l(this,"_document",g(we));l(this,"noop",()=>new KT);l(this,"close",r=>new nU(this._scrollDispatcher,this._ngZone,this._viewportRuler,r));l(this,"block",()=>new tU(this._viewportRuler,this._document));l(this,"reposition",r=>new rU(this._scrollDispatcher,this._viewportRuler,this._ngZone,r))}};l(n,"ɵfac",function(s){return new(s||n)}),l(n,"ɵprov",O({token:n,factory:n.ɵfac,providedIn:"root"}));let e=n;return e})();class ug{constructor(e){l(this,"positionStrategy");l(this,"scrollStrategy",new KT);l(this,"panelClass","");l(this,"hasBackdrop",!1);l(this,"backdropClass","cdk-overlay-dark-backdrop");l(this,"width");l(this,"height");l(this,"minWidth");l(this,"minHeight");l(this,"maxWidth");l(this,"maxHeight");l(this,"direction");l(this,"disposeOnNavigation",!1);if(e){const n=Object.keys(e);for(const i of n)e[i]!==void 0&&(this[i]=e[i])}}}class sU{constructor(e,n){l(this,"connectionPair");l(this,"scrollableViewProperties");this.connectionPair=e,this.scrollableViewProperties=n}}let QT=(()=>{const n=class n{constructor(){l(this,"_attachedOverlays",[]);l(this,"_document",g(we));l(this,"_isAttached")}ngOnDestroy(){this.detach()}add(r){this.remove(r),this._attachedOverlays.push(r)}remove(r){const s=this._attachedOverlays.indexOf(r);s>-1&&this._attachedOverlays.splice(s,1),this._attachedOverlays.length===0&&this.detach()}};l(n,"ɵfac",function(s){return new(s||n)}),l(n,"ɵprov",O({token:n,factory:n.ɵfac,providedIn:"root"}));let e=n;return e})(),oU=(()=>{const n=class n extends QT{constructor(){super(...arguments);l(this,"_ngZone",g(ge));l(this,"_renderer",g(Ri).createRenderer(null,null));l(this,"_cleanupKeydown");l(this,"_keydownListener",s=>{const o=this._attachedOverlays;for(let a=o.length-1;a>-1;a--)if(o[a]._keydownEvents.observers.length>0){this._ngZone.run(()=>o[a]._keydownEvents.next(s));break}})}add(s){super.add(s),this._isAttached||(this._ngZone.runOutsideAngular(()=>{this._cleanupKeydown=this._renderer.listen("body","keydown",this._keydownListener)}),this._isAttached=!0)}detach(){this._isAttached&&(this._cleanupKeydown?.(),this._isAttached=!1)}};l(n,"ɵfac",(()=>{let s;return function(a){return(s||(s=ki(n)))(a||n)}})()),l(n,"ɵprov",O({token:n,factory:n.ɵfac,providedIn:"root"}));let e=n;return e})(),aU=(()=>{const n=class n extends QT{constructor(){super(...arguments);l(this,"_platform",g($t));l(this,"_ngZone",g(ge,{optional:!0}));l(this,"_cursorOriginalValue");l(this,"_cursorStyleIsSet",!1);l(this,"_pointerDownEventTarget");l(this,"_pointerDownListener",s=>{this._pointerDownEventTarget=Tr(s)});l(this,"_clickListener",s=>{const o=Tr(s),a=s.type==="click"&&this._pointerDownEventTarget?this._pointerDownEventTarget:o;this._pointerDownEventTarget=null;const c=this._attachedOverlays.slice();for(let u=c.length-1;u>-1;u--){const h=c[u];if(h._outsidePointerEvents.observers.length<1||!h.hasAttached())continue;if(zv(h.overlayElement,o)||zv(h.overlayElement,a))break;const f=h._outsidePointerEvents;this._ngZone?this._ngZone.run(()=>f.next(s)):f.next(s)}})}add(s){if(super.add(s),!this._isAttached){const o=this._document.body;this._ngZone?this._ngZone.runOutsideAngular(()=>this._addEventListeners(o)):this._addEventListeners(o),this._platform.IOS&&!this._cursorStyleIsSet&&(this._cursorOriginalValue=o.style.cursor,o.style.cursor="pointer",this._cursorStyleIsSet=!0),this._isAttached=!0}}detach(){if(this._isAttached){const s=this._document.body;s.removeEventListener("pointerdown",this._pointerDownListener,!0),s.removeEventListener("click",this._clickListener,!0),s.removeEventListener("auxclick",this._clickListener,!0),s.removeEventListener("contextmenu",this._clickListener,!0),this._platform.IOS&&this._cursorStyleIsSet&&(s.style.cursor=this._cursorOriginalValue,this._cursorStyleIsSet=!1),this._isAttached=!1}}_addEventListeners(s){s.addEventListener("pointerdown",this._pointerDownListener,!0),s.addEventListener("click",this._clickListener,!0),s.addEventListener("auxclick",this._clickListener,!0),s.addEventListener("contextmenu",this._clickListener,!0)}};l(n,"ɵfac",(()=>{let s;return function(a){return(s||(s=ki(n)))(a||n)}})()),l(n,"ɵprov",O({token:n,factory:n.ɵfac,providedIn:"root"}));let e=n;return e})();function zv(t,e){const n=typeof ShadowRoot<"u"&&ShadowRoot;let i=e;for(;i;){if(i===t)return!0;i=n&&i instanceof ShadowRoot?i.host:i.parentNode}return!1}let XT=(()=>{const n=class n{};l(n,"ɵfac",function(s){return new(s||n)}),l(n,"ɵcmp",Ye({type:n,selectors:[["ng-component"]],hostAttrs:["cdk-overlay-style-loader",""],decls:0,vars:0,template:function(s,o){},styles:[".cdk-overlay-container,.cdk-global-overlay-wrapper{pointer-events:none;top:0;left:0;height:100%;width:100%}.cdk-overlay-container{position:fixed}@layer cdk-overlay{.cdk-overlay-container{z-index:1000}}.cdk-overlay-container:empty{display:none}.cdk-global-overlay-wrapper{display:flex;position:absolute}@layer cdk-overlay{.cdk-global-overlay-wrapper{z-index:1000}}.cdk-overlay-pane{position:absolute;pointer-events:auto;box-sizing:border-box;display:flex;max-width:100%;max-height:100%}@layer cdk-overlay{.cdk-overlay-pane{z-index:1000}}.cdk-overlay-backdrop{position:absolute;top:0;bottom:0;left:0;right:0;pointer-events:auto;-webkit-tap-highlight-color:rgba(0,0,0,0);opacity:0}@layer cdk-overlay{.cdk-overlay-backdrop{z-index:1000;transition:opacity 400ms cubic-bezier(0.25, 0.8, 0.25, 1)}}.cdk-overlay-backdrop-showing{opacity:1}@media(forced-colors: active){.cdk-overlay-backdrop-showing{opacity:.6}}@layer cdk-overlay{.cdk-overlay-dark-backdrop{background:rgba(0,0,0,.32)}}.cdk-overlay-transparent-backdrop{transition:visibility 1ms linear,opacity 1ms linear;visibility:hidden;opacity:1}.cdk-overlay-transparent-backdrop.cdk-overlay-backdrop-showing,.cdk-high-contrast-active .cdk-overlay-transparent-backdrop{opacity:0;visibility:visible}.cdk-overlay-backdrop-noop-animation{transition:none}.cdk-overlay-connected-position-bounding-box{position:absolute;display:flex;flex-direction:column;min-width:1px;min-height:1px}@layer cdk-overlay{.cdk-overlay-connected-position-bounding-box{z-index:1000}}.cdk-global-scrollblock{position:fixed;width:100%;overflow-y:scroll}"],encapsulation:2,changeDetection:0}));let e=n;return e})(),hg=(()=>{const n=class n{constructor(){l(this,"_platform",g($t));l(this,"_containerElement");l(this,"_document",g(we));l(this,"_styleLoader",g(Pu))}ngOnDestroy(){this._containerElement?.remove()}getContainerElement(){return this._loadStyles(),this._containerElement||this._createContainer(),this._containerElement}_createContainer(){const r="cdk-overlay-container";if(this._platform.isBrowser||gv()){const o=this._document.querySelectorAll(`.${r}[platform="server"], .${r}[platform="test"]`);for(let a=0;axx(()=>{this._renders.next()},{injector:this._injector}))}get overlayElement(){return this._pane}get backdropElement(){return this._backdropElement}get hostElement(){return this._host}attach(e){!this._host.parentElement&&this._previousHostParent&&this._previousHostParent.appendChild(this._host);const n=this._portalOutlet.attach(e);return this._positionStrategy&&this._positionStrategy.attach(this),this._updateStackingOrder(),this._updateElementSize(),this._updateElementDirection(),this._scrollStrategy&&this._scrollStrategy.enable(),this._afterNextRenderRef?.destroy(),this._afterNextRenderRef=ws(()=>{this.hasAttached()&&this.updatePosition()},{injector:this._injector}),this._togglePointerEvents(!0),this._config.hasBackdrop&&this._attachBackdrop(),this._config.panelClass&&this._toggleClasses(this._pane,this._config.panelClass,!0),this._attachments.next(),this._keyboardDispatcher.add(this),this._config.disposeOnNavigation&&(this._locationChanges=this._location.subscribe(()=>this.dispose())),this._outsideClickDispatcher.add(this),typeof n?.onDestroy=="function"&&n.onDestroy(()=>{this.hasAttached()&&this._ngZone.runOutsideAngular(()=>Promise.resolve().then(()=>this.detach()))}),n}detach(){if(!this.hasAttached())return;this.detachBackdrop(),this._togglePointerEvents(!1),this._positionStrategy&&this._positionStrategy.detach&&this._positionStrategy.detach(),this._scrollStrategy&&this._scrollStrategy.disable();const e=this._portalOutlet.detach();return this._detachments.next(),this._keyboardDispatcher.remove(this),this._detachContentWhenEmpty(),this._locationChanges.unsubscribe(),this._outsideClickDispatcher.remove(this),e}dispose(){const e=this.hasAttached();this._positionStrategy&&this._positionStrategy.dispose(),this._disposeScrollStrategy(),this._disposeBackdrop(this._backdropElement),this._locationChanges.unsubscribe(),this._keyboardDispatcher.remove(this),this._portalOutlet.dispose(),this._attachments.complete(),this._backdropClick.complete(),this._keydownEvents.complete(),this._outsidePointerEvents.complete(),this._outsideClickDispatcher.remove(this),this._host?.remove(),this._afterNextRenderRef?.destroy(),this._previousHostParent=this._pane=this._host=null,e&&this._detachments.next(),this._detachments.complete(),this._afterRenderRef.destroy(),this._renders.complete()}hasAttached(){return this._portalOutlet.hasAttached()}backdropClick(){return this._backdropClick}attachments(){return this._attachments}detachments(){return this._detachments}keydownEvents(){return this._keydownEvents}outsidePointerEvents(){return this._outsidePointerEvents}getConfig(){return this._config}updatePosition(){this._positionStrategy&&this._positionStrategy.apply()}updatePositionStrategy(e){e!==this._positionStrategy&&(this._positionStrategy&&this._positionStrategy.dispose(),this._positionStrategy=e,this.hasAttached()&&(e.attach(this),this.updatePosition()))}updateSize(e){this._config={...this._config,...e},this._updateElementSize()}setDirection(e){this._config={...this._config,direction:e},this._updateElementDirection()}addPanelClass(e){this._pane&&this._toggleClasses(this._pane,e,!0)}removePanelClass(e){this._pane&&this._toggleClasses(this._pane,e,!1)}getDirection(){const e=this._config.direction;return e?typeof e=="string"?e:e.value:"ltr"}updateScrollStrategy(e){e!==this._scrollStrategy&&(this._disposeScrollStrategy(),this._scrollStrategy=e,this.hasAttached()&&(e.attach(this),e.enable()))}_updateElementDirection(){this._host.setAttribute("dir",this.getDirection())}_updateElementSize(){if(!this._pane)return;const e=this._pane.style;e.width=Qe(this._config.width),e.height=Qe(this._config.height),e.minWidth=Qe(this._config.minWidth),e.minHeight=Qe(this._config.minHeight),e.maxWidth=Qe(this._config.maxWidth),e.maxHeight=Qe(this._config.maxHeight)}_togglePointerEvents(e){this._pane.style.pointerEvents=e?"":"none"}_attachBackdrop(){const e="cdk-overlay-backdrop-showing";this._backdropElement=this._document.createElement("div"),this._backdropElement.classList.add("cdk-overlay-backdrop"),this._animationsDisabled&&this._backdropElement.classList.add("cdk-overlay-backdrop-noop-animation"),this._config.backdropClass&&this._toggleClasses(this._backdropElement,this._config.backdropClass,!0),this._host.parentElement.insertBefore(this._backdropElement,this._host),this._cleanupBackdropClick?.(),this._cleanupBackdropClick=this._renderer.listen(this._backdropElement,"click",n=>this._backdropClick.next(n)),!this._animationsDisabled&&typeof requestAnimationFrame<"u"?this._ngZone.runOutsideAngular(()=>{requestAnimationFrame(()=>{this._backdropElement&&this._backdropElement.classList.add(e)})}):this._backdropElement.classList.add(e)}_updateStackingOrder(){this._host.nextSibling&&this._host.parentNode.appendChild(this._host)}detachBackdrop(){const e=this._backdropElement;if(e){if(this._animationsDisabled){this._disposeBackdrop(e);return}e.classList.remove("cdk-overlay-backdrop-showing"),this._ngZone.runOutsideAngular(()=>{this._cleanupBackdropTransitionEnd?.(),this._cleanupBackdropTransitionEnd=this._renderer.listen(e,"transitionend",n=>{this._disposeBackdrop(n.target)})}),e.style.pointerEvents="none",this._backdropTimeout=this._ngZone.runOutsideAngular(()=>setTimeout(()=>{this._disposeBackdrop(e)},500))}}_toggleClasses(e,n,i){const r=fc(n||[]).filter(s=>!!s);r.length&&(i?e.classList.add(...r):e.classList.remove(...r))}_detachContentWhenEmpty(){this._ngZone.runOutsideAngular(()=>{const e=this._renders.pipe(Ln(aD(this._attachments,this._detachments))).subscribe(()=>{(!this._pane||!this._host||this._pane.children.length===0)&&(this._pane&&this._config.panelClass&&this._toggleClasses(this._pane,this._config.panelClass,!1),this._host&&this._host.parentElement&&(this._previousHostParent=this._host.parentElement,this._host.remove()),e.unsubscribe())})})}_disposeScrollStrategy(){const e=this._scrollStrategy;e&&(e.disable(),e.detach&&e.detach())}_disposeBackdrop(e){this._cleanupBackdropClick?.(),this._cleanupBackdropTransitionEnd?.(),e&&(e.remove(),this._backdropElement===e&&(this._backdropElement=null)),this._backdropTimeout&&(clearTimeout(this._backdropTimeout),this._backdropTimeout=void 0)}}const Hv="cdk-overlay-connected-position-bounding-box",lU=/([A-Za-z%]+)$/;class cU{constructor(e,n,i,r,s){l(this,"_viewportRuler");l(this,"_document");l(this,"_platform");l(this,"_overlayContainer");l(this,"_overlayRef");l(this,"_isInitialRender");l(this,"_lastBoundingBoxSize",{width:0,height:0});l(this,"_isPushed",!1);l(this,"_canPush",!0);l(this,"_growAfterOpen",!1);l(this,"_hasFlexibleDimensions",!0);l(this,"_positionLocked",!1);l(this,"_originRect");l(this,"_overlayRect");l(this,"_viewportRect");l(this,"_containerRect");l(this,"_viewportMargin",0);l(this,"_scrollables",[]);l(this,"_preferredPositions",[]);l(this,"_origin");l(this,"_pane");l(this,"_isDisposed");l(this,"_boundingBox");l(this,"_lastPosition");l(this,"_lastScrollVisibility");l(this,"_positionChanges",new oe);l(this,"_resizeSubscription",Je.EMPTY);l(this,"_offsetX",0);l(this,"_offsetY",0);l(this,"_transformOriginSelector");l(this,"_appliedPanelClasses",[]);l(this,"_previousPushAmount");l(this,"positionChanges",this._positionChanges);this._viewportRuler=n,this._document=i,this._platform=r,this._overlayContainer=s,this.setOrigin(e)}get positions(){return this._preferredPositions}attach(e){this._overlayRef&&this._overlayRef,this._validatePositions(),e.hostElement.classList.add(Hv),this._overlayRef=e,this._boundingBox=e.hostElement,this._pane=e.overlayElement,this._isDisposed=!1,this._isInitialRender=!0,this._lastPosition=null,this._resizeSubscription.unsubscribe(),this._resizeSubscription=this._viewportRuler.change().subscribe(()=>{this._isInitialRender=!0,this.apply()})}apply(){if(this._isDisposed||!this._platform.isBrowser)return;if(!this._isInitialRender&&this._positionLocked&&this._lastPosition){this.reapplyLastPosition();return}this._clearPanelClasses(),this._resetOverlayElementStyles(),this._resetBoundingBoxStyles(),this._viewportRect=this._getNarrowedViewportRect(),this._originRect=this._getOriginRect(),this._overlayRect=this._pane.getBoundingClientRect(),this._containerRect=this._overlayContainer.getContainerElement().getBoundingClientRect();const e=this._originRect,n=this._overlayRect,i=this._viewportRect,r=this._containerRect,s=[];let o;for(let a of this._preferredPositions){let c=this._getOriginPoint(e,r,a),u=this._getOverlayPoint(c,n,a),h=this._getOverlayFit(u,n,i,a);if(h.isCompletelyWithinViewport){this._isPushed=!1,this._applyPosition(a,c);return}if(this._canFitWithFlexibleDimensions(h,u,i)){s.push({position:a,origin:c,overlayRect:n,boundingBoxRect:this._calculateBoundingBoxRect(c,a)});continue}(!o||o.overlayFit.visibleAreac&&(c=h,a=u)}this._isPushed=!1,this._applyPosition(a.position,a.origin);return}if(this._canPush){this._isPushed=!0,this._applyPosition(o.position,o.originPoint);return}this._applyPosition(o.position,o.originPoint)}detach(){this._clearPanelClasses(),this._lastPosition=null,this._previousPushAmount=null,this._resizeSubscription.unsubscribe()}dispose(){this._isDisposed||(this._boundingBox&&qr(this._boundingBox.style,{top:"",left:"",right:"",bottom:"",height:"",width:"",alignItems:"",justifyContent:""}),this._pane&&this._resetOverlayElementStyles(),this._overlayRef&&this._overlayRef.hostElement.classList.remove(Hv),this.detach(),this._positionChanges.complete(),this._overlayRef=this._boundingBox=null,this._isDisposed=!0)}reapplyLastPosition(){if(this._isDisposed||!this._platform.isBrowser)return;const e=this._lastPosition;if(e){this._originRect=this._getOriginRect(),this._overlayRect=this._pane.getBoundingClientRect(),this._viewportRect=this._getNarrowedViewportRect(),this._containerRect=this._overlayContainer.getContainerElement().getBoundingClientRect();const n=this._getOriginPoint(this._originRect,this._containerRect,e);this._applyPosition(e,n)}else this.apply()}withScrollableContainers(e){return this._scrollables=e,this}withPositions(e){return this._preferredPositions=e,e.indexOf(this._lastPosition)===-1&&(this._lastPosition=null),this._validatePositions(),this}withViewportMargin(e){return this._viewportMargin=e,this}withFlexibleDimensions(e=!0){return this._hasFlexibleDimensions=e,this}withGrowAfterOpen(e=!0){return this._growAfterOpen=e,this}withPush(e=!0){return this._canPush=e,this}withLockedPosition(e=!0){return this._positionLocked=e,this}setOrigin(e){return this._origin=e,this}withDefaultOffsetX(e){return this._offsetX=e,this}withDefaultOffsetY(e){return this._offsetY=e,this}withTransformOriginOn(e){return this._transformOriginSelector=e,this}_getOriginPoint(e,n,i){let r;if(i.originX=="center")r=e.left+e.width/2;else{const o=this._isRtl()?e.right:e.left,a=this._isRtl()?e.left:e.right;r=i.originX=="start"?o:a}n.left<0&&(r-=n.left);let s;return i.originY=="center"?s=e.top+e.height/2:s=i.originY=="top"?e.top:e.bottom,n.top<0&&(s-=n.top),{x:r,y:s}}_getOverlayPoint(e,n,i){let r;i.overlayX=="center"?r=-n.width/2:i.overlayX==="start"?r=this._isRtl()?-n.width:0:r=this._isRtl()?0:-n.width;let s;return i.overlayY=="center"?s=-n.height/2:s=i.overlayY=="top"?0:-n.height,{x:e.x+r,y:e.y+s}}_getOverlayFit(e,n,i,r){const s=Vv(n);let{x:o,y:a}=e,c=this._getOffset(r,"x"),u=this._getOffset(r,"y");c&&(o+=c),u&&(a+=u);let h=0-o,f=o+s.width-i.width,d=0-a,p=a+s.height-i.height,m=this._subtractOverflows(s.width,h,f),y=this._subtractOverflows(s.height,d,p),_=m*y;return{visibleArea:_,isCompletelyWithinViewport:s.width*s.height===_,fitsInViewportVertically:y===s.height,fitsInViewportHorizontally:m==s.width}}_canFitWithFlexibleDimensions(e,n,i){if(this._hasFlexibleDimensions){const r=i.bottom-n.y,s=i.right-n.x,o=Uv(this._overlayRef.getConfig().minHeight),a=Uv(this._overlayRef.getConfig().minWidth),c=e.fitsInViewportVertically||o!=null&&o<=r,u=e.fitsInViewportHorizontally||a!=null&&a<=s;return c&&u}return!1}_pushOverlayOnScreen(e,n,i){if(this._previousPushAmount&&this._positionLocked)return{x:e.x+this._previousPushAmount.x,y:e.y+this._previousPushAmount.y};const r=Vv(n),s=this._viewportRect,o=Math.max(e.x+r.width-s.width,0),a=Math.max(e.y+r.height-s.height,0),c=Math.max(s.top-i.top-e.y,0),u=Math.max(s.left-i.left-e.x,0);let h=0,f=0;return r.width<=s.width?h=u||-o:h=e.xm&&!this._isInitialRender&&!this._growAfterOpen&&(o=e.y-m/2)}const c=n.overlayX==="start"&&!r||n.overlayX==="end"&&r,u=n.overlayX==="end"&&!r||n.overlayX==="start"&&r;let h,f,d;if(u)d=i.width-e.x+this._viewportMargin*2,h=e.x-this._viewportMargin;else if(c)f=e.x,h=i.right-e.x;else{const p=Math.min(i.right-e.x+i.left,e.x),m=this._lastBoundingBoxSize.width;h=p*2,f=e.x-p,h>m&&!this._isInitialRender&&!this._growAfterOpen&&(f=e.x-m/2)}return{top:o,left:f,bottom:a,right:d,width:h,height:s}}_setBoundingBoxStyles(e,n){const i=this._calculateBoundingBoxRect(e,n);!this._isInitialRender&&!this._growAfterOpen&&(i.height=Math.min(i.height,this._lastBoundingBoxSize.height),i.width=Math.min(i.width,this._lastBoundingBoxSize.width));const r={};if(this._hasExactPosition())r.top=r.left="0",r.bottom=r.right=r.maxHeight=r.maxWidth="",r.width=r.height="100%";else{const s=this._overlayRef.getConfig().maxHeight,o=this._overlayRef.getConfig().maxWidth;r.height=Qe(i.height),r.top=Qe(i.top),r.bottom=Qe(i.bottom),r.width=Qe(i.width),r.left=Qe(i.left),r.right=Qe(i.right),n.overlayX==="center"?r.alignItems="center":r.alignItems=n.overlayX==="end"?"flex-end":"flex-start",n.overlayY==="center"?r.justifyContent="center":r.justifyContent=n.overlayY==="bottom"?"flex-end":"flex-start",s&&(r.maxHeight=Qe(s)),o&&(r.maxWidth=Qe(o))}this._lastBoundingBoxSize=i,qr(this._boundingBox.style,r)}_resetBoundingBoxStyles(){qr(this._boundingBox.style,{top:"0",left:"0",right:"0",bottom:"0",height:"",width:"",alignItems:"",justifyContent:""})}_resetOverlayElementStyles(){qr(this._pane.style,{top:"",left:"",bottom:"",right:"",position:"",transform:""})}_setOverlayElementStyles(e,n){const i={},r=this._hasExactPosition(),s=this._hasFlexibleDimensions,o=this._overlayRef.getConfig();if(r){const h=this._viewportRuler.getViewportScrollPosition();qr(i,this._getExactOverlayY(n,e,h)),qr(i,this._getExactOverlayX(n,e,h))}else i.position="static";let a="",c=this._getOffset(n,"x"),u=this._getOffset(n,"y");c&&(a+=`translateX(${c}px) `),u&&(a+=`translateY(${u}px)`),i.transform=a.trim(),o.maxHeight&&(r?i.maxHeight=Qe(o.maxHeight):s&&(i.maxHeight="")),o.maxWidth&&(r?i.maxWidth=Qe(o.maxWidth):s&&(i.maxWidth="")),qr(this._pane.style,i)}_getExactOverlayY(e,n,i){let r={top:"",bottom:""},s=this._getOverlayPoint(n,this._overlayRect,e);if(this._isPushed&&(s=this._pushOverlayOnScreen(s,this._overlayRect,i)),e.overlayY==="bottom"){const o=this._document.documentElement.clientHeight;r.bottom=`${o-(s.y+this._overlayRect.height)}px`}else r.top=Qe(s.y);return r}_getExactOverlayX(e,n,i){let r={left:"",right:""},s=this._getOverlayPoint(n,this._overlayRect,e);this._isPushed&&(s=this._pushOverlayOnScreen(s,this._overlayRect,i));let o;if(this._isRtl()?o=e.overlayX==="end"?"left":"right":o=e.overlayX==="end"?"right":"left",o==="right"){const a=this._document.documentElement.clientWidth;r.right=`${a-(s.x+this._overlayRect.width)}px`}else r.left=Qe(s.x);return r}_getScrollVisibility(){const e=this._getOriginRect(),n=this._pane.getBoundingClientRect(),i=this._scrollables.map(r=>r.getElementRef().nativeElement.getBoundingClientRect());return{isOriginClipped:jv(e,i),isOriginOutsideView:kd(e,i),isOverlayClipped:jv(n,i),isOverlayOutsideView:kd(n,i)}}_subtractOverflows(e,...n){return n.reduce((i,r)=>i-Math.max(r,0),e)}_getNarrowedViewportRect(){const e=this._document.documentElement.clientWidth,n=this._document.documentElement.clientHeight,i=this._viewportRuler.getViewportScrollPosition();return{top:i.top+this._viewportMargin,left:i.left+this._viewportMargin,right:i.left+e-this._viewportMargin,bottom:i.top+n-this._viewportMargin,width:e-2*this._viewportMargin,height:n-2*this._viewportMargin}}_isRtl(){return this._overlayRef.getDirection()==="rtl"}_hasExactPosition(){return!this._hasFlexibleDimensions||this._isPushed}_getOffset(e,n){return n==="x"?e.offsetX==null?this._offsetX:e.offsetX:e.offsetY==null?this._offsetY:e.offsetY}_validatePositions(){}_addPanelClasses(e){this._pane&&fc(e).forEach(n=>{n!==""&&this._appliedPanelClasses.indexOf(n)===-1&&(this._appliedPanelClasses.push(n),this._pane.classList.add(n))})}_clearPanelClasses(){this._pane&&(this._appliedPanelClasses.forEach(e=>{this._pane.classList.remove(e)}),this._appliedPanelClasses=[])}_getOriginRect(){const e=this._origin;if(e instanceof qe)return e.nativeElement.getBoundingClientRect();if(e instanceof Element)return e.getBoundingClientRect();const n=e.width||0,i=e.height||0;return{top:e.y,bottom:e.y+i,left:e.x,right:e.x+n,height:i,width:n}}}function qr(t,e){for(let n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);return t}function Uv(t){if(typeof t!="number"&&t!=null){const[e,n]=t.split(lU);return!n||n==="px"?parseFloat(e):null}return t||null}function Vv(t){return{top:Math.floor(t.top),right:Math.floor(t.right),bottom:Math.floor(t.bottom),left:Math.floor(t.left),width:Math.floor(t.width),height:Math.floor(t.height)}}function uU(t,e){return t===e?!0:t.isOriginClipped===e.isOriginClipped&&t.isOriginOutsideView===e.isOriginOutsideView&&t.isOverlayClipped===e.isOverlayClipped&&t.isOverlayOutsideView===e.isOverlayOutsideView}const $v="cdk-global-overlay-wrapper";class hU{constructor(){l(this,"_overlayRef");l(this,"_cssPosition","static");l(this,"_topOffset","");l(this,"_bottomOffset","");l(this,"_alignItems","");l(this,"_xPosition","");l(this,"_xOffset","");l(this,"_width","");l(this,"_height","");l(this,"_isDisposed",!1)}attach(e){const n=e.getConfig();this._overlayRef=e,this._width&&!n.width&&e.updateSize({width:this._width}),this._height&&!n.height&&e.updateSize({height:this._height}),e.hostElement.classList.add($v),this._isDisposed=!1}top(e=""){return this._bottomOffset="",this._topOffset=e,this._alignItems="flex-start",this}left(e=""){return this._xOffset=e,this._xPosition="left",this}bottom(e=""){return this._topOffset="",this._bottomOffset=e,this._alignItems="flex-end",this}right(e=""){return this._xOffset=e,this._xPosition="right",this}start(e=""){return this._xOffset=e,this._xPosition="start",this}end(e=""){return this._xOffset=e,this._xPosition="end",this}width(e=""){return this._overlayRef?this._overlayRef.updateSize({width:e}):this._width=e,this}height(e=""){return this._overlayRef?this._overlayRef.updateSize({height:e}):this._height=e,this}centerHorizontally(e=""){return this.left(e),this._xPosition="center",this}centerVertically(e=""){return this.top(e),this._alignItems="center",this}apply(){if(!this._overlayRef||!this._overlayRef.hasAttached())return;const e=this._overlayRef.overlayElement.style,n=this._overlayRef.hostElement.style,i=this._overlayRef.getConfig(),{width:r,height:s,maxWidth:o,maxHeight:a}=i,c=(r==="100%"||r==="100vw")&&(!o||o==="100%"||o==="100vw"),u=(s==="100%"||s==="100vh")&&(!a||a==="100%"||a==="100vh"),h=this._xPosition,f=this._xOffset,d=this._overlayRef.getConfig().direction==="rtl";let p="",m="",y="";c?y="flex-start":h==="center"?(y="center",d?m=f:p=f):d?h==="left"||h==="end"?(y="flex-end",p=f):(h==="right"||h==="start")&&(y="flex-start",m=f):h==="left"||h==="start"?(y="flex-start",p=f):(h==="right"||h==="end")&&(y="flex-end",m=f),e.position=this._cssPosition,e.marginLeft=c?"0":p,e.marginTop=u?"0":this._topOffset,e.marginBottom=this._bottomOffset,e.marginRight=c?"0":m,n.justifyContent=y,n.alignItems=u?"flex-start":this._alignItems}dispose(){if(this._isDisposed||!this._overlayRef)return;const e=this._overlayRef.overlayElement.style,n=this._overlayRef.hostElement,i=n.style;n.classList.remove($v),i.justifyContent=i.alignItems=e.marginTop=e.marginBottom=e.marginLeft=e.marginRight=e.position="",this._overlayRef=null,this._isDisposed=!0}}let fU=(()=>{const n=class n{constructor(){l(this,"_viewportRuler",g(og));l(this,"_document",g(we));l(this,"_platform",g($t));l(this,"_overlayContainer",g(hg))}global(){return new hU}flexibleConnectedTo(r){return new cU(r,this._viewportRuler,this._document,this._platform,this._overlayContainer)}};l(n,"ɵfac",function(s){return new(s||n)}),l(n,"ɵprov",O({token:n,factory:n.ɵfac,providedIn:"root"}));let e=n;return e})(),qs=(()=>{const n=class n{constructor(){l(this,"scrollStrategies",g(iU));l(this,"_overlayContainer",g(hg));l(this,"_positionBuilder",g(fU));l(this,"_keyboardDispatcher",g(oU));l(this,"_injector",g(gt));l(this,"_ngZone",g(ge));l(this,"_document",g(we));l(this,"_directionality",g(Ds));l(this,"_location",g(Vs));l(this,"_outsideClickDispatcher",g(aU));l(this,"_animationsModuleType",g($E,{optional:!0}));l(this,"_idGenerator",g(GT));l(this,"_renderer",g(Ri).createRenderer(null,null));l(this,"_appRef");l(this,"_styleLoader",g(Pu))}create(r){this._styleLoader.load(XT);const s=this._createHostElement(),o=this._createPaneElement(s),a=this._createPortalOutlet(o),c=new ug(r);return c.direction=c.direction||this._directionality.value,new fg(a,s,o,c,this._ngZone,this._keyboardDispatcher,this._document,this._location,this._outsideClickDispatcher,this._animationsModuleType==="NoopAnimations",this._injector.get(Yt),this._renderer)}position(){return this._positionBuilder}_createPaneElement(r){const s=this._document.createElement("div");return s.id=this._idGenerator.getId("cdk-overlay-"),s.classList.add("cdk-overlay-pane"),r.appendChild(s),s}_createHostElement(){const r=this._document.createElement("div");return this._overlayContainer.getContainerElement().appendChild(r),r}_createPortalOutlet(r){return this._appRef||(this._appRef=this._injector.get(Mn)),new eU(r,null,this._appRef,this._injector,this._document)}};l(n,"ɵfac",function(s){return new(s||n)}),l(n,"ɵprov",O({token:n,factory:n.ɵfac,providedIn:"root"}));let e=n;return e})();const dU=[{originX:"start",originY:"bottom",overlayX:"start",overlayY:"top"},{originX:"start",originY:"top",overlayX:"start",overlayY:"bottom"},{originX:"end",originY:"top",overlayX:"end",overlayY:"bottom"},{originX:"end",originY:"bottom",overlayX:"end",overlayY:"top"}],JT=new B("cdk-connected-overlay-scroll-strategy",{providedIn:"root",factory:()=>{const t=g(qs);return()=>t.scrollStrategies.reposition()}});let gc=(()=>{const n=class n{constructor(){l(this,"elementRef",g(qe))}};l(n,"ɵfac",function(s){return new(s||n)}),l(n,"ɵdir",Ge({type:n,selectors:[["","cdk-overlay-origin",""],["","overlay-origin",""],["","cdkOverlayOrigin",""]],exportAs:["cdkOverlayOrigin"]}));let e=n;return e})(),Wv=(()=>{const n=class n{constructor(){l(this,"_overlay",g(qs));l(this,"_dir",g(Ds,{optional:!0}));l(this,"_overlayRef");l(this,"_templatePortal");l(this,"_backdropSubscription",Je.EMPTY);l(this,"_attachSubscription",Je.EMPTY);l(this,"_detachSubscription",Je.EMPTY);l(this,"_positionSubscription",Je.EMPTY);l(this,"_offsetX");l(this,"_offsetY");l(this,"_position");l(this,"_scrollStrategyFactory",g(JT));l(this,"_disposeOnNavigation",!1);l(this,"_ngZone",g(ge));l(this,"origin");l(this,"positions");l(this,"positionStrategy");l(this,"width");l(this,"height");l(this,"minWidth");l(this,"minHeight");l(this,"backdropClass");l(this,"panelClass");l(this,"viewportMargin",0);l(this,"scrollStrategy");l(this,"open",!1);l(this,"disableClose",!1);l(this,"transformOriginSelector");l(this,"hasBackdrop",!1);l(this,"lockPosition",!1);l(this,"flexibleDimensions",!1);l(this,"growAfterOpen",!1);l(this,"push",!1);l(this,"backdropClick",new Ue);l(this,"positionChange",new Ue);l(this,"attach",new Ue);l(this,"detach",new Ue);l(this,"overlayKeydown",new Ue);l(this,"overlayOutsideClick",new Ue);const r=g(xr),s=g(ur);this._templatePortal=new Nu(r,s),this.scrollStrategy=this._scrollStrategyFactory()}get offsetX(){return this._offsetX}set offsetX(r){this._offsetX=r,this._position&&this._updatePositionStrategy(this._position)}get offsetY(){return this._offsetY}set offsetY(r){this._offsetY=r,this._position&&this._updatePositionStrategy(this._position)}get disposeOnNavigation(){return this._disposeOnNavigation}set disposeOnNavigation(r){this._disposeOnNavigation=r}get overlayRef(){return this._overlayRef}get dir(){return this._dir?this._dir.value:"ltr"}ngOnDestroy(){this._attachSubscription.unsubscribe(),this._detachSubscription.unsubscribe(),this._backdropSubscription.unsubscribe(),this._positionSubscription.unsubscribe(),this._overlayRef&&this._overlayRef.dispose()}ngOnChanges(r){this._position&&(this._updatePositionStrategy(this._position),this._overlayRef.updateSize({width:this.width,minWidth:this.minWidth,height:this.height,minHeight:this.minHeight}),r.origin&&this.open&&this._position.apply()),r.open&&(this.open?this._attachOverlay():this._detachOverlay())}_createOverlay(){(!this.positions||!this.positions.length)&&(this.positions=dU);const r=this._overlayRef=this._overlay.create(this._buildConfig());this._attachSubscription=r.attachments().subscribe(()=>this.attach.emit()),this._detachSubscription=r.detachments().subscribe(()=>this.detach.emit()),r.keydownEvents().subscribe(s=>{this.overlayKeydown.next(s),s.keyCode===MT&&!this.disableClose&&!BT(s)&&(s.preventDefault(),this._detachOverlay())}),this._overlayRef.outsidePointerEvents().subscribe(s=>{const o=this._getOriginElement(),a=Tr(s);(!o||o!==a&&!o.contains(a))&&this.overlayOutsideClick.next(s)})}_buildConfig(){const r=this._position=this.positionStrategy||this._createPositionStrategy(),s=new ug({direction:this._dir||"ltr",positionStrategy:r,scrollStrategy:this.scrollStrategy,hasBackdrop:this.hasBackdrop,disposeOnNavigation:this.disposeOnNavigation});return(this.width||this.width===0)&&(s.width=this.width),(this.height||this.height===0)&&(s.height=this.height),(this.minWidth||this.minWidth===0)&&(s.minWidth=this.minWidth),(this.minHeight||this.minHeight===0)&&(s.minHeight=this.minHeight),this.backdropClass&&(s.backdropClass=this.backdropClass),this.panelClass&&(s.panelClass=this.panelClass),s}_updatePositionStrategy(r){const s=this.positions.map(o=>({originX:o.originX,originY:o.originY,overlayX:o.overlayX,overlayY:o.overlayY,offsetX:o.offsetX||this.offsetX,offsetY:o.offsetY||this.offsetY,panelClass:o.panelClass||void 0}));return r.setOrigin(this._getOrigin()).withPositions(s).withFlexibleDimensions(this.flexibleDimensions).withPush(this.push).withGrowAfterOpen(this.growAfterOpen).withViewportMargin(this.viewportMargin).withLockedPosition(this.lockPosition).withTransformOriginOn(this.transformOriginSelector)}_createPositionStrategy(){const r=this._overlay.position().flexibleConnectedTo(this._getOrigin());return this._updatePositionStrategy(r),r}_getOrigin(){return this.origin instanceof gc?this.origin.elementRef:this.origin}_getOriginElement(){return this.origin instanceof gc?this.origin.elementRef.nativeElement:this.origin instanceof qe?this.origin.nativeElement:typeof Element<"u"&&this.origin instanceof Element?this.origin:null}_attachOverlay(){this._overlayRef?this._overlayRef.getConfig().hasBackdrop=this.hasBackdrop:this._createOverlay(),this._overlayRef.hasAttached()||this._overlayRef.attach(this._templatePortal),this.hasBackdrop?this._backdropSubscription=this._overlayRef.backdropClick().subscribe(r=>{this.backdropClick.emit(r)}):this._backdropSubscription.unsubscribe(),this._positionSubscription.unsubscribe(),this.positionChange.observers.length>0&&(this._positionSubscription=this._position.positionChanges.pipe(_D(()=>this.positionChange.observers.length>0)).subscribe(r=>{this._ngZone.run(()=>this.positionChange.emit(r)),this.positionChange.observers.length===0&&this._positionSubscription.unsubscribe()}))}_detachOverlay(){this._overlayRef&&this._overlayRef.detach(),this._backdropSubscription.unsubscribe(),this._positionSubscription.unsubscribe()}};l(n,"ɵfac",function(s){return new(s||n)}),l(n,"ɵdir",Ge({type:n,selectors:[["","cdk-connected-overlay",""],["","connected-overlay",""],["","cdkConnectedOverlay",""]],inputs:{origin:[0,"cdkConnectedOverlayOrigin","origin"],positions:[0,"cdkConnectedOverlayPositions","positions"],positionStrategy:[0,"cdkConnectedOverlayPositionStrategy","positionStrategy"],offsetX:[0,"cdkConnectedOverlayOffsetX","offsetX"],offsetY:[0,"cdkConnectedOverlayOffsetY","offsetY"],width:[0,"cdkConnectedOverlayWidth","width"],height:[0,"cdkConnectedOverlayHeight","height"],minWidth:[0,"cdkConnectedOverlayMinWidth","minWidth"],minHeight:[0,"cdkConnectedOverlayMinHeight","minHeight"],backdropClass:[0,"cdkConnectedOverlayBackdropClass","backdropClass"],panelClass:[0,"cdkConnectedOverlayPanelClass","panelClass"],viewportMargin:[0,"cdkConnectedOverlayViewportMargin","viewportMargin"],scrollStrategy:[0,"cdkConnectedOverlayScrollStrategy","scrollStrategy"],open:[0,"cdkConnectedOverlayOpen","open"],disableClose:[0,"cdkConnectedOverlayDisableClose","disableClose"],transformOriginSelector:[0,"cdkConnectedOverlayTransformOriginOn","transformOriginSelector"],hasBackdrop:[2,"cdkConnectedOverlayHasBackdrop","hasBackdrop",Ot],lockPosition:[2,"cdkConnectedOverlayLockPosition","lockPosition",Ot],flexibleDimensions:[2,"cdkConnectedOverlayFlexibleDimensions","flexibleDimensions",Ot],growAfterOpen:[2,"cdkConnectedOverlayGrowAfterOpen","growAfterOpen",Ot],push:[2,"cdkConnectedOverlayPush","push",Ot],disposeOnNavigation:[2,"cdkConnectedOverlayDisposeOnNavigation","disposeOnNavigation",Ot]},outputs:{backdropClick:"backdropClick",positionChange:"positionChange",attach:"attach",detach:"detach",overlayKeydown:"overlayKeydown",overlayOutsideClick:"overlayOutsideClick"},exportAs:["cdkConnectedOverlay"],features:[ca,Ht]}));let e=n;return e})();function pU(t){return()=>t.scrollStrategies.reposition()}const mU={provide:JT,deps:[qs],useFactory:pU};let Gv=(()=>{const n=class n{};l(n,"ɵfac",function(s){return new(s||n)}),l(n,"ɵmod",hr({type:n,imports:[Ji,es,Ka,Wv,gc],exports:[Wv,gc,Ka]})),l(n,"ɵinj",lr({providers:[qs,mU],imports:[Ji,es,Ka,Ka]}));let e=n;return e})();function gU(t,e){}class yc{constructor(){l(this,"viewContainerRef");l(this,"injector");l(this,"id");l(this,"role","dialog");l(this,"panelClass","");l(this,"hasBackdrop",!0);l(this,"backdropClass","");l(this,"disableClose",!1);l(this,"width","");l(this,"height","");l(this,"minWidth");l(this,"minHeight");l(this,"maxWidth");l(this,"maxHeight");l(this,"positionStrategy");l(this,"data",null);l(this,"direction");l(this,"ariaDescribedBy",null);l(this,"ariaLabelledBy",null);l(this,"ariaLabel",null);l(this,"ariaModal",!0);l(this,"autoFocus","first-tabbable");l(this,"restoreFocus",!0);l(this,"scrollStrategy");l(this,"closeOnNavigation",!0);l(this,"closeOnDestroy",!0);l(this,"closeOnOverlayDetachments",!0);l(this,"componentFactoryResolver");l(this,"providers");l(this,"container");l(this,"templateContext")}}let Dd=(()=>{const n=class n extends cg{constructor(){super();l(this,"_elementRef",g(qe));l(this,"_focusTrapFactory",g(VT));l(this,"_config");l(this,"_interactivityChecker",g(HT));l(this,"_ngZone",g(ge));l(this,"_overlayRef",g(fg));l(this,"_focusMonitor",g(WT));l(this,"_renderer",g(zs));l(this,"_platform",g($t));l(this,"_document",g(we,{optional:!0}));l(this,"_portalOutlet");l(this,"_focusTrap",null);l(this,"_elementFocusedBeforeDialogWasOpened",null);l(this,"_closeInteractionType",null);l(this,"_ariaLabelledByQueue",[]);l(this,"_changeDetectorRef",g(Us));l(this,"_injector",g(gt));l(this,"_isDestroyed",!1);l(this,"attachDomPortal",s=>{this._portalOutlet.hasAttached();const o=this._portalOutlet.attachDomPortal(s);return this._contentAttached(),o});this._config=g(yc,{optional:!0})||new yc,this._config.ariaLabelledBy&&this._ariaLabelledByQueue.push(this._config.ariaLabelledBy)}_addAriaLabelledBy(s){this._ariaLabelledByQueue.push(s),this._changeDetectorRef.markForCheck()}_removeAriaLabelledBy(s){const o=this._ariaLabelledByQueue.indexOf(s);o>-1&&(this._ariaLabelledByQueue.splice(o,1),this._changeDetectorRef.markForCheck())}_contentAttached(){this._initializeFocusTrap(),this._handleBackdropClicks(),this._captureInitialFocus()}_captureInitialFocus(){this._trapFocus()}ngOnDestroy(){this._isDestroyed=!0,this._restoreFocus()}attachComponentPortal(s){this._portalOutlet.hasAttached();const o=this._portalOutlet.attachComponentPortal(s);return this._contentAttached(),o}attachTemplatePortal(s){this._portalOutlet.hasAttached();const o=this._portalOutlet.attachTemplatePortal(s);return this._contentAttached(),o}_recaptureFocus(){this._containsFocus()||this._trapFocus()}_forceFocus(s,o){this._interactivityChecker.isFocusable(s)||(s.tabIndex=-1,this._ngZone.runOutsideAngular(()=>{const a=()=>{c(),u(),s.removeAttribute("tabindex")},c=this._renderer.listen(s,"blur",a),u=this._renderer.listen(s,"mousedown",a)})),s.focus(o)}_focusByCssSelector(s,o){let a=this._elementRef.nativeElement.querySelector(s);a&&this._forceFocus(a,o)}_trapFocus(){this._isDestroyed||ws(()=>{const s=this._elementRef.nativeElement;switch(this._config.autoFocus){case!1:case"dialog":this._containsFocus()||s.focus();break;case!0:case"first-tabbable":this._focusTrap?.focusInitialElement()||this._focusDialogContainer();break;case"first-heading":this._focusByCssSelector('h1, h2, h3, h4, h5, h6, [role="heading"]');break;default:this._focusByCssSelector(this._config.autoFocus);break}},{injector:this._injector})}_restoreFocus(){const s=this._config.restoreFocus;let o=null;if(typeof s=="string"?o=this._document.querySelector(s):typeof s=="boolean"?o=s?this._elementFocusedBeforeDialogWasOpened:null:s&&(o=s),this._config.restoreFocus&&o&&typeof o.focus=="function"){const a=Tl(),c=this._elementRef.nativeElement;(!a||a===this._document.body||a===c||c.contains(a))&&(this._focusMonitor?(this._focusMonitor.focusVia(o,this._closeInteractionType),this._closeInteractionType=null):o.focus())}this._focusTrap&&this._focusTrap.destroy()}_focusDialogContainer(){this._elementRef.nativeElement.focus&&this._elementRef.nativeElement.focus()}_containsFocus(){const s=this._elementRef.nativeElement,o=Tl();return s===o||s.contains(o)}_initializeFocusTrap(){this._platform.isBrowser&&(this._focusTrap=this._focusTrapFactory.create(this._elementRef.nativeElement),this._document&&(this._elementFocusedBeforeDialogWasOpened=Tl()))}_handleBackdropClicks(){this._overlayRef.backdropClick().subscribe(()=>{this._config.disableClose&&this._recaptureFocus()})}};l(n,"ɵfac",function(o){return new(o||n)}),l(n,"ɵcmp",Ye({type:n,selectors:[["cdk-dialog-container"]],viewQuery:function(o,a){if(o&1&&Am(Is,7),o&2){let c;yu(c=_u())&&(a._portalOutlet=c.first)}},hostAttrs:["tabindex","-1",1,"cdk-dialog-container"],hostVars:6,hostBindings:function(o,a){o&2&&Hs("id",a._config.id||null)("role",a._config.role)("aria-modal",a._config.ariaModal)("aria-labelledby",a._config.ariaLabel?null:a._ariaLabelledByQueue[0])("aria-label",a._config.ariaLabel)("aria-describedby",a._config.ariaDescribedBy||null)},features:[_n],decls:1,vars:0,consts:[["cdkPortalOutlet",""]],template:function(o,a){o&1&&du(0,gU,0,0,"ng-template",0)},dependencies:[Is],styles:[".cdk-dialog-container{display:block;width:100%;height:100%;min-height:inherit;max-height:inherit}"],encapsulation:2}));let e=n;return e})();class kl{constructor(e,n){l(this,"overlayRef");l(this,"config");l(this,"componentInstance");l(this,"componentRef");l(this,"containerInstance");l(this,"disableClose");l(this,"closed",new oe);l(this,"backdropClick");l(this,"keydownEvents");l(this,"outsidePointerEvents");l(this,"id");l(this,"_detachSubscription");this.overlayRef=e,this.config=n,this.disableClose=n.disableClose,this.backdropClick=e.backdropClick(),this.keydownEvents=e.keydownEvents(),this.outsidePointerEvents=e.outsidePointerEvents(),this.id=n.id,this.keydownEvents.subscribe(i=>{i.keyCode===MT&&!this.disableClose&&!BT(i)&&(i.preventDefault(),this.close(void 0,{focusOrigin:"keyboard"}))}),this.backdropClick.subscribe(()=>{this.disableClose||this.close(void 0,{focusOrigin:"mouse"})}),this._detachSubscription=e.detachments().subscribe(()=>{n.closeOnOverlayDetachments!==!1&&this.close()})}close(e,n){if(this.containerInstance){const i=this.closed;this.containerInstance._closeInteractionType=n?.focusOrigin||"program",this._detachSubscription.unsubscribe(),this.overlayRef.dispose(),i.next(e),i.complete(),this.componentInstance=this.containerInstance=null}}updatePosition(){return this.overlayRef.updatePosition(),this}updateSize(e="",n=""){return this.overlayRef.updateSize({width:e,height:n}),this}addPanelClass(e){return this.overlayRef.addPanelClass(e),this}removePanelClass(e){return this.overlayRef.removePanelClass(e),this}}const yU=new B("DialogScrollStrategy",{providedIn:"root",factory:()=>{const t=g(qs);return()=>t.scrollStrategies.block()}}),_U=new B("DialogData"),vU=new B("DefaultDialogConfig");let eA=(()=>{const n=class n{constructor(){l(this,"_overlay",g(qs));l(this,"_injector",g(gt));l(this,"_defaultOptions",g(vU,{optional:!0}));l(this,"_parentDialog",g(n,{optional:!0,skipSelf:!0}));l(this,"_overlayContainer",g(hg));l(this,"_idGenerator",g(GT));l(this,"_openDialogsAtThisLevel",[]);l(this,"_afterAllClosedAtThisLevel",new oe);l(this,"_afterOpenedAtThisLevel",new oe);l(this,"_ariaHiddenElements",new Map);l(this,"_scrollStrategy",g(yU));l(this,"afterAllClosed",hp(()=>this.openDialogs.length?this._getAfterAllClosed():this._getAfterAllClosed().pipe(Zo(void 0))))}get openDialogs(){return this._parentDialog?this._parentDialog.openDialogs:this._openDialogsAtThisLevel}get afterOpened(){return this._parentDialog?this._parentDialog.afterOpened:this._afterOpenedAtThisLevel}open(r,s){s={...this._defaultOptions||new yc,...s},s.id=s.id||this._idGenerator.getId("cdk-dialog-"),s.id&&this.getDialogById(s.id);const a=this._getOverlayConfig(s),c=this._overlay.create(a),u=new kl(c,s),h=this._attachContainer(c,u,s);return u.containerInstance=h,this._attachDialogContent(r,u,h,s),this.openDialogs.length||this._hideNonDialogContentFromAssistiveTechnology(),this.openDialogs.push(u),u.closed.subscribe(()=>this._removeOpenDialog(u,!0)),this.afterOpened.next(u),u}closeAll(){Lh(this.openDialogs,r=>r.close())}getDialogById(r){return this.openDialogs.find(s=>s.id===r)}ngOnDestroy(){Lh(this._openDialogsAtThisLevel,r=>{r.config.closeOnDestroy===!1&&this._removeOpenDialog(r,!1)}),Lh(this._openDialogsAtThisLevel,r=>r.close()),this._afterAllClosedAtThisLevel.complete(),this._afterOpenedAtThisLevel.complete(),this._openDialogsAtThisLevel=[]}_getOverlayConfig(r){const s=new ug({positionStrategy:r.positionStrategy||this._overlay.position().global().centerHorizontally().centerVertically(),scrollStrategy:r.scrollStrategy||this._scrollStrategy(),panelClass:r.panelClass,hasBackdrop:r.hasBackdrop,direction:r.direction,minWidth:r.minWidth,minHeight:r.minHeight,maxWidth:r.maxWidth,maxHeight:r.maxHeight,width:r.width,height:r.height,disposeOnNavigation:r.closeOnNavigation});return r.backdropClass&&(s.backdropClass=r.backdropClass),s}_attachContainer(r,s,o){const a=o.injector||o.viewContainerRef?.injector,c=[{provide:yc,useValue:o},{provide:kl,useValue:s},{provide:fg,useValue:r}];let u;o.container?typeof o.container=="function"?u=o.container:(u=o.container.type,c.push(...o.container.providers(o))):u=Dd;const h=new Ad(u,o.viewContainerRef,gt.create({parent:a||this._injector,providers:c}));return r.attach(h).instance}_attachDialogContent(r,s,o,a){if(r instanceof xr){const c=this._createInjector(a,s,o,void 0);let u={$implicit:a.data,dialogRef:s};a.templateContext&&(u={...u,...typeof a.templateContext=="function"?a.templateContext():a.templateContext}),o.attachTemplatePortal(new Nu(r,null,u,c))}else{const c=this._createInjector(a,s,o,this._injector),u=o.attachComponentPortal(new Ad(r,a.viewContainerRef,c));s.componentRef=u,s.componentInstance=u.instance}}_createInjector(r,s,o,a){const c=r.injector||r.viewContainerRef?.injector,u=[{provide:_U,useValue:r.data},{provide:kl,useValue:s}];return r.providers&&(typeof r.providers=="function"?u.push(...r.providers(s,r,o)):u.push(...r.providers)),r.direction&&(!c||!c.get(Ds,null,{optional:!0}))&&u.push({provide:Ds,useValue:{value:r.direction,change:G()}}),gt.create({parent:c||a,providers:u})}_removeOpenDialog(r,s){const o=this.openDialogs.indexOf(r);o>-1&&(this.openDialogs.splice(o,1),this.openDialogs.length||(this._ariaHiddenElements.forEach((a,c)=>{a?c.setAttribute("aria-hidden",a):c.removeAttribute("aria-hidden")}),this._ariaHiddenElements.clear(),s&&this._getAfterAllClosed().next()))}_hideNonDialogContentFromAssistiveTechnology(){const r=this._overlayContainer.getContainerElement();if(r.parentElement){const s=r.parentElement.children;for(let o=s.length-1;o>-1;o--){const a=s[o];a!==r&&a.nodeName!=="SCRIPT"&&a.nodeName!=="STYLE"&&!a.hasAttribute("aria-live")&&(this._ariaHiddenElements.set(a,a.getAttribute("aria-hidden")),a.setAttribute("aria-hidden","true"))}}}_getAfterAllClosed(){const r=this._parentDialog;return r?r._getAfterAllClosed():this._afterAllClosedAtThisLevel}};l(n,"ɵfac",function(s){return new(s||n)}),l(n,"ɵprov",O({token:n,factory:n.ɵfac,providedIn:"root"}));let e=n;return e})();function Lh(t,e){let n=t.length;for(;n--;)e(t[n])}let bU=(()=>{const n=class n{};l(n,"ɵfac",function(s){return new(s||n)}),l(n,"ɵmod",hr({type:n,imports:[Gv,es,Dv,Dd],exports:[es,Dd]})),l(n,"ɵinj",lr({providers:[eA],imports:[Gv,es,Dv,es]}));let e=n;return e})();const cs=class cs{constructor(){this.dialogRef=g(kl),this.dialogRef.backdropClick.subscribe(this.closeDialog)}onKeyUp(){this.closeDialog()}closeDialog(){this.dialogRef.close()}};cs.ɵfac=function(n){return new(n||cs)},cs.ɵcmp=Ye({type:cs,selectors:[["dk-menu"]],hostBindings:function(n,i){n&1&&mt("keyup.esc",function(){return i.onKeyUp()},!1,WR)},decls:25,vars:0,consts:[["role","navigation","id","menu","aria-label","Hauptmenü",1,"is-menu-visible"],["role","menu",1,"inner"],[1,"links"],["routerLink","/",3,"click"],["href","#about",3,"click"],["routerLink","/blog",3,"click"],["routerLink","/projects",3,"click"],["routerLink","/contact",3,"click"],["routerLink","/imprint",3,"click"],[1,"close",3,"click"]],template:function(n,i){n&1&&(le(0,"div",0)(1,"div",1)(2,"h2"),Ee(3,"Menü"),be(),le(4,"ul",2)(5,"li")(6,"a",3),mt("click",function(){return i.closeDialog()}),Ee(7,"Startseite"),be()(),le(8,"li")(9,"a",4),mt("click",function(){return i.closeDialog()}),Ee(10,"Über mich"),be()(),le(11,"li")(12,"a",5),mt("click",function(){return i.closeDialog()}),Ee(13,"Blog"),be()(),le(14,"li")(15,"a",6),mt("click",function(){return i.closeDialog()}),Ee(16,"Projekte"),be()(),le(17,"li")(18,"a",7),mt("click",function(){return i.closeDialog()}),Ee(19,"Kontakt"),be()(),le(20,"li")(21,"a",8),mt("click",function(){return i.closeDialog()}),Ee(22,"Impressum"),be()()(),le(23,"button",9),mt("click",function(){return i.closeDialog()}),Ee(24,"Schließen"),be()()())},dependencies:[Bo],styles:[`#menu[_ngcontent-%COMP%] { + opacity: 1; + visibility: visible; + position: absolute; + z-index: 1000; + pointer-events: all; + position: fixed; +} +#menu[_ngcontent-%COMP%] .inner[_ngcontent-%COMP%] { + opacity: 1; +} +#menu[_ngcontent-%COMP%] button[_ngcontent-%COMP%] { + box-shadow: none; +}`]});let Id=cs;const us=class us{constructor(){this.dialog=g(eA),this.dialogRef=pC(null)}onKeydown(e){(e.key==="Enter"||e.key===" ")&&(e.preventDefault(),this.openDialog())}openDialog(){if(this.dialogRef())this.dialog.closeAll(),this.dialogRef.set(null);else{const e=this.dialog.open(Id,{ariaModal:!0,hasBackdrop:!0,closeOnNavigation:!0,closeOnDestroy:!0,disableClose:!1});this.dialogRef.set(e),e.closed.subscribe(()=>{this.dialogRef.set(null)})}}};us.ɵfac=function(n){return new(n||us)},us.ɵcmp=Ye({type:us,selectors:[["dk-navbar"]],decls:4,vars:1,consts:[["id","navigation","role","navigation","tabindex","0",1,"menu-dark",3,"keydown"],["role","button","aria-label","Menü öffnen","aria-controls","menu",1,"burger-menu",3,"click"],[1,"hidden-small"]],template:function(n,i){n&1&&(le(0,"nav",0),mt("keydown",function(s){return i.onKeydown(s)}),le(1,"button",1),mt("click",function(){return i.openDialog()}),le(2,"span",2),Ee(3,"Menü"),be()()()),n&2&&(wr(),Hs("aria-expanded",!!i.dialogRef()))},dependencies:[bU],styles:[`.menu-dark[_ngcontent-%COMP%] { + filter: alpha(opacity=90); +} +.menu-dark[_ngcontent-%COMP%] > button[_ngcontent-%COMP%] { + color: #fdfdfd; + background-color: #2e3141; + opacity: 0.9; + margin: 0px 1px; +} +.menu-dark[_ngcontent-%COMP%] > button[_ngcontent-%COMP%]:hover, .menu-dark[_ngcontent-%COMP%] > button[_ngcontent-%COMP%]:focus { + background-color: rgb(67.1351351351, 71.5135135135, 94.8648648649); + box-shadow: inset 0 0 0 2px #5e7959; +} +.menu-dark[_ngcontent-%COMP%]:focus > button[_ngcontent-%COMP%] { + box-shadow: inset 0 0 0 2px #ada789; +} +@media screen and (max-width: 480px) { + .hidden-small[_ngcontent-%COMP%] { + visibility: hidden; + } +}`]});let xd=us;function EU(t,e){if(t&1){const n=T2();le(0,"dk-cookie-banner",0),mt("accepted",function(){CI(n);const r=F2();return SI(r.toggleCookiesAccepted())}),be()}}const hs=class hs{constructor(){this.router=g(Fi),this.scrollService=g(Uf),this.platformId=g(Jt),this.cookiesAccepted=!1,this.isBrowser=!1,this.setupScrollBehaviourForAnker(),this.isBrowser=wu(this.platformId),this.cookiesAccepted=this.isBrowser?!!localStorage.getItem("cookiesAccepted"):!0}toggleCookiesAccepted(){this.cookiesAccepted=!0,this.isBrowser&&localStorage.setItem("cookiesAccepted","true")}setupScrollBehaviourForAnker(){this.router.events.subscribe(e=>{if(e instanceof sr)if(/#.*/.test(e.url)){const n=e.url.split("#")[1];this.scrollService.scrollToElement(n)}else this.scrollService.scrollToTop()})}};hs.ɵfac=function(n){return new(n||hs)},hs.ɵcmp=Ye({type:hs,selectors:[["dk-root"]],decls:6,vars:1,consts:[[3,"accepted"]],template:function(n,i){n&1&&(pn(0,"dk-navbar")(1,"dk-header"),le(2,"main"),pn(3,"router-outlet"),be(),pn(4,"dk-contact"),du(5,EU,1,0,"dk-cookie-banner")),n&2&&(wr(5),fl(i.cookiesAccepted?-1:5))},dependencies:[BS,xd,Cd,vd,bd,LH],encapsulation:2});let Rd=hs;const wU="modulepreload",CU=function(t){return"/"+t},qv={},M=function(e,n,i){let r=Promise.resolve();if(n&&n.length>0){document.getElementsByTagName("link");const o=document.querySelector("meta[property=csp-nonce]"),a=o?.nonce||o?.getAttribute("nonce");r=Promise.allSettled(n.map(c=>{if(c=CU(c),c in qv)return;qv[c]=!0;const u=c.endsWith(".css"),h=u?'[rel="stylesheet"]':"";if(document.querySelector(`link[href="${c}"]${h}`))return;const f=document.createElement("link");if(f.rel=u?"stylesheet":wU,u||(f.as="script"),f.crossOrigin="",f.href=c,a&&f.setAttribute("nonce",a),document.head.appendChild(f),u)return new Promise((d,p)=>{f.addEventListener("load",d),f.addEventListener("error",()=>p(new Error(`Unable to preload CSS for ${c}`)))})}))}function s(o){const a=new Event("vite:preloadError",{cancelable:!0});if(a.payload=o,window.dispatchEvent(a),!a.defaultPrevented)throw o}return r.then(o=>{for(const a of o||[])a.status==="rejected"&&s(a.reason);return e().catch(s)})},SU={title:"Mach aus deiner Angular-App eine PWA",description:"Immer häufiger stößt man im Webumfeld auf den Begriff der Progessive Web App – kurz: PWA. Doch was genau steckt dahinter und welche Vorteile hat eine PWA gegenüber einer herkömmlichen Webanwendung oder einer App? Als Progressive Web App bezeichnen wir eine Webanwendung, die beim Aufruf einer Website als App auf einem lokalen Gerät installiert werden kann – zum Beispiel auf dem Telefon oder Tablet. Die PWA lässt sich wie jede andere App nutzen, inklusive Push-Benachrichtigungen!",published:!0,author:{name:"Danny Koppenhagen",mail:"mail@k9n.dev"},created:"2019-07-24T00:00:00.000Z",updated:"2019-07-24T00:00:00.000Z",publishedAt:{name:"angular-buch.com",url:"https://angular-buch.com/blog/2019-07-progressive-web-app",logo:"https://angular-buch.com/assets/img/brand-400.png"},keywords:["PWA","Progressive Web App","Angular","Service Worker","Web App Manifest","Caching","Push Notification"],language:"de",thumbnail:{header:"images/blog/pwaheader.jpg",card:"images/blog/pwaheader-small.jpg"},series:"angular-pwa"},TU={title:"ngx-semantic-version: enhance your git and release workflow",description:"In this article I will introduce the new tool ngx-semantic-version. This new Angular Schematic allows you to set up all necessary tooling for consistent git commit messages and publishing new versions. It will help you to keep your CHANGELOG.md file up to date and to release new tagged versions. All this is done by leveraging great existing tools like commitizen, commitlint and standard-version.",published:!0,author:{name:"Danny Koppenhagen",mail:"mail@k9n.dev"},created:"2019-11-06T00:00:00.000Z",updated:"2019-11-06T00:00:00.000Z",publishedAt:{name:"angular.schule.com",url:"https://angular.schule/blog/2019-11-ngx-semantic-version",logo:"https://angular.schule/assets/img/logo-angular-schule-gradient-600.png"},keywords:["Angular","Angular CLI","Angular Schematics","release","commit","commitlint","husky","commitizen","standard-version","semver","Semantic Version","Conventional Commits","Conventional Changelog"],language:"en",thumbnail:{header:"images/blog/ngx-semantic-version-header.jpg",card:"images/blog/ngx-semantic-version-header-small.jpg"}},AU={title:"Create powerful fast pre-rendered Angular Apps using Scully static site generator",description:"You probably heard of the JAMStack. It is a new way of building websites and apps via static site generators that deliver better performance and higher security. With this blog post, I will show you how you can easily create a blogging app by using the power of Angular and the help of Scully static site generator. It will automatically detect all app routes and create static pages out of them that are ready to ship for production.",published:!0,author:{name:"Danny Koppenhagen",mail:"mail@k9n.dev"},created:"2020-01-01T00:00:00.000Z",updated:"2021-11-01T00:00:00.000Z",keywords:["Angular","Angular CLI","Angular Schematics","Scully","SSR","SSG","Pre-rendering","JAM Stack"],linked:{devTo:"https://dev.to/dkoppenhagen/create-powerfull-fast-pre-rendered-angular-apps-using-scully-static-site-generator-31fb",medium:"https://danny-koppenhagen.medium.com/create-powerful-fast-pre-rendered-angular-apps-using-scully-static-site-generator-79832a549787"},language:"en",thumbnail:{header:"images/blog/scully/scully-header.jpg",card:"images/blog/scully/scully-header-small.jpg"},series:"scully"},kU={title:"Angular 9 ist da! Die wichtigsten Neuerungen im Überblick",description:'Am 6. Februar 2020 wurde bei Google in Kalifornien der "rote Knopf" gedrückt: Das lang erwartete neue Release ist da – die neue Major-Version Angular 9.0! Wir werden Ihnen in diesem Artikel die wichtigsten Neuerungen vorstellen.',published:!0,author:{name:"Angular Buch Team",mail:"team@angular-buch.com"},created:"2020-02-10T00:00:00.000Z",updated:"2020-02-10T00:00:00.000Z",publishedAt:{name:"angular-buch.com",url:"https://angular-buch.com/blog/2020-02-angular9",logo:"https://angular-buch.com/assets/img/brand-400.png",linkExternal:!0},keywords:["Angular","Angular 9","Ivy","TestBed","i18n","SSR","TypeScript"],language:"de",thumbnail:{header:"images/blog/ng9/angular9.jpg",card:"images/blog/ng9/angular9-small.jpg"},series:"angular-update"},DU={title:"Dig deeper into static site generation with Scully and use the most out of it",description:"In this article about Scully, I will introduce some more advanced features. You will learn how you can setup a custom Markdown module and how you can use AsciiDoc with Scully. I will guide you through the process of how to handle protected routes using a custom route plugin.",published:!0,author:{name:"Danny Koppenhagen",mail:"mail@k9n.dev"},created:"2020-03-02T00:00:00.000Z",updated:"2021-05-18T00:00:00.000Z",keywords:["Angular","Angular CLI","Angular Schematics","Scully","SSR","SSG","Server-Side Rendering","Static Site Generator","Pre-rendering","JAM Stack"],linked:{devTo:"https://dev.to/dkoppenhagen/dig-deeper-into-static-site-generation-with-scully-and-use-the-most-out-of-it-4cn5",medium:"https://danny-koppenhagen.medium.com/dig-deeper-into-static-site-generation-with-scully-and-use-the-most-out-of-it-ac86f216a6a7"},language:"en",thumbnail:{header:"images/blog/scully/scully-header2.jpg",card:"images/blog/scully/scully-header2-small.jpg"},series:"scully"},IU={title:"Angular 10 ist da! Die wichtigsten Neuerungen im Überblick",description:"Nach nur vier Monaten Entwicklungszeit wurde am 24. Juni 2020 die neue Major-Version Angular 10.0 veröffentlicht! Wir werden Ihnen in diesem Artikel die wichtigsten Neuerungen vorstellen.",published:!0,author:{name:"Angular Buch Team",mail:"team@angular-buch.com"},created:"2020-06-29T00:00:00.000Z",updated:"2020-06-29T00:00:00.000Z",publishedAt:{name:"angular-buch.com",url:"https://angular-buch.com/blog/2020-06-angular10",logo:"https://angular-buch.com/assets/img/brand-400.png",linkExternal:!0},keywords:["Angular","Angular 10","TypeScript","TSLint","Browserslist","tsconfig","CommonJS"],language:"de",thumbnail:{header:"images/blog/ng10/angular10.jpg",card:"images/blog/ng10/angular10-small.jpg"},series:"angular-update"},xU={title:"My Development Setup",description:"In this article I will present you what tools I am using during my day-to-day development. Also I will show you a list of extensions and their purpose that help me (and probably you too!) to be more productive.",published:!0,author:{name:"Danny Koppenhagen",mail:"mail@k9n.dev"},created:"2020-08-27T00:00:00.000Z",updated:"2022-07-17T00:00:00.000Z",keywords:["Angular","Vue.js","Console","Development","Setup","VSCode","Visual Studio Code","Google Chrome","Extension","macOS"],language:"en",thumbnail:{header:"images/blog/dev-setup/dev-setup-header.jpg",card:"images/blog/dev-setup/dev-setup-header-small.jpg"},linked:{devTo:"https://dev.to/dkoppenhagen/my-development-setup-1ne2"}},RU={title:"Speed up your Angular schematics development with useful helper functions",description:"Angular CLI schematics offer us a way to add, scaffold and update app-related files and modules. In this article I will guide you through some common but currently undocumented helper functions you can use to achieve your goal.",published:!0,author:{name:"Danny Koppenhagen",mail:"mail@k9n.dev"},created:"2020-09-14T00:00:00.000Z",updated:"2021-05-19T00:00:00.000Z",publishedAt:{name:"inDepth.dev",url:"https://indepth.dev/speed-up-your-angular-schematics-development-with-useful-helper-functions",logo:"images/InDepthdev-white.svg"},keywords:["Angular","Angular CLI","Schematics"],language:"en",thumbnail:{header:"images/blog/schematics-helpers/schematics-helpers.jpg",card:"images/blog/schematics-helpers/schematics-helpers-small.jpg"},linked:{devTo:"https://dev.to/dkoppenhagen/speed-up-your-angular-schematics-development-with-useful-helper-functions-1kb2"}},FU={title:"Angular 11 ist da! Die wichtigsten Neuerungen im Überblick",description:"Es hätte kein schöneres Datum sein können: am 11.11.2020 wurde die neue Major-Version Angular 11.0 veröffentlicht. Wir werden Ihnen in diesem Artikel die wichtigsten Neuerungen vorstellen.",published:!0,author:{name:"Angular Buch Team",mail:"team@angular-buch.com"},created:"2020-11-11T00:00:00.000Z",updated:"2020-11-11T00:00:00.000Z",publishedAt:{name:"angular-buch.com",url:"https://angular-buch.com/blog/2020-11-angular11",logo:"https://angular-buch.com/assets/img/brand-400.png",linkExternal:!0},keywords:["Angular","Angular 11","TypeScript","TSLint","ESLint","Hot Module Reloading"],language:"de",thumbnail:{header:"images/blog/ng11/angular11.jpg",card:"images/blog/ng11/angular11-small.jpg"},series:"angular-update"},OU={title:"Trusted Web Activitys (TWA) mit Angular",description:"Progressive Web Apps sind in den letzten Jahren immer populärer geworden. In diesem Blogpost werde ich Ihnen zeigen, wie Sie Ihre PWA auf einfachem Weg in den Google Play Store für Android bringen können, ohne eine echte Android-App mit Webview zu entwickeln, die lediglich eine Website aufruft.",published:!0,author:{name:"Danny Koppenhagen",mail:"mail@k9n.dev"},created:"2020-11-17T00:00:00.000Z",updated:"2020-11-17T00:00:00.000Z",publishedAt:{name:"angular-buch.com",url:"https://angular-buch.com/blog/2020-11-twa",logo:"https://angular-buch.com/assets/img/brand-400.png"},keywords:["TWA","Trusted Web Activity","PWA","Progressive Web App","Angular","Android","Android Store"],language:"de",thumbnail:{header:"images/blog/twa/header-twa.jpg",card:"images/blog/twa/header-twa-small.jpg"},series:"angular-pwa"},PU={title:"Angular 12 ist da! Die wichtigsten Neuerungen im Überblick",description:"Am 12.05.2021 wurde die neue Major-Version Angular 12.0 veröffentlicht – ein halbes Jahr nach dem Release von Angular 11. In diesem Artikel stellen wir wieder die wichtigsten Neuerungen vor.",published:!0,author:{name:"Angular Buch Team",mail:"team@angular-buch.com"},created:"2021-06-07T00:00:00.000Z",updated:"2021-07-03T00:00:00.000Z",publishedAt:{name:"angular-buch.com",url:"https://angular-buch.com/blog/2021-06-angular12",logo:"https://angular-buch.com/assets/img/brand-400.png",linkExternal:!0},keywords:["Angular","Angular 12","Angular DevTools","TypeScript","Protractor","E2E","Strict Mode"],language:"de",thumbnail:{header:"https://website-articles.angular-buch.com/2021-06-angular12/angular12.jpg"},series:"angular-update"},NU={title:"Angular 13 ist da! Die wichtigsten Neuerungen im Überblick",description:"Anfang November 2021 erschien die neue Major-Version 13 von Angular. In diesem Artikel stellen wir wie immer die wichtigsten Neuigkeiten vor.",published:!0,author:{name:"Angular Buch Team",mail:"team@angular-buch.com"},created:"2021-11-03T00:00:00.000Z",updated:"2021-11-03T00:00:00.000Z",publishedAt:{name:"angular-buch.com",url:"https://angular-buch.com/blog/2021-11-angular13",logo:"https://angular-buch.com/assets/img/brand-400.png",linkExternal:!0},keywords:["Angular","Angular 13","RxJS 7","TypeScript","Dynamic Components","Persistent Cache","Ivy"],language:"de",thumbnail:{header:"https://website-articles.angular-buch.com/2021-11-angular13/angular13.jpg"},series:"angular-update"},LU={title:"Angular 14 ist da! Die wichtigsten Neuerungen im Überblick",description:"Am 2. Juni 2022 erschien die neue Major-Version Angular 14! Während die letzten Hauptreleases vor allem interne Verbesserungen für das Tooling mitbrachten, hat Angular 14 einige spannende neue Features mit an Bord. In diesem Artikel stellen wir wie immer die wichtigsten Neuigkeiten vor.",published:!0,author:{name:"Angular Buch Team",mail:"team@angular-buch.com"},created:"2022-06-02T00:00:00.000Z",updated:"2022-06-02T00:00:00.000Z",publishedAt:{name:"angular-buch.com",url:"https://angular-buch.com/blog/2022-06-angular14",logo:"https://angular-buch.com/assets/img/brand-400.png",linkExternal:!0},keywords:["Angular","Angular 14","Standalone Components","Strict Typed Forms","Router Title","ng completion","inject"],language:"de",thumbnail:{header:"https://website-articles.angular-buch.com/2022-06-angular14/angular14.jpg"},series:"angular-update"},MU={title:"Angular 15 ist da! Die wichtigsten Neuerungen im Überblick",description:"Am 16. November 2022 erschien die neue Major-Version Angular 15! Im Fokus des neuen Releases standen vor allem diese Themen: Stabilisierung der Standalone Components, funktionale Guards, Resolver und Interceptors sowie die Vereinfachung der initial generierten Projektdateien.",published:!0,author:{name:"Angular Buch Team",mail:"team@angular-buch.com"},created:"2022-11-25T00:00:00.000Z",updated:"2022-11-25T00:00:00.000Z",publishedAt:{name:"angular-buch.com",url:"https://angular-buch.com/blog/2022-11-angular15",logo:"https://angular-buch.com/assets/img/brand-400.png",linkExternal:!0},keywords:["Angular","Angular 15","Standalone Components","Guards","Resolver","Interceptoren","Directive Composition","Image Directive"],language:"de",thumbnail:{header:"https://website-articles.angular-buch.com/2022-11-angular15/angular15.jpg"},series:"angular-update"},BU={title:"Route based navigation menus in Vue",description:"Learn how to build a dynamic navigation menu based on the route configuration using Vue3 and Vue Router.",published:!0,author:{name:"Danny Koppenhagen",mail:"mail@k9n.dev"},created:"2022-12-19T00:00:00.000Z",updated:"2022-12-19T00:00:00.000Z",keywords:["Vue","Vue 3","Vue Router"],language:"en",thumbnail:{header:"images/blog/vue-route-menu/vue-route-menu.jpg",card:"images/blog/vue-route-menu/vue-route-menu-small.jpg"},linked:{devTo:"https://dev.to/dkoppenhagen/route-based-navigation-menus-in-vue-od2"}},jU={title:"Angular 16 ist da! Die wichtigsten Neuerungen im Überblick",description:"Am 4. Mai 2023 erschien die neue Major-Version von Angular: Angular 16! Das Angular-Team hat einige neue Features und Konzepte in diesem Release verpackt. Die größte Neuerung sind die Signals, die als erste Developer Preview in der neuen Version ausprobiert werden können.",published:!0,author:{name:"Angular Buch Team",mail:"team@angular-buch.com"},created:"2023-05-22T00:00:00.000Z",updated:"2023-05-22T00:00:00.000Z",publishedAt:{name:"angular-buch.com",url:"https://angular-buch.com/blog/2023-05-angular16",logo:"https://angular-buch.com/assets/img/brand-400.png",linkExternal:!0},keywords:["Angular","Angular 16","Signals","Hydration","Standalone Components"],language:"de",thumbnail:{header:"https://website-articles.angular-buch.com/2023-05-angular16/angular16.jpg"},series:"angular-update"},zU={title:"How we migrated our Vue 2 enterprise project to Vue 3",description:"Even if Vue 3 isn’t a new thing anymore, there are still a lot of Vue 2 apps which haven’t been migrated yet. In this blog post I will give you an insight into how my team mastered the migration and what pitfalls we faced.",published:!0,author:{name:"Danny Koppenhagen",mail:"mail@k9n.dev"},created:"2023-10-26T00:00:00.000Z",updated:"2023-10-26T00:00:00.000Z",publishedAt:{name:"DB Systel Tech Stories",url:"https://dbsystel.github.io/tech-stories/blog/2023/2023-08-21-vue2-vue3-migration.html",logo:"https://dbsystel.github.io/tech-stories/images/home.png",linkExternal:!0},keywords:["Vue","Vue 2","Vue 3","Migration","Pinia","Vite"],language:"en",thumbnail:{header:"https://dbsystel.github.io/tech-stories/images/home.png"}},HU={title:"Angular 17 ist da! Die wichtigsten Neuerungen im Überblick",description:"Es ist wieder ein halbes Jahr vorbei: Anfang November 2023 erschien die neue Major-Version Angular 17! Der neue Control Flow und Deferred Loading sind nur einige der neuen Features. Wir fassen die wichtigsten Neuigkeiten zu Angular 17 in diesem Blogpost zusammen.",published:!0,author:{name:"Angular Buch Team",mail:"team@angular-buch.com"},created:"2023-11-06T00:00:00.000Z",updated:"2023-11-08T00:00:00.000Z",publishedAt:{name:"angular-buch.com",url:"https://angular-buch.com/blog/2023-11-angular17",logo:"https://angular-buch.com/assets/img/brand-400.png",linkExternal:!0},keywords:["Angular","Angular 17","Signals","Control Flow","Deferrable Views","View Transition API","ESBuild","Logo","angular.dev"],language:"de",thumbnail:{header:"https://website-articles.angular-buch.com/2023-11-angular17/angular17.jpg"},series:"angular-update"},UU={title:"Modern Angular: den BookMonkey migrieren",description:`Angular erlebt einen Aufschwung: +Mit den letzten Major-Versionen des Frameworks wurden einige wichtige neue Konzepte und Features eingeführt. +Wir berichten darüber regelmäßig in unseren Blogposts zu den Angular-Releases. +In diesem Artikel wollen wir das Beispielprojekt "BookMonkey" aus dem Angular-Buch aktualisieren und die neuesten Konzepte von Angular praktisch einsetzen. +`,published:!0,author:{name:"Danny Koppenhagen und Ferdinand Malcher",mail:"team@angular-buch.com"},created:"2024-05-05T00:00:00.000Z",updated:"2024-05-05T00:00:00.000Z",publishedAt:{name:"angular-buch.com",url:"https://angular-buch.com/blog/2024-05-modern-angular-bm",logo:"https://angular-buch.com/assets/img/brand-400.png",linkExternal:!0},keywords:["ESBuild","Application Builder","Standalone Components","inject","Functional Interceptor","Control Flow","Signals","Router Input Binding","Functional Outputs","NgOptimizedImage","BookMonkey"],language:"de",thumbnail:{header:"https://website-articles.angular-buch.com/2024-05-modern-angular-bm/header-modernangular.jpg"}},VU={title:"Angular 18 ist da: Signals, Signals, Signals!",description:"Und schon wieder ist ein halbes Jahr vergangen: Angular Version 18 ist jetzt verfügbar! In den letzten Versionen wurden viele neue Funktionen und Verbesserungen eingeführt. Diesmal lag der Fokus darauf, die bereits ausgelieferten APIs zu stabilisieren, diverse Feature Requests zu bearbeiten und eines der am meisten nachgefragten Projekte auf der Roadmap experimentell zu veröffentlichen: die Zoneless Change Detection.",published:!0,author:{name:"Angular Buch Team",mail:"team@angular-buch.com"},created:"2024-06-14T00:00:00.000Z",updated:"2024-06-14T00:00:00.000Z",publishedAt:{name:"angular-buch.com",url:"https://angular-buch.com/blog/2024-06-angular18",logo:"https://angular-buch.com/assets/img/brand-400.png",linkExternal:!0},keywords:["Angular","Angular 18","Zoneless","Zoneless Change Detection","Signals","Material 3"],language:"de",thumbnail:{header:"https://website-articles.angular-buch.com/2024-06-angular18/angular18.jpg"},series:"angular-update"},$U={title:"Supercharge Your Angular PWA with Push Notifications: From Setup to Debugging",description:"In modern web applications, push notifications have become an essential feature for engaging users. Service workers are crucial in enabling this functionality by running scripts in the background, independent of a web page. This guide will walk you through setting up a service worker with push notifications in Angular, including testing, verifying, debugging, and avoiding common pitfalls.",published:!0,author:{name:"Danny Koppenhagen",mail:"mail@k9n.dev"},created:"2024-07-02T00:00:00.000Z",updated:"2024-07-02T00:00:00.000Z",publishedAt:{name:"DB Systel Tech Stories",url:"https://techstories.dbsystel.de/blog/2024/2024-07-02-Angular-Push-Notifications.html",logo:"https://dbsystel.github.io/tech-stories/images/home.png",linkExternal:!0},keywords:["Angular","WebPush","PWA"],language:"en",thumbnail:{header:"https://dbsystel.github.io/tech-stories/images/home.png"}},WU={title:"Angular 19 ist da!",description:"Neben grauen Herbsttagen hat der November in Sachen Angular einiges zu bieten: Am 19. November 2024 wurde die neue Major-Version Angular 19 releaset! Angular bringt mit der Resource API und dem Linked Signal einige neue Features mit. Standalone Components müssen außerdem nicht mehr explizit als solche markiert werden. Wir stellen in diesem Blogpost alle wichtigen Neuerungen vor!",published:!0,author:{name:"Angular Buch Team",mail:"team@angular-buch.com"},created:"2024-11-19T00:00:00.000Z",updated:"2024-11-19T00:00:00.000Z",publishedAt:{name:"angular-buch.com",url:"https://angular-buch.com/blog/2024-11-angular19",logo:"https://angular-buch.com/assets/img/brand-400.png",linkExternal:!0},keywords:["Angular","Angular 19","Linked Signal","Resource API","Standalone Components","Effects"],language:"de",thumbnail:{header:"https://website-articles.angular-buch.com/2024-11-angular19/angular19.jpg"},series:"angular-update"},GU={title:"angular-tag-cloud-module — Generated word clouds for your Angular app",description:"My module angular-tag-cloud-module lets you generate word clouds / tag clouds for your Angular app",published:!0,author:{name:"Danny Koppenhagen",mail:"mail@k9n.dev"},updated:"2020-04-09T00:00:00.000Z",keywords:["Angular","Angular CLI","word cloud","tag cloud"],language:"en",thumbnail:{header:"images/projects/angular-tag-cloud-module.png",card:"images/projects/angular-tag-cloud-module-small.png"}},qU={title:"vscode-file-tree-to-text-generator — A Visual Studio Code Extension to generate file trees",description:"Generate file trees from your VS Code Explorer for different Markdown, LaTeX, ASCII or a userdefined format",published:!0,author:{name:"Danny Koppenhagen",mail:"mail@k9n.dev"},updated:"2020-02-02T00:00:00.000Z",keywords:["Markdown","ASCII","asciitree","latex","dirtree","tree","filtre","vscode","Visual Studio Code"],language:"en",thumbnail:{header:"images/projects/file-tree-header-image.jpg",card:"images/projects/file-tree-header-image-small.jpg"}},ZU={title:"scully-plugin-toc — A Plugin for generating table of contents",description:"This plugin for Scully will insert a table of contents (TOC) for your Markdown content automatically",published:!0,author:{name:"Danny Koppenhagen",mail:"mail@k9n.dev"},updated:"2021-12-20T00:00:00.000Z",keywords:["Angular","Scully","SSR","SSG","JAM Stack","TOC"],language:"en",thumbnail:{header:"images/projects/toc.jpg",card:"images/projects/toc-small.jpg"}},YU={title:".dotfiles — My default configuration files for macOS",description:"I collected all my .bash, .zsh, .vscode, .vim, macOS, homebrew and iterm configuration files in one repository for easily setup a new macOS system with a great developer experience.",published:!0,author:{name:"Danny Koppenhagen",mail:"mail@k9n.dev"},updated:"2020-03-12T00:00:00.000Z",keywords:["zsh","bash","vscode","Visual Studio Code","vim","macOS","iterm","iterm2"],language:"en",thumbnail:{header:"images/projects/dotfiles-header.jpg",card:"images/projects/dotfiles-header-small.jpg"}},KU={title:"ngx-semantic-version — An Angular Schematic to enhance your release workflow",description:"Simply add and configure commitlint, husky, commitizen and standard-version for your Angular project by using Angular Schematics",published:!0,author:{name:"Danny Koppenhagen",mail:"mail@k9n.dev"},updated:"2020-04-09T00:00:00.000Z",keywords:["Angular","Angular CLI","Angular Schematics","release","commit","commitlint","husky","commitizen","standard-version","semver","Semantic Version","Conventional Commits","Conventional Changelog"],language:"en",thumbnail:{header:"images/projects/semver-header.jpg",card:"images/projects/semver-header-small.jpg"}},QU={title:"vscode-code-review — Create exportable code reviews in vscode",description:"Create exportable code reviews in Visual Studio Code including automatic file and line references",published:!0,author:{name:"Danny Koppenhagen",mail:"mail@k9n.dev"},updated:"2020-05-22T00:00:00.000Z",keywords:["code review","vscode","Visual Studio Code"],language:"en",thumbnail:{header:"images/projects/code-review.jpg",card:"images/projects/code-review-small.jpg"}},XU={title:"scully-plugin-mermaid — A PostRenderer Plugin for Mermaid",description:"Add a Scully.io PostRenderer plugin for Mermaid.js graphs, charts and diagrams embedded in Markdown files.",published:!0,author:{name:"Danny Koppenhagen",mail:"mail@k9n.dev"},updated:"2021-12-20T00:00:00.000Z",keywords:["Angular","Scully","SSR","SSG","JAM Stack","Mermaid"],language:"en",thumbnail:{header:"images/projects/mermaid.jpg",card:"images/projects/mermaid-small.jpg"}},JU={title:"ngx-lipsum",description:"Easily use lorem ipsum dummy texts in your angular app",published:!0,author:{name:"Danny Koppenhagen",mail:"mail@k9n.dev"},updated:"2021-09-14T00:00:00.000Z",keywords:["Angular","lorem-ipsum","ngx-lipsum","directive","service","component"],language:"en",thumbnail:{header:"images/projects/ngx-lipsum.svg",card:"images/projects/ngx-lipsum.svg"}},eV={title:"Maintainer: vue3-openlayers",description:"Since April 2023, I am actively maintaining and evolving the vue3-openlayers library — An OpenLayers Wrapper for Vue3.",published:!0,author:{name:"Danny Koppenhagen",mail:"mail@k9n.dev"},updated:"2023-04-05T00:00:00.000Z",keywords:["Vue","Vue3","OpenLayers"],language:"en",thumbnail:{header:"images/projects/vue3-openlayers.png",card:"images/projects/vue3-openlayers-small.png"}},tV={title:"Analog Publish GitHub Pages",description:"When I migrated my personal website/blog to use AnalogJS, I created a GitHub Action which simplifies the deployment at GitHub Pages.",published:!0,author:{name:"Danny Koppenhagen",mail:"mail@k9n.dev"},updated:"2023-12-29T00:00:00.000Z",keywords:["AnalogJS","GitHub Pages","Angular","SSG","SSR"],language:"en",thumbnail:{header:"images/projects/analog-publish-gh-pages.png",card:"images/projects/analog-publish-gh-pages-small.png"}},nV={title:"A11y: EAA, BFSG, WCAG, WAI, ARIA, WTF? – it’s for the people stupid!",description:"Accessibility betrifft uns täglich und immer, wenn wir Software verwenden. Es ist an uns, diese umzusetzen. In unserem Talk von der W-JAX am 07.11.2023 zeigen wir euch, wie ihr eure Webanwendungen von Beginn an mit einfachen Mitteln zu einem hohen Grad barrierefrei gestaltet und entwickelt.",published:!0,author:{name:"Danny Koppenhagen",mail:"mail@k9n.dev"},created:"2023-11-20T00:00:00.000Z",updated:"2023-11-20T00:00:00.000Z",publishedAt:{name:"DB Systel Tech Stories",url:"https://techstories.dbsystel.de/blog/2023/2023-11-20-einfuehrung-barrierefreiheit-web.html",logo:"https://dbsystel.github.io/tech-stories/images/home.png",linkExternal:!0},keywords:["JavaScript","Semantic HTML","a11y","Barrierefreiheit","accessibility"],language:"de",thumbnail:{header:"https://dbsystel.github.io/tech-stories/images/home.png"}},rV={title:"Accessibility in Angular – Angulars features for a better and more inclusive web",description:"The Angular Framework brings us some built-in features to help in creating accessible components and applications by wrapping common best practices and techniques. In this talk at the Angular Berlin Meetup, I presented these concepts and features.",published:!0,author:{name:"Danny Koppenhagen",mail:"mail@k9n.dev"},created:"2024-01-16T00:00:00.000Z",updated:"2024-01-16T00:00:00.000Z",publishedAt:{name:"DB Systel Tech Stories",url:"https://techstories.dbsystel.de/blog/2024/2024-01-16-Accessibility-in-Angular.html",logo:"https://dbsystel.github.io/tech-stories/images/home.png",linkExternal:!0},keywords:["Angular","JavaScript","TypeScript","Semantic HTML","a11y","accessibility"],language:"en",thumbnail:{header:"https://techstories.dbsystel.de/images/20240116-a11y-Angular/a11y-angular.png"}};var R7=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function iV(t){return t&&t.__esModule&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t}var dg={exports:{}},Ze={},ya={},en={};function tA(t){return typeof t>"u"||t===null}function sV(t){return typeof t=="object"&&t!==null}function oV(t){return Array.isArray(t)?t:tA(t)?[]:[t]}function aV(t,e){var n,i,r,s;if(e)for(s=Object.keys(e),n=0,i=s.length;n0&&`\0\r +…\u2028\u2029`.indexOf(this.buffer.charAt(r-1))===-1;)if(r-=1,this.position-r>n/2-1){i=" ... ",r+=5;break}for(s="",o=this.position;on/2-1){s=" ... ",o-=5;break}return a=this.buffer.slice(r,o),Zv.repeat(" ",e)+i+a+s+` +`+Zv.repeat(" ",e+this.position-r+i.length)+"^"};pg.prototype.toString=function(e){var n,i="";return this.name&&(i+='in "'+this.name+'" '),i+="at line "+(this.line+1)+", column "+(this.column+1),e||(n=this.getSnippet(),n&&(i+=`: +`+n)),i};var uV=pg,Yv=_a,hV=["kind","resolve","construct","instanceOf","predicate","represent","defaultStyle","styleAliases"],fV=["scalar","sequence","mapping"];function dV(t){var e={};return t!==null&&Object.keys(t).forEach(function(n){t[n].forEach(function(i){e[String(i)]=n})}),e}function pV(t,e){if(e=e||{},Object.keys(e).forEach(function(n){if(hV.indexOf(n)===-1)throw new Yv('Unknown option "'+n+'" is met in definition of "'+t+'" YAML type.')}),this.tag=t,this.kind=e.kind||null,this.resolve=e.resolve||function(){return!0},this.construct=e.construct||function(n){return n},this.instanceOf=e.instanceOf||null,this.predicate=e.predicate||null,this.represent=e.represent||null,this.defaultStyle=e.defaultStyle||null,this.styleAliases=dV(e.styleAliases||null),fV.indexOf(this.kind)===-1)throw new Yv('Unknown kind "'+this.kind+'" is specified for "'+t+'" YAML type.')}var ct=pV,Kv=en,Dl=_a,mV=ct;function Fd(t,e,n){var i=[];return t.include.forEach(function(r){n=Fd(r,e,n)}),t[e].forEach(function(r){n.forEach(function(s,o){s.tag===r.tag&&s.kind===r.kind&&i.push(o)}),n.push(r)}),n.filter(function(r,s){return i.indexOf(s)===-1})}function gV(){var t={scalar:{},sequence:{},mapping:{},fallback:{}},e,n;function i(r){t[r.kind][r.tag]=t.fallback[r.tag]=r}for(e=0,n=arguments.length;e=0?"0b"+t.toString(2):"-0b"+t.toString(2).slice(1)},octal:function(t){return t>=0?"0"+t.toString(8):"-0"+t.toString(8).slice(1)},decimal:function(t){return t.toString(10)},hexadecimal:function(t){return t>=0?"0x"+t.toString(16).toUpperCase():"-0x"+t.toString(16).toUpperCase().slice(1)}},defaultStyle:"decimal",styleAliases:{binary:[2,"bin"],octal:[8,"oct"],decimal:[10,"dec"],hexadecimal:[16,"hex"]}}),nA=en,VV=ct,$V=new RegExp("^(?:[-+]?(?:0|[1-9][0-9_]*)(?:\\.[0-9_]*)?(?:[eE][-+]?[0-9]+)?|\\.[0-9_]+(?:[eE][-+]?[0-9]+)?|[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+\\.[0-9_]*|[-+]?\\.(?:inf|Inf|INF)|\\.(?:nan|NaN|NAN))$");function WV(t){return!(t===null||!$V.test(t)||t[t.length-1]==="_")}function GV(t){var e,n,i,r;return e=t.replace(/_/g,"").toLowerCase(),n=e[0]==="-"?-1:1,r=[],"+-".indexOf(e[0])>=0&&(e=e.slice(1)),e===".inf"?n===1?Number.POSITIVE_INFINITY:Number.NEGATIVE_INFINITY:e===".nan"?NaN:e.indexOf(":")>=0?(e.split(":").forEach(function(s){r.unshift(parseFloat(s,10))}),e=0,i=1,r.forEach(function(s){e+=s*i,i*=60}),n*e):n*parseFloat(e,10)}var qV=/^[-+]?[0-9]+e/;function ZV(t,e){var n;if(isNaN(t))switch(e){case"lowercase":return".nan";case"uppercase":return".NAN";case"camelcase":return".NaN"}else if(Number.POSITIVE_INFINITY===t)switch(e){case"lowercase":return".inf";case"uppercase":return".INF";case"camelcase":return".Inf"}else if(Number.NEGATIVE_INFINITY===t)switch(e){case"lowercase":return"-.inf";case"uppercase":return"-.INF";case"camelcase":return"-.Inf"}else if(nA.isNegativeZero(t))return"-0.0";return n=t.toString(10),qV.test(n)?n.replace("e",".e"):n}function YV(t){return Object.prototype.toString.call(t)==="[object Number]"&&(t%1!==0||nA.isNegativeZero(t))}var KV=new VV("tag:yaml.org,2002:float",{kind:"scalar",resolve:WV,construct:GV,predicate:YV,represent:ZV,defaultStyle:"lowercase"}),QV=Zs,rA=new QV({include:[mg],implicit:[DV,OV,UV,KV]}),XV=Zs,iA=new XV({include:[rA]}),JV=ct,sA=new RegExp("^([0-9][0-9][0-9][0-9])-([0-9][0-9])-([0-9][0-9])$"),oA=new RegExp("^([0-9][0-9][0-9][0-9])-([0-9][0-9]?)-([0-9][0-9]?)(?:[Tt]|[ \\t]+)([0-9][0-9]?):([0-9][0-9]):([0-9][0-9])(?:\\.([0-9]*))?(?:[ \\t]*(Z|([-+])([0-9][0-9]?)(?::([0-9][0-9]))?))?$");function e5(t){return t===null?!1:sA.exec(t)!==null||oA.exec(t)!==null}function t5(t){var e,n,i,r,s,o,a,c=0,u=null,h,f,d;if(e=sA.exec(t),e===null&&(e=oA.exec(t)),e===null)throw new Error("Date resolve error");if(n=+e[1],i=+e[2]-1,r=+e[3],!e[4])return new Date(Date.UTC(n,i,r));if(s=+e[4],o=+e[5],a=+e[6],e[7]){for(c=e[7].slice(0,3);c.length<3;)c+="0";c=+c}return e[9]&&(h=+e[10],f=+(e[11]||0),u=(h*60+f)*6e4,e[9]==="-"&&(u=-u)),d=new Date(Date.UTC(n,i,r,s,o,a,c)),u&&d.setTime(d.getTime()-u),d}function n5(t){return t.toISOString()}var r5=new JV("tag:yaml.org,2002:timestamp",{kind:"scalar",resolve:e5,construct:t5,instanceOf:Date,represent:n5}),i5=ct;function s5(t){return t==="<<"||t===null}var o5=new i5("tag:yaml.org,2002:merge",{kind:"scalar",resolve:s5});function aA(t){throw new Error('Could not dynamically require "'+t+'". Please configure the dynamicRequireTargets or/and ignoreDynamicRequires option of @rollup/plugin-commonjs appropriately for this require call to work.')}var ni;try{var a5=aA;ni=a5("buffer").Buffer}catch{}var l5=ct,gg=`ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/= +\r`;function c5(t){if(t===null)return!1;var e,n,i=0,r=t.length,s=gg;for(n=0;n64)){if(e<0)return!1;i+=6}return i%8===0}function u5(t){var e,n,i=t.replace(/[\r\n=]/g,""),r=i.length,s=gg,o=0,a=[];for(e=0;e>16&255),a.push(o>>8&255),a.push(o&255)),o=o<<6|s.indexOf(i.charAt(e));return n=r%4*6,n===0?(a.push(o>>16&255),a.push(o>>8&255),a.push(o&255)):n===18?(a.push(o>>10&255),a.push(o>>2&255)):n===12&&a.push(o>>4&255),ni?ni.from?ni.from(a):new ni(a):a}function h5(t){var e="",n=0,i,r,s=t.length,o=gg;for(i=0;i>18&63],e+=o[n>>12&63],e+=o[n>>6&63],e+=o[n&63]),n=(n<<8)+t[i];return r=s%3,r===0?(e+=o[n>>18&63],e+=o[n>>12&63],e+=o[n>>6&63],e+=o[n&63]):r===2?(e+=o[n>>10&63],e+=o[n>>4&63],e+=o[n<<2&63],e+=o[64]):r===1&&(e+=o[n>>2&63],e+=o[n<<4&63],e+=o[64],e+=o[64]),e}function f5(t){return ni&&ni.isBuffer(t)}var d5=new l5("tag:yaml.org,2002:binary",{kind:"scalar",resolve:c5,construct:u5,predicate:f5,represent:h5}),p5=ct,m5=Object.prototype.hasOwnProperty,g5=Object.prototype.toString;function y5(t){if(t===null)return!0;var e=[],n,i,r,s,o,a=t;for(n=0,i=a.length;n"u"}var L5=new R5("tag:yaml.org,2002:js/undefined",{kind:"scalar",resolve:F5,construct:O5,predicate:N5,represent:P5}),M5=ct;function B5(t){if(t===null||t.length===0)return!1;var e=t,n=/\/([gim]*)$/.exec(t),i="";return!(e[0]==="/"&&(n&&(i=n[1]),i.length>3||e[e.length-i.length-1]!=="/"))}function j5(t){var e=t,n=/\/([gim]*)$/.exec(t),i="";return e[0]==="/"&&(n&&(i=n[1]),e=e.slice(1,e.length-i.length-1)),new RegExp(e,i)}function z5(t){var e="/"+t.source+"/";return t.global&&(e+="g"),t.multiline&&(e+="m"),t.ignoreCase&&(e+="i"),e}function H5(t){return Object.prototype.toString.call(t)==="[object RegExp]"}var U5=new M5("tag:yaml.org,2002:js/regexp",{kind:"scalar",resolve:B5,construct:j5,predicate:H5,represent:z5}),_c;try{var V5=aA;_c=V5("esprima")}catch{typeof window<"u"&&(_c=window.esprima)}var $5=ct;function W5(t){if(t===null)return!1;try{var e="("+t+")",n=_c.parse(e,{range:!0});return!(n.type!=="Program"||n.body.length!==1||n.body[0].type!=="ExpressionStatement"||n.body[0].expression.type!=="ArrowFunctionExpression"&&n.body[0].expression.type!=="FunctionExpression")}catch{return!1}}function G5(t){var e="("+t+")",n=_c.parse(e,{range:!0}),i=[],r;if(n.type!=="Program"||n.body.length!==1||n.body[0].type!=="ExpressionStatement"||n.body[0].expression.type!=="ArrowFunctionExpression"&&n.body[0].expression.type!=="FunctionExpression")throw new Error("Failed to resolve function");return n.body[0].expression.params.forEach(function(s){i.push(s.name)}),r=n.body[0].expression.body.range,n.body[0].expression.body.type==="BlockStatement"?new Function(i,e.slice(r[0]+1,r[1]-1)):new Function(i,"return "+e.slice(r[0],r[1]))}function q5(t){return t.toString()}function Z5(t){return Object.prototype.toString.call(t)==="[object Function]"}var Y5=new $5("tag:yaml.org,2002:js/function",{kind:"scalar",resolve:W5,construct:G5,predicate:Z5,represent:q5}),Qv=Zs,Lu=Qv.DEFAULT=new Qv({include:[va],explicit:[L5,U5,Y5]}),Wn=en,lA=_a,K5=uV,cA=va,Q5=Lu,Pr=Object.prototype.hasOwnProperty,vc=1,uA=2,hA=3,bc=4,Mh=1,X5=2,Xv=3,J5=/[\x00-\x08\x0B\x0C\x0E-\x1F\x7F-\x84\x86-\x9F\uFFFE\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/,e9=/[\x85\u2028\u2029]/,t9=/[,\[\]\{\}]/,fA=/^(?:!|!!|![a-z\-]+!)$/i,dA=/^(?:!|[^,\[\]\{\}])(?:%[0-9a-f]{2}|[0-9a-z\-#;\/\?:@&=\+\$,_\.!~\*'\(\)\[\]])*$/i;function Jv(t){return Object.prototype.toString.call(t)}function Pn(t){return t===10||t===13}function ai(t){return t===9||t===32}function Tt(t){return t===9||t===32||t===10||t===13}function ns(t){return t===44||t===91||t===93||t===123||t===125}function n9(t){var e;return 48<=t&&t<=57?t-48:(e=t|32,97<=e&&e<=102?e-97+10:-1)}function r9(t){return t===120?2:t===117?4:t===85?8:0}function i9(t){return 48<=t&&t<=57?t-48:-1}function e0(t){return t===48?"\0":t===97?"\x07":t===98?"\b":t===116||t===9?" ":t===110?` +`:t===118?"\v":t===102?"\f":t===114?"\r":t===101?"\x1B":t===32?" ":t===34?'"':t===47?"/":t===92?"\\":t===78?"…":t===95?" ":t===76?"\u2028":t===80?"\u2029":""}function s9(t){return t<=65535?String.fromCharCode(t):String.fromCharCode((t-65536>>10)+55296,(t-65536&1023)+56320)}var pA=new Array(256),mA=new Array(256);for(var Ui=0;Ui<256;Ui++)pA[Ui]=e0(Ui)?1:0,mA[Ui]=e0(Ui);function o9(t,e){this.input=t,this.filename=e.filename||null,this.schema=e.schema||Q5,this.onWarning=e.onWarning||null,this.legacy=e.legacy||!1,this.json=e.json||!1,this.listener=e.listener||null,this.implicitTypes=this.schema.compiledImplicit,this.typeMap=this.schema.compiledTypeMap,this.length=t.length,this.position=0,this.line=0,this.lineStart=0,this.lineIndent=0,this.documents=[]}function gA(t,e){return new lA(e,new K5(t.filename,t.input,t.position,t.line,t.position-t.lineStart))}function X(t,e){throw gA(t,e)}function Ec(t,e){t.onWarning&&t.onWarning.call(null,gA(t,e))}var t0={YAML:function(e,n,i){var r,s,o;e.version!==null&&X(e,"duplication of %YAML directive"),i.length!==1&&X(e,"YAML directive accepts exactly one argument"),r=/^([0-9]+)\.([0-9]+)$/.exec(i[0]),r===null&&X(e,"ill-formed argument of the YAML directive"),s=parseInt(r[1],10),o=parseInt(r[2],10),s!==1&&X(e,"unacceptable YAML version of the document"),e.version=i[0],e.checkLineBreaks=o<2,o!==1&&o!==2&&Ec(e,"unsupported YAML version of the document")},TAG:function(e,n,i){var r,s;i.length!==2&&X(e,"TAG directive accepts exactly two arguments"),r=i[0],s=i[1],fA.test(r)||X(e,"ill-formed tag handle (first argument) of the TAG directive"),Pr.call(e.tagMap,r)&&X(e,'there is a previously declared suffix for "'+r+'" tag handle'),dA.test(s)||X(e,"ill-formed tag prefix (second argument) of the TAG directive"),e.tagMap[r]=s}};function Ar(t,e,n,i){var r,s,o,a;if(e1&&(t.result+=Wn.repeat(` +`,e-1))}function a9(t,e,n){var i,r,s,o,a,c,u,h,f=t.kind,d=t.result,p;if(p=t.input.charCodeAt(t.position),Tt(p)||ns(p)||p===35||p===38||p===42||p===33||p===124||p===62||p===39||p===34||p===37||p===64||p===96||(p===63||p===45)&&(r=t.input.charCodeAt(t.position+1),Tt(r)||n&&ns(r)))return!1;for(t.kind="scalar",t.result="",s=o=t.position,a=!1;p!==0;){if(p===58){if(r=t.input.charCodeAt(t.position+1),Tt(r)||n&&ns(r))break}else if(p===35){if(i=t.input.charCodeAt(t.position-1),Tt(i))break}else{if(t.position===t.lineStart&&Mu(t)||n&&ns(p))break;if(Pn(p))if(c=t.line,u=t.lineStart,h=t.lineIndent,Xe(t,!1,-1),t.lineIndent>=e){a=!0,p=t.input.charCodeAt(t.position);continue}else{t.position=o,t.line=c,t.lineStart=u,t.lineIndent=h;break}}a&&(Ar(t,s,o,!1),_g(t,t.line-c),s=o=t.position,a=!1),ai(p)||(o=t.position+1),p=t.input.charCodeAt(++t.position)}return Ar(t,s,o,!1),t.result?!0:(t.kind=f,t.result=d,!1)}function l9(t,e){var n,i,r;if(n=t.input.charCodeAt(t.position),n!==39)return!1;for(t.kind="scalar",t.result="",t.position++,i=r=t.position;(n=t.input.charCodeAt(t.position))!==0;)if(n===39)if(Ar(t,i,t.position,!0),n=t.input.charCodeAt(++t.position),n===39)i=t.position,t.position++,r=t.position;else return!0;else Pn(n)?(Ar(t,i,r,!0),_g(t,Xe(t,!1,e)),i=r=t.position):t.position===t.lineStart&&Mu(t)?X(t,"unexpected end of the document within a single quoted scalar"):(t.position++,r=t.position);X(t,"unexpected end of the stream within a single quoted scalar")}function c9(t,e){var n,i,r,s,o,a;if(a=t.input.charCodeAt(t.position),a!==34)return!1;for(t.kind="scalar",t.result="",t.position++,n=i=t.position;(a=t.input.charCodeAt(t.position))!==0;){if(a===34)return Ar(t,n,t.position,!0),t.position++,!0;if(a===92){if(Ar(t,n,t.position,!0),a=t.input.charCodeAt(++t.position),Pn(a))Xe(t,!1,e);else if(a<256&&pA[a])t.result+=mA[a],t.position++;else if((o=r9(a))>0){for(r=o,s=0;r>0;r--)a=t.input.charCodeAt(++t.position),(o=n9(a))>=0?s=(s<<4)+o:X(t,"expected hexadecimal character");t.result+=s9(s),t.position++}else X(t,"unknown escape sequence");n=i=t.position}else Pn(a)?(Ar(t,n,i,!0),_g(t,Xe(t,!1,e)),n=i=t.position):t.position===t.lineStart&&Mu(t)?X(t,"unexpected end of the document within a double quoted scalar"):(t.position++,i=t.position)}X(t,"unexpected end of the stream within a double quoted scalar")}function u9(t,e){var n=!0,i,r=t.tag,s,o=t.anchor,a,c,u,h,f,d={},p,m,y,_;if(_=t.input.charCodeAt(t.position),_===91)c=93,f=!1,s=[];else if(_===123)c=125,f=!0,s={};else return!1;for(t.anchor!==null&&(t.anchorMap[t.anchor]=s),_=t.input.charCodeAt(++t.position);_!==0;){if(Xe(t,!0,e),_=t.input.charCodeAt(t.position),_===c)return t.position++,t.tag=r,t.anchor=o,t.kind=f?"mapping":"sequence",t.result=s,!0;n||X(t,"missed comma between flow collection entries"),m=p=y=null,u=h=!1,_===63&&(a=t.input.charCodeAt(t.position+1),Tt(a)&&(u=h=!0,t.position++,Xe(t,!0,e))),i=t.line,xs(t,e,vc,!1,!0),m=t.tag,p=t.result,Xe(t,!0,e),_=t.input.charCodeAt(t.position),(h||t.line===i)&&_===58&&(u=!0,_=t.input.charCodeAt(++t.position),Xe(t,!0,e),xs(t,e,vc,!1,!0),y=t.result),f?rs(t,s,d,m,p,y):u?s.push(rs(t,null,d,m,p,y)):s.push(p),Xe(t,!0,e),_=t.input.charCodeAt(t.position),_===44?(n=!0,_=t.input.charCodeAt(++t.position)):n=!1}X(t,"unexpected end of the stream within a flow collection")}function h9(t,e){var n,i,r=Mh,s=!1,o=!1,a=e,c=0,u=!1,h,f;if(f=t.input.charCodeAt(t.position),f===124)i=!1;else if(f===62)i=!0;else return!1;for(t.kind="scalar",t.result="";f!==0;)if(f=t.input.charCodeAt(++t.position),f===43||f===45)Mh===r?r=f===43?Xv:X5:X(t,"repeat of a chomping mode identifier");else if((h=i9(f))>=0)h===0?X(t,"bad explicit indentation width of a block scalar; it cannot be less than one"):o?X(t,"repeat of an indentation width identifier"):(a=e+h-1,o=!0);else break;if(ai(f)){do f=t.input.charCodeAt(++t.position);while(ai(f));if(f===35)do f=t.input.charCodeAt(++t.position);while(!Pn(f)&&f!==0)}for(;f!==0;){for(yg(t),t.lineIndent=0,f=t.input.charCodeAt(t.position);(!o||t.lineIndenta&&(a=t.lineIndent),Pn(f)){c++;continue}if(t.lineIndente)&&c!==0)X(t,"bad indentation of a sequence entry");else if(t.lineIndente)&&(xs(t,e,bc,!0,r)&&(m?d=t.result:p=t.result),m||(rs(t,u,h,f,d,p,s,o),f=d=p=null),Xe(t,!0,-1),_=t.input.charCodeAt(t.position)),t.lineIndent>e&&_!==0)X(t,"bad indentation of a mapping entry");else if(t.lineIndente?c=1:t.lineIndent===e?c=0:t.lineIndente?c=1:t.lineIndent===e?c=0:t.lineIndent tag; it should be "scalar", not "'+t.kind+'"'),f=0,d=t.implicitTypes.length;f tag; it should be "'+p.kind+'", not "'+t.kind+'"'),p.resolve(t.result)?(t.result=p.construct(t.result),t.anchor!==null&&(t.anchorMap[t.anchor]=t.result)):X(t,"cannot resolve a node with !<"+t.tag+"> explicit tag")):X(t,"unknown tag !<"+t.tag+">");return t.listener!==null&&t.listener("close",t),t.tag!==null||t.anchor!==null||h}function g9(t){var e=t.position,n,i,r,s=!1,o;for(t.version=null,t.checkLineBreaks=t.legacy,t.tagMap={},t.anchorMap={};(o=t.input.charCodeAt(t.position))!==0&&(Xe(t,!0,-1),o=t.input.charCodeAt(t.position),!(t.lineIndent>0||o!==37));){for(s=!0,o=t.input.charCodeAt(++t.position),n=t.position;o!==0&&!Tt(o);)o=t.input.charCodeAt(++t.position);for(i=t.input.slice(n,t.position),r=[],i.length<1&&X(t,"directive name must not be less than one character in length");o!==0;){for(;ai(o);)o=t.input.charCodeAt(++t.position);if(o===35){do o=t.input.charCodeAt(++t.position);while(o!==0&&!Pn(o));break}if(Pn(o))break;for(n=t.position;o!==0&&!Tt(o);)o=t.input.charCodeAt(++t.position);r.push(t.input.slice(n,t.position))}o!==0&&yg(t),Pr.call(t0,i)?t0[i](t,i,r):Ec(t,'unknown document directive "'+i+'"')}if(Xe(t,!0,-1),t.lineIndent===0&&t.input.charCodeAt(t.position)===45&&t.input.charCodeAt(t.position+1)===45&&t.input.charCodeAt(t.position+2)===45?(t.position+=3,Xe(t,!0,-1)):s&&X(t,"directives end mark is expected"),xs(t,t.lineIndent-1,bc,!1,!0),Xe(t,!0,-1),t.checkLineBreaks&&e9.test(t.input.slice(e,t.position))&&Ec(t,"non-ASCII line breaks are interpreted as content"),t.documents.push(t.result),t.position===t.lineStart&&Mu(t)){t.input.charCodeAt(t.position)===46&&(t.position+=3,Xe(t,!0,-1));return}if(t.position"u"&&(n=e,e=null);var i=yA(t,n);if(typeof e!="function")return i;for(var r=0,s=i.length;r"u"&&(n=e,e=null),_A(t,e,Wn.extend({schema:cA},n))}function _9(t,e){return vA(t,Wn.extend({schema:cA},e))}ya.loadAll=_A;ya.load=vA;ya.safeLoadAll=y9;ya.safeLoad=_9;var vg={},ba=en,Ea=_a,v9=Lu,b9=va,bA=Object.prototype.toString,EA=Object.prototype.hasOwnProperty,E9=9,Vo=10,w9=13,C9=32,S9=33,T9=34,wA=35,A9=37,k9=38,D9=39,I9=42,CA=44,x9=45,SA=58,R9=61,F9=62,O9=63,P9=64,TA=91,AA=93,N9=96,kA=123,L9=124,DA=125,_t={};_t[0]="\\0";_t[7]="\\a";_t[8]="\\b";_t[9]="\\t";_t[10]="\\n";_t[11]="\\v";_t[12]="\\f";_t[13]="\\r";_t[27]="\\e";_t[34]='\\"';_t[92]="\\\\";_t[133]="\\N";_t[160]="\\_";_t[8232]="\\L";_t[8233]="\\P";var M9=["y","Y","yes","Yes","YES","on","On","ON","n","N","no","No","NO","off","Off","OFF"];function B9(t,e){var n,i,r,s,o,a,c;if(e===null)return{};for(n={},i=Object.keys(e),r=0,s=i.length;r0?t.charCodeAt(s-1):null,d=d&&o0(o,a)}else{for(s=0;si&&t[f+1]!==" ",f=s);else if(!Rs(o))return Il;a=s>0?t.charCodeAt(s-1):null,d=d&&o0(o,a)}u=u||h&&s-f-1>i&&t[f+1]!==" "}return!c&&!u?d&&!r(t)?xA:RA:n>9&&IA(t)?Il:u?OA:FA}function $9(t,e,n,i){t.dump=function(){if(e.length===0)return"''";if(!t.noCompatMode&&M9.indexOf(e)!==-1)return"'"+e+"'";var r=t.indent*Math.max(1,n),s=t.lineWidth===-1?-1:Math.max(Math.min(t.lineWidth,40),t.lineWidth-r),o=i||t.flowLevel>-1&&n>=t.flowLevel;function a(c){return z9(t,c)}switch(V9(e,o,t.indent,s,a)){case xA:return e;case RA:return"'"+e.replace(/'/g,"''")+"'";case FA:return"|"+a0(e,t.indent)+l0(s0(e,r));case OA:return">"+a0(e,t.indent)+l0(s0(W9(e,s),r));case Il:return'"'+G9(e)+'"';default:throw new Ea("impossible error: invalid scalar style")}}()}function a0(t,e){var n=IA(t)?String(e):"",i=t[t.length-1]===` +`,r=i&&(t[t.length-2]===` +`||t===` +`),s=r?"+":i?"":"-";return n+s+` +`}function l0(t){return t[t.length-1]===` +`?t.slice(0,-1):t}function W9(t,e){for(var n=/(\n+)([^\n]*)/g,i=function(){var u=t.indexOf(` +`);return u=u!==-1?u:t.length,n.lastIndex=u,c0(t.slice(0,u),e)}(),r=t[0]===` +`||t[0]===" ",s,o;o=n.exec(t);){var a=o[1],c=o[2];s=c[0]===" ",i+=a+(!r&&!s&&c!==""?` +`:"")+c0(c,e),r=s}return i}function c0(t,e){if(t===""||t[0]===" ")return t;for(var n=/ [^ ]/g,i,r=0,s,o=0,a=0,c="";i=n.exec(t);)a=i.index,a-r>e&&(s=o>r?o:a,c+=` +`+t.slice(r,s),r=s+1),o=a;return c+=` +`,t.length-r>e&&o>r?c+=t.slice(r,o)+` +`+t.slice(o+1):c+=t.slice(r),c.slice(1)}function G9(t){for(var e="",n,i,r,s=0;s=55296&&n<=56319&&(i=t.charCodeAt(s+1),i>=56320&&i<=57343)){e+=i0((n-55296)*1024+i-56320+65536),s++;continue}r=_t[n],e+=!r&&Rs(n)?t[s]:r||i0(n)}return e}function q9(t,e,n){var i="",r=t.tag,s,o;for(s=0,o=n.length;s1024&&(h+="? "),h+=t.dump+(t.condenseFlow?'"':"")+":"+(t.condenseFlow?"":" "),Ci(t,e,u,!1,!1)&&(h+=t.dump,i+=h));t.tag=r,t.dump="{"+i+"}"}function K9(t,e,n,i){var r="",s=t.tag,o=Object.keys(n),a,c,u,h,f,d;if(t.sortKeys===!0)o.sort();else if(typeof t.sortKeys=="function")o.sort(t.sortKeys);else if(t.sortKeys)throw new Ea("sortKeys must be a boolean or a function");for(a=0,c=o.length;a1024,f&&(t.dump&&Vo===t.dump.charCodeAt(0)?d+="?":d+="? "),d+=t.dump,f&&(d+=Od(t,e)),Ci(t,e+1,h,!0,f)&&(t.dump&&Vo===t.dump.charCodeAt(0)?d+=":":d+=": ",d+=t.dump,r+=d));t.tag=s,t.dump=r||"{}"}function u0(t,e,n){var i,r,s,o,a,c;for(r=n?t.explicitTypes:t.implicitTypes,s=0,o=r.length;s tag resolver accepts not "'+c+'" style');t.dump=i}return!0}return!1}function Ci(t,e,n,i,r,s){t.tag=null,t.dump=n,u0(t,n,!1)||u0(t,n,!0);var o=bA.call(t.dump);i&&(i=t.flowLevel<0||t.flowLevel>e);var a=o==="[object Object]"||o==="[object Array]",c,u;if(a&&(c=t.duplicates.indexOf(n),u=c!==-1),(t.tag!==null&&t.tag!=="?"||u||t.indent!==2&&e>0)&&(r=!1),u&&t.usedDuplicates[c])t.dump="*ref_"+c;else{if(a&&u&&!t.usedDuplicates[c]&&(t.usedDuplicates[c]=!0),o==="[object Object]")i&&Object.keys(t.dump).length!==0?(K9(t,e,t.dump,r),u&&(t.dump="&ref_"+c+t.dump)):(Y9(t,e,t.dump),u&&(t.dump="&ref_"+c+" "+t.dump));else if(o==="[object Array]"){var h=t.noArrayIndent&&e>0?e-1:e;i&&t.dump.length!==0?(Z9(t,h,t.dump,r),u&&(t.dump="&ref_"+c+t.dump)):(q9(t,h,t.dump),u&&(t.dump="&ref_"+c+" "+t.dump))}else if(o==="[object String]")t.tag!=="?"&&$9(t,t.dump,e,s);else{if(t.skipInvalid)return!1;throw new Ea("unacceptable kind of an object to dump "+o)}t.tag!==null&&t.tag!=="?"&&(t.dump="!<"+t.tag+"> "+t.dump)}return!0}function Q9(t,e){var n=[],i=[],r,s;for(Pd(t,n,i),r=0,s=i.length;r=r)return n;n++,i=e.indexOf(` +`,i+1)}return n}function o6(t,e){var n=LA.exec(t);if(!n)return{attributes:{},body:t,bodyBegin:1};var i=e?h0.load:h0.safeLoad,r=n[n.length-1].replace(/^\s+|\s+$/g,""),s=i(r)||{},o=t.replace(n[0],""),a=s6(n,t);return{attributes:s,body:o,bodyBegin:a,frontmatter:r}}function a6(t){return t=t||"",LA.test(t)}var l6=dg.exports;const c6=iV(l6),u6=/[\0-\x1F!-,\.\/:-@\[-\^`\{-\xA9\xAB-\xB4\xB6-\xB9\xBB-\xBF\xD7\xF7\u02C2-\u02C5\u02D2-\u02DF\u02E5-\u02EB\u02ED\u02EF-\u02FF\u0375\u0378\u0379\u037E\u0380-\u0385\u0387\u038B\u038D\u03A2\u03F6\u0482\u0530\u0557\u0558\u055A-\u055F\u0589-\u0590\u05BE\u05C0\u05C3\u05C6\u05C8-\u05CF\u05EB-\u05EE\u05F3-\u060F\u061B-\u061F\u066A-\u066D\u06D4\u06DD\u06DE\u06E9\u06FD\u06FE\u0700-\u070F\u074B\u074C\u07B2-\u07BF\u07F6-\u07F9\u07FB\u07FC\u07FE\u07FF\u082E-\u083F\u085C-\u085F\u086B-\u089F\u08B5\u08C8-\u08D2\u08E2\u0964\u0965\u0970\u0984\u098D\u098E\u0991\u0992\u09A9\u09B1\u09B3-\u09B5\u09BA\u09BB\u09C5\u09C6\u09C9\u09CA\u09CF-\u09D6\u09D8-\u09DB\u09DE\u09E4\u09E5\u09F2-\u09FB\u09FD\u09FF\u0A00\u0A04\u0A0B-\u0A0E\u0A11\u0A12\u0A29\u0A31\u0A34\u0A37\u0A3A\u0A3B\u0A3D\u0A43-\u0A46\u0A49\u0A4A\u0A4E-\u0A50\u0A52-\u0A58\u0A5D\u0A5F-\u0A65\u0A76-\u0A80\u0A84\u0A8E\u0A92\u0AA9\u0AB1\u0AB4\u0ABA\u0ABB\u0AC6\u0ACA\u0ACE\u0ACF\u0AD1-\u0ADF\u0AE4\u0AE5\u0AF0-\u0AF8\u0B00\u0B04\u0B0D\u0B0E\u0B11\u0B12\u0B29\u0B31\u0B34\u0B3A\u0B3B\u0B45\u0B46\u0B49\u0B4A\u0B4E-\u0B54\u0B58-\u0B5B\u0B5E\u0B64\u0B65\u0B70\u0B72-\u0B81\u0B84\u0B8B-\u0B8D\u0B91\u0B96-\u0B98\u0B9B\u0B9D\u0BA0-\u0BA2\u0BA5-\u0BA7\u0BAB-\u0BAD\u0BBA-\u0BBD\u0BC3-\u0BC5\u0BC9\u0BCE\u0BCF\u0BD1-\u0BD6\u0BD8-\u0BE5\u0BF0-\u0BFF\u0C0D\u0C11\u0C29\u0C3A-\u0C3C\u0C45\u0C49\u0C4E-\u0C54\u0C57\u0C5B-\u0C5F\u0C64\u0C65\u0C70-\u0C7F\u0C84\u0C8D\u0C91\u0CA9\u0CB4\u0CBA\u0CBB\u0CC5\u0CC9\u0CCE-\u0CD4\u0CD7-\u0CDD\u0CDF\u0CE4\u0CE5\u0CF0\u0CF3-\u0CFF\u0D0D\u0D11\u0D45\u0D49\u0D4F-\u0D53\u0D58-\u0D5E\u0D64\u0D65\u0D70-\u0D79\u0D80\u0D84\u0D97-\u0D99\u0DB2\u0DBC\u0DBE\u0DBF\u0DC7-\u0DC9\u0DCB-\u0DCE\u0DD5\u0DD7\u0DE0-\u0DE5\u0DF0\u0DF1\u0DF4-\u0E00\u0E3B-\u0E3F\u0E4F\u0E5A-\u0E80\u0E83\u0E85\u0E8B\u0EA4\u0EA6\u0EBE\u0EBF\u0EC5\u0EC7\u0ECE\u0ECF\u0EDA\u0EDB\u0EE0-\u0EFF\u0F01-\u0F17\u0F1A-\u0F1F\u0F2A-\u0F34\u0F36\u0F38\u0F3A-\u0F3D\u0F48\u0F6D-\u0F70\u0F85\u0F98\u0FBD-\u0FC5\u0FC7-\u0FFF\u104A-\u104F\u109E\u109F\u10C6\u10C8-\u10CC\u10CE\u10CF\u10FB\u1249\u124E\u124F\u1257\u1259\u125E\u125F\u1289\u128E\u128F\u12B1\u12B6\u12B7\u12BF\u12C1\u12C6\u12C7\u12D7\u1311\u1316\u1317\u135B\u135C\u1360-\u137F\u1390-\u139F\u13F6\u13F7\u13FE-\u1400\u166D\u166E\u1680\u169B-\u169F\u16EB-\u16ED\u16F9-\u16FF\u170D\u1715-\u171F\u1735-\u173F\u1754-\u175F\u176D\u1771\u1774-\u177F\u17D4-\u17D6\u17D8-\u17DB\u17DE\u17DF\u17EA-\u180A\u180E\u180F\u181A-\u181F\u1879-\u187F\u18AB-\u18AF\u18F6-\u18FF\u191F\u192C-\u192F\u193C-\u1945\u196E\u196F\u1975-\u197F\u19AC-\u19AF\u19CA-\u19CF\u19DA-\u19FF\u1A1C-\u1A1F\u1A5F\u1A7D\u1A7E\u1A8A-\u1A8F\u1A9A-\u1AA6\u1AA8-\u1AAF\u1AC1-\u1AFF\u1B4C-\u1B4F\u1B5A-\u1B6A\u1B74-\u1B7F\u1BF4-\u1BFF\u1C38-\u1C3F\u1C4A-\u1C4C\u1C7E\u1C7F\u1C89-\u1C8F\u1CBB\u1CBC\u1CC0-\u1CCF\u1CD3\u1CFB-\u1CFF\u1DFA\u1F16\u1F17\u1F1E\u1F1F\u1F46\u1F47\u1F4E\u1F4F\u1F58\u1F5A\u1F5C\u1F5E\u1F7E\u1F7F\u1FB5\u1FBD\u1FBF-\u1FC1\u1FC5\u1FCD-\u1FCF\u1FD4\u1FD5\u1FDC-\u1FDF\u1FED-\u1FF1\u1FF5\u1FFD-\u203E\u2041-\u2053\u2055-\u2070\u2072-\u207E\u2080-\u208F\u209D-\u20CF\u20F1-\u2101\u2103-\u2106\u2108\u2109\u2114\u2116-\u2118\u211E-\u2123\u2125\u2127\u2129\u212E\u213A\u213B\u2140-\u2144\u214A-\u214D\u214F-\u215F\u2189-\u24B5\u24EA-\u2BFF\u2C2F\u2C5F\u2CE5-\u2CEA\u2CF4-\u2CFF\u2D26\u2D28-\u2D2C\u2D2E\u2D2F\u2D68-\u2D6E\u2D70-\u2D7E\u2D97-\u2D9F\u2DA7\u2DAF\u2DB7\u2DBF\u2DC7\u2DCF\u2DD7\u2DDF\u2E00-\u2E2E\u2E30-\u3004\u3008-\u3020\u3030\u3036\u3037\u303D-\u3040\u3097\u3098\u309B\u309C\u30A0\u30FB\u3100-\u3104\u3130\u318F-\u319F\u31C0-\u31EF\u3200-\u33FF\u4DC0-\u4DFF\u9FFD-\u9FFF\uA48D-\uA4CF\uA4FE\uA4FF\uA60D-\uA60F\uA62C-\uA63F\uA673\uA67E\uA6F2-\uA716\uA720\uA721\uA789\uA78A\uA7C0\uA7C1\uA7CB-\uA7F4\uA828-\uA82B\uA82D-\uA83F\uA874-\uA87F\uA8C6-\uA8CF\uA8DA-\uA8DF\uA8F8-\uA8FA\uA8FC\uA92E\uA92F\uA954-\uA95F\uA97D-\uA97F\uA9C1-\uA9CE\uA9DA-\uA9DF\uA9FF\uAA37-\uAA3F\uAA4E\uAA4F\uAA5A-\uAA5F\uAA77-\uAA79\uAAC3-\uAADA\uAADE\uAADF\uAAF0\uAAF1\uAAF7-\uAB00\uAB07\uAB08\uAB0F\uAB10\uAB17-\uAB1F\uAB27\uAB2F\uAB5B\uAB6A-\uAB6F\uABEB\uABEE\uABEF\uABFA-\uABFF\uD7A4-\uD7AF\uD7C7-\uD7CA\uD7FC-\uD7FF\uE000-\uF8FF\uFA6E\uFA6F\uFADA-\uFAFF\uFB07-\uFB12\uFB18-\uFB1C\uFB29\uFB37\uFB3D\uFB3F\uFB42\uFB45\uFBB2-\uFBD2\uFD3E-\uFD4F\uFD90\uFD91\uFDC8-\uFDEF\uFDFC-\uFDFF\uFE10-\uFE1F\uFE30-\uFE32\uFE35-\uFE4C\uFE50-\uFE6F\uFE75\uFEFD-\uFF0F\uFF1A-\uFF20\uFF3B-\uFF3E\uFF40\uFF5B-\uFF65\uFFBF-\uFFC1\uFFC8\uFFC9\uFFD0\uFFD1\uFFD8\uFFD9\uFFDD-\uFFFF]|\uD800[\uDC0C\uDC27\uDC3B\uDC3E\uDC4E\uDC4F\uDC5E-\uDC7F\uDCFB-\uDD3F\uDD75-\uDDFC\uDDFE-\uDE7F\uDE9D-\uDE9F\uDED1-\uDEDF\uDEE1-\uDEFF\uDF20-\uDF2C\uDF4B-\uDF4F\uDF7B-\uDF7F\uDF9E\uDF9F\uDFC4-\uDFC7\uDFD0\uDFD6-\uDFFF]|\uD801[\uDC9E\uDC9F\uDCAA-\uDCAF\uDCD4-\uDCD7\uDCFC-\uDCFF\uDD28-\uDD2F\uDD64-\uDDFF\uDF37-\uDF3F\uDF56-\uDF5F\uDF68-\uDFFF]|\uD802[\uDC06\uDC07\uDC09\uDC36\uDC39-\uDC3B\uDC3D\uDC3E\uDC56-\uDC5F\uDC77-\uDC7F\uDC9F-\uDCDF\uDCF3\uDCF6-\uDCFF\uDD16-\uDD1F\uDD3A-\uDD7F\uDDB8-\uDDBD\uDDC0-\uDDFF\uDE04\uDE07-\uDE0B\uDE14\uDE18\uDE36\uDE37\uDE3B-\uDE3E\uDE40-\uDE5F\uDE7D-\uDE7F\uDE9D-\uDEBF\uDEC8\uDEE7-\uDEFF\uDF36-\uDF3F\uDF56-\uDF5F\uDF73-\uDF7F\uDF92-\uDFFF]|\uD803[\uDC49-\uDC7F\uDCB3-\uDCBF\uDCF3-\uDCFF\uDD28-\uDD2F\uDD3A-\uDE7F\uDEAA\uDEAD-\uDEAF\uDEB2-\uDEFF\uDF1D-\uDF26\uDF28-\uDF2F\uDF51-\uDFAF\uDFC5-\uDFDF\uDFF7-\uDFFF]|\uD804[\uDC47-\uDC65\uDC70-\uDC7E\uDCBB-\uDCCF\uDCE9-\uDCEF\uDCFA-\uDCFF\uDD35\uDD40-\uDD43\uDD48-\uDD4F\uDD74\uDD75\uDD77-\uDD7F\uDDC5-\uDDC8\uDDCD\uDDDB\uDDDD-\uDDFF\uDE12\uDE38-\uDE3D\uDE3F-\uDE7F\uDE87\uDE89\uDE8E\uDE9E\uDEA9-\uDEAF\uDEEB-\uDEEF\uDEFA-\uDEFF\uDF04\uDF0D\uDF0E\uDF11\uDF12\uDF29\uDF31\uDF34\uDF3A\uDF45\uDF46\uDF49\uDF4A\uDF4E\uDF4F\uDF51-\uDF56\uDF58-\uDF5C\uDF64\uDF65\uDF6D-\uDF6F\uDF75-\uDFFF]|\uD805[\uDC4B-\uDC4F\uDC5A-\uDC5D\uDC62-\uDC7F\uDCC6\uDCC8-\uDCCF\uDCDA-\uDD7F\uDDB6\uDDB7\uDDC1-\uDDD7\uDDDE-\uDDFF\uDE41-\uDE43\uDE45-\uDE4F\uDE5A-\uDE7F\uDEB9-\uDEBF\uDECA-\uDEFF\uDF1B\uDF1C\uDF2C-\uDF2F\uDF3A-\uDFFF]|\uD806[\uDC3B-\uDC9F\uDCEA-\uDCFE\uDD07\uDD08\uDD0A\uDD0B\uDD14\uDD17\uDD36\uDD39\uDD3A\uDD44-\uDD4F\uDD5A-\uDD9F\uDDA8\uDDA9\uDDD8\uDDD9\uDDE2\uDDE5-\uDDFF\uDE3F-\uDE46\uDE48-\uDE4F\uDE9A-\uDE9C\uDE9E-\uDEBF\uDEF9-\uDFFF]|\uD807[\uDC09\uDC37\uDC41-\uDC4F\uDC5A-\uDC71\uDC90\uDC91\uDCA8\uDCB7-\uDCFF\uDD07\uDD0A\uDD37-\uDD39\uDD3B\uDD3E\uDD48-\uDD4F\uDD5A-\uDD5F\uDD66\uDD69\uDD8F\uDD92\uDD99-\uDD9F\uDDAA-\uDEDF\uDEF7-\uDFAF\uDFB1-\uDFFF]|\uD808[\uDF9A-\uDFFF]|\uD809[\uDC6F-\uDC7F\uDD44-\uDFFF]|[\uD80A\uD80B\uD80E-\uD810\uD812-\uD819\uD824-\uD82B\uD82D\uD82E\uD830-\uD833\uD837\uD839\uD83D\uD83F\uD87B-\uD87D\uD87F\uD885-\uDB3F\uDB41-\uDBFF][\uDC00-\uDFFF]|\uD80D[\uDC2F-\uDFFF]|\uD811[\uDE47-\uDFFF]|\uD81A[\uDE39-\uDE3F\uDE5F\uDE6A-\uDECF\uDEEE\uDEEF\uDEF5-\uDEFF\uDF37-\uDF3F\uDF44-\uDF4F\uDF5A-\uDF62\uDF78-\uDF7C\uDF90-\uDFFF]|\uD81B[\uDC00-\uDE3F\uDE80-\uDEFF\uDF4B-\uDF4E\uDF88-\uDF8E\uDFA0-\uDFDF\uDFE2\uDFE5-\uDFEF\uDFF2-\uDFFF]|\uD821[\uDFF8-\uDFFF]|\uD823[\uDCD6-\uDCFF\uDD09-\uDFFF]|\uD82C[\uDD1F-\uDD4F\uDD53-\uDD63\uDD68-\uDD6F\uDEFC-\uDFFF]|\uD82F[\uDC6B-\uDC6F\uDC7D-\uDC7F\uDC89-\uDC8F\uDC9A-\uDC9C\uDC9F-\uDFFF]|\uD834[\uDC00-\uDD64\uDD6A-\uDD6C\uDD73-\uDD7A\uDD83\uDD84\uDD8C-\uDDA9\uDDAE-\uDE41\uDE45-\uDFFF]|\uD835[\uDC55\uDC9D\uDCA0\uDCA1\uDCA3\uDCA4\uDCA7\uDCA8\uDCAD\uDCBA\uDCBC\uDCC4\uDD06\uDD0B\uDD0C\uDD15\uDD1D\uDD3A\uDD3F\uDD45\uDD47-\uDD49\uDD51\uDEA6\uDEA7\uDEC1\uDEDB\uDEFB\uDF15\uDF35\uDF4F\uDF6F\uDF89\uDFA9\uDFC3\uDFCC\uDFCD]|\uD836[\uDC00-\uDDFF\uDE37-\uDE3A\uDE6D-\uDE74\uDE76-\uDE83\uDE85-\uDE9A\uDEA0\uDEB0-\uDFFF]|\uD838[\uDC07\uDC19\uDC1A\uDC22\uDC25\uDC2B-\uDCFF\uDD2D-\uDD2F\uDD3E\uDD3F\uDD4A-\uDD4D\uDD4F-\uDEBF\uDEFA-\uDFFF]|\uD83A[\uDCC5-\uDCCF\uDCD7-\uDCFF\uDD4C-\uDD4F\uDD5A-\uDFFF]|\uD83B[\uDC00-\uDDFF\uDE04\uDE20\uDE23\uDE25\uDE26\uDE28\uDE33\uDE38\uDE3A\uDE3C-\uDE41\uDE43-\uDE46\uDE48\uDE4A\uDE4C\uDE50\uDE53\uDE55\uDE56\uDE58\uDE5A\uDE5C\uDE5E\uDE60\uDE63\uDE65\uDE66\uDE6B\uDE73\uDE78\uDE7D\uDE7F\uDE8A\uDE9C-\uDEA0\uDEA4\uDEAA\uDEBC-\uDFFF]|\uD83C[\uDC00-\uDD2F\uDD4A-\uDD4F\uDD6A-\uDD6F\uDD8A-\uDFFF]|\uD83E[\uDC00-\uDFEF\uDFFA-\uDFFF]|\uD869[\uDEDE-\uDEFF]|\uD86D[\uDF35-\uDF3F]|\uD86E[\uDC1E\uDC1F]|\uD873[\uDEA2-\uDEAF]|\uD87A[\uDFE1-\uDFFF]|\uD87E[\uDE1E-\uDFFF]|\uD884[\uDF4B-\uDFFF]|\uDB40[\uDC00-\uDCFF\uDDF0-\uDFFF]/g,h6=Object.hasOwnProperty;class MA{constructor(){this.occurrences,this.reset()}slug(e,n){const i=this;let r=f6(e,n===!0);const s=r;for(;h6.call(i.occurrences,r);)i.occurrences[s]++,r=s+"-"+i.occurrences[s];return i.occurrences[r]=0,r}reset(){this.occurrences=Object.create(null)}}function f6(t,e){return typeof t!="string"?"":(e||(t=t.toLowerCase()),t.replace(u6,"").replace(/ /g,"-"))}let BA=new MA,Eg=[];function d6({prefix:t="",globalSlugs:e=!1}={}){return{headerIds:!1,hooks:{preprocess(n){return e||m6(),n}},renderer:{heading(n,i,r){r=r.toLowerCase().trim().replace(/<[!\/a-z].*?>/gi,"");const s=`${t}${BA.slug(r)}`,o={level:i,text:n,id:s};return Eg.push(o),`${n} +`}}}}function p6(){return Eg}function m6(){Eg=[],BA=new MA}function wg(){return{async:!1,baseUrl:null,breaks:!1,extensions:null,gfm:!0,headerIds:!1,headerPrefix:"",highlight:null,hooks:null,langPrefix:"language-",mangle:!1,pedantic:!1,renderer:null,sanitize:!1,sanitizer:null,silent:!1,smartypants:!1,tokenizer:null,walkTokens:null,xhtml:!1}}let Oi=wg();function jA(t){Oi=t}const zA=/[&<>"']/,g6=new RegExp(zA.source,"g"),HA=/[<>"']|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/,y6=new RegExp(HA.source,"g"),_6={"&":"&","<":"<",">":">",'"':""","'":"'"},f0=t=>_6[t];function pt(t,e){if(e){if(zA.test(t))return t.replace(g6,f0)}else if(HA.test(t))return t.replace(y6,f0);return t}const v6=/&(#(?:\d+)|(?:#x[0-9A-Fa-f]+)|(?:\w+));?/ig;function UA(t){return t.replace(v6,(e,n)=>(n=n.toLowerCase(),n==="colon"?":":n.charAt(0)==="#"?n.charAt(1)==="x"?String.fromCharCode(parseInt(n.substring(2),16)):String.fromCharCode(+n.substring(1)):""))}const b6=/(^|[^\[])\^/g;function Ie(t,e){t=typeof t=="string"?t:t.source,e=e||"";const n={replace:(i,r)=>(r=typeof r=="object"&&"source"in r?r.source:r,r=r.replace(b6,"$1"),t=t.replace(i,r),n),getRegex:()=>new RegExp(t,e)};return n}const E6=/[^\w:]/g,w6=/^$|^[a-z][a-z0-9+.-]*:|^[?#]/i;function d0(t,e,n){if(t){let i;try{i=decodeURIComponent(UA(n)).replace(E6,"").toLowerCase()}catch{return null}if(i.indexOf("javascript:")===0||i.indexOf("vbscript:")===0||i.indexOf("data:")===0)return null}e&&!w6.test(n)&&(n=A6(e,n));try{n=encodeURI(n).replace(/%25/g,"%")}catch{return null}return n}const Qa={},C6=/^[^:]+:\/*[^/]*$/,S6=/^([^:]+:)[\s\S]*$/,T6=/^([^:]+:\/*[^/]*)[\s\S]*$/;function A6(t,e){Qa[" "+t]||(C6.test(t)?Qa[" "+t]=t+"/":Qa[" "+t]=xl(t,"/",!0)),t=Qa[" "+t];const n=t.indexOf(":")===-1;return e.substring(0,2)==="//"?n?e:t.replace(S6,"$1")+e:e.charAt(0)==="/"?n?e:t.replace(T6,"$1")+e:t+e}const wc={exec:()=>null};function p0(t,e){const n=t.replace(/\|/g,(s,o,a)=>{let c=!1,u=o;for(;--u>=0&&a[u]==="\\";)c=!c;return c?"|":" |"}),i=n.split(/ \|/);let r=0;if(i[0].trim()||i.shift(),i.length>0&&!i[i.length-1].trim()&&i.pop(),e)if(i.length>e)i.splice(e);else for(;i.length{const s=r.match(/^\s+/);if(s===null)return r;const[o]=s;return o.length>=i.length?r.slice(i.length):r}).join(` +`)}class Cc{constructor(e){l(this,"options");l(this,"rules");l(this,"lexer");this.options=e||Oi}space(e){const n=this.rules.block.newline.exec(e);if(n&&n[0].length>0)return{type:"space",raw:n[0]}}code(e){const n=this.rules.block.code.exec(e);if(n){const i=n[0].replace(/^ {1,4}/gm,"");return{type:"code",raw:n[0],codeBlockStyle:"indented",text:this.options.pedantic?i:xl(i,` +`)}}}fences(e){const n=this.rules.block.fences.exec(e);if(n){const i=n[0],r=I6(i,n[3]||"");return{type:"code",raw:i,lang:n[2]?n[2].trim().replace(this.rules.inline._escapes,"$1"):n[2],text:r}}}heading(e){const n=this.rules.block.heading.exec(e);if(n){let i=n[2].trim();if(/#$/.test(i)){const r=xl(i,"#");(this.options.pedantic||!r||/ $/.test(r))&&(i=r.trim())}return{type:"heading",raw:n[0],depth:n[1].length,text:i,tokens:this.lexer.inline(i)}}}hr(e){const n=this.rules.block.hr.exec(e);if(n)return{type:"hr",raw:n[0]}}blockquote(e){const n=this.rules.block.blockquote.exec(e);if(n){const i=n[0].replace(/^ *>[ \t]?/gm,""),r=this.lexer.state.top;this.lexer.state.top=!0;const s=this.lexer.blockTokens(i);return this.lexer.state.top=r,{type:"blockquote",raw:n[0],tokens:s,text:i}}}list(e){let n=this.rules.block.list.exec(e);if(n){let i=n[1].trim();const r=i.length>1,s={type:"list",raw:"",ordered:r,start:r?+i.slice(0,-1):"",loose:!1,items:[]};i=r?`\\d{1,9}\\${i.slice(-1)}`:`\\${i}`,this.options.pedantic&&(i=r?i:"[*+-]");const o=new RegExp(`^( {0,3}${i})((?:[ ][^\\n]*)?(?:\\n|$))`);let a="",c="",u=!1;for(;e;){let h=!1;if(!(n=o.exec(e))||this.rules.block.hr.test(e))break;a=n[0],e=e.substring(a.length);let f=n[2].split(` +`,1)[0].replace(/^\t+/,S=>" ".repeat(3*S.length)),d=e.split(` +`,1)[0],p=0;this.options.pedantic?(p=2,c=f.trimLeft()):(p=n[2].search(/[^ ]/),p=p>4?1:p,c=f.slice(p),p+=n[1].length);let m=!1;if(!f&&/^ *$/.test(d)&&(a+=d+` +`,e=e.substring(d.length+1),h=!0),!h){const S=new RegExp(`^ {0,${Math.min(3,p-1)}}(?:[*+-]|\\d{1,9}[.)])((?:[ ][^\\n]*)?(?:\\n|$))`),C=new RegExp(`^ {0,${Math.min(3,p-1)}}((?:- *){3,}|(?:_ *){3,}|(?:\\* *){3,})(?:\\n+|$)`),E=new RegExp(`^ {0,${Math.min(3,p-1)}}(?:\`\`\`|~~~)`),N=new RegExp(`^ {0,${Math.min(3,p-1)}}#`);for(;e;){const L=e.split(` +`,1)[0];if(d=L,this.options.pedantic&&(d=d.replace(/^ {1,4}(?=( {4})*[^ ])/g," ")),E.test(d)||N.test(d)||S.test(d)||C.test(e))break;if(d.search(/[^ ]/)>=p||!d.trim())c+=` +`+d.slice(p);else{if(m||f.search(/[^ ]/)>=4||E.test(f)||N.test(f)||C.test(f))break;c+=` +`+d}!m&&!d.trim()&&(m=!0),a+=L+` +`,e=e.substring(L.length+1),f=d.slice(p)}}s.loose||(u?s.loose=!0:/\n *\n *$/.test(a)&&(u=!0));let y=null,_;this.options.gfm&&(y=/^\[[ xX]\] /.exec(c),y&&(_=y[0]!=="[ ] ",c=c.replace(/^\[[ xX]\] +/,""))),s.items.push({type:"list_item",raw:a,task:!!y,checked:_,loose:!1,text:c,tokens:[]}),s.raw+=a}s.items[s.items.length-1].raw=a.trimRight(),s.items[s.items.length-1].text=c.trimRight(),s.raw=s.raw.trimRight();for(let h=0;hp.type==="space"),d=f.length>0&&f.some(p=>/\n.*\n/.test(p.raw));s.loose=d}if(s.loose)for(let h=0;h$/,"$1").replace(this.rules.inline._escapes,"$1"):"",s=n[3]?n[3].substring(1,n[3].length-1).replace(this.rules.inline._escapes,"$1"):n[3];return{type:"def",tag:i,raw:n[0],href:r,title:s}}}table(e){const n=this.rules.block.table.exec(e);if(n){const i={type:"table",raw:n[0],header:p0(n[1]).map(r=>({text:r,tokens:[]})),align:n[2].replace(/^ *|\| *$/g,"").split(/ *\| */),rows:n[3]&&n[3].trim()?n[3].replace(/\n[ \t]*$/,"").split(` +`):[]};if(i.header.length===i.align.length){let r=i.align.length,s,o,a,c;for(s=0;s({text:u,tokens:[]}));for(r=i.header.length,o=0;o/i.test(n[0])&&(this.lexer.state.inLink=!1),!this.lexer.state.inRawBlock&&/^<(pre|code|kbd|script)(\s|>)/i.test(n[0])?this.lexer.state.inRawBlock=!0:this.lexer.state.inRawBlock&&/^<\/(pre|code|kbd|script)(\s|>)/i.test(n[0])&&(this.lexer.state.inRawBlock=!1),{type:this.options.sanitize?"text":"html",raw:n[0],inLink:this.lexer.state.inLink,inRawBlock:this.lexer.state.inRawBlock,block:!1,text:this.options.sanitize?this.options.sanitizer?this.options.sanitizer(n[0]):pt(n[0]):n[0]}}link(e){const n=this.rules.inline.link.exec(e);if(n){const i=n[2].trim();if(!this.options.pedantic&&/^$/.test(i))return;const o=xl(i.slice(0,-1),"\\");if((i.length-o.length)%2===0)return}else{const o=k6(n[2],"()");if(o>-1){const c=(n[0].indexOf("!")===0?5:4)+n[1].length+o;n[2]=n[2].substring(0,o),n[0]=n[0].substring(0,c).trim(),n[3]=""}}let r=n[2],s="";if(this.options.pedantic){const o=/^([^'"]*[^\s])\s+(['"])(.*)\2/.exec(r);o&&(r=o[1],s=o[3])}else s=n[3]?n[3].slice(1,-1):"";return r=r.trim(),/^$/.test(i)?r=r.slice(1):r=r.slice(1,-1)),m0(n,{href:r&&r.replace(this.rules.inline._escapes,"$1"),title:s&&s.replace(this.rules.inline._escapes,"$1")},n[0],this.lexer)}}reflink(e,n){let i;if((i=this.rules.inline.reflink.exec(e))||(i=this.rules.inline.nolink.exec(e))){let r=(i[2]||i[1]).replace(/\s+/g," ");if(r=n[r.toLowerCase()],!r){const s=i[0].charAt(0);return{type:"text",raw:s,text:s}}return m0(i,r,i[0],this.lexer)}}emStrong(e,n,i=""){let r=this.rules.inline.emStrong.lDelim.exec(e);if(!r||r[3]&&i.match(/[\p{L}\p{N}]/u))return;if(!(r[1]||r[2]||"")||!i||this.rules.inline.punctuation.exec(i)){const o=[...r[0]].length-1;let a,c,u=o,h=0;const f=r[0][0]==="*"?this.rules.inline.emStrong.rDelimAst:this.rules.inline.emStrong.rDelimUnd;for(f.lastIndex=0,n=n.slice(-1*e.length+o);(r=f.exec(n))!=null;){if(a=r[1]||r[2]||r[3]||r[4]||r[5]||r[6],!a)continue;if(c=[...a].length,r[3]||r[4]){u+=c;continue}else if((r[5]||r[6])&&o%3&&!((o+c)%3)){h+=c;continue}if(u-=c,u>0)continue;c=Math.min(c,c+u+h);const d=[...e].slice(0,o+r.index+c+1).join("");if(Math.min(o,c)%2){const m=d.slice(1,-1);return{type:"em",raw:d,text:m,tokens:this.lexer.inlineTokens(m)}}const p=d.slice(2,-2);return{type:"strong",raw:d,text:p,tokens:this.lexer.inlineTokens(p)}}}}codespan(e){const n=this.rules.inline.code.exec(e);if(n){let i=n[2].replace(/\n/g," ");const r=/[^ ]/.test(i),s=/^ /.test(i)&&/ $/.test(i);return r&&s&&(i=i.substring(1,i.length-1)),i=pt(i,!0),{type:"codespan",raw:n[0],text:i}}}br(e){const n=this.rules.inline.br.exec(e);if(n)return{type:"br",raw:n[0]}}del(e){const n=this.rules.inline.del.exec(e);if(n)return{type:"del",raw:n[0],text:n[2],tokens:this.lexer.inlineTokens(n[2])}}autolink(e,n){const i=this.rules.inline.autolink.exec(e);if(i){let r,s;return i[2]==="@"?(r=pt(this.options.mangle?n(i[1]):i[1]),s="mailto:"+r):(r=pt(i[1]),s=r),{type:"link",raw:i[0],text:r,href:s,tokens:[{type:"text",raw:r,text:r}]}}}url(e,n){let i;if(i=this.rules.inline.url.exec(e)){let r,s;if(i[2]==="@")r=pt(this.options.mangle?n(i[0]):i[0]),s="mailto:"+r;else{let o;do o=i[0],i[0]=this.rules.inline._backpedal.exec(i[0])[0];while(o!==i[0]);r=pt(i[0]),i[1]==="www."?s="http://"+i[0]:s=i[0]}return{type:"link",raw:i[0],text:r,href:s,tokens:[{type:"text",raw:r,text:r}]}}}inlineText(e,n){const i=this.rules.inline.text.exec(e);if(i){let r;return this.lexer.state.inRawBlock?r=this.options.sanitize?this.options.sanitizer?this.options.sanitizer(i[0]):pt(i[0]):i[0]:r=pt(this.options.smartypants?n(i[0]):i[0]),{type:"text",raw:i[0],text:r}}}}const q={newline:/^(?: *(?:\n|$))+/,code:/^( {4}[^\n]+(?:\n(?: *(?:\n|$))*)?)+/,fences:/^ {0,3}(`{3,}(?=[^`\n]*(?:\n|$))|~{3,})([^\n]*)(?:\n|$)(?:|([\s\S]*?)(?:\n|$))(?: {0,3}\1[~`]* *(?=\n|$)|$)/,hr:/^ {0,3}((?:-[\t ]*){3,}|(?:_[ \t]*){3,}|(?:\*[ \t]*){3,})(?:\n+|$)/,heading:/^ {0,3}(#{1,6})(?=\s|$)(.*)(?:\n+|$)/,blockquote:/^( {0,3}> ?(paragraph|[^\n]*)(?:\n|$))+/,list:/^( {0,3}bull)([ \t][^\n]+?)?(?:\n|$)/,html:"^ {0,3}(?:<(script|pre|style|textarea)[\\s>][\\s\\S]*?(?:[^\\n]*\\n+|$)|comment[^\\n]*(\\n+|$)|<\\?[\\s\\S]*?(?:\\?>\\n*|$)|\\n*|$)|\\n*|$)|)[\\s\\S]*?(?:(?:\\n *)+\\n|$)|<(?!script|pre|style|textarea)([a-z][\\w-]*)(?:attribute)*? */?>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n *)+\\n|$)|(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n *)+\\n|$))",def:/^ {0,3}\[(label)\]: *(?:\n *)?([^<\s][^\s]*|<.*?>)(?:(?: +(?:\n *)?| *\n *)(title))? *(?:\n+|$)/,table:wc,lheading:/^((?:(?!^bull ).|\n(?!\n|bull ))+?)\n {0,3}(=+|-+) *(?:\n+|$)/,_paragraph:/^([^\n]+(?:\n(?!hr|heading|lheading|blockquote|fences|list|html|table| +\n)[^\n]+)*)/,text:/^[^\n]+/};q._label=/(?!\s*\])(?:\\.|[^\[\]\\])+/;q._title=/(?:"(?:\\"?|[^"\\])*"|'[^'\n]*(?:\n[^'\n]+)*\n?'|\([^()]*\))/;q.def=Ie(q.def).replace("label",q._label).replace("title",q._title).getRegex();q.bullet=/(?:[*+-]|\d{1,9}[.)])/;q.listItemStart=Ie(/^( *)(bull) */).replace("bull",q.bullet).getRegex();q.list=Ie(q.list).replace(/bull/g,q.bullet).replace("hr","\\n+(?=\\1?(?:(?:- *){3,}|(?:_ *){3,}|(?:\\* *){3,})(?:\\n+|$))").replace("def","\\n+(?="+q.def.source+")").getRegex();q._tag="address|article|aside|base|basefont|blockquote|body|caption|center|col|colgroup|dd|details|dialog|dir|div|dl|dt|fieldset|figcaption|figure|footer|form|frame|frameset|h[1-6]|head|header|hr|html|iframe|legend|li|link|main|menu|menuitem|meta|nav|noframes|ol|optgroup|option|p|param|section|source|summary|table|tbody|td|tfoot|th|thead|title|tr|track|ul";q._comment=/|$)/;q.html=Ie(q.html,"i").replace("comment",q._comment).replace("tag",q._tag).replace("attribute",/ +[a-zA-Z:_][\w.:-]*(?: *= *"[^"\n]*"| *= *'[^'\n]*'| *= *[^\s"'=<>`]+)?/).getRegex();q.lheading=Ie(q.lheading).replace(/bull/g,q.bullet).getRegex();q.paragraph=Ie(q._paragraph).replace("hr",q.hr).replace("heading"," {0,3}#{1,6} ").replace("|lheading","").replace("|table","").replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html",")|<(?:script|pre|style|textarea|!--)").replace("tag",q._tag).getRegex();q.blockquote=Ie(q.blockquote).replace("paragraph",q.paragraph).getRegex();q.normal={...q};q.gfm={...q.normal,table:"^ *([^\\n ].*\\|.*)\\n {0,3}(?:\\| *)?(:?-+:? *(?:\\| *:?-+:? *)*)(?:\\| *)?(?:\\n((?:(?! *\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\n|$))*)\\n*|$)"};q.gfm.table=Ie(q.gfm.table).replace("hr",q.hr).replace("heading"," {0,3}#{1,6} ").replace("blockquote"," {0,3}>").replace("code"," {4}[^\\n]").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html",")|<(?:script|pre|style|textarea|!--)").replace("tag",q._tag).getRegex();q.gfm.paragraph=Ie(q._paragraph).replace("hr",q.hr).replace("heading"," {0,3}#{1,6} ").replace("|lheading","").replace("table",q.gfm.table).replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html",")|<(?:script|pre|style|textarea|!--)").replace("tag",q._tag).getRegex();q.pedantic={...q.normal,html:Ie(`^ *(?:comment *(?:\\n|\\s*$)|<(tag)[\\s\\S]+? *(?:\\n{2,}|\\s*$)|\\s]*)*?/?> *(?:\\n{2,}|\\s*$))`).replace("comment",q._comment).replace(/tag/g,"(?!(?:a|em|strong|small|s|cite|q|dfn|abbr|data|time|code|var|samp|kbd|sub|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo|span|br|wbr|ins|del|img)\\b)\\w+(?!:|[^\\w\\s@]*@)\\b").getRegex(),def:/^ *\[([^\]]+)\]: *]+)>?(?: +(["(][^\n]+[")]))? *(?:\n+|$)/,heading:/^(#{1,6})(.*)(?:\n+|$)/,fences:wc,lheading:/^(.+?)\n {0,3}(=+|-+) *(?:\n+|$)/,paragraph:Ie(q.normal._paragraph).replace("hr",q.hr).replace("heading",` *#{1,6} *[^ +]`).replace("lheading",q.lheading).replace("blockquote"," {0,3}>").replace("|fences","").replace("|list","").replace("|html","").getRegex()};const j={escape:/^\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/,autolink:/^<(scheme:[^\s\x00-\x1f<>]*|email)>/,url:wc,tag:"^comment|^|^<[a-zA-Z][\\w-]*(?:attribute)*?\\s*/?>|^<\\?[\\s\\S]*?\\?>|^|^",link:/^!?\[(label)\]\(\s*(href)(?:\s+(title))?\s*\)/,reflink:/^!?\[(label)\]\[(ref)\]/,nolink:/^!?\[(ref)\](?:\[\])?/,reflinkSearch:"reflink|nolink(?!\\()",emStrong:{lDelim:/^(?:\*+(?:((?!\*)[punct])|[^\s*]))|^_+(?:((?!_)[punct])|([^\s_]))/,rDelimAst:/^[^_*]*?__[^_*]*?\*[^_*]*?(?=__)|[^*]+(?=[^*])|(?!\*)[punct](\*+)(?=[\s]|$)|[^punct\s](\*+)(?!\*)(?=[punct\s]|$)|(?!\*)[punct\s](\*+)(?=[^punct\s])|[\s](\*+)(?!\*)(?=[punct])|(?!\*)[punct](\*+)(?!\*)(?=[punct])|[^punct\s](\*+)(?=[^punct\s])/,rDelimUnd:/^[^_*]*?\*\*[^_*]*?_[^_*]*?(?=\*\*)|[^_]+(?=[^_])|(?!_)[punct](_+)(?=[\s]|$)|[^punct\s](_+)(?!_)(?=[punct\s]|$)|(?!_)[punct\s](_+)(?=[^punct\s])|[\s](_+)(?!_)(?=[punct])|(?!_)[punct](_+)(?!_)(?=[punct])/},code:/^(`+)([^`]|[^`][\s\S]*?[^`])\1(?!`)/,br:/^( {2,}|\\)\n(?!\s*$)/,del:wc,text:/^(`+|[^`])(?:(?= {2,}\n)|[\s\S]*?(?:(?=[\\`^|~";j.punctuation=Ie(j.punctuation,"u").replace(/punctuation/g,j._punctuation).getRegex();j.blockSkip=/\[[^[\]]*?\]\([^\(\)]*?\)|`[^`]*?`|<[^<>]*?>/g;j.anyPunctuation=/\\[punct]/g;j._escapes=/\\([punct])/g;j._comment=Ie(q._comment).replace("(?:-->|$)","-->").getRegex();j.emStrong.lDelim=Ie(j.emStrong.lDelim,"u").replace(/punct/g,j._punctuation).getRegex();j.emStrong.rDelimAst=Ie(j.emStrong.rDelimAst,"gu").replace(/punct/g,j._punctuation).getRegex();j.emStrong.rDelimUnd=Ie(j.emStrong.rDelimUnd,"gu").replace(/punct/g,j._punctuation).getRegex();j.anyPunctuation=Ie(j.anyPunctuation,"gu").replace(/punct/g,j._punctuation).getRegex();j._escapes=Ie(j._escapes,"gu").replace(/punct/g,j._punctuation).getRegex();j._scheme=/[a-zA-Z][a-zA-Z0-9+.-]{1,31}/;j._email=/[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+(@)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+(?![-_])/;j.autolink=Ie(j.autolink).replace("scheme",j._scheme).replace("email",j._email).getRegex();j._attribute=/\s+[a-zA-Z:_][\w.:-]*(?:\s*=\s*"[^"]*"|\s*=\s*'[^']*'|\s*=\s*[^\s"'=<>`]+)?/;j.tag=Ie(j.tag).replace("comment",j._comment).replace("attribute",j._attribute).getRegex();j._label=/(?:\[(?:\\.|[^\[\]\\])*\]|\\.|`[^`]*`|[^\[\]\\`])*?/;j._href=/<(?:\\.|[^\n<>\\])+>|[^\s\x00-\x1f]*/;j._title=/"(?:\\"?|[^"\\])*"|'(?:\\'?|[^'\\])*'|\((?:\\\)?|[^)\\])*\)/;j.link=Ie(j.link).replace("label",j._label).replace("href",j._href).replace("title",j._title).getRegex();j.reflink=Ie(j.reflink).replace("label",j._label).replace("ref",q._label).getRegex();j.nolink=Ie(j.nolink).replace("ref",q._label).getRegex();j.reflinkSearch=Ie(j.reflinkSearch,"g").replace("reflink",j.reflink).replace("nolink",j.nolink).getRegex();j.normal={...j};j.pedantic={...j.normal,strong:{start:/^__|\*\*/,middle:/^__(?=\S)([\s\S]*?\S)__(?!_)|^\*\*(?=\S)([\s\S]*?\S)\*\*(?!\*)/,endAst:/\*\*(?!\*)/g,endUnd:/__(?!_)/g},em:{start:/^_|\*/,middle:/^()\*(?=\S)([\s\S]*?\S)\*(?!\*)|^_(?=\S)([\s\S]*?\S)_(?!_)/,endAst:/\*(?!\*)/g,endUnd:/_(?!_)/g},link:Ie(/^!?\[(label)\]\((.*?)\)/).replace("label",j._label).getRegex(),reflink:Ie(/^!?\[(label)\]\s*\[([^\]]*)\]/).replace("label",j._label).getRegex()};j.gfm={...j.normal,escape:Ie(j.escape).replace("])","~|])").getRegex(),_extended_email:/[A-Za-z0-9._+-]+(@)[a-zA-Z0-9-_]+(?:\.[a-zA-Z0-9-_]*[a-zA-Z0-9])+(?![-_])/,url:/^((?:ftp|https?):\/\/|www\.)(?:[a-zA-Z0-9\-]+\.?)+[^\s<]*|^email/,_backpedal:/(?:[^?!.,:;*_'"~()&]+|\([^)]*\)|&(?![a-zA-Z0-9]+;$)|[?!.,:;*_'"~)]+(?!$))+/,del:/^(~~?)(?=[^\s~])([\s\S]*?[^\s~])\1(?=[^~]|$)/,text:/^([`~]+|[^`~])(?:(?= {2,}\n)|(?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@)|[\s\S]*?(?:(?=[\\.5?"x"+t.charCodeAt(n).toString(16):t.charCodeAt(n).toString();e+="&#"+i+";"}return e}class Rn{constructor(e){l(this,"tokens");l(this,"options");l(this,"state");l(this,"tokenizer");l(this,"inlineQueue");this.tokens=[],this.tokens.links=Object.create(null),this.options=e||Oi,this.options.tokenizer=this.options.tokenizer||new Cc,this.tokenizer=this.options.tokenizer,this.tokenizer.options=this.options,this.tokenizer.lexer=this,this.inlineQueue=[],this.state={inLink:!1,inRawBlock:!1,top:!0};const n={block:q.normal,inline:j.normal};this.options.pedantic?(n.block=q.pedantic,n.inline=j.pedantic):this.options.gfm&&(n.block=q.gfm,this.options.breaks?n.inline=j.breaks:n.inline=j.gfm),this.tokenizer.rules=n}static get rules(){return{block:q,inline:j}}static lex(e,n){return new Rn(n).lex(e)}static lexInline(e,n){return new Rn(n).inlineTokens(e)}lex(e){e=e.replace(/\r\n|\r/g,` +`),this.blockTokens(e,this.tokens);let n;for(;n=this.inlineQueue.shift();)this.inlineTokens(n.src,n.tokens);return this.tokens}blockTokens(e,n=[]){this.options.pedantic?e=e.replace(/\t/g," ").replace(/^ +$/gm,""):e=e.replace(/^( *)(\t+)/gm,(a,c,u)=>c+" ".repeat(u.length));let i,r,s,o;for(;e;)if(!(this.options.extensions&&this.options.extensions.block&&this.options.extensions.block.some(a=>(i=a.call({lexer:this},e,n))?(e=e.substring(i.raw.length),n.push(i),!0):!1))){if(i=this.tokenizer.space(e)){e=e.substring(i.raw.length),i.raw.length===1&&n.length>0?n[n.length-1].raw+=` +`:n.push(i);continue}if(i=this.tokenizer.code(e)){e=e.substring(i.raw.length),r=n[n.length-1],r&&(r.type==="paragraph"||r.type==="text")?(r.raw+=` +`+i.raw,r.text+=` +`+i.text,this.inlineQueue[this.inlineQueue.length-1].src=r.text):n.push(i);continue}if(i=this.tokenizer.fences(e)){e=e.substring(i.raw.length),n.push(i);continue}if(i=this.tokenizer.heading(e)){e=e.substring(i.raw.length),n.push(i);continue}if(i=this.tokenizer.hr(e)){e=e.substring(i.raw.length),n.push(i);continue}if(i=this.tokenizer.blockquote(e)){e=e.substring(i.raw.length),n.push(i);continue}if(i=this.tokenizer.list(e)){e=e.substring(i.raw.length),n.push(i);continue}if(i=this.tokenizer.html(e)){e=e.substring(i.raw.length),n.push(i);continue}if(i=this.tokenizer.def(e)){e=e.substring(i.raw.length),r=n[n.length-1],r&&(r.type==="paragraph"||r.type==="text")?(r.raw+=` +`+i.raw,r.text+=` +`+i.raw,this.inlineQueue[this.inlineQueue.length-1].src=r.text):this.tokens.links[i.tag]||(this.tokens.links[i.tag]={href:i.href,title:i.title});continue}if(i=this.tokenizer.table(e)){e=e.substring(i.raw.length),n.push(i);continue}if(i=this.tokenizer.lheading(e)){e=e.substring(i.raw.length),n.push(i);continue}if(s=e,this.options.extensions&&this.options.extensions.startBlock){let a=1/0;const c=e.slice(1);let u;this.options.extensions.startBlock.forEach(h=>{u=h.call({lexer:this},c),typeof u=="number"&&u>=0&&(a=Math.min(a,u))}),a<1/0&&a>=0&&(s=e.substring(0,a+1))}if(this.state.top&&(i=this.tokenizer.paragraph(s))){r=n[n.length-1],o&&r.type==="paragraph"?(r.raw+=` +`+i.raw,r.text+=` +`+i.text,this.inlineQueue.pop(),this.inlineQueue[this.inlineQueue.length-1].src=r.text):n.push(i),o=s.length!==e.length,e=e.substring(i.raw.length);continue}if(i=this.tokenizer.text(e)){e=e.substring(i.raw.length),r=n[n.length-1],r&&r.type==="text"?(r.raw+=` +`+i.raw,r.text+=` +`+i.text,this.inlineQueue.pop(),this.inlineQueue[this.inlineQueue.length-1].src=r.text):n.push(i);continue}if(e){const a="Infinite loop on byte: "+e.charCodeAt(0);if(this.options.silent){console.error(a);break}else throw new Error(a)}}return this.state.top=!0,n}inline(e,n=[]){return this.inlineQueue.push({src:e,tokens:n}),n}inlineTokens(e,n=[]){let i,r,s,o=e,a,c,u;if(this.tokens.links){const h=Object.keys(this.tokens.links);if(h.length>0)for(;(a=this.tokenizer.rules.inline.reflinkSearch.exec(o))!=null;)h.includes(a[0].slice(a[0].lastIndexOf("[")+1,-1))&&(o=o.slice(0,a.index)+"["+"a".repeat(a[0].length-2)+"]"+o.slice(this.tokenizer.rules.inline.reflinkSearch.lastIndex))}for(;(a=this.tokenizer.rules.inline.blockSkip.exec(o))!=null;)o=o.slice(0,a.index)+"["+"a".repeat(a[0].length-2)+"]"+o.slice(this.tokenizer.rules.inline.blockSkip.lastIndex);for(;(a=this.tokenizer.rules.inline.anyPunctuation.exec(o))!=null;)o=o.slice(0,a.index)+"++"+o.slice(this.tokenizer.rules.inline.anyPunctuation.lastIndex);for(;e;)if(c||(u=""),c=!1,!(this.options.extensions&&this.options.extensions.inline&&this.options.extensions.inline.some(h=>(i=h.call({lexer:this},e,n))?(e=e.substring(i.raw.length),n.push(i),!0):!1))){if(i=this.tokenizer.escape(e)){e=e.substring(i.raw.length),n.push(i);continue}if(i=this.tokenizer.tag(e)){e=e.substring(i.raw.length),r=n[n.length-1],r&&i.type==="text"&&r.type==="text"?(r.raw+=i.raw,r.text+=i.text):n.push(i);continue}if(i=this.tokenizer.link(e)){e=e.substring(i.raw.length),n.push(i);continue}if(i=this.tokenizer.reflink(e,this.tokens.links)){e=e.substring(i.raw.length),r=n[n.length-1],r&&i.type==="text"&&r.type==="text"?(r.raw+=i.raw,r.text+=i.text):n.push(i);continue}if(i=this.tokenizer.emStrong(e,o,u)){e=e.substring(i.raw.length),n.push(i);continue}if(i=this.tokenizer.codespan(e)){e=e.substring(i.raw.length),n.push(i);continue}if(i=this.tokenizer.br(e)){e=e.substring(i.raw.length),n.push(i);continue}if(i=this.tokenizer.del(e)){e=e.substring(i.raw.length),n.push(i);continue}if(i=this.tokenizer.autolink(e,g0)){e=e.substring(i.raw.length),n.push(i);continue}if(!this.state.inLink&&(i=this.tokenizer.url(e,g0))){e=e.substring(i.raw.length),n.push(i);continue}if(s=e,this.options.extensions&&this.options.extensions.startInline){let h=1/0;const f=e.slice(1);let d;this.options.extensions.startInline.forEach(p=>{d=p.call({lexer:this},f),typeof d=="number"&&d>=0&&(h=Math.min(h,d))}),h<1/0&&h>=0&&(s=e.substring(0,h+1))}if(i=this.tokenizer.inlineText(s,x6)){e=e.substring(i.raw.length),i.raw.slice(-1)!=="_"&&(u=i.raw.slice(-1)),c=!0,r=n[n.length-1],r&&r.type==="text"?(r.raw+=i.raw,r.text+=i.text):n.push(i);continue}if(e){const h="Infinite loop on byte: "+e.charCodeAt(0);if(this.options.silent){console.error(h);break}else throw new Error(h)}}return n}}class Sc{constructor(e){l(this,"options");this.options=e||Oi}code(e,n,i){const r=(n||"").match(/^\S*/)?.[0];if(this.options.highlight){const s=this.options.highlight(e,r);s!=null&&s!==e&&(i=!0,e=s)}return e=e.replace(/\n$/,"")+` +`,r?'
'+(i?e:pt(e,!0))+`
+`:"
"+(i?e:pt(e,!0))+`
+`}blockquote(e){return`
+${e}
+`}html(e,n){return e}heading(e,n,i,r){if(this.options.headerIds){const s=this.options.headerPrefix+r.slug(i);return`${e} +`}return`${e} +`}hr(){return this.options.xhtml?`
+`:`
+`}list(e,n,i){const r=n?"ol":"ul",s=n&&i!==1?' start="'+i+'"':"";return"<"+r+s+`> +`+e+" +`}listitem(e,n,i){return`
  • ${e}
  • +`}checkbox(e){return" "}paragraph(e){return`

    ${e}

    +`}table(e,n){return n&&(n=`${n}`),` + +`+e+` +`+n+`
    +`}tablerow(e){return` +${e} +`}tablecell(e,n){const i=n.header?"th":"td";return(n.align?`<${i} align="${n.align}">`:`<${i}>`)+e+` +`}strong(e){return`${e}`}em(e){return`${e}`}codespan(e){return`${e}`}br(){return this.options.xhtml?"
    ":"
    "}del(e){return`${e}`}link(e,n,i){const r=d0(this.options.sanitize,this.options.baseUrl,e);if(r===null)return i;e=r;let s='",s}image(e,n,i){const r=d0(this.options.sanitize,this.options.baseUrl,e);if(r===null)return i;e=r;let s=`${i}":">",s}text(e){return e}}class Cg{strong(e){return e}em(e){return e}codespan(e){return e}del(e){return e}html(e){return e}text(e){return e}link(e,n,i){return""+i}image(e,n,i){return""+i}br(){return""}}class Sg{constructor(){l(this,"seen");this.seen={}}serialize(e){return e.toLowerCase().trim().replace(/<[!\/a-z].*?>/ig,"").replace(/[\u2000-\u206F\u2E00-\u2E7F\\'!"#$%&()*+,./:;<=>?@[\]^`{|}~]/g,"").replace(/\s/g,"-")}getNextSafeSlug(e,n){let i=e,r=0;if(this.seen.hasOwnProperty(i)){r=this.seen[e];do r++,i=e+"-"+r;while(this.seen.hasOwnProperty(i))}return n||(this.seen[e]=r,this.seen[i]=0),i}slug(e,n={}){const i=this.serialize(e);return this.getNextSafeSlug(i,n.dryrun)}}class Fn{constructor(e){l(this,"options");l(this,"renderer");l(this,"textRenderer");l(this,"slugger");this.options=e||Oi,this.options.renderer=this.options.renderer||new Sc,this.renderer=this.options.renderer,this.renderer.options=this.options,this.textRenderer=new Cg,this.slugger=new Sg}static parse(e,n){return new Fn(n).parse(e)}static parseInline(e,n){return new Fn(n).parseInline(e)}parse(e,n=!0){let i="";for(let r=0;r0&&d.tokens[0].type==="paragraph"?(d.tokens[0].text=_+" "+d.tokens[0].text,d.tokens[0].tokens&&d.tokens[0].tokens.length>0&&d.tokens[0].tokens[0].type==="text"&&(d.tokens[0].tokens[0].text=_+" "+d.tokens[0].tokens[0].text)):d.tokens.unshift({type:"text",text:_}):y+=_}y+=this.parse(d.tokens,u),h+=this.renderer.listitem(y,m,!!p)}i+=this.renderer.list(h,a,c);continue}case"html":{const o=s;i+=this.renderer.html(o.text,o.block);continue}case"paragraph":{const o=s;i+=this.renderer.paragraph(this.parseInline(o.tokens));continue}case"text":{let o=s,a=o.tokens?this.parseInline(o.tokens):o.text;for(;r+1{i=i.concat(this.walkTokens(s[o],n))}):s.tokens&&(i=i.concat(this.walkTokens(s.tokens,n)))}}return i}use(...e){const n=this.defaults.extensions||{renderers:{},childTokens:{}};return e.forEach(i=>{const r={...i};if(r.async=this.defaults.async||r.async||!1,i.extensions&&(i.extensions.forEach(s=>{if(!s.name)throw new Error("extension name required");if("renderer"in s){const o=n.renderers[s.name];o?n.renderers[s.name]=function(...a){let c=s.renderer.apply(this,a);return c===!1&&(c=o.apply(this,a)),c}:n.renderers[s.name]=s.renderer}if("tokenizer"in s){if(!s.level||s.level!=="block"&&s.level!=="inline")throw new Error("extension level must be 'block' or 'inline'");const o=n[s.level];o?o.unshift(s.tokenizer):n[s.level]=[s.tokenizer],s.start&&(s.level==="block"?n.startBlock?n.startBlock.push(s.start):n.startBlock=[s.start]:s.level==="inline"&&(n.startInline?n.startInline.push(s.start):n.startInline=[s.start]))}"childTokens"in s&&s.childTokens&&(n.childTokens[s.name]=s.childTokens)}),r.extensions=n),i.renderer){const s=this.defaults.renderer||new Sc(this.defaults);for(const o in i.renderer){const a=i.renderer[o],c=o,u=s[c];s[c]=(...h)=>{let f=a.apply(s,h);return f===!1&&(f=u.apply(s,h)),f||""}}r.renderer=s}if(i.tokenizer){const s=this.defaults.tokenizer||new Cc(this.defaults);for(const o in i.tokenizer){const a=i.tokenizer[o],c=o,u=s[c];s[c]=(...h)=>{let f=a.apply(s,h);return f===!1&&(f=u.apply(s,h)),f}}r.tokenizer=s}if(i.hooks){const s=this.defaults.hooks||new wo;for(const o in i.hooks){const a=i.hooks[o],c=o,u=s[c];wo.passThroughHooks.has(o)?s[c]=h=>{if(this.defaults.async)return Promise.resolve(a.call(s,h)).then(d=>u.call(s,d));const f=a.call(s,h);return u.call(s,f)}:s[c]=(...h)=>{let f=a.apply(s,h);return f===!1&&(f=u.apply(s,h)),f}}r.hooks=s}if(i.walkTokens){const s=this.defaults.walkTokens,o=i.walkTokens;r.walkTokens=function(a){let c=[];return c.push(o.call(this,a)),s&&(c=c.concat(s.call(this,a))),c}}this.defaults={...this.defaults,...r}}),this}setOptions(e){return this.defaults={...this.defaults,...e},this}}Ti=new WeakSet,Nd=function(e,n){return(i,r,s)=>{typeof r=="function"&&(s=r,r=null);const o={...r},a={...this.defaults,...o};this.defaults.async===!0&&o.async===!1&&(a.silent||console.warn("marked(): The async option was set to true by an extension. The async: false option sent to parse will be ignored."),a.async=!0);const c=Ta(this,Ti,VA).call(this,!!a.silent,!!a.async,s);if(typeof i>"u"||i===null)return c(new Error("marked(): input parameter is undefined or null"));if(typeof i!="string")return c(new Error("marked(): input parameter is of type "+Object.prototype.toString.call(i)+", string expected"));if(D6(a,s),a.hooks&&(a.hooks.options=a),s){const u=s,h=a.highlight;let f;try{a.hooks&&(i=a.hooks.preprocess(i)),f=e(i,a)}catch(m){return c(m)}const d=m=>{let y;if(!m)try{a.walkTokens&&this.walkTokens(f,a.walkTokens),y=n(f,a),a.hooks&&(y=a.hooks.postprocess(y))}catch(_){m=_}return a.highlight=h,m?c(m):u(null,y)};if(!h||h.length<3||(delete a.highlight,!f.length))return d();let p=0;this.walkTokens(f,m=>{m.type==="code"&&(p++,setTimeout(()=>{h(m.text,m.lang,(y,_)=>{if(y)return d(y);_!=null&&_!==m.text&&(m.text=_,m.escaped=!0),p--,p===0&&d()})},0))}),p===0&&d();return}if(a.async)return Promise.resolve(a.hooks?a.hooks.preprocess(i):i).then(u=>e(u,a)).then(u=>a.walkTokens?Promise.all(this.walkTokens(u,a.walkTokens)).then(()=>u):u).then(u=>n(u,a)).then(u=>a.hooks?a.hooks.postprocess(u):u).catch(c);try{a.hooks&&(i=a.hooks.preprocess(i));const u=e(i,a);a.walkTokens&&this.walkTokens(u,a.walkTokens);let h=n(u,a);return a.hooks&&(h=a.hooks.postprocess(h)),h}catch(u){return c(u)}}},VA=function(e,n,i){return r=>{if(r.message+=` +Please report this to https://github.com/markedjs/marked.`,e){const s="

    An error occurred:

    "+pt(r.message+"",!0)+"
    ";if(n)return Promise.resolve(s);if(i){i(null,s);return}return s}if(n)return Promise.reject(r);if(i){i(r);return}throw r}};const Si=new R6;function Se(t,e,n){return Si.parse(t,e,n)}Se.options=Se.setOptions=function(t){return Si.setOptions(t),Se.defaults=Si.defaults,jA(Se.defaults),Se};Se.getDefaults=wg;Se.defaults=Oi;Se.use=function(...t){return Si.use(...t),Se.defaults=Si.defaults,jA(Se.defaults),Se};Se.walkTokens=function(t,e){return Si.walkTokens(t,e)};Se.parseInline=Si.parseInline;Se.Parser=Fn;Se.parser=Fn.parse;Se.Renderer=Sc;Se.TextRenderer=Cg;Se.Lexer=Rn;Se.lexer=Rn.lex;Se.Tokenizer=Cc;Se.Slugger=Sg;Se.Hooks=wo;Se.parse=Se;Se.options;Se.setOptions;Se.use;Se.walkTokens;Se.parseInline;Fn.parse;Rn.lex;function F6(){return{mangle:!1,walkTokens(t){if(t.type!=="link"||!t.href.startsWith("mailto:"))return;const e=t.href.substring(7),n=O6(e);t.href=`mailto:${n}`,!(t.tokens.length!==1||t.tokens[0].type!=="text"||t.tokens[0].text!==e)&&(t.text=n,t.tokens[0].text=n)}}}function O6(t){let e="",n,i;const r=t.length;for(n=0;n.5&&(i="x"+i.toString(16)),e+="&#"+i+";";return e}/** + * @license Angular v19.0.5 + * (c) 2010-2024 Google LLC. https://angular.io/ + * License: MIT + */function P6(t){t||(Ap(),t=g(na));const e=new xe(n=>t.onDestroy(n.next.bind(n)));return n=>n.pipe(Ln(e))}const N6=["container"];let Tg=(()=>{const n=class n{constructor(){this.document=g(we),this.location=g(Vs),this.router=g(Fi)}handleNavigation(r){if(r instanceof HTMLAnchorElement&&B6(r,this.document)&&M6(r)&&!L6(r)){const{pathname:s,search:o,hash:a}=r,c=this.location.normalize(`${s}${o}${a}`);return this.router.navigateByUrl(c),!1}return!0}};n.ɵfac=function(s){return new(s||n)},n.ɵdir=Ge({type:n,selectors:[["","analogAnchorNavigation",""]],hostBindings:function(s,o){s&1&&mt("click",function(c){return o.handleNavigation(c.target)})}});let e=n;return e})();function L6(t){return t.getAttribute("download")!==null}function M6(t){return!t.target||t.target==="_self"}function B6(t,e){return t.host===e.location.host&&t.protocol===e.location.protocol}const j6=()=>({"/src/content/blog/2019-07-progressive-web-app.md":SU,"/src/content/blog/2019-11-ngx-semantic-version.md":TU,"/src/content/blog/2020-01-angular-scully.md":AU,"/src/content/blog/2020-02-angular9.md":kU,"/src/content/blog/2020-03-dig-deeper-into-scully-ssg.md":DU,"/src/content/blog/2020-06-angular10.md":IU,"/src/content/blog/2020-08-my-development-setup.md":xU,"/src/content/blog/2020-09-angular-schematics-common-helpers.md":RU,"/src/content/blog/2020-11-angular11.md":FU,"/src/content/blog/2020-11-twa.md":OU,"/src/content/blog/2021-06-angular12.md":PU,"/src/content/blog/2021-11-angular13.md":NU,"/src/content/blog/2022-06-angular14.md":LU,"/src/content/blog/2022-11-angular15.md":MU,"/src/content/blog/2022-12-vue-route-based-nav-menu.md":BU,"/src/content/blog/2023-05-angular16.md":jU,"/src/content/blog/2023-10-vue2-vue3-migration.md":zU,"/src/content/blog/2023-11-angular17.md":HU,"/src/content/blog/2024-05-modern-angular-bm.md":UU,"/src/content/blog/2024-06-angular18.md":VU,"/src/content/blog/2024-07-angular-push-notifications.md":$U,"/src/content/blog/2024-11-angular19.md":WU,"/src/content/projects/2019-11-20-angular-tag-cloud-module.md":GU,"/src/content/projects/2020-02-02-vscode-file-tree-to-text-generator.md":qU,"/src/content/projects/2020-02-26-scully-plugin-toc.md":ZU,"/src/content/projects/2020-03-12-dotfiles.md":YU,"/src/content/projects/2020-04-09-ngx-semantic-version.md":KU,"/src/content/projects/2020-05-22-vscode-code-review.md":QU,"/src/content/projects/2020-09-12-scully-plugin-mermaid.md":XU,"/src/content/projects/2021-09-14-ngx-lipsum.md":JU,"/src/content/projects/2023-04-05-vue3-openlayers.md":eV,"/src/content/projects/2023-12-29-analog-publish-gh-pages.md":tV,"/src/content/talks/2023-11-20-einfuehrung-barrierefreiheit-web.md":nV,"/src/content/talks/2024-01-16-accessibility-in-angular.md":rV}),z6=()=>({"/src/content/blog/2019-07-progressive-web-app.md":()=>M(()=>import("./2019-07-progressive-web-app-BfG9ycTX.js"),[]).then(e=>e.default),"/src/content/blog/2019-11-ngx-semantic-version.md":()=>M(()=>import("./2019-11-ngx-semantic-version-DjbCChSC.js"),[]).then(e=>e.default),"/src/content/blog/2020-01-angular-scully.md":()=>M(()=>import("./2020-01-angular-scully-DknRVLvX.js"),[]).then(e=>e.default),"/src/content/blog/2020-02-angular9.md":()=>M(()=>import("./2020-02-angular9-BsHiAmHR.js"),[]).then(e=>e.default),"/src/content/blog/2020-03-dig-deeper-into-scully-ssg.md":()=>M(()=>import("./2020-03-dig-deeper-into-scully-ssg-CGEsmJ5D.js"),[]).then(e=>e.default),"/src/content/blog/2020-06-angular10.md":()=>M(()=>import("./2020-06-angular10-D5EAafI7.js"),[]).then(e=>e.default),"/src/content/blog/2020-08-my-development-setup.md":()=>M(()=>import("./2020-08-my-development-setup-DkTVmgfw.js"),[]).then(e=>e.default),"/src/content/blog/2020-09-angular-schematics-common-helpers.md":()=>M(()=>import("./2020-09-angular-schematics-common-helpers-DQZx-Np-.js"),[]).then(e=>e.default),"/src/content/blog/2020-11-angular11.md":()=>M(()=>import("./2020-11-angular11-CpvOuYVb.js"),[]).then(e=>e.default),"/src/content/blog/2020-11-twa.md":()=>M(()=>import("./2020-11-twa-Ba-oUIuh.js"),[]).then(e=>e.default),"/src/content/blog/2021-06-angular12.md":()=>M(()=>import("./2021-06-angular12-Bz5-cQEb.js"),[]).then(e=>e.default),"/src/content/blog/2021-11-angular13.md":()=>M(()=>import("./2021-11-angular13-B0642yDu.js"),[]).then(e=>e.default),"/src/content/blog/2022-06-angular14.md":()=>M(()=>import("./2022-06-angular14-pxhso9J3.js"),[]).then(e=>e.default),"/src/content/blog/2022-11-angular15.md":()=>M(()=>import("./2022-11-angular15-BMz8-QKb.js"),[]).then(e=>e.default),"/src/content/blog/2022-12-vue-route-based-nav-menu.md":()=>M(()=>import("./2022-12-vue-route-based-nav-menu-BXQuWdx3.js"),[]).then(e=>e.default),"/src/content/blog/2023-05-angular16.md":()=>M(()=>import("./2023-05-angular16-Tmm4iENP.js"),[]).then(e=>e.default),"/src/content/blog/2023-10-vue2-vue3-migration.md":()=>M(()=>import("./2023-10-vue2-vue3-migration-DtQUtC3O.js"),[]).then(e=>e.default),"/src/content/blog/2023-11-angular17.md":()=>M(()=>import("./2023-11-angular17-CZIpHVew.js"),[]).then(e=>e.default),"/src/content/blog/2024-05-modern-angular-bm.md":()=>M(()=>import("./2024-05-modern-angular-bm-C3SrdMxH.js"),[]).then(e=>e.default),"/src/content/blog/2024-06-angular18.md":()=>M(()=>import("./2024-06-angular18-BefWe54R.js"),[]).then(e=>e.default),"/src/content/blog/2024-07-angular-push-notifications.md":()=>M(()=>import("./2024-07-angular-push-notifications-C4TXHUcO.js"),[]).then(e=>e.default),"/src/content/blog/2024-11-angular19.md":()=>M(()=>import("./2024-11-angular19-C7RcREZl.js"),[]).then(e=>e.default),"/src/content/projects/2019-11-20-angular-tag-cloud-module.md":()=>M(()=>import("./2019-11-20-angular-tag-cloud-module-ZeuwSo_T.js"),[]).then(e=>e.default),"/src/content/projects/2020-02-02-vscode-file-tree-to-text-generator.md":()=>M(()=>import("./2020-02-02-vscode-file-tree-to-text-generator-CGjK4Tnk.js"),[]).then(e=>e.default),"/src/content/projects/2020-02-26-scully-plugin-toc.md":()=>M(()=>import("./2020-02-26-scully-plugin-toc-BTga7qO0.js"),[]).then(e=>e.default),"/src/content/projects/2020-03-12-dotfiles.md":()=>M(()=>import("./2020-03-12-dotfiles-RIMXoDbX.js"),[]).then(e=>e.default),"/src/content/projects/2020-04-09-ngx-semantic-version.md":()=>M(()=>import("./2020-04-09-ngx-semantic-version-xRBVxcYT.js"),[]).then(e=>e.default),"/src/content/projects/2020-05-22-vscode-code-review.md":()=>M(()=>import("./2020-05-22-vscode-code-review-M0aEEAaq.js"),[]).then(e=>e.default),"/src/content/projects/2020-09-12-scully-plugin-mermaid.md":()=>M(()=>import("./2020-09-12-scully-plugin-mermaid-H0uwjVS8.js"),[]).then(e=>e.default),"/src/content/projects/2021-09-14-ngx-lipsum.md":()=>M(()=>import("./2021-09-14-ngx-lipsum-B-kOlESX.js"),[]).then(e=>e.default),"/src/content/projects/2023-04-05-vue3-openlayers.md":()=>M(()=>import("./2023-04-05-vue3-openlayers-CSGWQytr.js"),[]).then(e=>e.default),"/src/content/projects/2023-12-29-analog-publish-gh-pages.md":()=>M(()=>import("./2023-12-29-analog-publish-gh-pages-DFCPSQAw.js"),[]).then(e=>e.default),"/src/content/talks/2023-11-20-einfuehrung-barrierefreiheit-web.md":()=>M(()=>import("./2023-11-20-einfuehrung-barrierefreiheit-web-Dr0M48LC.js"),[]).then(e=>e.default),"/src/content/talks/2024-01-16-accessibility-in-angular.md":()=>M(()=>import("./2024-01-16-accessibility-in-angular-B6Ndc1Hv.js"),[]).then(e=>e.default)}),H6=()=>({});function U6(t){const e=t.match(/^(\\|\/)(.+(\\|\/))*(.+)\.(.+)$/);return e?.length?e[4]:""}const $A=new B("@analogjs/content Content Files List",{providedIn:"root",factory(){const t=j6();return Object.keys(t).map(e=>{const n=t[e],i=n.slug;return{filename:e,attributes:n,slug:encodeURI(i||U6(e))}})}}),V6=new B("@analogjs/content Content Files",{providedIn:"root",factory(){const t=z6(),e=H6(),n={...t,...e},i=g($A),r={};i.forEach(o=>{const a=o.filename.split("/"),c=a.slice(0,a.length-1).join("/"),u=a[a.length-1].split(".");r[o.filename]=`${c}/${o.slug}.${u[u.length-1]}`});const s={};return Object.entries(n).forEach(o=>{const a=o[0],c=o[1],u=r[a];if(u!==void 0){const h=u.replace(/^\/(.*?)\/content/,"/src/content");s[h]=c}}),s}});function WA(t){const{body:e,attributes:n}=c6(t);return{content:e,attributes:n}}let Tc=(()=>{var n;const i=class i{constructor(){Sa(this,n,g(zr))}addRenderTask(){return Ks(this,n).add()}clearRenderTask(s){typeof s=="function"?s():typeof Ks(this,n).remove=="function"&&Ks(this,n).remove(s)}};n=new WeakMap,i.ɵfac=function(o){return new(o||i)},i.ɵprov=O({token:i,factory:i.ɵfac});let e=i;return e})();function y0(t,e,n,i,r){const s=`/src/content/${e}${n}`,o=t[`${s}.md`]??t[`${s}.agx`];return o?(r.addRenderTask(),new xe(a=>{o().then(u=>{a.next(u),a.complete()})}).pipe(ue(a=>{if(typeof a=="string"){const{content:c,attributes:u}=WA(a);return{filename:s,slug:n,attributes:u,content:c}}return{filename:s,slug:n,attributes:a.metadata,content:a.default}}))):G({filename:s,attributes:{},slug:"",content:i})}function $6(t="slug",e="No Content Found"){const n=g(V6),i=g(Tc),r=i.addRenderTask();if(typeof t=="string"||"param"in t){const s=typeof t=="string"?"":`${t.subdirectory}/`,o=g(Vr),a=typeof t=="string"?t:t.param;return o.paramMap.pipe(ue(c=>c.get(a)),Zt(c=>c?y0(n,s,c,e,i):G({filename:"",slug:"",attributes:{},content:e})),nt(()=>i.clearRenderTask(r)))}else return y0(n,"",t.customFilename,e,i).pipe(nt(()=>i.clearRenderTask(r)))}let wa=(()=>{const n=class n{async render(r){return r}getContentHeadings(){return[]}enhance(){}};n.ɵfac=function(s){return new(s||n)},n.ɵprov=O({token:n,factory:n.ɵfac});let e=n;return e})();class Ag{constructor(){this.transferState=g(Ms),this.contentId=0}generateHash(e){let n=0;for(let i=0,r=e.length;i{const n=class n{};n.ɵfac=function(s){return new(s||n)},n.ɵprov=O({token:n,factory:n.ɵfac});let e=n;return e})();function G6(t){return{provide:kg,...t}}let GA=(()=>{const n=class n{constructor(){this.highlighter=g(kg,{optional:!0});const r=new Se.Renderer;r.code=(o,a)=>a==="mermaid"?'
    '+o+"
    ":a?this.highlighter?.augmentCodeBlock?this.highlighter?.augmentCodeBlock(o,a):`
    ${o}
    `:"
    "+o+"
    ";const s=[d6(),F6()];this.highlighter&&s.push(this.highlighter.getHighlightExtension()),Se.use(...s,{renderer:r,pedantic:!1,gfm:!0,breaks:!1,mangle:!1}),this.marked=Se}getMarkedInstance(){return this.marked}};n.ɵfac=function(s){return new(s||n)},n.ɵprov=O({token:n,factory:n.ɵfac});let e=n;return e})(),q6=(()=>{var n;const i=class i{constructor(){Sa(this,n,g(GA,{self:!0}))}async render(s){return Ks(this,n).getMarkedInstance().parse(s)}getContentHeadings(){return p6()}enhance(){}};n=new WeakMap,i.ɵfac=function(o){return new(o||i)},i.ɵprov=O({token:i,factory:i.ɵfac});let e=i;return e})();const Z6=[{provide:wa,useClass:Ag}];function qA(t){return[Z6,t?.loadMermaid?[{provide:Dg,useFactory:t.loadMermaid}]:[]]}function ZA(...t){return[{provide:Tc,useClass:Tc},...t]}const Dg=new B("mermaid_import");let Y6=(()=>{const n=class n{constructor(){this.sanitizer=g($s),this.route=g(Vr),this.contentRenderer=g(wa),this.content=this.sanitizer.bypassSecurityTrustHtml(this.route.snapshot.data.renderedAnalogContent),this.classes="analog-markdown-route"}ngAfterViewChecked(){this.contentRenderer.enhance()}};n.ɵfac=function(s){return new(s||n)},n.ɵcmp=Ye({type:n,selectors:[["analog-markdown-route"]],inputs:{classes:"classes"},features:[EC([Tg])],decls:1,vars:3,consts:[[3,"innerHTML"]],template:function(s,o){s&1&&pn(0,"div",0),s&2&&(FC(o.classes),ha("innerHTML",o.content,la))},encapsulation:2});let e=n;return e})(),K6=(()=>{const n=class n{constructor(){this.sanitizer=g($s),this.route=g(Vr),this.zone=g(ge),this.platformId=g(Jt),this.mermaidImport=g(Dg,{optional:!0}),this.content$=this.getContentSource(),this.classes="analog-markdown",this.contentRenderer=g(wa),wu(this.platformId)&&this.mermaidImport&&this.loadMermaid(this.mermaidImport)}ngOnInit(){this.updateContent()}ngOnChanges(){this.updateContent()}updateContent(){this.content&&typeof this.content!="string"?(this.container.clear(),this.container.createComponent(this.content).changeDetectorRef.detectChanges()):this.content$=this.getContentSource()}getContentSource(){return this.route.data.pipe(ue(r=>this.content??r._analogContent),At(r=>typeof r=="string"),ht(r=>this.renderContent(r)),ue(r=>this.sanitizer.bypassSecurityTrustHtml(r)),ii(r=>G(`There was an error ${r}`)))}async renderContent(r){return this.contentRenderer.render(r)}ngAfterViewChecked(){this.contentRenderer.enhance(),this.zone.runOutsideAngular(()=>this.mermaid?.default.run())}loadMermaid(r){this.zone.runOutsideAngular(()=>ot(r).pipe(P6()).subscribe(s=>{this.mermaid=s,this.mermaid.default.initialize({startOnLoad:!1}),this.mermaid?.default.run()}))}};n.ɵfac=function(s){return new(s||n)},n.ɵcmp=Ye({type:n,selectors:[["analog-markdown"]],viewQuery:function(s,o){if(s&1&&Am(N6,7,ur),s&2){let a;yu(a=_u())&&(o.container=a.first)}},inputs:{content:"content",classes:"classes"},features:[EC([Tg]),Ht],decls:3,vars:5,consts:[["container",""],[3,"innerHTML"]],template:function(s,o){s&1&&(pn(0,"div",1,0),$2(2,"async")),s&2&&(FC(o.classes),ha("innerHTML",G2(2,3,o.content$),la))},dependencies:[XN],encapsulation:2});let e=n;return e})();const Q6=Object.freeze(Object.defineProperty({__proto__:null,AnchorNavigationDirective:Tg,ContentRenderer:wa,MERMAID_IMPORT_TOKEN:Dg,MarkdownComponent:K6,MarkdownContentRendererService:q6,MarkdownRouteComponent:Y6,MarkedContentHighlighter:kg,MarkedSetupService:GA,NoopContentRenderer:Ag,injectContent:$6,injectContentFiles:W6,parseRawContentFile:WA,provideContent:ZA,withHighlighter:G6,withMarkdownRenderer:qA},Symbol.toStringTag,{value:"Module"})),X6=new B("@analogjs/router Server Request");new B("@analogjs/router Server Response");const J6=new B("@analogjs/router Base URL"),YA=new B("@analogjs/router API Prefix");function e$(){return g(X6,{optional:!0})}function t$(){return g(J6,{optional:!0})}function n$(){return g(YA)}const KA={BASE_URL:"/",DEV:!1,MODE:"production",PROD:!0,SSR:!1,VITE_CJS_IGNORE_WARNING:"true"},Ld=Symbol("@analogjs/router Route Meta Tags Key"),r$="charset",i$="http-equiv",s$="name",o$="property";function a$(){const t=g(Fi),e=g(hM);t.events.pipe(At(n=>n instanceof sr)).subscribe(()=>{const n=l$(t.routerState.snapshot.root);for(const i in n){const r=n[i];e.updateTag(r,i)}})}function l$(t){const e={};let n=t;for(;n;){const i=n.data[Ld]??[];for(const r of i)e[c$(r)]=r;n=n.firstChild}return e}function c$(t){return t.name?`${s$}="${t.name}"`:t.property?`${o$}="${t.property}"`:t.httpEquiv?`${i$}="${t.httpEquiv}"`:r$}const Ig=Symbol("@analogjs/router Analog Route Metadata Key");let u$={};function h$(t){const e=t.routeConfig,n=n$(),i=t$(),{queryParams:r,fragment:s,params:o,parent:a}=t,c=a?.url.map(h=>h.path).join("/")||"",u=new URL("",KA.VITE_ANALOG_PUBLIC_BASE_URL||i||(typeof window<"u"&&window.location.origin?window.location.origin:""));return u.pathname=`${u.pathname.endsWith("/")?u.pathname:u.pathname+"/"}${n}/_analog${e[Ig].endpoint}`,u.search=`${new URLSearchParams(r).toString()}`,u.hash=s??"",Object.keys(o).forEach(h=>{u.pathname=u.pathname.replace(`[${h}]`,o[h])}),u.pathname=u.pathname.replace("**",c),u}function f$(t){if(t&&d$(t))return t;let{meta:e,...n}=t??{};return Array.isArray(e)?n.data={...n.data,[Ld]:e}:typeof e=="function"&&(n.resolve={...n.resolve,[Ld]:e}),n||(n={}),n.runGuardsAndResolvers=n.runGuardsAndResolvers??"paramsOrQueryParamsChange",n.resolve={...n.resolve,load:async i=>{const r=i.routeConfig;if(u$[r[Ig].endpointKey]){const s=g(aS),o=h$(i);return KA.VITE_ANALOG_PUBLIC_BASE_URL&&globalThis.$fetch?globalThis.$fetch(o.pathname):z1(s.get(`${o.href}`))}return{}}},n}function d$(t){return!!t.redirectTo}const p$=typeof Zone<"u"&&!!Zone.root;function m$(t){return async()=>{const e=()=>Promise.all([M(()=>Promise.resolve().then(()=>Q6),void 0),t()]),[{parseRawContentFile:n,MarkdownRouteComponent:i,ContentRenderer:r},s]=await(p$?Zone.root.run(e):e()),{content:o,attributes:a}=n(s),{title:c,meta:u}=a;return{default:i,routeMeta:{data:{_analogContent:o},title:c,meta:u,resolve:{renderedAnalogContent:async()=>g(r).render(o)}}}}}const g$=".server.ts";let QA={"/src/app/pages/contact.page.ts":()=>M(()=>import("./contact.page-C-JMbwcB.js"),[]),"/src/app/pages/imprint.page.ts":()=>M(()=>import("./imprint.page-B1y0VG2M.js"),[]),"/src/app/pages/index.page.ts":()=>M(()=>import("./index.page-DWrTCYB7.js"),__vite__mapDeps([0,1])),"/src/app/pages/recruitment.page.ts":()=>M(()=>import("./recruitment.page-UzsIfMQg.js"),[]),"/src/app/pages/blog/[slug].page.ts":()=>M(()=>import("./_slug_.page-D8Ukg_aG.js"),__vite__mapDeps([2,3,4])),"/src/app/pages/blog/index.page.ts":()=>M(()=>import("./index.page-D_NMszXq.js"),__vite__mapDeps([5,1])),"/src/app/pages/projects/[slug].page.ts":()=>M(()=>import("./_slug_.page-BDKwNsE7.js"),__vite__mapDeps([6,4])),"/src/app/pages/projects/index.page.ts":()=>M(()=>import("./index.page-DQrjxOhH.js"),__vite__mapDeps([7,1])),"/src/app/pages/talks/[slug].page.ts":()=>M(()=>import("./_slug_.page-RrGMKIoL.js"),__vite__mapDeps([8,3,4])),"/src/app/pages/talks/index.page.ts":()=>M(()=>import("./index.page-CuA7a2QU.js"),__vite__mapDeps([9,1]))},XA={"/src/content/blog/2019-07-progressive-web-app.md":()=>M(()=>import("./2019-07-progressive-web-app-BfG9ycTX.js"),[]).then(t=>t.default),"/src/content/blog/2019-11-ngx-semantic-version.md":()=>M(()=>import("./2019-11-ngx-semantic-version-DjbCChSC.js"),[]).then(t=>t.default),"/src/content/blog/2020-01-angular-scully.md":()=>M(()=>import("./2020-01-angular-scully-DknRVLvX.js"),[]).then(t=>t.default),"/src/content/blog/2020-02-angular9.md":()=>M(()=>import("./2020-02-angular9-BsHiAmHR.js"),[]).then(t=>t.default),"/src/content/blog/2020-03-dig-deeper-into-scully-ssg.md":()=>M(()=>import("./2020-03-dig-deeper-into-scully-ssg-CGEsmJ5D.js"),[]).then(t=>t.default),"/src/content/blog/2020-06-angular10.md":()=>M(()=>import("./2020-06-angular10-D5EAafI7.js"),[]).then(t=>t.default),"/src/content/blog/2020-08-my-development-setup.md":()=>M(()=>import("./2020-08-my-development-setup-DkTVmgfw.js"),[]).then(t=>t.default),"/src/content/blog/2020-09-angular-schematics-common-helpers.md":()=>M(()=>import("./2020-09-angular-schematics-common-helpers-DQZx-Np-.js"),[]).then(t=>t.default),"/src/content/blog/2020-11-angular11.md":()=>M(()=>import("./2020-11-angular11-CpvOuYVb.js"),[]).then(t=>t.default),"/src/content/blog/2020-11-twa.md":()=>M(()=>import("./2020-11-twa-Ba-oUIuh.js"),[]).then(t=>t.default),"/src/content/blog/2021-06-angular12.md":()=>M(()=>import("./2021-06-angular12-Bz5-cQEb.js"),[]).then(t=>t.default),"/src/content/blog/2021-11-angular13.md":()=>M(()=>import("./2021-11-angular13-B0642yDu.js"),[]).then(t=>t.default),"/src/content/blog/2022-06-angular14.md":()=>M(()=>import("./2022-06-angular14-pxhso9J3.js"),[]).then(t=>t.default),"/src/content/blog/2022-11-angular15.md":()=>M(()=>import("./2022-11-angular15-BMz8-QKb.js"),[]).then(t=>t.default),"/src/content/blog/2022-12-vue-route-based-nav-menu.md":()=>M(()=>import("./2022-12-vue-route-based-nav-menu-BXQuWdx3.js"),[]).then(t=>t.default),"/src/content/blog/2023-05-angular16.md":()=>M(()=>import("./2023-05-angular16-Tmm4iENP.js"),[]).then(t=>t.default),"/src/content/blog/2023-10-vue2-vue3-migration.md":()=>M(()=>import("./2023-10-vue2-vue3-migration-DtQUtC3O.js"),[]).then(t=>t.default),"/src/content/blog/2023-11-angular17.md":()=>M(()=>import("./2023-11-angular17-CZIpHVew.js"),[]).then(t=>t.default),"/src/content/blog/2024-05-modern-angular-bm.md":()=>M(()=>import("./2024-05-modern-angular-bm-C3SrdMxH.js"),[]).then(t=>t.default),"/src/content/blog/2024-06-angular18.md":()=>M(()=>import("./2024-06-angular18-BefWe54R.js"),[]).then(t=>t.default),"/src/content/blog/2024-07-angular-push-notifications.md":()=>M(()=>import("./2024-07-angular-push-notifications-C4TXHUcO.js"),[]).then(t=>t.default),"/src/content/blog/2024-11-angular19.md":()=>M(()=>import("./2024-11-angular19-C7RcREZl.js"),[]).then(t=>t.default),"/src/content/projects/2019-11-20-angular-tag-cloud-module.md":()=>M(()=>import("./2019-11-20-angular-tag-cloud-module-ZeuwSo_T.js"),[]).then(t=>t.default),"/src/content/projects/2020-02-02-vscode-file-tree-to-text-generator.md":()=>M(()=>import("./2020-02-02-vscode-file-tree-to-text-generator-CGjK4Tnk.js"),[]).then(t=>t.default),"/src/content/projects/2020-02-26-scully-plugin-toc.md":()=>M(()=>import("./2020-02-26-scully-plugin-toc-BTga7qO0.js"),[]).then(t=>t.default),"/src/content/projects/2020-03-12-dotfiles.md":()=>M(()=>import("./2020-03-12-dotfiles-RIMXoDbX.js"),[]).then(t=>t.default),"/src/content/projects/2020-04-09-ngx-semantic-version.md":()=>M(()=>import("./2020-04-09-ngx-semantic-version-xRBVxcYT.js"),[]).then(t=>t.default),"/src/content/projects/2020-05-22-vscode-code-review.md":()=>M(()=>import("./2020-05-22-vscode-code-review-M0aEEAaq.js"),[]).then(t=>t.default),"/src/content/projects/2020-09-12-scully-plugin-mermaid.md":()=>M(()=>import("./2020-09-12-scully-plugin-mermaid-H0uwjVS8.js"),[]).then(t=>t.default),"/src/content/projects/2021-09-14-ngx-lipsum.md":()=>M(()=>import("./2021-09-14-ngx-lipsum-B-kOlESX.js"),[]).then(t=>t.default),"/src/content/projects/2023-04-05-vue3-openlayers.md":()=>M(()=>import("./2023-04-05-vue3-openlayers-CSGWQytr.js"),[]).then(t=>t.default),"/src/content/projects/2023-12-29-analog-publish-gh-pages.md":()=>M(()=>import("./2023-12-29-analog-publish-gh-pages-DFCPSQAw.js"),[]).then(t=>t.default),"/src/content/talks/2023-11-20-einfuehrung-barrierefreiheit-web.md":()=>M(()=>import("./2023-11-20-einfuehrung-barrierefreiheit-web-Dr0M48LC.js"),[]).then(t=>t.default),"/src/content/talks/2024-01-16-accessibility-in-angular.md":()=>M(()=>import("./2024-01-16-accessibility-in-angular-B6Ndc1Hv.js"),[]).then(t=>t.default)};function JA(t,e=!1){var c,u;const n=Object.keys(t);if(n.length===0)return[];const i=n.reduce((h,f)=>{const d=y$(f),p=d.split("/"),m=p.length-1,y=p[m],_=p.slice(0,m);return{...h,[m]:{...h[m],[d]:{filename:f,rawSegment:y,ancestorRawSegments:_,segment:_0(y),level:m,children:[]}}}},{}),r=Object.keys(i).map(Number),s=Math.max(...r);for(let h=s;h>0;h--){const f=i[h],d=Object.keys(f);for(const p of d){const m=f[p],y=m.ancestorRawSegments.join("/"),_=m.ancestorRawSegments.length-1,S=m.ancestorRawSegments[_];i[c=h-1]||(i[c]={}),(u=i[h-1])[y]||(u[y]={filename:null,rawSegment:S,ancestorRawSegments:m.ancestorRawSegments.slice(0,_),segment:_0(S),level:h-1,children:[]}),i[h-1][y].children.push(m)}}const o=i[0],a=Object.keys(o).map(h=>o[h]);return tk(a),ek(a,t,e)}function y$(t){return t.replace(/^(?:[a-zA-Z]:[\\/])?(.*?)[\\/](?:routes|pages)[\\/]|(?:[\\/](?:app[\\/](?:routes|pages)[\\/]))|(\.page\.(js|ts|analog|ag)$)|(\.(ts|md|analog|ag)$)/g,"").replace(/\[\.{3}.+\]/,"**").replace(/\[([^\]]+)\]/g,":$1")}function _0(t){return t.replace(/index|\(.*?\)/g,"").replace(/\.|\/+/g,"/").replace(/^\/+|\/+$/g,"")}function ek(t,e,n=!1){const i=[];for(const r of t){const s=r.children.length>0?ek(r.children,e,n):void 0;let o,a;if(r.filename){const u=r.filename.endsWith(".md");n||(o=u?m$(e[r.filename]):e[r.filename]);const h=r.filename.replace(/\.page\.(ts|analog|ag)$/,g$);a={endpoint:(r.filename.replace(/\.page\.(ts|analog|ag)$/,"").replace(/\[\.{3}.+\]/,"**").replace(/^(.*?)\/pages/,"/pages")||"").replace(/\./g,"/").replace(/\/\((.*?)\)$/,"/-$1-"),endpointKey:h}}const c=o?{path:r.segment,loadChildren:()=>o().then(u=>[{path:"",component:u.default,...f$(u.routeMeta),children:s,[Ig]:a}])}:{path:r.segment,...n?{filename:r.filename?r.filename:void 0,isLayout:!!(s&&s.length>0)}:{},children:s};i.push(c)}return i}function tk(t){t.sort((e,n)=>{let i=v0(e.segment),r=v0(n.segment);return e.children.length>n.children.length?i=`~${i}`:e.children.lengthr?1:-1});for(const e of t)tk(e.children)}function v0(t){return t.replace(":","~~").replace("**","~~~~")}const _$=JA({...QA,...XA});function v$(t,e,n=g(Jt),i=e$()){if(Cu(n)&&t.url.includes("/_analog/")){let r=new jt;const s=i?.headers.cookie;r=r.set("cookie",s??"");const o=t.clone({headers:r});return e(o)}else return e(t)}function b$(...t){const e=t.filter(i=>i.ɵkind>=100),n=t.filter(i=>i.ɵkind<100);return Xo([e.map(i=>i.ɵproviders),bj(_$,...n),{provide:vs,multi:!0,useValue:()=>a$()},{provide:Rm,multi:!0,useValue:v$},{provide:YA,useFactory(){return"api"}}])}new B("@analogjs/router debug routes",{providedIn:"root",factory(){return JA({...QA,...XA},!0)}});/** + * @license Angular v19.0.5 + * (c) 2010-2024 Google LLC. https://angular.io/ + * License: MIT + */function b0(t){return new x(3e3,!1)}function E$(){return new x(3100,!1)}function w$(){return new x(3101,!1)}function C$(t){return new x(3001,!1)}function S$(t){return new x(3003,!1)}function T$(t){return new x(3004,!1)}function A$(t,e){return new x(3005,!1)}function k$(){return new x(3006,!1)}function D$(){return new x(3007,!1)}function I$(t,e){return new x(3008,!1)}function x$(t){return new x(3002,!1)}function R$(t,e,n,i,r){return new x(3010,!1)}function F$(){return new x(3011,!1)}function O$(){return new x(3012,!1)}function P$(){return new x(3200,!1)}function N$(){return new x(3202,!1)}function L$(){return new x(3013,!1)}function M$(t){return new x(3014,!1)}function B$(t){return new x(3015,!1)}function j$(t){return new x(3016,!1)}function z$(t,e){return new x(3404,!1)}function H$(t){return new x(3502,!1)}function U$(t){return new x(3503,!1)}function V$(){return new x(3300,!1)}function $$(t){return new x(3504,!1)}function W$(t){return new x(3301,!1)}function G$(t,e){return new x(3302,!1)}function q$(t){return new x(3303,!1)}function Z$(t,e){return new x(3400,!1)}function Y$(t){return new x(3401,!1)}function K$(t){return new x(3402,!1)}function Q$(t,e){return new x(3505,!1)}function _r(t){switch(t.length){case 0:return new Ho;case 1:return t[0];default:return new OT(t)}}function nk(t,e,n=new Map,i=new Map){const r=[],s=[];let o=-1,a=null;if(e.forEach(c=>{const u=c.get("offset"),h=u==o,f=h&&a||new Map;c.forEach((d,p)=>{let m=p,y=d;if(p!=="offset")switch(m=t.normalizePropertyName(m,r),y){case sg:y=n.get(p);break;case Kn:y=i.get(p);break;default:y=t.normalizeStyleValue(p,m,y,r);break}f.set(m,y)}),h||s.push(f),a=f,o=u}),r.length)throw H$();return s}function xg(t,e,n,i){switch(e){case"start":t.onStart(()=>i(n&&Bh(n,"start",t)));break;case"done":t.onDone(()=>i(n&&Bh(n,"done",t)));break;case"destroy":t.onDestroy(()=>i(n&&Bh(n,"destroy",t)));break}}function Bh(t,e,n){const i=n.totalTime,r=!!n.disabled,s=Rg(t.element,t.triggerName,t.fromState,t.toState,e||t.phaseName,i??t.totalTime,r),o=t._data;return o!=null&&(s._data=o),s}function Rg(t,e,n,i,r="",s=0,o){return{element:t,triggerName:e,fromState:n,toState:i,phaseName:r,totalTime:s,disabled:!!o}}function Nt(t,e,n){let i=t.get(e);return i||t.set(e,i=n),i}function E0(t){const e=t.indexOf(":"),n=t.substring(1,e),i=t.slice(e+1);return[n,i]}const X$=typeof document>"u"?null:document.documentElement;function Fg(t){const e=t.parentNode||t.host||null;return e===X$?null:e}function J$(t){return t.substring(1,6)=="ebkit"}let Zr=null,w0=!1;function e8(t){Zr||(Zr=t8()||{},w0=Zr.style?"WebkitAppearance"in Zr.style:!1);let e=!0;return Zr.style&&!J$(t)&&(e=t in Zr.style,!e&&w0&&(e="Webkit"+t.charAt(0).toUpperCase()+t.slice(1)in Zr.style)),e}function t8(){return typeof document<"u"?document.body:null}function rk(t,e){for(;e;){if(e===t)return!0;e=Fg(e)}return!1}function ik(t,e,n){if(n)return Array.from(t.querySelectorAll(e));const i=t.querySelector(e);return i?[i]:[]}let n8=(()=>{const n=class n{validateStyleProperty(r){return e8(r)}containsElement(r,s){return rk(r,s)}getParentElement(r){return Fg(r)}query(r,s,o){return ik(r,s,o)}computeStyle(r,s,o){return o||""}animate(r,s,o,a,c,u=[],h){return new Ho(o,a)}};l(n,"ɵfac",function(s){return new(s||n)}),l(n,"ɵprov",O({token:n,factory:n.ɵfac}));let e=n;return e})(),sk=(()=>{class t{}return l(t,"NOOP",new n8),t})();class Og{}const r8=1e3,ok="{{",i8="}}",ak="ng-enter",Md="ng-leave",Xa="ng-trigger",Ac=".ng-trigger",C0="ng-animating",Bd=".ng-animating";function Un(t){if(typeof t=="number")return t;const e=t.match(/^(-?[\.\d]+)(m?s)/);return!e||e.length<2?0:jd(parseFloat(e[1]),e[2])}function jd(t,e){switch(e){case"s":return t*r8;default:return t}}function kc(t,e,n){return t.hasOwnProperty("duration")?t:s8(t,e,n)}function s8(t,e,n){const i=/^(-?[\.\d]+)(m?s)(?:\s+(-?[\.\d]+)(m?s))?(?:\s+([-a-z]+(?:\(.+?\))?))?$/i;let r,s=0,o="";if(typeof t=="string"){const a=t.match(i);if(a===null)return e.push(b0()),{duration:0,delay:0,easing:""};r=jd(parseFloat(a[1]),a[2]);const c=a[3];c!=null&&(s=jd(parseFloat(c),a[4]));const u=a[5];u&&(o=u)}else r=t;if(!n){let a=!1,c=e.length;r<0&&(e.push(E$()),a=!0),s<0&&(e.push(w$()),a=!0),a&&e.splice(c,0,b0())}return{duration:r,delay:s,easing:o}}function o8(t){return t.length?t[0]instanceof Map?t:t.map(e=>new Map(Object.entries(e))):[]}function kn(t,e,n){e.forEach((i,r)=>{const s=Pg(r);n&&!n.has(r)&&n.set(r,t.style[s]),t.style[s]=i})}function ri(t,e){e.forEach((n,i)=>{const r=Pg(i);t.style[r]=""})}function eo(t){return Array.isArray(t)?t.length==1?t[0]:jH(t):t}function a8(t,e,n){const i=e.params||{},r=lk(t);r.length&&r.forEach(s=>{i.hasOwnProperty(s)||n.push(C$())})}const zd=new RegExp(`${ok}\\s*(.+?)\\s*${i8}`,"g");function lk(t){let e=[];if(typeof t=="string"){let n;for(;n=zd.exec(t);)e.push(n[1]);zd.lastIndex=0}return e}function $o(t,e,n){const i=`${t}`,r=i.replace(zd,(s,o)=>{let a=e[o];return a==null&&(n.push(S$()),a=""),a.toString()});return r==i?t:r}const l8=/-+([a-z0-9])/g;function Pg(t){return t.replace(l8,(...e)=>e[1].toUpperCase())}function c8(t,e){return t===0||e===0}function u8(t,e,n){if(n.size&&e.length){let i=e[0],r=[];if(n.forEach((s,o)=>{i.has(o)||r.push(o),i.set(o,s)}),r.length)for(let s=1;so.set(a,Ng(t,a)))}}return e}function Ft(t,e,n){switch(e.type){case ae.Trigger:return t.visitTrigger(e,n);case ae.State:return t.visitState(e,n);case ae.Transition:return t.visitTransition(e,n);case ae.Sequence:return t.visitSequence(e,n);case ae.Group:return t.visitGroup(e,n);case ae.Animate:return t.visitAnimate(e,n);case ae.Keyframes:return t.visitKeyframes(e,n);case ae.Style:return t.visitStyle(e,n);case ae.Reference:return t.visitReference(e,n);case ae.AnimateChild:return t.visitAnimateChild(e,n);case ae.AnimateRef:return t.visitAnimateRef(e,n);case ae.Query:return t.visitQuery(e,n);case ae.Stagger:return t.visitStagger(e,n);default:throw T$(e.type)}}function Ng(t,e){return window.getComputedStyle(t)[e]}const h8=new Set(["width","height","minWidth","minHeight","maxWidth","maxHeight","left","top","bottom","right","fontSize","outlineWidth","outlineOffset","paddingTop","paddingLeft","paddingBottom","paddingRight","marginTop","marginLeft","marginBottom","marginRight","borderRadius","borderWidth","borderTopWidth","borderLeftWidth","borderRightWidth","borderBottomWidth","textIndent","perspective"]);class f8 extends Og{normalizePropertyName(e,n){return Pg(e)}normalizeStyleValue(e,n,i,r){let s="";const o=i.toString().trim();if(h8.has(n)&&i!==0&&i!=="0")if(typeof i=="number")s="px";else{const a=i.match(/^[+-]?[\d\.]+([a-z]*)$/);a&&a[1].length==0&&r.push(A$())}return o+s}}const Dc="*";function d8(t,e){const n=[];return typeof t=="string"?t.split(/\s*,\s*/).forEach(i=>p8(i,n,e)):n.push(t),n}function p8(t,e,n){if(t[0]==":"){const c=m8(t,n);if(typeof c=="function"){e.push(c);return}t=c}const i=t.match(/^(\*|[-\w]+)\s*()\s*(\*|[-\w]+)$/);if(i==null||i.length<4)return n.push(B$()),e;const r=i[1],s=i[2],o=i[3];e.push(S0(r,o));const a=r==Dc&&o==Dc;s[0]=="<"&&!a&&e.push(S0(o,r))}function m8(t,e){switch(t){case":enter":return"void => *";case":leave":return"* => void";case":increment":return(n,i)=>parseFloat(i)>parseFloat(n);case":decrement":return(n,i)=>parseFloat(i) *"}}const Ja=new Set(["true","1"]),el=new Set(["false","0"]);function S0(t,e){const n=Ja.has(t)||el.has(t),i=Ja.has(e)||el.has(e);return(r,s)=>{let o=t==Dc||t==r,a=e==Dc||e==s;return!o&&n&&typeof r=="boolean"&&(o=r?Ja.has(t):el.has(t)),!a&&i&&typeof s=="boolean"&&(a=s?Ja.has(e):el.has(e)),o&&a}}const ck=":self",g8=new RegExp(`s*${ck}s*,?`,"g");function uk(t,e,n,i){return new y8(t).build(e,n,i)}const T0="";class y8{constructor(e){l(this,"_driver");this._driver=e}build(e,n,i){const r=new b8(n);return this._resetContextStyleTimingState(r),Ft(this,eo(e),r)}_resetContextStyleTimingState(e){e.currentQuerySelector=T0,e.collectedStyles=new Map,e.collectedStyles.set(T0,new Map),e.currentTime=0}visitTrigger(e,n){let i=n.queryCount=0,r=n.depCount=0;const s=[],o=[];return e.name.charAt(0)=="@"&&n.errors.push(k$()),e.definitions.forEach(a=>{if(this._resetContextStyleTimingState(n),a.type==ae.State){const c=a,u=c.name;u.toString().split(/\s*,\s*/).forEach(h=>{c.name=h,s.push(this.visitState(c,n))}),c.name=u}else if(a.type==ae.Transition){const c=this.visitTransition(a,n);i+=c.queryCount,r+=c.depCount,o.push(c)}else n.errors.push(D$())}),{type:ae.Trigger,name:e.name,states:s,transitions:o,queryCount:i,depCount:r,options:null}}visitState(e,n){const i=this.visitStyle(e.styles,n),r=e.options&&e.options.params||null;if(i.containsDynamicStyles){const s=new Set,o=r||{};i.styles.forEach(a=>{a instanceof Map&&a.forEach(c=>{lk(c).forEach(u=>{o.hasOwnProperty(u)||s.add(u)})})}),s.size&&n.errors.push(I$(e.name,[...s.values()]))}return{type:ae.State,name:e.name,style:i,options:r?{params:r}:null}}visitTransition(e,n){n.queryCount=0,n.depCount=0;const i=Ft(this,eo(e.animation),n),r=d8(e.expr,n.errors);return{type:ae.Transition,matchers:r,animation:i,queryCount:n.queryCount,depCount:n.depCount,options:Yr(e.options)}}visitSequence(e,n){return{type:ae.Sequence,steps:e.steps.map(i=>Ft(this,i,n)),options:Yr(e.options)}}visitGroup(e,n){const i=n.currentTime;let r=0;const s=e.steps.map(o=>{n.currentTime=i;const a=Ft(this,o,n);return r=Math.max(r,n.currentTime),a});return n.currentTime=r,{type:ae.Group,steps:s,options:Yr(e.options)}}visitAnimate(e,n){const i=w8(e.timings,n.errors);n.currentAnimateTimings=i;let r,s=e.styles?e.styles:Xi({});if(s.type==ae.Keyframes)r=this.visitKeyframes(s,n);else{let o=e.styles,a=!1;if(!o){a=!0;const u={};i.easing&&(u.easing=i.easing),o=Xi(u)}n.currentTime+=i.duration+i.delay;const c=this.visitStyle(o,n);c.isEmptyStep=a,r=c}return n.currentAnimateTimings=null,{type:ae.Animate,timings:i,style:r,options:null}}visitStyle(e,n){const i=this._makeStyleAst(e,n);return this._validateStyleAst(i,n),i}_makeStyleAst(e,n){const i=[],r=Array.isArray(e.styles)?e.styles:[e.styles];for(let a of r)typeof a=="string"?a===Kn?i.push(a):n.errors.push(x$()):i.push(new Map(Object.entries(a)));let s=!1,o=null;return i.forEach(a=>{if(a instanceof Map&&(a.has("easing")&&(o=a.get("easing"),a.delete("easing")),!s)){for(let c of a.values())if(c.toString().indexOf(ok)>=0){s=!0;break}}}),{type:ae.Style,styles:i,easing:o,offset:e.offset,containsDynamicStyles:s,options:null}}_validateStyleAst(e,n){const i=n.currentAnimateTimings;let r=n.currentTime,s=n.currentTime;i&&s>0&&(s-=i.duration+i.delay),e.styles.forEach(o=>{typeof o!="string"&&o.forEach((a,c)=>{const u=n.collectedStyles.get(n.currentQuerySelector),h=u.get(c);let f=!0;h&&(s!=r&&s>=h.startTime&&r<=h.endTime&&(n.errors.push(R$(c,h.startTime,h.endTime)),f=!1),s=h.startTime),f&&u.set(c,{startTime:s,endTime:r}),n.options&&a8(a,n.options,n.errors)})})}visitKeyframes(e,n){const i={type:ae.Keyframes,styles:[],options:null};if(!n.currentAnimateTimings)return n.errors.push(F$()),i;const r=1;let s=0;const o=[];let a=!1,c=!1,u=0;const h=e.steps.map(S=>{const C=this._makeStyleAst(S,n);let E=C.offset!=null?C.offset:E8(C.styles),N=0;return E!=null&&(s++,N=C.offset=E),c=c||N<0||N>1,a=a||N0&&s{const E=d>0?C==p?1:d*C:o[C],N=E*_;n.currentTime=m+y.delay+N,y.duration=N,this._validateStyleAst(S,n),S.offset=E,i.styles.push(S)}),i}visitReference(e,n){return{type:ae.Reference,animation:Ft(this,eo(e.animation),n),options:Yr(e.options)}}visitAnimateChild(e,n){return n.depCount++,{type:ae.AnimateChild,options:Yr(e.options)}}visitAnimateRef(e,n){return{type:ae.AnimateRef,animation:this.visitReference(e.animation,n),options:Yr(e.options)}}visitQuery(e,n){const i=n.currentQuerySelector,r=e.options||{};n.queryCount++,n.currentQuery=e;const[s,o]=_8(e.selector);n.currentQuerySelector=i.length?i+" "+s:s,Nt(n.collectedStyles,n.currentQuerySelector,new Map);const a=Ft(this,eo(e.animation),n);return n.currentQuery=null,n.currentQuerySelector=i,{type:ae.Query,selector:s,limit:r.limit||0,optional:!!r.optional,includeSelf:o,animation:a,originalSelector:e.selector,options:Yr(e.options)}}visitStagger(e,n){n.currentQuery||n.errors.push(L$());const i=e.timings==="full"?{duration:0,delay:0,easing:"full"}:kc(e.timings,n.errors,!0);return{type:ae.Stagger,animation:Ft(this,eo(e.animation),n),timings:i,options:null}}}function _8(t){const e=!!t.split(/\s*,\s*/).find(n=>n==ck);return e&&(t=t.replace(g8,"")),t=t.replace(/@\*/g,Ac).replace(/@\w+/g,n=>Ac+"-"+n.slice(1)).replace(/:animating/g,Bd),[t,e]}function v8(t){return t?{...t}:null}class b8{constructor(e){l(this,"errors");l(this,"queryCount",0);l(this,"depCount",0);l(this,"currentTransition",null);l(this,"currentQuery",null);l(this,"currentQuerySelector",null);l(this,"currentAnimateTimings",null);l(this,"currentTime",0);l(this,"collectedStyles",new Map);l(this,"options",null);l(this,"unsupportedCSSPropertiesFound",new Set);this.errors=e}}function E8(t){if(typeof t=="string")return null;let e=null;if(Array.isArray(t))t.forEach(n=>{if(n instanceof Map&&n.has("offset")){const i=n;e=parseFloat(i.get("offset")),i.delete("offset")}});else if(t instanceof Map&&t.has("offset")){const n=t;e=parseFloat(n.get("offset")),n.delete("offset")}return e}function w8(t,e){if(t.hasOwnProperty("duration"))return t;if(typeof t=="number"){const s=kc(t,e).duration;return jh(s,0,"")}const n=t;if(n.split(/\s+/).some(s=>s.charAt(0)=="{"&&s.charAt(1)=="{")){const s=jh(0,0,"");return s.dynamic=!0,s.strValue=n,s}const r=kc(n,e);return jh(r.duration,r.delay,r.easing)}function Yr(t){return t?(t={...t},t.params&&(t.params=v8(t.params))):t={},t}function jh(t,e,n){return{duration:t,delay:e,easing:n}}function Lg(t,e,n,i,r,s,o=null,a=!1){return{type:1,element:t,keyframes:e,preStyleProps:n,postStyleProps:i,duration:r,delay:s,totalTime:r+s,easing:o,subTimeline:a}}class Mg{constructor(){l(this,"_map",new Map)}get(e){return this._map.get(e)||[]}append(e,n){let i=this._map.get(e);i||this._map.set(e,i=[]),i.push(...n)}has(e){return this._map.has(e)}clear(){this._map.clear()}}const C8=1,S8=":enter",T8=new RegExp(S8,"g"),A8=":leave",k8=new RegExp(A8,"g");function hk(t,e,n,i,r,s=new Map,o=new Map,a,c,u=[]){return new D8().buildKeyframes(t,e,n,i,r,s,o,a,c,u)}class D8{buildKeyframes(e,n,i,r,s,o,a,c,u,h=[]){u=u||new Mg;const f=new Bg(e,n,u,r,s,h,[]);f.options=c;const d=c.delay?Un(c.delay):0;f.currentTimeline.delayNextStep(d),f.currentTimeline.setStyles([o],null,f.errors,c),Ft(this,i,f);const p=f.timelines.filter(m=>m.containsAnimation());if(p.length&&a.size){let m;for(let y=p.length-1;y>=0;y--){const _=p[y];if(_.element===n){m=_;break}}m&&!m.allowOnlyTimelineStyles()&&m.setStyles([a],null,f.errors,c)}return p.length?p.map(m=>m.buildKeyframes()):[Lg(n,[],[],[],0,d,"",!1)]}visitTrigger(e,n){}visitState(e,n){}visitTransition(e,n){}visitAnimateChild(e,n){const i=n.subInstructions.get(n.element);if(i){const r=n.createSubContext(e.options),s=n.currentTimeline.currentTime,o=this._visitSubInstructions(i,r,r.options);s!=o&&n.transformIntoNewTimeline(o)}n.previousNode=e}visitAnimateRef(e,n){const i=n.createSubContext(e.options);i.transformIntoNewTimeline(),this._applyAnimationRefDelays([e.options,e.animation.options],n,i),this.visitReference(e.animation,i),n.transformIntoNewTimeline(i.currentTimeline.currentTime),n.previousNode=e}_applyAnimationRefDelays(e,n,i){for(const r of e){const s=r?.delay;if(s){const o=typeof s=="number"?s:Un($o(s,r?.params??{},n.errors));i.delayNextStep(o)}}}_visitSubInstructions(e,n,i){let s=n.currentTimeline.currentTime;const o=i.duration!=null?Un(i.duration):null,a=i.delay!=null?Un(i.delay):null;return o!==0&&e.forEach(c=>{const u=n.appendInstructionToTimeline(c,o,a);s=Math.max(s,u.duration+u.delay)}),s}visitReference(e,n){n.updateOptions(e.options,!0),Ft(this,e.animation,n),n.previousNode=e}visitSequence(e,n){const i=n.subContextCount;let r=n;const s=e.options;if(s&&(s.params||s.delay)&&(r=n.createSubContext(s),r.transformIntoNewTimeline(),s.delay!=null)){r.previousNode.type==ae.Style&&(r.currentTimeline.snapshotCurrentStyles(),r.previousNode=Ic);const o=Un(s.delay);r.delayNextStep(o)}e.steps.length&&(e.steps.forEach(o=>Ft(this,o,r)),r.currentTimeline.applyStylesToKeyframe(),r.subContextCount>i&&r.transformIntoNewTimeline()),n.previousNode=e}visitGroup(e,n){const i=[];let r=n.currentTimeline.currentTime;const s=e.options&&e.options.delay?Un(e.options.delay):0;e.steps.forEach(o=>{const a=n.createSubContext(e.options);s&&a.delayNextStep(s),Ft(this,o,a),r=Math.max(r,a.currentTimeline.currentTime),i.push(a.currentTimeline)}),i.forEach(o=>n.currentTimeline.mergeTimelineCollectedStyles(o)),n.transformIntoNewTimeline(r),n.previousNode=e}_visitTiming(e,n){if(e.dynamic){const i=e.strValue,r=n.params?$o(i,n.params,n.errors):i;return kc(r,n.errors)}else return{duration:e.duration,delay:e.delay,easing:e.easing}}visitAnimate(e,n){const i=n.currentAnimateTimings=this._visitTiming(e.timings,n),r=n.currentTimeline;i.delay&&(n.incrementTime(i.delay),r.snapshotCurrentStyles());const s=e.style;s.type==ae.Keyframes?this.visitKeyframes(s,n):(n.incrementTime(i.duration),this.visitStyle(s,n),r.applyStylesToKeyframe()),n.currentAnimateTimings=null,n.previousNode=e}visitStyle(e,n){const i=n.currentTimeline,r=n.currentAnimateTimings;!r&&i.hasCurrentStyleProperties()&&i.forwardFrame();const s=r&&r.easing||e.easing;e.isEmptyStep?i.applyEmptyStep(s):i.setStyles(e.styles,s,n.errors,n.options),n.previousNode=e}visitKeyframes(e,n){const i=n.currentAnimateTimings,r=n.currentTimeline.duration,s=i.duration,a=n.createSubContext().currentTimeline;a.easing=i.easing,e.styles.forEach(c=>{const u=c.offset||0;a.forwardTime(u*s),a.setStyles(c.styles,c.easing,n.errors,n.options),a.applyStylesToKeyframe()}),n.currentTimeline.mergeTimelineCollectedStyles(a),n.transformIntoNewTimeline(r+s),n.previousNode=e}visitQuery(e,n){const i=n.currentTimeline.currentTime,r=e.options||{},s=r.delay?Un(r.delay):0;s&&(n.previousNode.type===ae.Style||i==0&&n.currentTimeline.hasCurrentStyleProperties())&&(n.currentTimeline.snapshotCurrentStyles(),n.previousNode=Ic);let o=i;const a=n.invokeQuery(e.selector,e.originalSelector,e.limit,e.includeSelf,!!r.optional,n.errors);n.currentQueryTotal=a.length;let c=null;a.forEach((u,h)=>{n.currentQueryIndex=h;const f=n.createSubContext(e.options,u);s&&f.delayNextStep(s),u===n.element&&(c=f.currentTimeline),Ft(this,e.animation,f),f.currentTimeline.applyStylesToKeyframe();const d=f.currentTimeline.currentTime;o=Math.max(o,d)}),n.currentQueryIndex=0,n.currentQueryTotal=0,n.transformIntoNewTimeline(o),c&&(n.currentTimeline.mergeTimelineCollectedStyles(c),n.currentTimeline.snapshotCurrentStyles()),n.previousNode=e}visitStagger(e,n){const i=n.parentContext,r=n.currentTimeline,s=e.timings,o=Math.abs(s.duration),a=o*(n.currentQueryTotal-1);let c=o*n.currentQueryIndex;switch(s.duration<0?"reverse":s.easing){case"reverse":c=a-c;break;case"full":c=i.currentStaggerTime;break}const h=n.currentTimeline;c&&h.delayNextStep(c);const f=h.currentTime;Ft(this,e.animation,n),n.previousNode=e,i.currentStaggerTime=r.currentTime-f+(r.startTime-i.currentTimeline.startTime)}}const Ic={};class Bg{constructor(e,n,i,r,s,o,a,c){l(this,"_driver");l(this,"element");l(this,"subInstructions");l(this,"_enterClassName");l(this,"_leaveClassName");l(this,"errors");l(this,"timelines");l(this,"parentContext",null);l(this,"currentTimeline");l(this,"currentAnimateTimings",null);l(this,"previousNode",Ic);l(this,"subContextCount",0);l(this,"options",{});l(this,"currentQueryIndex",0);l(this,"currentQueryTotal",0);l(this,"currentStaggerTime",0);this._driver=e,this.element=n,this.subInstructions=i,this._enterClassName=r,this._leaveClassName=s,this.errors=o,this.timelines=a,this.currentTimeline=c||new zu(this._driver,n,0),a.push(this.currentTimeline)}get params(){return this.options.params}updateOptions(e,n){if(!e)return;const i=e;let r=this.options;i.duration!=null&&(r.duration=Un(i.duration)),i.delay!=null&&(r.delay=Un(i.delay));const s=i.params;if(s){let o=r.params;o||(o=this.options.params={}),Object.keys(s).forEach(a=>{(!n||!o.hasOwnProperty(a))&&(o[a]=$o(s[a],o,this.errors))})}}_copyOptions(){const e={};if(this.options){const n=this.options.params;if(n){const i=e.params={};Object.keys(n).forEach(r=>{i[r]=n[r]})}}return e}createSubContext(e=null,n,i){const r=n||this.element,s=new Bg(this._driver,r,this.subInstructions,this._enterClassName,this._leaveClassName,this.errors,this.timelines,this.currentTimeline.fork(r,i||0));return s.previousNode=this.previousNode,s.currentAnimateTimings=this.currentAnimateTimings,s.options=this._copyOptions(),s.updateOptions(e),s.currentQueryIndex=this.currentQueryIndex,s.currentQueryTotal=this.currentQueryTotal,s.parentContext=this,this.subContextCount++,s}transformIntoNewTimeline(e){return this.previousNode=Ic,this.currentTimeline=this.currentTimeline.fork(this.element,e),this.timelines.push(this.currentTimeline),this.currentTimeline}appendInstructionToTimeline(e,n,i){const r={duration:n??e.duration,delay:this.currentTimeline.currentTime+(i??0)+e.delay,easing:""},s=new I8(this._driver,e.element,e.keyframes,e.preStyleProps,e.postStyleProps,r,e.stretchStartingKeyframe);return this.timelines.push(s),r}incrementTime(e){this.currentTimeline.forwardTime(this.currentTimeline.duration+e)}delayNextStep(e){e>0&&this.currentTimeline.delayNextStep(e)}invokeQuery(e,n,i,r,s,o){let a=[];if(r&&a.push(this.element),e.length>0){e=e.replace(T8,"."+this._enterClassName),e=e.replace(k8,"."+this._leaveClassName);const c=i!=1;let u=this._driver.query(this.element,e,c);i!==0&&(u=i<0?u.slice(u.length+i,u.length):u.slice(0,i)),a.push(...u)}return!s&&a.length==0&&o.push(M$()),a}}class zu{constructor(e,n,i,r){l(this,"_driver");l(this,"element");l(this,"startTime");l(this,"_elementTimelineStylesLookup");l(this,"duration",0);l(this,"easing",null);l(this,"_previousKeyframe",new Map);l(this,"_currentKeyframe",new Map);l(this,"_keyframes",new Map);l(this,"_styleSummary",new Map);l(this,"_localTimelineStyles",new Map);l(this,"_globalTimelineStyles");l(this,"_pendingStyles",new Map);l(this,"_backFill",new Map);l(this,"_currentEmptyStepKeyframe",null);this._driver=e,this.element=n,this.startTime=i,this._elementTimelineStylesLookup=r,this._elementTimelineStylesLookup||(this._elementTimelineStylesLookup=new Map),this._globalTimelineStyles=this._elementTimelineStylesLookup.get(n),this._globalTimelineStyles||(this._globalTimelineStyles=this._localTimelineStyles,this._elementTimelineStylesLookup.set(n,this._localTimelineStyles)),this._loadKeyframe()}containsAnimation(){switch(this._keyframes.size){case 0:return!1;case 1:return this.hasCurrentStyleProperties();default:return!0}}hasCurrentStyleProperties(){return this._currentKeyframe.size>0}get currentTime(){return this.startTime+this.duration}delayNextStep(e){const n=this._keyframes.size===1&&this._pendingStyles.size;this.duration||n?(this.forwardTime(this.currentTime+e),n&&this.snapshotCurrentStyles()):this.startTime+=e}fork(e,n){return this.applyStylesToKeyframe(),new zu(this._driver,e,n||this.currentTime,this._elementTimelineStylesLookup)}_loadKeyframe(){this._currentKeyframe&&(this._previousKeyframe=this._currentKeyframe),this._currentKeyframe=this._keyframes.get(this.duration),this._currentKeyframe||(this._currentKeyframe=new Map,this._keyframes.set(this.duration,this._currentKeyframe))}forwardFrame(){this.duration+=C8,this._loadKeyframe()}forwardTime(e){this.applyStylesToKeyframe(),this.duration=e,this._loadKeyframe()}_updateStyle(e,n){this._localTimelineStyles.set(e,n),this._globalTimelineStyles.set(e,n),this._styleSummary.set(e,{time:this.currentTime,value:n})}allowOnlyTimelineStyles(){return this._currentEmptyStepKeyframe!==this._currentKeyframe}applyEmptyStep(e){e&&this._previousKeyframe.set("easing",e);for(let[n,i]of this._globalTimelineStyles)this._backFill.set(n,i||Kn),this._currentKeyframe.set(n,Kn);this._currentEmptyStepKeyframe=this._currentKeyframe}setStyles(e,n,i,r){n&&this._previousKeyframe.set("easing",n);const s=r&&r.params||{},o=x8(e,this._globalTimelineStyles);for(let[a,c]of o){const u=$o(c,s,i);this._pendingStyles.set(a,u),this._localTimelineStyles.has(a)||this._backFill.set(a,this._globalTimelineStyles.get(a)??Kn),this._updateStyle(a,u)}}applyStylesToKeyframe(){this._pendingStyles.size!=0&&(this._pendingStyles.forEach((e,n)=>{this._currentKeyframe.set(n,e)}),this._pendingStyles.clear(),this._localTimelineStyles.forEach((e,n)=>{this._currentKeyframe.has(n)||this._currentKeyframe.set(n,e)}))}snapshotCurrentStyles(){for(let[e,n]of this._localTimelineStyles)this._pendingStyles.set(e,n),this._updateStyle(e,n)}getFinalKeyframe(){return this._keyframes.get(this.duration)}get properties(){const e=[];for(let n in this._currentKeyframe)e.push(n);return e}mergeTimelineCollectedStyles(e){e._styleSummary.forEach((n,i)=>{const r=this._styleSummary.get(i);(!r||n.time>r.time)&&this._updateStyle(i,n.value)})}buildKeyframes(){this.applyStylesToKeyframe();const e=new Set,n=new Set,i=this._keyframes.size===1&&this.duration===0;let r=[];this._keyframes.forEach((a,c)=>{const u=new Map([...this._backFill,...a]);u.forEach((h,f)=>{h===sg?e.add(f):h===Kn&&n.add(f)}),i||u.set("offset",c/this.duration),r.push(u)});const s=[...e.values()],o=[...n.values()];if(i){const a=r[0],c=new Map(a);a.set("offset",0),c.set("offset",1),r=[a,c]}return Lg(this.element,r,s,o,this.duration,this.startTime,this.easing,!1)}}class I8 extends zu{constructor(n,i,r,s,o,a,c=!1){super(n,i,a.delay);l(this,"keyframes");l(this,"preStyleProps");l(this,"postStyleProps");l(this,"_stretchStartingKeyframe");l(this,"timings");this.keyframes=r,this.preStyleProps=s,this.postStyleProps=o,this._stretchStartingKeyframe=c,this.timings={duration:a.duration,delay:a.delay,easing:a.easing}}containsAnimation(){return this.keyframes.length>1}buildKeyframes(){let n=this.keyframes,{delay:i,duration:r,easing:s}=this.timings;if(this._stretchStartingKeyframe&&i){const o=[],a=r+i,c=i/a,u=new Map(n[0]);u.set("offset",0),o.push(u);const h=new Map(n[0]);h.set("offset",A0(c)),o.push(h);const f=n.length-1;for(let d=1;d<=f;d++){let p=new Map(n[d]);const m=p.get("offset"),y=i+m*r;p.set("offset",A0(y/a)),o.push(p)}r=a,i=0,s="",n=o}return Lg(this.element,n,this.preStyleProps,this.postStyleProps,r,i,s,!0)}}function A0(t,e=3){const n=Math.pow(10,e-1);return Math.round(t*n)/n}function x8(t,e){const n=new Map;let i;return t.forEach(r=>{if(r==="*"){i??(i=e.keys());for(let s of i)n.set(s,Kn)}else for(let[s,o]of r)n.set(s,o)}),n}function k0(t,e,n,i,r,s,o,a,c,u,h,f,d){return{type:0,element:t,triggerName:e,isRemovalTransition:r,fromState:n,fromStyles:s,toState:i,toStyles:o,timelines:a,queriedElements:c,preStyleProps:u,postStyleProps:h,totalTime:f,errors:d}}const zh={};class fk{constructor(e,n,i){l(this,"_triggerName");l(this,"ast");l(this,"_stateStyles");this._triggerName=e,this.ast=n,this._stateStyles=i}match(e,n,i,r){return R8(this.ast.matchers,e,n,i,r)}buildStyles(e,n,i){let r=this._stateStyles.get("*");return e!==void 0&&(r=this._stateStyles.get(e?.toString())||r),r?r.buildStyles(n,i):new Map}build(e,n,i,r,s,o,a,c,u,h){const f=[],d=this.ast.options&&this.ast.options.params||zh,p=a&&a.params||zh,m=this.buildStyles(i,p,f),y=c&&c.params||zh,_=this.buildStyles(r,y,f),S=new Set,C=new Map,E=new Map,N=r==="void",L={params:dk(y,d),delay:this.ast.options?.delay},Y=h?[]:hk(e,n,this.ast.animation,s,o,m,_,L,u,f);let U=0;return Y.forEach(P=>{U=Math.max(P.duration+P.delay,U)}),f.length?k0(n,this._triggerName,i,r,N,m,_,[],[],C,E,U,f):(Y.forEach(P=>{const de=P.element,ee=Nt(C,de,new Set);P.preStyleProps.forEach($=>ee.add($));const te=Nt(E,de,new Set);P.postStyleProps.forEach($=>te.add($)),de!==n&&S.add(de)}),k0(n,this._triggerName,i,r,N,m,_,Y,[...S.values()],C,E,U))}}function R8(t,e,n,i,r){return t.some(s=>s(e,n,i,r))}function dk(t,e){const n={...e};return Object.entries(t).forEach(([i,r])=>{r!=null&&(n[i]=r)}),n}class F8{constructor(e,n,i){l(this,"styles");l(this,"defaultParams");l(this,"normalizer");this.styles=e,this.defaultParams=n,this.normalizer=i}buildStyles(e,n){const i=new Map,r=dk(e,this.defaultParams);return this.styles.styles.forEach(s=>{typeof s!="string"&&s.forEach((o,a)=>{o&&(o=$o(o,r,n));const c=this.normalizer.normalizePropertyName(a,n);o=this.normalizer.normalizeStyleValue(a,c,o,n),i.set(a,o)})}),i}}function O8(t,e,n){return new P8(t,e,n)}class P8{constructor(e,n,i){l(this,"name");l(this,"ast");l(this,"_normalizer");l(this,"transitionFactories",[]);l(this,"fallbackTransition");l(this,"states",new Map);this.name=e,this.ast=n,this._normalizer=i,n.states.forEach(r=>{const s=r.options&&r.options.params||{};this.states.set(r.name,new F8(r.style,s,i))}),D0(this.states,"true","1"),D0(this.states,"false","0"),n.transitions.forEach(r=>{this.transitionFactories.push(new fk(e,r,this.states))}),this.fallbackTransition=N8(e,this.states,this._normalizer)}get containsQueries(){return this.ast.queryCount>0}matchTransition(e,n,i,r){return this.transitionFactories.find(o=>o.match(e,n,i,r))||null}matchStyles(e,n,i){return this.fallbackTransition.buildStyles(e,n,i)}}function N8(t,e,n){const i=[(o,a)=>!0],r={type:ae.Sequence,steps:[],options:null},s={type:ae.Transition,animation:r,matchers:i,options:null,queryCount:0,depCount:0};return new fk(t,s,e)}function D0(t,e,n){t.has(e)?t.has(n)||t.set(n,t.get(e)):t.has(n)&&t.set(e,t.get(n))}const L8=new Mg;class M8{constructor(e,n,i){l(this,"bodyNode");l(this,"_driver");l(this,"_normalizer");l(this,"_animations",new Map);l(this,"_playersById",new Map);l(this,"players",[]);this.bodyNode=e,this._driver=n,this._normalizer=i}register(e,n){const i=[],r=[],s=uk(this._driver,n,i,r);if(i.length)throw U$();r.length,this._animations.set(e,s)}_buildPlayer(e,n,i){const r=e.element,s=nk(this._normalizer,e.keyframes,n,i);return this._driver.animate(r,s,e.duration,e.delay,e.easing,[],!0)}create(e,n,i={}){const r=[],s=this._animations.get(e);let o;const a=new Map;if(s?(o=hk(this._driver,n,s,ak,Md,new Map,new Map,i,L8,r),o.forEach(h=>{const f=Nt(a,h.element,new Map);h.postStyleProps.forEach(d=>f.set(d,null))})):(r.push(V$()),o=[]),r.length)throw $$();a.forEach((h,f)=>{h.forEach((d,p)=>{h.set(p,this._driver.computeStyle(f,p,Kn))})});const c=o.map(h=>{const f=a.get(h.element);return this._buildPlayer(h,new Map,f)}),u=_r(c);return this._playersById.set(e,u),u.onDestroy(()=>this.destroy(e)),this.players.push(u),u}destroy(e){const n=this._getPlayer(e);n.destroy(),this._playersById.delete(e);const i=this.players.indexOf(n);i>=0&&this.players.splice(i,1)}_getPlayer(e){const n=this._playersById.get(e);if(!n)throw W$();return n}listen(e,n,i,r){const s=Rg(n,"","","");return xg(this._getPlayer(e),i,s,r),()=>{}}command(e,n,i,r){if(i=="register"){this.register(e,r[0]);return}if(i=="create"){const o=r[0]||{};this.create(e,n,o);return}const s=this._getPlayer(e);switch(i){case"play":s.play();break;case"pause":s.pause();break;case"reset":s.reset();break;case"restart":s.restart();break;case"finish":s.finish();break;case"init":s.init();break;case"setPosition":s.setPosition(parseFloat(r[0]));break;case"destroy":this.destroy(e);break}}}const I0="ng-animate-queued",B8=".ng-animate-queued",Hh="ng-animate-disabled",j8=".ng-animate-disabled",z8="ng-star-inserted",H8=".ng-star-inserted",U8=[],pk={namespaceId:"",setForRemoval:!1,setForMove:!1,hasAnimation:!1,removedBeforeQueried:!1},V8={namespaceId:"",setForMove:!1,setForRemoval:!1,hasAnimation:!1,removedBeforeQueried:!0},on="__ng_removed";class Hd{constructor(e,n=""){l(this,"namespaceId");l(this,"value");l(this,"options");this.namespaceId=n;const i=e&&e.hasOwnProperty("value"),r=i?e.value:e;if(this.value=q8(r),i){const{value:s,...o}=e;this.options=o}else this.options={};this.options.params||(this.options.params={})}get params(){return this.options.params}absorbOptions(e){const n=e.params;if(n){const i=this.options.params;Object.keys(n).forEach(r=>{i[r]==null&&(i[r]=n[r])})}}}const Co="void",Uh=new Hd(Co);class $8{constructor(e,n,i){l(this,"id");l(this,"hostElement");l(this,"_engine");l(this,"players",[]);l(this,"_triggers",new Map);l(this,"_queue",[]);l(this,"_elementListeners",new Map);l(this,"_hostClassName");this.id=e,this.hostElement=n,this._engine=i,this._hostClassName="ng-tns-"+e,Gt(n,this._hostClassName)}listen(e,n,i,r){if(!this._triggers.has(n))throw G$();if(i==null||i.length==0)throw q$();if(!Z8(i))throw Z$();const s=Nt(this._elementListeners,e,[]),o={name:n,phase:i,callback:r};s.push(o);const a=Nt(this._engine.statesByElement,e,new Map);return a.has(n)||(Gt(e,Xa),Gt(e,Xa+"-"+n),a.set(n,Uh)),()=>{this._engine.afterFlush(()=>{const c=s.indexOf(o);c>=0&&s.splice(c,1),this._triggers.has(n)||a.delete(n)})}}register(e,n){return this._triggers.has(e)?!1:(this._triggers.set(e,n),!0)}_getTrigger(e){const n=this._triggers.get(e);if(!n)throw Y$();return n}trigger(e,n,i,r=!0){const s=this._getTrigger(n),o=new Ud(this.id,n,e);let a=this._engine.statesByElement.get(e);a||(Gt(e,Xa),Gt(e,Xa+"-"+n),this._engine.statesByElement.set(e,a=new Map));let c=a.get(n);const u=new Hd(i,this.id);if(!(i&&i.hasOwnProperty("value"))&&c&&u.absorbOptions(c.options),a.set(n,u),c||(c=Uh),!(u.value===Co)&&c.value===u.value){if(!Q8(c.params,u.params)){const y=[],_=s.matchStyles(c.value,c.params,y),S=s.matchStyles(u.value,u.params,y);y.length?this._engine.reportError(y):this._engine.afterFlush(()=>{ri(e,_),kn(e,S)})}return}const d=Nt(this._engine.playersByElement,e,[]);d.forEach(y=>{y.namespaceId==this.id&&y.triggerName==n&&y.queued&&y.destroy()});let p=s.matchTransition(c.value,u.value,e,u.params),m=!1;if(!p){if(!r)return;p=s.fallbackTransition,m=!0}return this._engine.totalQueuedPlayers++,this._queue.push({element:e,triggerName:n,transition:p,fromState:c,toState:u,player:o,isFallbackTransition:m}),m||(Gt(e,I0),o.onStart(()=>{Vi(e,I0)})),o.onDone(()=>{let y=this.players.indexOf(o);y>=0&&this.players.splice(y,1);const _=this._engine.playersByElement.get(e);if(_){let S=_.indexOf(o);S>=0&&_.splice(S,1)}}),this.players.push(o),d.push(o),o}deregister(e){this._triggers.delete(e),this._engine.statesByElement.forEach(n=>n.delete(e)),this._elementListeners.forEach((n,i)=>{this._elementListeners.set(i,n.filter(r=>r.name!=e))})}clearElementCache(e){this._engine.statesByElement.delete(e),this._elementListeners.delete(e);const n=this._engine.playersByElement.get(e);n&&(n.forEach(i=>i.destroy()),this._engine.playersByElement.delete(e))}_signalRemovalForInnerTriggers(e,n){const i=this._engine.driver.query(e,Ac,!0);i.forEach(r=>{if(r[on])return;const s=this._engine.fetchNamespacesByElement(r);s.size?s.forEach(o=>o.triggerLeaveAnimation(r,n,!1,!0)):this.clearElementCache(r)}),this._engine.afterFlushAnimationsDone(()=>i.forEach(r=>this.clearElementCache(r)))}triggerLeaveAnimation(e,n,i,r){const s=this._engine.statesByElement.get(e),o=new Map;if(s){const a=[];if(s.forEach((c,u)=>{if(o.set(u,c.value),this._triggers.has(u)){const h=this.trigger(e,u,Co,r);h&&a.push(h)}}),a.length)return this._engine.markElementAsRemoved(this.id,e,!0,n,o),i&&_r(a).onDone(()=>this._engine.processLeaveNode(e)),!0}return!1}prepareLeaveAnimationListeners(e){const n=this._elementListeners.get(e),i=this._engine.statesByElement.get(e);if(n&&i){const r=new Set;n.forEach(s=>{const o=s.name;if(r.has(o))return;r.add(o);const c=this._triggers.get(o).fallbackTransition,u=i.get(o)||Uh,h=new Hd(Co),f=new Ud(this.id,o,e);this._engine.totalQueuedPlayers++,this._queue.push({element:e,triggerName:o,transition:c,fromState:u,toState:h,player:f,isFallbackTransition:!0})})}}removeNode(e,n){const i=this._engine;if(e.childElementCount&&this._signalRemovalForInnerTriggers(e,n),this.triggerLeaveAnimation(e,n,!0))return;let r=!1;if(i.totalAnimations){const s=i.players.length?i.playersByQueriedElement.get(e):[];if(s&&s.length)r=!0;else{let o=e;for(;o=o.parentNode;)if(i.statesByElement.get(o)){r=!0;break}}}if(this.prepareLeaveAnimationListeners(e),r)i.markElementAsRemoved(this.id,e,!1,n);else{const s=e[on];(!s||s===pk)&&(i.afterFlush(()=>this.clearElementCache(e)),i.destroyInnerAnimations(e),i._onRemovalComplete(e,n))}}insertNode(e,n){Gt(e,this._hostClassName)}drainQueuedTransitions(e){const n=[];return this._queue.forEach(i=>{const r=i.player;if(r.destroyed)return;const s=i.element,o=this._elementListeners.get(s);o&&o.forEach(a=>{if(a.name==i.triggerName){const c=Rg(s,i.triggerName,i.fromState.value,i.toState.value);c._data=e,xg(i.player,a.phase,c,a.callback)}}),r.markedForDestroy?this._engine.afterFlush(()=>{r.destroy()}):n.push(i)}),this._queue=[],n.sort((i,r)=>{const s=i.transition.ast.depCount,o=r.transition.ast.depCount;return s==0||o==0?s-o:this._engine.driver.containsElement(i.element,r.element)?1:-1})}destroy(e){this.players.forEach(n=>n.destroy()),this._signalRemovalForInnerTriggers(this.hostElement,e)}}class W8{constructor(e,n,i){l(this,"bodyNode");l(this,"driver");l(this,"_normalizer");l(this,"players",[]);l(this,"newHostElements",new Map);l(this,"playersByElement",new Map);l(this,"playersByQueriedElement",new Map);l(this,"statesByElement",new Map);l(this,"disabledNodes",new Set);l(this,"totalAnimations",0);l(this,"totalQueuedPlayers",0);l(this,"_namespaceLookup",{});l(this,"_namespaceList",[]);l(this,"_flushFns",[]);l(this,"_whenQuietFns",[]);l(this,"namespacesByHostElement",new Map);l(this,"collectedEnterElements",[]);l(this,"collectedLeaveElements",[]);l(this,"onRemovalComplete",(e,n)=>{});this.bodyNode=e,this.driver=n,this._normalizer=i}_onRemovalComplete(e,n){this.onRemovalComplete(e,n)}get queuedPlayers(){const e=[];return this._namespaceList.forEach(n=>{n.players.forEach(i=>{i.queued&&e.push(i)})}),e}createNamespace(e,n){const i=new $8(e,n,this);return this.bodyNode&&this.driver.containsElement(this.bodyNode,n)?this._balanceNamespaceList(i,n):(this.newHostElements.set(n,i),this.collectEnterElement(n)),this._namespaceLookup[e]=i}_balanceNamespaceList(e,n){const i=this._namespaceList,r=this.namespacesByHostElement;if(i.length-1>=0){let o=!1,a=this.driver.getParentElement(n);for(;a;){const c=r.get(a);if(c){const u=i.indexOf(c);i.splice(u+1,0,e),o=!0;break}a=this.driver.getParentElement(a)}o||i.unshift(e)}else i.push(e);return r.set(n,e),e}register(e,n){let i=this._namespaceLookup[e];return i||(i=this.createNamespace(e,n)),i}registerTrigger(e,n,i){let r=this._namespaceLookup[e];r&&r.register(n,i)&&this.totalAnimations++}destroy(e,n){e&&(this.afterFlush(()=>{}),this.afterFlushAnimationsDone(()=>{const i=this._fetchNamespace(e);this.namespacesByHostElement.delete(i.hostElement);const r=this._namespaceList.indexOf(i);r>=0&&this._namespaceList.splice(r,1),i.destroy(n),delete this._namespaceLookup[e]}))}_fetchNamespace(e){return this._namespaceLookup[e]}fetchNamespacesByElement(e){const n=new Set,i=this.statesByElement.get(e);if(i){for(let r of i.values())if(r.namespaceId){const s=this._fetchNamespace(r.namespaceId);s&&n.add(s)}}return n}trigger(e,n,i,r){if(tl(n)){const s=this._fetchNamespace(e);if(s)return s.trigger(n,i,r),!0}return!1}insertNode(e,n,i,r){if(!tl(n))return;const s=n[on];if(s&&s.setForRemoval){s.setForRemoval=!1,s.setForMove=!0;const o=this.collectedLeaveElements.indexOf(n);o>=0&&this.collectedLeaveElements.splice(o,1)}if(e){const o=this._fetchNamespace(e);o&&o.insertNode(n,i)}r&&this.collectEnterElement(n)}collectEnterElement(e){this.collectedEnterElements.push(e)}markElementAsDisabled(e,n){n?this.disabledNodes.has(e)||(this.disabledNodes.add(e),Gt(e,Hh)):this.disabledNodes.has(e)&&(this.disabledNodes.delete(e),Vi(e,Hh))}removeNode(e,n,i){if(tl(n)){const r=e?this._fetchNamespace(e):null;r?r.removeNode(n,i):this.markElementAsRemoved(e,n,!1,i);const s=this.namespacesByHostElement.get(n);s&&s.id!==e&&s.removeNode(n,i)}else this._onRemovalComplete(n,i)}markElementAsRemoved(e,n,i,r,s){this.collectedLeaveElements.push(n),n[on]={namespaceId:e,setForRemoval:r,hasAnimation:i,removedBeforeQueried:!1,previousTriggersValues:s}}listen(e,n,i,r,s){return tl(n)?this._fetchNamespace(e).listen(n,i,r,s):()=>{}}_buildInstruction(e,n,i,r,s){return e.transition.build(this.driver,e.element,e.fromState.value,e.toState.value,i,r,e.fromState.options,e.toState.options,n,s)}destroyInnerAnimations(e){let n=this.driver.query(e,Ac,!0);n.forEach(i=>this.destroyActiveAnimationsForElement(i)),this.playersByQueriedElement.size!=0&&(n=this.driver.query(e,Bd,!0),n.forEach(i=>this.finishActiveQueriedAnimationOnElement(i)))}destroyActiveAnimationsForElement(e){const n=this.playersByElement.get(e);n&&n.forEach(i=>{i.queued?i.markedForDestroy=!0:i.destroy()})}finishActiveQueriedAnimationOnElement(e){const n=this.playersByQueriedElement.get(e);n&&n.forEach(i=>i.finish())}whenRenderingDone(){return new Promise(e=>{if(this.players.length)return _r(this.players).onDone(()=>e());e()})}processLeaveNode(e){const n=e[on];if(n&&n.setForRemoval){if(e[on]=pk,n.namespaceId){this.destroyInnerAnimations(e);const i=this._fetchNamespace(n.namespaceId);i&&i.clearElementCache(e)}this._onRemovalComplete(e,n.setForRemoval)}e.classList?.contains(Hh)&&this.markElementAsDisabled(e,!1),this.driver.query(e,j8,!0).forEach(i=>{this.markElementAsDisabled(i,!1)})}flush(e=-1){let n=[];if(this.newHostElements.size&&(this.newHostElements.forEach((i,r)=>this._balanceNamespaceList(i,r)),this.newHostElements.clear()),this.totalAnimations&&this.collectedEnterElements.length)for(let i=0;ii()),this._flushFns=[],this._whenQuietFns.length){const i=this._whenQuietFns;this._whenQuietFns=[],n.length?_r(n).onDone(()=>{i.forEach(r=>r())}):i.forEach(r=>r())}}reportError(e){throw K$()}_flushAnimations(e,n){const i=new Mg,r=[],s=new Map,o=[],a=new Map,c=new Map,u=new Map,h=new Set;this.disabledNodes.forEach(D=>{h.add(D);const A=this.driver.query(D,B8,!0);for(let v=0;v{const v=ak+y++;m.set(A,v),D.forEach(w=>Gt(w,v))});const _=[],S=new Set,C=new Set;for(let D=0;DS.add(w)):C.add(A))}const E=new Map,N=F0(d,Array.from(S));N.forEach((D,A)=>{const v=Md+y++;E.set(A,v),D.forEach(w=>Gt(w,v))}),e.push(()=>{p.forEach((D,A)=>{const v=m.get(A);D.forEach(w=>Vi(w,v))}),N.forEach((D,A)=>{const v=E.get(A);D.forEach(w=>Vi(w,v))}),_.forEach(D=>{this.processLeaveNode(D)})});const L=[],Y=[];for(let D=this._namespaceList.length-1;D>=0;D--)this._namespaceList[D].drainQueuedTransitions(n).forEach(v=>{const w=v.player,T=v.element;if(L.push(w),this.collectedEnterElements.length){const je=T[on];if(je&&je.setForMove){if(je.previousTriggersValues&&je.previousTriggersValues.has(v.triggerName)){const R=je.previousTriggersValues.get(v.triggerName),k=this.statesByElement.get(v.element);if(k&&k.has(v.triggerName)){const b=k.get(v.triggerName);b.value=R,k.set(v.triggerName,b)}}w.destroy();return}}const H=!f||!this.driver.containsElement(f,T),Q=E.get(T),z=m.get(T),he=this._buildInstruction(v,i,z,Q,H);if(he.errors&&he.errors.length){Y.push(he);return}if(H){w.onStart(()=>ri(T,he.fromStyles)),w.onDestroy(()=>kn(T,he.toStyles)),r.push(w);return}if(v.isFallbackTransition){w.onStart(()=>ri(T,he.fromStyles)),w.onDestroy(()=>kn(T,he.toStyles)),r.push(w);return}const tn=[];he.timelines.forEach(je=>{je.stretchStartingKeyframe=!0,this.disabledNodes.has(je.element)||tn.push(je)}),he.timelines=tn,i.append(T,he.timelines);const xt={instruction:he,player:w,element:T};o.push(xt),he.queriedElements.forEach(je=>Nt(a,je,[]).push(w)),he.preStyleProps.forEach((je,R)=>{if(je.size){let k=c.get(R);k||c.set(R,k=new Set),je.forEach((b,F)=>k.add(F))}}),he.postStyleProps.forEach((je,R)=>{let k=u.get(R);k||u.set(R,k=new Set),je.forEach((b,F)=>k.add(F))})});if(Y.length){const D=[];Y.forEach(A=>{D.push(Q$(A.triggerName,A.errors))}),L.forEach(A=>A.destroy()),this.reportError(D)}const U=new Map,P=new Map;o.forEach(D=>{const A=D.element;i.has(A)&&(P.set(A,A),this._beforeAnimationBuild(D.player.namespaceId,D.instruction,U))}),r.forEach(D=>{const A=D.element;this._getPreviousPlayers(A,!1,D.namespaceId,D.triggerName,null).forEach(w=>{Nt(U,A,[]).push(w),w.destroy()})});const de=_.filter(D=>O0(D,c,u)),ee=new Map;R0(ee,this.driver,C,u,Kn).forEach(D=>{O0(D,c,u)&&de.push(D)});const $=new Map;p.forEach((D,A)=>{R0($,this.driver,new Set(D),c,sg)}),de.forEach(D=>{const A=ee.get(D),v=$.get(D);ee.set(D,new Map([...A?.entries()??[],...v?.entries()??[]]))});const ne=[],it=[],Be={};o.forEach(D=>{const{element:A,player:v,instruction:w}=D;if(i.has(A)){if(h.has(A)){v.onDestroy(()=>kn(A,w.toStyles)),v.disabled=!0,v.overrideTotalTime(w.totalTime),r.push(v);return}let T=Be;if(P.size>1){let Q=A;const z=[];for(;Q=Q.parentNode;){const he=P.get(Q);if(he){T=he;break}z.push(Q)}z.forEach(he=>P.set(he,T))}const H=this._buildAnimation(v.namespaceId,w,U,s,$,ee);if(v.setRealPlayer(H),T===Be)ne.push(v);else{const Q=this.playersByElement.get(T);Q&&Q.length&&(v.parentPlayer=_r(Q)),r.push(v)}}else ri(A,w.fromStyles),v.onDestroy(()=>kn(A,w.toStyles)),it.push(v),h.has(A)&&r.push(v)}),it.forEach(D=>{const A=s.get(D.element);if(A&&A.length){const v=_r(A);D.setRealPlayer(v)}}),r.forEach(D=>{D.parentPlayer?D.syncPlayerEvents(D.parentPlayer):D.destroy()});for(let D=0;D<_.length;D++){const A=_[D],v=A[on];if(Vi(A,Md),v&&v.hasAnimation)continue;let w=[];if(a.size){let H=a.get(A);H&&H.length&&w.push(...H);let Q=this.driver.query(A,Bd,!0);for(let z=0;z!H.destroyed);T.length?Y8(this,A,T):this.processLeaveNode(A)}return _.length=0,ne.forEach(D=>{this.players.push(D),D.onDone(()=>{D.destroy();const A=this.players.indexOf(D);this.players.splice(A,1)}),D.play()}),ne}afterFlush(e){this._flushFns.push(e)}afterFlushAnimationsDone(e){this._whenQuietFns.push(e)}_getPreviousPlayers(e,n,i,r,s){let o=[];if(n){const a=this.playersByQueriedElement.get(e);a&&(o=a)}else{const a=this.playersByElement.get(e);if(a){const c=!s||s==Co;a.forEach(u=>{u.queued||!c&&u.triggerName!=r||o.push(u)})}}return(i||r)&&(o=o.filter(a=>!(i&&i!=a.namespaceId||r&&r!=a.triggerName))),o}_beforeAnimationBuild(e,n,i){const r=n.triggerName,s=n.element,o=n.isRemovalTransition?void 0:e,a=n.isRemovalTransition?void 0:r;for(const c of n.timelines){const u=c.element,h=u!==s,f=Nt(i,u,[]);this._getPreviousPlayers(u,h,o,a,n.toState).forEach(p=>{const m=p.getRealPlayer();m.beforeDestroy&&m.beforeDestroy(),p.destroy(),f.push(p)})}ri(s,n.fromStyles)}_buildAnimation(e,n,i,r,s,o){const a=n.triggerName,c=n.element,u=[],h=new Set,f=new Set,d=n.timelines.map(m=>{const y=m.element;h.add(y);const _=y[on];if(_&&_.removedBeforeQueried)return new Ho(m.duration,m.delay);const S=y!==c,C=K8((i.get(y)||U8).map(U=>U.getRealPlayer())).filter(U=>{const P=U;return P.element?P.element===y:!1}),E=s.get(y),N=o.get(y),L=nk(this._normalizer,m.keyframes,E,N),Y=this._buildPlayer(m,L,C);if(m.subTimeline&&r&&f.add(y),S){const U=new Ud(e,a,y);U.setRealPlayer(Y),u.push(U)}return Y});u.forEach(m=>{Nt(this.playersByQueriedElement,m.element,[]).push(m),m.onDone(()=>G8(this.playersByQueriedElement,m.element,m))}),h.forEach(m=>Gt(m,C0));const p=_r(d);return p.onDestroy(()=>{h.forEach(m=>Vi(m,C0)),kn(c,n.toStyles)}),f.forEach(m=>{Nt(r,m,[]).push(p)}),p}_buildPlayer(e,n,i){return n.length>0?this.driver.animate(e.element,n,e.duration,e.delay,e.easing,i):new Ho(e.duration,e.delay)}}class Ud{constructor(e,n,i){l(this,"namespaceId");l(this,"triggerName");l(this,"element");l(this,"_player",new Ho);l(this,"_containsRealPlayer",!1);l(this,"_queuedCallbacks",new Map);l(this,"destroyed",!1);l(this,"parentPlayer",null);l(this,"markedForDestroy",!1);l(this,"disabled",!1);l(this,"queued",!0);l(this,"totalTime",0);this.namespaceId=e,this.triggerName=n,this.element=i}setRealPlayer(e){this._containsRealPlayer||(this._player=e,this._queuedCallbacks.forEach((n,i)=>{n.forEach(r=>xg(e,i,void 0,r))}),this._queuedCallbacks.clear(),this._containsRealPlayer=!0,this.overrideTotalTime(e.totalTime),this.queued=!1)}getRealPlayer(){return this._player}overrideTotalTime(e){this.totalTime=e}syncPlayerEvents(e){const n=this._player;n.triggerCallback&&e.onStart(()=>n.triggerCallback("start")),e.onDone(()=>this.finish()),e.onDestroy(()=>this.destroy())}_queueEvent(e,n){Nt(this._queuedCallbacks,e,[]).push(n)}onDone(e){this.queued&&this._queueEvent("done",e),this._player.onDone(e)}onStart(e){this.queued&&this._queueEvent("start",e),this._player.onStart(e)}onDestroy(e){this.queued&&this._queueEvent("destroy",e),this._player.onDestroy(e)}init(){this._player.init()}hasStarted(){return this.queued?!1:this._player.hasStarted()}play(){!this.queued&&this._player.play()}pause(){!this.queued&&this._player.pause()}restart(){!this.queued&&this._player.restart()}finish(){this._player.finish()}destroy(){this.destroyed=!0,this._player.destroy()}reset(){!this.queued&&this._player.reset()}setPosition(e){this.queued||this._player.setPosition(e)}getPosition(){return this.queued?0:this._player.getPosition()}triggerCallback(e){const n=this._player;n.triggerCallback&&n.triggerCallback(e)}}function G8(t,e,n){let i=t.get(e);if(i){if(i.length){const r=i.indexOf(n);i.splice(r,1)}i.length==0&&t.delete(e)}return i}function q8(t){return t??null}function tl(t){return t&&t.nodeType===1}function Z8(t){return t=="start"||t=="done"}function x0(t,e){const n=t.style.display;return t.style.display=e??"none",n}function R0(t,e,n,i,r){const s=[];n.forEach(c=>s.push(x0(c)));const o=[];i.forEach((c,u)=>{const h=new Map;c.forEach(f=>{const d=e.computeStyle(u,f,r);h.set(f,d),(!d||d.length==0)&&(u[on]=V8,o.push(u))}),t.set(u,h)});let a=0;return n.forEach(c=>x0(c,s[a++])),o}function F0(t,e){const n=new Map;if(t.forEach(a=>n.set(a,[])),e.length==0)return n;const i=1,r=new Set(e),s=new Map;function o(a){if(!a)return i;let c=s.get(a);if(c)return c;const u=a.parentNode;return n.has(u)?c=u:r.has(u)?c=i:c=o(u),s.set(a,c),c}return e.forEach(a=>{const c=o(a);c!==i&&n.get(c).push(a)}),n}function Gt(t,e){t.classList?.add(e)}function Vi(t,e){t.classList?.remove(e)}function Y8(t,e,n){_r(n).onDone(()=>t.processLeaveNode(e))}function K8(t){const e=[];return mk(t,e),e}function mk(t,e){for(let n=0;nr.add(s)):e.set(t,i),n.delete(t),!0}class Vd{constructor(e,n,i){l(this,"_driver");l(this,"_normalizer");l(this,"_transitionEngine");l(this,"_timelineEngine");l(this,"_triggerCache",{});l(this,"onRemovalComplete",(e,n)=>{});this._driver=n,this._normalizer=i,this._transitionEngine=new W8(e.body,n,i),this._timelineEngine=new M8(e.body,n,i),this._transitionEngine.onRemovalComplete=(r,s)=>this.onRemovalComplete(r,s)}registerTrigger(e,n,i,r,s){const o=e+"-"+r;let a=this._triggerCache[o];if(!a){const c=[],u=[],h=uk(this._driver,s,c,u);if(c.length)throw z$();u.length,a=O8(r,h,this._normalizer),this._triggerCache[o]=a}this._transitionEngine.registerTrigger(n,r,a)}register(e,n){this._transitionEngine.register(e,n)}destroy(e,n){this._transitionEngine.destroy(e,n)}onInsert(e,n,i,r){this._transitionEngine.insertNode(e,n,i,r)}onRemove(e,n,i){this._transitionEngine.removeNode(e,n,i)}disableAnimations(e,n){this._transitionEngine.markElementAsDisabled(e,n)}process(e,n,i,r){if(i.charAt(0)=="@"){const[s,o]=E0(i),a=r;this._timelineEngine.command(s,n,o,a)}else this._transitionEngine.trigger(e,n,i,r)}listen(e,n,i,r,s){if(i.charAt(0)=="@"){const[o,a]=E0(i);return this._timelineEngine.listen(o,n,a,s)}return this._transitionEngine.listen(e,n,i,r,s)}flush(e=-1){this._transitionEngine.flush(e)}get players(){return[...this._transitionEngine.players,...this._timelineEngine.players]}whenRenderingDone(){return this._transitionEngine.whenRenderingDone()}afterFlushAnimationsDone(e){this._transitionEngine.afterFlushAnimationsDone(e)}}function X8(t,e){let n=null,i=null;return Array.isArray(e)&&e.length?(n=Vh(e[0]),e.length>1&&(i=Vh(e[e.length-1]))):e instanceof Map&&(n=Vh(e)),n||i?new J8(t,n,i):null}let J8=(()=>{const n=class n{constructor(r,s,o){l(this,"_element");l(this,"_startStyles");l(this,"_endStyles");l(this,"_state",0);l(this,"_initialStyles");this._element=r,this._startStyles=s,this._endStyles=o;let a=n.initialStylesByElement.get(r);a||n.initialStylesByElement.set(r,a=new Map),this._initialStyles=a}start(){this._state<1&&(this._startStyles&&kn(this._element,this._startStyles,this._initialStyles),this._state=1)}finish(){this.start(),this._state<2&&(kn(this._element,this._initialStyles),this._endStyles&&(kn(this._element,this._endStyles),this._endStyles=null),this._state=1)}destroy(){this.finish(),this._state<3&&(n.initialStylesByElement.delete(this._element),this._startStyles&&(ri(this._element,this._startStyles),this._endStyles=null),this._endStyles&&(ri(this._element,this._endStyles),this._endStyles=null),kn(this._element,this._initialStyles),this._state=3)}};l(n,"initialStylesByElement",new WeakMap);let e=n;return e})();function Vh(t){let e=null;return t.forEach((n,i)=>{e7(i)&&(e=e||new Map,e.set(i,n))}),e}function e7(t){return t==="display"||t==="position"}class P0{constructor(e,n,i,r){l(this,"element");l(this,"keyframes");l(this,"options");l(this,"_specialStyles");l(this,"_onDoneFns",[]);l(this,"_onStartFns",[]);l(this,"_onDestroyFns",[]);l(this,"_duration");l(this,"_delay");l(this,"_initialized",!1);l(this,"_finished",!1);l(this,"_started",!1);l(this,"_destroyed",!1);l(this,"_finalKeyframe");l(this,"_originalOnDoneFns",[]);l(this,"_originalOnStartFns",[]);l(this,"domPlayer");l(this,"time",0);l(this,"parentPlayer",null);l(this,"currentSnapshot",new Map);this.element=e,this.keyframes=n,this.options=i,this._specialStyles=r,this._duration=i.duration,this._delay=i.delay||0,this.time=this._duration+this._delay}_onFinish(){this._finished||(this._finished=!0,this._onDoneFns.forEach(e=>e()),this._onDoneFns=[])}init(){this._buildPlayer(),this._preparePlayerBeforeStart()}_buildPlayer(){if(this._initialized)return;this._initialized=!0;const e=this.keyframes;this.domPlayer=this._triggerWebAnimation(this.element,e,this.options),this._finalKeyframe=e.length?e[e.length-1]:new Map;const n=()=>this._onFinish();this.domPlayer.addEventListener("finish",n),this.onDestroy(()=>{this.domPlayer.removeEventListener("finish",n)})}_preparePlayerBeforeStart(){this._delay?this._resetDomPlayerState():this.domPlayer.pause()}_convertKeyframesToObject(e){const n=[];return e.forEach(i=>{n.push(Object.fromEntries(i))}),n}_triggerWebAnimation(e,n,i){return e.animate(this._convertKeyframesToObject(n),i)}onStart(e){this._originalOnStartFns.push(e),this._onStartFns.push(e)}onDone(e){this._originalOnDoneFns.push(e),this._onDoneFns.push(e)}onDestroy(e){this._onDestroyFns.push(e)}play(){this._buildPlayer(),this.hasStarted()||(this._onStartFns.forEach(e=>e()),this._onStartFns=[],this._started=!0,this._specialStyles&&this._specialStyles.start()),this.domPlayer.play()}pause(){this.init(),this.domPlayer.pause()}finish(){this.init(),this._specialStyles&&this._specialStyles.finish(),this._onFinish(),this.domPlayer.finish()}reset(){this._resetDomPlayerState(),this._destroyed=!1,this._finished=!1,this._started=!1,this._onStartFns=this._originalOnStartFns,this._onDoneFns=this._originalOnDoneFns}_resetDomPlayerState(){this.domPlayer&&this.domPlayer.cancel()}restart(){this.reset(),this.play()}hasStarted(){return this._started}destroy(){this._destroyed||(this._destroyed=!0,this._resetDomPlayerState(),this._onFinish(),this._specialStyles&&this._specialStyles.destroy(),this._onDestroyFns.forEach(e=>e()),this._onDestroyFns=[])}setPosition(e){this.domPlayer===void 0&&this.init(),this.domPlayer.currentTime=e*this.time}getPosition(){return+(this.domPlayer.currentTime??0)/this.time}get totalTime(){return this._delay+this._duration}beforeDestroy(){const e=new Map;this.hasStarted()&&this._finalKeyframe.forEach((i,r)=>{r!=="offset"&&e.set(r,this._finished?i:Ng(this.element,r))}),this.currentSnapshot=e}triggerCallback(e){const n=e==="start"?this._onStartFns:this._onDoneFns;n.forEach(i=>i()),n.length=0}}class t7{validateStyleProperty(e){return!0}validateAnimatableStyleProperty(e){return!0}containsElement(e,n){return rk(e,n)}getParentElement(e){return Fg(e)}query(e,n,i){return ik(e,n,i)}computeStyle(e,n,i){return Ng(e,n)}animate(e,n,i,r,s,o=[]){const a=r==0?"both":"forwards",c={duration:i,delay:r,fill:a};s&&(c.easing=s);const u=new Map,h=o.filter(p=>p instanceof P0);c8(i,r)&&h.forEach(p=>{p.currentSnapshot.forEach((m,y)=>u.set(y,m))});let f=o8(n).map(p=>new Map(p));f=u8(e,f,u);const d=X8(e,f);return new P0(e,f,c,d)}}const Rl="@",gk="@.disabled";class yk{constructor(e,n,i,r){l(this,"namespaceId");l(this,"delegate");l(this,"engine");l(this,"_onDestroy");l(this,"ɵtype",0);this.namespaceId=e,this.delegate=n,this.engine=i,this._onDestroy=r}get data(){return this.delegate.data}destroyNode(e){this.delegate.destroyNode?.(e)}destroy(){this.engine.destroy(this.namespaceId,this.delegate),this.engine.afterFlushAnimationsDone(()=>{queueMicrotask(()=>{this.delegate.destroy()})}),this._onDestroy?.()}createElement(e,n){return this.delegate.createElement(e,n)}createComment(e){return this.delegate.createComment(e)}createText(e){return this.delegate.createText(e)}appendChild(e,n){this.delegate.appendChild(e,n),this.engine.onInsert(this.namespaceId,n,e,!1)}insertBefore(e,n,i,r=!0){this.delegate.insertBefore(e,n,i),this.engine.onInsert(this.namespaceId,n,e,r)}removeChild(e,n,i){this.parentNode(n)&&this.engine.onRemove(this.namespaceId,n,this.delegate)}selectRootElement(e,n){return this.delegate.selectRootElement(e,n)}parentNode(e){return this.delegate.parentNode(e)}nextSibling(e){return this.delegate.nextSibling(e)}setAttribute(e,n,i,r){this.delegate.setAttribute(e,n,i,r)}removeAttribute(e,n,i){this.delegate.removeAttribute(e,n,i)}addClass(e,n){this.delegate.addClass(e,n)}removeClass(e,n){this.delegate.removeClass(e,n)}setStyle(e,n,i,r){this.delegate.setStyle(e,n,i,r)}removeStyle(e,n,i){this.delegate.removeStyle(e,n,i)}setProperty(e,n,i){n.charAt(0)==Rl&&n==gk?this.disableAnimations(e,!!i):this.delegate.setProperty(e,n,i)}setValue(e,n){this.delegate.setValue(e,n)}listen(e,n,i){return this.delegate.listen(e,n,i)}disableAnimations(e,n){this.engine.disableAnimations(e,n)}}class n7 extends yk{constructor(n,i,r,s,o){super(i,r,s,o);l(this,"factory");this.factory=n,this.namespaceId=i}setProperty(n,i,r){i.charAt(0)==Rl?i.charAt(1)=="."&&i==gk?(r=r===void 0?!0:!!r,this.disableAnimations(n,r)):this.engine.process(this.namespaceId,n,i.slice(1),r):this.delegate.setProperty(n,i,r)}listen(n,i,r){if(i.charAt(0)==Rl){const s=r7(n);let o=i.slice(1),a="";return o.charAt(0)!=Rl&&([o,a]=i7(o)),this.engine.listen(this.namespaceId,s,o,a,c=>{const u=c._data||-1;this.factory.scheduleListenerCallback(u,r,c)})}return this.delegate.listen(n,i,r)}}function r7(t){switch(t){case"body":return document.body;case"document":return document;case"window":return window;default:return t}}function i7(t){const e=t.indexOf("."),n=t.substring(0,e),i=t.slice(e+1);return[n,i]}class s7{constructor(e,n,i){l(this,"delegate");l(this,"engine");l(this,"_zone");l(this,"_currentId",0);l(this,"_microtaskId",1);l(this,"_animationCallbacksBuffer",[]);l(this,"_rendererCache",new Map);l(this,"_cdRecurDepth",0);this.delegate=e,this.engine=n,this._zone=i,n.onRemovalComplete=(r,s)=>{s?.removeChild(null,r)}}createRenderer(e,n){const i="",r=this.delegate.createRenderer(e,n);if(!e||!n?.data?.animation){const u=this._rendererCache;let h=u.get(r);if(!h){const f=()=>u.delete(r);h=new yk(i,r,this.engine,f),u.set(r,h)}return h}const s=n.id,o=n.id+"-"+this._currentId;this._currentId++,this.engine.register(o,e);const a=u=>{Array.isArray(u)?u.forEach(a):this.engine.registerTrigger(s,o,e,u.name,u)};return n.data.animation.forEach(a),new n7(this,o,r,this.engine)}begin(){this._cdRecurDepth++,this.delegate.begin&&this.delegate.begin()}_scheduleCountTask(){queueMicrotask(()=>{this._microtaskId++})}scheduleListenerCallback(e,n,i){if(e>=0&&en(i));return}const r=this._animationCallbacksBuffer;r.length==0&&queueMicrotask(()=>{this._zone.run(()=>{r.forEach(s=>{const[o,a]=s;o(a)}),this._animationCallbacksBuffer=[]})}),r.push([n,i])}end(){this._cdRecurDepth--,this._cdRecurDepth==0&&this._zone.runOutsideAngular(()=>{this._scheduleCountTask(),this.engine.flush(this._microtaskId)}),this.delegate.end&&this.delegate.end()}whenRenderingDone(){return this.engine.whenRenderingDone()}}/** + * @license Angular v19.0.5 + * (c) 2010-2024 Google LLC. https://angular.io/ + * License: MIT + */let o7=(()=>{const n=class n extends Vd{constructor(r,s,o){super(r,s,o)}ngOnDestroy(){this.flush()}};l(n,"ɵfac",function(s){return new(s||n)(ie(we),ie(sk),ie(Og))}),l(n,"ɵprov",O({token:n,factory:n.ɵfac}));let e=n;return e})();function a7(){return new f8}function l7(t,e,n){return new s7(t,e,n)}const c7=[{provide:Og,useFactory:a7},{provide:Vd,useClass:o7},{provide:Ri,useFactory:l7,deps:[jf,Vd,ge]}],u7=[{provide:sk,useFactory:()=>new t7},{provide:$E,useValue:"BrowserAnimations"},...c7];function h7(){return jn("NgEagerAnimations"),[...u7]}function f7(t={}){return[{provide:wa,useClass:Ag}]}const d7={providers:[h7(),b$(),RL(FL()),mM(),ZA(qA({loadMermaid:()=>M(()=>import("./mermaid.core-B_tqKmhs.js").then(t=>t.b6),[])}),f7())]};iM(Rd,d7);export{WR as $,T2 as A,Pt as B,Vp as C,mt as D,Ue as E,CI as F,F2 as G,SI as H,ha as I,B as J,Em as K,m7 as L,Hs as M,ge as N,xe as O,Jt as P,BC as Q,d2 as R,oe as S,jC as T,A7 as U,WC as V,$C as W,_7 as X,E7 as Y,w7 as Z,M as _,le as a,v7 as a0,b7 as a1,W6 as a2,Up as a3,Bo as a4,MR as a5,B2 as a6,S7 as a7,$6 as a8,nt as a9,Nl as aA,P2 as aB,w2 as aC,Hr as aD,_n as aE,Ib as aF,gu as aG,V4 as aH,Dv as aI,p6 as aJ,C7 as aK,we as aL,hM as aM,dM as aN,O as aO,Vr as aP,Fi as aQ,ko as aR,dp as aS,aA as aT,$2 as aa,G2 as ab,K6 as ac,XN as ad,k7 as ae,$e as af,cD as ag,D7 as ah,Go as ai,Jn as aj,At as ak,x7 as al,ur as am,Ge as an,xr as ao,ZC as ap,qe as aq,Ds as ar,I7 as as,U4 as at,up as au,Zo as av,ue as aw,Sn as ax,yv as ay,Do as az,Ee as b,R7 as c,be as d,pn as e,hr as f,iV as g,lr as h,Te as i,g as j,Us as k,wu as l,Am as m,yu as n,G as o,_u as p,T7 as q,Ot as r,Zt as s,Ln as t,ca as u,Ht as v,du as w,fl as x,wr as y,RC as z,Ye as ɵ}; diff --git a/assets/index-CZLSIS4C.css b/assets/index-CZLSIS4C.css new file mode 100644 index 00000000..6240b21c --- /dev/null +++ b/assets/index-CZLSIS4C.css @@ -0,0 +1,10 @@ +@charset "UTF-8";@import"https://fonts.googleapis.com/css?family=Montserrat:800&display=swap";@import"https://fonts.googleapis.com/css?family=Raleway:200,700|Source+Sans+Pro:300,600,300italic,600italic&display=swap";/*! + * animate.css - https://animate.style/ + * Version - 4.1.1 + * Licensed under the MIT license - http://opensource.org/licenses/MIT + * + * Copyright (c) 2020 Animate.css + */:root{--animate-duration: 1s;--animate-delay: 1s;--animate-repeat: 1}.animate__animated{-webkit-animation-duration:1s;animation-duration:1s;-webkit-animation-duration:var(--animate-duration);animation-duration:var(--animate-duration);-webkit-animation-fill-mode:both;animation-fill-mode:both}.animate__animated.animate__infinite{-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite}.animate__animated.animate__repeat-1{-webkit-animation-iteration-count:1;animation-iteration-count:1;-webkit-animation-iteration-count:var(--animate-repeat);animation-iteration-count:var(--animate-repeat)}.animate__animated.animate__repeat-2{-webkit-animation-iteration-count:2;animation-iteration-count:2;-webkit-animation-iteration-count:calc(var(--animate-repeat) * 2);animation-iteration-count:calc(var(--animate-repeat) * 2)}.animate__animated.animate__repeat-3{-webkit-animation-iteration-count:3;animation-iteration-count:3;-webkit-animation-iteration-count:calc(var(--animate-repeat) * 3);animation-iteration-count:calc(var(--animate-repeat) * 3)}.animate__animated.animate__delay-1s{-webkit-animation-delay:1s;animation-delay:1s;-webkit-animation-delay:var(--animate-delay);animation-delay:var(--animate-delay)}.animate__animated.animate__delay-2s{-webkit-animation-delay:2s;animation-delay:2s;-webkit-animation-delay:calc(var(--animate-delay) * 2);animation-delay:calc(var(--animate-delay) * 2)}.animate__animated.animate__delay-3s{-webkit-animation-delay:3s;animation-delay:3s;-webkit-animation-delay:calc(var(--animate-delay) * 3);animation-delay:calc(var(--animate-delay) * 3)}.animate__animated.animate__delay-4s{-webkit-animation-delay:4s;animation-delay:4s;-webkit-animation-delay:calc(var(--animate-delay) * 4);animation-delay:calc(var(--animate-delay) * 4)}.animate__animated.animate__delay-5s{-webkit-animation-delay:5s;animation-delay:5s;-webkit-animation-delay:calc(var(--animate-delay) * 5);animation-delay:calc(var(--animate-delay) * 5)}.animate__animated.animate__faster{-webkit-animation-duration:.5s;animation-duration:.5s;-webkit-animation-duration:calc(var(--animate-duration) / 2);animation-duration:calc(var(--animate-duration) / 2)}.animate__animated.animate__fast{-webkit-animation-duration:.8s;animation-duration:.8s;-webkit-animation-duration:calc(var(--animate-duration) * .8);animation-duration:calc(var(--animate-duration) * .8)}.animate__animated.animate__slow{-webkit-animation-duration:2s;animation-duration:2s;-webkit-animation-duration:calc(var(--animate-duration) * 2);animation-duration:calc(var(--animate-duration) * 2)}.animate__animated.animate__slower{-webkit-animation-duration:3s;animation-duration:3s;-webkit-animation-duration:calc(var(--animate-duration) * 3);animation-duration:calc(var(--animate-duration) * 3)}@media print,(prefers-reduced-motion: reduce){.animate__animated{-webkit-animation-duration:1ms!important;animation-duration:1ms!important;-webkit-transition-duration:1ms!important;transition-duration:1ms!important;-webkit-animation-iteration-count:1!important;animation-iteration-count:1!important}.animate__animated[class*=Out]{opacity:0}}@-webkit-keyframes bounce{0%,20%,53%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1);-webkit-transform:translate3d(0,0,0);transform:translateZ(0)}40%,43%{-webkit-animation-timing-function:cubic-bezier(.755,.05,.855,.06);animation-timing-function:cubic-bezier(.755,.05,.855,.06);-webkit-transform:translate3d(0,-30px,0) scaleY(1.1);transform:translate3d(0,-30px,0) scaleY(1.1)}70%{-webkit-animation-timing-function:cubic-bezier(.755,.05,.855,.06);animation-timing-function:cubic-bezier(.755,.05,.855,.06);-webkit-transform:translate3d(0,-15px,0) scaleY(1.05);transform:translate3d(0,-15px,0) scaleY(1.05)}80%{-webkit-transition-timing-function:cubic-bezier(.215,.61,.355,1);transition-timing-function:cubic-bezier(.215,.61,.355,1);-webkit-transform:translate3d(0,0,0) scaleY(.95);transform:translateZ(0) scaleY(.95)}90%{-webkit-transform:translate3d(0,-4px,0) scaleY(1.02);transform:translate3d(0,-4px,0) scaleY(1.02)}}@keyframes bounce{0%,20%,53%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1);-webkit-transform:translate3d(0,0,0);transform:translateZ(0)}40%,43%{-webkit-animation-timing-function:cubic-bezier(.755,.05,.855,.06);animation-timing-function:cubic-bezier(.755,.05,.855,.06);-webkit-transform:translate3d(0,-30px,0) scaleY(1.1);transform:translate3d(0,-30px,0) scaleY(1.1)}70%{-webkit-animation-timing-function:cubic-bezier(.755,.05,.855,.06);animation-timing-function:cubic-bezier(.755,.05,.855,.06);-webkit-transform:translate3d(0,-15px,0) scaleY(1.05);transform:translate3d(0,-15px,0) scaleY(1.05)}80%{-webkit-transition-timing-function:cubic-bezier(.215,.61,.355,1);transition-timing-function:cubic-bezier(.215,.61,.355,1);-webkit-transform:translate3d(0,0,0) scaleY(.95);transform:translateZ(0) scaleY(.95)}90%{-webkit-transform:translate3d(0,-4px,0) scaleY(1.02);transform:translate3d(0,-4px,0) scaleY(1.02)}}.animate__bounce{-webkit-animation-name:bounce;animation-name:bounce;-webkit-transform-origin:center bottom;transform-origin:center bottom}@-webkit-keyframes flash{0%,50%,to{opacity:1}25%,75%{opacity:0}}@keyframes flash{0%,50%,to{opacity:1}25%,75%{opacity:0}}.animate__flash{-webkit-animation-name:flash;animation-name:flash}@-webkit-keyframes pulse{0%{-webkit-transform:scale3d(1,1,1);transform:scaleZ(1)}50%{-webkit-transform:scale3d(1.05,1.05,1.05);transform:scale3d(1.05,1.05,1.05)}to{-webkit-transform:scale3d(1,1,1);transform:scaleZ(1)}}@keyframes pulse{0%{-webkit-transform:scale3d(1,1,1);transform:scaleZ(1)}50%{-webkit-transform:scale3d(1.05,1.05,1.05);transform:scale3d(1.05,1.05,1.05)}to{-webkit-transform:scale3d(1,1,1);transform:scaleZ(1)}}.animate__pulse{-webkit-animation-name:pulse;animation-name:pulse;-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}@-webkit-keyframes rubberBand{0%{-webkit-transform:scale3d(1,1,1);transform:scaleZ(1)}30%{-webkit-transform:scale3d(1.25,.75,1);transform:scale3d(1.25,.75,1)}40%{-webkit-transform:scale3d(.75,1.25,1);transform:scale3d(.75,1.25,1)}50%{-webkit-transform:scale3d(1.15,.85,1);transform:scale3d(1.15,.85,1)}65%{-webkit-transform:scale3d(.95,1.05,1);transform:scale3d(.95,1.05,1)}75%{-webkit-transform:scale3d(1.05,.95,1);transform:scale3d(1.05,.95,1)}to{-webkit-transform:scale3d(1,1,1);transform:scaleZ(1)}}@keyframes rubberBand{0%{-webkit-transform:scale3d(1,1,1);transform:scaleZ(1)}30%{-webkit-transform:scale3d(1.25,.75,1);transform:scale3d(1.25,.75,1)}40%{-webkit-transform:scale3d(.75,1.25,1);transform:scale3d(.75,1.25,1)}50%{-webkit-transform:scale3d(1.15,.85,1);transform:scale3d(1.15,.85,1)}65%{-webkit-transform:scale3d(.95,1.05,1);transform:scale3d(.95,1.05,1)}75%{-webkit-transform:scale3d(1.05,.95,1);transform:scale3d(1.05,.95,1)}to{-webkit-transform:scale3d(1,1,1);transform:scaleZ(1)}}.animate__rubberBand{-webkit-animation-name:rubberBand;animation-name:rubberBand}@-webkit-keyframes shakeX{0%,to{-webkit-transform:translate3d(0,0,0);transform:translateZ(0)}10%,30%,50%,70%,90%{-webkit-transform:translate3d(-10px,0,0);transform:translate3d(-10px,0,0)}20%,40%,60%,80%{-webkit-transform:translate3d(10px,0,0);transform:translate3d(10px,0,0)}}@keyframes shakeX{0%,to{-webkit-transform:translate3d(0,0,0);transform:translateZ(0)}10%,30%,50%,70%,90%{-webkit-transform:translate3d(-10px,0,0);transform:translate3d(-10px,0,0)}20%,40%,60%,80%{-webkit-transform:translate3d(10px,0,0);transform:translate3d(10px,0,0)}}.animate__shakeX{-webkit-animation-name:shakeX;animation-name:shakeX}@-webkit-keyframes shakeY{0%,to{-webkit-transform:translate3d(0,0,0);transform:translateZ(0)}10%,30%,50%,70%,90%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}20%,40%,60%,80%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}}@keyframes shakeY{0%,to{-webkit-transform:translate3d(0,0,0);transform:translateZ(0)}10%,30%,50%,70%,90%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}20%,40%,60%,80%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}}.animate__shakeY{-webkit-animation-name:shakeY;animation-name:shakeY}@-webkit-keyframes headShake{0%{-webkit-transform:translateX(0);transform:translate(0)}6.5%{-webkit-transform:translateX(-6px) rotateY(-9deg);transform:translate(-6px) rotateY(-9deg)}18.5%{-webkit-transform:translateX(5px) rotateY(7deg);transform:translate(5px) rotateY(7deg)}31.5%{-webkit-transform:translateX(-3px) rotateY(-5deg);transform:translate(-3px) rotateY(-5deg)}43.5%{-webkit-transform:translateX(2px) rotateY(3deg);transform:translate(2px) rotateY(3deg)}50%{-webkit-transform:translateX(0);transform:translate(0)}}@keyframes headShake{0%{-webkit-transform:translateX(0);transform:translate(0)}6.5%{-webkit-transform:translateX(-6px) rotateY(-9deg);transform:translate(-6px) rotateY(-9deg)}18.5%{-webkit-transform:translateX(5px) rotateY(7deg);transform:translate(5px) rotateY(7deg)}31.5%{-webkit-transform:translateX(-3px) rotateY(-5deg);transform:translate(-3px) rotateY(-5deg)}43.5%{-webkit-transform:translateX(2px) rotateY(3deg);transform:translate(2px) rotateY(3deg)}50%{-webkit-transform:translateX(0);transform:translate(0)}}.animate__headShake{-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out;-webkit-animation-name:headShake;animation-name:headShake}@-webkit-keyframes swing{20%{-webkit-transform:rotate3d(0,0,1,15deg);transform:rotate3d(0,0,1,15deg)}40%{-webkit-transform:rotate3d(0,0,1,-10deg);transform:rotate3d(0,0,1,-10deg)}60%{-webkit-transform:rotate3d(0,0,1,5deg);transform:rotate3d(0,0,1,5deg)}80%{-webkit-transform:rotate3d(0,0,1,-5deg);transform:rotate3d(0,0,1,-5deg)}to{-webkit-transform:rotate3d(0,0,1,0deg);transform:rotate3d(0,0,1,0)}}@keyframes swing{20%{-webkit-transform:rotate3d(0,0,1,15deg);transform:rotate3d(0,0,1,15deg)}40%{-webkit-transform:rotate3d(0,0,1,-10deg);transform:rotate3d(0,0,1,-10deg)}60%{-webkit-transform:rotate3d(0,0,1,5deg);transform:rotate3d(0,0,1,5deg)}80%{-webkit-transform:rotate3d(0,0,1,-5deg);transform:rotate3d(0,0,1,-5deg)}to{-webkit-transform:rotate3d(0,0,1,0deg);transform:rotate3d(0,0,1,0)}}.animate__swing{-webkit-transform-origin:top center;transform-origin:top center;-webkit-animation-name:swing;animation-name:swing}@-webkit-keyframes tada{0%{-webkit-transform:scale3d(1,1,1);transform:scaleZ(1)}10%,20%{-webkit-transform:scale3d(.9,.9,.9) rotate3d(0,0,1,-3deg);transform:scale3d(.9,.9,.9) rotate3d(0,0,1,-3deg)}30%,50%,70%,90%{-webkit-transform:scale3d(1.1,1.1,1.1) rotate3d(0,0,1,3deg);transform:scale3d(1.1,1.1,1.1) rotate3d(0,0,1,3deg)}40%,60%,80%{-webkit-transform:scale3d(1.1,1.1,1.1) rotate3d(0,0,1,-3deg);transform:scale3d(1.1,1.1,1.1) rotate3d(0,0,1,-3deg)}to{-webkit-transform:scale3d(1,1,1);transform:scaleZ(1)}}@keyframes tada{0%{-webkit-transform:scale3d(1,1,1);transform:scaleZ(1)}10%,20%{-webkit-transform:scale3d(.9,.9,.9) rotate3d(0,0,1,-3deg);transform:scale3d(.9,.9,.9) rotate3d(0,0,1,-3deg)}30%,50%,70%,90%{-webkit-transform:scale3d(1.1,1.1,1.1) rotate3d(0,0,1,3deg);transform:scale3d(1.1,1.1,1.1) rotate3d(0,0,1,3deg)}40%,60%,80%{-webkit-transform:scale3d(1.1,1.1,1.1) rotate3d(0,0,1,-3deg);transform:scale3d(1.1,1.1,1.1) rotate3d(0,0,1,-3deg)}to{-webkit-transform:scale3d(1,1,1);transform:scaleZ(1)}}.animate__tada{-webkit-animation-name:tada;animation-name:tada}@-webkit-keyframes wobble{0%{-webkit-transform:translate3d(0,0,0);transform:translateZ(0)}15%{-webkit-transform:translate3d(-25%,0,0) rotate3d(0,0,1,-5deg);transform:translate3d(-25%,0,0) rotate3d(0,0,1,-5deg)}30%{-webkit-transform:translate3d(20%,0,0) rotate3d(0,0,1,3deg);transform:translate3d(20%,0,0) rotate3d(0,0,1,3deg)}45%{-webkit-transform:translate3d(-15%,0,0) rotate3d(0,0,1,-3deg);transform:translate3d(-15%,0,0) rotate3d(0,0,1,-3deg)}60%{-webkit-transform:translate3d(10%,0,0) rotate3d(0,0,1,2deg);transform:translate3d(10%,0,0) rotate3d(0,0,1,2deg)}75%{-webkit-transform:translate3d(-5%,0,0) rotate3d(0,0,1,-1deg);transform:translate3d(-5%,0,0) rotate3d(0,0,1,-1deg)}to{-webkit-transform:translate3d(0,0,0);transform:translateZ(0)}}@keyframes wobble{0%{-webkit-transform:translate3d(0,0,0);transform:translateZ(0)}15%{-webkit-transform:translate3d(-25%,0,0) rotate3d(0,0,1,-5deg);transform:translate3d(-25%,0,0) rotate3d(0,0,1,-5deg)}30%{-webkit-transform:translate3d(20%,0,0) rotate3d(0,0,1,3deg);transform:translate3d(20%,0,0) rotate3d(0,0,1,3deg)}45%{-webkit-transform:translate3d(-15%,0,0) rotate3d(0,0,1,-3deg);transform:translate3d(-15%,0,0) rotate3d(0,0,1,-3deg)}60%{-webkit-transform:translate3d(10%,0,0) rotate3d(0,0,1,2deg);transform:translate3d(10%,0,0) rotate3d(0,0,1,2deg)}75%{-webkit-transform:translate3d(-5%,0,0) rotate3d(0,0,1,-1deg);transform:translate3d(-5%,0,0) rotate3d(0,0,1,-1deg)}to{-webkit-transform:translate3d(0,0,0);transform:translateZ(0)}}.animate__wobble{-webkit-animation-name:wobble;animation-name:wobble}@-webkit-keyframes jello{0%,11.1%,to{-webkit-transform:translate3d(0,0,0);transform:translateZ(0)}22.2%{-webkit-transform:skewX(-12.5deg) skewY(-12.5deg);transform:skew(-12.5deg) skewY(-12.5deg)}33.3%{-webkit-transform:skewX(6.25deg) skewY(6.25deg);transform:skew(6.25deg) skewY(6.25deg)}44.4%{-webkit-transform:skewX(-3.125deg) skewY(-3.125deg);transform:skew(-3.125deg) skewY(-3.125deg)}55.5%{-webkit-transform:skewX(1.5625deg) skewY(1.5625deg);transform:skew(1.5625deg) skewY(1.5625deg)}66.6%{-webkit-transform:skewX(-.78125deg) skewY(-.78125deg);transform:skew(-.78125deg) skewY(-.78125deg)}77.7%{-webkit-transform:skewX(.390625deg) skewY(.390625deg);transform:skew(.390625deg) skewY(.390625deg)}88.8%{-webkit-transform:skewX(-.1953125deg) skewY(-.1953125deg);transform:skew(-.1953125deg) skewY(-.1953125deg)}}@keyframes jello{0%,11.1%,to{-webkit-transform:translate3d(0,0,0);transform:translateZ(0)}22.2%{-webkit-transform:skewX(-12.5deg) skewY(-12.5deg);transform:skew(-12.5deg) skewY(-12.5deg)}33.3%{-webkit-transform:skewX(6.25deg) skewY(6.25deg);transform:skew(6.25deg) skewY(6.25deg)}44.4%{-webkit-transform:skewX(-3.125deg) skewY(-3.125deg);transform:skew(-3.125deg) skewY(-3.125deg)}55.5%{-webkit-transform:skewX(1.5625deg) skewY(1.5625deg);transform:skew(1.5625deg) skewY(1.5625deg)}66.6%{-webkit-transform:skewX(-.78125deg) skewY(-.78125deg);transform:skew(-.78125deg) skewY(-.78125deg)}77.7%{-webkit-transform:skewX(.390625deg) skewY(.390625deg);transform:skew(.390625deg) skewY(.390625deg)}88.8%{-webkit-transform:skewX(-.1953125deg) skewY(-.1953125deg);transform:skew(-.1953125deg) skewY(-.1953125deg)}}.animate__jello{-webkit-animation-name:jello;animation-name:jello;-webkit-transform-origin:center;transform-origin:center}@-webkit-keyframes heartBeat{0%{-webkit-transform:scale(1);transform:scale(1)}14%{-webkit-transform:scale(1.3);transform:scale(1.3)}28%{-webkit-transform:scale(1);transform:scale(1)}42%{-webkit-transform:scale(1.3);transform:scale(1.3)}70%{-webkit-transform:scale(1);transform:scale(1)}}@keyframes heartBeat{0%{-webkit-transform:scale(1);transform:scale(1)}14%{-webkit-transform:scale(1.3);transform:scale(1.3)}28%{-webkit-transform:scale(1);transform:scale(1)}42%{-webkit-transform:scale(1.3);transform:scale(1.3)}70%{-webkit-transform:scale(1);transform:scale(1)}}.animate__heartBeat{-webkit-animation-name:heartBeat;animation-name:heartBeat;-webkit-animation-duration:1.3s;animation-duration:1.3s;-webkit-animation-duration:calc(var(--animate-duration) * 1.3);animation-duration:calc(var(--animate-duration) * 1.3);-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}@-webkit-keyframes backInDown{0%{-webkit-transform:translateY(-1200px) scale(.7);transform:translateY(-1200px) scale(.7);opacity:.7}80%{-webkit-transform:translateY(0px) scale(.7);transform:translateY(0) scale(.7);opacity:.7}to{-webkit-transform:scale(1);transform:scale(1);opacity:1}}@keyframes backInDown{0%{-webkit-transform:translateY(-1200px) scale(.7);transform:translateY(-1200px) scale(.7);opacity:.7}80%{-webkit-transform:translateY(0px) scale(.7);transform:translateY(0) scale(.7);opacity:.7}to{-webkit-transform:scale(1);transform:scale(1);opacity:1}}.animate__backInDown{-webkit-animation-name:backInDown;animation-name:backInDown}@-webkit-keyframes backInLeft{0%{-webkit-transform:translateX(-2000px) scale(.7);transform:translate(-2000px) scale(.7);opacity:.7}80%{-webkit-transform:translateX(0px) scale(.7);transform:translate(0) scale(.7);opacity:.7}to{-webkit-transform:scale(1);transform:scale(1);opacity:1}}@keyframes backInLeft{0%{-webkit-transform:translateX(-2000px) scale(.7);transform:translate(-2000px) scale(.7);opacity:.7}80%{-webkit-transform:translateX(0px) scale(.7);transform:translate(0) scale(.7);opacity:.7}to{-webkit-transform:scale(1);transform:scale(1);opacity:1}}.animate__backInLeft{-webkit-animation-name:backInLeft;animation-name:backInLeft}@-webkit-keyframes backInRight{0%{-webkit-transform:translateX(2000px) scale(.7);transform:translate(2000px) scale(.7);opacity:.7}80%{-webkit-transform:translateX(0px) scale(.7);transform:translate(0) scale(.7);opacity:.7}to{-webkit-transform:scale(1);transform:scale(1);opacity:1}}@keyframes backInRight{0%{-webkit-transform:translateX(2000px) scale(.7);transform:translate(2000px) scale(.7);opacity:.7}80%{-webkit-transform:translateX(0px) scale(.7);transform:translate(0) scale(.7);opacity:.7}to{-webkit-transform:scale(1);transform:scale(1);opacity:1}}.animate__backInRight{-webkit-animation-name:backInRight;animation-name:backInRight}@-webkit-keyframes backInUp{0%{-webkit-transform:translateY(1200px) scale(.7);transform:translateY(1200px) scale(.7);opacity:.7}80%{-webkit-transform:translateY(0px) scale(.7);transform:translateY(0) scale(.7);opacity:.7}to{-webkit-transform:scale(1);transform:scale(1);opacity:1}}@keyframes backInUp{0%{-webkit-transform:translateY(1200px) scale(.7);transform:translateY(1200px) scale(.7);opacity:.7}80%{-webkit-transform:translateY(0px) scale(.7);transform:translateY(0) scale(.7);opacity:.7}to{-webkit-transform:scale(1);transform:scale(1);opacity:1}}.animate__backInUp{-webkit-animation-name:backInUp;animation-name:backInUp}@-webkit-keyframes backOutDown{0%{-webkit-transform:scale(1);transform:scale(1);opacity:1}20%{-webkit-transform:translateY(0px) scale(.7);transform:translateY(0) scale(.7);opacity:.7}to{-webkit-transform:translateY(700px) scale(.7);transform:translateY(700px) scale(.7);opacity:.7}}@keyframes backOutDown{0%{-webkit-transform:scale(1);transform:scale(1);opacity:1}20%{-webkit-transform:translateY(0px) scale(.7);transform:translateY(0) scale(.7);opacity:.7}to{-webkit-transform:translateY(700px) scale(.7);transform:translateY(700px) scale(.7);opacity:.7}}.animate__backOutDown{-webkit-animation-name:backOutDown;animation-name:backOutDown}@-webkit-keyframes backOutLeft{0%{-webkit-transform:scale(1);transform:scale(1);opacity:1}20%{-webkit-transform:translateX(0px) scale(.7);transform:translate(0) scale(.7);opacity:.7}to{-webkit-transform:translateX(-2000px) scale(.7);transform:translate(-2000px) scale(.7);opacity:.7}}@keyframes backOutLeft{0%{-webkit-transform:scale(1);transform:scale(1);opacity:1}20%{-webkit-transform:translateX(0px) scale(.7);transform:translate(0) scale(.7);opacity:.7}to{-webkit-transform:translateX(-2000px) scale(.7);transform:translate(-2000px) scale(.7);opacity:.7}}.animate__backOutLeft{-webkit-animation-name:backOutLeft;animation-name:backOutLeft}@-webkit-keyframes backOutRight{0%{-webkit-transform:scale(1);transform:scale(1);opacity:1}20%{-webkit-transform:translateX(0px) scale(.7);transform:translate(0) scale(.7);opacity:.7}to{-webkit-transform:translateX(2000px) scale(.7);transform:translate(2000px) scale(.7);opacity:.7}}@keyframes backOutRight{0%{-webkit-transform:scale(1);transform:scale(1);opacity:1}20%{-webkit-transform:translateX(0px) scale(.7);transform:translate(0) scale(.7);opacity:.7}to{-webkit-transform:translateX(2000px) scale(.7);transform:translate(2000px) scale(.7);opacity:.7}}.animate__backOutRight{-webkit-animation-name:backOutRight;animation-name:backOutRight}@-webkit-keyframes backOutUp{0%{-webkit-transform:scale(1);transform:scale(1);opacity:1}20%{-webkit-transform:translateY(0px) scale(.7);transform:translateY(0) scale(.7);opacity:.7}to{-webkit-transform:translateY(-700px) scale(.7);transform:translateY(-700px) scale(.7);opacity:.7}}@keyframes backOutUp{0%{-webkit-transform:scale(1);transform:scale(1);opacity:1}20%{-webkit-transform:translateY(0px) scale(.7);transform:translateY(0) scale(.7);opacity:.7}to{-webkit-transform:translateY(-700px) scale(.7);transform:translateY(-700px) scale(.7);opacity:.7}}.animate__backOutUp{-webkit-animation-name:backOutUp;animation-name:backOutUp}@-webkit-keyframes bounceIn{0%,20%,40%,60%,80%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}20%{-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}40%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}60%{opacity:1;-webkit-transform:scale3d(1.03,1.03,1.03);transform:scale3d(1.03,1.03,1.03)}80%{-webkit-transform:scale3d(.97,.97,.97);transform:scale3d(.97,.97,.97)}to{opacity:1;-webkit-transform:scale3d(1,1,1);transform:scaleZ(1)}}@keyframes bounceIn{0%,20%,40%,60%,80%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}20%{-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}40%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}60%{opacity:1;-webkit-transform:scale3d(1.03,1.03,1.03);transform:scale3d(1.03,1.03,1.03)}80%{-webkit-transform:scale3d(.97,.97,.97);transform:scale3d(.97,.97,.97)}to{opacity:1;-webkit-transform:scale3d(1,1,1);transform:scaleZ(1)}}.animate__bounceIn{-webkit-animation-duration:.75s;animation-duration:.75s;-webkit-animation-duration:calc(var(--animate-duration) * .75);animation-duration:calc(var(--animate-duration) * .75);-webkit-animation-name:bounceIn;animation-name:bounceIn}@-webkit-keyframes bounceInDown{0%,60%,75%,90%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;-webkit-transform:translate3d(0,-3000px,0) scaleY(3);transform:translate3d(0,-3000px,0) scaleY(3)}60%{opacity:1;-webkit-transform:translate3d(0,25px,0) scaleY(.9);transform:translate3d(0,25px,0) scaleY(.9)}75%{-webkit-transform:translate3d(0,-10px,0) scaleY(.95);transform:translate3d(0,-10px,0) scaleY(.95)}90%{-webkit-transform:translate3d(0,5px,0) scaleY(.985);transform:translate3d(0,5px,0) scaleY(.985)}to{-webkit-transform:translate3d(0,0,0);transform:translateZ(0)}}@keyframes bounceInDown{0%,60%,75%,90%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;-webkit-transform:translate3d(0,-3000px,0) scaleY(3);transform:translate3d(0,-3000px,0) scaleY(3)}60%{opacity:1;-webkit-transform:translate3d(0,25px,0) scaleY(.9);transform:translate3d(0,25px,0) scaleY(.9)}75%{-webkit-transform:translate3d(0,-10px,0) scaleY(.95);transform:translate3d(0,-10px,0) scaleY(.95)}90%{-webkit-transform:translate3d(0,5px,0) scaleY(.985);transform:translate3d(0,5px,0) scaleY(.985)}to{-webkit-transform:translate3d(0,0,0);transform:translateZ(0)}}.animate__bounceInDown{-webkit-animation-name:bounceInDown;animation-name:bounceInDown}@-webkit-keyframes bounceInLeft{0%,60%,75%,90%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;-webkit-transform:translate3d(-3000px,0,0) scaleX(3);transform:translate3d(-3000px,0,0) scaleX(3)}60%{opacity:1;-webkit-transform:translate3d(25px,0,0) scaleX(1);transform:translate3d(25px,0,0) scaleX(1)}75%{-webkit-transform:translate3d(-10px,0,0) scaleX(.98);transform:translate3d(-10px,0,0) scaleX(.98)}90%{-webkit-transform:translate3d(5px,0,0) scaleX(.995);transform:translate3d(5px,0,0) scaleX(.995)}to{-webkit-transform:translate3d(0,0,0);transform:translateZ(0)}}@keyframes bounceInLeft{0%,60%,75%,90%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;-webkit-transform:translate3d(-3000px,0,0) scaleX(3);transform:translate3d(-3000px,0,0) scaleX(3)}60%{opacity:1;-webkit-transform:translate3d(25px,0,0) scaleX(1);transform:translate3d(25px,0,0) scaleX(1)}75%{-webkit-transform:translate3d(-10px,0,0) scaleX(.98);transform:translate3d(-10px,0,0) scaleX(.98)}90%{-webkit-transform:translate3d(5px,0,0) scaleX(.995);transform:translate3d(5px,0,0) scaleX(.995)}to{-webkit-transform:translate3d(0,0,0);transform:translateZ(0)}}.animate__bounceInLeft{-webkit-animation-name:bounceInLeft;animation-name:bounceInLeft}@-webkit-keyframes bounceInRight{0%,60%,75%,90%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;-webkit-transform:translate3d(3000px,0,0) scaleX(3);transform:translate3d(3000px,0,0) scaleX(3)}60%{opacity:1;-webkit-transform:translate3d(-25px,0,0) scaleX(1);transform:translate3d(-25px,0,0) scaleX(1)}75%{-webkit-transform:translate3d(10px,0,0) scaleX(.98);transform:translate3d(10px,0,0) scaleX(.98)}90%{-webkit-transform:translate3d(-5px,0,0) scaleX(.995);transform:translate3d(-5px,0,0) scaleX(.995)}to{-webkit-transform:translate3d(0,0,0);transform:translateZ(0)}}@keyframes bounceInRight{0%,60%,75%,90%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;-webkit-transform:translate3d(3000px,0,0) scaleX(3);transform:translate3d(3000px,0,0) scaleX(3)}60%{opacity:1;-webkit-transform:translate3d(-25px,0,0) scaleX(1);transform:translate3d(-25px,0,0) scaleX(1)}75%{-webkit-transform:translate3d(10px,0,0) scaleX(.98);transform:translate3d(10px,0,0) scaleX(.98)}90%{-webkit-transform:translate3d(-5px,0,0) scaleX(.995);transform:translate3d(-5px,0,0) scaleX(.995)}to{-webkit-transform:translate3d(0,0,0);transform:translateZ(0)}}.animate__bounceInRight{-webkit-animation-name:bounceInRight;animation-name:bounceInRight}@-webkit-keyframes bounceInUp{0%,60%,75%,90%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;-webkit-transform:translate3d(0,3000px,0) scaleY(5);transform:translate3d(0,3000px,0) scaleY(5)}60%{opacity:1;-webkit-transform:translate3d(0,-20px,0) scaleY(.9);transform:translate3d(0,-20px,0) scaleY(.9)}75%{-webkit-transform:translate3d(0,10px,0) scaleY(.95);transform:translate3d(0,10px,0) scaleY(.95)}90%{-webkit-transform:translate3d(0,-5px,0) scaleY(.985);transform:translate3d(0,-5px,0) scaleY(.985)}to{-webkit-transform:translate3d(0,0,0);transform:translateZ(0)}}@keyframes bounceInUp{0%,60%,75%,90%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;-webkit-transform:translate3d(0,3000px,0) scaleY(5);transform:translate3d(0,3000px,0) scaleY(5)}60%{opacity:1;-webkit-transform:translate3d(0,-20px,0) scaleY(.9);transform:translate3d(0,-20px,0) scaleY(.9)}75%{-webkit-transform:translate3d(0,10px,0) scaleY(.95);transform:translate3d(0,10px,0) scaleY(.95)}90%{-webkit-transform:translate3d(0,-5px,0) scaleY(.985);transform:translate3d(0,-5px,0) scaleY(.985)}to{-webkit-transform:translate3d(0,0,0);transform:translateZ(0)}}.animate__bounceInUp{-webkit-animation-name:bounceInUp;animation-name:bounceInUp}@-webkit-keyframes bounceOut{20%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}50%,55%{opacity:1;-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}to{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}}@keyframes bounceOut{20%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}50%,55%{opacity:1;-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}to{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}}.animate__bounceOut{-webkit-animation-duration:.75s;animation-duration:.75s;-webkit-animation-duration:calc(var(--animate-duration) * .75);animation-duration:calc(var(--animate-duration) * .75);-webkit-animation-name:bounceOut;animation-name:bounceOut}@-webkit-keyframes bounceOutDown{20%{-webkit-transform:translate3d(0,10px,0) scaleY(.985);transform:translate3d(0,10px,0) scaleY(.985)}40%,45%{opacity:1;-webkit-transform:translate3d(0,-20px,0) scaleY(.9);transform:translate3d(0,-20px,0) scaleY(.9)}to{opacity:0;-webkit-transform:translate3d(0,2000px,0) scaleY(3);transform:translate3d(0,2000px,0) scaleY(3)}}@keyframes bounceOutDown{20%{-webkit-transform:translate3d(0,10px,0) scaleY(.985);transform:translate3d(0,10px,0) scaleY(.985)}40%,45%{opacity:1;-webkit-transform:translate3d(0,-20px,0) scaleY(.9);transform:translate3d(0,-20px,0) scaleY(.9)}to{opacity:0;-webkit-transform:translate3d(0,2000px,0) scaleY(3);transform:translate3d(0,2000px,0) scaleY(3)}}.animate__bounceOutDown{-webkit-animation-name:bounceOutDown;animation-name:bounceOutDown}@-webkit-keyframes bounceOutLeft{20%{opacity:1;-webkit-transform:translate3d(20px,0,0) scaleX(.9);transform:translate3d(20px,0,0) scaleX(.9)}to{opacity:0;-webkit-transform:translate3d(-2000px,0,0) scaleX(2);transform:translate3d(-2000px,0,0) scaleX(2)}}@keyframes bounceOutLeft{20%{opacity:1;-webkit-transform:translate3d(20px,0,0) scaleX(.9);transform:translate3d(20px,0,0) scaleX(.9)}to{opacity:0;-webkit-transform:translate3d(-2000px,0,0) scaleX(2);transform:translate3d(-2000px,0,0) scaleX(2)}}.animate__bounceOutLeft{-webkit-animation-name:bounceOutLeft;animation-name:bounceOutLeft}@-webkit-keyframes bounceOutRight{20%{opacity:1;-webkit-transform:translate3d(-20px,0,0) scaleX(.9);transform:translate3d(-20px,0,0) scaleX(.9)}to{opacity:0;-webkit-transform:translate3d(2000px,0,0) scaleX(2);transform:translate3d(2000px,0,0) scaleX(2)}}@keyframes bounceOutRight{20%{opacity:1;-webkit-transform:translate3d(-20px,0,0) scaleX(.9);transform:translate3d(-20px,0,0) scaleX(.9)}to{opacity:0;-webkit-transform:translate3d(2000px,0,0) scaleX(2);transform:translate3d(2000px,0,0) scaleX(2)}}.animate__bounceOutRight{-webkit-animation-name:bounceOutRight;animation-name:bounceOutRight}@-webkit-keyframes bounceOutUp{20%{-webkit-transform:translate3d(0,-10px,0) scaleY(.985);transform:translate3d(0,-10px,0) scaleY(.985)}40%,45%{opacity:1;-webkit-transform:translate3d(0,20px,0) scaleY(.9);transform:translate3d(0,20px,0) scaleY(.9)}to{opacity:0;-webkit-transform:translate3d(0,-2000px,0) scaleY(3);transform:translate3d(0,-2000px,0) scaleY(3)}}@keyframes bounceOutUp{20%{-webkit-transform:translate3d(0,-10px,0) scaleY(.985);transform:translate3d(0,-10px,0) scaleY(.985)}40%,45%{opacity:1;-webkit-transform:translate3d(0,20px,0) scaleY(.9);transform:translate3d(0,20px,0) scaleY(.9)}to{opacity:0;-webkit-transform:translate3d(0,-2000px,0) scaleY(3);transform:translate3d(0,-2000px,0) scaleY(3)}}.animate__bounceOutUp{-webkit-animation-name:bounceOutUp;animation-name:bounceOutUp}@-webkit-keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.animate__fadeIn{-webkit-animation-name:fadeIn;animation-name:fadeIn}@-webkit-keyframes fadeInDown{0%{opacity:0;-webkit-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0)}to{opacity:1;-webkit-transform:translate3d(0,0,0);transform:translateZ(0)}}@keyframes fadeInDown{0%{opacity:0;-webkit-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0)}to{opacity:1;-webkit-transform:translate3d(0,0,0);transform:translateZ(0)}}.animate__fadeInDown{-webkit-animation-name:fadeInDown;animation-name:fadeInDown}@-webkit-keyframes fadeInDownBig{0%{opacity:0;-webkit-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}to{opacity:1;-webkit-transform:translate3d(0,0,0);transform:translateZ(0)}}@keyframes fadeInDownBig{0%{opacity:0;-webkit-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}to{opacity:1;-webkit-transform:translate3d(0,0,0);transform:translateZ(0)}}.animate__fadeInDownBig{-webkit-animation-name:fadeInDownBig;animation-name:fadeInDownBig}@-webkit-keyframes fadeInLeft{0%{opacity:0;-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}to{opacity:1;-webkit-transform:translate3d(0,0,0);transform:translateZ(0)}}@keyframes fadeInLeft{0%{opacity:0;-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}to{opacity:1;-webkit-transform:translate3d(0,0,0);transform:translateZ(0)}}.animate__fadeInLeft{-webkit-animation-name:fadeInLeft;animation-name:fadeInLeft}@-webkit-keyframes fadeInLeftBig{0%{opacity:0;-webkit-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}to{opacity:1;-webkit-transform:translate3d(0,0,0);transform:translateZ(0)}}@keyframes fadeInLeftBig{0%{opacity:0;-webkit-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}to{opacity:1;-webkit-transform:translate3d(0,0,0);transform:translateZ(0)}}.animate__fadeInLeftBig{-webkit-animation-name:fadeInLeftBig;animation-name:fadeInLeftBig}@-webkit-keyframes fadeInRight{0%{opacity:0;-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}to{opacity:1;-webkit-transform:translate3d(0,0,0);transform:translateZ(0)}}@keyframes fadeInRight{0%{opacity:0;-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}to{opacity:1;-webkit-transform:translate3d(0,0,0);transform:translateZ(0)}}.animate__fadeInRight{-webkit-animation-name:fadeInRight;animation-name:fadeInRight}@-webkit-keyframes fadeInRightBig{0%{opacity:0;-webkit-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}to{opacity:1;-webkit-transform:translate3d(0,0,0);transform:translateZ(0)}}@keyframes fadeInRightBig{0%{opacity:0;-webkit-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}to{opacity:1;-webkit-transform:translate3d(0,0,0);transform:translateZ(0)}}.animate__fadeInRightBig{-webkit-animation-name:fadeInRightBig;animation-name:fadeInRightBig}@-webkit-keyframes fadeInUp{0%{opacity:0;-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}to{opacity:1;-webkit-transform:translate3d(0,0,0);transform:translateZ(0)}}@keyframes fadeInUp{0%{opacity:0;-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}to{opacity:1;-webkit-transform:translate3d(0,0,0);transform:translateZ(0)}}.animate__fadeInUp{-webkit-animation-name:fadeInUp;animation-name:fadeInUp}@-webkit-keyframes fadeInUpBig{0%{opacity:0;-webkit-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}to{opacity:1;-webkit-transform:translate3d(0,0,0);transform:translateZ(0)}}@keyframes fadeInUpBig{0%{opacity:0;-webkit-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}to{opacity:1;-webkit-transform:translate3d(0,0,0);transform:translateZ(0)}}.animate__fadeInUpBig{-webkit-animation-name:fadeInUpBig;animation-name:fadeInUpBig}@-webkit-keyframes fadeInTopLeft{0%{opacity:0;-webkit-transform:translate3d(-100%,-100%,0);transform:translate3d(-100%,-100%,0)}to{opacity:1;-webkit-transform:translate3d(0,0,0);transform:translateZ(0)}}@keyframes fadeInTopLeft{0%{opacity:0;-webkit-transform:translate3d(-100%,-100%,0);transform:translate3d(-100%,-100%,0)}to{opacity:1;-webkit-transform:translate3d(0,0,0);transform:translateZ(0)}}.animate__fadeInTopLeft{-webkit-animation-name:fadeInTopLeft;animation-name:fadeInTopLeft}@-webkit-keyframes fadeInTopRight{0%{opacity:0;-webkit-transform:translate3d(100%,-100%,0);transform:translate3d(100%,-100%,0)}to{opacity:1;-webkit-transform:translate3d(0,0,0);transform:translateZ(0)}}@keyframes fadeInTopRight{0%{opacity:0;-webkit-transform:translate3d(100%,-100%,0);transform:translate3d(100%,-100%,0)}to{opacity:1;-webkit-transform:translate3d(0,0,0);transform:translateZ(0)}}.animate__fadeInTopRight{-webkit-animation-name:fadeInTopRight;animation-name:fadeInTopRight}@-webkit-keyframes fadeInBottomLeft{0%{opacity:0;-webkit-transform:translate3d(-100%,100%,0);transform:translate3d(-100%,100%,0)}to{opacity:1;-webkit-transform:translate3d(0,0,0);transform:translateZ(0)}}@keyframes fadeInBottomLeft{0%{opacity:0;-webkit-transform:translate3d(-100%,100%,0);transform:translate3d(-100%,100%,0)}to{opacity:1;-webkit-transform:translate3d(0,0,0);transform:translateZ(0)}}.animate__fadeInBottomLeft{-webkit-animation-name:fadeInBottomLeft;animation-name:fadeInBottomLeft}@-webkit-keyframes fadeInBottomRight{0%{opacity:0;-webkit-transform:translate3d(100%,100%,0);transform:translate3d(100%,100%,0)}to{opacity:1;-webkit-transform:translate3d(0,0,0);transform:translateZ(0)}}@keyframes fadeInBottomRight{0%{opacity:0;-webkit-transform:translate3d(100%,100%,0);transform:translate3d(100%,100%,0)}to{opacity:1;-webkit-transform:translate3d(0,0,0);transform:translateZ(0)}}.animate__fadeInBottomRight{-webkit-animation-name:fadeInBottomRight;animation-name:fadeInBottomRight}@-webkit-keyframes fadeOut{0%{opacity:1}to{opacity:0}}@keyframes fadeOut{0%{opacity:1}to{opacity:0}}.animate__fadeOut{-webkit-animation-name:fadeOut;animation-name:fadeOut}@-webkit-keyframes fadeOutDown{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}}@keyframes fadeOutDown{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}}.animate__fadeOutDown{-webkit-animation-name:fadeOutDown;animation-name:fadeOutDown}@-webkit-keyframes fadeOutDownBig{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}}@keyframes fadeOutDownBig{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}}.animate__fadeOutDownBig{-webkit-animation-name:fadeOutDownBig;animation-name:fadeOutDownBig}@-webkit-keyframes fadeOutLeft{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}}@keyframes fadeOutLeft{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}}.animate__fadeOutLeft{-webkit-animation-name:fadeOutLeft;animation-name:fadeOutLeft}@-webkit-keyframes fadeOutLeftBig{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}}@keyframes fadeOutLeftBig{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}}.animate__fadeOutLeftBig{-webkit-animation-name:fadeOutLeftBig;animation-name:fadeOutLeftBig}@-webkit-keyframes fadeOutRight{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}}@keyframes fadeOutRight{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}}.animate__fadeOutRight{-webkit-animation-name:fadeOutRight;animation-name:fadeOutRight}@-webkit-keyframes fadeOutRightBig{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}}@keyframes fadeOutRightBig{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}}.animate__fadeOutRightBig{-webkit-animation-name:fadeOutRightBig;animation-name:fadeOutRightBig}@-webkit-keyframes fadeOutUp{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0)}}@keyframes fadeOutUp{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0)}}.animate__fadeOutUp{-webkit-animation-name:fadeOutUp;animation-name:fadeOutUp}@-webkit-keyframes fadeOutUpBig{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}}@keyframes fadeOutUpBig{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}}.animate__fadeOutUpBig{-webkit-animation-name:fadeOutUpBig;animation-name:fadeOutUpBig}@-webkit-keyframes fadeOutTopLeft{0%{opacity:1;-webkit-transform:translate3d(0,0,0);transform:translateZ(0)}to{opacity:0;-webkit-transform:translate3d(-100%,-100%,0);transform:translate3d(-100%,-100%,0)}}@keyframes fadeOutTopLeft{0%{opacity:1;-webkit-transform:translate3d(0,0,0);transform:translateZ(0)}to{opacity:0;-webkit-transform:translate3d(-100%,-100%,0);transform:translate3d(-100%,-100%,0)}}.animate__fadeOutTopLeft{-webkit-animation-name:fadeOutTopLeft;animation-name:fadeOutTopLeft}@-webkit-keyframes fadeOutTopRight{0%{opacity:1;-webkit-transform:translate3d(0,0,0);transform:translateZ(0)}to{opacity:0;-webkit-transform:translate3d(100%,-100%,0);transform:translate3d(100%,-100%,0)}}@keyframes fadeOutTopRight{0%{opacity:1;-webkit-transform:translate3d(0,0,0);transform:translateZ(0)}to{opacity:0;-webkit-transform:translate3d(100%,-100%,0);transform:translate3d(100%,-100%,0)}}.animate__fadeOutTopRight{-webkit-animation-name:fadeOutTopRight;animation-name:fadeOutTopRight}@-webkit-keyframes fadeOutBottomRight{0%{opacity:1;-webkit-transform:translate3d(0,0,0);transform:translateZ(0)}to{opacity:0;-webkit-transform:translate3d(100%,100%,0);transform:translate3d(100%,100%,0)}}@keyframes fadeOutBottomRight{0%{opacity:1;-webkit-transform:translate3d(0,0,0);transform:translateZ(0)}to{opacity:0;-webkit-transform:translate3d(100%,100%,0);transform:translate3d(100%,100%,0)}}.animate__fadeOutBottomRight{-webkit-animation-name:fadeOutBottomRight;animation-name:fadeOutBottomRight}@-webkit-keyframes fadeOutBottomLeft{0%{opacity:1;-webkit-transform:translate3d(0,0,0);transform:translateZ(0)}to{opacity:0;-webkit-transform:translate3d(-100%,100%,0);transform:translate3d(-100%,100%,0)}}@keyframes fadeOutBottomLeft{0%{opacity:1;-webkit-transform:translate3d(0,0,0);transform:translateZ(0)}to{opacity:0;-webkit-transform:translate3d(-100%,100%,0);transform:translate3d(-100%,100%,0)}}.animate__fadeOutBottomLeft{-webkit-animation-name:fadeOutBottomLeft;animation-name:fadeOutBottomLeft}@-webkit-keyframes flip{0%{-webkit-transform:perspective(400px) scale3d(1,1,1) translate3d(0,0,0) rotate3d(0,1,0,-360deg);transform:perspective(400px) scaleZ(1) translateZ(0) rotateY(-360deg);-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}40%{-webkit-transform:perspective(400px) scale3d(1,1,1) translate3d(0,0,150px) rotate3d(0,1,0,-190deg);transform:perspective(400px) scaleZ(1) translateZ(150px) rotateY(-190deg);-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}50%{-webkit-transform:perspective(400px) scale3d(1,1,1) translate3d(0,0,150px) rotate3d(0,1,0,-170deg);transform:perspective(400px) scaleZ(1) translateZ(150px) rotateY(-170deg);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}80%{-webkit-transform:perspective(400px) scale3d(.95,.95,.95) translate3d(0,0,0) rotate3d(0,1,0,0deg);transform:perspective(400px) scale3d(.95,.95,.95) translateZ(0) rotateY(0);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}to{-webkit-transform:perspective(400px) scale3d(1,1,1) translate3d(0,0,0) rotate3d(0,1,0,0deg);transform:perspective(400px) scaleZ(1) translateZ(0) rotateY(0);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}}@keyframes flip{0%{-webkit-transform:perspective(400px) scale3d(1,1,1) translate3d(0,0,0) rotate3d(0,1,0,-360deg);transform:perspective(400px) scaleZ(1) translateZ(0) rotateY(-360deg);-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}40%{-webkit-transform:perspective(400px) scale3d(1,1,1) translate3d(0,0,150px) rotate3d(0,1,0,-190deg);transform:perspective(400px) scaleZ(1) translateZ(150px) rotateY(-190deg);-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}50%{-webkit-transform:perspective(400px) scale3d(1,1,1) translate3d(0,0,150px) rotate3d(0,1,0,-170deg);transform:perspective(400px) scaleZ(1) translateZ(150px) rotateY(-170deg);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}80%{-webkit-transform:perspective(400px) scale3d(.95,.95,.95) translate3d(0,0,0) rotate3d(0,1,0,0deg);transform:perspective(400px) scale3d(.95,.95,.95) translateZ(0) rotateY(0);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}to{-webkit-transform:perspective(400px) scale3d(1,1,1) translate3d(0,0,0) rotate3d(0,1,0,0deg);transform:perspective(400px) scaleZ(1) translateZ(0) rotateY(0);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}}.animate__animated.animate__flip{-webkit-backface-visibility:visible;backface-visibility:visible;-webkit-animation-name:flip;animation-name:flip}@-webkit-keyframes flipInX{0%{-webkit-transform:perspective(400px) rotate3d(1,0,0,90deg);transform:perspective(400px) rotateX(90deg);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in;opacity:0}40%{-webkit-transform:perspective(400px) rotate3d(1,0,0,-20deg);transform:perspective(400px) rotateX(-20deg);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}60%{-webkit-transform:perspective(400px) rotate3d(1,0,0,10deg);transform:perspective(400px) rotateX(10deg);opacity:1}80%{-webkit-transform:perspective(400px) rotate3d(1,0,0,-5deg);transform:perspective(400px) rotateX(-5deg)}to{-webkit-transform:perspective(400px);transform:perspective(400px)}}@keyframes flipInX{0%{-webkit-transform:perspective(400px) rotate3d(1,0,0,90deg);transform:perspective(400px) rotateX(90deg);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in;opacity:0}40%{-webkit-transform:perspective(400px) rotate3d(1,0,0,-20deg);transform:perspective(400px) rotateX(-20deg);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}60%{-webkit-transform:perspective(400px) rotate3d(1,0,0,10deg);transform:perspective(400px) rotateX(10deg);opacity:1}80%{-webkit-transform:perspective(400px) rotate3d(1,0,0,-5deg);transform:perspective(400px) rotateX(-5deg)}to{-webkit-transform:perspective(400px);transform:perspective(400px)}}.animate__flipInX{-webkit-backface-visibility:visible!important;backface-visibility:visible!important;-webkit-animation-name:flipInX;animation-name:flipInX}@-webkit-keyframes flipInY{0%{-webkit-transform:perspective(400px) rotate3d(0,1,0,90deg);transform:perspective(400px) rotateY(90deg);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in;opacity:0}40%{-webkit-transform:perspective(400px) rotate3d(0,1,0,-20deg);transform:perspective(400px) rotateY(-20deg);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}60%{-webkit-transform:perspective(400px) rotate3d(0,1,0,10deg);transform:perspective(400px) rotateY(10deg);opacity:1}80%{-webkit-transform:perspective(400px) rotate3d(0,1,0,-5deg);transform:perspective(400px) rotateY(-5deg)}to{-webkit-transform:perspective(400px);transform:perspective(400px)}}@keyframes flipInY{0%{-webkit-transform:perspective(400px) rotate3d(0,1,0,90deg);transform:perspective(400px) rotateY(90deg);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in;opacity:0}40%{-webkit-transform:perspective(400px) rotate3d(0,1,0,-20deg);transform:perspective(400px) rotateY(-20deg);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}60%{-webkit-transform:perspective(400px) rotate3d(0,1,0,10deg);transform:perspective(400px) rotateY(10deg);opacity:1}80%{-webkit-transform:perspective(400px) rotate3d(0,1,0,-5deg);transform:perspective(400px) rotateY(-5deg)}to{-webkit-transform:perspective(400px);transform:perspective(400px)}}.animate__flipInY{-webkit-backface-visibility:visible!important;backface-visibility:visible!important;-webkit-animation-name:flipInY;animation-name:flipInY}@-webkit-keyframes flipOutX{0%{-webkit-transform:perspective(400px);transform:perspective(400px)}30%{-webkit-transform:perspective(400px) rotate3d(1,0,0,-20deg);transform:perspective(400px) rotateX(-20deg);opacity:1}to{-webkit-transform:perspective(400px) rotate3d(1,0,0,90deg);transform:perspective(400px) rotateX(90deg);opacity:0}}@keyframes flipOutX{0%{-webkit-transform:perspective(400px);transform:perspective(400px)}30%{-webkit-transform:perspective(400px) rotate3d(1,0,0,-20deg);transform:perspective(400px) rotateX(-20deg);opacity:1}to{-webkit-transform:perspective(400px) rotate3d(1,0,0,90deg);transform:perspective(400px) rotateX(90deg);opacity:0}}.animate__flipOutX{-webkit-animation-duration:.75s;animation-duration:.75s;-webkit-animation-duration:calc(var(--animate-duration) * .75);animation-duration:calc(var(--animate-duration) * .75);-webkit-animation-name:flipOutX;animation-name:flipOutX;-webkit-backface-visibility:visible!important;backface-visibility:visible!important}@-webkit-keyframes flipOutY{0%{-webkit-transform:perspective(400px);transform:perspective(400px)}30%{-webkit-transform:perspective(400px) rotate3d(0,1,0,-15deg);transform:perspective(400px) rotateY(-15deg);opacity:1}to{-webkit-transform:perspective(400px) rotate3d(0,1,0,90deg);transform:perspective(400px) rotateY(90deg);opacity:0}}@keyframes flipOutY{0%{-webkit-transform:perspective(400px);transform:perspective(400px)}30%{-webkit-transform:perspective(400px) rotate3d(0,1,0,-15deg);transform:perspective(400px) rotateY(-15deg);opacity:1}to{-webkit-transform:perspective(400px) rotate3d(0,1,0,90deg);transform:perspective(400px) rotateY(90deg);opacity:0}}.animate__flipOutY{-webkit-animation-duration:.75s;animation-duration:.75s;-webkit-animation-duration:calc(var(--animate-duration) * .75);animation-duration:calc(var(--animate-duration) * .75);-webkit-backface-visibility:visible!important;backface-visibility:visible!important;-webkit-animation-name:flipOutY;animation-name:flipOutY}@-webkit-keyframes lightSpeedInRight{0%{-webkit-transform:translate3d(100%,0,0) skewX(-30deg);transform:translate3d(100%,0,0) skew(-30deg);opacity:0}60%{-webkit-transform:skewX(20deg);transform:skew(20deg);opacity:1}80%{-webkit-transform:skewX(-5deg);transform:skew(-5deg)}to{-webkit-transform:translate3d(0,0,0);transform:translateZ(0)}}@keyframes lightSpeedInRight{0%{-webkit-transform:translate3d(100%,0,0) skewX(-30deg);transform:translate3d(100%,0,0) skew(-30deg);opacity:0}60%{-webkit-transform:skewX(20deg);transform:skew(20deg);opacity:1}80%{-webkit-transform:skewX(-5deg);transform:skew(-5deg)}to{-webkit-transform:translate3d(0,0,0);transform:translateZ(0)}}.animate__lightSpeedInRight{-webkit-animation-name:lightSpeedInRight;animation-name:lightSpeedInRight;-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}@-webkit-keyframes lightSpeedInLeft{0%{-webkit-transform:translate3d(-100%,0,0) skewX(30deg);transform:translate3d(-100%,0,0) skew(30deg);opacity:0}60%{-webkit-transform:skewX(-20deg);transform:skew(-20deg);opacity:1}80%{-webkit-transform:skewX(5deg);transform:skew(5deg)}to{-webkit-transform:translate3d(0,0,0);transform:translateZ(0)}}@keyframes lightSpeedInLeft{0%{-webkit-transform:translate3d(-100%,0,0) skewX(30deg);transform:translate3d(-100%,0,0) skew(30deg);opacity:0}60%{-webkit-transform:skewX(-20deg);transform:skew(-20deg);opacity:1}80%{-webkit-transform:skewX(5deg);transform:skew(5deg)}to{-webkit-transform:translate3d(0,0,0);transform:translateZ(0)}}.animate__lightSpeedInLeft{-webkit-animation-name:lightSpeedInLeft;animation-name:lightSpeedInLeft;-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}@-webkit-keyframes lightSpeedOutRight{0%{opacity:1}to{-webkit-transform:translate3d(100%,0,0) skewX(30deg);transform:translate3d(100%,0,0) skew(30deg);opacity:0}}@keyframes lightSpeedOutRight{0%{opacity:1}to{-webkit-transform:translate3d(100%,0,0) skewX(30deg);transform:translate3d(100%,0,0) skew(30deg);opacity:0}}.animate__lightSpeedOutRight{-webkit-animation-name:lightSpeedOutRight;animation-name:lightSpeedOutRight;-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}@-webkit-keyframes lightSpeedOutLeft{0%{opacity:1}to{-webkit-transform:translate3d(-100%,0,0) skewX(-30deg);transform:translate3d(-100%,0,0) skew(-30deg);opacity:0}}@keyframes lightSpeedOutLeft{0%{opacity:1}to{-webkit-transform:translate3d(-100%,0,0) skewX(-30deg);transform:translate3d(-100%,0,0) skew(-30deg);opacity:0}}.animate__lightSpeedOutLeft{-webkit-animation-name:lightSpeedOutLeft;animation-name:lightSpeedOutLeft;-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}@-webkit-keyframes rotateIn{0%{-webkit-transform:rotate3d(0,0,1,-200deg);transform:rotate3d(0,0,1,-200deg);opacity:0}to{-webkit-transform:translate3d(0,0,0);transform:translateZ(0);opacity:1}}@keyframes rotateIn{0%{-webkit-transform:rotate3d(0,0,1,-200deg);transform:rotate3d(0,0,1,-200deg);opacity:0}to{-webkit-transform:translate3d(0,0,0);transform:translateZ(0);opacity:1}}.animate__rotateIn{-webkit-animation-name:rotateIn;animation-name:rotateIn;-webkit-transform-origin:center;transform-origin:center}@-webkit-keyframes rotateInDownLeft{0%{-webkit-transform:rotate3d(0,0,1,-45deg);transform:rotate3d(0,0,1,-45deg);opacity:0}to{-webkit-transform:translate3d(0,0,0);transform:translateZ(0);opacity:1}}@keyframes rotateInDownLeft{0%{-webkit-transform:rotate3d(0,0,1,-45deg);transform:rotate3d(0,0,1,-45deg);opacity:0}to{-webkit-transform:translate3d(0,0,0);transform:translateZ(0);opacity:1}}.animate__rotateInDownLeft{-webkit-animation-name:rotateInDownLeft;animation-name:rotateInDownLeft;-webkit-transform-origin:left bottom;transform-origin:left bottom}@-webkit-keyframes rotateInDownRight{0%{-webkit-transform:rotate3d(0,0,1,45deg);transform:rotate3d(0,0,1,45deg);opacity:0}to{-webkit-transform:translate3d(0,0,0);transform:translateZ(0);opacity:1}}@keyframes rotateInDownRight{0%{-webkit-transform:rotate3d(0,0,1,45deg);transform:rotate3d(0,0,1,45deg);opacity:0}to{-webkit-transform:translate3d(0,0,0);transform:translateZ(0);opacity:1}}.animate__rotateInDownRight{-webkit-animation-name:rotateInDownRight;animation-name:rotateInDownRight;-webkit-transform-origin:right bottom;transform-origin:right bottom}@-webkit-keyframes rotateInUpLeft{0%{-webkit-transform:rotate3d(0,0,1,45deg);transform:rotate3d(0,0,1,45deg);opacity:0}to{-webkit-transform:translate3d(0,0,0);transform:translateZ(0);opacity:1}}@keyframes rotateInUpLeft{0%{-webkit-transform:rotate3d(0,0,1,45deg);transform:rotate3d(0,0,1,45deg);opacity:0}to{-webkit-transform:translate3d(0,0,0);transform:translateZ(0);opacity:1}}.animate__rotateInUpLeft{-webkit-animation-name:rotateInUpLeft;animation-name:rotateInUpLeft;-webkit-transform-origin:left bottom;transform-origin:left bottom}@-webkit-keyframes rotateInUpRight{0%{-webkit-transform:rotate3d(0,0,1,-90deg);transform:rotate3d(0,0,1,-90deg);opacity:0}to{-webkit-transform:translate3d(0,0,0);transform:translateZ(0);opacity:1}}@keyframes rotateInUpRight{0%{-webkit-transform:rotate3d(0,0,1,-90deg);transform:rotate3d(0,0,1,-90deg);opacity:0}to{-webkit-transform:translate3d(0,0,0);transform:translateZ(0);opacity:1}}.animate__rotateInUpRight{-webkit-animation-name:rotateInUpRight;animation-name:rotateInUpRight;-webkit-transform-origin:right bottom;transform-origin:right bottom}@-webkit-keyframes rotateOut{0%{opacity:1}to{-webkit-transform:rotate3d(0,0,1,200deg);transform:rotate3d(0,0,1,200deg);opacity:0}}@keyframes rotateOut{0%{opacity:1}to{-webkit-transform:rotate3d(0,0,1,200deg);transform:rotate3d(0,0,1,200deg);opacity:0}}.animate__rotateOut{-webkit-animation-name:rotateOut;animation-name:rotateOut;-webkit-transform-origin:center;transform-origin:center}@-webkit-keyframes rotateOutDownLeft{0%{opacity:1}to{-webkit-transform:rotate3d(0,0,1,45deg);transform:rotate3d(0,0,1,45deg);opacity:0}}@keyframes rotateOutDownLeft{0%{opacity:1}to{-webkit-transform:rotate3d(0,0,1,45deg);transform:rotate3d(0,0,1,45deg);opacity:0}}.animate__rotateOutDownLeft{-webkit-animation-name:rotateOutDownLeft;animation-name:rotateOutDownLeft;-webkit-transform-origin:left bottom;transform-origin:left bottom}@-webkit-keyframes rotateOutDownRight{0%{opacity:1}to{-webkit-transform:rotate3d(0,0,1,-45deg);transform:rotate3d(0,0,1,-45deg);opacity:0}}@keyframes rotateOutDownRight{0%{opacity:1}to{-webkit-transform:rotate3d(0,0,1,-45deg);transform:rotate3d(0,0,1,-45deg);opacity:0}}.animate__rotateOutDownRight{-webkit-animation-name:rotateOutDownRight;animation-name:rotateOutDownRight;-webkit-transform-origin:right bottom;transform-origin:right bottom}@-webkit-keyframes rotateOutUpLeft{0%{opacity:1}to{-webkit-transform:rotate3d(0,0,1,-45deg);transform:rotate3d(0,0,1,-45deg);opacity:0}}@keyframes rotateOutUpLeft{0%{opacity:1}to{-webkit-transform:rotate3d(0,0,1,-45deg);transform:rotate3d(0,0,1,-45deg);opacity:0}}.animate__rotateOutUpLeft{-webkit-animation-name:rotateOutUpLeft;animation-name:rotateOutUpLeft;-webkit-transform-origin:left bottom;transform-origin:left bottom}@-webkit-keyframes rotateOutUpRight{0%{opacity:1}to{-webkit-transform:rotate3d(0,0,1,90deg);transform:rotate3d(0,0,1,90deg);opacity:0}}@keyframes rotateOutUpRight{0%{opacity:1}to{-webkit-transform:rotate3d(0,0,1,90deg);transform:rotate3d(0,0,1,90deg);opacity:0}}.animate__rotateOutUpRight{-webkit-animation-name:rotateOutUpRight;animation-name:rotateOutUpRight;-webkit-transform-origin:right bottom;transform-origin:right bottom}@-webkit-keyframes hinge{0%{-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}20%,60%{-webkit-transform:rotate3d(0,0,1,80deg);transform:rotate3d(0,0,1,80deg);-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}40%,80%{-webkit-transform:rotate3d(0,0,1,60deg);transform:rotate3d(0,0,1,60deg);-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out;opacity:1}to{-webkit-transform:translate3d(0,700px,0);transform:translate3d(0,700px,0);opacity:0}}@keyframes hinge{0%{-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}20%,60%{-webkit-transform:rotate3d(0,0,1,80deg);transform:rotate3d(0,0,1,80deg);-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}40%,80%{-webkit-transform:rotate3d(0,0,1,60deg);transform:rotate3d(0,0,1,60deg);-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out;opacity:1}to{-webkit-transform:translate3d(0,700px,0);transform:translate3d(0,700px,0);opacity:0}}.animate__hinge{-webkit-animation-duration:2s;animation-duration:2s;-webkit-animation-duration:calc(var(--animate-duration) * 2);animation-duration:calc(var(--animate-duration) * 2);-webkit-animation-name:hinge;animation-name:hinge;-webkit-transform-origin:top left;transform-origin:top left}@-webkit-keyframes jackInTheBox{0%{opacity:0;-webkit-transform:scale(.1) rotate(30deg);transform:scale(.1) rotate(30deg);-webkit-transform-origin:center bottom;transform-origin:center bottom}50%{-webkit-transform:rotate(-10deg);transform:rotate(-10deg)}70%{-webkit-transform:rotate(3deg);transform:rotate(3deg)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@keyframes jackInTheBox{0%{opacity:0;-webkit-transform:scale(.1) rotate(30deg);transform:scale(.1) rotate(30deg);-webkit-transform-origin:center bottom;transform-origin:center bottom}50%{-webkit-transform:rotate(-10deg);transform:rotate(-10deg)}70%{-webkit-transform:rotate(3deg);transform:rotate(3deg)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}.animate__jackInTheBox{-webkit-animation-name:jackInTheBox;animation-name:jackInTheBox}@-webkit-keyframes rollIn{0%{opacity:0;-webkit-transform:translate3d(-100%,0,0) rotate3d(0,0,1,-120deg);transform:translate3d(-100%,0,0) rotate3d(0,0,1,-120deg)}to{opacity:1;-webkit-transform:translate3d(0,0,0);transform:translateZ(0)}}@keyframes rollIn{0%{opacity:0;-webkit-transform:translate3d(-100%,0,0) rotate3d(0,0,1,-120deg);transform:translate3d(-100%,0,0) rotate3d(0,0,1,-120deg)}to{opacity:1;-webkit-transform:translate3d(0,0,0);transform:translateZ(0)}}.animate__rollIn{-webkit-animation-name:rollIn;animation-name:rollIn}@-webkit-keyframes rollOut{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(100%,0,0) rotate3d(0,0,1,120deg);transform:translate3d(100%,0,0) rotate3d(0,0,1,120deg)}}@keyframes rollOut{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(100%,0,0) rotate3d(0,0,1,120deg);transform:translate3d(100%,0,0) rotate3d(0,0,1,120deg)}}.animate__rollOut{-webkit-animation-name:rollOut;animation-name:rollOut}@-webkit-keyframes zoomIn{0%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}50%{opacity:1}}@keyframes zoomIn{0%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}50%{opacity:1}}.animate__zoomIn{-webkit-animation-name:zoomIn;animation-name:zoomIn}@-webkit-keyframes zoomInDown{0%{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(0,-1000px,0);transform:scale3d(.1,.1,.1) translate3d(0,-1000px,0);-webkit-animation-timing-function:cubic-bezier(.55,.055,.675,.19);animation-timing-function:cubic-bezier(.55,.055,.675,.19)}60%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(0,60px,0);transform:scale3d(.475,.475,.475) translate3d(0,60px,0);-webkit-animation-timing-function:cubic-bezier(.175,.885,.32,1);animation-timing-function:cubic-bezier(.175,.885,.32,1)}}@keyframes zoomInDown{0%{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(0,-1000px,0);transform:scale3d(.1,.1,.1) translate3d(0,-1000px,0);-webkit-animation-timing-function:cubic-bezier(.55,.055,.675,.19);animation-timing-function:cubic-bezier(.55,.055,.675,.19)}60%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(0,60px,0);transform:scale3d(.475,.475,.475) translate3d(0,60px,0);-webkit-animation-timing-function:cubic-bezier(.175,.885,.32,1);animation-timing-function:cubic-bezier(.175,.885,.32,1)}}.animate__zoomInDown{-webkit-animation-name:zoomInDown;animation-name:zoomInDown}@-webkit-keyframes zoomInLeft{0%{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(-1000px,0,0);transform:scale3d(.1,.1,.1) translate3d(-1000px,0,0);-webkit-animation-timing-function:cubic-bezier(.55,.055,.675,.19);animation-timing-function:cubic-bezier(.55,.055,.675,.19)}60%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(10px,0,0);transform:scale3d(.475,.475,.475) translate3d(10px,0,0);-webkit-animation-timing-function:cubic-bezier(.175,.885,.32,1);animation-timing-function:cubic-bezier(.175,.885,.32,1)}}@keyframes zoomInLeft{0%{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(-1000px,0,0);transform:scale3d(.1,.1,.1) translate3d(-1000px,0,0);-webkit-animation-timing-function:cubic-bezier(.55,.055,.675,.19);animation-timing-function:cubic-bezier(.55,.055,.675,.19)}60%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(10px,0,0);transform:scale3d(.475,.475,.475) translate3d(10px,0,0);-webkit-animation-timing-function:cubic-bezier(.175,.885,.32,1);animation-timing-function:cubic-bezier(.175,.885,.32,1)}}.animate__zoomInLeft{-webkit-animation-name:zoomInLeft;animation-name:zoomInLeft}@-webkit-keyframes zoomInRight{0%{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(1000px,0,0);transform:scale3d(.1,.1,.1) translate3d(1000px,0,0);-webkit-animation-timing-function:cubic-bezier(.55,.055,.675,.19);animation-timing-function:cubic-bezier(.55,.055,.675,.19)}60%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(-10px,0,0);transform:scale3d(.475,.475,.475) translate3d(-10px,0,0);-webkit-animation-timing-function:cubic-bezier(.175,.885,.32,1);animation-timing-function:cubic-bezier(.175,.885,.32,1)}}@keyframes zoomInRight{0%{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(1000px,0,0);transform:scale3d(.1,.1,.1) translate3d(1000px,0,0);-webkit-animation-timing-function:cubic-bezier(.55,.055,.675,.19);animation-timing-function:cubic-bezier(.55,.055,.675,.19)}60%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(-10px,0,0);transform:scale3d(.475,.475,.475) translate3d(-10px,0,0);-webkit-animation-timing-function:cubic-bezier(.175,.885,.32,1);animation-timing-function:cubic-bezier(.175,.885,.32,1)}}.animate__zoomInRight{-webkit-animation-name:zoomInRight;animation-name:zoomInRight}@-webkit-keyframes zoomInUp{0%{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(0,1000px,0);transform:scale3d(.1,.1,.1) translate3d(0,1000px,0);-webkit-animation-timing-function:cubic-bezier(.55,.055,.675,.19);animation-timing-function:cubic-bezier(.55,.055,.675,.19)}60%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(0,-60px,0);transform:scale3d(.475,.475,.475) translate3d(0,-60px,0);-webkit-animation-timing-function:cubic-bezier(.175,.885,.32,1);animation-timing-function:cubic-bezier(.175,.885,.32,1)}}@keyframes zoomInUp{0%{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(0,1000px,0);transform:scale3d(.1,.1,.1) translate3d(0,1000px,0);-webkit-animation-timing-function:cubic-bezier(.55,.055,.675,.19);animation-timing-function:cubic-bezier(.55,.055,.675,.19)}60%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(0,-60px,0);transform:scale3d(.475,.475,.475) translate3d(0,-60px,0);-webkit-animation-timing-function:cubic-bezier(.175,.885,.32,1);animation-timing-function:cubic-bezier(.175,.885,.32,1)}}.animate__zoomInUp{-webkit-animation-name:zoomInUp;animation-name:zoomInUp}@-webkit-keyframes zoomOut{0%{opacity:1}50%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}to{opacity:0}}@keyframes zoomOut{0%{opacity:1}50%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}to{opacity:0}}.animate__zoomOut{-webkit-animation-name:zoomOut;animation-name:zoomOut}@-webkit-keyframes zoomOutDown{40%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(0,-60px,0);transform:scale3d(.475,.475,.475) translate3d(0,-60px,0);-webkit-animation-timing-function:cubic-bezier(.55,.055,.675,.19);animation-timing-function:cubic-bezier(.55,.055,.675,.19)}to{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(0,2000px,0);transform:scale3d(.1,.1,.1) translate3d(0,2000px,0);-webkit-animation-timing-function:cubic-bezier(.175,.885,.32,1);animation-timing-function:cubic-bezier(.175,.885,.32,1)}}@keyframes zoomOutDown{40%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(0,-60px,0);transform:scale3d(.475,.475,.475) translate3d(0,-60px,0);-webkit-animation-timing-function:cubic-bezier(.55,.055,.675,.19);animation-timing-function:cubic-bezier(.55,.055,.675,.19)}to{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(0,2000px,0);transform:scale3d(.1,.1,.1) translate3d(0,2000px,0);-webkit-animation-timing-function:cubic-bezier(.175,.885,.32,1);animation-timing-function:cubic-bezier(.175,.885,.32,1)}}.animate__zoomOutDown{-webkit-animation-name:zoomOutDown;animation-name:zoomOutDown;-webkit-transform-origin:center bottom;transform-origin:center bottom}@-webkit-keyframes zoomOutLeft{40%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(42px,0,0);transform:scale3d(.475,.475,.475) translate3d(42px,0,0)}to{opacity:0;-webkit-transform:scale(.1) translate3d(-2000px,0,0);transform:scale(.1) translate3d(-2000px,0,0)}}@keyframes zoomOutLeft{40%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(42px,0,0);transform:scale3d(.475,.475,.475) translate3d(42px,0,0)}to{opacity:0;-webkit-transform:scale(.1) translate3d(-2000px,0,0);transform:scale(.1) translate3d(-2000px,0,0)}}.animate__zoomOutLeft{-webkit-animation-name:zoomOutLeft;animation-name:zoomOutLeft;-webkit-transform-origin:left center;transform-origin:left center}@-webkit-keyframes zoomOutRight{40%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(-42px,0,0);transform:scale3d(.475,.475,.475) translate3d(-42px,0,0)}to{opacity:0;-webkit-transform:scale(.1) translate3d(2000px,0,0);transform:scale(.1) translate3d(2000px,0,0)}}@keyframes zoomOutRight{40%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(-42px,0,0);transform:scale3d(.475,.475,.475) translate3d(-42px,0,0)}to{opacity:0;-webkit-transform:scale(.1) translate3d(2000px,0,0);transform:scale(.1) translate3d(2000px,0,0)}}.animate__zoomOutRight{-webkit-animation-name:zoomOutRight;animation-name:zoomOutRight;-webkit-transform-origin:right center;transform-origin:right center}@-webkit-keyframes zoomOutUp{40%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(0,60px,0);transform:scale3d(.475,.475,.475) translate3d(0,60px,0);-webkit-animation-timing-function:cubic-bezier(.55,.055,.675,.19);animation-timing-function:cubic-bezier(.55,.055,.675,.19)}to{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(0,-2000px,0);transform:scale3d(.1,.1,.1) translate3d(0,-2000px,0);-webkit-animation-timing-function:cubic-bezier(.175,.885,.32,1);animation-timing-function:cubic-bezier(.175,.885,.32,1)}}@keyframes zoomOutUp{40%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(0,60px,0);transform:scale3d(.475,.475,.475) translate3d(0,60px,0);-webkit-animation-timing-function:cubic-bezier(.55,.055,.675,.19);animation-timing-function:cubic-bezier(.55,.055,.675,.19)}to{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(0,-2000px,0);transform:scale3d(.1,.1,.1) translate3d(0,-2000px,0);-webkit-animation-timing-function:cubic-bezier(.175,.885,.32,1);animation-timing-function:cubic-bezier(.175,.885,.32,1)}}.animate__zoomOutUp{-webkit-animation-name:zoomOutUp;animation-name:zoomOutUp;-webkit-transform-origin:center bottom;transform-origin:center bottom}@-webkit-keyframes slideInDown{0%{-webkit-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0);visibility:visible}to{-webkit-transform:translate3d(0,0,0);transform:translateZ(0)}}@keyframes slideInDown{0%{-webkit-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0);visibility:visible}to{-webkit-transform:translate3d(0,0,0);transform:translateZ(0)}}.animate__slideInDown{-webkit-animation-name:slideInDown;animation-name:slideInDown}@-webkit-keyframes slideInLeft{0%{-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0);visibility:visible}to{-webkit-transform:translate3d(0,0,0);transform:translateZ(0)}}@keyframes slideInLeft{0%{-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0);visibility:visible}to{-webkit-transform:translate3d(0,0,0);transform:translateZ(0)}}.animate__slideInLeft{-webkit-animation-name:slideInLeft;animation-name:slideInLeft}@-webkit-keyframes slideInRight{0%{-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0);visibility:visible}to{-webkit-transform:translate3d(0,0,0);transform:translateZ(0)}}@keyframes slideInRight{0%{-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0);visibility:visible}to{-webkit-transform:translate3d(0,0,0);transform:translateZ(0)}}.animate__slideInRight{-webkit-animation-name:slideInRight;animation-name:slideInRight}@-webkit-keyframes slideInUp{0%{-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0);visibility:visible}to{-webkit-transform:translate3d(0,0,0);transform:translateZ(0)}}@keyframes slideInUp{0%{-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0);visibility:visible}to{-webkit-transform:translate3d(0,0,0);transform:translateZ(0)}}.animate__slideInUp{-webkit-animation-name:slideInUp;animation-name:slideInUp}@-webkit-keyframes slideOutDown{0%{-webkit-transform:translate3d(0,0,0);transform:translateZ(0)}to{visibility:hidden;-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}}@keyframes slideOutDown{0%{-webkit-transform:translate3d(0,0,0);transform:translateZ(0)}to{visibility:hidden;-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}}.animate__slideOutDown{-webkit-animation-name:slideOutDown;animation-name:slideOutDown}@-webkit-keyframes slideOutLeft{0%{-webkit-transform:translate3d(0,0,0);transform:translateZ(0)}to{visibility:hidden;-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}}@keyframes slideOutLeft{0%{-webkit-transform:translate3d(0,0,0);transform:translateZ(0)}to{visibility:hidden;-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}}.animate__slideOutLeft{-webkit-animation-name:slideOutLeft;animation-name:slideOutLeft}@-webkit-keyframes slideOutRight{0%{-webkit-transform:translate3d(0,0,0);transform:translateZ(0)}to{visibility:hidden;-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}}@keyframes slideOutRight{0%{-webkit-transform:translate3d(0,0,0);transform:translateZ(0)}to{visibility:hidden;-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}}.animate__slideOutRight{-webkit-animation-name:slideOutRight;animation-name:slideOutRight}@-webkit-keyframes slideOutUp{0%{-webkit-transform:translate3d(0,0,0);transform:translateZ(0)}to{visibility:hidden;-webkit-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0)}}@keyframes slideOutUp{0%{-webkit-transform:translate3d(0,0,0);transform:translateZ(0)}to{visibility:hidden;-webkit-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0)}}.animate__slideOutUp{-webkit-animation-name:slideOutUp;animation-name:slideOutUp}.mat-elevation-z0,.mat-mdc-elevation-specific.mat-elevation-z0{box-shadow:var(--mat-app-elevation-shadow-level-0, none)}.mat-elevation-z1,.mat-mdc-elevation-specific.mat-elevation-z1{box-shadow:var(--mat-app-elevation-shadow-level-1, none)}.mat-elevation-z2,.mat-mdc-elevation-specific.mat-elevation-z2{box-shadow:var(--mat-app-elevation-shadow-level-2, none)}.mat-elevation-z3,.mat-mdc-elevation-specific.mat-elevation-z3{box-shadow:var(--mat-app-elevation-shadow-level-3, none)}.mat-elevation-z4,.mat-mdc-elevation-specific.mat-elevation-z4{box-shadow:var(--mat-app-elevation-shadow-level-4, none)}.mat-elevation-z5,.mat-mdc-elevation-specific.mat-elevation-z5{box-shadow:var(--mat-app-elevation-shadow-level-5, none)}.mat-elevation-z6,.mat-mdc-elevation-specific.mat-elevation-z6{box-shadow:var(--mat-app-elevation-shadow-level-6, none)}.mat-elevation-z7,.mat-mdc-elevation-specific.mat-elevation-z7{box-shadow:var(--mat-app-elevation-shadow-level-7, none)}.mat-elevation-z8,.mat-mdc-elevation-specific.mat-elevation-z8{box-shadow:var(--mat-app-elevation-shadow-level-8, none)}.mat-elevation-z9,.mat-mdc-elevation-specific.mat-elevation-z9{box-shadow:var(--mat-app-elevation-shadow-level-9, none)}.mat-elevation-z10,.mat-mdc-elevation-specific.mat-elevation-z10{box-shadow:var(--mat-app-elevation-shadow-level-10, none)}.mat-elevation-z11,.mat-mdc-elevation-specific.mat-elevation-z11{box-shadow:var(--mat-app-elevation-shadow-level-11, none)}.mat-elevation-z12,.mat-mdc-elevation-specific.mat-elevation-z12{box-shadow:var(--mat-app-elevation-shadow-level-12, none)}.mat-elevation-z13,.mat-mdc-elevation-specific.mat-elevation-z13{box-shadow:var(--mat-app-elevation-shadow-level-13, none)}.mat-elevation-z14,.mat-mdc-elevation-specific.mat-elevation-z14{box-shadow:var(--mat-app-elevation-shadow-level-14, none)}.mat-elevation-z15,.mat-mdc-elevation-specific.mat-elevation-z15{box-shadow:var(--mat-app-elevation-shadow-level-15, none)}.mat-elevation-z16,.mat-mdc-elevation-specific.mat-elevation-z16{box-shadow:var(--mat-app-elevation-shadow-level-16, none)}.mat-elevation-z17,.mat-mdc-elevation-specific.mat-elevation-z17{box-shadow:var(--mat-app-elevation-shadow-level-17, none)}.mat-elevation-z18,.mat-mdc-elevation-specific.mat-elevation-z18{box-shadow:var(--mat-app-elevation-shadow-level-18, none)}.mat-elevation-z19,.mat-mdc-elevation-specific.mat-elevation-z19{box-shadow:var(--mat-app-elevation-shadow-level-19, none)}.mat-elevation-z20,.mat-mdc-elevation-specific.mat-elevation-z20{box-shadow:var(--mat-app-elevation-shadow-level-20, none)}.mat-elevation-z21,.mat-mdc-elevation-specific.mat-elevation-z21{box-shadow:var(--mat-app-elevation-shadow-level-21, none)}.mat-elevation-z22,.mat-mdc-elevation-specific.mat-elevation-z22{box-shadow:var(--mat-app-elevation-shadow-level-22, none)}.mat-elevation-z23,.mat-mdc-elevation-specific.mat-elevation-z23{box-shadow:var(--mat-app-elevation-shadow-level-23, none)}.mat-elevation-z24,.mat-mdc-elevation-specific.mat-elevation-z24{box-shadow:var(--mat-app-elevation-shadow-level-24, none)}html{--mat-sys-on-surface: initial}.mat-app-background{background-color:var(--mat-app-background-color, var(--mat-sys-background, transparent));color:var(--mat-app-text-color, var(--mat-sys-on-background, inherit))}html{--mat-ripple-color: rgba(0, 0, 0, .1)}html{--mat-option-selected-state-label-text-color: #3f51b5;--mat-option-label-text-color: rgba(0, 0, 0, .87);--mat-option-hover-state-layer-color: rgba(0, 0, 0, .04);--mat-option-focus-state-layer-color: rgba(0, 0, 0, .04);--mat-option-selected-state-layer-color: rgba(0, 0, 0, .04)}.mat-accent{--mat-option-selected-state-label-text-color: #ff4081;--mat-option-label-text-color: rgba(0, 0, 0, .87);--mat-option-hover-state-layer-color: rgba(0, 0, 0, .04);--mat-option-focus-state-layer-color: rgba(0, 0, 0, .04);--mat-option-selected-state-layer-color: rgba(0, 0, 0, .04)}.mat-warn{--mat-option-selected-state-label-text-color: #f44336;--mat-option-label-text-color: rgba(0, 0, 0, .87);--mat-option-hover-state-layer-color: rgba(0, 0, 0, .04);--mat-option-focus-state-layer-color: rgba(0, 0, 0, .04);--mat-option-selected-state-layer-color: rgba(0, 0, 0, .04)}html{--mat-optgroup-label-text-color: rgba(0, 0, 0, .87)}html{--mat-full-pseudo-checkbox-selected-icon-color: #ff4081;--mat-full-pseudo-checkbox-selected-checkmark-color: #fafafa;--mat-full-pseudo-checkbox-unselected-icon-color: rgba(0, 0, 0, .54);--mat-full-pseudo-checkbox-disabled-selected-checkmark-color: #fafafa;--mat-full-pseudo-checkbox-disabled-unselected-icon-color: #b0b0b0;--mat-full-pseudo-checkbox-disabled-selected-icon-color: #b0b0b0}html{--mat-minimal-pseudo-checkbox-selected-checkmark-color: #ff4081;--mat-minimal-pseudo-checkbox-disabled-selected-checkmark-color: #b0b0b0}.mat-primary{--mat-full-pseudo-checkbox-selected-icon-color: #3f51b5;--mat-full-pseudo-checkbox-selected-checkmark-color: #fafafa;--mat-full-pseudo-checkbox-unselected-icon-color: rgba(0, 0, 0, .54);--mat-full-pseudo-checkbox-disabled-selected-checkmark-color: #fafafa;--mat-full-pseudo-checkbox-disabled-unselected-icon-color: #b0b0b0;--mat-full-pseudo-checkbox-disabled-selected-icon-color: #b0b0b0}.mat-primary{--mat-minimal-pseudo-checkbox-selected-checkmark-color: #3f51b5;--mat-minimal-pseudo-checkbox-disabled-selected-checkmark-color: #b0b0b0}.mat-accent{--mat-full-pseudo-checkbox-selected-icon-color: #ff4081;--mat-full-pseudo-checkbox-selected-checkmark-color: #fafafa;--mat-full-pseudo-checkbox-unselected-icon-color: rgba(0, 0, 0, .54);--mat-full-pseudo-checkbox-disabled-selected-checkmark-color: #fafafa;--mat-full-pseudo-checkbox-disabled-unselected-icon-color: #b0b0b0;--mat-full-pseudo-checkbox-disabled-selected-icon-color: #b0b0b0}.mat-accent{--mat-minimal-pseudo-checkbox-selected-checkmark-color: #ff4081;--mat-minimal-pseudo-checkbox-disabled-selected-checkmark-color: #b0b0b0}.mat-warn{--mat-full-pseudo-checkbox-selected-icon-color: #f44336;--mat-full-pseudo-checkbox-selected-checkmark-color: #fafafa;--mat-full-pseudo-checkbox-unselected-icon-color: rgba(0, 0, 0, .54);--mat-full-pseudo-checkbox-disabled-selected-checkmark-color: #fafafa;--mat-full-pseudo-checkbox-disabled-unselected-icon-color: #b0b0b0;--mat-full-pseudo-checkbox-disabled-selected-icon-color: #b0b0b0}.mat-warn{--mat-minimal-pseudo-checkbox-selected-checkmark-color: #f44336;--mat-minimal-pseudo-checkbox-disabled-selected-checkmark-color: #b0b0b0}html{--mat-app-background-color: #fafafa;--mat-app-text-color: rgba(0, 0, 0, .87);--mat-app-elevation-shadow-level-0: 0px 0px 0px 0px rgba(0, 0, 0, .2), 0px 0px 0px 0px rgba(0, 0, 0, .14), 0px 0px 0px 0px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-1: 0px 2px 1px -1px rgba(0, 0, 0, .2), 0px 1px 1px 0px rgba(0, 0, 0, .14), 0px 1px 3px 0px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-2: 0px 3px 1px -2px rgba(0, 0, 0, .2), 0px 2px 2px 0px rgba(0, 0, 0, .14), 0px 1px 5px 0px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-3: 0px 3px 3px -2px rgba(0, 0, 0, .2), 0px 3px 4px 0px rgba(0, 0, 0, .14), 0px 1px 8px 0px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-4: 0px 2px 4px -1px rgba(0, 0, 0, .2), 0px 4px 5px 0px rgba(0, 0, 0, .14), 0px 1px 10px 0px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-5: 0px 3px 5px -1px rgba(0, 0, 0, .2), 0px 5px 8px 0px rgba(0, 0, 0, .14), 0px 1px 14px 0px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-6: 0px 3px 5px -1px rgba(0, 0, 0, .2), 0px 6px 10px 0px rgba(0, 0, 0, .14), 0px 1px 18px 0px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-7: 0px 4px 5px -2px rgba(0, 0, 0, .2), 0px 7px 10px 1px rgba(0, 0, 0, .14), 0px 2px 16px 1px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-8: 0px 5px 5px -3px rgba(0, 0, 0, .2), 0px 8px 10px 1px rgba(0, 0, 0, .14), 0px 3px 14px 2px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-9: 0px 5px 6px -3px rgba(0, 0, 0, .2), 0px 9px 12px 1px rgba(0, 0, 0, .14), 0px 3px 16px 2px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-10: 0px 6px 6px -3px rgba(0, 0, 0, .2), 0px 10px 14px 1px rgba(0, 0, 0, .14), 0px 4px 18px 3px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-11: 0px 6px 7px -4px rgba(0, 0, 0, .2), 0px 11px 15px 1px rgba(0, 0, 0, .14), 0px 4px 20px 3px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-12: 0px 7px 8px -4px rgba(0, 0, 0, .2), 0px 12px 17px 2px rgba(0, 0, 0, .14), 0px 5px 22px 4px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-13: 0px 7px 8px -4px rgba(0, 0, 0, .2), 0px 13px 19px 2px rgba(0, 0, 0, .14), 0px 5px 24px 4px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-14: 0px 7px 9px -4px rgba(0, 0, 0, .2), 0px 14px 21px 2px rgba(0, 0, 0, .14), 0px 5px 26px 4px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-15: 0px 8px 9px -5px rgba(0, 0, 0, .2), 0px 15px 22px 2px rgba(0, 0, 0, .14), 0px 6px 28px 5px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-16: 0px 8px 10px -5px rgba(0, 0, 0, .2), 0px 16px 24px 2px rgba(0, 0, 0, .14), 0px 6px 30px 5px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-17: 0px 8px 11px -5px rgba(0, 0, 0, .2), 0px 17px 26px 2px rgba(0, 0, 0, .14), 0px 6px 32px 5px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-18: 0px 9px 11px -5px rgba(0, 0, 0, .2), 0px 18px 28px 2px rgba(0, 0, 0, .14), 0px 7px 34px 6px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-19: 0px 9px 12px -6px rgba(0, 0, 0, .2), 0px 19px 29px 2px rgba(0, 0, 0, .14), 0px 7px 36px 6px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-20: 0px 10px 13px -6px rgba(0, 0, 0, .2), 0px 20px 31px 3px rgba(0, 0, 0, .14), 0px 8px 38px 7px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-21: 0px 10px 13px -6px rgba(0, 0, 0, .2), 0px 21px 33px 3px rgba(0, 0, 0, .14), 0px 8px 40px 7px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-22: 0px 10px 14px -6px rgba(0, 0, 0, .2), 0px 22px 35px 3px rgba(0, 0, 0, .14), 0px 8px 42px 7px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-23: 0px 11px 14px -7px rgba(0, 0, 0, .2), 0px 23px 36px 3px rgba(0, 0, 0, .14), 0px 9px 44px 8px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-24: 0px 11px 15px -7px rgba(0, 0, 0, .2), 0px 24px 38px 3px rgba(0, 0, 0, .14), 0px 9px 46px 8px rgba(0, 0, 0, .12)}html{--mdc-elevated-card-container-shape: 4px}html{--mdc-outlined-card-container-shape: 4px;--mdc-outlined-card-outline-width: 1px}html{--mdc-elevated-card-container-color: white;--mdc-elevated-card-container-elevation: 0px 2px 1px -1px rgba(0, 0, 0, .2), 0px 1px 1px 0px rgba(0, 0, 0, .14), 0px 1px 3px 0px rgba(0, 0, 0, .12)}html{--mdc-outlined-card-container-color: white;--mdc-outlined-card-outline-color: rgba(0, 0, 0, .12);--mdc-outlined-card-container-elevation: 0px 0px 0px 0px rgba(0, 0, 0, .2), 0px 0px 0px 0px rgba(0, 0, 0, .14), 0px 0px 0px 0px rgba(0, 0, 0, .12)}html{--mat-card-subtitle-text-color: rgba(0, 0, 0, .54)}html{--mdc-linear-progress-active-indicator-height: 4px;--mdc-linear-progress-track-height: 4px;--mdc-linear-progress-track-shape: 0}.mat-mdc-progress-bar{--mdc-linear-progress-active-indicator-color: #3f51b5;--mdc-linear-progress-track-color: rgba(63, 81, 181, .25)}.mat-mdc-progress-bar.mat-accent{--mdc-linear-progress-active-indicator-color: #ff4081;--mdc-linear-progress-track-color: rgba(255, 64, 129, .25)}.mat-mdc-progress-bar.mat-warn{--mdc-linear-progress-active-indicator-color: #f44336;--mdc-linear-progress-track-color: rgba(244, 67, 54, .25)}html{--mdc-plain-tooltip-container-shape: 4px;--mdc-plain-tooltip-supporting-text-line-height: 16px}html{--mdc-plain-tooltip-container-color: #616161;--mdc-plain-tooltip-supporting-text-color: #fff}html{--mdc-filled-text-field-active-indicator-height: 1px;--mdc-filled-text-field-focus-active-indicator-height: 2px;--mdc-filled-text-field-container-shape: 4px}html{--mdc-outlined-text-field-outline-width: 1px;--mdc-outlined-text-field-focus-outline-width: 2px;--mdc-outlined-text-field-container-shape: 4px}html{--mdc-filled-text-field-caret-color: #3f51b5;--mdc-filled-text-field-focus-active-indicator-color: #3f51b5;--mdc-filled-text-field-focus-label-text-color: rgba(63, 81, 181, .87);--mdc-filled-text-field-container-color: rgb(244.8, 244.8, 244.8);--mdc-filled-text-field-disabled-container-color: rgb(249.9, 249.9, 249.9);--mdc-filled-text-field-label-text-color: rgba(0, 0, 0, .6);--mdc-filled-text-field-hover-label-text-color: rgba(0, 0, 0, .6);--mdc-filled-text-field-disabled-label-text-color: rgba(0, 0, 0, .38);--mdc-filled-text-field-input-text-color: rgba(0, 0, 0, .87);--mdc-filled-text-field-disabled-input-text-color: rgba(0, 0, 0, .38);--mdc-filled-text-field-input-text-placeholder-color: rgba(0, 0, 0, .6);--mdc-filled-text-field-error-hover-label-text-color: #f44336;--mdc-filled-text-field-error-focus-label-text-color: #f44336;--mdc-filled-text-field-error-label-text-color: #f44336;--mdc-filled-text-field-error-caret-color: #f44336;--mdc-filled-text-field-active-indicator-color: rgba(0, 0, 0, .42);--mdc-filled-text-field-disabled-active-indicator-color: rgba(0, 0, 0, .06);--mdc-filled-text-field-hover-active-indicator-color: rgba(0, 0, 0, .87);--mdc-filled-text-field-error-active-indicator-color: #f44336;--mdc-filled-text-field-error-focus-active-indicator-color: #f44336;--mdc-filled-text-field-error-hover-active-indicator-color: #f44336}html{--mdc-outlined-text-field-caret-color: #3f51b5;--mdc-outlined-text-field-focus-outline-color: #3f51b5;--mdc-outlined-text-field-focus-label-text-color: rgba(63, 81, 181, .87);--mdc-outlined-text-field-label-text-color: rgba(0, 0, 0, .6);--mdc-outlined-text-field-hover-label-text-color: rgba(0, 0, 0, .6);--mdc-outlined-text-field-disabled-label-text-color: rgba(0, 0, 0, .38);--mdc-outlined-text-field-input-text-color: rgba(0, 0, 0, .87);--mdc-outlined-text-field-disabled-input-text-color: rgba(0, 0, 0, .38);--mdc-outlined-text-field-input-text-placeholder-color: rgba(0, 0, 0, .6);--mdc-outlined-text-field-error-caret-color: #f44336;--mdc-outlined-text-field-error-focus-label-text-color: #f44336;--mdc-outlined-text-field-error-label-text-color: #f44336;--mdc-outlined-text-field-error-hover-label-text-color: #f44336;--mdc-outlined-text-field-outline-color: rgba(0, 0, 0, .38);--mdc-outlined-text-field-disabled-outline-color: rgba(0, 0, 0, .06);--mdc-outlined-text-field-hover-outline-color: rgba(0, 0, 0, .87);--mdc-outlined-text-field-error-focus-outline-color: #f44336;--mdc-outlined-text-field-error-hover-outline-color: #f44336;--mdc-outlined-text-field-error-outline-color: #f44336}html{--mat-form-field-focus-select-arrow-color: rgba(63, 81, 181, .87);--mat-form-field-disabled-input-text-placeholder-color: rgba(0, 0, 0, .38);--mat-form-field-state-layer-color: rgba(0, 0, 0, .87);--mat-form-field-error-text-color: #f44336;--mat-form-field-select-option-text-color: inherit;--mat-form-field-select-disabled-option-text-color: GrayText;--mat-form-field-leading-icon-color: unset;--mat-form-field-disabled-leading-icon-color: unset;--mat-form-field-trailing-icon-color: unset;--mat-form-field-disabled-trailing-icon-color: unset;--mat-form-field-error-focus-trailing-icon-color: unset;--mat-form-field-error-hover-trailing-icon-color: unset;--mat-form-field-error-trailing-icon-color: unset;--mat-form-field-enabled-select-arrow-color: rgba(0, 0, 0, .54);--mat-form-field-disabled-select-arrow-color: rgba(0, 0, 0, .38);--mat-form-field-hover-state-layer-opacity: .04;--mat-form-field-focus-state-layer-opacity: .08}.mat-mdc-form-field.mat-accent{--mdc-filled-text-field-caret-color: #ff4081;--mdc-filled-text-field-focus-active-indicator-color: #ff4081;--mdc-filled-text-field-focus-label-text-color: rgba(255, 64, 129, .87)}.mat-mdc-form-field.mat-accent{--mdc-outlined-text-field-caret-color: #ff4081;--mdc-outlined-text-field-focus-outline-color: #ff4081;--mdc-outlined-text-field-focus-label-text-color: rgba(255, 64, 129, .87)}.mat-mdc-form-field.mat-accent{--mat-form-field-focus-select-arrow-color: rgba(255, 64, 129, .87)}.mat-mdc-form-field.mat-warn{--mdc-filled-text-field-caret-color: #f44336;--mdc-filled-text-field-focus-active-indicator-color: #f44336;--mdc-filled-text-field-focus-label-text-color: rgba(244, 67, 54, .87)}.mat-mdc-form-field.mat-warn{--mdc-outlined-text-field-caret-color: #f44336;--mdc-outlined-text-field-focus-outline-color: #f44336;--mdc-outlined-text-field-focus-label-text-color: rgba(244, 67, 54, .87)}.mat-mdc-form-field.mat-warn{--mat-form-field-focus-select-arrow-color: rgba(244, 67, 54, .87)}html{--mat-form-field-container-height: 56px;--mat-form-field-filled-label-display: block;--mat-form-field-container-vertical-padding: 16px;--mat-form-field-filled-with-label-container-padding-top: 24px;--mat-form-field-filled-with-label-container-padding-bottom: 8px}html{--mat-select-container-elevation-shadow: 0px 5px 5px -3px rgba(0, 0, 0, .2), 0px 8px 10px 1px rgba(0, 0, 0, .14), 0px 3px 14px 2px rgba(0, 0, 0, .12)}html{--mat-select-panel-background-color: white;--mat-select-enabled-trigger-text-color: rgba(0, 0, 0, .87);--mat-select-disabled-trigger-text-color: rgba(0, 0, 0, .38);--mat-select-placeholder-text-color: rgba(0, 0, 0, .6);--mat-select-enabled-arrow-color: rgba(0, 0, 0, .54);--mat-select-disabled-arrow-color: rgba(0, 0, 0, .38);--mat-select-focused-arrow-color: rgba(63, 81, 181, .87);--mat-select-invalid-arrow-color: rgba(244, 67, 54, .87)}html .mat-mdc-form-field.mat-accent{--mat-select-panel-background-color: white;--mat-select-enabled-trigger-text-color: rgba(0, 0, 0, .87);--mat-select-disabled-trigger-text-color: rgba(0, 0, 0, .38);--mat-select-placeholder-text-color: rgba(0, 0, 0, .6);--mat-select-enabled-arrow-color: rgba(0, 0, 0, .54);--mat-select-disabled-arrow-color: rgba(0, 0, 0, .38);--mat-select-focused-arrow-color: rgba(255, 64, 129, .87);--mat-select-invalid-arrow-color: rgba(244, 67, 54, .87)}html .mat-mdc-form-field.mat-warn{--mat-select-panel-background-color: white;--mat-select-enabled-trigger-text-color: rgba(0, 0, 0, .87);--mat-select-disabled-trigger-text-color: rgba(0, 0, 0, .38);--mat-select-placeholder-text-color: rgba(0, 0, 0, .6);--mat-select-enabled-arrow-color: rgba(0, 0, 0, .54);--mat-select-disabled-arrow-color: rgba(0, 0, 0, .38);--mat-select-focused-arrow-color: rgba(244, 67, 54, .87);--mat-select-invalid-arrow-color: rgba(244, 67, 54, .87)}html{--mat-select-arrow-transform: translateY(-8px)}html{--mat-autocomplete-container-shape: 4px;--mat-autocomplete-container-elevation-shadow: 0px 5px 5px -3px rgba(0, 0, 0, .2), 0px 8px 10px 1px rgba(0, 0, 0, .14), 0px 3px 14px 2px rgba(0, 0, 0, .12)}html{--mat-autocomplete-background-color: white}html{--mdc-dialog-container-shape: 4px}html{--mat-dialog-container-elevation-shadow: 0px 11px 15px -7px rgba(0, 0, 0, .2), 0px 24px 38px 3px rgba(0, 0, 0, .14), 0px 9px 46px 8px rgba(0, 0, 0, .12);--mat-dialog-container-max-width: 80vw;--mat-dialog-container-small-max-width: 80vw;--mat-dialog-container-min-width: 0;--mat-dialog-actions-alignment: start;--mat-dialog-actions-padding: 8px;--mat-dialog-content-padding: 20px 24px;--mat-dialog-with-actions-content-padding: 20px 24px;--mat-dialog-headline-padding: 0 24px 9px}html{--mdc-dialog-container-color: white;--mdc-dialog-subhead-color: rgba(0, 0, 0, .87);--mdc-dialog-supporting-text-color: rgba(0, 0, 0, .6)}.mat-mdc-standard-chip{--mdc-chip-container-shape-radius: 16px;--mdc-chip-with-avatar-avatar-shape-radius: 14px;--mdc-chip-with-avatar-avatar-size: 28px;--mdc-chip-with-icon-icon-size: 18px;--mdc-chip-outline-width: 0;--mdc-chip-outline-color: transparent;--mdc-chip-disabled-outline-color: transparent;--mdc-chip-focus-outline-color: transparent;--mdc-chip-hover-state-layer-opacity: .04;--mdc-chip-with-avatar-disabled-avatar-opacity: 1;--mdc-chip-flat-selected-outline-width: 0;--mdc-chip-selected-hover-state-layer-opacity: .04;--mdc-chip-with-trailing-icon-disabled-trailing-icon-opacity: 1;--mdc-chip-with-icon-disabled-icon-opacity: 1}.mat-mdc-standard-chip{--mat-chip-disabled-container-opacity: .4;--mat-chip-trailing-action-opacity: .54;--mat-chip-trailing-action-focus-opacity: 1;--mat-chip-trailing-action-state-layer-color: transparent;--mat-chip-selected-trailing-action-state-layer-color: transparent;--mat-chip-trailing-action-hover-state-layer-opacity: 0;--mat-chip-trailing-action-focus-state-layer-opacity: 0}.mat-mdc-standard-chip{--mdc-chip-disabled-label-text-color: #212121;--mdc-chip-elevated-container-color: rgb(224.4, 224.4, 224.4);--mdc-chip-elevated-selected-container-color: rgb(224.4, 224.4, 224.4);--mdc-chip-elevated-disabled-container-color: rgb(224.4, 224.4, 224.4);--mdc-chip-flat-disabled-selected-container-color: rgb(224.4, 224.4, 224.4);--mdc-chip-focus-state-layer-color: black;--mdc-chip-hover-state-layer-color: black;--mdc-chip-selected-hover-state-layer-color: black;--mdc-chip-focus-state-layer-opacity: .12;--mdc-chip-selected-focus-state-layer-color: black;--mdc-chip-selected-focus-state-layer-opacity: .12;--mdc-chip-label-text-color: #212121;--mdc-chip-selected-label-text-color: #212121;--mdc-chip-with-icon-icon-color: #212121;--mdc-chip-with-icon-disabled-icon-color: #212121;--mdc-chip-with-icon-selected-icon-color: #212121;--mdc-chip-with-trailing-icon-disabled-trailing-icon-color: #212121;--mdc-chip-with-trailing-icon-trailing-icon-color: #212121}.mat-mdc-standard-chip{--mat-chip-selected-disabled-trailing-icon-color: #212121;--mat-chip-selected-trailing-icon-color: #212121}.mat-mdc-standard-chip.mat-mdc-chip-selected.mat-primary,.mat-mdc-standard-chip.mat-mdc-chip-highlighted.mat-primary{--mdc-chip-disabled-label-text-color: white;--mdc-chip-elevated-container-color: #3f51b5;--mdc-chip-elevated-selected-container-color: #3f51b5;--mdc-chip-elevated-disabled-container-color: #3f51b5;--mdc-chip-flat-disabled-selected-container-color: #3f51b5;--mdc-chip-focus-state-layer-color: black;--mdc-chip-hover-state-layer-color: black;--mdc-chip-selected-hover-state-layer-color: black;--mdc-chip-focus-state-layer-opacity: .12;--mdc-chip-selected-focus-state-layer-color: black;--mdc-chip-selected-focus-state-layer-opacity: .12;--mdc-chip-label-text-color: white;--mdc-chip-selected-label-text-color: white;--mdc-chip-with-icon-icon-color: white;--mdc-chip-with-icon-disabled-icon-color: white;--mdc-chip-with-icon-selected-icon-color: white;--mdc-chip-with-trailing-icon-disabled-trailing-icon-color: white;--mdc-chip-with-trailing-icon-trailing-icon-color: white}.mat-mdc-standard-chip.mat-mdc-chip-selected.mat-primary,.mat-mdc-standard-chip.mat-mdc-chip-highlighted.mat-primary{--mat-chip-selected-disabled-trailing-icon-color: white;--mat-chip-selected-trailing-icon-color: white}.mat-mdc-standard-chip.mat-mdc-chip-selected.mat-accent,.mat-mdc-standard-chip.mat-mdc-chip-highlighted.mat-accent{--mdc-chip-disabled-label-text-color: white;--mdc-chip-elevated-container-color: #ff4081;--mdc-chip-elevated-selected-container-color: #ff4081;--mdc-chip-elevated-disabled-container-color: #ff4081;--mdc-chip-flat-disabled-selected-container-color: #ff4081;--mdc-chip-focus-state-layer-color: black;--mdc-chip-hover-state-layer-color: black;--mdc-chip-selected-hover-state-layer-color: black;--mdc-chip-focus-state-layer-opacity: .12;--mdc-chip-selected-focus-state-layer-color: black;--mdc-chip-selected-focus-state-layer-opacity: .12;--mdc-chip-label-text-color: white;--mdc-chip-selected-label-text-color: white;--mdc-chip-with-icon-icon-color: white;--mdc-chip-with-icon-disabled-icon-color: white;--mdc-chip-with-icon-selected-icon-color: white;--mdc-chip-with-trailing-icon-disabled-trailing-icon-color: white;--mdc-chip-with-trailing-icon-trailing-icon-color: white}.mat-mdc-standard-chip.mat-mdc-chip-selected.mat-accent,.mat-mdc-standard-chip.mat-mdc-chip-highlighted.mat-accent{--mat-chip-selected-disabled-trailing-icon-color: white;--mat-chip-selected-trailing-icon-color: white}.mat-mdc-standard-chip.mat-mdc-chip-selected.mat-warn,.mat-mdc-standard-chip.mat-mdc-chip-highlighted.mat-warn{--mdc-chip-disabled-label-text-color: white;--mdc-chip-elevated-container-color: #f44336;--mdc-chip-elevated-selected-container-color: #f44336;--mdc-chip-elevated-disabled-container-color: #f44336;--mdc-chip-flat-disabled-selected-container-color: #f44336;--mdc-chip-focus-state-layer-color: black;--mdc-chip-hover-state-layer-color: black;--mdc-chip-selected-hover-state-layer-color: black;--mdc-chip-focus-state-layer-opacity: .12;--mdc-chip-selected-focus-state-layer-color: black;--mdc-chip-selected-focus-state-layer-opacity: .12;--mdc-chip-label-text-color: white;--mdc-chip-selected-label-text-color: white;--mdc-chip-with-icon-icon-color: white;--mdc-chip-with-icon-disabled-icon-color: white;--mdc-chip-with-icon-selected-icon-color: white;--mdc-chip-with-trailing-icon-disabled-trailing-icon-color: white;--mdc-chip-with-trailing-icon-trailing-icon-color: white}.mat-mdc-standard-chip.mat-mdc-chip-selected.mat-warn,.mat-mdc-standard-chip.mat-mdc-chip-highlighted.mat-warn{--mat-chip-selected-disabled-trailing-icon-color: white;--mat-chip-selected-trailing-icon-color: white}.mat-mdc-chip.mat-mdc-standard-chip{--mdc-chip-container-height: 32px}html{--mdc-switch-disabled-selected-icon-opacity: .38;--mdc-switch-disabled-track-opacity: .12;--mdc-switch-disabled-unselected-icon-opacity: .38;--mdc-switch-handle-height: 20px;--mdc-switch-handle-shape: 10px;--mdc-switch-handle-width: 20px;--mdc-switch-selected-icon-size: 18px;--mdc-switch-track-height: 14px;--mdc-switch-track-shape: 7px;--mdc-switch-track-width: 36px;--mdc-switch-unselected-icon-size: 18px;--mdc-switch-selected-focus-state-layer-opacity: .12;--mdc-switch-selected-hover-state-layer-opacity: .04;--mdc-switch-selected-pressed-state-layer-opacity: .1;--mdc-switch-unselected-focus-state-layer-opacity: .12;--mdc-switch-unselected-hover-state-layer-opacity: .04;--mdc-switch-unselected-pressed-state-layer-opacity: .1}html .mat-mdc-slide-toggle{--mat-switch-disabled-selected-handle-opacity: .38;--mat-switch-disabled-unselected-handle-opacity: .38;--mat-switch-unselected-handle-size: 20px;--mat-switch-selected-handle-size: 20px;--mat-switch-pressed-handle-size: 20px;--mat-switch-with-icon-handle-size: 20px;--mat-switch-selected-handle-horizontal-margin: 0;--mat-switch-selected-with-icon-handle-horizontal-margin: 0;--mat-switch-selected-pressed-handle-horizontal-margin: 0;--mat-switch-unselected-handle-horizontal-margin: 0;--mat-switch-unselected-with-icon-handle-horizontal-margin: 0;--mat-switch-unselected-pressed-handle-horizontal-margin: 0;--mat-switch-visible-track-opacity: 1;--mat-switch-hidden-track-opacity: 1;--mat-switch-visible-track-transition: transform 75ms 0ms cubic-bezier(0, 0, .2, 1);--mat-switch-hidden-track-transition: transform 75ms 0ms cubic-bezier(.4, 0, .6, 1);--mat-switch-track-outline-width: 1px;--mat-switch-track-outline-color: transparent;--mat-switch-selected-track-outline-width: 1px;--mat-switch-selected-track-outline-color: transparent;--mat-switch-disabled-unselected-track-outline-width: 1px;--mat-switch-disabled-unselected-track-outline-color: transparent}html{--mdc-switch-selected-focus-state-layer-color: #3949ab;--mdc-switch-selected-handle-color: #3949ab;--mdc-switch-selected-hover-state-layer-color: #3949ab;--mdc-switch-selected-pressed-state-layer-color: #3949ab;--mdc-switch-selected-focus-handle-color: #1a237e;--mdc-switch-selected-hover-handle-color: #1a237e;--mdc-switch-selected-pressed-handle-color: #1a237e;--mdc-switch-selected-focus-track-color: #7986cb;--mdc-switch-selected-hover-track-color: #7986cb;--mdc-switch-selected-pressed-track-color: #7986cb;--mdc-switch-selected-track-color: #7986cb;--mdc-switch-disabled-selected-handle-color: #424242;--mdc-switch-disabled-selected-icon-color: #fff;--mdc-switch-disabled-selected-track-color: #424242;--mdc-switch-disabled-unselected-handle-color: #424242;--mdc-switch-disabled-unselected-icon-color: #fff;--mdc-switch-disabled-unselected-track-color: #424242;--mdc-switch-handle-surface-color: #fff;--mdc-switch-selected-icon-color: #fff;--mdc-switch-unselected-focus-handle-color: #212121;--mdc-switch-unselected-focus-state-layer-color: #424242;--mdc-switch-unselected-focus-track-color: #e0e0e0;--mdc-switch-unselected-handle-color: #616161;--mdc-switch-unselected-hover-handle-color: #212121;--mdc-switch-unselected-hover-state-layer-color: #424242;--mdc-switch-unselected-hover-track-color: #e0e0e0;--mdc-switch-unselected-icon-color: #fff;--mdc-switch-unselected-pressed-handle-color: #212121;--mdc-switch-unselected-pressed-state-layer-color: #424242;--mdc-switch-unselected-pressed-track-color: #e0e0e0;--mdc-switch-unselected-track-color: #e0e0e0;--mdc-switch-handle-elevation-shadow: 0px 2px 1px -1px rgba(0, 0, 0, .2), 0px 1px 1px 0px rgba(0, 0, 0, .14), 0px 1px 3px 0px rgba(0, 0, 0, .12);--mdc-switch-disabled-handle-elevation-shadow: 0px 0px 0px 0px rgba(0, 0, 0, .2), 0px 0px 0px 0px rgba(0, 0, 0, .14), 0px 0px 0px 0px rgba(0, 0, 0, .12)}html{--mdc-switch-disabled-label-text-color: rgba(0, 0, 0, .38)}html .mat-mdc-slide-toggle{--mat-switch-label-text-color: rgba(0, 0, 0, .87)}html .mat-mdc-slide-toggle.mat-accent{--mdc-switch-selected-focus-state-layer-color: #d81b60;--mdc-switch-selected-handle-color: #d81b60;--mdc-switch-selected-hover-state-layer-color: #d81b60;--mdc-switch-selected-pressed-state-layer-color: #d81b60;--mdc-switch-selected-focus-handle-color: #880e4f;--mdc-switch-selected-hover-handle-color: #880e4f;--mdc-switch-selected-pressed-handle-color: #880e4f;--mdc-switch-selected-focus-track-color: #f06292;--mdc-switch-selected-hover-track-color: #f06292;--mdc-switch-selected-pressed-track-color: #f06292;--mdc-switch-selected-track-color: #f06292}html .mat-mdc-slide-toggle.mat-warn{--mdc-switch-selected-focus-state-layer-color: #e53935;--mdc-switch-selected-handle-color: #e53935;--mdc-switch-selected-hover-state-layer-color: #e53935;--mdc-switch-selected-pressed-state-layer-color: #e53935;--mdc-switch-selected-focus-handle-color: #b71c1c;--mdc-switch-selected-hover-handle-color: #b71c1c;--mdc-switch-selected-pressed-handle-color: #b71c1c;--mdc-switch-selected-focus-track-color: #e57373;--mdc-switch-selected-hover-track-color: #e57373;--mdc-switch-selected-pressed-track-color: #e57373;--mdc-switch-selected-track-color: #e57373}html{--mdc-switch-state-layer-size: 40px}html{--mdc-radio-disabled-selected-icon-opacity: .38;--mdc-radio-disabled-unselected-icon-opacity: .38;--mdc-radio-state-layer-size: 40px}.mat-mdc-radio-button.mat-primary{--mdc-radio-disabled-selected-icon-color: black;--mdc-radio-disabled-unselected-icon-color: black;--mdc-radio-unselected-hover-icon-color: #212121;--mdc-radio-unselected-focus-icon-color: #212121;--mdc-radio-unselected-icon-color: rgba(0, 0, 0, .54);--mdc-radio-unselected-pressed-icon-color: rgba(0, 0, 0, .54);--mdc-radio-selected-focus-icon-color: #3f51b5;--mdc-radio-selected-hover-icon-color: #3f51b5;--mdc-radio-selected-icon-color: #3f51b5;--mdc-radio-selected-pressed-icon-color: #3f51b5}.mat-mdc-radio-button.mat-primary{--mat-radio-ripple-color: black;--mat-radio-checked-ripple-color: #3f51b5;--mat-radio-disabled-label-color: rgba(0, 0, 0, .38);--mat-radio-label-text-color: rgba(0, 0, 0, .87)}.mat-mdc-radio-button.mat-accent{--mdc-radio-disabled-selected-icon-color: black;--mdc-radio-disabled-unselected-icon-color: black;--mdc-radio-unselected-hover-icon-color: #212121;--mdc-radio-unselected-focus-icon-color: #212121;--mdc-radio-unselected-icon-color: rgba(0, 0, 0, .54);--mdc-radio-unselected-pressed-icon-color: rgba(0, 0, 0, .54);--mdc-radio-selected-focus-icon-color: #ff4081;--mdc-radio-selected-hover-icon-color: #ff4081;--mdc-radio-selected-icon-color: #ff4081;--mdc-radio-selected-pressed-icon-color: #ff4081}.mat-mdc-radio-button.mat-accent{--mat-radio-ripple-color: black;--mat-radio-checked-ripple-color: #ff4081;--mat-radio-disabled-label-color: rgba(0, 0, 0, .38);--mat-radio-label-text-color: rgba(0, 0, 0, .87)}.mat-mdc-radio-button.mat-warn{--mdc-radio-disabled-selected-icon-color: black;--mdc-radio-disabled-unselected-icon-color: black;--mdc-radio-unselected-hover-icon-color: #212121;--mdc-radio-unselected-focus-icon-color: #212121;--mdc-radio-unselected-icon-color: rgba(0, 0, 0, .54);--mdc-radio-unselected-pressed-icon-color: rgba(0, 0, 0, .54);--mdc-radio-selected-focus-icon-color: #f44336;--mdc-radio-selected-hover-icon-color: #f44336;--mdc-radio-selected-icon-color: #f44336;--mdc-radio-selected-pressed-icon-color: #f44336}.mat-mdc-radio-button.mat-warn{--mat-radio-ripple-color: black;--mat-radio-checked-ripple-color: #f44336;--mat-radio-disabled-label-color: rgba(0, 0, 0, .38);--mat-radio-label-text-color: rgba(0, 0, 0, .87)}html{--mdc-radio-state-layer-size: 40px}html{--mat-radio-touch-target-display: block}html{--mdc-slider-active-track-height: 6px;--mdc-slider-active-track-shape: 9999px;--mdc-slider-handle-height: 20px;--mdc-slider-handle-shape: 50%;--mdc-slider-handle-width: 20px;--mdc-slider-inactive-track-height: 4px;--mdc-slider-inactive-track-shape: 9999px;--mdc-slider-with-overlap-handle-outline-width: 1px;--mdc-slider-with-tick-marks-active-container-opacity: .6;--mdc-slider-with-tick-marks-container-shape: 50%;--mdc-slider-with-tick-marks-container-size: 2px;--mdc-slider-with-tick-marks-inactive-container-opacity: .6;--mdc-slider-handle-elevation: 0px 2px 1px -1px rgba(0, 0, 0, .2), 0px 1px 1px 0px rgba(0, 0, 0, .14), 0px 1px 3px 0px rgba(0, 0, 0, .12)}html{--mat-slider-value-indicator-width: auto;--mat-slider-value-indicator-height: 32px;--mat-slider-value-indicator-caret-display: block;--mat-slider-value-indicator-border-radius: 4px;--mat-slider-value-indicator-padding: 0 12px;--mat-slider-value-indicator-text-transform: none;--mat-slider-value-indicator-container-transform: translateX(-50%)}html{--mdc-slider-handle-color: #3f51b5;--mdc-slider-focus-handle-color: #3f51b5;--mdc-slider-hover-handle-color: #3f51b5;--mdc-slider-active-track-color: #3f51b5;--mdc-slider-inactive-track-color: #3f51b5;--mdc-slider-with-tick-marks-inactive-container-color: #3f51b5;--mdc-slider-with-tick-marks-active-container-color: white;--mdc-slider-disabled-active-track-color: #000;--mdc-slider-disabled-handle-color: #000;--mdc-slider-disabled-inactive-track-color: #000;--mdc-slider-label-container-color: #000;--mdc-slider-label-label-text-color: #fff;--mdc-slider-with-overlap-handle-outline-color: #fff;--mdc-slider-with-tick-marks-disabled-container-color: #000}html{--mat-slider-ripple-color: #3f51b5;--mat-slider-hover-state-layer-color: rgba(63, 81, 181, .05);--mat-slider-focus-state-layer-color: rgba(63, 81, 181, .2);--mat-slider-value-indicator-opacity: .6}html .mat-accent{--mdc-slider-handle-color: #ff4081;--mdc-slider-focus-handle-color: #ff4081;--mdc-slider-hover-handle-color: #ff4081;--mdc-slider-active-track-color: #ff4081;--mdc-slider-inactive-track-color: #ff4081;--mdc-slider-with-tick-marks-inactive-container-color: #ff4081;--mdc-slider-with-tick-marks-active-container-color: white}html .mat-accent{--mat-slider-ripple-color: #ff4081;--mat-slider-hover-state-layer-color: rgba(255, 64, 129, .05);--mat-slider-focus-state-layer-color: rgba(255, 64, 129, .2)}html .mat-warn{--mdc-slider-handle-color: #f44336;--mdc-slider-focus-handle-color: #f44336;--mdc-slider-hover-handle-color: #f44336;--mdc-slider-active-track-color: #f44336;--mdc-slider-inactive-track-color: #f44336;--mdc-slider-with-tick-marks-inactive-container-color: #f44336;--mdc-slider-with-tick-marks-active-container-color: white}html .mat-warn{--mat-slider-ripple-color: #f44336;--mat-slider-hover-state-layer-color: rgba(244, 67, 54, .05);--mat-slider-focus-state-layer-color: rgba(244, 67, 54, .2)}html{--mat-menu-container-shape: 4px;--mat-menu-divider-bottom-spacing: 0;--mat-menu-divider-top-spacing: 0;--mat-menu-item-spacing: 16px;--mat-menu-item-icon-size: 24px;--mat-menu-item-leading-spacing: 16px;--mat-menu-item-trailing-spacing: 16px;--mat-menu-item-with-icon-leading-spacing: 16px;--mat-menu-item-with-icon-trailing-spacing: 16px;--mat-menu-container-elevation-shadow: 0px 5px 5px -3px rgba(0, 0, 0, .2), 0px 8px 10px 1px rgba(0, 0, 0, .14), 0px 3px 14px 2px rgba(0, 0, 0, .12)}html{--mat-menu-item-label-text-color: rgba(0, 0, 0, .87);--mat-menu-item-icon-color: rgba(0, 0, 0, .87);--mat-menu-item-hover-state-layer-color: rgba(0, 0, 0, .04);--mat-menu-item-focus-state-layer-color: rgba(0, 0, 0, .04);--mat-menu-container-color: white;--mat-menu-divider-color: rgba(0, 0, 0, .12)}html{--mdc-list-list-item-container-shape: 0;--mdc-list-list-item-leading-avatar-shape: 50%;--mdc-list-list-item-container-color: transparent;--mdc-list-list-item-selected-container-color: transparent;--mdc-list-list-item-leading-avatar-color: transparent;--mdc-list-list-item-leading-icon-size: 24px;--mdc-list-list-item-leading-avatar-size: 40px;--mdc-list-list-item-trailing-icon-size: 24px;--mdc-list-list-item-disabled-state-layer-color: transparent;--mdc-list-list-item-disabled-state-layer-opacity: 0;--mdc-list-list-item-disabled-label-text-opacity: .38;--mdc-list-list-item-disabled-leading-icon-opacity: .38;--mdc-list-list-item-disabled-trailing-icon-opacity: .38}html{--mat-list-active-indicator-color: transparent;--mat-list-active-indicator-shape: 4px}html{--mdc-list-list-item-label-text-color: rgba(0, 0, 0, .87);--mdc-list-list-item-supporting-text-color: rgba(0, 0, 0, .54);--mdc-list-list-item-leading-icon-color: rgba(0, 0, 0, .38);--mdc-list-list-item-trailing-supporting-text-color: rgba(0, 0, 0, .38);--mdc-list-list-item-trailing-icon-color: rgba(0, 0, 0, .38);--mdc-list-list-item-selected-trailing-icon-color: rgba(0, 0, 0, .38);--mdc-list-list-item-disabled-label-text-color: black;--mdc-list-list-item-disabled-leading-icon-color: black;--mdc-list-list-item-disabled-trailing-icon-color: black;--mdc-list-list-item-hover-label-text-color: rgba(0, 0, 0, .87);--mdc-list-list-item-hover-leading-icon-color: rgba(0, 0, 0, .38);--mdc-list-list-item-hover-trailing-icon-color: rgba(0, 0, 0, .38);--mdc-list-list-item-focus-label-text-color: rgba(0, 0, 0, .87);--mdc-list-list-item-hover-state-layer-color: black;--mdc-list-list-item-hover-state-layer-opacity: .04;--mdc-list-list-item-focus-state-layer-color: black;--mdc-list-list-item-focus-state-layer-opacity: .12}.mdc-list-item__start,.mdc-list-item__end{--mdc-radio-disabled-selected-icon-color: black;--mdc-radio-disabled-unselected-icon-color: black;--mdc-radio-unselected-hover-icon-color: #212121;--mdc-radio-unselected-focus-icon-color: #212121;--mdc-radio-unselected-icon-color: rgba(0, 0, 0, .54);--mdc-radio-unselected-pressed-icon-color: rgba(0, 0, 0, .54);--mdc-radio-selected-focus-icon-color: #3f51b5;--mdc-radio-selected-hover-icon-color: #3f51b5;--mdc-radio-selected-icon-color: #3f51b5;--mdc-radio-selected-pressed-icon-color: #3f51b5}.mat-accent .mdc-list-item__start,.mat-accent .mdc-list-item__end{--mdc-radio-disabled-selected-icon-color: black;--mdc-radio-disabled-unselected-icon-color: black;--mdc-radio-unselected-hover-icon-color: #212121;--mdc-radio-unselected-focus-icon-color: #212121;--mdc-radio-unselected-icon-color: rgba(0, 0, 0, .54);--mdc-radio-unselected-pressed-icon-color: rgba(0, 0, 0, .54);--mdc-radio-selected-focus-icon-color: #ff4081;--mdc-radio-selected-hover-icon-color: #ff4081;--mdc-radio-selected-icon-color: #ff4081;--mdc-radio-selected-pressed-icon-color: #ff4081}.mat-warn .mdc-list-item__start,.mat-warn .mdc-list-item__end{--mdc-radio-disabled-selected-icon-color: black;--mdc-radio-disabled-unselected-icon-color: black;--mdc-radio-unselected-hover-icon-color: #212121;--mdc-radio-unselected-focus-icon-color: #212121;--mdc-radio-unselected-icon-color: rgba(0, 0, 0, .54);--mdc-radio-unselected-pressed-icon-color: rgba(0, 0, 0, .54);--mdc-radio-selected-focus-icon-color: #f44336;--mdc-radio-selected-hover-icon-color: #f44336;--mdc-radio-selected-icon-color: #f44336;--mdc-radio-selected-pressed-icon-color: #f44336}.mat-mdc-list-option{--mdc-checkbox-disabled-selected-icon-color: rgba(0, 0, 0, .38);--mdc-checkbox-disabled-unselected-icon-color: rgba(0, 0, 0, .38);--mdc-checkbox-selected-checkmark-color: white;--mdc-checkbox-selected-focus-icon-color: #3f51b5;--mdc-checkbox-selected-hover-icon-color: #3f51b5;--mdc-checkbox-selected-icon-color: #3f51b5;--mdc-checkbox-selected-pressed-icon-color: #3f51b5;--mdc-checkbox-unselected-focus-icon-color: #212121;--mdc-checkbox-unselected-hover-icon-color: #212121;--mdc-checkbox-unselected-icon-color: rgba(0, 0, 0, .54);--mdc-checkbox-selected-focus-state-layer-color: #3f51b5;--mdc-checkbox-selected-hover-state-layer-color: #3f51b5;--mdc-checkbox-selected-pressed-state-layer-color: #3f51b5;--mdc-checkbox-unselected-focus-state-layer-color: black;--mdc-checkbox-unselected-hover-state-layer-color: black;--mdc-checkbox-unselected-pressed-state-layer-color: black}.mat-mdc-list-option.mat-accent{--mdc-checkbox-disabled-selected-icon-color: rgba(0, 0, 0, .38);--mdc-checkbox-disabled-unselected-icon-color: rgba(0, 0, 0, .38);--mdc-checkbox-selected-checkmark-color: white;--mdc-checkbox-selected-focus-icon-color: #ff4081;--mdc-checkbox-selected-hover-icon-color: #ff4081;--mdc-checkbox-selected-icon-color: #ff4081;--mdc-checkbox-selected-pressed-icon-color: #ff4081;--mdc-checkbox-unselected-focus-icon-color: #212121;--mdc-checkbox-unselected-hover-icon-color: #212121;--mdc-checkbox-unselected-icon-color: rgba(0, 0, 0, .54);--mdc-checkbox-selected-focus-state-layer-color: #ff4081;--mdc-checkbox-selected-hover-state-layer-color: #ff4081;--mdc-checkbox-selected-pressed-state-layer-color: #ff4081;--mdc-checkbox-unselected-focus-state-layer-color: black;--mdc-checkbox-unselected-hover-state-layer-color: black;--mdc-checkbox-unselected-pressed-state-layer-color: black}.mat-mdc-list-option.mat-warn{--mdc-checkbox-disabled-selected-icon-color: rgba(0, 0, 0, .38);--mdc-checkbox-disabled-unselected-icon-color: rgba(0, 0, 0, .38);--mdc-checkbox-selected-checkmark-color: white;--mdc-checkbox-selected-focus-icon-color: #f44336;--mdc-checkbox-selected-hover-icon-color: #f44336;--mdc-checkbox-selected-icon-color: #f44336;--mdc-checkbox-selected-pressed-icon-color: #f44336;--mdc-checkbox-unselected-focus-icon-color: #212121;--mdc-checkbox-unselected-hover-icon-color: #212121;--mdc-checkbox-unselected-icon-color: rgba(0, 0, 0, .54);--mdc-checkbox-selected-focus-state-layer-color: #f44336;--mdc-checkbox-selected-hover-state-layer-color: #f44336;--mdc-checkbox-selected-pressed-state-layer-color: #f44336;--mdc-checkbox-unselected-focus-state-layer-color: black;--mdc-checkbox-unselected-hover-state-layer-color: black;--mdc-checkbox-unselected-pressed-state-layer-color: black}.mat-mdc-list-base.mat-mdc-list-base .mdc-list-item--selected .mdc-list-item__primary-text,.mat-mdc-list-base.mat-mdc-list-base .mdc-list-item--selected .mdc-list-item__start,.mat-mdc-list-base.mat-mdc-list-base .mdc-list-item--activated .mdc-list-item__primary-text,.mat-mdc-list-base.mat-mdc-list-base .mdc-list-item--activated .mdc-list-item__start{color:#3f51b5}.mat-mdc-list-base .mdc-list-item--disabled .mdc-list-item__start,.mat-mdc-list-base .mdc-list-item--disabled .mdc-list-item__content,.mat-mdc-list-base .mdc-list-item--disabled .mdc-list-item__end{opacity:1}html{--mdc-list-list-item-one-line-container-height: 48px;--mdc-list-list-item-two-line-container-height: 64px;--mdc-list-list-item-three-line-container-height: 88px}html{--mat-list-list-item-leading-icon-start-space: 16px;--mat-list-list-item-leading-icon-end-space: 32px}.mdc-list-item__start,.mdc-list-item__end{--mdc-radio-state-layer-size: 40px}.mat-mdc-list-item.mdc-list-item--with-leading-avatar.mdc-list-item--with-one-line,.mat-mdc-list-item.mdc-list-item--with-leading-checkbox.mdc-list-item--with-one-line,.mat-mdc-list-item.mdc-list-item--with-leading-icon.mdc-list-item--with-one-line{height:56px}.mat-mdc-list-item.mdc-list-item--with-leading-avatar.mdc-list-item--with-two-lines,.mat-mdc-list-item.mdc-list-item--with-leading-checkbox.mdc-list-item--with-two-lines,.mat-mdc-list-item.mdc-list-item--with-leading-icon.mdc-list-item--with-two-lines{height:72px}html{--mat-paginator-container-text-color: rgba(0, 0, 0, .87);--mat-paginator-container-background-color: white;--mat-paginator-enabled-icon-color: rgba(0, 0, 0, .54);--mat-paginator-disabled-icon-color: rgba(0, 0, 0, .12)}html{--mat-paginator-container-size: 56px;--mat-paginator-form-field-container-height: 40px;--mat-paginator-form-field-container-vertical-padding: 8px;--mat-paginator-touch-target-display: block}html{--mdc-secondary-navigation-tab-container-height: 48px}html{--mdc-tab-indicator-active-indicator-height: 2px;--mdc-tab-indicator-active-indicator-shape: 0}html{--mat-tab-header-divider-color: transparent;--mat-tab-header-divider-height: 0}.mat-mdc-tab-group,.mat-mdc-tab-nav-bar{--mdc-tab-indicator-active-indicator-color: #3f51b5}.mat-mdc-tab-group,.mat-mdc-tab-nav-bar{--mat-tab-header-disabled-ripple-color: rgba(0, 0, 0, .38);--mat-tab-header-pagination-icon-color: black;--mat-tab-header-inactive-label-text-color: rgba(0, 0, 0, .6);--mat-tab-header-active-label-text-color: #3f51b5;--mat-tab-header-active-ripple-color: #3f51b5;--mat-tab-header-inactive-ripple-color: #3f51b5;--mat-tab-header-inactive-focus-label-text-color: rgba(0, 0, 0, .6);--mat-tab-header-inactive-hover-label-text-color: rgba(0, 0, 0, .6);--mat-tab-header-active-focus-label-text-color: #3f51b5;--mat-tab-header-active-hover-label-text-color: #3f51b5;--mat-tab-header-active-focus-indicator-color: #3f51b5;--mat-tab-header-active-hover-indicator-color: #3f51b5}.mat-mdc-tab-group.mat-accent,.mat-mdc-tab-nav-bar.mat-accent{--mdc-tab-indicator-active-indicator-color: #ff4081}.mat-mdc-tab-group.mat-accent,.mat-mdc-tab-nav-bar.mat-accent{--mat-tab-header-disabled-ripple-color: rgba(0, 0, 0, .38);--mat-tab-header-pagination-icon-color: black;--mat-tab-header-inactive-label-text-color: rgba(0, 0, 0, .6);--mat-tab-header-active-label-text-color: #ff4081;--mat-tab-header-active-ripple-color: #ff4081;--mat-tab-header-inactive-ripple-color: #ff4081;--mat-tab-header-inactive-focus-label-text-color: rgba(0, 0, 0, .6);--mat-tab-header-inactive-hover-label-text-color: rgba(0, 0, 0, .6);--mat-tab-header-active-focus-label-text-color: #ff4081;--mat-tab-header-active-hover-label-text-color: #ff4081;--mat-tab-header-active-focus-indicator-color: #ff4081;--mat-tab-header-active-hover-indicator-color: #ff4081}.mat-mdc-tab-group.mat-warn,.mat-mdc-tab-nav-bar.mat-warn{--mdc-tab-indicator-active-indicator-color: #f44336}.mat-mdc-tab-group.mat-warn,.mat-mdc-tab-nav-bar.mat-warn{--mat-tab-header-disabled-ripple-color: rgba(0, 0, 0, .38);--mat-tab-header-pagination-icon-color: black;--mat-tab-header-inactive-label-text-color: rgba(0, 0, 0, .6);--mat-tab-header-active-label-text-color: #f44336;--mat-tab-header-active-ripple-color: #f44336;--mat-tab-header-inactive-ripple-color: #f44336;--mat-tab-header-inactive-focus-label-text-color: rgba(0, 0, 0, .6);--mat-tab-header-inactive-hover-label-text-color: rgba(0, 0, 0, .6);--mat-tab-header-active-focus-label-text-color: #f44336;--mat-tab-header-active-hover-label-text-color: #f44336;--mat-tab-header-active-focus-indicator-color: #f44336;--mat-tab-header-active-hover-indicator-color: #f44336}.mat-mdc-tab-group.mat-background-primary,.mat-mdc-tab-nav-bar.mat-background-primary{--mat-tab-header-with-background-background-color: #3f51b5;--mat-tab-header-with-background-foreground-color: white}.mat-mdc-tab-group.mat-background-accent,.mat-mdc-tab-nav-bar.mat-background-accent{--mat-tab-header-with-background-background-color: #ff4081;--mat-tab-header-with-background-foreground-color: white}.mat-mdc-tab-group.mat-background-warn,.mat-mdc-tab-nav-bar.mat-background-warn{--mat-tab-header-with-background-background-color: #f44336;--mat-tab-header-with-background-foreground-color: white}.mat-mdc-tab-header{--mdc-secondary-navigation-tab-container-height: 48px}html{--mdc-checkbox-disabled-selected-checkmark-color: #fff;--mdc-checkbox-selected-focus-state-layer-opacity: .16;--mdc-checkbox-selected-hover-state-layer-opacity: .04;--mdc-checkbox-selected-pressed-state-layer-opacity: .16;--mdc-checkbox-unselected-focus-state-layer-opacity: .16;--mdc-checkbox-unselected-hover-state-layer-opacity: .04;--mdc-checkbox-unselected-pressed-state-layer-opacity: .16}html{--mdc-checkbox-disabled-selected-icon-color: rgba(0, 0, 0, .38);--mdc-checkbox-disabled-unselected-icon-color: rgba(0, 0, 0, .38);--mdc-checkbox-selected-checkmark-color: white;--mdc-checkbox-selected-focus-icon-color: #ff4081;--mdc-checkbox-selected-hover-icon-color: #ff4081;--mdc-checkbox-selected-icon-color: #ff4081;--mdc-checkbox-selected-pressed-icon-color: #ff4081;--mdc-checkbox-unselected-focus-icon-color: #212121;--mdc-checkbox-unselected-hover-icon-color: #212121;--mdc-checkbox-unselected-icon-color: rgba(0, 0, 0, .54);--mdc-checkbox-selected-focus-state-layer-color: #ff4081;--mdc-checkbox-selected-hover-state-layer-color: #ff4081;--mdc-checkbox-selected-pressed-state-layer-color: #ff4081;--mdc-checkbox-unselected-focus-state-layer-color: black;--mdc-checkbox-unselected-hover-state-layer-color: black;--mdc-checkbox-unselected-pressed-state-layer-color: black}html{--mat-checkbox-disabled-label-color: rgba(0, 0, 0, .38);--mat-checkbox-label-text-color: rgba(0, 0, 0, .87)}.mat-mdc-checkbox.mat-primary{--mdc-checkbox-disabled-selected-icon-color: rgba(0, 0, 0, .38);--mdc-checkbox-disabled-unselected-icon-color: rgba(0, 0, 0, .38);--mdc-checkbox-selected-checkmark-color: white;--mdc-checkbox-selected-focus-icon-color: #3f51b5;--mdc-checkbox-selected-hover-icon-color: #3f51b5;--mdc-checkbox-selected-icon-color: #3f51b5;--mdc-checkbox-selected-pressed-icon-color: #3f51b5;--mdc-checkbox-unselected-focus-icon-color: #212121;--mdc-checkbox-unselected-hover-icon-color: #212121;--mdc-checkbox-unselected-icon-color: rgba(0, 0, 0, .54);--mdc-checkbox-selected-focus-state-layer-color: #3f51b5;--mdc-checkbox-selected-hover-state-layer-color: #3f51b5;--mdc-checkbox-selected-pressed-state-layer-color: #3f51b5;--mdc-checkbox-unselected-focus-state-layer-color: black;--mdc-checkbox-unselected-hover-state-layer-color: black;--mdc-checkbox-unselected-pressed-state-layer-color: black}.mat-mdc-checkbox.mat-warn{--mdc-checkbox-disabled-selected-icon-color: rgba(0, 0, 0, .38);--mdc-checkbox-disabled-unselected-icon-color: rgba(0, 0, 0, .38);--mdc-checkbox-selected-checkmark-color: white;--mdc-checkbox-selected-focus-icon-color: #f44336;--mdc-checkbox-selected-hover-icon-color: #f44336;--mdc-checkbox-selected-icon-color: #f44336;--mdc-checkbox-selected-pressed-icon-color: #f44336;--mdc-checkbox-unselected-focus-icon-color: #212121;--mdc-checkbox-unselected-hover-icon-color: #212121;--mdc-checkbox-unselected-icon-color: rgba(0, 0, 0, .54);--mdc-checkbox-selected-focus-state-layer-color: #f44336;--mdc-checkbox-selected-hover-state-layer-color: #f44336;--mdc-checkbox-selected-pressed-state-layer-color: #f44336;--mdc-checkbox-unselected-focus-state-layer-color: black;--mdc-checkbox-unselected-hover-state-layer-color: black;--mdc-checkbox-unselected-pressed-state-layer-color: black}html{--mdc-checkbox-state-layer-size: 40px}html{--mat-checkbox-touch-target-display: block}html{--mdc-text-button-container-shape: 4px;--mdc-text-button-keep-touch-target: false}html{--mdc-filled-button-container-shape: 4px;--mdc-filled-button-keep-touch-target: false}html{--mdc-protected-button-container-shape: 4px;--mdc-protected-button-container-elevation-shadow: 0px 3px 1px -2px rgba(0, 0, 0, .2), 0px 2px 2px 0px rgba(0, 0, 0, .14), 0px 1px 5px 0px rgba(0, 0, 0, .12);--mdc-protected-button-disabled-container-elevation-shadow: 0px 0px 0px 0px rgba(0, 0, 0, .2), 0px 0px 0px 0px rgba(0, 0, 0, .14), 0px 0px 0px 0px rgba(0, 0, 0, .12);--mdc-protected-button-focus-container-elevation-shadow: 0px 2px 4px -1px rgba(0, 0, 0, .2), 0px 4px 5px 0px rgba(0, 0, 0, .14), 0px 1px 10px 0px rgba(0, 0, 0, .12);--mdc-protected-button-hover-container-elevation-shadow: 0px 2px 4px -1px rgba(0, 0, 0, .2), 0px 4px 5px 0px rgba(0, 0, 0, .14), 0px 1px 10px 0px rgba(0, 0, 0, .12);--mdc-protected-button-pressed-container-elevation-shadow: 0px 5px 5px -3px rgba(0, 0, 0, .2), 0px 8px 10px 1px rgba(0, 0, 0, .14), 0px 3px 14px 2px rgba(0, 0, 0, .12)}html{--mdc-outlined-button-keep-touch-target: false;--mdc-outlined-button-outline-width: 1px;--mdc-outlined-button-container-shape: 4px}html{--mat-text-button-horizontal-padding: 8px;--mat-text-button-with-icon-horizontal-padding: 8px;--mat-text-button-icon-spacing: 8px;--mat-text-button-icon-offset: 0}html{--mat-filled-button-horizontal-padding: 16px;--mat-filled-button-icon-spacing: 8px;--mat-filled-button-icon-offset: -4px}html{--mat-protected-button-horizontal-padding: 16px;--mat-protected-button-icon-spacing: 8px;--mat-protected-button-icon-offset: -4px}html{--mat-outlined-button-horizontal-padding: 15px;--mat-outlined-button-icon-spacing: 8px;--mat-outlined-button-icon-offset: -4px}html{--mdc-text-button-label-text-color: black;--mdc-text-button-disabled-label-text-color: rgba(0, 0, 0, .38)}html{--mat-text-button-state-layer-color: black;--mat-text-button-disabled-state-layer-color: black;--mat-text-button-ripple-color: rgba(0, 0, 0, .1);--mat-text-button-hover-state-layer-opacity: .04;--mat-text-button-focus-state-layer-opacity: .12;--mat-text-button-pressed-state-layer-opacity: .12}html{--mdc-filled-button-container-color: white;--mdc-filled-button-label-text-color: black;--mdc-filled-button-disabled-container-color: rgba(0, 0, 0, .12);--mdc-filled-button-disabled-label-text-color: rgba(0, 0, 0, .38)}html{--mat-filled-button-state-layer-color: black;--mat-filled-button-disabled-state-layer-color: black;--mat-filled-button-ripple-color: rgba(0, 0, 0, .1);--mat-filled-button-hover-state-layer-opacity: .04;--mat-filled-button-focus-state-layer-opacity: .12;--mat-filled-button-pressed-state-layer-opacity: .12}html{--mdc-protected-button-container-color: white;--mdc-protected-button-label-text-color: black;--mdc-protected-button-disabled-container-color: rgba(0, 0, 0, .12);--mdc-protected-button-disabled-label-text-color: rgba(0, 0, 0, .38)}html{--mat-protected-button-state-layer-color: black;--mat-protected-button-disabled-state-layer-color: black;--mat-protected-button-ripple-color: rgba(0, 0, 0, .1);--mat-protected-button-hover-state-layer-opacity: .04;--mat-protected-button-focus-state-layer-opacity: .12;--mat-protected-button-pressed-state-layer-opacity: .12}html{--mdc-outlined-button-disabled-outline-color: rgba(0, 0, 0, .12);--mdc-outlined-button-disabled-label-text-color: rgba(0, 0, 0, .38);--mdc-outlined-button-label-text-color: black;--mdc-outlined-button-outline-color: rgba(0, 0, 0, .12)}html{--mat-outlined-button-state-layer-color: black;--mat-outlined-button-disabled-state-layer-color: black;--mat-outlined-button-ripple-color: rgba(0, 0, 0, .1);--mat-outlined-button-hover-state-layer-opacity: .04;--mat-outlined-button-focus-state-layer-opacity: .12;--mat-outlined-button-pressed-state-layer-opacity: .12}.mat-mdc-button.mat-primary{--mdc-text-button-label-text-color: #3f51b5}.mat-mdc-button.mat-primary{--mat-text-button-state-layer-color: #3f51b5;--mat-text-button-ripple-color: rgba(63, 81, 181, .1)}.mat-mdc-button.mat-accent{--mdc-text-button-label-text-color: #ff4081}.mat-mdc-button.mat-accent{--mat-text-button-state-layer-color: #ff4081;--mat-text-button-ripple-color: rgba(255, 64, 129, .1)}.mat-mdc-button.mat-warn{--mdc-text-button-label-text-color: #f44336}.mat-mdc-button.mat-warn{--mat-text-button-state-layer-color: #f44336;--mat-text-button-ripple-color: rgba(244, 67, 54, .1)}.mat-mdc-unelevated-button.mat-primary{--mdc-filled-button-container-color: #3f51b5;--mdc-filled-button-label-text-color: white}.mat-mdc-unelevated-button.mat-primary{--mat-filled-button-state-layer-color: white;--mat-filled-button-ripple-color: rgba(255, 255, 255, .1)}.mat-mdc-unelevated-button.mat-accent{--mdc-filled-button-container-color: #ff4081;--mdc-filled-button-label-text-color: white}.mat-mdc-unelevated-button.mat-accent{--mat-filled-button-state-layer-color: white;--mat-filled-button-ripple-color: rgba(255, 255, 255, .1)}.mat-mdc-unelevated-button.mat-warn{--mdc-filled-button-container-color: #f44336;--mdc-filled-button-label-text-color: white}.mat-mdc-unelevated-button.mat-warn{--mat-filled-button-state-layer-color: white;--mat-filled-button-ripple-color: rgba(255, 255, 255, .1)}.mat-mdc-raised-button.mat-primary{--mdc-protected-button-container-color: #3f51b5;--mdc-protected-button-label-text-color: white}.mat-mdc-raised-button.mat-primary{--mat-protected-button-state-layer-color: white;--mat-protected-button-ripple-color: rgba(255, 255, 255, .1)}.mat-mdc-raised-button.mat-accent{--mdc-protected-button-container-color: #ff4081;--mdc-protected-button-label-text-color: white}.mat-mdc-raised-button.mat-accent{--mat-protected-button-state-layer-color: white;--mat-protected-button-ripple-color: rgba(255, 255, 255, .1)}.mat-mdc-raised-button.mat-warn{--mdc-protected-button-container-color: #f44336;--mdc-protected-button-label-text-color: white}.mat-mdc-raised-button.mat-warn{--mat-protected-button-state-layer-color: white;--mat-protected-button-ripple-color: rgba(255, 255, 255, .1)}.mat-mdc-outlined-button.mat-primary{--mdc-outlined-button-label-text-color: #3f51b5;--mdc-outlined-button-outline-color: rgba(0, 0, 0, .12)}.mat-mdc-outlined-button.mat-primary{--mat-outlined-button-state-layer-color: #3f51b5;--mat-outlined-button-ripple-color: rgba(63, 81, 181, .1)}.mat-mdc-outlined-button.mat-accent{--mdc-outlined-button-label-text-color: #ff4081;--mdc-outlined-button-outline-color: rgba(0, 0, 0, .12)}.mat-mdc-outlined-button.mat-accent{--mat-outlined-button-state-layer-color: #ff4081;--mat-outlined-button-ripple-color: rgba(255, 64, 129, .1)}.mat-mdc-outlined-button.mat-warn{--mdc-outlined-button-label-text-color: #f44336;--mdc-outlined-button-outline-color: rgba(0, 0, 0, .12)}.mat-mdc-outlined-button.mat-warn{--mat-outlined-button-state-layer-color: #f44336;--mat-outlined-button-ripple-color: rgba(244, 67, 54, .1)}html{--mdc-text-button-container-height: 36px}html{--mdc-filled-button-container-height: 36px}html{--mdc-protected-button-container-height: 36px}html{--mdc-outlined-button-container-height: 36px}html{--mat-text-button-touch-target-display: block}html{--mat-filled-button-touch-target-display: block}html{--mat-protected-button-touch-target-display: block}html{--mat-outlined-button-touch-target-display: block}html{--mdc-icon-button-icon-size: 24px}html{--mdc-icon-button-icon-color: inherit;--mdc-icon-button-disabled-icon-color: rgba(0, 0, 0, .38)}html{--mat-icon-button-state-layer-color: black;--mat-icon-button-disabled-state-layer-color: black;--mat-icon-button-ripple-color: rgba(0, 0, 0, .1);--mat-icon-button-hover-state-layer-opacity: .04;--mat-icon-button-focus-state-layer-opacity: .12;--mat-icon-button-pressed-state-layer-opacity: .12}html .mat-mdc-icon-button.mat-primary{--mdc-icon-button-icon-color: #3f51b5}html .mat-mdc-icon-button.mat-primary{--mat-icon-button-state-layer-color: #3f51b5;--mat-icon-button-ripple-color: rgba(63, 81, 181, .1)}html .mat-mdc-icon-button.mat-accent{--mdc-icon-button-icon-color: #ff4081}html .mat-mdc-icon-button.mat-accent{--mat-icon-button-state-layer-color: #ff4081;--mat-icon-button-ripple-color: rgba(255, 64, 129, .1)}html .mat-mdc-icon-button.mat-warn{--mdc-icon-button-icon-color: #f44336}html .mat-mdc-icon-button.mat-warn{--mat-icon-button-state-layer-color: #f44336;--mat-icon-button-ripple-color: rgba(244, 67, 54, .1)}html{--mat-icon-button-touch-target-display: block}.mat-mdc-icon-button.mat-mdc-button-base{--mdc-icon-button-state-layer-size: 48px;width:var(--mdc-icon-button-state-layer-size);height:var(--mdc-icon-button-state-layer-size);padding:12px}html{--mdc-fab-container-shape: 50%;--mdc-fab-container-elevation-shadow: 0px 3px 5px -1px rgba(0, 0, 0, .2), 0px 6px 10px 0px rgba(0, 0, 0, .14), 0px 1px 18px 0px rgba(0, 0, 0, .12);--mdc-fab-focus-container-elevation-shadow: 0px 5px 5px -3px rgba(0, 0, 0, .2), 0px 8px 10px 1px rgba(0, 0, 0, .14), 0px 3px 14px 2px rgba(0, 0, 0, .12);--mdc-fab-hover-container-elevation-shadow: 0px 5px 5px -3px rgba(0, 0, 0, .2), 0px 8px 10px 1px rgba(0, 0, 0, .14), 0px 3px 14px 2px rgba(0, 0, 0, .12);--mdc-fab-pressed-container-elevation-shadow: 0px 7px 8px -4px rgba(0, 0, 0, .2), 0px 12px 17px 2px rgba(0, 0, 0, .14), 0px 5px 22px 4px rgba(0, 0, 0, .12)}html{--mdc-fab-small-container-shape: 50%;--mdc-fab-small-container-elevation-shadow: 0px 3px 5px -1px rgba(0, 0, 0, .2), 0px 6px 10px 0px rgba(0, 0, 0, .14), 0px 1px 18px 0px rgba(0, 0, 0, .12);--mdc-fab-small-focus-container-elevation-shadow: 0px 5px 5px -3px rgba(0, 0, 0, .2), 0px 8px 10px 1px rgba(0, 0, 0, .14), 0px 3px 14px 2px rgba(0, 0, 0, .12);--mdc-fab-small-hover-container-elevation-shadow: 0px 5px 5px -3px rgba(0, 0, 0, .2), 0px 8px 10px 1px rgba(0, 0, 0, .14), 0px 3px 14px 2px rgba(0, 0, 0, .12);--mdc-fab-small-pressed-container-elevation-shadow: 0px 7px 8px -4px rgba(0, 0, 0, .2), 0px 12px 17px 2px rgba(0, 0, 0, .14), 0px 5px 22px 4px rgba(0, 0, 0, .12)}html{--mdc-extended-fab-container-height: 48px;--mdc-extended-fab-container-shape: 24px;--mdc-extended-fab-container-elevation-shadow: 0px 3px 5px -1px rgba(0, 0, 0, .2), 0px 6px 10px 0px rgba(0, 0, 0, .14), 0px 1px 18px 0px rgba(0, 0, 0, .12);--mdc-extended-fab-focus-container-elevation-shadow: 0px 5px 5px -3px rgba(0, 0, 0, .2), 0px 8px 10px 1px rgba(0, 0, 0, .14), 0px 3px 14px 2px rgba(0, 0, 0, .12);--mdc-extended-fab-hover-container-elevation-shadow: 0px 5px 5px -3px rgba(0, 0, 0, .2), 0px 8px 10px 1px rgba(0, 0, 0, .14), 0px 3px 14px 2px rgba(0, 0, 0, .12);--mdc-extended-fab-pressed-container-elevation-shadow: 0px 7px 8px -4px rgba(0, 0, 0, .2), 0px 12px 17px 2px rgba(0, 0, 0, .14), 0px 5px 22px 4px rgba(0, 0, 0, .12)}html{--mdc-fab-container-color: white}html{--mat-fab-foreground-color: black;--mat-fab-state-layer-color: black;--mat-fab-disabled-state-layer-color: black;--mat-fab-ripple-color: rgba(0, 0, 0, .1);--mat-fab-hover-state-layer-opacity: .04;--mat-fab-focus-state-layer-opacity: .12;--mat-fab-pressed-state-layer-opacity: .12;--mat-fab-disabled-state-container-color: rgba(0, 0, 0, .12);--mat-fab-disabled-state-foreground-color: rgba(0, 0, 0, .38)}html{--mdc-fab-small-container-color: white}html{--mat-fab-small-foreground-color: black;--mat-fab-small-state-layer-color: black;--mat-fab-small-disabled-state-layer-color: black;--mat-fab-small-ripple-color: rgba(0, 0, 0, .1);--mat-fab-small-hover-state-layer-opacity: .04;--mat-fab-small-focus-state-layer-opacity: .12;--mat-fab-small-pressed-state-layer-opacity: .12;--mat-fab-small-disabled-state-container-color: rgba(0, 0, 0, .12);--mat-fab-small-disabled-state-foreground-color: rgba(0, 0, 0, .38)}html .mat-mdc-fab.mat-primary{--mdc-fab-container-color: #3f51b5}html .mat-mdc-fab.mat-primary{--mat-fab-foreground-color: white;--mat-fab-state-layer-color: white;--mat-fab-ripple-color: rgba(255, 255, 255, .1)}html .mat-mdc-fab.mat-accent{--mdc-fab-container-color: #ff4081}html .mat-mdc-fab.mat-accent{--mat-fab-foreground-color: white;--mat-fab-state-layer-color: white;--mat-fab-ripple-color: rgba(255, 255, 255, .1)}html .mat-mdc-fab.mat-warn{--mdc-fab-container-color: #f44336}html .mat-mdc-fab.mat-warn{--mat-fab-foreground-color: white;--mat-fab-state-layer-color: white;--mat-fab-ripple-color: rgba(255, 255, 255, .1)}html .mat-mdc-mini-fab.mat-primary{--mdc-fab-small-container-color: #3f51b5}html .mat-mdc-mini-fab.mat-primary{--mat-fab-small-foreground-color: white;--mat-fab-small-state-layer-color: white;--mat-fab-small-ripple-color: rgba(255, 255, 255, .1)}html .mat-mdc-mini-fab.mat-accent{--mdc-fab-small-container-color: #ff4081}html .mat-mdc-mini-fab.mat-accent{--mat-fab-small-foreground-color: white;--mat-fab-small-state-layer-color: white;--mat-fab-small-ripple-color: rgba(255, 255, 255, .1)}html .mat-mdc-mini-fab.mat-warn{--mdc-fab-small-container-color: #f44336}html .mat-mdc-mini-fab.mat-warn{--mat-fab-small-foreground-color: white;--mat-fab-small-state-layer-color: white;--mat-fab-small-ripple-color: rgba(255, 255, 255, .1)}html{--mat-fab-touch-target-display: block}html{--mat-fab-small-touch-target-display: block}html{--mdc-snackbar-container-shape: 4px}html{--mdc-snackbar-container-color: #333333;--mdc-snackbar-supporting-text-color: rgba(255, 255, 255, .87)}html{--mat-snack-bar-button-color: #ff4081}html{--mat-table-row-item-outline-width: 1px}html{--mat-table-background-color: white;--mat-table-header-headline-color: rgba(0, 0, 0, .87);--mat-table-row-item-label-text-color: rgba(0, 0, 0, .87);--mat-table-row-item-outline-color: rgba(0, 0, 0, .12)}html{--mat-table-header-container-height: 56px;--mat-table-footer-container-height: 52px;--mat-table-row-item-container-height: 52px}html{--mdc-circular-progress-active-indicator-width: 4px;--mdc-circular-progress-size: 48px}html{--mdc-circular-progress-active-indicator-color: #3f51b5}html .mat-accent{--mdc-circular-progress-active-indicator-color: #ff4081}html .mat-warn{--mdc-circular-progress-active-indicator-color: #f44336}html{--mat-badge-container-shape: 50%;--mat-badge-container-size: unset;--mat-badge-small-size-container-size: unset;--mat-badge-large-size-container-size: unset;--mat-badge-legacy-container-size: 22px;--mat-badge-legacy-small-size-container-size: 16px;--mat-badge-legacy-large-size-container-size: 28px;--mat-badge-container-offset: -11px 0;--mat-badge-small-size-container-offset: -8px 0;--mat-badge-large-size-container-offset: -14px 0;--mat-badge-container-overlap-offset: -11px;--mat-badge-small-size-container-overlap-offset: -8px;--mat-badge-large-size-container-overlap-offset: -14px;--mat-badge-container-padding: 0;--mat-badge-small-size-container-padding: 0;--mat-badge-large-size-container-padding: 0}html{--mat-badge-background-color: #3f51b5;--mat-badge-text-color: white;--mat-badge-disabled-state-background-color: #b9b9b9;--mat-badge-disabled-state-text-color: rgba(0, 0, 0, .38)}.mat-badge-accent{--mat-badge-background-color: #ff4081;--mat-badge-text-color: white}.mat-badge-warn{--mat-badge-background-color: #f44336;--mat-badge-text-color: white}html{--mat-bottom-sheet-container-shape: 4px}html{--mat-bottom-sheet-container-text-color: rgba(0, 0, 0, .87);--mat-bottom-sheet-container-background-color: white}html{--mat-legacy-button-toggle-height: 36px;--mat-legacy-button-toggle-shape: 2px;--mat-legacy-button-toggle-focus-state-layer-opacity: 1}html{--mat-standard-button-toggle-shape: 4px;--mat-standard-button-toggle-hover-state-layer-opacity: .04;--mat-standard-button-toggle-focus-state-layer-opacity: .12}html{--mat-legacy-button-toggle-text-color: rgba(0, 0, 0, .38);--mat-legacy-button-toggle-state-layer-color: rgba(0, 0, 0, .12);--mat-legacy-button-toggle-selected-state-text-color: rgba(0, 0, 0, .54);--mat-legacy-button-toggle-selected-state-background-color: #e0e0e0;--mat-legacy-button-toggle-disabled-state-text-color: rgba(0, 0, 0, .26);--mat-legacy-button-toggle-disabled-state-background-color: #eeeeee;--mat-legacy-button-toggle-disabled-selected-state-background-color: #bdbdbd}html{--mat-standard-button-toggle-text-color: rgba(0, 0, 0, .87);--mat-standard-button-toggle-background-color: white;--mat-standard-button-toggle-state-layer-color: black;--mat-standard-button-toggle-selected-state-background-color: #e0e0e0;--mat-standard-button-toggle-selected-state-text-color: rgba(0, 0, 0, .87);--mat-standard-button-toggle-disabled-state-text-color: rgba(0, 0, 0, .26);--mat-standard-button-toggle-disabled-state-background-color: white;--mat-standard-button-toggle-disabled-selected-state-text-color: rgba(0, 0, 0, .87);--mat-standard-button-toggle-disabled-selected-state-background-color: #bdbdbd;--mat-standard-button-toggle-divider-color: rgb(224.4, 224.4, 224.4)}html{--mat-standard-button-toggle-height: 48px}html{--mat-datepicker-calendar-container-shape: 4px;--mat-datepicker-calendar-container-touch-shape: 4px;--mat-datepicker-calendar-container-elevation-shadow: 0px 2px 4px -1px rgba(0, 0, 0, .2), 0px 4px 5px 0px rgba(0, 0, 0, .14), 0px 1px 10px 0px rgba(0, 0, 0, .12);--mat-datepicker-calendar-container-touch-elevation-shadow: 0px 11px 15px -7px rgba(0, 0, 0, .2), 0px 24px 38px 3px rgba(0, 0, 0, .14), 0px 9px 46px 8px rgba(0, 0, 0, .12)}html{--mat-datepicker-calendar-date-selected-state-text-color: white;--mat-datepicker-calendar-date-selected-state-background-color: #3f51b5;--mat-datepicker-calendar-date-selected-disabled-state-background-color: rgba(63, 81, 181, .4);--mat-datepicker-calendar-date-today-selected-state-outline-color: white;--mat-datepicker-calendar-date-focus-state-background-color: rgba(63, 81, 181, .3);--mat-datepicker-calendar-date-hover-state-background-color: rgba(63, 81, 181, .3);--mat-datepicker-toggle-active-state-icon-color: #3f51b5;--mat-datepicker-calendar-date-in-range-state-background-color: rgba(63, 81, 181, .2);--mat-datepicker-calendar-date-in-comparison-range-state-background-color: rgba(249, 171, 0, .2);--mat-datepicker-calendar-date-in-overlap-range-state-background-color: #a8dab5;--mat-datepicker-calendar-date-in-overlap-range-selected-state-background-color: rgb(69.5241935484, 163.4758064516, 93.9516129032);--mat-datepicker-toggle-icon-color: rgba(0, 0, 0, .54);--mat-datepicker-calendar-body-label-text-color: rgba(0, 0, 0, .54);--mat-datepicker-calendar-period-button-text-color: black;--mat-datepicker-calendar-period-button-icon-color: rgba(0, 0, 0, .54);--mat-datepicker-calendar-navigation-button-icon-color: rgba(0, 0, 0, .54);--mat-datepicker-calendar-header-divider-color: rgba(0, 0, 0, .12);--mat-datepicker-calendar-header-text-color: rgba(0, 0, 0, .54);--mat-datepicker-calendar-date-today-outline-color: rgba(0, 0, 0, .38);--mat-datepicker-calendar-date-today-disabled-state-outline-color: rgba(0, 0, 0, .18);--mat-datepicker-calendar-date-text-color: rgba(0, 0, 0, .87);--mat-datepicker-calendar-date-outline-color: transparent;--mat-datepicker-calendar-date-disabled-state-text-color: rgba(0, 0, 0, .38);--mat-datepicker-calendar-date-preview-state-outline-color: rgba(0, 0, 0, .24);--mat-datepicker-range-input-separator-color: rgba(0, 0, 0, .87);--mat-datepicker-range-input-disabled-state-separator-color: rgba(0, 0, 0, .38);--mat-datepicker-range-input-disabled-state-text-color: rgba(0, 0, 0, .38);--mat-datepicker-calendar-container-background-color: white;--mat-datepicker-calendar-container-text-color: rgba(0, 0, 0, .87)}.mat-datepicker-content.mat-accent{--mat-datepicker-calendar-date-selected-state-text-color: white;--mat-datepicker-calendar-date-selected-state-background-color: #ff4081;--mat-datepicker-calendar-date-selected-disabled-state-background-color: rgba(255, 64, 129, .4);--mat-datepicker-calendar-date-today-selected-state-outline-color: white;--mat-datepicker-calendar-date-focus-state-background-color: rgba(255, 64, 129, .3);--mat-datepicker-calendar-date-hover-state-background-color: rgba(255, 64, 129, .3);--mat-datepicker-calendar-date-in-range-state-background-color: rgba(255, 64, 129, .2);--mat-datepicker-calendar-date-in-comparison-range-state-background-color: rgba(249, 171, 0, .2);--mat-datepicker-calendar-date-in-overlap-range-state-background-color: #a8dab5;--mat-datepicker-calendar-date-in-overlap-range-selected-state-background-color: rgb(69.5241935484, 163.4758064516, 93.9516129032)}.mat-datepicker-content.mat-warn{--mat-datepicker-calendar-date-selected-state-text-color: white;--mat-datepicker-calendar-date-selected-state-background-color: #f44336;--mat-datepicker-calendar-date-selected-disabled-state-background-color: rgba(244, 67, 54, .4);--mat-datepicker-calendar-date-today-selected-state-outline-color: white;--mat-datepicker-calendar-date-focus-state-background-color: rgba(244, 67, 54, .3);--mat-datepicker-calendar-date-hover-state-background-color: rgba(244, 67, 54, .3);--mat-datepicker-calendar-date-in-range-state-background-color: rgba(244, 67, 54, .2);--mat-datepicker-calendar-date-in-comparison-range-state-background-color: rgba(249, 171, 0, .2);--mat-datepicker-calendar-date-in-overlap-range-state-background-color: #a8dab5;--mat-datepicker-calendar-date-in-overlap-range-selected-state-background-color: rgb(69.5241935484, 163.4758064516, 93.9516129032)}.mat-datepicker-toggle-active.mat-accent{--mat-datepicker-toggle-active-state-icon-color: #ff4081}.mat-datepicker-toggle-active.mat-warn{--mat-datepicker-toggle-active-state-icon-color: #f44336}.mat-calendar-controls{--mat-icon-button-touch-target-display: none}.mat-calendar-controls .mat-mdc-icon-button.mat-mdc-button-base{--mdc-icon-button-state-layer-size: 40px;width:var(--mdc-icon-button-state-layer-size);height:var(--mdc-icon-button-state-layer-size);padding:8px}html{--mat-divider-width: 1px}html{--mat-divider-color: rgba(0, 0, 0, .12)}html{--mat-expansion-container-shape: 4px;--mat-expansion-legacy-header-indicator-display: inline-block;--mat-expansion-header-indicator-display: none}html{--mat-expansion-container-background-color: white;--mat-expansion-container-text-color: rgba(0, 0, 0, .87);--mat-expansion-actions-divider-color: rgba(0, 0, 0, .12);--mat-expansion-header-hover-state-layer-color: rgba(0, 0, 0, .04);--mat-expansion-header-focus-state-layer-color: rgba(0, 0, 0, .04);--mat-expansion-header-disabled-state-text-color: rgba(0, 0, 0, .26);--mat-expansion-header-text-color: rgba(0, 0, 0, .87);--mat-expansion-header-description-color: rgba(0, 0, 0, .54);--mat-expansion-header-indicator-color: rgba(0, 0, 0, .54)}html{--mat-expansion-header-collapsed-state-height: 48px;--mat-expansion-header-expanded-state-height: 64px}html{--mat-icon-color: inherit}.mat-icon.mat-primary{--mat-icon-color: #3f51b5}.mat-icon.mat-accent{--mat-icon-color: #ff4081}.mat-icon.mat-warn{--mat-icon-color: #f44336}html{--mat-sidenav-container-shape: 0;--mat-sidenav-container-elevation-shadow: 0px 8px 10px -5px rgba(0, 0, 0, .2), 0px 16px 24px 2px rgba(0, 0, 0, .14), 0px 6px 30px 5px rgba(0, 0, 0, .12);--mat-sidenav-container-width: auto}html{--mat-sidenav-container-divider-color: rgba(0, 0, 0, .12);--mat-sidenav-container-background-color: white;--mat-sidenav-container-text-color: rgba(0, 0, 0, .87);--mat-sidenav-content-background-color: #fafafa;--mat-sidenav-content-text-color: rgba(0, 0, 0, .87);--mat-sidenav-scrim-color: rgba(0, 0, 0, .6)}html{--mat-stepper-header-icon-foreground-color: white;--mat-stepper-header-selected-state-icon-background-color: #3f51b5;--mat-stepper-header-selected-state-icon-foreground-color: white;--mat-stepper-header-done-state-icon-background-color: #3f51b5;--mat-stepper-header-done-state-icon-foreground-color: white;--mat-stepper-header-edit-state-icon-background-color: #3f51b5;--mat-stepper-header-edit-state-icon-foreground-color: white;--mat-stepper-container-color: white;--mat-stepper-line-color: rgba(0, 0, 0, .12);--mat-stepper-header-hover-state-layer-color: rgba(0, 0, 0, .04);--mat-stepper-header-focus-state-layer-color: rgba(0, 0, 0, .04);--mat-stepper-header-label-text-color: rgba(0, 0, 0, .54);--mat-stepper-header-optional-label-text-color: rgba(0, 0, 0, .54);--mat-stepper-header-selected-state-label-text-color: rgba(0, 0, 0, .87);--mat-stepper-header-error-state-label-text-color: #f44336;--mat-stepper-header-icon-background-color: rgba(0, 0, 0, .54);--mat-stepper-header-error-state-icon-foreground-color: #f44336;--mat-stepper-header-error-state-icon-background-color: transparent}html .mat-step-header.mat-accent{--mat-stepper-header-icon-foreground-color: white;--mat-stepper-header-selected-state-icon-background-color: #ff4081;--mat-stepper-header-selected-state-icon-foreground-color: white;--mat-stepper-header-done-state-icon-background-color: #ff4081;--mat-stepper-header-done-state-icon-foreground-color: white;--mat-stepper-header-edit-state-icon-background-color: #ff4081;--mat-stepper-header-edit-state-icon-foreground-color: white}html .mat-step-header.mat-warn{--mat-stepper-header-icon-foreground-color: white;--mat-stepper-header-selected-state-icon-background-color: #f44336;--mat-stepper-header-selected-state-icon-foreground-color: white;--mat-stepper-header-done-state-icon-background-color: #f44336;--mat-stepper-header-done-state-icon-foreground-color: white;--mat-stepper-header-edit-state-icon-background-color: #f44336;--mat-stepper-header-edit-state-icon-foreground-color: white}html{--mat-stepper-header-height: 72px}html{--mat-sort-arrow-color: rgb(117.3, 117.3, 117.3)}html{--mat-toolbar-container-background-color: whitesmoke;--mat-toolbar-container-text-color: rgba(0, 0, 0, .87)}.mat-toolbar.mat-primary{--mat-toolbar-container-background-color: #3f51b5;--mat-toolbar-container-text-color: white}.mat-toolbar.mat-accent{--mat-toolbar-container-background-color: #ff4081;--mat-toolbar-container-text-color: white}.mat-toolbar.mat-warn{--mat-toolbar-container-background-color: #f44336;--mat-toolbar-container-text-color: white}html{--mat-toolbar-standard-height: 64px;--mat-toolbar-mobile-height: 56px}html{--mat-tree-container-background-color: white;--mat-tree-node-text-color: rgba(0, 0, 0, .87)}html{--mat-tree-node-min-height: 48px}html{--mat-timepicker-container-shape: 4px;--mat-timepicker-container-elevation-shadow: 0px 5px 5px -3px rgba(0, 0, 0, .2), 0px 8px 10px 1px rgba(0, 0, 0, .14), 0px 3px 14px 2px rgba(0, 0, 0, .12)}html{--mat-timepicker-container-background-color: white}.fa,.fas,.far,.fal,.fad,.fab{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;display:inline-block;font-style:normal;font-variant:normal;text-rendering:auto;line-height:1}.fa-lg{font-size:1.3333333333em;line-height:.75em;vertical-align:-.0667em}.fa-xs{font-size:.75em}.fa-sm{font-size:.875em}.fa-1x{font-size:1em}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-6x{font-size:6em}.fa-7x{font-size:7em}.fa-8x{font-size:8em}.fa-9x{font-size:9em}.fa-10x{font-size:10em}.fa-fw{text-align:center;width:1.25em}.fa-ul{list-style-type:none;margin-left:2.5em;padding-left:0}.fa-ul>li{position:relative}.fa-li{left:-2em;position:absolute;text-align:center;width:2em;line-height:inherit}.fa-border{border:solid .08em #eee;border-radius:.1em;padding:.2em .25em .15em}.fa-pull-left{float:left}.fa-pull-right{float:right}.fa.fa-pull-left,.fas.fa-pull-left,.far.fa-pull-left,.fal.fa-pull-left,.fab.fa-pull-left{margin-right:.3em}.fa.fa-pull-right,.fas.fa-pull-right,.far.fa-pull-right,.fal.fa-pull-right,.fab.fa-pull-right{margin-left:.3em}.fa-spin{animation:fa-spin 2s infinite linear}.fa-pulse{animation:fa-spin 1s infinite steps(8)}@keyframes fa-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.fa-rotate-90{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=1)";transform:rotate(90deg)}.fa-rotate-180{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2)";transform:rotate(180deg)}.fa-rotate-270{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=3)";transform:rotate(270deg)}.fa-flip-horizontal{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)";transform:scaleX(-1)}.fa-flip-vertical{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)";transform:scaleY(-1)}.fa-flip-both,.fa-flip-horizontal.fa-flip-vertical{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)";transform:scale(-1)}:root .fa-rotate-90,:root .fa-rotate-180,:root .fa-rotate-270,:root .fa-flip-horizontal,:root .fa-flip-vertical,:root .fa-flip-both{filter:none}.fa-stack{display:inline-block;height:2em;line-height:2em;position:relative;vertical-align:middle;width:2.5em}.fa-stack-1x,.fa-stack-2x{left:0;position:absolute;text-align:center;width:100%}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:#fff}.fa-500px:before{content:""}.fa-accessible-icon:before{content:""}.fa-accusoft:before{content:""}.fa-acquisitions-incorporated:before{content:""}.fa-ad:before{content:""}.fa-address-book:before{content:""}.fa-address-card:before{content:""}.fa-adjust:before{content:""}.fa-adn:before{content:""}.fa-adversal:before{content:""}.fa-affiliatetheme:before{content:""}.fa-air-freshener:before{content:""}.fa-airbnb:before{content:""}.fa-algolia:before{content:""}.fa-align-center:before{content:""}.fa-align-justify:before{content:""}.fa-align-left:before{content:""}.fa-align-right:before{content:""}.fa-alipay:before{content:""}.fa-allergies:before{content:""}.fa-amazon:before{content:""}.fa-amazon-pay:before{content:""}.fa-ambulance:before{content:""}.fa-american-sign-language-interpreting:before{content:""}.fa-amilia:before{content:""}.fa-anchor:before{content:""}.fa-android:before{content:""}.fa-angellist:before{content:""}.fa-angle-double-down:before{content:""}.fa-angle-double-left:before{content:""}.fa-angle-double-right:before{content:""}.fa-angle-double-up:before{content:""}.fa-angle-down:before{content:""}.fa-angle-left:before{content:""}.fa-angle-right:before{content:""}.fa-angle-up:before{content:""}.fa-angry:before{content:""}.fa-angrycreative:before{content:""}.fa-angular:before{content:""}.fa-ankh:before{content:""}.fa-app-store:before{content:""}.fa-app-store-ios:before{content:""}.fa-apper:before{content:""}.fa-apple:before{content:""}.fa-apple-alt:before{content:""}.fa-apple-pay:before{content:""}.fa-archive:before{content:""}.fa-archway:before{content:""}.fa-arrow-alt-circle-down:before{content:""}.fa-arrow-alt-circle-left:before{content:""}.fa-arrow-alt-circle-right:before{content:""}.fa-arrow-alt-circle-up:before{content:""}.fa-arrow-circle-down:before{content:""}.fa-arrow-circle-left:before{content:""}.fa-arrow-circle-right:before{content:""}.fa-arrow-circle-up:before{content:""}.fa-arrow-down:before{content:""}.fa-arrow-left:before{content:""}.fa-arrow-right:before{content:""}.fa-arrow-up:before{content:""}.fa-arrows-alt:before{content:""}.fa-arrows-alt-h:before{content:""}.fa-arrows-alt-v:before{content:""}.fa-artstation:before{content:""}.fa-assistive-listening-systems:before{content:""}.fa-asterisk:before{content:""}.fa-asymmetrik:before{content:""}.fa-at:before{content:""}.fa-atlas:before{content:""}.fa-atlassian:before{content:""}.fa-atom:before{content:""}.fa-audible:before{content:""}.fa-audio-description:before{content:""}.fa-autoprefixer:before{content:""}.fa-avianex:before{content:""}.fa-aviato:before{content:""}.fa-award:before{content:""}.fa-aws:before{content:""}.fa-baby:before{content:""}.fa-baby-carriage:before{content:""}.fa-backspace:before{content:""}.fa-backward:before{content:""}.fa-bacon:before{content:""}.fa-bacteria:before{content:""}.fa-bacterium:before{content:""}.fa-bahai:before{content:""}.fa-balance-scale:before{content:""}.fa-balance-scale-left:before{content:""}.fa-balance-scale-right:before{content:""}.fa-ban:before{content:""}.fa-band-aid:before{content:""}.fa-bandcamp:before{content:""}.fa-barcode:before{content:""}.fa-bars:before{content:""}.fa-baseball-ball:before{content:""}.fa-basketball-ball:before{content:""}.fa-bath:before{content:""}.fa-battery-empty:before{content:""}.fa-battery-full:before{content:""}.fa-battery-half:before{content:""}.fa-battery-quarter:before{content:""}.fa-battery-three-quarters:before{content:""}.fa-battle-net:before{content:""}.fa-bed:before{content:""}.fa-beer:before{content:""}.fa-behance:before{content:""}.fa-behance-square:before{content:""}.fa-bell:before{content:""}.fa-bell-slash:before{content:""}.fa-bezier-curve:before{content:""}.fa-bible:before{content:""}.fa-bicycle:before{content:""}.fa-biking:before{content:""}.fa-bimobject:before{content:""}.fa-binoculars:before{content:""}.fa-biohazard:before{content:""}.fa-birthday-cake:before{content:""}.fa-bitbucket:before{content:""}.fa-bitcoin:before{content:""}.fa-bity:before{content:""}.fa-black-tie:before{content:""}.fa-blackberry:before{content:""}.fa-blender:before{content:""}.fa-blender-phone:before{content:""}.fa-blind:before{content:""}.fa-blog:before{content:""}.fa-blogger:before{content:""}.fa-blogger-b:before{content:""}.fa-bluetooth:before{content:""}.fa-bluetooth-b:before{content:""}.fa-bold:before{content:""}.fa-bolt:before{content:""}.fa-bomb:before{content:""}.fa-bone:before{content:""}.fa-bong:before{content:""}.fa-book:before{content:""}.fa-book-dead:before{content:""}.fa-book-medical:before{content:""}.fa-book-open:before{content:""}.fa-book-reader:before{content:""}.fa-bookmark:before{content:""}.fa-bootstrap:before{content:""}.fa-border-all:before{content:""}.fa-border-none:before{content:""}.fa-border-style:before{content:""}.fa-bowling-ball:before{content:""}.fa-box:before{content:""}.fa-box-open:before{content:""}.fa-box-tissue:before{content:""}.fa-boxes:before{content:""}.fa-braille:before{content:""}.fa-brain:before{content:""}.fa-bread-slice:before{content:""}.fa-briefcase:before{content:""}.fa-briefcase-medical:before{content:""}.fa-broadcast-tower:before{content:""}.fa-broom:before{content:""}.fa-brush:before{content:""}.fa-btc:before{content:""}.fa-buffer:before{content:""}.fa-bug:before{content:""}.fa-building:before{content:""}.fa-bullhorn:before{content:""}.fa-bullseye:before{content:""}.fa-burn:before{content:""}.fa-buromobelexperte:before{content:""}.fa-bus:before{content:""}.fa-bus-alt:before{content:""}.fa-business-time:before{content:""}.fa-buy-n-large:before{content:""}.fa-buysellads:before{content:""}.fa-calculator:before{content:""}.fa-calendar:before{content:""}.fa-calendar-alt:before{content:""}.fa-calendar-check:before{content:""}.fa-calendar-day:before{content:""}.fa-calendar-minus:before{content:""}.fa-calendar-plus:before{content:""}.fa-calendar-times:before{content:""}.fa-calendar-week:before{content:""}.fa-camera:before{content:""}.fa-camera-retro:before{content:""}.fa-campground:before{content:""}.fa-canadian-maple-leaf:before{content:""}.fa-candy-cane:before{content:""}.fa-cannabis:before{content:""}.fa-capsules:before{content:""}.fa-car:before{content:""}.fa-car-alt:before{content:""}.fa-car-battery:before{content:""}.fa-car-crash:before{content:""}.fa-car-side:before{content:""}.fa-caravan:before{content:""}.fa-caret-down:before{content:""}.fa-caret-left:before{content:""}.fa-caret-right:before{content:""}.fa-caret-square-down:before{content:""}.fa-caret-square-left:before{content:""}.fa-caret-square-right:before{content:""}.fa-caret-square-up:before{content:""}.fa-caret-up:before{content:""}.fa-carrot:before{content:""}.fa-cart-arrow-down:before{content:""}.fa-cart-plus:before{content:""}.fa-cash-register:before{content:""}.fa-cat:before{content:""}.fa-cc-amazon-pay:before{content:""}.fa-cc-amex:before{content:""}.fa-cc-apple-pay:before{content:""}.fa-cc-diners-club:before{content:""}.fa-cc-discover:before{content:""}.fa-cc-jcb:before{content:""}.fa-cc-mastercard:before{content:""}.fa-cc-paypal:before{content:""}.fa-cc-stripe:before{content:""}.fa-cc-visa:before{content:""}.fa-centercode:before{content:""}.fa-centos:before{content:""}.fa-certificate:before{content:""}.fa-chair:before{content:""}.fa-chalkboard:before{content:""}.fa-chalkboard-teacher:before{content:""}.fa-charging-station:before{content:""}.fa-chart-area:before{content:""}.fa-chart-bar:before{content:""}.fa-chart-line:before{content:""}.fa-chart-pie:before{content:""}.fa-check:before{content:""}.fa-check-circle:before{content:""}.fa-check-double:before{content:""}.fa-check-square:before{content:""}.fa-cheese:before{content:""}.fa-chess:before{content:""}.fa-chess-bishop:before{content:""}.fa-chess-board:before{content:""}.fa-chess-king:before{content:""}.fa-chess-knight:before{content:""}.fa-chess-pawn:before{content:""}.fa-chess-queen:before{content:""}.fa-chess-rook:before{content:""}.fa-chevron-circle-down:before{content:""}.fa-chevron-circle-left:before{content:""}.fa-chevron-circle-right:before{content:""}.fa-chevron-circle-up:before{content:""}.fa-chevron-down:before{content:""}.fa-chevron-left:before{content:""}.fa-chevron-right:before{content:""}.fa-chevron-up:before{content:""}.fa-child:before{content:""}.fa-chrome:before{content:""}.fa-chromecast:before{content:""}.fa-church:before{content:""}.fa-circle:before{content:""}.fa-circle-notch:before{content:""}.fa-city:before{content:""}.fa-clinic-medical:before{content:""}.fa-clipboard:before{content:""}.fa-clipboard-check:before{content:""}.fa-clipboard-list:before{content:""}.fa-clock:before{content:""}.fa-clone:before{content:""}.fa-closed-captioning:before{content:""}.fa-cloud:before{content:""}.fa-cloud-download-alt:before{content:""}.fa-cloud-meatball:before{content:""}.fa-cloud-moon:before{content:""}.fa-cloud-moon-rain:before{content:""}.fa-cloud-rain:before{content:""}.fa-cloud-showers-heavy:before{content:""}.fa-cloud-sun:before{content:""}.fa-cloud-sun-rain:before{content:""}.fa-cloud-upload-alt:before{content:""}.fa-cloudflare:before{content:""}.fa-cloudscale:before{content:""}.fa-cloudsmith:before{content:""}.fa-cloudversify:before{content:""}.fa-cocktail:before{content:""}.fa-code:before{content:""}.fa-code-branch:before{content:""}.fa-codepen:before{content:""}.fa-codiepie:before{content:""}.fa-coffee:before{content:""}.fa-cog:before{content:""}.fa-cogs:before{content:""}.fa-coins:before{content:""}.fa-columns:before{content:""}.fa-comment:before{content:""}.fa-comment-alt:before{content:""}.fa-comment-dollar:before{content:""}.fa-comment-dots:before{content:""}.fa-comment-medical:before{content:""}.fa-comment-slash:before{content:""}.fa-comments:before{content:""}.fa-comments-dollar:before{content:""}.fa-compact-disc:before{content:""}.fa-compass:before{content:""}.fa-compress:before{content:""}.fa-compress-alt:before{content:""}.fa-compress-arrows-alt:before{content:""}.fa-concierge-bell:before{content:""}.fa-confluence:before{content:""}.fa-connectdevelop:before{content:""}.fa-contao:before{content:""}.fa-cookie:before{content:""}.fa-cookie-bite:before{content:""}.fa-copy:before{content:""}.fa-copyright:before{content:""}.fa-cotton-bureau:before{content:""}.fa-couch:before{content:""}.fa-cpanel:before{content:""}.fa-creative-commons:before{content:""}.fa-creative-commons-by:before{content:""}.fa-creative-commons-nc:before{content:""}.fa-creative-commons-nc-eu:before{content:""}.fa-creative-commons-nc-jp:before{content:""}.fa-creative-commons-nd:before{content:""}.fa-creative-commons-pd:before{content:""}.fa-creative-commons-pd-alt:before{content:""}.fa-creative-commons-remix:before{content:""}.fa-creative-commons-sa:before{content:""}.fa-creative-commons-sampling:before{content:""}.fa-creative-commons-sampling-plus:before{content:""}.fa-creative-commons-share:before{content:""}.fa-creative-commons-zero:before{content:""}.fa-credit-card:before{content:""}.fa-critical-role:before{content:""}.fa-crop:before{content:""}.fa-crop-alt:before{content:""}.fa-cross:before{content:""}.fa-crosshairs:before{content:""}.fa-crow:before{content:""}.fa-crown:before{content:""}.fa-crutch:before{content:""}.fa-css3:before{content:""}.fa-css3-alt:before{content:""}.fa-cube:before{content:""}.fa-cubes:before{content:""}.fa-cut:before{content:""}.fa-cuttlefish:before{content:""}.fa-d-and-d:before{content:""}.fa-d-and-d-beyond:before{content:""}.fa-dailymotion:before{content:""}.fa-dashcube:before{content:""}.fa-database:before{content:""}.fa-deaf:before{content:""}.fa-deezer:before{content:""}.fa-delicious:before{content:""}.fa-democrat:before{content:""}.fa-deploydog:before{content:""}.fa-deskpro:before{content:""}.fa-desktop:before{content:""}.fa-dev:before{content:""}.fa-deviantart:before{content:""}.fa-dharmachakra:before{content:""}.fa-dhl:before{content:""}.fa-diagnoses:before{content:""}.fa-diaspora:before{content:""}.fa-dice:before{content:""}.fa-dice-d20:before{content:""}.fa-dice-d6:before{content:""}.fa-dice-five:before{content:""}.fa-dice-four:before{content:""}.fa-dice-one:before{content:""}.fa-dice-six:before{content:""}.fa-dice-three:before{content:""}.fa-dice-two:before{content:""}.fa-digg:before{content:""}.fa-digital-ocean:before{content:""}.fa-digital-tachograph:before{content:""}.fa-directions:before{content:""}.fa-discord:before{content:""}.fa-discourse:before{content:""}.fa-disease:before{content:""}.fa-divide:before{content:""}.fa-dizzy:before{content:""}.fa-dna:before{content:""}.fa-dochub:before{content:""}.fa-docker:before{content:""}.fa-dog:before{content:""}.fa-dollar-sign:before{content:""}.fa-dolly:before{content:""}.fa-dolly-flatbed:before{content:""}.fa-donate:before{content:""}.fa-door-closed:before{content:""}.fa-door-open:before{content:""}.fa-dot-circle:before{content:""}.fa-dove:before{content:""}.fa-download:before{content:""}.fa-draft2digital:before{content:""}.fa-drafting-compass:before{content:""}.fa-dragon:before{content:""}.fa-draw-polygon:before{content:""}.fa-dribbble:before{content:""}.fa-dribbble-square:before{content:""}.fa-dropbox:before{content:""}.fa-drum:before{content:""}.fa-drum-steelpan:before{content:""}.fa-drumstick-bite:before{content:""}.fa-drupal:before{content:""}.fa-dumbbell:before{content:""}.fa-dumpster:before{content:""}.fa-dumpster-fire:before{content:""}.fa-dungeon:before{content:""}.fa-dyalog:before{content:""}.fa-earlybirds:before{content:""}.fa-ebay:before{content:""}.fa-edge:before{content:""}.fa-edge-legacy:before{content:""}.fa-edit:before{content:""}.fa-egg:before{content:""}.fa-eject:before{content:""}.fa-elementor:before{content:""}.fa-ellipsis-h:before{content:""}.fa-ellipsis-v:before{content:""}.fa-ello:before{content:""}.fa-ember:before{content:""}.fa-empire:before{content:""}.fa-envelope:before{content:""}.fa-envelope-open:before{content:""}.fa-envelope-open-text:before{content:""}.fa-envelope-square:before{content:""}.fa-envira:before{content:""}.fa-equals:before{content:""}.fa-eraser:before{content:""}.fa-erlang:before{content:""}.fa-ethereum:before{content:""}.fa-ethernet:before{content:""}.fa-etsy:before{content:""}.fa-euro-sign:before{content:""}.fa-evernote:before{content:""}.fa-exchange-alt:before{content:""}.fa-exclamation:before{content:""}.fa-exclamation-circle:before{content:""}.fa-exclamation-triangle:before{content:""}.fa-expand:before{content:""}.fa-expand-alt:before{content:""}.fa-expand-arrows-alt:before{content:""}.fa-expeditedssl:before{content:""}.fa-external-link-alt:before{content:""}.fa-external-link-square-alt:before{content:""}.fa-eye:before{content:""}.fa-eye-dropper:before{content:""}.fa-eye-slash:before{content:""}.fa-facebook:before{content:""}.fa-facebook-f:before{content:""}.fa-facebook-messenger:before{content:""}.fa-facebook-square:before{content:""}.fa-fan:before{content:""}.fa-fantasy-flight-games:before{content:""}.fa-fast-backward:before{content:""}.fa-fast-forward:before{content:""}.fa-faucet:before{content:""}.fa-fax:before{content:""}.fa-feather:before{content:""}.fa-feather-alt:before{content:""}.fa-fedex:before{content:""}.fa-fedora:before{content:""}.fa-female:before{content:""}.fa-fighter-jet:before{content:""}.fa-figma:before{content:""}.fa-file:before{content:""}.fa-file-alt:before{content:""}.fa-file-archive:before{content:""}.fa-file-audio:before{content:""}.fa-file-code:before{content:""}.fa-file-contract:before{content:""}.fa-file-csv:before{content:""}.fa-file-download:before{content:""}.fa-file-excel:before{content:""}.fa-file-export:before{content:""}.fa-file-image:before{content:""}.fa-file-import:before{content:""}.fa-file-invoice:before{content:""}.fa-file-invoice-dollar:before{content:""}.fa-file-medical:before{content:""}.fa-file-medical-alt:before{content:""}.fa-file-pdf:before{content:""}.fa-file-powerpoint:before{content:""}.fa-file-prescription:before{content:""}.fa-file-signature:before{content:""}.fa-file-upload:before{content:""}.fa-file-video:before{content:""}.fa-file-word:before{content:""}.fa-fill:before{content:""}.fa-fill-drip:before{content:""}.fa-film:before{content:""}.fa-filter:before{content:""}.fa-fingerprint:before{content:""}.fa-fire:before{content:""}.fa-fire-alt:before{content:""}.fa-fire-extinguisher:before{content:""}.fa-firefox:before{content:""}.fa-firefox-browser:before{content:""}.fa-first-aid:before{content:""}.fa-first-order:before{content:""}.fa-first-order-alt:before{content:""}.fa-firstdraft:before{content:""}.fa-fish:before{content:""}.fa-fist-raised:before{content:""}.fa-flag:before{content:""}.fa-flag-checkered:before{content:""}.fa-flag-usa:before{content:""}.fa-flask:before{content:""}.fa-flickr:before{content:""}.fa-flipboard:before{content:""}.fa-flushed:before{content:""}.fa-fly:before{content:""}.fa-folder:before{content:""}.fa-folder-minus:before{content:""}.fa-folder-open:before{content:""}.fa-folder-plus:before{content:""}.fa-font:before{content:""}.fa-font-awesome:before{content:""}.fa-font-awesome-alt:before{content:""}.fa-font-awesome-flag:before{content:""}.fa-font-awesome-logo-full:before{content:""}.fa-fonticons:before{content:""}.fa-fonticons-fi:before{content:""}.fa-football-ball:before{content:""}.fa-fort-awesome:before{content:""}.fa-fort-awesome-alt:before{content:""}.fa-forumbee:before{content:""}.fa-forward:before{content:""}.fa-foursquare:before{content:""}.fa-free-code-camp:before{content:""}.fa-freebsd:before{content:""}.fa-frog:before{content:""}.fa-frown:before{content:""}.fa-frown-open:before{content:""}.fa-fulcrum:before{content:""}.fa-funnel-dollar:before{content:""}.fa-futbol:before{content:""}.fa-galactic-republic:before{content:""}.fa-galactic-senate:before{content:""}.fa-gamepad:before{content:""}.fa-gas-pump:before{content:""}.fa-gavel:before{content:""}.fa-gem:before{content:""}.fa-genderless:before{content:""}.fa-get-pocket:before{content:""}.fa-gg:before{content:""}.fa-gg-circle:before{content:""}.fa-ghost:before{content:""}.fa-gift:before{content:""}.fa-gifts:before{content:""}.fa-git:before{content:""}.fa-git-alt:before{content:""}.fa-git-square:before{content:""}.fa-github:before{content:""}.fa-github-alt:before{content:""}.fa-github-square:before{content:""}.fa-gitkraken:before{content:""}.fa-gitlab:before{content:""}.fa-gitter:before{content:""}.fa-glass-cheers:before{content:""}.fa-glass-martini:before{content:""}.fa-glass-martini-alt:before{content:""}.fa-glass-whiskey:before{content:""}.fa-glasses:before{content:""}.fa-glide:before{content:""}.fa-glide-g:before{content:""}.fa-globe:before{content:""}.fa-globe-africa:before{content:""}.fa-globe-americas:before{content:""}.fa-globe-asia:before{content:""}.fa-globe-europe:before{content:""}.fa-gofore:before{content:""}.fa-golf-ball:before{content:""}.fa-goodreads:before{content:""}.fa-goodreads-g:before{content:""}.fa-google:before{content:""}.fa-google-drive:before{content:""}.fa-google-pay:before{content:""}.fa-google-play:before{content:""}.fa-google-plus:before{content:""}.fa-google-plus-g:before{content:""}.fa-google-plus-square:before{content:""}.fa-google-wallet:before{content:""}.fa-gopuram:before{content:""}.fa-graduation-cap:before{content:""}.fa-gratipay:before{content:""}.fa-grav:before{content:""}.fa-greater-than:before{content:""}.fa-greater-than-equal:before{content:""}.fa-grimace:before{content:""}.fa-grin:before{content:""}.fa-grin-alt:before{content:""}.fa-grin-beam:before{content:""}.fa-grin-beam-sweat:before{content:""}.fa-grin-hearts:before{content:""}.fa-grin-squint:before{content:""}.fa-grin-squint-tears:before{content:""}.fa-grin-stars:before{content:""}.fa-grin-tears:before{content:""}.fa-grin-tongue:before{content:""}.fa-grin-tongue-squint:before{content:""}.fa-grin-tongue-wink:before{content:""}.fa-grin-wink:before{content:""}.fa-grip-horizontal:before{content:""}.fa-grip-lines:before{content:""}.fa-grip-lines-vertical:before{content:""}.fa-grip-vertical:before{content:""}.fa-gripfire:before{content:""}.fa-grunt:before{content:""}.fa-guilded:before{content:""}.fa-guitar:before{content:""}.fa-gulp:before{content:""}.fa-h-square:before{content:""}.fa-hacker-news:before{content:""}.fa-hacker-news-square:before{content:""}.fa-hackerrank:before{content:""}.fa-hamburger:before{content:""}.fa-hammer:before{content:""}.fa-hamsa:before{content:""}.fa-hand-holding:before{content:""}.fa-hand-holding-heart:before{content:""}.fa-hand-holding-medical:before{content:""}.fa-hand-holding-usd:before{content:""}.fa-hand-holding-water:before{content:""}.fa-hand-lizard:before{content:""}.fa-hand-middle-finger:before{content:""}.fa-hand-paper:before{content:""}.fa-hand-peace:before{content:""}.fa-hand-point-down:before{content:""}.fa-hand-point-left:before{content:""}.fa-hand-point-right:before{content:""}.fa-hand-point-up:before{content:""}.fa-hand-pointer:before{content:""}.fa-hand-rock:before{content:""}.fa-hand-scissors:before{content:""}.fa-hand-sparkles:before{content:""}.fa-hand-spock:before{content:""}.fa-hands:before{content:""}.fa-hands-helping:before{content:""}.fa-hands-wash:before{content:""}.fa-handshake:before{content:""}.fa-handshake-alt-slash:before{content:""}.fa-handshake-slash:before{content:""}.fa-hanukiah:before{content:""}.fa-hard-hat:before{content:""}.fa-hashtag:before{content:""}.fa-hat-cowboy:before{content:""}.fa-hat-cowboy-side:before{content:""}.fa-hat-wizard:before{content:""}.fa-hdd:before{content:""}.fa-head-side-cough:before{content:""}.fa-head-side-cough-slash:before{content:""}.fa-head-side-mask:before{content:""}.fa-head-side-virus:before{content:""}.fa-heading:before{content:""}.fa-headphones:before{content:""}.fa-headphones-alt:before{content:""}.fa-headset:before{content:""}.fa-heart:before{content:""}.fa-heart-broken:before{content:""}.fa-heartbeat:before{content:""}.fa-helicopter:before{content:""}.fa-highlighter:before{content:""}.fa-hiking:before{content:""}.fa-hippo:before{content:""}.fa-hips:before{content:""}.fa-hire-a-helper:before{content:""}.fa-history:before{content:""}.fa-hive:before{content:""}.fa-hockey-puck:before{content:""}.fa-holly-berry:before{content:""}.fa-home:before{content:""}.fa-hooli:before{content:""}.fa-hornbill:before{content:""}.fa-horse:before{content:""}.fa-horse-head:before{content:""}.fa-hospital:before{content:""}.fa-hospital-alt:before{content:""}.fa-hospital-symbol:before{content:""}.fa-hospital-user:before{content:""}.fa-hot-tub:before{content:""}.fa-hotdog:before{content:""}.fa-hotel:before{content:""}.fa-hotjar:before{content:""}.fa-hourglass:before{content:""}.fa-hourglass-end:before{content:""}.fa-hourglass-half:before{content:""}.fa-hourglass-start:before{content:""}.fa-house-damage:before{content:""}.fa-house-user:before{content:""}.fa-houzz:before{content:""}.fa-hryvnia:before{content:""}.fa-html5:before{content:""}.fa-hubspot:before{content:""}.fa-i-cursor:before{content:""}.fa-ice-cream:before{content:""}.fa-icicles:before{content:""}.fa-icons:before{content:""}.fa-id-badge:before{content:""}.fa-id-card:before{content:""}.fa-id-card-alt:before{content:""}.fa-ideal:before{content:""}.fa-igloo:before{content:""}.fa-image:before{content:""}.fa-images:before{content:""}.fa-imdb:before{content:""}.fa-inbox:before{content:""}.fa-indent:before{content:""}.fa-industry:before{content:""}.fa-infinity:before{content:""}.fa-info:before{content:""}.fa-info-circle:before{content:""}.fa-innosoft:before{content:""}.fa-instagram:before{content:""}.fa-instagram-square:before{content:""}.fa-instalod:before{content:""}.fa-intercom:before{content:""}.fa-internet-explorer:before{content:""}.fa-invision:before{content:""}.fa-ioxhost:before{content:""}.fa-italic:before{content:""}.fa-itch-io:before{content:""}.fa-itunes:before{content:""}.fa-itunes-note:before{content:""}.fa-java:before{content:""}.fa-jedi:before{content:""}.fa-jedi-order:before{content:""}.fa-jenkins:before{content:""}.fa-jira:before{content:""}.fa-joget:before{content:""}.fa-joint:before{content:""}.fa-joomla:before{content:""}.fa-journal-whills:before{content:""}.fa-js:before{content:""}.fa-js-square:before{content:""}.fa-jsfiddle:before{content:""}.fa-kaaba:before{content:""}.fa-kaggle:before{content:""}.fa-key:before{content:""}.fa-keybase:before{content:""}.fa-keyboard:before{content:""}.fa-keycdn:before{content:""}.fa-khanda:before{content:""}.fa-kickstarter:before{content:""}.fa-kickstarter-k:before{content:""}.fa-kiss:before{content:""}.fa-kiss-beam:before{content:""}.fa-kiss-wink-heart:before{content:""}.fa-kiwi-bird:before{content:""}.fa-korvue:before{content:""}.fa-landmark:before{content:""}.fa-language:before{content:""}.fa-laptop:before{content:""}.fa-laptop-code:before{content:""}.fa-laptop-house:before{content:""}.fa-laptop-medical:before{content:""}.fa-laravel:before{content:""}.fa-lastfm:before{content:""}.fa-lastfm-square:before{content:""}.fa-laugh:before{content:""}.fa-laugh-beam:before{content:""}.fa-laugh-squint:before{content:""}.fa-laugh-wink:before{content:""}.fa-layer-group:before{content:""}.fa-leaf:before{content:""}.fa-leanpub:before{content:""}.fa-lemon:before{content:""}.fa-less:before{content:""}.fa-less-than:before{content:""}.fa-less-than-equal:before{content:""}.fa-level-down-alt:before{content:""}.fa-level-up-alt:before{content:""}.fa-life-ring:before{content:""}.fa-lightbulb:before{content:""}.fa-line:before{content:""}.fa-link:before{content:""}.fa-linkedin:before{content:""}.fa-linkedin-in:before{content:""}.fa-linode:before{content:""}.fa-linux:before{content:""}.fa-lira-sign:before{content:""}.fa-list:before{content:""}.fa-list-alt:before{content:""}.fa-list-ol:before{content:""}.fa-list-ul:before{content:""}.fa-location-arrow:before{content:""}.fa-lock:before{content:""}.fa-lock-open:before{content:""}.fa-long-arrow-alt-down:before{content:""}.fa-long-arrow-alt-left:before{content:""}.fa-long-arrow-alt-right:before{content:""}.fa-long-arrow-alt-up:before{content:""}.fa-low-vision:before{content:""}.fa-luggage-cart:before{content:""}.fa-lungs:before{content:""}.fa-lungs-virus:before{content:""}.fa-lyft:before{content:""}.fa-magento:before{content:""}.fa-magic:before{content:""}.fa-magnet:before{content:""}.fa-mail-bulk:before{content:""}.fa-mailchimp:before{content:""}.fa-male:before{content:""}.fa-mandalorian:before{content:""}.fa-map:before{content:""}.fa-map-marked:before{content:""}.fa-map-marked-alt:before{content:""}.fa-map-marker:before{content:""}.fa-map-marker-alt:before{content:""}.fa-map-pin:before{content:""}.fa-map-signs:before{content:""}.fa-markdown:before{content:""}.fa-marker:before{content:""}.fa-mars:before{content:""}.fa-mars-double:before{content:""}.fa-mars-stroke:before{content:""}.fa-mars-stroke-h:before{content:""}.fa-mars-stroke-v:before{content:""}.fa-mask:before{content:""}.fa-mastodon:before{content:""}.fa-maxcdn:before{content:""}.fa-mdb:before{content:""}.fa-medal:before{content:""}.fa-medapps:before{content:""}.fa-medium:before{content:""}.fa-medium-m:before{content:""}.fa-medkit:before{content:""}.fa-medrt:before{content:""}.fa-meetup:before{content:""}.fa-megaport:before{content:""}.fa-meh:before{content:""}.fa-meh-blank:before{content:""}.fa-meh-rolling-eyes:before{content:""}.fa-memory:before{content:""}.fa-mendeley:before{content:""}.fa-menorah:before{content:""}.fa-mercury:before{content:""}.fa-meteor:before{content:""}.fa-microblog:before{content:""}.fa-microchip:before{content:""}.fa-microphone:before{content:""}.fa-microphone-alt:before{content:""}.fa-microphone-alt-slash:before{content:""}.fa-microphone-slash:before{content:""}.fa-microscope:before{content:""}.fa-microsoft:before{content:""}.fa-minus:before{content:""}.fa-minus-circle:before{content:""}.fa-minus-square:before{content:""}.fa-mitten:before{content:""}.fa-mix:before{content:""}.fa-mixcloud:before{content:""}.fa-mixer:before{content:""}.fa-mizuni:before{content:""}.fa-mobile:before{content:""}.fa-mobile-alt:before{content:""}.fa-modx:before{content:""}.fa-monero:before{content:""}.fa-money-bill:before{content:""}.fa-money-bill-alt:before{content:""}.fa-money-bill-wave:before{content:""}.fa-money-bill-wave-alt:before{content:""}.fa-money-check:before{content:""}.fa-money-check-alt:before{content:""}.fa-monument:before{content:""}.fa-moon:before{content:""}.fa-mortar-pestle:before{content:""}.fa-mosque:before{content:""}.fa-motorcycle:before{content:""}.fa-mountain:before{content:""}.fa-mouse:before{content:""}.fa-mouse-pointer:before{content:""}.fa-mug-hot:before{content:""}.fa-music:before{content:""}.fa-napster:before{content:""}.fa-neos:before{content:""}.fa-network-wired:before{content:""}.fa-neuter:before{content:""}.fa-newspaper:before{content:""}.fa-nimblr:before{content:""}.fa-node:before{content:""}.fa-node-js:before{content:""}.fa-not-equal:before{content:""}.fa-notes-medical:before{content:""}.fa-npm:before{content:""}.fa-ns8:before{content:""}.fa-nutritionix:before{content:""}.fa-object-group:before{content:""}.fa-object-ungroup:before{content:""}.fa-octopus-deploy:before{content:""}.fa-odnoklassniki:before{content:""}.fa-odnoklassniki-square:before{content:""}.fa-oil-can:before{content:""}.fa-old-republic:before{content:""}.fa-om:before{content:""}.fa-opencart:before{content:""}.fa-openid:before{content:""}.fa-opera:before{content:""}.fa-optin-monster:before{content:""}.fa-orcid:before{content:""}.fa-osi:before{content:""}.fa-otter:before{content:""}.fa-outdent:before{content:""}.fa-page4:before{content:""}.fa-pagelines:before{content:""}.fa-pager:before{content:""}.fa-paint-brush:before{content:""}.fa-paint-roller:before{content:""}.fa-palette:before{content:""}.fa-palfed:before{content:""}.fa-pallet:before{content:""}.fa-paper-plane:before{content:""}.fa-paperclip:before{content:""}.fa-parachute-box:before{content:""}.fa-paragraph:before{content:""}.fa-parking:before{content:""}.fa-passport:before{content:""}.fa-pastafarianism:before{content:""}.fa-paste:before{content:""}.fa-patreon:before{content:""}.fa-pause:before{content:""}.fa-pause-circle:before{content:""}.fa-paw:before{content:""}.fa-paypal:before{content:""}.fa-peace:before{content:""}.fa-pen:before{content:""}.fa-pen-alt:before{content:""}.fa-pen-fancy:before{content:""}.fa-pen-nib:before{content:""}.fa-pen-square:before{content:""}.fa-pencil-alt:before{content:""}.fa-pencil-ruler:before{content:""}.fa-penny-arcade:before{content:""}.fa-people-arrows:before{content:""}.fa-people-carry:before{content:""}.fa-pepper-hot:before{content:""}.fa-perbyte:before{content:""}.fa-percent:before{content:""}.fa-percentage:before{content:""}.fa-periscope:before{content:""}.fa-person-booth:before{content:""}.fa-phabricator:before{content:""}.fa-phoenix-framework:before{content:""}.fa-phoenix-squadron:before{content:""}.fa-phone:before{content:""}.fa-phone-alt:before{content:""}.fa-phone-slash:before{content:""}.fa-phone-square:before{content:""}.fa-phone-square-alt:before{content:""}.fa-phone-volume:before{content:""}.fa-photo-video:before{content:""}.fa-php:before{content:""}.fa-pied-piper:before{content:""}.fa-pied-piper-alt:before{content:""}.fa-pied-piper-hat:before{content:""}.fa-pied-piper-pp:before{content:""}.fa-pied-piper-square:before{content:""}.fa-piggy-bank:before{content:""}.fa-pills:before{content:""}.fa-pinterest:before{content:""}.fa-pinterest-p:before{content:""}.fa-pinterest-square:before{content:""}.fa-pizza-slice:before{content:""}.fa-place-of-worship:before{content:""}.fa-plane:before{content:""}.fa-plane-arrival:before{content:""}.fa-plane-departure:before{content:""}.fa-plane-slash:before{content:""}.fa-play:before{content:""}.fa-play-circle:before{content:""}.fa-playstation:before{content:""}.fa-plug:before{content:""}.fa-plus:before{content:""}.fa-plus-circle:before{content:""}.fa-plus-square:before{content:""}.fa-podcast:before{content:""}.fa-poll:before{content:""}.fa-poll-h:before{content:""}.fa-poo:before{content:""}.fa-poo-storm:before{content:""}.fa-poop:before{content:""}.fa-portrait:before{content:""}.fa-pound-sign:before{content:""}.fa-power-off:before{content:""}.fa-pray:before{content:""}.fa-praying-hands:before{content:""}.fa-prescription:before{content:""}.fa-prescription-bottle:before{content:""}.fa-prescription-bottle-alt:before{content:""}.fa-print:before{content:""}.fa-procedures:before{content:""}.fa-product-hunt:before{content:""}.fa-project-diagram:before{content:""}.fa-pump-medical:before{content:""}.fa-pump-soap:before{content:""}.fa-pushed:before{content:""}.fa-puzzle-piece:before{content:""}.fa-python:before{content:""}.fa-qq:before{content:""}.fa-qrcode:before{content:""}.fa-question:before{content:""}.fa-question-circle:before{content:""}.fa-quidditch:before{content:""}.fa-quinscape:before{content:""}.fa-quora:before{content:""}.fa-quote-left:before{content:""}.fa-quote-right:before{content:""}.fa-quran:before{content:""}.fa-r-project:before{content:""}.fa-radiation:before{content:""}.fa-radiation-alt:before{content:""}.fa-rainbow:before{content:""}.fa-random:before{content:""}.fa-raspberry-pi:before{content:""}.fa-ravelry:before{content:""}.fa-react:before{content:""}.fa-reacteurope:before{content:""}.fa-readme:before{content:""}.fa-rebel:before{content:""}.fa-receipt:before{content:""}.fa-record-vinyl:before{content:""}.fa-recycle:before{content:""}.fa-red-river:before{content:""}.fa-reddit:before{content:""}.fa-reddit-alien:before{content:""}.fa-reddit-square:before{content:""}.fa-redhat:before{content:""}.fa-redo:before{content:""}.fa-redo-alt:before{content:""}.fa-registered:before{content:""}.fa-remove-format:before{content:""}.fa-renren:before{content:""}.fa-reply:before{content:""}.fa-reply-all:before{content:""}.fa-replyd:before{content:""}.fa-republican:before{content:""}.fa-researchgate:before{content:""}.fa-resolving:before{content:""}.fa-restroom:before{content:""}.fa-retweet:before{content:""}.fa-rev:before{content:""}.fa-ribbon:before{content:""}.fa-ring:before{content:""}.fa-road:before{content:""}.fa-robot:before{content:""}.fa-rocket:before{content:""}.fa-rocketchat:before{content:""}.fa-rockrms:before{content:""}.fa-route:before{content:""}.fa-rss:before{content:""}.fa-rss-square:before{content:""}.fa-ruble-sign:before{content:""}.fa-ruler:before{content:""}.fa-ruler-combined:before{content:""}.fa-ruler-horizontal:before{content:""}.fa-ruler-vertical:before{content:""}.fa-running:before{content:""}.fa-rupee-sign:before{content:""}.fa-rust:before{content:""}.fa-sad-cry:before{content:""}.fa-sad-tear:before{content:""}.fa-safari:before{content:""}.fa-salesforce:before{content:""}.fa-sass:before{content:""}.fa-satellite:before{content:""}.fa-satellite-dish:before{content:""}.fa-save:before{content:""}.fa-schlix:before{content:""}.fa-school:before{content:""}.fa-screwdriver:before{content:""}.fa-scribd:before{content:""}.fa-scroll:before{content:""}.fa-sd-card:before{content:""}.fa-search:before{content:""}.fa-search-dollar:before{content:""}.fa-search-location:before{content:""}.fa-search-minus:before{content:""}.fa-search-plus:before{content:""}.fa-searchengin:before{content:""}.fa-seedling:before{content:""}.fa-sellcast:before{content:""}.fa-sellsy:before{content:""}.fa-server:before{content:""}.fa-servicestack:before{content:""}.fa-shapes:before{content:""}.fa-share:before{content:""}.fa-share-alt:before{content:""}.fa-share-alt-square:before{content:""}.fa-share-square:before{content:""}.fa-shekel-sign:before{content:""}.fa-shield-alt:before{content:""}.fa-shield-virus:before{content:""}.fa-ship:before{content:""}.fa-shipping-fast:before{content:""}.fa-shirtsinbulk:before{content:""}.fa-shoe-prints:before{content:""}.fa-shopify:before{content:""}.fa-shopping-bag:before{content:""}.fa-shopping-basket:before{content:""}.fa-shopping-cart:before{content:""}.fa-shopware:before{content:""}.fa-shower:before{content:""}.fa-shuttle-van:before{content:""}.fa-sign:before{content:""}.fa-sign-in-alt:before{content:""}.fa-sign-language:before{content:""}.fa-sign-out-alt:before{content:""}.fa-signal:before{content:""}.fa-signature:before{content:""}.fa-sim-card:before{content:""}.fa-simplybuilt:before{content:""}.fa-sink:before{content:""}.fa-sistrix:before{content:""}.fa-sitemap:before{content:""}.fa-sith:before{content:""}.fa-skating:before{content:""}.fa-sketch:before{content:""}.fa-skiing:before{content:""}.fa-skiing-nordic:before{content:""}.fa-skull:before{content:""}.fa-skull-crossbones:before{content:""}.fa-skyatlas:before{content:""}.fa-skype:before{content:""}.fa-slack:before{content:""}.fa-slack-hash:before{content:""}.fa-slash:before{content:""}.fa-sleigh:before{content:""}.fa-sliders-h:before{content:""}.fa-slideshare:before{content:""}.fa-smile:before{content:""}.fa-smile-beam:before{content:""}.fa-smile-wink:before{content:""}.fa-smog:before{content:""}.fa-smoking:before{content:""}.fa-smoking-ban:before{content:""}.fa-sms:before{content:""}.fa-snapchat:before{content:""}.fa-snapchat-ghost:before{content:""}.fa-snapchat-square:before{content:""}.fa-snowboarding:before{content:""}.fa-snowflake:before{content:""}.fa-snowman:before{content:""}.fa-snowplow:before{content:""}.fa-soap:before{content:""}.fa-socks:before{content:""}.fa-solar-panel:before{content:""}.fa-sort:before{content:""}.fa-sort-alpha-down:before{content:""}.fa-sort-alpha-down-alt:before{content:""}.fa-sort-alpha-up:before{content:""}.fa-sort-alpha-up-alt:before{content:""}.fa-sort-amount-down:before{content:""}.fa-sort-amount-down-alt:before{content:""}.fa-sort-amount-up:before{content:""}.fa-sort-amount-up-alt:before{content:""}.fa-sort-down:before{content:""}.fa-sort-numeric-down:before{content:""}.fa-sort-numeric-down-alt:before{content:""}.fa-sort-numeric-up:before{content:""}.fa-sort-numeric-up-alt:before{content:""}.fa-sort-up:before{content:""}.fa-soundcloud:before{content:""}.fa-sourcetree:before{content:""}.fa-spa:before{content:""}.fa-space-shuttle:before{content:""}.fa-speakap:before{content:""}.fa-speaker-deck:before{content:""}.fa-spell-check:before{content:""}.fa-spider:before{content:""}.fa-spinner:before{content:""}.fa-splotch:before{content:""}.fa-spotify:before{content:""}.fa-spray-can:before{content:""}.fa-square:before{content:""}.fa-square-full:before{content:""}.fa-square-root-alt:before{content:""}.fa-squarespace:before{content:""}.fa-stack-exchange:before{content:""}.fa-stack-overflow:before{content:""}.fa-stackpath:before{content:""}.fa-stamp:before{content:""}.fa-star:before{content:""}.fa-star-and-crescent:before{content:""}.fa-star-half:before{content:""}.fa-star-half-alt:before{content:""}.fa-star-of-david:before{content:""}.fa-star-of-life:before{content:""}.fa-staylinked:before{content:""}.fa-steam:before{content:""}.fa-steam-square:before{content:""}.fa-steam-symbol:before{content:""}.fa-step-backward:before{content:""}.fa-step-forward:before{content:""}.fa-stethoscope:before{content:""}.fa-sticker-mule:before{content:""}.fa-sticky-note:before{content:""}.fa-stop:before{content:""}.fa-stop-circle:before{content:""}.fa-stopwatch:before{content:""}.fa-stopwatch-20:before{content:""}.fa-store:before{content:""}.fa-store-alt:before{content:""}.fa-store-alt-slash:before{content:""}.fa-store-slash:before{content:""}.fa-strava:before{content:""}.fa-stream:before{content:""}.fa-street-view:before{content:""}.fa-strikethrough:before{content:""}.fa-stripe:before{content:""}.fa-stripe-s:before{content:""}.fa-stroopwafel:before{content:""}.fa-studiovinari:before{content:""}.fa-stumbleupon:before{content:""}.fa-stumbleupon-circle:before{content:""}.fa-subscript:before{content:""}.fa-subway:before{content:""}.fa-suitcase:before{content:""}.fa-suitcase-rolling:before{content:""}.fa-sun:before{content:""}.fa-superpowers:before{content:""}.fa-superscript:before{content:""}.fa-supple:before{content:""}.fa-surprise:before{content:""}.fa-suse:before{content:""}.fa-swatchbook:before{content:""}.fa-swift:before{content:""}.fa-swimmer:before{content:""}.fa-swimming-pool:before{content:""}.fa-symfony:before{content:""}.fa-synagogue:before{content:""}.fa-sync:before{content:""}.fa-sync-alt:before{content:""}.fa-syringe:before{content:""}.fa-table:before{content:""}.fa-table-tennis:before{content:""}.fa-tablet:before{content:""}.fa-tablet-alt:before{content:""}.fa-tablets:before{content:""}.fa-tachometer-alt:before{content:""}.fa-tag:before{content:""}.fa-tags:before{content:""}.fa-tape:before{content:""}.fa-tasks:before{content:""}.fa-taxi:before{content:""}.fa-teamspeak:before{content:""}.fa-teeth:before{content:""}.fa-teeth-open:before{content:""}.fa-telegram:before{content:""}.fa-telegram-plane:before{content:""}.fa-temperature-high:before{content:""}.fa-temperature-low:before{content:""}.fa-tencent-weibo:before{content:""}.fa-tenge:before{content:""}.fa-terminal:before{content:""}.fa-text-height:before{content:""}.fa-text-width:before{content:""}.fa-th:before{content:""}.fa-th-large:before{content:""}.fa-th-list:before{content:""}.fa-the-red-yeti:before{content:""}.fa-theater-masks:before{content:""}.fa-themeco:before{content:""}.fa-themeisle:before{content:""}.fa-thermometer:before{content:""}.fa-thermometer-empty:before{content:""}.fa-thermometer-full:before{content:""}.fa-thermometer-half:before{content:""}.fa-thermometer-quarter:before{content:""}.fa-thermometer-three-quarters:before{content:""}.fa-think-peaks:before{content:""}.fa-thumbs-down:before{content:""}.fa-thumbs-up:before{content:""}.fa-thumbtack:before{content:""}.fa-ticket-alt:before{content:""}.fa-tiktok:before{content:""}.fa-times:before{content:""}.fa-times-circle:before{content:""}.fa-tint:before{content:""}.fa-tint-slash:before{content:""}.fa-tired:before{content:""}.fa-toggle-off:before{content:""}.fa-toggle-on:before{content:""}.fa-toilet:before{content:""}.fa-toilet-paper:before{content:""}.fa-toilet-paper-slash:before{content:""}.fa-toolbox:before{content:""}.fa-tools:before{content:""}.fa-tooth:before{content:""}.fa-torah:before{content:""}.fa-torii-gate:before{content:""}.fa-tractor:before{content:""}.fa-trade-federation:before{content:""}.fa-trademark:before{content:""}.fa-traffic-light:before{content:""}.fa-trailer:before{content:""}.fa-train:before{content:""}.fa-tram:before{content:""}.fa-transgender:before{content:""}.fa-transgender-alt:before{content:""}.fa-trash:before{content:""}.fa-trash-alt:before{content:""}.fa-trash-restore:before{content:""}.fa-trash-restore-alt:before{content:""}.fa-tree:before{content:""}.fa-trello:before{content:""}.fa-trophy:before{content:""}.fa-truck:before{content:""}.fa-truck-loading:before{content:""}.fa-truck-monster:before{content:""}.fa-truck-moving:before{content:""}.fa-truck-pickup:before{content:""}.fa-tshirt:before{content:""}.fa-tty:before{content:""}.fa-tumblr:before{content:""}.fa-tumblr-square:before{content:""}.fa-tv:before{content:""}.fa-twitch:before{content:""}.fa-twitter:before{content:""}.fa-twitter-square:before{content:""}.fa-typo3:before{content:""}.fa-uber:before{content:""}.fa-ubuntu:before{content:""}.fa-uikit:before{content:""}.fa-umbraco:before{content:""}.fa-umbrella:before{content:""}.fa-umbrella-beach:before{content:""}.fa-uncharted:before{content:""}.fa-underline:before{content:""}.fa-undo:before{content:""}.fa-undo-alt:before{content:""}.fa-uniregistry:before{content:""}.fa-unity:before{content:""}.fa-universal-access:before{content:""}.fa-university:before{content:""}.fa-unlink:before{content:""}.fa-unlock:before{content:""}.fa-unlock-alt:before{content:""}.fa-unsplash:before{content:""}.fa-untappd:before{content:""}.fa-upload:before{content:""}.fa-ups:before{content:""}.fa-usb:before{content:""}.fa-user:before{content:""}.fa-user-alt:before{content:""}.fa-user-alt-slash:before{content:""}.fa-user-astronaut:before{content:""}.fa-user-check:before{content:""}.fa-user-circle:before{content:""}.fa-user-clock:before{content:""}.fa-user-cog:before{content:""}.fa-user-edit:before{content:""}.fa-user-friends:before{content:""}.fa-user-graduate:before{content:""}.fa-user-injured:before{content:""}.fa-user-lock:before{content:""}.fa-user-md:before{content:""}.fa-user-minus:before{content:""}.fa-user-ninja:before{content:""}.fa-user-nurse:before{content:""}.fa-user-plus:before{content:""}.fa-user-secret:before{content:""}.fa-user-shield:before{content:""}.fa-user-slash:before{content:""}.fa-user-tag:before{content:""}.fa-user-tie:before{content:""}.fa-user-times:before{content:""}.fa-users:before{content:""}.fa-users-cog:before{content:""}.fa-users-slash:before{content:""}.fa-usps:before{content:""}.fa-ussunnah:before{content:""}.fa-utensil-spoon:before{content:""}.fa-utensils:before{content:""}.fa-vaadin:before{content:""}.fa-vector-square:before{content:""}.fa-venus:before{content:""}.fa-venus-double:before{content:""}.fa-venus-mars:before{content:""}.fa-vest:before{content:""}.fa-vest-patches:before{content:""}.fa-viacoin:before{content:""}.fa-viadeo:before{content:""}.fa-viadeo-square:before{content:""}.fa-vial:before{content:""}.fa-vials:before{content:""}.fa-viber:before{content:""}.fa-video:before{content:""}.fa-video-slash:before{content:""}.fa-vihara:before{content:""}.fa-vimeo:before{content:""}.fa-vimeo-square:before{content:""}.fa-vimeo-v:before{content:""}.fa-vine:before{content:""}.fa-virus:before{content:""}.fa-virus-slash:before{content:""}.fa-viruses:before{content:""}.fa-vk:before{content:""}.fa-vnv:before{content:""}.fa-voicemail:before{content:""}.fa-volleyball-ball:before{content:""}.fa-volume-down:before{content:""}.fa-volume-mute:before{content:""}.fa-volume-off:before{content:""}.fa-volume-up:before{content:""}.fa-vote-yea:before{content:""}.fa-vr-cardboard:before{content:""}.fa-vuejs:before{content:""}.fa-walking:before{content:""}.fa-wallet:before{content:""}.fa-warehouse:before{content:""}.fa-watchman-monitoring:before{content:""}.fa-water:before{content:""}.fa-wave-square:before{content:""}.fa-waze:before{content:""}.fa-weebly:before{content:""}.fa-weibo:before{content:""}.fa-weight:before{content:""}.fa-weight-hanging:before{content:""}.fa-weixin:before{content:""}.fa-whatsapp:before{content:""}.fa-whatsapp-square:before{content:""}.fa-wheelchair:before{content:""}.fa-whmcs:before{content:""}.fa-wifi:before{content:""}.fa-wikipedia-w:before{content:""}.fa-wind:before{content:""}.fa-window-close:before{content:""}.fa-window-maximize:before{content:""}.fa-window-minimize:before{content:""}.fa-window-restore:before{content:""}.fa-windows:before{content:""}.fa-wine-bottle:before{content:""}.fa-wine-glass:before{content:""}.fa-wine-glass-alt:before{content:""}.fa-wix:before{content:""}.fa-wizards-of-the-coast:before{content:""}.fa-wodu:before{content:""}.fa-wolf-pack-battalion:before{content:""}.fa-won-sign:before{content:""}.fa-wordpress:before{content:""}.fa-wordpress-simple:before{content:""}.fa-wpbeginner:before{content:""}.fa-wpexplorer:before{content:""}.fa-wpforms:before{content:""}.fa-wpressr:before{content:""}.fa-wrench:before{content:""}.fa-x-ray:before{content:""}.fa-xbox:before{content:""}.fa-xing:before{content:""}.fa-xing-square:before{content:""}.fa-y-combinator:before{content:""}.fa-yahoo:before{content:""}.fa-yammer:before{content:""}.fa-yandex:before{content:""}.fa-yandex-international:before{content:""}.fa-yarn:before{content:""}.fa-yelp:before{content:""}.fa-yen-sign:before{content:""}.fa-yin-yang:before{content:""}.fa-yoast:before{content:""}.fa-youtube:before{content:""}.fa-youtube-square:before{content:""}.fa-zhihu:before{content:""}.sr-only{border:0;clip:rect(0,0,0,0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.sr-only-focusable:active,.sr-only-focusable:focus{clip:auto;height:auto;margin:0;overflow:visible;position:static;width:auto}@font-face{font-family:"Font Awesome 5 Brands";font-style:normal;font-weight:400;font-display:block;src:url(/assets/fa-brands-400-DnkPfk3o.eot);src:url(/assets/fa-brands-400-DnkPfk3o.eot?#iefix) format("embedded-opentype"),url(/assets/fa-brands-400-UxlILjvJ.woff2) format("woff2"),url(/assets/fa-brands-400-CEJbCg16.woff) format("woff"),url(/assets/fa-brands-400-CSYNqBb_.ttf) format("truetype"),url(/assets/fa-brands-400-cH1MgKbP.svg#fontawesome) format("svg")}.fab{font-family:"Font Awesome 5 Brands";font-weight:400}@font-face{font-family:"Font Awesome 5 Free";font-style:normal;font-weight:400;font-display:block;src:url(/assets/fa-regular-400-BhTwtT8w.eot);src:url(/assets/fa-regular-400-BhTwtT8w.eot?#iefix) format("embedded-opentype"),url(/assets/fa-regular-400-DGzu1beS.woff2) format("woff2"),url(/assets/fa-regular-400-DFnMcJPd.woff) format("woff"),url(/assets/fa-regular-400-D1vz6WBx.ttf) format("truetype"),url(/assets/fa-regular-400-gwj8Pxq-.svg#fontawesome) format("svg")}.far{font-family:"Font Awesome 5 Free";font-weight:400}@font-face{font-family:"Font Awesome 5 Free";font-style:normal;font-weight:900;font-display:block;src:url(/assets/fa-solid-900-B6Axprfb.eot);src:url(/assets/fa-solid-900-B6Axprfb.eot?#iefix) format("embedded-opentype"),url(/assets/fa-solid-900-BUswJgRo.woff2) format("woff2"),url(/assets/fa-solid-900-DOXgCApm.woff) format("woff"),url(/assets/fa-solid-900-mxuxnBEa.ttf) format("truetype"),url(/assets/fa-solid-900-B4ZZ7kfP.svg#fontawesome) format("svg")}.fa,.fas{font-family:"Font Awesome 5 Free";font-weight:900}/*! + * Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com + * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) + */.fa.fa-glass:before{content:""}.fa.fa-meetup{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-star-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-star-o:before{content:""}.fa.fa-remove:before{content:""}.fa.fa-close:before{content:""}.fa.fa-gear:before{content:""}.fa.fa-trash-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-trash-o:before{content:""}.fa.fa-file-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-file-o:before{content:""}.fa.fa-clock-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-clock-o:before{content:""}.fa.fa-arrow-circle-o-down{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-arrow-circle-o-down:before{content:""}.fa.fa-arrow-circle-o-up{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-arrow-circle-o-up:before{content:""}.fa.fa-play-circle-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-play-circle-o:before{content:""}.fa.fa-repeat:before{content:""}.fa.fa-rotate-right:before{content:""}.fa.fa-refresh:before{content:""}.fa.fa-list-alt{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-dedent:before{content:""}.fa.fa-video-camera:before{content:""}.fa.fa-picture-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-picture-o:before{content:""}.fa.fa-photo{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-photo:before{content:""}.fa.fa-image{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-image:before{content:""}.fa.fa-pencil:before{content:""}.fa.fa-map-marker:before{content:""}.fa.fa-pencil-square-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-pencil-square-o:before{content:""}.fa.fa-share-square-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-share-square-o:before{content:""}.fa.fa-check-square-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-check-square-o:before{content:""}.fa.fa-arrows:before{content:""}.fa.fa-times-circle-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-times-circle-o:before{content:""}.fa.fa-check-circle-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-check-circle-o:before{content:""}.fa.fa-mail-forward:before{content:""}.fa.fa-expand:before{content:""}.fa.fa-compress:before{content:""}.fa.fa-eye,.fa.fa-eye-slash{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-warning:before{content:""}.fa.fa-calendar:before{content:""}.fa.fa-arrows-v:before{content:""}.fa.fa-arrows-h:before{content:""}.fa.fa-bar-chart{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-bar-chart:before{content:""}.fa.fa-bar-chart-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-bar-chart-o:before{content:""}.fa.fa-twitter-square,.fa.fa-facebook-square{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-gears:before{content:""}.fa.fa-thumbs-o-up{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-thumbs-o-up:before{content:""}.fa.fa-thumbs-o-down{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-thumbs-o-down:before{content:""}.fa.fa-heart-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-heart-o:before{content:""}.fa.fa-sign-out:before{content:""}.fa.fa-linkedin-square{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-linkedin-square:before{content:""}.fa.fa-thumb-tack:before{content:""}.fa.fa-external-link:before{content:""}.fa.fa-sign-in:before{content:""}.fa.fa-github-square{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-lemon-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-lemon-o:before{content:""}.fa.fa-square-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-square-o:before{content:""}.fa.fa-bookmark-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-bookmark-o:before{content:""}.fa.fa-twitter,.fa.fa-facebook{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-facebook:before{content:""}.fa.fa-facebook-f{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-facebook-f:before{content:""}.fa.fa-github{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-credit-card{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-feed:before{content:""}.fa.fa-hdd-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-hdd-o:before{content:""}.fa.fa-hand-o-right{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-hand-o-right:before{content:""}.fa.fa-hand-o-left{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-hand-o-left:before{content:""}.fa.fa-hand-o-up{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-hand-o-up:before{content:""}.fa.fa-hand-o-down{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-hand-o-down:before{content:""}.fa.fa-arrows-alt:before{content:""}.fa.fa-group:before{content:""}.fa.fa-chain:before{content:""}.fa.fa-scissors:before{content:""}.fa.fa-files-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-files-o:before{content:""}.fa.fa-floppy-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-floppy-o:before{content:""}.fa.fa-navicon:before{content:""}.fa.fa-reorder:before{content:""}.fa.fa-pinterest,.fa.fa-pinterest-square,.fa.fa-google-plus-square,.fa.fa-google-plus{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-google-plus:before{content:""}.fa.fa-money{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-money:before{content:""}.fa.fa-unsorted:before{content:""}.fa.fa-sort-desc:before{content:""}.fa.fa-sort-asc:before{content:""}.fa.fa-linkedin{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-linkedin:before{content:""}.fa.fa-rotate-left:before{content:""}.fa.fa-legal:before{content:""}.fa.fa-tachometer:before{content:""}.fa.fa-dashboard:before{content:""}.fa.fa-comment-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-comment-o:before{content:""}.fa.fa-comments-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-comments-o:before{content:""}.fa.fa-flash:before{content:""}.fa.fa-clipboard,.fa.fa-paste{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-paste:before{content:""}.fa.fa-lightbulb-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-lightbulb-o:before{content:""}.fa.fa-exchange:before{content:""}.fa.fa-cloud-download:before{content:""}.fa.fa-cloud-upload:before{content:""}.fa.fa-bell-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-bell-o:before{content:""}.fa.fa-cutlery:before{content:""}.fa.fa-file-text-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-file-text-o:before{content:""}.fa.fa-building-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-building-o:before{content:""}.fa.fa-hospital-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-hospital-o:before{content:""}.fa.fa-tablet:before{content:""}.fa.fa-mobile:before{content:""}.fa.fa-mobile-phone:before{content:""}.fa.fa-circle-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-circle-o:before{content:""}.fa.fa-mail-reply:before{content:""}.fa.fa-github-alt{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-folder-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-folder-o:before{content:""}.fa.fa-folder-open-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-folder-open-o:before{content:""}.fa.fa-smile-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-smile-o:before{content:""}.fa.fa-frown-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-frown-o:before{content:""}.fa.fa-meh-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-meh-o:before{content:""}.fa.fa-keyboard-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-keyboard-o:before{content:""}.fa.fa-flag-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-flag-o:before{content:""}.fa.fa-mail-reply-all:before{content:""}.fa.fa-star-half-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-star-half-o:before{content:""}.fa.fa-star-half-empty{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-star-half-empty:before{content:""}.fa.fa-star-half-full{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-star-half-full:before{content:""}.fa.fa-code-fork:before{content:""}.fa.fa-chain-broken:before{content:""}.fa.fa-shield:before{content:""}.fa.fa-calendar-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-calendar-o:before{content:""}.fa.fa-maxcdn,.fa.fa-html5,.fa.fa-css3{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-ticket:before{content:""}.fa.fa-minus-square-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-minus-square-o:before{content:""}.fa.fa-level-up:before{content:""}.fa.fa-level-down:before{content:""}.fa.fa-pencil-square:before{content:""}.fa.fa-external-link-square:before{content:""}.fa.fa-compass,.fa.fa-caret-square-o-down{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-caret-square-o-down:before{content:""}.fa.fa-toggle-down{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-toggle-down:before{content:""}.fa.fa-caret-square-o-up{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-caret-square-o-up:before{content:""}.fa.fa-toggle-up{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-toggle-up:before{content:""}.fa.fa-caret-square-o-right{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-caret-square-o-right:before{content:""}.fa.fa-toggle-right{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-toggle-right:before{content:""}.fa.fa-eur:before{content:""}.fa.fa-euro:before{content:""}.fa.fa-gbp:before{content:""}.fa.fa-usd:before{content:""}.fa.fa-dollar:before{content:""}.fa.fa-inr:before{content:""}.fa.fa-rupee:before{content:""}.fa.fa-jpy:before{content:""}.fa.fa-cny:before{content:""}.fa.fa-rmb:before{content:""}.fa.fa-yen:before{content:""}.fa.fa-rub:before{content:""}.fa.fa-ruble:before{content:""}.fa.fa-rouble:before{content:""}.fa.fa-krw:before{content:""}.fa.fa-won:before{content:""}.fa.fa-btc,.fa.fa-bitcoin{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-bitcoin:before{content:""}.fa.fa-file-text:before{content:""}.fa.fa-sort-alpha-asc:before{content:""}.fa.fa-sort-alpha-desc:before{content:""}.fa.fa-sort-amount-asc:before{content:""}.fa.fa-sort-amount-desc:before{content:""}.fa.fa-sort-numeric-asc:before{content:""}.fa.fa-sort-numeric-desc:before{content:""}.fa.fa-youtube-square,.fa.fa-youtube,.fa.fa-xing,.fa.fa-xing-square,.fa.fa-youtube-play{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-youtube-play:before{content:""}.fa.fa-dropbox,.fa.fa-stack-overflow,.fa.fa-instagram,.fa.fa-flickr,.fa.fa-adn,.fa.fa-bitbucket,.fa.fa-bitbucket-square{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-bitbucket-square:before{content:""}.fa.fa-tumblr,.fa.fa-tumblr-square{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-long-arrow-down:before{content:""}.fa.fa-long-arrow-up:before{content:""}.fa.fa-long-arrow-left:before{content:""}.fa.fa-long-arrow-right:before{content:""}.fa.fa-apple,.fa.fa-windows,.fa.fa-android,.fa.fa-linux,.fa.fa-dribbble,.fa.fa-skype,.fa.fa-foursquare,.fa.fa-trello,.fa.fa-gratipay,.fa.fa-gittip{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-gittip:before{content:""}.fa.fa-sun-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-sun-o:before{content:""}.fa.fa-moon-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-moon-o:before{content:""}.fa.fa-vk,.fa.fa-weibo,.fa.fa-renren,.fa.fa-pagelines,.fa.fa-stack-exchange{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-arrow-circle-o-right{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-arrow-circle-o-right:before{content:""}.fa.fa-arrow-circle-o-left{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-arrow-circle-o-left:before{content:""}.fa.fa-caret-square-o-left{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-caret-square-o-left:before{content:""}.fa.fa-toggle-left{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-toggle-left:before{content:""}.fa.fa-dot-circle-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-dot-circle-o:before{content:""}.fa.fa-vimeo-square{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-try:before{content:""}.fa.fa-turkish-lira:before{content:""}.fa.fa-plus-square-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-plus-square-o:before{content:""}.fa.fa-slack,.fa.fa-wordpress,.fa.fa-openid{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-institution:before{content:""}.fa.fa-bank:before{content:""}.fa.fa-mortar-board:before{content:""}.fa.fa-yahoo,.fa.fa-google,.fa.fa-reddit,.fa.fa-reddit-square,.fa.fa-stumbleupon-circle,.fa.fa-stumbleupon,.fa.fa-delicious,.fa.fa-digg,.fa.fa-pied-piper-pp,.fa.fa-pied-piper-alt,.fa.fa-drupal,.fa.fa-joomla{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-spoon:before{content:""}.fa.fa-behance,.fa.fa-behance-square,.fa.fa-steam,.fa.fa-steam-square{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-automobile:before{content:""}.fa.fa-envelope-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-envelope-o:before{content:""}.fa.fa-spotify,.fa.fa-deviantart,.fa.fa-soundcloud{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-file-pdf-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-file-pdf-o:before{content:""}.fa.fa-file-word-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-file-word-o:before{content:""}.fa.fa-file-excel-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-file-excel-o:before{content:""}.fa.fa-file-powerpoint-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-file-powerpoint-o:before{content:""}.fa.fa-file-image-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-file-image-o:before{content:""}.fa.fa-file-photo-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-file-photo-o:before{content:""}.fa.fa-file-picture-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-file-picture-o:before{content:""}.fa.fa-file-archive-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-file-archive-o:before{content:""}.fa.fa-file-zip-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-file-zip-o:before{content:""}.fa.fa-file-audio-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-file-audio-o:before{content:""}.fa.fa-file-sound-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-file-sound-o:before{content:""}.fa.fa-file-video-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-file-video-o:before{content:""}.fa.fa-file-movie-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-file-movie-o:before{content:""}.fa.fa-file-code-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-file-code-o:before{content:""}.fa.fa-vine,.fa.fa-codepen,.fa.fa-jsfiddle{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-life-ring,.fa.fa-life-bouy{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-life-bouy:before{content:""}.fa.fa-life-buoy{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-life-buoy:before{content:""}.fa.fa-life-saver{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-life-saver:before{content:""}.fa.fa-support{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-support:before{content:""}.fa.fa-circle-o-notch:before{content:""}.fa.fa-rebel,.fa.fa-ra{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-ra:before{content:""}.fa.fa-resistance{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-resistance:before{content:""}.fa.fa-empire,.fa.fa-ge{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-ge:before{content:""}.fa.fa-git-square,.fa.fa-git,.fa.fa-hacker-news,.fa.fa-y-combinator-square{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-y-combinator-square:before{content:""}.fa.fa-yc-square{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-yc-square:before{content:""}.fa.fa-tencent-weibo,.fa.fa-qq,.fa.fa-weixin,.fa.fa-wechat{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-wechat:before{content:""}.fa.fa-send:before{content:""}.fa.fa-paper-plane-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-paper-plane-o:before{content:""}.fa.fa-send-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-send-o:before{content:""}.fa.fa-circle-thin{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-circle-thin:before{content:""}.fa.fa-header:before{content:""}.fa.fa-sliders:before{content:""}.fa.fa-futbol-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-futbol-o:before{content:""}.fa.fa-soccer-ball-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-soccer-ball-o:before{content:""}.fa.fa-slideshare,.fa.fa-twitch,.fa.fa-yelp{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-newspaper-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-newspaper-o:before{content:""}.fa.fa-paypal,.fa.fa-google-wallet,.fa.fa-cc-visa,.fa.fa-cc-mastercard,.fa.fa-cc-discover,.fa.fa-cc-amex,.fa.fa-cc-paypal,.fa.fa-cc-stripe{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-bell-slash-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-bell-slash-o:before{content:""}.fa.fa-trash:before{content:""}.fa.fa-copyright{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-eyedropper:before{content:""}.fa.fa-area-chart:before{content:""}.fa.fa-pie-chart:before{content:""}.fa.fa-line-chart:before{content:""}.fa.fa-lastfm,.fa.fa-lastfm-square,.fa.fa-ioxhost,.fa.fa-angellist{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-cc{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-cc:before{content:""}.fa.fa-ils:before{content:""}.fa.fa-shekel:before{content:""}.fa.fa-sheqel:before{content:""}.fa.fa-meanpath{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-meanpath:before{content:""}.fa.fa-buysellads,.fa.fa-connectdevelop,.fa.fa-dashcube,.fa.fa-forumbee,.fa.fa-leanpub,.fa.fa-sellsy,.fa.fa-shirtsinbulk,.fa.fa-simplybuilt,.fa.fa-skyatlas{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-diamond{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-diamond:before{content:""}.fa.fa-intersex:before{content:""}.fa.fa-facebook-official{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-facebook-official:before{content:""}.fa.fa-pinterest-p,.fa.fa-whatsapp{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-hotel:before{content:""}.fa.fa-viacoin,.fa.fa-medium,.fa.fa-y-combinator,.fa.fa-yc{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-yc:before{content:""}.fa.fa-optin-monster,.fa.fa-opencart,.fa.fa-expeditedssl{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-battery-4:before{content:""}.fa.fa-battery:before{content:""}.fa.fa-battery-3:before{content:""}.fa.fa-battery-2:before{content:""}.fa.fa-battery-1:before{content:""}.fa.fa-battery-0:before{content:""}.fa.fa-object-group,.fa.fa-object-ungroup,.fa.fa-sticky-note-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-sticky-note-o:before{content:""}.fa.fa-cc-jcb,.fa.fa-cc-diners-club{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-clone,.fa.fa-hourglass-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-hourglass-o:before{content:""}.fa.fa-hourglass-1:before{content:""}.fa.fa-hourglass-2:before{content:""}.fa.fa-hourglass-3:before{content:""}.fa.fa-hand-rock-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-hand-rock-o:before{content:""}.fa.fa-hand-grab-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-hand-grab-o:before{content:""}.fa.fa-hand-paper-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-hand-paper-o:before{content:""}.fa.fa-hand-stop-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-hand-stop-o:before{content:""}.fa.fa-hand-scissors-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-hand-scissors-o:before{content:""}.fa.fa-hand-lizard-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-hand-lizard-o:before{content:""}.fa.fa-hand-spock-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-hand-spock-o:before{content:""}.fa.fa-hand-pointer-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-hand-pointer-o:before{content:""}.fa.fa-hand-peace-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-hand-peace-o:before{content:""}.fa.fa-registered{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-creative-commons,.fa.fa-gg,.fa.fa-gg-circle,.fa.fa-tripadvisor,.fa.fa-odnoklassniki,.fa.fa-odnoklassniki-square,.fa.fa-get-pocket,.fa.fa-wikipedia-w,.fa.fa-safari,.fa.fa-chrome,.fa.fa-firefox,.fa.fa-opera,.fa.fa-internet-explorer{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-television:before{content:""}.fa.fa-contao,.fa.fa-500px,.fa.fa-amazon{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-calendar-plus-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-calendar-plus-o:before{content:""}.fa.fa-calendar-minus-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-calendar-minus-o:before{content:""}.fa.fa-calendar-times-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-calendar-times-o:before{content:""}.fa.fa-calendar-check-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-calendar-check-o:before{content:""}.fa.fa-map-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-map-o:before{content:""}.fa.fa-commenting:before{content:""}.fa.fa-commenting-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-commenting-o:before{content:""}.fa.fa-houzz,.fa.fa-vimeo{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-vimeo:before{content:""}.fa.fa-black-tie,.fa.fa-fonticons,.fa.fa-reddit-alien,.fa.fa-edge{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-credit-card-alt:before{content:""}.fa.fa-codiepie,.fa.fa-modx,.fa.fa-fort-awesome,.fa.fa-usb,.fa.fa-product-hunt,.fa.fa-mixcloud,.fa.fa-scribd{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-pause-circle-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-pause-circle-o:before{content:""}.fa.fa-stop-circle-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-stop-circle-o:before{content:""}.fa.fa-bluetooth,.fa.fa-bluetooth-b,.fa.fa-gitlab,.fa.fa-wpbeginner,.fa.fa-wpforms,.fa.fa-envira,.fa.fa-wheelchair-alt{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-wheelchair-alt:before{content:""}.fa.fa-question-circle-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-question-circle-o:before{content:""}.fa.fa-volume-control-phone:before{content:""}.fa.fa-asl-interpreting:before{content:""}.fa.fa-deafness:before{content:""}.fa.fa-hard-of-hearing:before{content:""}.fa.fa-glide,.fa.fa-glide-g{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-signing:before{content:""}.fa.fa-viadeo,.fa.fa-viadeo-square,.fa.fa-snapchat,.fa.fa-snapchat-ghost,.fa.fa-snapchat-square,.fa.fa-pied-piper,.fa.fa-first-order,.fa.fa-yoast,.fa.fa-themeisle,.fa.fa-google-plus-official{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-google-plus-official:before{content:""}.fa.fa-google-plus-circle{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-google-plus-circle:before{content:""}.fa.fa-font-awesome,.fa.fa-fa{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-fa:before{content:""}.fa.fa-handshake-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-handshake-o:before{content:""}.fa.fa-envelope-open-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-envelope-open-o:before{content:""}.fa.fa-linode{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-address-book-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-address-book-o:before{content:""}.fa.fa-vcard:before{content:""}.fa.fa-address-card-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-address-card-o:before{content:""}.fa.fa-vcard-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-vcard-o:before{content:""}.fa.fa-user-circle-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-user-circle-o:before{content:""}.fa.fa-user-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-user-o:before{content:""}.fa.fa-id-badge{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-drivers-license:before{content:""}.fa.fa-id-card-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-id-card-o:before{content:""}.fa.fa-drivers-license-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-drivers-license-o:before{content:""}.fa.fa-quora,.fa.fa-free-code-camp,.fa.fa-telegram{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-thermometer-4:before{content:""}.fa.fa-thermometer:before{content:""}.fa.fa-thermometer-3:before{content:""}.fa.fa-thermometer-2:before{content:""}.fa.fa-thermometer-1:before{content:""}.fa.fa-thermometer-0:before{content:""}.fa.fa-bathtub:before{content:""}.fa.fa-s15:before{content:""}.fa.fa-window-maximize,.fa.fa-window-restore{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-times-rectangle:before{content:""}.fa.fa-window-close-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-window-close-o:before{content:""}.fa.fa-times-rectangle-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-times-rectangle-o:before{content:""}.fa.fa-bandcamp,.fa.fa-grav,.fa.fa-etsy,.fa.fa-imdb,.fa.fa-ravelry,.fa.fa-eercast{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-eercast:before{content:""}.fa.fa-snowflake-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-snowflake-o:before{content:""}.fa.fa-superpowers,.fa.fa-wpexplorer{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-cab:before{content:""}pre.language-mermaid{background:none}img:focus,a:focus,nav:focus,button:focus{outline:thin dotted}img{max-width:100%}html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn,em,img,ins,kbd,q,s,samp,small,strike,strong,sub,sup,tt,var,b,u,i,center,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td,article,aside,canvas,details,embed,figure,figcaption,footer,header,hgroup,menu,nav,output,ruby,section,summary,time,mark,audio,video{margin:0;padding:0;border:0;font-size:100%;font:inherit;vertical-align:baseline}article,aside,details,figcaption,figure,footer,header,hgroup,menu,nav,section{display:block}body{line-height:1}ol,ul{list-style:none}blockquote,q{quotes:none}blockquote:before,blockquote:after,q:before,q:after{content:"";content:none}blockquote>p,q>p{margin:0}table{border-collapse:collapse;border-spacing:0}body{-webkit-text-size-adjust:none}mark{background-color:transparent;color:inherit}input::-moz-focus-inner{border:0;padding:0}input,select,textarea{-moz-appearance:none;-webkit-appearance:none;-ms-appearance:none;appearance:none}@-ms-viewport{width:device-width}body{-ms-overflow-style:scrollbar}@media screen and (max-width: 480px){html,body{min-width:320px}}html{box-sizing:border-box}*,*:before,*:after{box-sizing:inherit}body{background-color:#2e3141;background-image:linear-gradient(to top,#2e3141cc,#2e3141cc),url(/images/bg.jpg);background-size:auto,cover;background-attachment:fixed,fixed;background-position:center,center}body.is-preload *,body.is-preload *:before,body.is-preload *:after{-moz-animation:none!important;-webkit-animation:none!important;-ms-animation:none!important;animation:none!important;-moz-transition:none!important;-webkit-transition:none!important;-ms-transition:none!important;transition:none!important}body,input,select,textarea{color:#fdfdfd;font-family:Source Sans Pro,Helvetica,sans-serif;font-size:16.5pt;font-weight:300;line-height:1.65}@media screen and (max-width: 1680px){body,input,select,textarea{font-size:14pt}}@media screen and (max-width: 1280px){body,input,select,textarea{font-size:14pt}}@media screen and (max-width: 980px){body,input,select,textarea{font-size:13pt}}@media screen and (max-width: 736px){body,input,select,textarea{font-size:13pt}}@media screen and (max-width: 480px){body,input,select,textarea{font-size:12pt}}a{-moz-transition:color .2s ease-in-out,border-bottom-color .2s ease-in-out;-webkit-transition:color .2s ease-in-out,border-bottom-color .2s ease-in-out;-ms-transition:color .2s ease-in-out,border-bottom-color .2s ease-in-out;transition:color .2s ease-in-out,border-bottom-color .2s ease-in-out;border-bottom:dotted 1px rgba(255,255,255,.35);color:#fdfdfd;text-decoration:none}a:hover{border-bottom-color:transparent;color:#fdfdfd!important}a.special:not(.button){text-decoration:none;border-bottom:0;display:block;font-family:Raleway,Helvetica,sans-serif;font-size:.8em;font-weight:700;letter-spacing:.1em;margin:0 0 2em;text-transform:uppercase}a.special:not(.button):before{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;display:inline-block;font-style:normal;font-variant:normal;text-rendering:auto;line-height:1;text-transform:none!important;font-family:"Font Awesome 5 Free";font-weight:900}a.special:not(.button):before{-moz-transition:background-color .2s ease-in-out;-webkit-transition:background-color .2s ease-in-out;-ms-transition:background-color .2s ease-in-out;transition:background-color .2s ease-in-out;border-radius:100%;border:solid 2px rgba(255,255,255,.125);content:"";display:inline-block;font-size:1.25em;height:2em;line-height:1.75em;margin-right:.85em;text-align:center;text-indent:.15em;vertical-align:middle;width:2em}a.special:not(.button):hover:before{background-color:#ffffff06}a.special:not(.button):active:before{background-color:#ffffff13}strong,b{color:#fdfdfd;font-weight:600}em,i{font-style:italic}p{margin:0 0 1.2em}h1,h2,h3,h4,h5,h6{color:#fdfdfd;font-family:Raleway,Helvetica,sans-serif;font-weight:700;letter-spacing:.1em;margin:0 0 1em;text-transform:uppercase}h1 a,h2 a,h3 a,h4 a,h5 a,h6 a{color:inherit;text-decoration:none;border-bottom:0}h1 span,h2 span,h3 span,h4 span,h5 span,h6 span{font-weight:200}h1.major,h2.major,h3.major,h4.major,h5.major,h6.major{padding-bottom:1em;border-bottom:solid 2px rgba(255,255,255,.125)}h2{font-size:1.2em}h3{font-size:.9em}h4,h5,h6{font-size:.7em}@media screen and (max-width: 736px){h2{font-size:1em}h3{font-size:.8em}}sub{font-size:.8em;position:relative;top:.5em}sup{font-size:.8em;position:relative;top:-.5em}blockquote{border-left:solid 4px rgba(255,255,255,.125);font-style:italic;margin:0 0 2em;padding:.5em 0 .5em 2em}hr{border:0;border-bottom:solid 2px rgba(255,255,255,.125);margin:2.5em 0}hr.major{margin:4em 0}.align-left{text-align:left}.align-center{text-align:center}.align-right{text-align:right}code{background:#ffffff06;border-radius:4px;border:0;font-family:Courier New,monospace;font-size:.9em;margin:0 .25em;padding:.2em .4em;color:#ffe3c5}pre{-webkit-overflow-scrolling:touch;font-family:Courier New,monospace;font-size:.9em;margin-bottom:1rem;border-radius:.3rem}pre code{display:block;line-height:1.75em;padding:0;overflow-x:auto;margin:0;padding:.5rem}li>a>code,h1>code,h2>code,h3>code,h4>code,h5>code,h6>code{padding:0;margin:0;background:initial;font-size:inherit}.row{display:flex;flex-wrap:wrap;box-sizing:border-box;align-items:stretch}.row>*{box-sizing:border-box}.row.gtr-uniform>*>:last-child{margin-bottom:0}.row.aln-left{justify-content:flex-start}.row.aln-center{justify-content:center}.row.aln-right{justify-content:flex-end}.row.aln-top{align-items:flex-start}.row.aln-middle{align-items:center}.row.aln-bottom{align-items:flex-end}.row>.imp{order:-1}.row>.col-1{width:8.3333333333%}.row>.off-1{margin-left:8.3333333333%}.row>.col-2{width:16.6666666667%}.row>.off-2{margin-left:16.6666666667%}.row>.col-3{width:25%}.row>.off-3{margin-left:25%}.row>.col-4{width:33.3333333333%}.row>.off-4{margin-left:33.3333333333%}.row>.col-5{width:41.6666666667%}.row>.off-5{margin-left:41.6666666667%}.row>.col-6{width:50%}.row>.off-6{margin-left:50%}.row>.col-7{width:58.3333333333%}.row>.off-7{margin-left:58.3333333333%}.row>.col-8{width:66.6666666667%}.row>.off-8{margin-left:66.6666666667%}.row>.col-9{width:75%}.row>.off-9{margin-left:75%}.row>.col-10{width:83.3333333333%}.row>.off-10{margin-left:83.3333333333%}.row>.col-11{width:91.6666666667%}.row>.off-11{margin-left:91.6666666667%}.row>.col-12{width:100%}.row>.off-12{margin-left:100%}.row.gtr-0{margin-top:0;margin-left:0}.row.gtr-0>*{padding:0}.row.gtr-0.gtr-uniform{margin-top:0}.row.gtr-0.gtr-uniform>*{padding-top:0}.row.gtr-25{margin-top:0;margin-left:-.4375em}.row.gtr-25>*{padding:0 0 0 .4375em}.row.gtr-25.gtr-uniform{margin-top:-.4375em}.row.gtr-25.gtr-uniform>*{padding-top:.4375em}.row.gtr-50{margin-top:0;margin-left:-.875em}.row.gtr-50>*{padding:0 0 0 .875em}.row.gtr-50.gtr-uniform{margin-top:-.875em}.row.gtr-50.gtr-uniform>*{padding-top:.875em}.row{margin-top:0;margin-left:-1.75em}.row>*{padding:0 0 0 1.75em}.row.gtr-uniform{margin-top:-1.75em}.row.gtr-uniform>*{padding-top:1.75em}.row.gtr-150{margin-top:0;margin-left:-2.625em}.row.gtr-150>*{padding:0 0 0 2.625em}.row.gtr-150.gtr-uniform{margin-top:-2.625em}.row.gtr-150.gtr-uniform>*{padding-top:2.625em}.row.gtr-200{margin-top:0;margin-left:-3.5em}.row.gtr-200>*{padding:0 0 0 3.5em}.row.gtr-200.gtr-uniform{margin-top:-3.5em}.row.gtr-200.gtr-uniform>*{padding-top:3.5em}@media screen and (max-width: 1680px){.row{display:flex;flex-wrap:wrap;box-sizing:border-box;align-items:stretch}.row>*{box-sizing:border-box}.row.gtr-uniform>*>:last-child{margin-bottom:0}.row.aln-left{justify-content:flex-start}.row.aln-center{justify-content:center}.row.aln-right{justify-content:flex-end}.row.aln-top{align-items:flex-start}.row.aln-middle{align-items:center}.row.aln-bottom{align-items:flex-end}.row>.imp-xlarge{order:-1}.row>.col-1-xlarge{width:8.3333333333%}.row>.off-1-xlarge{margin-left:8.3333333333%}.row>.col-2-xlarge{width:16.6666666667%}.row>.off-2-xlarge{margin-left:16.6666666667%}.row>.col-3-xlarge{width:25%}.row>.off-3-xlarge{margin-left:25%}.row>.col-4-xlarge{width:33.3333333333%}.row>.off-4-xlarge{margin-left:33.3333333333%}.row>.col-5-xlarge{width:41.6666666667%}.row>.off-5-xlarge{margin-left:41.6666666667%}.row>.col-6-xlarge{width:50%}.row>.off-6-xlarge{margin-left:50%}.row>.col-7-xlarge{width:58.3333333333%}.row>.off-7-xlarge{margin-left:58.3333333333%}.row>.col-8-xlarge{width:66.6666666667%}.row>.off-8-xlarge{margin-left:66.6666666667%}.row>.col-9-xlarge{width:75%}.row>.off-9-xlarge{margin-left:75%}.row>.col-10-xlarge{width:83.3333333333%}.row>.off-10-xlarge{margin-left:83.3333333333%}.row>.col-11-xlarge{width:91.6666666667%}.row>.off-11-xlarge{margin-left:91.6666666667%}.row>.col-12-xlarge{width:100%}.row>.off-12-xlarge{margin-left:100%}.row.gtr-0{margin-top:0;margin-left:0}.row.gtr-0>*{padding:0}.row.gtr-0.gtr-uniform{margin-top:0}.row.gtr-0.gtr-uniform>*{padding-top:0}.row.gtr-25{margin-top:0;margin-left:-.4375em}.row.gtr-25>*{padding:0 0 0 .4375em}.row.gtr-25.gtr-uniform{margin-top:-.4375em}.row.gtr-25.gtr-uniform>*{padding-top:.4375em}.row.gtr-50{margin-top:0;margin-left:-.875em}.row.gtr-50>*{padding:0 0 0 .875em}.row.gtr-50.gtr-uniform{margin-top:-.875em}.row.gtr-50.gtr-uniform>*{padding-top:.875em}.row{margin-top:0;margin-left:-1.75em}.row>*{padding:0 0 0 1.75em}.row.gtr-uniform{margin-top:-1.75em}.row.gtr-uniform>*{padding-top:1.75em}.row.gtr-150{margin-top:0;margin-left:-2.625em}.row.gtr-150>*{padding:0 0 0 2.625em}.row.gtr-150.gtr-uniform{margin-top:-2.625em}.row.gtr-150.gtr-uniform>*{padding-top:2.625em}.row.gtr-200{margin-top:0;margin-left:-3.5em}.row.gtr-200>*{padding:0 0 0 3.5em}.row.gtr-200.gtr-uniform{margin-top:-3.5em}.row.gtr-200.gtr-uniform>*{padding-top:3.5em}}@media screen and (max-width: 1280px){.row{display:flex;flex-wrap:wrap;box-sizing:border-box;align-items:stretch}.row>*{box-sizing:border-box}.row.gtr-uniform>*>:last-child{margin-bottom:0}.row.aln-left{justify-content:flex-start}.row.aln-center{justify-content:center}.row.aln-right{justify-content:flex-end}.row.aln-top{align-items:flex-start}.row.aln-middle{align-items:center}.row.aln-bottom{align-items:flex-end}.row>.imp-large{order:-1}.row>.col-1-large{width:8.3333333333%}.row>.off-1-large{margin-left:8.3333333333%}.row>.col-2-large{width:16.6666666667%}.row>.off-2-large{margin-left:16.6666666667%}.row>.col-3-large{width:25%}.row>.off-3-large{margin-left:25%}.row>.col-4-large{width:33.3333333333%}.row>.off-4-large{margin-left:33.3333333333%}.row>.col-5-large{width:41.6666666667%}.row>.off-5-large{margin-left:41.6666666667%}.row>.col-6-large{width:50%}.row>.off-6-large{margin-left:50%}.row>.col-7-large{width:58.3333333333%}.row>.off-7-large{margin-left:58.3333333333%}.row>.col-8-large{width:66.6666666667%}.row>.off-8-large{margin-left:66.6666666667%}.row>.col-9-large{width:75%}.row>.off-9-large{margin-left:75%}.row>.col-10-large{width:83.3333333333%}.row>.off-10-large{margin-left:83.3333333333%}.row>.col-11-large{width:91.6666666667%}.row>.off-11-large{margin-left:91.6666666667%}.row>.col-12-large{width:100%}.row>.off-12-large{margin-left:100%}.row.gtr-0{margin-top:0;margin-left:0}.row.gtr-0>*{padding:0}.row.gtr-0.gtr-uniform{margin-top:0}.row.gtr-0.gtr-uniform>*{padding-top:0}.row.gtr-25{margin-top:0;margin-left:-.4375em}.row.gtr-25>*{padding:0 0 0 .4375em}.row.gtr-25.gtr-uniform{margin-top:-.4375em}.row.gtr-25.gtr-uniform>*{padding-top:.4375em}.row.gtr-50{margin-top:0;margin-left:-.875em}.row.gtr-50>*{padding:0 0 0 .875em}.row.gtr-50.gtr-uniform{margin-top:-.875em}.row.gtr-50.gtr-uniform>*{padding-top:.875em}.row{margin-top:0;margin-left:-1.75em}.row>*{padding:0 0 0 1.75em}.row.gtr-uniform{margin-top:-1.75em}.row.gtr-uniform>*{padding-top:1.75em}.row.gtr-150{margin-top:0;margin-left:-2.625em}.row.gtr-150>*{padding:0 0 0 2.625em}.row.gtr-150.gtr-uniform{margin-top:-2.625em}.row.gtr-150.gtr-uniform>*{padding-top:2.625em}.row.gtr-200{margin-top:0;margin-left:-3.5em}.row.gtr-200>*{padding:0 0 0 3.5em}.row.gtr-200.gtr-uniform{margin-top:-3.5em}.row.gtr-200.gtr-uniform>*{padding-top:3.5em}}@media screen and (max-width: 980px){.row{display:flex;flex-wrap:wrap;box-sizing:border-box;align-items:stretch}.row>*{box-sizing:border-box}.row.gtr-uniform>*>:last-child{margin-bottom:0}.row.aln-left{justify-content:flex-start}.row.aln-center{justify-content:center}.row.aln-right{justify-content:flex-end}.row.aln-top{align-items:flex-start}.row.aln-middle{align-items:center}.row.aln-bottom{align-items:flex-end}.row>.imp-medium{order:-1}.row>.col-1-medium{width:8.3333333333%}.row>.off-1-medium{margin-left:8.3333333333%}.row>.col-2-medium{width:16.6666666667%}.row>.off-2-medium{margin-left:16.6666666667%}.row>.col-3-medium{width:25%}.row>.off-3-medium{margin-left:25%}.row>.col-4-medium{width:33.3333333333%}.row>.off-4-medium{margin-left:33.3333333333%}.row>.col-5-medium{width:41.6666666667%}.row>.off-5-medium{margin-left:41.6666666667%}.row>.col-6-medium{width:50%}.row>.off-6-medium{margin-left:50%}.row>.col-7-medium{width:58.3333333333%}.row>.off-7-medium{margin-left:58.3333333333%}.row>.col-8-medium{width:66.6666666667%}.row>.off-8-medium{margin-left:66.6666666667%}.row>.col-9-medium{width:75%}.row>.off-9-medium{margin-left:75%}.row>.col-10-medium{width:83.3333333333%}.row>.off-10-medium{margin-left:83.3333333333%}.row>.col-11-medium{width:91.6666666667%}.row>.off-11-medium{margin-left:91.6666666667%}.row>.col-12-medium{width:100%}.row>.off-12-medium{margin-left:100%}.row.gtr-0{margin-top:0;margin-left:0}.row.gtr-0>*{padding:0}.row.gtr-0.gtr-uniform{margin-top:0}.row.gtr-0.gtr-uniform>*{padding-top:0}.row.gtr-25{margin-top:0;margin-left:-.4375em}.row.gtr-25>*{padding:0 0 0 .4375em}.row.gtr-25.gtr-uniform{margin-top:-.4375em}.row.gtr-25.gtr-uniform>*{padding-top:.4375em}.row.gtr-50{margin-top:0;margin-left:-.875em}.row.gtr-50>*{padding:0 0 0 .875em}.row.gtr-50.gtr-uniform{margin-top:-.875em}.row.gtr-50.gtr-uniform>*{padding-top:.875em}.row{margin-top:0;margin-left:-1.75em}.row>*{padding:0 0 0 1.75em}.row.gtr-uniform{margin-top:-1.75em}.row.gtr-uniform>*{padding-top:1.75em}.row.gtr-150{margin-top:0;margin-left:-2.625em}.row.gtr-150>*{padding:0 0 0 2.625em}.row.gtr-150.gtr-uniform{margin-top:-2.625em}.row.gtr-150.gtr-uniform>*{padding-top:2.625em}.row.gtr-200{margin-top:0;margin-left:-3.5em}.row.gtr-200>*{padding:0 0 0 3.5em}.row.gtr-200.gtr-uniform{margin-top:-3.5em}.row.gtr-200.gtr-uniform>*{padding-top:3.5em}}@media screen and (max-width: 736px){.row{display:flex;flex-wrap:wrap;box-sizing:border-box;align-items:stretch}.row>*{box-sizing:border-box}.row.gtr-uniform>*>:last-child{margin-bottom:0}.row.aln-left{justify-content:flex-start}.row.aln-center{justify-content:center}.row.aln-right{justify-content:flex-end}.row.aln-top{align-items:flex-start}.row.aln-middle{align-items:center}.row.aln-bottom{align-items:flex-end}.row>.imp-small{order:-1}.row>.col-1-small{width:8.3333333333%}.row>.off-1-small{margin-left:8.3333333333%}.row>.col-2-small{width:16.6666666667%}.row>.off-2-small{margin-left:16.6666666667%}.row>.col-3-small{width:25%}.row>.off-3-small{margin-left:25%}.row>.col-4-small{width:33.3333333333%}.row>.off-4-small{margin-left:33.3333333333%}.row>.col-5-small{width:41.6666666667%}.row>.off-5-small{margin-left:41.6666666667%}.row>.col-6-small{width:50%}.row>.off-6-small{margin-left:50%}.row>.col-7-small{width:58.3333333333%}.row>.off-7-small{margin-left:58.3333333333%}.row>.col-8-small{width:66.6666666667%}.row>.off-8-small{margin-left:66.6666666667%}.row>.col-9-small{width:75%}.row>.off-9-small{margin-left:75%}.row>.col-10-small{width:83.3333333333%}.row>.off-10-small{margin-left:83.3333333333%}.row>.col-11-small{width:91.6666666667%}.row>.off-11-small{margin-left:91.6666666667%}.row>.col-12-small{width:100%}.row>.off-12-small{margin-left:100%}.row.gtr-0{margin-top:0;margin-left:0}.row.gtr-0>*{padding:0}.row.gtr-0.gtr-uniform{margin-top:0}.row.gtr-0.gtr-uniform>*{padding-top:0}.row.gtr-25{margin-top:0;margin-left:-.3125em}.row.gtr-25>*{padding:0 0 0 .3125em}.row.gtr-25.gtr-uniform{margin-top:-.3125em}.row.gtr-25.gtr-uniform>*{padding-top:.3125em}.row.gtr-50{margin-top:0;margin-left:-.625em}.row.gtr-50>*{padding:0 0 0 .625em}.row.gtr-50.gtr-uniform{margin-top:-.625em}.row.gtr-50.gtr-uniform>*{padding-top:.625em}.row{margin-top:0;margin-left:-1.25em}.row>*{padding:0 0 0 1.25em}.row.gtr-uniform{margin-top:-1.25em}.row.gtr-uniform>*{padding-top:1.25em}.row.gtr-150{margin-top:0;margin-left:-1.875em}.row.gtr-150>*{padding:0 0 0 1.875em}.row.gtr-150.gtr-uniform{margin-top:-1.875em}.row.gtr-150.gtr-uniform>*{padding-top:1.875em}.row.gtr-200{margin-top:0;margin-left:-2.5em}.row.gtr-200>*{padding:0 0 0 2.5em}.row.gtr-200.gtr-uniform{margin-top:-2.5em}.row.gtr-200.gtr-uniform>*{padding-top:2.5em}}@media screen and (max-width: 480px){.row{display:flex;flex-wrap:wrap;box-sizing:border-box;align-items:stretch}.row>*{box-sizing:border-box}.row.gtr-uniform>*>:last-child{margin-bottom:0}.row.aln-left{justify-content:flex-start}.row.aln-center{justify-content:center}.row.aln-right{justify-content:flex-end}.row.aln-top{align-items:flex-start}.row.aln-middle{align-items:center}.row.aln-bottom{align-items:flex-end}.row>.imp-xsmall{order:-1}.row>.col-1-xsmall{width:8.3333333333%}.row>.off-1-xsmall{margin-left:8.3333333333%}.row>.col-2-xsmall{width:16.6666666667%}.row>.off-2-xsmall{margin-left:16.6666666667%}.row>.col-3-xsmall{width:25%}.row>.off-3-xsmall{margin-left:25%}.row>.col-4-xsmall{width:33.3333333333%}.row>.off-4-xsmall{margin-left:33.3333333333%}.row>.col-5-xsmall{width:41.6666666667%}.row>.off-5-xsmall{margin-left:41.6666666667%}.row>.col-6-xsmall{width:50%}.row>.off-6-xsmall{margin-left:50%}.row>.col-7-xsmall{width:58.3333333333%}.row>.off-7-xsmall{margin-left:58.3333333333%}.row>.col-8-xsmall{width:66.6666666667%}.row>.off-8-xsmall{margin-left:66.6666666667%}.row>.col-9-xsmall{width:75%}.row>.off-9-xsmall{margin-left:75%}.row>.col-10-xsmall{width:83.3333333333%}.row>.off-10-xsmall{margin-left:83.3333333333%}.row>.col-11-xsmall{width:91.6666666667%}.row>.off-11-xsmall{margin-left:91.6666666667%}.row>.col-12-xsmall{width:100%}.row>.off-12-xsmall{margin-left:100%}.row.gtr-0{margin-top:0;margin-left:0}.row.gtr-0>*{padding:0}.row.gtr-0.gtr-uniform{margin-top:0}.row.gtr-0.gtr-uniform>*{padding-top:0}.row.gtr-25{margin-top:0;margin-left:-.3125em}.row.gtr-25>*{padding:0 0 0 .3125em}.row.gtr-25.gtr-uniform{margin-top:-.3125em}.row.gtr-25.gtr-uniform>*{padding-top:.3125em}.row.gtr-50{margin-top:0;margin-left:-.625em}.row.gtr-50>*{padding:0 0 0 .625em}.row.gtr-50.gtr-uniform{margin-top:-.625em}.row.gtr-50.gtr-uniform>*{padding-top:.625em}.row{margin-top:0;margin-left:-1.25em}.row>*{padding:0 0 0 1.25em}.row.gtr-uniform{margin-top:-1.25em}.row.gtr-uniform>*{padding-top:1.25em}.row.gtr-150{margin-top:0;margin-left:-1.875em}.row.gtr-150>*{padding:0 0 0 1.875em}.row.gtr-150.gtr-uniform{margin-top:-1.875em}.row.gtr-150.gtr-uniform>*{padding-top:1.875em}.row.gtr-200{margin-top:0;margin-left:-2.5em}.row.gtr-200>*{padding:0 0 0 2.5em}.row.gtr-200.gtr-uniform{margin-top:-2.5em}.row.gtr-200.gtr-uniform>*{padding-top:2.5em}}@media screen and (max-width: 360px){.row{display:flex;flex-wrap:wrap;box-sizing:border-box;align-items:stretch}.row>*{box-sizing:border-box}.row.gtr-uniform>*>:last-child{margin-bottom:0}.row.aln-left{justify-content:flex-start}.row.aln-center{justify-content:center}.row.aln-right{justify-content:flex-end}.row.aln-top{align-items:flex-start}.row.aln-middle{align-items:center}.row.aln-bottom{align-items:flex-end}.row>.imp-xxsmall{order:-1}.row>.col-1-xxsmall{width:8.3333333333%}.row>.off-1-xxsmall{margin-left:8.3333333333%}.row>.col-2-xxsmall{width:16.6666666667%}.row>.off-2-xxsmall{margin-left:16.6666666667%}.row>.col-3-xxsmall{width:25%}.row>.off-3-xxsmall{margin-left:25%}.row>.col-4-xxsmall{width:33.3333333333%}.row>.off-4-xxsmall{margin-left:33.3333333333%}.row>.col-5-xxsmall{width:41.6666666667%}.row>.off-5-xxsmall{margin-left:41.6666666667%}.row>.col-6-xxsmall{width:50%}.row>.off-6-xxsmall{margin-left:50%}.row>.col-7-xxsmall{width:58.3333333333%}.row>.off-7-xxsmall{margin-left:58.3333333333%}.row>.col-8-xxsmall{width:66.6666666667%}.row>.off-8-xxsmall{margin-left:66.6666666667%}.row>.col-9-xxsmall{width:75%}.row>.off-9-xxsmall{margin-left:75%}.row>.col-10-xxsmall{width:83.3333333333%}.row>.off-10-xxsmall{margin-left:83.3333333333%}.row>.col-11-xxsmall{width:91.6666666667%}.row>.off-11-xxsmall{margin-left:91.6666666667%}.row>.col-12-xxsmall{width:100%}.row>.off-12-xxsmall{margin-left:100%}.row.gtr-0{margin-top:0;margin-left:0}.row.gtr-0>*{padding:0}.row.gtr-0.gtr-uniform{margin-top:0}.row.gtr-0.gtr-uniform>*{padding-top:0}.row.gtr-25{margin-top:0;margin-left:-.3125em}.row.gtr-25>*{padding:0 0 0 .3125em}.row.gtr-25.gtr-uniform{margin-top:-.3125em}.row.gtr-25.gtr-uniform>*{padding-top:.3125em}.row.gtr-50{margin-top:0;margin-left:-.625em}.row.gtr-50>*{padding:0 0 0 .625em}.row.gtr-50.gtr-uniform{margin-top:-.625em}.row.gtr-50.gtr-uniform>*{padding-top:.625em}.row{margin-top:0;margin-left:-1.25em}.row>*{padding:0 0 0 1.25em}.row.gtr-uniform{margin-top:-1.25em}.row.gtr-uniform>*{padding-top:1.25em}.row.gtr-150{margin-top:0;margin-left:-1.875em}.row.gtr-150>*{padding:0 0 0 1.875em}.row.gtr-150.gtr-uniform{margin-top:-1.875em}.row.gtr-150.gtr-uniform>*{padding-top:1.875em}.row.gtr-200{margin-top:0;margin-left:-2.5em}.row.gtr-200>*{padding:0 0 0 2.5em}.row.gtr-200.gtr-uniform{margin-top:-2.5em}.row.gtr-200.gtr-uniform>*{padding-top:2.5em}}section.special,article.special{text-align:center}form{margin:0 0 2em}form>:last-child{margin-bottom:0}form>.fields{display:-moz-flex;display:-webkit-flex;display:-ms-flex;display:flex;-moz-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:calc(100% + 3em);margin:-1.5em 0 2em -1.5em}form>.fields>.field{-moz-flex-grow:0;-webkit-flex-grow:0;-ms-flex-grow:0;flex-grow:0;-moz-flex-shrink:0;-webkit-flex-shrink:0;-ms-flex-shrink:0;flex-shrink:0;padding:1.5em 0 0 1.5em;width:calc(100% - 1.5em)}form>.fields>.field.half{width:calc(50% - .75em)}form>.fields>.field.third{width:calc(100%/3 - .5em)}form>.fields>.field.quarter{width:calc(25% - .375em)}@media screen and (max-width: 480px){form>.fields{width:calc(100% + 3em);margin:-1.5em 0 2em -1.5em}form>.fields>.field{padding:1.5em 0 0 1.5em;width:calc(100% - 1.5em)}form>.fields>.field.half{width:calc(100% - 1.5em)}form>.fields>.field.third{width:calc(100% - 1.5em)}form>.fields>.field.quarter{width:calc(100% - 1.5em)}}label{color:#fdfdfd;display:block;font-family:Raleway,Helvetica,sans-serif;font-size:.8em;font-weight:700;letter-spacing:.1em;margin:0 0 .7em;text-transform:uppercase}input[type=text],input[type=search],input[type=password],input[type=email],input[type=tel],select,textarea{-moz-appearance:none;-webkit-appearance:none;-ms-appearance:none;appearance:none;background:#ffffff06;border-radius:5px;border:none;border:solid 2px rgba(255,255,255,.125);color:inherit;display:block;padding:0 1em;text-decoration:none;width:100%}input[type=text]:invalid,input[type=search]:invalid,input[type=password]:invalid,input[type=email]:invalid,input[type=tel]:invalid,select:invalid,textarea:invalid{box-shadow:none}input[type=text]:focus,input[type=search]:focus,input[type=password]:focus,input[type=email]:focus,input[type=tel]:focus,select:focus,textarea:focus{border-color:#6e876a}select{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='40' height='40' preserveAspectRatio='none' viewBox='0 0 40 40'%3E%3Cpath d='M9.4,12.3l10.4,10.4l10.4-10.4c0.2-0.2,0.5-0.4,0.9-0.4c0.3,0,0.6,0.1,0.9,0.4l3.3,3.3c0.2,0.2,0.4,0.5,0.4,0.9 c0,0.4-0.1,0.6-0.4,0.9L20.7,31.9c-0.2,0.2-0.5,0.4-0.9,0.4c-0.3,0-0.6-0.1-0.9-0.4L4.3,17.3c-0.2-0.2-0.4-0.5-0.4-0.9 c0-0.4,0.1-0.6,0.4-0.9l3.3-3.3c0.2-0.2,0.5-0.4,0.9-0.4S9.1,12.1,9.4,12.3z' fill='rgba(255, 255, 255, 0.125)' /%3E%3C/svg%3E");background-size:1.25rem;background-repeat:no-repeat;background-position:calc(100% - 1rem) center;height:2.75em;padding-right:2.75em;text-overflow:ellipsis}select option{color:#fdfdfd;background:#2e3141}select:focus::-ms-value{background-color:transparent}select::-ms-expand{display:none}input[type=text],input[type=search],input[type=password],input[type=email],select{height:2.75em}textarea{padding:.75em 1em}input[type=checkbox],input[type=radio]{-moz-appearance:none;-webkit-appearance:none;-ms-appearance:none;appearance:none;display:block;float:left;margin-right:-2em;opacity:0;width:1em;z-index:-1}input[type=checkbox]+label,input[type=radio]+label{text-decoration:none;color:#fdfdfd;cursor:pointer;display:inline-block;font-size:1em;font-family:Source Sans Pro,Helvetica,sans-serif;text-transform:none;letter-spacing:0;font-weight:300;padding-left:2.4em;padding-right:.75em;position:relative}input[type=checkbox]+label:before,input[type=radio]+label:before{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;display:inline-block;font-style:normal;font-variant:normal;text-rendering:auto;line-height:1;text-transform:none!important;font-family:"Font Awesome 5 Free";font-weight:900}input[type=checkbox]+label:before,input[type=radio]+label:before{background:#ffffff06;border-radius:5px;border:solid 2px rgba(255,255,255,.125);content:"";display:inline-block;font-size:.8em;height:2.0625em;left:0;line-height:2.0625em;position:absolute;text-align:center;top:0;width:2.0625em}input[type=checkbox]:checked+label:before,input[type=radio]:checked+label:before{background:#fdfdfd;border-color:#fdfdfd;content:"";color:#2e3141}input[type=checkbox]:focus+label:before,input[type=radio]:focus+label:before{border-color:#5e7959}input[type=checkbox]+label:before{border-radius:5px}input[type=radio]+label:before{border-radius:100%}::-webkit-input-placeholder{color:#ffffff59!important;opacity:1}:-moz-placeholder{color:#ffffff59!important;opacity:1}::-moz-placeholder{color:#ffffff59!important;opacity:1}:-ms-input-placeholder{color:#ffffff59!important;opacity:1}.box{border-radius:5px;border:solid 2px rgba(255,255,255,.125);margin-bottom:2em;padding:1.5em}.box>:last-child,.box>:last-child>:last-child,.box>:last-child>:last-child>:last-child{margin-bottom:0}.box.alt{border:0;border-radius:0;padding:0}.icon{text-decoration:none;border-bottom:none;position:relative}.icon:before{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;display:inline-block;font-style:normal;font-variant:normal;text-rendering:auto;line-height:1;text-transform:none!important;font-family:"Font Awesome 5 Free";font-weight:400}.icon>.label{display:none}.icon:before{line-height:inherit}.icon.solid:before{font-weight:900}.icon.brands:before{font-family:"Font Awesome 5 Brands"}.image{border-radius:5px;border:0;display:inline-block;position:relative}.image img{border-radius:5px;display:block}.image.left,.image.right{max-width:40%}.image.left img,.image.right img{width:100%}.image.left{float:left;padding:0 1.5em 1em 0;top:.25em}.image.right{float:right;padding:0 0 1em 1.5em;top:.25em}.image.fit{display:block;margin:0 0 2em;width:100%}.image.fit img{width:100%}.image.main{display:block;margin:0 0 3em;width:100%}.image.main img{width:100%}ol{list-style:decimal;margin:0 0 2em;padding-left:1.25em}ol li{padding-left:.25em}ol.alt{padding-left:0}ol.alt li{border-top:solid 1px rgba(255,255,255,.125);margin-left:1em;padding:.5em}ol.alt li:hover{background-color:#393c50;border-radius:3px}ol.alt li>a{padding:5px;border:none;display:block}ol.alt li:first-child{border-top:0}ul{list-style:disc;margin:0 0 2em;padding-left:1em}ul li{padding-left:.5em}ul.alt{list-style:none;padding-left:0}ul.alt li{border-top:solid 1px rgba(255,255,255,.125);padding:.5em 0}ul.alt li:first-child{border-top:0;padding-top:0}dl{margin:0 0 2em}dl dt{display:block;font-weight:600;margin:0 0 1em}dl dd{margin-left:2em}ul.actions{display:-moz-flex;display:-webkit-flex;display:-ms-flex;display:flex;cursor:default;list-style:none;margin-left:-1em;padding-left:0}ul.actions li{padding:0 0 0 1em;vertical-align:middle}ul.actions.special{-moz-justify-content:center;-webkit-justify-content:center;-ms-justify-content:center;justify-content:center;width:100%;margin-left:0}ul.actions.special li:first-child{padding-left:0}ul.actions.stacked{-moz-flex-direction:column;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;margin-left:0}ul.actions.stacked li{padding:1.3em 0 0}ul.actions.stacked li:first-child{padding-top:0}ul.actions.fit{width:calc(100% + 1em)}ul.actions.fit li{-moz-flex-grow:1;-webkit-flex-grow:1;-ms-flex-grow:1;flex-grow:1;-moz-flex-shrink:1;-webkit-flex-shrink:1;-ms-flex-shrink:1;flex-shrink:1;width:100%}ul.actions.fit li>*{width:100%}ul.actions.fit.stacked{width:100%}@media screen and (max-width: 480px){ul.actions:not(.fixed){-moz-flex-direction:column;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;margin-left:0;width:100%!important}ul.actions:not(.fixed) li{-moz-flex-grow:1;-webkit-flex-grow:1;-ms-flex-grow:1;flex-grow:1;-moz-flex-shrink:1;-webkit-flex-shrink:1;-ms-flex-shrink:1;flex-shrink:1;padding:1em 0 0;text-align:center;width:100%}ul.actions:not(.fixed) li>*{width:100%}ul.actions:not(.fixed) li:first-child{padding-top:0}ul.actions:not(.fixed) li input[type=submit],ul.actions:not(.fixed) li input[type=reset],ul.actions:not(.fixed) li input[type=button],ul.actions:not(.fixed) li button,ul.actions:not(.fixed) li .button{width:100%}ul.actions:not(.fixed) li input[type=submit].icon:before,ul.actions:not(.fixed) li input[type=reset].icon:before,ul.actions:not(.fixed) li input[type=button].icon:before,ul.actions:not(.fixed) li button.icon:before,ul.actions:not(.fixed) li .button.icon:before{margin-left:-.5rem}}ul.icons{cursor:default;list-style:none;padding-left:0}ul.icons li{display:inline-block;padding:0 1em 0 0}ul.icons li:last-child{padding-right:0}ul.icons li .icon:before{font-size:1.25em}ul.contact{list-style:none;padding:0}ul.contact li{text-decoration:none;margin:2.5em 0 0;padding:0 0 0 3.25em;position:relative}ul.contact li:before{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;display:inline-block;font-style:normal;font-variant:normal;text-rendering:auto;line-height:1;text-transform:none!important;font-family:"Font Awesome 5 Free";font-weight:400}ul.contact li:before{border-radius:100%;border:solid 2px rgba(255,255,255,.125);display:inline-block;font-size:.8em;height:2.5em;left:0;line-height:2.35em;position:absolute;text-align:center;top:0;width:2.5em}ul.contact li:first-child{margin-top:0}@media screen and (max-width: 736px){ul.contact li{margin:1.5em 0 0}}ul.pagination{cursor:default;list-style:none;padding-left:0}ul.pagination li{display:inline-block;padding-left:0;vertical-align:middle}ul.pagination li>.page{-moz-transition:background-color .2s ease-in-out,color .2s ease-in-out;-webkit-transition:background-color .2s ease-in-out,color .2s ease-in-out;-ms-transition:background-color .2s ease-in-out,color .2s ease-in-out;transition:background-color .2s ease-in-out,color .2s ease-in-out;border-bottom:0;border-radius:5px;display:inline-block;height:1.5em;line-height:1.5em;margin:0 .125em;min-width:1.5em;padding:0 .5em;text-align:center}ul.pagination li>.page:hover{background-color:#ffffff06}ul.pagination li>.page.active{background-color:#5e7959}ul.pagination li:first-child{padding-right:.75em}ul.pagination li:last-child{padding-left:.75em}@media screen and (max-width: 480px){ul.pagination li:nth-child(n+2):nth-last-child(n+2){display:none}ul.pagination li .button{width:100%}ul.pagination li:first-child{width:calc(50% - 2px);text-align:left;padding-right:.325em}ul.pagination li:last-child{width:calc(50% - 2px);text-align:right;padding-left:.325em}}.table-wrapper{-webkit-overflow-scrolling:touch;overflow-x:auto}table{margin:0 0 2em;width:100%}table tbody tr{border:solid 1px rgba(255,255,255,.125);border-left:0;border-right:0}table tbody tr:nth-child(odd){background-color:#ffffff06}table td{padding:.75em}table th{color:#fdfdfd;font-size:.9em;font-weight:600;padding:0 .75em .75em;text-align:left}table thead{border-bottom:solid 2px rgba(255,255,255,.125)}table tfoot{border-top:solid 2px rgba(255,255,255,.125)}table.alt{border-collapse:separate}table.alt tbody tr td{border:solid 1px rgba(255,255,255,.125);border-left-width:0;border-top-width:0}table.alt tbody tr td:first-child{border-left-width:1px}table.alt tbody tr:first-child td{border-top-width:1px}table.alt thead{border-bottom:0}table.alt tfoot{border-top:0}input[type=submit],input[type=reset],input[type=button],button,.button{-moz-appearance:none;-webkit-appearance:none;-ms-appearance:none;appearance:none;-moz-transition:background-color .2s ease-in-out;-webkit-transition:background-color .2s ease-in-out;-ms-transition:background-color .2s ease-in-out;transition:background-color .2s ease-in-out;background-color:transparent;border-radius:5px;border:0;box-shadow:inset 0 0 0 2px #ffffff20;color:#fdfdfd!important;cursor:pointer;display:inline-block;font-family:Raleway,Helvetica,sans-serif;font-size:.8em;font-weight:700;height:3.75em;letter-spacing:.1em;line-height:3.75em;padding:0 2.25em;text-align:center;text-decoration:none;text-transform:uppercase;white-space:nowrap}input[type=submit]:hover,input[type=reset]:hover,input[type=button]:hover,button:hover,.button:hover{background-color:#ffffff06}input[type=submit]:active,input[type=reset]:active,input[type=button]:active,button:active,.button:active{background-color:#ffffff13}input[type=submit].icon:before,input[type=reset].icon:before,input[type=button].icon:before,button.icon:before,.button.icon:before{margin-right:.5em;color:#ffffff59}input[type=submit].primary,input[type=reset].primary,input[type=button].primary,button.primary,.button.primary{background-color:#5e7959;box-shadow:none}input[type=submit].primary:hover,input[type=reset].primary:hover,input[type=button].primary:hover,button.primary:hover,.button.primary:hover{background-color:#668061}input[type=submit].primary:active,input[type=reset].primary:active,input[type=button].primary:active,button.primary:active,.button.primary:active{background-color:#567251}input[type=submit].primary.icon:before,input[type=reset].primary.icon:before,input[type=button].primary.icon:before,button.primary.icon:before,.button.primary.icon:before{color:#869a82}input[type=submit].fit,input[type=reset].fit,input[type=button].fit,button.fit,.button.fit{width:100%}input[type=submit].small,input[type=reset].small,input[type=button].small,button.small,.button.small{font-size:.6em}input[type=submit].xs,input[type=reset].xs,input[type=button].xs,button.xs,.button.xs{font-size:.5em}input[type=submit].large,input[type=reset].large,input[type=button].large,button.large,.button.large{font-size:1em}input[type=submit].disabled,input[type=submit]:disabled,input[type=reset].disabled,input[type=reset]:disabled,input[type=button].disabled,input[type=button]:disabled,button.disabled,button:disabled,.button.disabled,.button:disabled{opacity:.25}@media screen and (max-width: 480px){input[type=submit],input[type=reset],input[type=button],button,.button{padding:0}input[type=submit].xs,input[type=reset].xs,input[type=button].xs,button.xs,.button.xs{padding:0 1.5em}}.features{display:-moz-flex;display:-webkit-flex;display:-ms-flex;display:flex;-moz-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;margin:0 0 2em}.features article{padding:1.75em 1.75em .1em;background-color:#353849;border-radius:5px;margin:1.5em 3em 1.5em 0}.features article:nth-child(2n){margin-right:0}.features article .image{border-radius:5px 5px 0 0;display:block;margin-bottom:1.75em;margin-left:-1.75em;margin-top:-1.75em;position:relative;width:calc(100% + 3.5em)}.features article .image img{border-radius:5px 5px 0 0;width:100%}@media screen and (max-width: 980px){.features article{margin:1em 2em 1em 0}}@media screen and (max-width: 736px){.features article{padding:1.5em 1.5em .1em;margin:.875em 1.75em .875em 0}.features article .image{margin-bottom:1.5em;margin-left:-1.5em;margin-top:-1.5em;width:calc(100% + 3em)}}@media screen and (max-width: 480px){.features{display:block}.features article{width:100%;margin:0 0 2em!important}}nav{font-family:Raleway,Helvetica,sans-serif;font-size:.8em;font-weight:700;height:3em;letter-spacing:.1em;line-height:3em;right:.7em;text-transform:uppercase;top:.7em;position:fixed;z-index:10000}nav a,nav button{border:0;display:inline-block;padding:0 1em}nav a:before,nav button:before{float:right;margin-left:.75em}nav a.burger-menu,nav button.burger-menu{cursor:pointer;text-decoration:none;-moz-transition:background-color .2s ease-in-out;-webkit-transition:background-color .2s ease-in-out;-ms-transition:background-color .2s ease-in-out;transition:background-color .2s ease-in-out;border-radius:5px;box-shadow:inset 0 0 0 2px #ffffff20;padding:0 1.35em}nav a.burger-menu:before,nav button.burger-menu:before{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;display:inline-block;font-style:normal;font-variant:normal;text-rendering:auto;line-height:1;text-transform:none!important;font-family:"Font Awesome 5 Free";font-weight:900}nav a.burger-menu:before,nav button.burger-menu:before{content:"";line-height:inherit}nav a.burger-menu:hover,nav button.burger-menu:hover{background-color:#ffffff06}nav a.burger-menu:active,nav button.burger-menu:active{background-color:#ffffff13}@media screen and (max-width: 736px){nav{height:2.75em;line-height:2.75em}nav a,nav button{height:inherit;line-height:inherit}nav a.burger-menu,nav button.burger-menu{box-shadow:none;padding:0 1em}nav a.burger-menu:hover,nav a.burger-menu:active,nav button.burger-menu:hover,nav button.burger-menu:active{background-color:inherit}}@media screen and (max-width: 480px){nav a.burger-menu,nav button.burger-menu{width:4em;white-space:nowrap;text-indent:4em;position:relative}nav a.burger-menu:before,nav button.burger-menu:before{width:inherit;position:absolute;top:0;left:0;text-indent:0;text-align:right;margin-left:0;padding-right:1.25em}}#header{-moz-transition:background-color .2s ease-in-out;-webkit-transition:background-color .2s ease-in-out;-ms-transition:background-color .2s ease-in-out;transition:background-color .2s ease-in-out;background-color:#353849f2;height:3.5em;left:0;line-height:3.5em;padding:0 1.25em;position:fixed;top:0;width:100%;z-index:10000}#header h1{-moz-transition:opacity .2s ease-in-out,visibility .2s;-webkit-transition:opacity .2s ease-in-out,visibility .2s;-ms-transition:opacity .2s ease-in-out,visibility .2s;transition:opacity .2s ease-in-out,visibility .2s;border-bottom:0;font-size:.8em;margin-bottom:0;opacity:1;visibility:visible}#header h1 a,#header h1 button{border:0}#header.alt{background-color:transparent}#header.alt h1{opacity:0;visibility:hidden}#page-wrapper{-moz-transition:-moz-filter .25s ease;-webkit-transition:-webkit-filter .25s ease;-ms-transition:-ms-filter .25s ease;transition:filter .25s ease}#menu{-moz-align-items:center;-webkit-align-items:center;-ms-align-items:center;align-items:center;display:-moz-flex;display:-webkit-flex;display:-ms-flex;display:flex;-moz-justify-content:center;-webkit-justify-content:center;-ms-justify-content:center;justify-content:center;pointer-events:none;-moz-transition:opacity .35s ease,visibility .35s;-webkit-transition:opacity .35s ease,visibility .35s;-ms-transition:opacity .35s ease,visibility .35s;transition:opacity .35s ease,visibility .35s;-moz-user-select:none;-webkit-user-select:none;-ms-user-select:none;user-select:none;-webkit-tap-highlight-color:#000000;background:#2e3141cc;cursor:default;height:100%;left:0;opacity:0;position:fixed;text-align:center;top:0;visibility:hidden;width:100%}#menu .inner{padding:2.5em 1.5em .5em;-moz-transform:translateY(.5em);-webkit-transform:translateY(.5em);-ms-transform:translateY(.5em);transform:translateY(.5em);-moz-transition:opacity .35s ease,-moz-transform .35s ease;-webkit-transition:opacity .35s ease,-webkit-transform .35s ease;-ms-transition:opacity .35s ease,-ms-transform .35s ease;transition:opacity .35s ease,transform .35s ease;-webkit-overflow-scrolling:touch;background:#5e7959;border-radius:5px;display:block;max-width:100%;opacity:0;position:relative;width:18em}#menu h2{border-bottom:solid 2px rgba(255,255,255,.125);padding-bottom:1em}#menu .close{background-image:url(/images/close.svg);background-position:75% 25%;background-repeat:no-repeat;background-size:2em 2em;border:0;content:"";display:block;height:4em;overflow:hidden;position:absolute;right:0;text-align:center;text-indent:4em;top:0;width:4em}#menu .links{list-style:none;margin-bottom:1.5em;padding:0}#menu .links li{padding:0}#menu .links li a{border-radius:5px;border:0;display:block;font-family:Raleway,Helvetica,sans-serif;font-size:.8em;font-weight:200;letter-spacing:.1em;line-height:1.85em;padding:.75em 0;text-transform:uppercase}#menu .links li a:hover{background:#567251}@media screen and (max-width: 736px){#menu .inner{max-height:100%;overflow-y:auto;overflow-x:hidden}#menu .inner .close{background-size:1.5em 1.5em}}body.is-menu-visible #page-wrapper{-moz-filter:blur(1.5px);-webkit-filter:blur(1.5px);-ms-filter:blur(1.5px);filter:blur(1.5px)}body.is-menu-visible #menu{pointer-events:auto;opacity:1;visibility:visible}body.is-menu-visible #menu .inner{-moz-transform:translateY(0);-webkit-transform:translateY(0);-ms-transform:translateY(0);transform:translateY(0);opacity:1}#banner{padding:10em 0 4.75em}#banner .inner{margin:0 auto;width:55em}#banner .logo{-moz-transition:opacity 2s ease,-moz-transform 1s ease;-webkit-transition:opacity 2s ease,-webkit-transform 1s ease;-ms-transition:opacity 2s ease,-ms-transform 1s ease;transition:opacity 2s ease,transform 1s ease;-moz-transform:translateY(0);-webkit-transform:translateY(0);-ms-transform:translateY(0);transform:translateY(0);opacity:1;margin:0 0 1.3em}#banner .logo .icon{border-radius:100%;border:solid 2px rgba(255,255,255,.125);cursor:default;display:inline-block;font-size:2em;height:2.25em;line-height:2.25em;text-align:center;width:2.25em}#banner h2{-moz-transition:opacity .5s ease,-moz-transform .5s ease,-moz-filter .25s ease;-webkit-transition:opacity .5s ease,-webkit-transform .5s ease,-webkit-filter .25s ease;-ms-transition:opacity .5s ease,-ms-transform .5s ease,-ms-filter .25s ease;transition:opacity .5s ease,transform .5s ease,filter .25s ease;-moz-transform:translateX(0);-webkit-transform:translateX(0);-ms-transform:translateX(0);transform:translate(0);-moz-transition-delay:.65s;-webkit-transition-delay:.65s;-ms-transition-delay:.65s;transition-delay:.65s;-moz-filter:blur(0);-webkit-filter:blur(0);-ms-filter:blur(0);filter:blur(0);opacity:1;border-bottom:solid 2px rgba(255,255,255,.125);font-size:2.25em;margin-bottom:.8em;padding-bottom:.4em}#banner p{-moz-transition:opacity .5s ease,-moz-transform .5s ease,-moz-filter .25s ease;-webkit-transition:opacity .5s ease,-webkit-transform .5s ease,-webkit-filter .25s ease;-ms-transition:opacity .5s ease,-ms-transform .5s ease,-ms-filter .25s ease;transition:opacity .5s ease,transform .5s ease,filter .25s ease;-moz-transform:translateX(0);-webkit-transform:translateX(0);-ms-transform:translateX(0);transform:translate(0);-moz-transition-delay:.8s;-webkit-transition-delay:.8s;-ms-transition-delay:.8s;transition-delay:.8s;-moz-filter:blur(0);-webkit-filter:blur(0);-ms-filter:blur(0);filter:blur(0);opacity:1;font-family:Raleway,Helvetica,sans-serif;font-size:1em;font-weight:200;letter-spacing:.1em;line-height:2;text-transform:uppercase}@media screen and (max-width: 1280px){#banner{padding:7em 0 8.25em;background-color:#2e3141;background-image:linear-gradient(to top,#2e3141cc,#2e3141cc),url(/images/bg.jpg);background-size:auto,cover;background-position:center,center;margin-bottom:-6.5em}}@media screen and (max-width: 980px){#banner{padding:12em 3em 12.375em;margin-bottom:-4.75em}#banner .inner{width:90%;margin-left:1em}}@media screen and (max-width: 736px){#banner{padding:5em 2em 4.25em;margin-bottom:-2.5em}#banner .logo{margin:0 0 1em}#banner .logo .icon,#banner h2{font-size:1.5em}#banner p{font-size:.8em}}body.is-preload #banner .logo{-moz-transform:translateY(.5em);-webkit-transform:translateY(.5em);-ms-transform:translateY(.5em);transform:translateY(.5em);opacity:0}body.is-preload #banner h2{opacity:0;-moz-transform:translateX(.25em);-webkit-transform:translateX(.25em);-ms-transform:translateX(.25em);transform:translate(.25em);-moz-filter:blur(2px);-webkit-filter:blur(2px);-ms-filter:blur(2px);filter:blur(2px)}body.is-preload #banner p{opacity:0;-moz-transform:translateX(.5em);-webkit-transform:translateX(.5em);-ms-transform:translateX(.5em);transform:translate(.5em);-moz-filter:blur(2px);-webkit-filter:blur(2px);-ms-filter:blur(2px);filter:blur(2px)}#wrapper>header{padding:11em 0 2.25em}#wrapper>header .inner{margin:0 auto;width:55em}#wrapper>header h2{border-bottom:solid 2px rgba(255,255,255,.125);font-size:2em;margin-bottom:.8em;padding-bottom:.4em}#wrapper>header p{font-family:Raleway,Helvetica,sans-serif;font-size:1em;font-weight:200;letter-spacing:.1em;line-height:2;text-transform:uppercase}@media screen and (max-width: 1280px){#wrapper>header{padding:9em 0 6.25em;background-color:#2e3141;background-image:linear-gradient(to top,#2e3141cc,#2e3141cc),url(/images/bg.jpg);background-size:auto,cover;background-position:center,0% 30%;margin-bottom:-6.5em}}@media screen and (max-width: 980px){#wrapper>header{padding:11em 3em 7.375em;background-size:auto,cover;background-position:center,0% 0%;margin-bottom:-4.75em}#wrapper>header .inner{width:100%}}@media screen and (max-width: 736px){#wrapper>header{padding:6.5em 2em 3em;background-size:auto,125%;margin-bottom:-2.5em}#wrapper>header h2{font-size:1.25em}#wrapper>header p{font-size:.8em}}.wrapper{background-color:#2e3141;margin:6.5em 0;position:relative}.wrapper:before,.wrapper:after{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='100' height='100' viewBox='0 0 100 100' preserveAspectRatio='none'%3E%3Cpolygon points='0,100 100,0 100,100' style='fill:%232e3141%3B' /%3E%3C/svg%3E")}.wrapper:before{box-shadow:inset 0 -2px #2e3141,0 1px #2e3141}.wrapper:after{box-shadow:inset 0 -2px #2e3141,0 1px #2e3141}.wrapper:before,.wrapper:after{background-repeat:no-repeat;background-size:100% 100%;content:"";display:block;height:6.5em;position:absolute;width:100%}.wrapper:before{left:0;top:-6.5em}.wrapper:after{-moz-transform:scaleY(-1);-webkit-transform:scaleY(-1);-ms-transform:scaleY(-1);transform:scaleY(-1);bottom:-6.5em;left:0}.wrapper.alt:before{-moz-transform:scaleX(-1);-webkit-transform:scaleX(-1);-ms-transform:scaleX(-1);transform:scaleX(-1)}.wrapper.alt:after{-moz-transform:scaleY(-1) scaleX(-1);-webkit-transform:scaleY(-1) scaleX(-1);-ms-transform:scaleY(-1) scaleX(-1);transform:scaleY(-1) scaleX(-1)}.wrapper .inner{padding:3em 0 1em;margin:0 auto;width:55em}.wrapper.style2{background-color:#353849}.wrapper.style2:before,.wrapper.style2:after{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='100' height='100' viewBox='0 0 100 100' preserveAspectRatio='none'%3E%3Cpolygon points='0,100 100,0 100,100' style='fill:rgb(53.2877905405, 56.4021724751, 73.0122094595)%3B' /%3E%3C/svg%3E")}.wrapper.style2:before{box-shadow:inset 0 -2px #353849,0 1px #353849}.wrapper.style2:after{box-shadow:inset 0 -2px #353849,0 1px #353849}.wrapper.style3{background-color:#3d4051}.wrapper.style3:before,.wrapper.style3:after{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='100' height='100' viewBox='0 0 100 100' preserveAspectRatio='none'%3E%3Cpolygon points='0,100 100,0 100,100' style='fill:rgb(60.8050810811, 63.961371266, 80.7949189189)%3B' /%3E%3C/svg%3E")}.wrapper.style3:before{box-shadow:inset 0 -2px #3d4051,0 1px #3d4051}.wrapper.style3:after{box-shadow:inset 0 -2px #3d4051,0 1px #3d4051}.wrapper.style4{background-color:#454858}.wrapper.style4:before,.wrapper.style4:after{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='100' height='100' viewBox='0 0 100 100' preserveAspectRatio='none'%3E%3Cpolygon points='0,100 100,0 100,100' style='fill:rgb(68.5518716216, 71.6775963727, 88.3481283784)%3B' /%3E%3C/svg%3E")}.wrapper.style4:before{box-shadow:inset 0 -2px #454858,0 1px #454858}.wrapper.style4:after{box-shadow:inset 0 -2px #454858,0 1px #454858}.wrapper.style5{background-color:#4d5060}.wrapper.style5:before,.wrapper.style5:after{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='100' height='100' viewBox='0 0 100 100' preserveAspectRatio='none'%3E%3Cpolygon points='0,100 100,0 100,100' style='fill:rgb(76.5281621622, 79.5508477952, 95.6718378378)%3B' /%3E%3C/svg%3E")}.wrapper.style5:before{box-shadow:inset 0 -2px #4d5060,0 1px #4d5060}.wrapper.style5:after{box-shadow:inset 0 -2px #4d5060,0 1px #4d5060}.wrapper.style6{background-color:#555867}.wrapper.style6:before,.wrapper.style6:after{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='100' height='100' viewBox='0 0 100 100' preserveAspectRatio='none'%3E%3Cpolygon points='0,100 100,0 100,100' style='fill:rgb(84.7339527027, 87.5811255334, 102.7660472973)%3B' /%3E%3C/svg%3E")}.wrapper.style6:before{box-shadow:inset 0 -2px #555867,0 1px #555867}.wrapper.style6:after{box-shadow:inset 0 -2px #555867,0 1px #555867}.wrapper.spotlight{background-color:#5e7959}.wrapper.spotlight:before,.wrapper.spotlight:after{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='100' height='100' viewBox='0 0 100 100' preserveAspectRatio='none'%3E%3Cpolygon points='0,100 100,0 100,100' style='fill:%235e7959%3B' /%3E%3C/svg%3E")}.wrapper.spotlight:before{box-shadow:inset 0 -2px #5e7959,0 1px #5e7959}.wrapper.spotlight:after{box-shadow:inset 0 -2px #5e7959,0 1px #5e7959}.wrapper.spotlight .inner{display:-moz-flex;display:-webkit-flex;display:-ms-flex;display:flex;-moz-align-items:center;-webkit-align-items:center;-ms-align-items:center;align-items:center;-moz-flex-direction:row;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row}.wrapper.spotlight .image{border-radius:100%;margin:0 3em 2em 0;width:22em;overflow:hidden;-ms-flex:1}.wrapper.spotlight .image img{border-radius:100%;width:100%}.wrapper.spotlight .content{width:100%;-ms-flex:2}.wrapper.spotlight:nth-child(2n-1) .inner{-moz-flex-direction:row-reverse;-webkit-flex-direction:row-reverse;-ms-flex-direction:row-reverse;flex-direction:row-reverse;text-align:right}.wrapper.spotlight:nth-child(2n-1) .image{margin:0 0 2em 3em}.wrapper.spotlight.style2{background-color:#567251}.wrapper.spotlight.style2:before,.wrapper.spotlight.style2:after{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='100' height='100' viewBox='0 0 100 100' preserveAspectRatio='none'%3E%3Cpolygon points='0,100 100,0 100,100' style='fill:rgb(86.1475066964, 113.6445357143, 81.0554642857)%3B' /%3E%3C/svg%3E")}.wrapper.spotlight.style2:before{box-shadow:inset 0 -2px #567251,0 1px #567251}.wrapper.spotlight.style2:after{box-shadow:inset 0 -2px #567251,0 1px #567251}.wrapper.spotlight.style3{background-color:#4e6a49}.wrapper.spotlight.style3:before,.wrapper.spotlight.style3:after{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='100' height='100' viewBox='0 0 100 100' preserveAspectRatio='none'%3E%3Cpolygon points='0,100 100,0 100,100' style='fill:rgb(78.4527946429, 106.0595714286, 73.3404285714)%3B' /%3E%3C/svg%3E")}.wrapper.spotlight.style3:before{box-shadow:inset 0 -2px #4e6a49,0 1px #4e6a49}.wrapper.spotlight.style3:after{box-shadow:inset 0 -2px #4e6a49,0 1px #4e6a49}.wrapper.spotlight.style4{background-color:#476242}.wrapper.spotlight.style4:before,.wrapper.spotlight.style4:after{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='100' height='100' viewBox='0 0 100 100' preserveAspectRatio='none'%3E%3Cpolygon points='0,100 100,0 100,100' style='fill:rgb(70.9158638393, 98.2451071429, 65.8548928571)%3B' /%3E%3C/svg%3E")}.wrapper.spotlight.style4:before{box-shadow:inset 0 -2px #476242,0 1px #476242}.wrapper.spotlight.style4:after{box-shadow:inset 0 -2px #476242,0 1px #476242}.wrapper.spotlight.style5{background-color:#405a3b}.wrapper.spotlight.style5:before,.wrapper.spotlight.style5:after{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='100' height='100' viewBox='0 0 100 100' preserveAspectRatio='none'%3E%3Cpolygon points='0,100 100,0 100,100' style='fill:rgb(63.5367142857, 90.2011428571, 58.5988571429)%3B' /%3E%3C/svg%3E")}.wrapper.spotlight.style5:before{box-shadow:inset 0 -2px #405a3b,0 1px #405a3b}.wrapper.spotlight.style5:after{box-shadow:inset 0 -2px #405a3b,0 1px #405a3b}.wrapper.spotlight.style6{background-color:#385234}.wrapper.spotlight.style6:before,.wrapper.spotlight.style6:after{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='100' height='100' viewBox='0 0 100 100' preserveAspectRatio='none'%3E%3Cpolygon points='0,100 100,0 100,100' style='fill:rgb(56.3153459821, 81.9276785714, 51.5723214286)%3B' /%3E%3C/svg%3E")}.wrapper.spotlight.style6:before{box-shadow:inset 0 -2px #385234,0 1px #385234}.wrapper.spotlight.style6:after{box-shadow:inset 0 -2px #385234,0 1px #385234}@media screen and (max-width: 980px){.wrapper{margin:4.75em 0}.wrapper:before,.wrapper:after{height:4.75em}.wrapper:before{top:-4.75em}.wrapper:after{bottom:-4.75em;left:0}.wrapper .inner{padding:3em 3em 1em;width:100%}.wrapper.spotlight .image{margin:0 2em 2em 0;width:32em}.wrapper.spotlight:nth-child(2n-1) .image{margin:0 0 2em 2em}}@media screen and (max-width: 736px){.wrapper{margin:2.5em 0}.wrapper:before,.wrapper:after{height:2.5em}.wrapper:before{top:-2.5em}.wrapper:after{bottom:-2.5em;left:0}.wrapper .inner{padding:2em 2em .1em}.wrapper.spotlight .inner{-moz-align-items:-moz-flex-start;-webkit-align-items:-webkit-flex-start;-ms-align-items:-ms-flex-start;align-items:flex-start}.wrapper.spotlight .image{width:19em;margin:0 1.75em 2em 0}.wrapper.spotlight:nth-child(2n-1) .image{margin:0 0 2em 1.75em}}@media screen and (max-width: 480px){.wrapper.spotlight .inner{display:block}.wrapper.spotlight .image{margin:0 0 1em!important;max-width:85%;width:12em}}@media screen and (max-width: 360px){.wrapper .inner{padding:2em 1.5em .1em}}#footer .inner{padding:5em 0 3em;display:-moz-flex;display:-webkit-flex;display:-ms-flex;display:flex;-moz-flex-direction:row;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-moz-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;margin:0 auto;width:55em}#footer .inner>*{width:100%}#footer .inner form{margin:0 3em 0 0;width:calc(50% - 1.5em)}#footer .inner .contact{width:calc(50% - 1.5em)}#footer .inner .copyright{border-top:solid 2px rgba(255,255,255,.125);list-style:none;margin:4em 0 2em;padding:2em 0 0;width:100%}#footer .inner .copyright li{border-left:solid 2px rgba(255,255,255,.125);color:#ffffff59;display:inline-block;font-size:.9em;line-height:1;margin-left:1em;padding:0 0 0 1em}#footer .inner .copyright li:first-child{border-left:0;margin-left:0;padding-left:0}#footer .inner .copyright li a{color:inherit}@media screen and (max-width: 1280px){#footer{background-color:#2e3141;background-image:linear-gradient(to top,#2e3141cc,#2e3141cc),url(/images/bg.jpg);background-size:auto,cover;background-position:center,center;margin-top:-6.5em;padding-top:6.5em}}@media screen and (max-width: 980px){#footer{margin-top:-4.75em;padding-top:4.75em}#footer .inner{padding:3em 3em 1em;display:block;width:100%}#footer .inner form,#footer .inner .contact{width:100%;margin:0 0 4em}#footer .inner .copyright{margin:4em 0 2em}}@media screen and (max-width: 736px){#footer{margin-top:-2.5em;padding-top:2.5em}#footer .inner{padding:2em 2em .1em}#footer .inner form,#footer .inner .contact{margin:0 0 3em}}@media screen and (max-width: 480px){#footer .inner .copyright li{border-left:0;display:block;margin:1em 0 0;padding-left:0}#footer .inner .copyright li:first-child{margin-top:0}}@media screen and (max-width: 360px){#footer .inner{padding:2em 1.5em .1em}}html{scroll-behavior:smooth;scroll-padding-top:2rem}.markdown-content table>tbody td{vertical-align:top;min-width:120px}.markdown-content table>tbody td img{max-width:100px}@media screen and (max-width: 560px){.markdown-content table>tbody td>img{max-width:70px}}@media screen and (max-width: 360px){.markdown-content table>tbody td>img{max-width:40px}} diff --git a/assets/index.page-CuA7a2QU.js b/assets/index.page-CuA7a2QU.js new file mode 100644 index 00000000..449405df --- /dev/null +++ b/assets/index.page-CuA7a2QU.js @@ -0,0 +1,3 @@ +import{a2 as r,ɵ as i,a as c,b as p,d as s,e as l,y as m,I as d}from"./index-Be9IN4QR.js";import{P as _}from"./preview.component-4NcaEiV0.js";const e=class e{constructor(){this.posts=r(n=>n.filename.includes("/src/content/talks/"))}};e.ɵfac=function(t){return new(t||e)},e.ɵcmp=i({type:e,selectors:[["ng-component"]],decls:5,vars:1,consts:[[1,"wrapper","alt"],[1,"inner"],[1,"major"],["content","talks",3,"posts"]],template:function(t,o){t&1&&(c(0,"section",0)(1,"div",1)(2,"h2",2),p(3,"Meine Talks und Slides"),s(),l(4,"dk-preview",3),s()()),t&2&&(m(4),d("posts",o.posts))},dependencies:[_],styles:[`.wrapper[_ngcontent-%COMP%] { + margin-top: 0; + }`]});let a=e;export{a as default}; diff --git a/assets/index.page-DQrjxOhH.js b/assets/index.page-DQrjxOhH.js new file mode 100644 index 00000000..979038a5 --- /dev/null +++ b/assets/index.page-DQrjxOhH.js @@ -0,0 +1,3 @@ +import{a2 as r,ɵ as p,a as c,b as i,d as s,e as m,y as l,I as _}from"./index-Be9IN4QR.js";import{P as d}from"./preview.component-4NcaEiV0.js";const e=class e{constructor(){this.posts=r(n=>n.filename.includes("/src/content/projects/"))}};e.ɵfac=function(t){return new(t||e)},e.ɵcmp=p({type:e,selectors:[["ng-component"]],decls:5,vars:1,consts:[[1,"wrapper","alt"],[1,"inner"],[1,"major"],["content","projects",3,"posts"]],template:function(t,a){t&1&&(c(0,"section",0)(1,"div",1)(2,"h2",2),i(3,"Meine Projekte"),s(),m(4,"dk-preview",3),s()()),t&2&&(l(4),_("posts",a.posts))},dependencies:[d],styles:[`.wrapper[_ngcontent-%COMP%] { + margin-top: 0; + }`]});let o=e;export{o as default}; diff --git a/assets/index.page-DWrTCYB7.js b/assets/index.page-DWrTCYB7.js new file mode 100644 index 00000000..b180b7b2 --- /dev/null +++ b/assets/index.page-DWrTCYB7.js @@ -0,0 +1,236 @@ +var J=Object.defineProperty;var X=(i,n,e)=>n in i?J(i,n,{enumerable:!0,configurable:!0,writable:!0,value:e}):i[n]=e;var r=(i,n,e)=>X(i,typeof n!="symbol"?n+"":n,e);import{O as G,i as ee,f as te,h as ne,j as m,N as ie,C as ae,k as j,S as re,B as se,E as oe,P as R,l as F,s as le,o as de,t as ce,ɵ as _,m as he,n as ue,p as ge,q as T,r as C,u as pe,v as me,w as A,a as o,e as h,d as s,x as H,y as g,z as q,A as _e,D as Z,F as fe,G as E,H as ye,I as v,J as be,K as we,L as Pe,M as ke,Q as ve,R as Ce,T as Ae,U as xe,b as l,V as Q,W as S,X as Se,Y as Be,Z as Ie,$ as Te,a0 as $,a1 as K,a2 as B}from"./index-Be9IN4QR.js";import{P as Ee}from"./preview.component-4NcaEiV0.js";function Me(i,n,e){return new G(function(c){var t=function(){for(var d=[],u=0;u{const e=class e{constructor(){r(this,"videoId");r(this,"width");r(this,"height");r(this,"isLoading");r(this,"buttonLabel");r(this,"quality")}_getBackgroundImage(){let t;return this.quality==="low"?t=`https://i.ytimg.com/vi/${this.videoId}/hqdefault.jpg`:this.quality==="high"?t=`https://i.ytimg.com/vi/${this.videoId}/maxresdefault.jpg`:t=`https://i.ytimg.com/vi_webp/${this.videoId}/sddefault.webp`,`url(${t})`}};r(e,"ɵfac",function(a){return new(a||e)}),r(e,"ɵcmp",_({type:e,selectors:[["youtube-player-placeholder"]],hostAttrs:[1,"youtube-player-placeholder"],hostVars:8,hostBindings:function(a,d){a&2&&(q("background-image",d._getBackgroundImage())("width",d.width,"px")("height",d.height,"px"),we("youtube-player-placeholder-loading",d.isLoading))},inputs:{videoId:"videoId",width:"width",height:"height",isLoading:"isLoading",buttonLabel:"buttonLabel",quality:"quality"},decls:4,vars:1,consts:[["type","button",1,"youtube-player-placeholder-button"],["height","100%","version","1.1","viewBox","0 0 68 48","focusable","false","aria-hidden","true"],["d","M66.52,7.74c-0.78-2.93-2.49-5.41-5.42-6.19C55.79,.13,34,0,34,0S12.21,.13,6.9,1.55 C3.97,2.33,2.27,4.81,1.48,7.74C0.06,13.05,0,24,0,24s0.06,10.95,1.48,16.26c0.78,2.93,2.49,5.41,5.42,6.19 C12.21,47.87,34,48,34,48s21.79-0.13,27.1-1.55c2.93-0.78,4.64-3.26,5.42-6.19C67.94,34.95,68,24,68,24S67.94,13.05,66.52,7.74z","fill","#f00"],["d","M 45,24 27,14 27,34","fill","#fff"]],template:function(a,d){a&1&&(o(0,"button",0),Pe(),o(1,"svg",1),h(2,"path",2)(3,"path",3),s()()),a&2&&ke("aria-label",d.buttonLabel)},styles:[".youtube-player-placeholder{display:flex;align-items:center;justify-content:center;width:100%;overflow:hidden;cursor:pointer;background-color:#000;background-position:center center;background-size:cover;transition:box-shadow 300ms ease;box-shadow:inset 0 120px 90px -90px rgba(0,0,0,.8)}.youtube-player-placeholder-button{transition:opacity 300ms ease;-moz-appearance:none;-webkit-appearance:none;background:none;border:none;padding:0;display:flex}.youtube-player-placeholder-button svg{width:68px;height:48px}.youtube-player-placeholder-loading{box-shadow:none}.youtube-player-placeholder-loading .youtube-player-placeholder-button{opacity:0}"],encapsulation:2,changeDetection:0}));let n=e;return n})();const De=new be("YOUTUBE_PLAYER_CONFIG"),N=640,U=390;function W(i){return i==null?i:T(i,0)}var p=function(i){return i[i.UNSTARTED=-1]="UNSTARTED",i[i.ENDED=0]="ENDED",i[i.PLAYING=1]="PLAYING",i[i.PAUSED=2]="PAUSED",i[i.BUFFERING=3]="BUFFERING",i[i.CUED=5]="CUED",i}(p||{});let M=(()=>{const e=class e{constructor(){r(this,"_ngZone",m(ie));r(this,"_nonce",m(ae,{optional:!0}));r(this,"_changeDetectorRef",m(j));r(this,"_player");r(this,"_pendingPlayer");r(this,"_existingApiReadyCallback");r(this,"_pendingPlayerState");r(this,"_destroyed",new re);r(this,"_playerChanges",new se(void 0));r(this,"_isLoading",!1);r(this,"_hasPlaceholder",!0);r(this,"_isBrowser");r(this,"videoId");r(this,"_height",U);r(this,"_width",N);r(this,"startSeconds");r(this,"endSeconds");r(this,"suggestedQuality");r(this,"playerVars");r(this,"disableCookies",!1);r(this,"loadApi");r(this,"disablePlaceholder",!1);r(this,"showBeforeIframeApiLoads",!1);r(this,"placeholderButtonLabel");r(this,"placeholderImageQuality");r(this,"ready",new oe);r(this,"stateChange",this._getLazyEmitter("onStateChange"));r(this,"error",this._getLazyEmitter("onError"));r(this,"apiChange",this._getLazyEmitter("onApiChange"));r(this,"playbackQualityChange",this._getLazyEmitter("onPlaybackQualityChange"));r(this,"playbackRateChange",this._getLazyEmitter("onPlaybackRateChange"));r(this,"youtubeContainer");const t=m(R),a=m(De,{optional:!0});this.loadApi=a?.loadApi??!0,this.disablePlaceholder=!!a?.disablePlaceholder,this.placeholderButtonLabel=a?.placeholderButtonLabel||"Play video",this.placeholderImageQuality=a?.placeholderImageQuality||"standard",this._isBrowser=F(t)}get height(){return this._height}set height(t){this._height=t==null||isNaN(t)?U:t}get width(){return this._width}set width(t){this._width=t==null||isNaN(t)?N:t}ngAfterViewInit(){this._conditionallyLoad()}ngOnChanges(t){this._shouldRecreatePlayer(t)?this._conditionallyLoad():this._player&&((t.width||t.height)&&this._setSize(),t.suggestedQuality&&this._setQuality(),(t.startSeconds||t.endSeconds||t.suggestedQuality)&&this._cuePlayer())}ngOnDestroy(){this._pendingPlayer?.destroy(),this._player&&(this._player.destroy(),window.onYouTubeIframeAPIReady=this._existingApiReadyCallback),this._playerChanges.complete(),this._destroyed.next(),this._destroyed.complete()}playVideo(){this._player?this._player.playVideo():(this._getPendingState().playbackState=p.PLAYING,this._load(!0))}pauseVideo(){this._player?this._player.pauseVideo():this._getPendingState().playbackState=p.PAUSED}stopVideo(){this._player?this._player.stopVideo():this._getPendingState().playbackState=p.CUED}seekTo(t,a){this._player?this._player.seekTo(t,a):this._getPendingState().seek={seconds:t,allowSeekAhead:a}}mute(){this._player?this._player.mute():this._getPendingState().muted=!0}unMute(){this._player?this._player.unMute():this._getPendingState().muted=!1}isMuted(){return this._player?this._player.isMuted():this._pendingPlayerState?!!this._pendingPlayerState.muted:!1}setVolume(t){this._player?this._player.setVolume(t):this._getPendingState().volume=t}getVolume(){return this._player?this._player.getVolume():this._pendingPlayerState&&this._pendingPlayerState.volume!=null?this._pendingPlayerState.volume:0}setPlaybackRate(t){if(this._player)return this._player.setPlaybackRate(t);this._getPendingState().playbackRate=t}getPlaybackRate(){return this._player?this._player.getPlaybackRate():this._pendingPlayerState&&this._pendingPlayerState.playbackRate!=null?this._pendingPlayerState.playbackRate:0}getAvailablePlaybackRates(){return this._player?this._player.getAvailablePlaybackRates():[]}getVideoLoadedFraction(){return this._player?this._player.getVideoLoadedFraction():0}getPlayerState(){if(!(!this._isBrowser||!window.YT))return this._player?this._player.getPlayerState():this._pendingPlayerState&&this._pendingPlayerState.playbackState!=null?this._pendingPlayerState.playbackState:p.UNSTARTED}getCurrentTime(){return this._player?this._player.getCurrentTime():this._pendingPlayerState&&this._pendingPlayerState.seek?this._pendingPlayerState.seek.seconds:0}getPlaybackQuality(){return this._player?this._player.getPlaybackQuality():"default"}getAvailableQualityLevels(){return this._player?this._player.getAvailableQualityLevels():[]}getDuration(){return this._player?this._player.getDuration():0}getVideoUrl(){return this._player?this._player.getVideoUrl():""}getVideoEmbedCode(){return this._player?this._player.getVideoEmbedCode():""}_load(t){this._isBrowser&&(!window.YT||!window.YT.Player?(this.loadApi?(this._isLoading=!0,Re(this._nonce)):this.showBeforeIframeApiLoads,this._existingApiReadyCallback=window.onYouTubeIframeAPIReady,window.onYouTubeIframeAPIReady=()=>{this._existingApiReadyCallback?.(),this._ngZone.run(()=>this._createPlayer(t))}):this._createPlayer(t))}_conditionallyLoad(){this._shouldShowPlaceholder()?this.playerVars?.autoplay===1&&this._load(!0):this._load(!1)}_shouldShowPlaceholder(){return this.disablePlaceholder?!1:this._isBrowser?this._hasPlaceholder&&!!this.videoId&&!this._player:!0}_getPendingState(){return this._pendingPlayerState||(this._pendingPlayerState={}),this._pendingPlayerState}_shouldRecreatePlayer(t){const a=t.videoId||t.playerVars||t.disableCookies||t.disablePlaceholder;return!!a&&!a.isFirstChange()}_createPlayer(t){if(this._player?.destroy(),this._pendingPlayer?.destroy(),typeof YT>"u"||!this.videoId&&!this.playerVars?.list)return;const a=this._ngZone.runOutsideAngular(()=>new YT.Player(this.youtubeContainer.nativeElement,{videoId:this.videoId,host:this.disableCookies?"https://www.youtube-nocookie.com":void 0,width:this.width,height:this.height,playerVars:t?{...this.playerVars||{},autoplay:1}:this.playerVars})),d=u=>{this._ngZone.run(()=>{this._isLoading=!1,this._hasPlaceholder=!1,this._player=a,this._pendingPlayer=void 0,a.removeEventListener("onReady",d),this._playerChanges.next(a),this.ready.emit(u),this._setSize(),this._setQuality(),this._pendingPlayerState&&(this._applyPendingPlayerState(a,this._pendingPlayerState),this._pendingPlayerState=void 0);const f=a.getPlayerState();f===p.UNSTARTED||f===p.CUED||f==null?this._cuePlayer():t&&this.startSeconds&&this.startSeconds>0&&a.seekTo(this.startSeconds,!0),this._changeDetectorRef.markForCheck()})};this._pendingPlayer=a,a.addEventListener("onReady",d)}_applyPendingPlayerState(t,a){const{playbackState:d,playbackRate:u,volume:f,muted:V,seek:x}=a;switch(d){case p.PLAYING:t.playVideo();break;case p.PAUSED:t.pauseVideo();break;case p.CUED:t.stopVideo();break}u!=null&&t.setPlaybackRate(u),f!=null&&t.setVolume(f),V!=null&&(V?t.mute():t.unMute()),x!=null&&t.seekTo(x.seconds,x.allowSeekAhead)}_cuePlayer(){this._player&&this.videoId&&this._player.cueVideoById({videoId:this.videoId,startSeconds:this.startSeconds,endSeconds:this.endSeconds,suggestedQuality:this.suggestedQuality})}_setSize(){this._player?.setSize(this.width,this.height)}_setQuality(){this._player&&this.suggestedQuality&&this._player.setPlaybackQuality(this.suggestedQuality)}_getLazyEmitter(t){return this._playerChanges.pipe(le(a=>a?Me(d=>{a.addEventListener(t,d)},d=>{try{a?.removeEventListener?.(t,d)}catch{}}):de()),a=>new G(d=>a.subscribe({next:u=>this._ngZone.run(()=>d.next(u)),error:u=>d.error(u),complete:()=>d.complete()})),ce(this._destroyed))}};r(e,"ɵfac",function(a){return new(a||e)}),r(e,"ɵcmp",_({type:e,selectors:[["youtube-player"]],viewQuery:function(a,d){if(a&1&&he(Oe,7),a&2){let u;ue(u=ge())&&(d.youtubeContainer=u.first)}},inputs:{videoId:"videoId",height:[2,"height","height",T],width:[2,"width","width",T],startSeconds:[2,"startSeconds","startSeconds",W],endSeconds:[2,"endSeconds","endSeconds",W],suggestedQuality:"suggestedQuality",playerVars:"playerVars",disableCookies:[2,"disableCookies","disableCookies",C],loadApi:[2,"loadApi","loadApi",C],disablePlaceholder:[2,"disablePlaceholder","disablePlaceholder",C],showBeforeIframeApiLoads:[2,"showBeforeIframeApiLoads","showBeforeIframeApiLoads",C],placeholderButtonLabel:"placeholderButtonLabel",placeholderImageQuality:"placeholderImageQuality"},outputs:{ready:"ready",stateChange:"stateChange",error:"error",apiChange:"apiChange",playbackQualityChange:"playbackQualityChange",playbackRateChange:"playbackRateChange"},features:[pe,me],decls:4,vars:3,consts:[["youtubeContainer",""],[3,"videoId","width","height","isLoading","buttonLabel","quality"],[3,"click","videoId","width","height","isLoading","buttonLabel","quality"]],template:function(a,d){a&1&&(A(0,Le,1,6,"youtube-player-placeholder",1),o(1,"div"),h(2,"div",null,0),s()),a&2&&(H(d._shouldShowPlaceholder()?0:-1),g(),q("display",d._shouldShowPlaceholder()?"none":""))},dependencies:[ze],encapsulation:2,changeDetection:0}));let n=e;return n})(),I=!1;function Re(i){if(I)return;const n="https://www.youtube.com/iframe_api",e=document.createElement("script"),c=t=>{e.removeEventListener("load",c),e.removeEventListener("error",c),t.type==="error"&&(I=!1)};e.addEventListener("load",c),e.addEventListener("error",c),e.src=n,e.async=!0,i&&e.setAttribute("nonce",i),I=!0,document.body.appendChild(e)}let Fe=(()=>{const e=class e{};r(e,"ɵfac",function(a){return new(a||e)}),r(e,"ɵmod",te({type:e,imports:[M],exports:[M]})),r(e,"ɵinj",ne({}));let n=e;return n})();function Ve(i,n){if(i&1&&(o(0,"li",1)(1,"div",2)(2,"div",3)(3,"span",4),l(4),s(),o(5,"span",5),l(6),s()(),o(7,"h4",6),l(8),s(),o(9,"span",7),l(10),s(),o(11,"p"),l(12),s()()()),i&2){const e=n.$implicit,c=n.$index;v("ngClass",c%2!==0?"right":"left"),g(4),Q(" ",e.when," "),g(2),S(e.location),g(2),Q(" ",e.what," "),g(2),S(e.where),g(2),S(e.info)}}const y=class y{constructor(){this.steps=[{location:"Frankfurt (Oder)",when:"2012",what:`🧰 Facharbeiter +IT-Systemelektroniker`,where:"Deutschen Telekom AG",info:"Informatik, Telekommunikationstechnik sowie Elektrotechnik"},{location:"Cottbus",when:"2012",what:"☎️ Sachbearbeiter Technische Kundenberatung",where:"Deutsche Telekom Technischer Service GmbH (Customer Competence Center)",info:"Second Level Support für VoIP und WLAN Produkte."},{location:"Leipzig",when:"2015",what:`🎓 Bachelor Of Engineering +Kommunikations- Und Medieninformatik`,where:"Deutsche Telekom Hochschule für Telekommunikation",info:"Netzwerk- und Übertragungstechnik, Software Engineering, IT-Architektur, Protokollengineering sowie Web und Medien-Technologien."},{location:"Berlin",when:"2015",what:"🚨 Entwickler TETRA Support Und Umsetzung",where:"Deutsche Telekom Healthcare & Security Solutions GmbH",info:"Umsetzung von Client- und Serversystemen im Bereich des TETRA-BOS. Administration, Konfiguration, Integration und Test von IT-Systemen."},{location:" ",when:"2017",what:"📕 Angular (1. Auflage)",where:"dpunkt.verlag",info:"Grundlagen, fortgeschrittene Techniken und Best Practices mit TypeScript"},{location:"Berlin",when:"2019",what:`💎 Spezialist +Entwickler Und IT-Berater`,where:"DB Systel GmbH",info:"Entwicklung nutzerzentrierter Webanwendungen im Enterprise-Umfeld. Beratung zur Umsetzung von Web-Anwendungen und -Architekturen sowie User Experience (UX) Consulting."},{location:" ",when:"2019",what:"📕 Angular (2. Auflage)",where:"dpunkt.verlag",info:"Grundlagen, fortgeschrittene Themen und Best Practices – inklusive NativeScript und NgRx"},{location:" ",when:"2020",what:"📕 Angular (3. Auflage)",where:"dpunkt.verlag",info:"Grundlagen, fortgeschrittene Themen und Best Practices – inklusive RxJS, NgRx und PWA"},{location:"Berlin",when:"seit 2022",what:"💎 Seniorberater & Frontend Architect",where:"DB Systel GmbH",info:"Entwicklung von Enterprise-Webanwendungen"},{location:" ",when:"2023",what:"📕 Angular (4. Auflage)",where:"dpunkt.verlag",info:"Das große Praxisbuch – Grundlagen, fortgeschrittene Themen und Best Practices. Inklusive RxJS, NgRx und a11y."}].reverse()}};y.ɵfac=function(e){return new(e||y)},y.ɵcmp=_({type:y,selectors:[["dk-personal-timeline"]],decls:3,vars:0,consts:[[1,"timeline"],[1,"container","hidden","list-item",3,"ngClass"],[1,"content"],[1,"timeline-heading-header"],[1,"timeline-heading-info","time"],[1,"timeline-heading-info","location"],[1,"timeline-heading"],[1,"timeline-heading-info"]],template:function(e,c){e&1&&(o(0,"ol",0),ve(1,Ve,13,6,"li",1,Ce),s()),e&2&&(g(),Ae(c.steps))},dependencies:[xe],styles:[` + +.timeline[_ngcontent-%COMP%] { + position: relative; + margin: 0 auto; + padding: 0; +} + + +.timeline[_ngcontent-%COMP%]::after { + content: ""; + position: absolute; + width: 6px; + background-color: rgb(156.2926829268, 155.4268292683, 140.7073170732); + top: 0; + bottom: 0; + left: 50%; + margin-left: -3px; +} + + +.timeline-heading-header[_ngcontent-%COMP%] { + display: flex; + justify-content: space-between; + align-items: baseline; +} +.timeline-heading-info[_ngcontent-%COMP%] { + font-size: 0.9em; + text-transform: none; + font-weight: bold; + line-height: 1.1; +} +.timeline-heading-info.time[_ngcontent-%COMP%] { + font-size: 1.3em; +} +.timeline-heading[_ngcontent-%COMP%] { + font-size: 1.1em; + text-transform: none; + padding-top: 0.7em; +} + + +.container[_ngcontent-%COMP%] { + padding: 10px; + position: relative; + background-color: inherit; + width: 50%; + max-height: 200px; + list-style: none; +} + + +.container[_ngcontent-%COMP%]::after { + content: ""; + position: absolute; + width: 29px; + height: 29px; + right: -14px; + background-color: white; + border: 4px solid #848372; + top: 25px; + border-radius: 50%; + z-index: 1; +} + + +.left[_ngcontent-%COMP%] { + left: 0; +} + + +.right[_ngcontent-%COMP%] { + left: 50%; +} + + +.left[_ngcontent-%COMP%]::before { + content: " "; + height: 0; + position: absolute; + top: 22px; + width: 0; + z-index: 1; + right: 30px; +} + + +.right[_ngcontent-%COMP%]::before { + content: " "; + height: 0; + position: absolute; + top: 22px; + width: 0; + z-index: 1; + left: 30px; +} + + +.right[_ngcontent-%COMP%]::after { + left: -14px; +} + + +.content[_ngcontent-%COMP%] { + padding: 0.8em 1em; + position: relative; + border-radius: 6px; +} + + +@media screen and (max-width: 800px) { + + + .timeline[_ngcontent-%COMP%]::after { + left: 20px; + } + .content[_ngcontent-%COMP%] { + padding-right: 0px; + } + + + .container[_ngcontent-%COMP%] { + width: 100%; + padding-left: 30px; + padding-right: 0px; + max-height: unset; + } + + + .left[_ngcontent-%COMP%]::after, + .right[_ngcontent-%COMP%]::after { + left: 6px; + } + + + .right[_ngcontent-%COMP%] { + left: 0%; + } +}`]});let O=y;const Qe=["videoBox"],Ne=()=>[M];function Ue(i,n){if(i&1&&h(0,"youtube-player",24),i&2){const e=E(2);v("width",e.youtubePlayerWidth)}}function We(i,n){i&1&&h(0,"div")}function Ye(i,n){i&1&&(o(0,"div",20,0),A(2,Ue,1,1)(3,We,1,0),$(4,2,Ne,null,3),K(0,-1),s())}function Ge(i,n){i&1&&h(0,"img",25)}function je(i,n){i&1&&h(0,"div")}const b=class b{constructor(){this.cdref=m(j),this.platformId=m(R),this.videoBox=Se("videoBox"),this.youtubePlayerWidth=300,this.isBrowser=!1,this.isBrowser=F(this.platformId)}onResize(){const n=this.videoBox();n?.nativeElement?.clientWidth&&(this.youtubePlayerWidth=n.nativeElement.clientWidth)}ngOnInit(){if(this.isBrowser){const n=document.createElement("script");n.src="https://www.youtube.com/iframe_api",document.body.appendChild(n)}}ngAfterViewChecked(){this.onResize(),this.cdref.detectChanges()}};b.ɵfac=function(e){return new(e||b)},b.ɵcmp=_({type:b,selectors:[["dk-about"]],viewQuery:function(e,c){e&1&&Be(c.videoBox,Qe,5),e&2&&Ie()},hostBindings:function(e,c){e&1&&Z("resize",function(a){return c.onResize(a)},!1,Te)},decls:60,vars:1,consts:[["videoBox",""],["id","about",1,"wrapper","style2"],[1,"inner"],[1,"major"],["id","about-k9n",1,"about"],[1,"interviews"],[1,"text-img"],["href","https://techstories.dbsystel.de/blog/profiles/Maximilian-Franzke.html","target","_blank"],["href","https://www.linkedin.com/in/jan-g%C3%B6tze-178516a6/","target","_blank"],[1,"button-group"],["href","https://open.spotify.com/episode/4n6qXpYtCZ9UQACbUPNMpG?si=fIldVBQhR_e8Vw4iStiBSw",1,"button","small"],[1,"icon","brands","fa-spotify"],["href","https://podcasts.apple.com/de/podcast/digitale-barrierefreiheit-danny-koppenhagen-und-maximilian/id1462447493?i=1000642092259",1,"button","small"],[1,"icon","brands","fa-apple"],["href","https://deezer.page.link/MZaQ2c5YqQ28vcdn6",1,"button","small"],[1,"icon","brands","fa-deezer"],["src","images/it_at_db_podcast_a11y.jpeg","width","300","height","300","alt",'Ein lebendiger oranger Hintergrund bildet die Kulisse für kreative Würfel, die in geschickter Anordnung die Worte "Accessible" und "Possible" formen. Die Würfel sind tastbar, mit klaren Strukturen, um die Botschaft haptisch erfahrbar zu machen. Das Bild verweist auf Folge Nummer 73 der Podcastfolge von IT@DB zum Thema "Digitale Barrierefreiheit"'],[1,"grid-container"],[1,"grid-description-1"],[1,"grid-description-2"],[1,"grid-details-1","video-box"],[1,"grid-details-2"],["href","https://www.agiledrop.com/blog/interview-danny-koppenhagen-vuejs-angular-buch-scully-and-web-components",1,"button","small"],[1,"features"],["videoId","O3bYfZ8tcLc",3,"width"],["src","https://www.agiledrop.com/_next/image?url=https%3A%2F%2Fa.storyblok.com%2Ff%2F229922%2F400x500%2F5f11469228%2Frc-angular-interview-3.png&w=2048&q=80","alt","Ein roter Hintergrund mit einem großen Angular-Logo und dem Foto von Danny Koppenhagen auf der rechten Seite"]],template:function(e,c){e&1&&(o(0,"section",1)(1,"div",2)(2,"h2",3),l(3,"Über mich"),s(),o(4,"p"),l(5," Ich bin Danny Koppenhagen: Frontend Entwickler und -Architekt. Ich entwickle seit vielen Jahren nutzerzentrierte Enterprise Webanwendung und bevorzuge die Arbeit im DevOps-Produktionsmodell. Als technologische Basis setze ich auf moderne SPA-Frameworks wie Angular und Vue mit TypeScript. Weiterhin bin ich als Berater im Bereich der Webentwicklung tätig und Maintainer einiger Open Source Projekte. "),s(),o(6,"section",4)(7,"h3",3),l(8,"k9n.dev?"),s(),o(9,"p"),l(10," Warum k9n.dev? Hierbei handelt es sich um ein Numeronym, bei dem die Zahl zwischen den beiden Buchstaben für die Anzahl der ausgelassenen Buchstaben in meinem Nachnamen steht (Vgl.: a11y, i18n, l10n, ...). "),s()(),o(11,"h3",3),l(12,"Interviews"),s(),o(13,"section",5)(14,"article",6)(15,"div")(16,"h4"),l(17," IT@DB Podcast Folge #73 vom 18.01.2024: Digitale Barrierefreiheit "),s(),o(18,"p"),l(19," Zusammen mit meinem Kollegen "),o(20,"a",7),l(21,"Maximilian Franzke"),s(),l(22," von der DB Systel, war ich zu Gast beim IT@DB Podcast von "),o(23,"a",8),l(24,"Jan Götze"),s(),l(25,". Hier haben wir darüber gesprochen, warum es in unserer zunehmend digitalisierten Welt von entscheidender Bedeutung ist, dass wir die Prinzipien der digitalen Barrierefreiheit fest in unserer Gestaltung und Entwicklung von digitalen Produkten verankern. Barrierefreiheit geht weit über bloße Compliance hinaus – es ist die Grundlage für eine inklusive und gerechte Online-Erfahrung! Digitale Barrierefreiheit ermöglicht es Menschen mit unterschiedlichen Fähigkeiten, unabhängig von physischen oder kognitiven Einschränkungen, die gleichen Chancen im digitalen Raum zu nutzen. "),s(),o(26,"div",9)(27,"a",10),h(28,"i",11),l(29," Spotify "),s(),o(30,"a",12),h(31,"i",13),l(32,"Apple Podcasts "),s(),o(33,"a",14),h(34,"i",15),l(35,"Deezer "),s()()(),h(36,"img",16),s(),o(37,"div",17)(38,"article",18)(39,"h4"),l(40,"#000000 c0ffee Tech-Talk der DB Systel"),s(),o(41,"p"),l(42,' Im Mai war ich zu Gast beim #000000 c0ffee Tech-Talk der DB Systel, der Auf Grund der weltweiten Corona Pandemie remote stattfand.\\r\\n Im Interview spreche ich über meine Erfahrungen mit Vue.js und Angular und gehe darauf ein, welches Framework sich für welche Anwendungszwecke eignet. Außerdem erläutere ich, wie der aktuelle Stand der Technik für Progressive Webapps (PWA) ist. Im letzten Teil sprechen wir über die Anbindung von APIs und über das Architekturmuster \\"Backend For Frontends\\" (BFF). '),s()(),o(43,"article",19)(44,"h4"),l(45,"Interview mit Agiledrop"),s(),o(46,"p"),l(47,' Im Interview mit Agiledrop spreche ich über meinen Weg zur Webentwicklung und wie ich dazu kam Co-Autor des deutschsprachigen Angular Buchs zu sein. Weiterhin berichte ich von meinen praktischen Erfahrungen mit Angular und Vue.js und in welchem Fall ich auf Angular oder Vue.js setzen würde. Zum Abschluss gehe ich auf den Static-Site-Generator \\"Scully\\" und Webcomponents sowie auf meine Erwartungen an die zukünftige Entwicklung im Bereich Webtechnologien ein. '),s()(),A(48,Ye,6,0,"div",20),o(49,"div",21),A(50,Ge,1,0)(51,je,1,0),$(52,50,null,null,51),K(0,-1),o(54,"a",22),l(55,"Zum kompletten Interview"),s()()()(),o(56,"h3",3),l(57,"Mein Werdegang"),s(),o(58,"section",23),h(59,"dk-personal-timeline"),s()()()),e&2&&(g(48),H(c.isBrowser?48:-1))},dependencies:[Fe,O],styles:[`p[_ngcontent-%COMP%] { + white-space: pre-wrap; +} + +.about[_ngcontent-%COMP%], +.interviews[_ngcontent-%COMP%] { + padding-bottom: 30px; +} + +.about[_ngcontent-%COMP%] .button-group[_ngcontent-%COMP%], +.interviews[_ngcontent-%COMP%] .button-group[_ngcontent-%COMP%] { + display: flex; + gap: 1rem; +} + +.text-img[_ngcontent-%COMP%] { + display: flex; + gap: 2rem; + margin-bottom: 3rem; +} + +.text-img[_ngcontent-%COMP%] img[_ngcontent-%COMP%] { + max-width: 300px; + height: fit-content; +} + + + + +.grid-container[_ngcontent-%COMP%] { + display: grid; + grid-template-columns: 50% 50%; + gap: 30px 1.75em; + grid-auto-flow: row; + grid-template-areas: "grid-description-1 grid-description-2" "grid-details-1 grid-details-2"; + margin-bottom: 1.2em; +} + +.grid-description-1[_ngcontent-%COMP%] { + grid-area: grid-description-1; +} + +.grid-details-1[_ngcontent-%COMP%] { + grid-area: grid-details-1; +} + +.grid-description-2[_ngcontent-%COMP%] { + grid-area: grid-description-2; +} + +.grid-details-2[_ngcontent-%COMP%] { + grid-area: grid-details-2; +} + +@media screen and (max-width: 800px) { + .grid-container[_ngcontent-%COMP%] { + grid-template-columns: 1fr; + grid-template-rows: auto; + grid-template-areas: "grid-description-1" "grid-details-1" "grid-description-2" "grid-details-2"; + } +} + + + + +@media screen and (max-width: 800px) { + .button.small[_ngcontent-%COMP%] { + padding: 0px 10px; + } +} + +@media screen and (max-width: 736px) { + .text-img[_ngcontent-%COMP%] { + flex-wrap: wrap; + } +}`],changeDetection:0});let L=b;const w=class w{};w.ɵfac=function(e){return new(e||w)},w.ɵcmp=_({type:w,selectors:[["dk-meetups"]],decls:11,vars:0,consts:[[1,"wrapper","alt","spotlight"],[1,"inner"],["href","https://www.meetup.com/de-DE/Angular-Meetup-Berlin",1,"image"],["src","images/Angular-Berlin_Icon.png","alt","Angular Berlin Logo"],[1,"content"],[1,"major"],["href","https://www.meetup.com/de-DE/Angular-Meetup-Berlin",1,"special"]],template:function(e,c){e&1&&(o(0,"section",0)(1,"div",1)(2,"a",2),h(3,"img",3),s(),o(4,"div",4)(5,"h2",5),l(6,"Angular Berlin Meetup"),s(),o(7,"p"),l(8," Ich bin Co-Organisator des Angular Meetup in Berlin. Dieses findet ca. alle 4-6 Wochen an wechselnden Standorten statt. Neben zwei Talks am Abend steht der Austausch und die Vernetzung mit anderen Entwickler:innen im Vordergrund. "),s(),o(9,"a",6),l(10,"Meetup.com: Angular Berlin"),s()()()())},styles:[`.image[_ngcontent-%COMP%], +.image[_ngcontent-%COMP%] > img[_ngcontent-%COMP%], +.wrapper.spotlight[_ngcontent-%COMP%] .image[_ngcontent-%COMP%] { + border-radius: 0%; + max-width: 200px; +} + +.wrapper.spotlight[_ngcontent-%COMP%]:nth-child(2n-1) .inner[_ngcontent-%COMP%] { + text-align: left; +}`]});let z=w;const P=class P{};P.ɵfac=function(e){return new(e||P)},P.ɵcmp=_({type:P,selectors:[["dk-publications"]],decls:12,vars:0,consts:[["id","wrapper"],["id","one",1,"wrapper","spotlight","style1"],[1,"inner"],["href","https://angular-buch.com","aria-label","Zur Buchwebsite (angular-buch.com)",1,"image"],["src","images/book-cover.png","alt","Buchcover: angular-buch.com"],[1,"content"],[1,"major"],["href","https://angular-buch.com",1,"special"]],template:function(e,c){e&1&&(o(0,"section",0)(1,"section",1)(2,"div",2)(3,"a",3),h(4,"img",4),s(),o(5,"div",5)(6,"h2",6),l(7," Angular: Das große Praxisbuch – Grundlagen, fortgeschrittene Themen und Best Practices – ab Angular 15 "),s(),o(8,"p"),l(9," Lernen Sie Angular mit diesem umfassenden Praxisbuch! Dieses Buch stellt Ihnen die Bausteine von Angular, viele Best Practices und die notwendigen Werkzeuge vor. Beginnen Sie Ihren Einstieg mit einer praxisnahen Einführung. "),s(),o(10,"a",7),l(11,"angular-buch.com"),s()()()()())},styles:[`.image[_ngcontent-%COMP%], +.image[_ngcontent-%COMP%] > img[_ngcontent-%COMP%], +.wrapper.spotlight[_ngcontent-%COMP%] .image[_ngcontent-%COMP%] { + border-radius: 0%; +} + +.wrapper.spotlight[_ngcontent-%COMP%]:before { + background-color: #3d4051; +}`]});let D=P;const k=class k{constructor(){this.platformId=m(R),this.isBrowser=!1,this.blogPosts=B(n=>n.filename.includes("/src/content/blog/")),this.projectPosts=B(n=>n.filename.includes("/src/content/projects/")),this.talkPosts=B(n=>n.filename.includes("/src/content/talks/")),this.isBrowser=F(this.platformId)}};k.ɵfac=function(e){return new(e||k)},k.ɵcmp=_({type:k,selectors:[["ng-component"]],decls:18,vars:6,consts:[[1,"wrapper","alt","style1","m0"],[1,"inner"],[1,"major"],["content","blog",3,"posts","max"],[1,"wrapper","style3"],["content","talks",3,"posts","max"],[1,"wrapper","alt","style1"],["content","projects",3,"posts","max"]],template:function(e,c){e&1&&(o(0,"section",0)(1,"div",1)(2,"h2",2),l(3,"Aktuelle Blog Posts"),s(),h(4,"dk-preview",3),s()(),o(5,"section",4)(6,"div",1)(7,"h2",2),l(8,"Meine Talks & Slides"),s(),h(9,"dk-preview",5),s()(),h(10,"dk-publications"),o(11,"section",6)(12,"div",1)(13,"h2",2),l(14,"Meine Projekte"),s(),h(15,"dk-preview",7),s()(),h(16,"dk-about")(17,"dk-meetups")),e&2&&(g(4),v("posts",c.blogPosts)("max",4),g(5),v("posts",c.talkPosts)("max",4),g(6),v("posts",c.projectPosts)("max",4))},dependencies:[Ee,D,L,z],styles:[`.m0[_ngcontent-%COMP%] { + margin: 0; + }`]});let Y=k;export{Y as default}; diff --git a/assets/index.page-D_NMszXq.js b/assets/index.page-D_NMszXq.js new file mode 100644 index 00000000..b6c8cfcc --- /dev/null +++ b/assets/index.page-D_NMszXq.js @@ -0,0 +1,10 @@ +import{j as p,aP as y,aQ as w,a2 as f,X as g,aw as v,aR as k,ak as b,aS as C,aF as P,ɵ as I,Y as F,Z as S,a as o,b as c,d as r,e as l,w as x,aa as u,y as i,x as q,ab as d,I as h,ad as A,A as B,D as V,F as j,G as E,H as Q,V as T}from"./index-Be9IN4QR.js";import{P as M}from"./preview.component-4NcaEiV0.js";const R=["searchInput"];function $(_,e){if(_&1){const t=B();o(0,"div",5)(1,"h3"),c(2,"Filter:"),r(),o(3,"button",7),V("click",function(){j(t);const s=E();return Q(s.removeKeywordFilter())}),c(4),l(5,"i",8),r()()}if(_&2){const t=e;i(3),h("title","Filter "+t+" entfernen"),i(),T(" ",t," ")}}const n=class n{constructor(){this.route=p(y),this.router=p(w),this.posts=f(e=>e.filename.includes("/src/content/blog/")),this.searchInput=g("searchInput"),this.keyword$=this.route?.queryParams.pipe(v(e=>e.keyword)),this.searchString=""}ngAfterViewChecked(){const e=this.searchInput();e&&k(e.nativeElement,"keyup").pipe(b(Boolean),C(300),P()).subscribe(()=>{this.searchString=e.nativeElement.value})}removeKeywordFilter(){this.router.navigate([],{queryParams:{keyword:null},queryParamsHandling:"merge"})}};n.ɵfac=function(t){return new(t||n)},n.ɵcmp=I({type:n,selectors:[["ng-component"]],viewQuery:function(t,a){t&1&&F(a.searchInput,R,5),t&2&&S()},decls:10,vars:8,consts:[["searchInput",""],[1,"wrapper","alt"],[1,"inner"],[1,"major"],["type","search","placeholder","Suche","name","demo-name","aria-required","false","aria-label","Suche"],[1,"active-keyword-filter"],["content","blog",3,"posts","keyword","search"],[1,"button","xs",3,"click","title"],[1,"fa","fa-close"]],template:function(t,a){if(t&1&&(o(0,"section",1)(1,"div",2)(2,"h2",3),c(3,"Meine Blog Posts"),r(),l(4,"input",4,0),x(6,$,6,2,"div",5),u(7,"async"),l(8,"dk-preview",6),u(9,"async"),r()()),t&2){let s;i(6),q((s=d(7,4,a.keyword$))?6:-1,s),i(2),h("posts",a.posts)("keyword",d(9,6,a.keyword$))("search",a.searchString)}},dependencies:[A,M],styles:[`.wrapper[_ngcontent-%COMP%] { + margin-top: 0; + } + .active-keyword-filter[_ngcontent-%COMP%] { + margin-top: 1rem; + display: flex; + gap: 0.5rem; + align-items: baseline; + flex-wrap: wrap; + }`]});let m=n;export{m as default}; diff --git a/assets/infoDiagram-f8f76790-DDADd7By.js b/assets/infoDiagram-f8f76790-DDADd7By.js new file mode 100644 index 00000000..77fa64ed --- /dev/null +++ b/assets/infoDiagram-f8f76790-DDADd7By.js @@ -0,0 +1,7 @@ +import{l as Y,aH as D,i as M}from"./mermaid.core-B_tqKmhs.js";import"./index-Be9IN4QR.js";var O=function(){var a=function(u,t,e,n){for(e=e||{},n=u.length;n--;e[u[n]]=t);return e},f=[6,9,10],m={trace:function(){},yy:{},symbols_:{error:2,start:3,info:4,document:5,EOF:6,line:7,statement:8,NL:9,showInfo:10,$accept:0,$end:1},terminals_:{2:"error",4:"info",6:"EOF",9:"NL",10:"showInfo"},productions_:[0,[3,3],[5,0],[5,2],[7,1],[7,1],[8,1]],performAction:function(t,e,n,s,r,i,d){switch(i.length-1,r){case 1:return s;case 4:break;case 6:s.setInfo(!0);break}},table:[{3:1,4:[1,2]},{1:[3]},a(f,[2,2],{5:3}),{6:[1,4],7:5,8:6,9:[1,7],10:[1,8]},{1:[2,1]},a(f,[2,3]),a(f,[2,4]),a(f,[2,5]),a(f,[2,6])],defaultActions:{4:[2,1]},parseError:function(t,e){if(e.recoverable)this.trace(t);else{var n=new Error(t);throw n.hash=e,n}},parse:function(t){var e=this,n=[0],s=[],r=[null],i=[],d=this.table,P="",v=0,L=0,N=2,T=1,R=i.slice.call(arguments,1),o=Object.create(this.lexer),p={yy:{}};for(var E in this.yy)Object.prototype.hasOwnProperty.call(this.yy,E)&&(p.yy[E]=this.yy[E]);o.setInput(t,p.yy),p.yy.lexer=o,p.yy.parser=this,typeof o.yylloc>"u"&&(o.yylloc={});var I=o.yylloc;i.push(I);var z=o.options&&o.options.ranges;typeof p.yy.parseError=="function"?this.parseError=p.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function U(){var y;return y=s.pop()||o.lex()||T,typeof y!="number"&&(y instanceof Array&&(s=y,y=s.pop()),y=e.symbols_[y]||y),y}for(var l,g,h,w,_={},b,c,F,S;;){if(g=n[n.length-1],this.defaultActions[g]?h=this.defaultActions[g]:((l===null||typeof l>"u")&&(l=U()),h=d[g]&&d[g][l]),typeof h>"u"||!h.length||!h[0]){var A="";S=[];for(b in d[g])this.terminals_[b]&&b>N&&S.push("'"+this.terminals_[b]+"'");o.showPosition?A="Parse error on line "+(v+1)+`: +`+o.showPosition()+` +Expecting `+S.join(", ")+", got '"+(this.terminals_[l]||l)+"'":A="Parse error on line "+(v+1)+": Unexpected "+(l==T?"end of input":"'"+(this.terminals_[l]||l)+"'"),this.parseError(A,{text:o.match,token:this.terminals_[l]||l,line:o.yylineno,loc:I,expected:S})}if(h[0]instanceof Array&&h.length>1)throw new Error("Parse Error: multiple actions possible at state: "+g+", token: "+l);switch(h[0]){case 1:n.push(l),r.push(o.yytext),i.push(o.yylloc),n.push(h[1]),l=null,L=o.yyleng,P=o.yytext,v=o.yylineno,I=o.yylloc;break;case 2:if(c=this.productions_[h[1]][1],_.$=r[r.length-c],_._$={first_line:i[i.length-(c||1)].first_line,last_line:i[i.length-1].last_line,first_column:i[i.length-(c||1)].first_column,last_column:i[i.length-1].last_column},z&&(_._$.range=[i[i.length-(c||1)].range[0],i[i.length-1].range[1]]),w=this.performAction.apply(_,[P,L,v,p.yy,h[1],r,i].concat(R)),typeof w<"u")return w;c&&(n=n.slice(0,-1*c*2),r=r.slice(0,-1*c),i=i.slice(0,-1*c)),n.push(this.productions_[h[1]][0]),r.push(_.$),i.push(_._$),F=d[n[n.length-2]][n[n.length-1]],n.push(F);break;case 3:return!0}}return!0}},k=function(){var u={EOF:1,parseError:function(e,n){if(this.yy.parser)this.yy.parser.parseError(e,n);else throw new Error(e)},setInput:function(t,e){return this.yy=e||this.yy||{},this._input=t,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var t=this._input[0];this.yytext+=t,this.yyleng++,this.offset++,this.match+=t,this.matched+=t;var e=t.match(/(?:\r\n?|\n).*/g);return e?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),t},unput:function(t){var e=t.length,n=t.split(/(?:\r\n?|\n)/g);this._input=t+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-e),this.offset-=e;var s=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),n.length-1&&(this.yylineno-=n.length-1);var r=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:n?(n.length===s.length?this.yylloc.first_column:0)+s[s.length-n.length].length-n[0].length:this.yylloc.first_column-e},this.options.ranges&&(this.yylloc.range=[r[0],r[0]+this.yyleng-e]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true). +`+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},less:function(t){this.unput(this.match.slice(t))},pastInput:function(){var t=this.matched.substr(0,this.matched.length-this.match.length);return(t.length>20?"...":"")+t.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var t=this.match;return t.length<20&&(t+=this._input.substr(0,20-t.length)),(t.substr(0,20)+(t.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var t=this.pastInput(),e=new Array(t.length+1).join("-");return t+this.upcomingInput()+` +`+e+"^"},test_match:function(t,e){var n,s,r;if(this.options.backtrack_lexer&&(r={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(r.yylloc.range=this.yylloc.range.slice(0))),s=t[0].match(/(?:\r\n?|\n).*/g),s&&(this.yylineno+=s.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:s?s[s.length-1].length-s[s.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+t[0].length},this.yytext+=t[0],this.match+=t[0],this.matches=t,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(t[0].length),this.matched+=t[0],n=this.performAction.call(this,this.yy,this,e,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),n)return n;if(this._backtrack){for(var i in r)this[i]=r[i];return!1}return!1},next:function(){if(this.done)return this.EOF;this._input||(this.done=!0);var t,e,n,s;this._more||(this.yytext="",this.match="");for(var r=this._currentRules(),i=0;ie[0].length)){if(e=n,s=i,this.options.backtrack_lexer){if(t=this.test_match(n,r[i]),t!==!1)return t;if(this._backtrack){e=!1;continue}else return!1}else if(!this.options.flex)break}return e?(t=this.test_match(e,r[s]),t!==!1?t:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text. +`+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var e=this.next();return e||this.lex()},begin:function(e){this.conditionStack.push(e)},popState:function(){var e=this.conditionStack.length-1;return e>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(e){return e=this.conditionStack.length-1-Math.abs(e||0),e>=0?this.conditionStack[e]:"INITIAL"},pushState:function(e){this.begin(e)},stateStackSize:function(){return this.conditionStack.length},options:{"case-insensitive":!0},performAction:function(e,n,s,r){switch(s){case 0:return 4;case 1:return 9;case 2:return"space";case 3:return 10;case 4:return 6;case 5:return"TXT"}},rules:[/^(?:info\b)/i,/^(?:[\s\n\r]+)/i,/^(?:[\s]+)/i,/^(?:showInfo\b)/i,/^(?:$)/i,/^(?:.)/i],conditions:{INITIAL:{rules:[0,1,2,3,4,5],inclusive:!0}}};return u}();m.lexer=k;function x(){this.yy={}}return x.prototype=m,m.Parser=x,new x}();O.parser=O;const B=O,j={info:!1};let $=j.info;const H=a=>{$=a},V=()=>$,X=()=>{$=j.info},q={clear:X,setInfo:H,getInfo:V},C=(a,f,m)=>{Y.debug(`rendering info diagram +`+a);const k=D(f);M(k,100,400,!0),k.append("g").append("text").attr("x",100).attr("y",40).attr("class","version").attr("font-size",32).style("text-anchor","middle").text(`v${m}`)},G={draw:C},Q={parser:B,db:q,renderer:G};export{Q as diagram}; diff --git a/assets/init-Gi6I4Gst.js b/assets/init-Gi6I4Gst.js new file mode 100644 index 00000000..d44de941 --- /dev/null +++ b/assets/init-Gi6I4Gst.js @@ -0,0 +1 @@ +function t(e,a){switch(arguments.length){case 0:break;case 1:this.range(e);break;default:this.range(a).domain(e);break}return this}export{t as i}; diff --git a/assets/journeyDiagram-49397b02-DyGjNBW-.js b/assets/journeyDiagram-49397b02-DyGjNBW-.js new file mode 100644 index 00000000..e0d1fea7 --- /dev/null +++ b/assets/journeyDiagram-49397b02-DyGjNBW-.js @@ -0,0 +1,139 @@ +import{c as A,x as yt,y as ft,s as dt,g as pt,b as gt,a as mt,A as xt,h as W,i as kt}from"./mermaid.core-B_tqKmhs.js";import{d as _t,f as bt,a as vt,g as it}from"./svgDrawCommon-08f97a94-Dr3rJKJn.js";import{a as Q}from"./arc-DLmlFMgC.js";import"./index-Be9IN4QR.js";import"./path-CbwjOpE9.js";var G=function(){var t=function(p,s,r,a){for(r=r||{},a=p.length;a--;r[p[a]]=s);return r},e=[6,8,10,11,12,14,16,17,18],i=[1,9],l=[1,10],n=[1,11],h=[1,12],c=[1,13],f=[1,14],y={trace:function(){},yy:{},symbols_:{error:2,start:3,journey:4,document:5,EOF:6,line:7,SPACE:8,statement:9,NEWLINE:10,title:11,acc_title:12,acc_title_value:13,acc_descr:14,acc_descr_value:15,acc_descr_multiline_value:16,section:17,taskName:18,taskData:19,$accept:0,$end:1},terminals_:{2:"error",4:"journey",6:"EOF",8:"SPACE",10:"NEWLINE",11:"title",12:"acc_title",13:"acc_title_value",14:"acc_descr",15:"acc_descr_value",16:"acc_descr_multiline_value",17:"section",18:"taskName",19:"taskData"},productions_:[0,[3,3],[5,0],[5,2],[7,2],[7,1],[7,1],[7,1],[9,1],[9,2],[9,2],[9,1],[9,1],[9,2]],performAction:function(s,r,a,u,d,o,w){var k=o.length-1;switch(d){case 1:return o[k-1];case 2:this.$=[];break;case 3:o[k-1].push(o[k]),this.$=o[k-1];break;case 4:case 5:this.$=o[k];break;case 6:case 7:this.$=[];break;case 8:u.setDiagramTitle(o[k].substr(6)),this.$=o[k].substr(6);break;case 9:this.$=o[k].trim(),u.setAccTitle(this.$);break;case 10:case 11:this.$=o[k].trim(),u.setAccDescription(this.$);break;case 12:u.addSection(o[k].substr(8)),this.$=o[k].substr(8);break;case 13:u.addTask(o[k-1],o[k]),this.$="task";break}},table:[{3:1,4:[1,2]},{1:[3]},t(e,[2,2],{5:3}),{6:[1,4],7:5,8:[1,6],9:7,10:[1,8],11:i,12:l,14:n,16:h,17:c,18:f},t(e,[2,7],{1:[2,1]}),t(e,[2,3]),{9:15,11:i,12:l,14:n,16:h,17:c,18:f},t(e,[2,5]),t(e,[2,6]),t(e,[2,8]),{13:[1,16]},{15:[1,17]},t(e,[2,11]),t(e,[2,12]),{19:[1,18]},t(e,[2,4]),t(e,[2,9]),t(e,[2,10]),t(e,[2,13])],defaultActions:{},parseError:function(s,r){if(r.recoverable)this.trace(s);else{var a=new Error(s);throw a.hash=r,a}},parse:function(s){var r=this,a=[0],u=[],d=[null],o=[],w=this.table,k="",R=0,Z=0,lt=2,J=1,ct=o.slice.call(arguments,1),x=Object.create(this.lexer),S={yy:{}};for(var z in this.yy)Object.prototype.hasOwnProperty.call(this.yy,z)&&(S.yy[z]=this.yy[z]);x.setInput(s,S.yy),S.yy.lexer=x,S.yy.parser=this,typeof x.yylloc>"u"&&(x.yylloc={});var Y=x.yylloc;o.push(Y);var ht=x.options&&x.options.ranges;typeof S.yy.parseError=="function"?this.parseError=S.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function ut(){var T;return T=u.pop()||x.lex()||J,typeof T!="number"&&(T instanceof Array&&(u=T,T=u.pop()),T=r.symbols_[T]||T),T}for(var _,E,b,O,I={},N,$,K,B;;){if(E=a[a.length-1],this.defaultActions[E]?b=this.defaultActions[E]:((_===null||typeof _>"u")&&(_=ut()),b=w[E]&&w[E][_]),typeof b>"u"||!b.length||!b[0]){var q="";B=[];for(N in w[E])this.terminals_[N]&&N>lt&&B.push("'"+this.terminals_[N]+"'");x.showPosition?q="Parse error on line "+(R+1)+`: +`+x.showPosition()+` +Expecting `+B.join(", ")+", got '"+(this.terminals_[_]||_)+"'":q="Parse error on line "+(R+1)+": Unexpected "+(_==J?"end of input":"'"+(this.terminals_[_]||_)+"'"),this.parseError(q,{text:x.match,token:this.terminals_[_]||_,line:x.yylineno,loc:Y,expected:B})}if(b[0]instanceof Array&&b.length>1)throw new Error("Parse Error: multiple actions possible at state: "+E+", token: "+_);switch(b[0]){case 1:a.push(_),d.push(x.yytext),o.push(x.yylloc),a.push(b[1]),_=null,Z=x.yyleng,k=x.yytext,R=x.yylineno,Y=x.yylloc;break;case 2:if($=this.productions_[b[1]][1],I.$=d[d.length-$],I._$={first_line:o[o.length-($||1)].first_line,last_line:o[o.length-1].last_line,first_column:o[o.length-($||1)].first_column,last_column:o[o.length-1].last_column},ht&&(I._$.range=[o[o.length-($||1)].range[0],o[o.length-1].range[1]]),O=this.performAction.apply(I,[k,Z,R,S.yy,b[1],d,o].concat(ct)),typeof O<"u")return O;$&&(a=a.slice(0,-1*$*2),d=d.slice(0,-1*$),o=o.slice(0,-1*$)),a.push(this.productions_[b[1]][0]),d.push(I.$),o.push(I._$),K=w[a[a.length-2]][a[a.length-1]],a.push(K);break;case 3:return!0}}return!0}},m=function(){var p={EOF:1,parseError:function(r,a){if(this.yy.parser)this.yy.parser.parseError(r,a);else throw new Error(r)},setInput:function(s,r){return this.yy=r||this.yy||{},this._input=s,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var s=this._input[0];this.yytext+=s,this.yyleng++,this.offset++,this.match+=s,this.matched+=s;var r=s.match(/(?:\r\n?|\n).*/g);return r?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),s},unput:function(s){var r=s.length,a=s.split(/(?:\r\n?|\n)/g);this._input=s+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-r),this.offset-=r;var u=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),a.length-1&&(this.yylineno-=a.length-1);var d=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:a?(a.length===u.length?this.yylloc.first_column:0)+u[u.length-a.length].length-a[0].length:this.yylloc.first_column-r},this.options.ranges&&(this.yylloc.range=[d[0],d[0]+this.yyleng-r]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true). +`+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},less:function(s){this.unput(this.match.slice(s))},pastInput:function(){var s=this.matched.substr(0,this.matched.length-this.match.length);return(s.length>20?"...":"")+s.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var s=this.match;return s.length<20&&(s+=this._input.substr(0,20-s.length)),(s.substr(0,20)+(s.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var s=this.pastInput(),r=new Array(s.length+1).join("-");return s+this.upcomingInput()+` +`+r+"^"},test_match:function(s,r){var a,u,d;if(this.options.backtrack_lexer&&(d={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(d.yylloc.range=this.yylloc.range.slice(0))),u=s[0].match(/(?:\r\n?|\n).*/g),u&&(this.yylineno+=u.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:u?u[u.length-1].length-u[u.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+s[0].length},this.yytext+=s[0],this.match+=s[0],this.matches=s,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(s[0].length),this.matched+=s[0],a=this.performAction.call(this,this.yy,this,r,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),a)return a;if(this._backtrack){for(var o in d)this[o]=d[o];return!1}return!1},next:function(){if(this.done)return this.EOF;this._input||(this.done=!0);var s,r,a,u;this._more||(this.yytext="",this.match="");for(var d=this._currentRules(),o=0;or[0].length)){if(r=a,u=o,this.options.backtrack_lexer){if(s=this.test_match(a,d[o]),s!==!1)return s;if(this._backtrack){r=!1;continue}else return!1}else if(!this.options.flex)break}return r?(s=this.test_match(r,d[u]),s!==!1?s:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text. +`+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var r=this.next();return r||this.lex()},begin:function(r){this.conditionStack.push(r)},popState:function(){var r=this.conditionStack.length-1;return r>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(r){return r=this.conditionStack.length-1-Math.abs(r||0),r>=0?this.conditionStack[r]:"INITIAL"},pushState:function(r){this.begin(r)},stateStackSize:function(){return this.conditionStack.length},options:{"case-insensitive":!0},performAction:function(r,a,u,d){switch(u){case 0:break;case 1:break;case 2:return 10;case 3:break;case 4:break;case 5:return 4;case 6:return 11;case 7:return this.begin("acc_title"),12;case 8:return this.popState(),"acc_title_value";case 9:return this.begin("acc_descr"),14;case 10:return this.popState(),"acc_descr_value";case 11:this.begin("acc_descr_multiline");break;case 12:this.popState();break;case 13:return"acc_descr_multiline_value";case 14:return 17;case 15:return 18;case 16:return 19;case 17:return":";case 18:return 6;case 19:return"INVALID"}},rules:[/^(?:%(?!\{)[^\n]*)/i,/^(?:[^\}]%%[^\n]*)/i,/^(?:[\n]+)/i,/^(?:\s+)/i,/^(?:#[^\n]*)/i,/^(?:journey\b)/i,/^(?:title\s[^#\n;]+)/i,/^(?:accTitle\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*\{\s*)/i,/^(?:[\}])/i,/^(?:[^\}]*)/i,/^(?:section\s[^#:\n;]+)/i,/^(?:[^#:\n;]+)/i,/^(?::[^#\n;]+)/i,/^(?::)/i,/^(?:$)/i,/^(?:.)/i],conditions:{acc_descr_multiline:{rules:[12,13],inclusive:!1},acc_descr:{rules:[10],inclusive:!1},acc_title:{rules:[8],inclusive:!1},INITIAL:{rules:[0,1,2,3,4,5,6,7,9,11,14,15,16,17,18,19],inclusive:!0}}};return p}();y.lexer=m;function g(){this.yy={}}return g.prototype=y,y.Parser=g,new g}();G.parser=G;const wt=G;let C="";const H=[],V=[],F=[],$t=function(){H.length=0,V.length=0,C="",F.length=0,xt()},Tt=function(t){C=t,H.push(t)},Mt=function(){return H},St=function(){let t=D();const e=100;let i=0;for(;!t&&i{i.people&&t.push(...i.people)}),[...new Set(t)].sort()},Pt=function(t,e){const i=e.substr(1).split(":");let l=0,n=[];i.length===1?(l=Number(i[0]),n=[]):(l=Number(i[0]),n=i[1].split(","));const h=n.map(f=>f.trim()),c={section:C,type:C,people:h,task:t,score:l};F.push(c)},At=function(t){const e={section:C,type:C,description:t,task:t,classes:[]};V.push(e)},D=function(){const t=function(i){return F[i].processed};let e=!0;for(const[i,l]of F.entries())t(i),e=e&&l.processed;return e},It=function(){return Et()},tt={getConfig:()=>A().journey,clear:$t,setDiagramTitle:yt,getDiagramTitle:ft,setAccTitle:dt,getAccTitle:pt,setAccDescription:gt,getAccDescription:mt,addSection:Tt,getSections:Mt,getTasks:St,addTask:Pt,addTaskOrg:At,getActors:It},Ct=t=>`.label { + font-family: 'trebuchet ms', verdana, arial, sans-serif; + font-family: var(--mermaid-font-family); + color: ${t.textColor}; + } + .mouth { + stroke: #666; + } + + line { + stroke: ${t.textColor} + } + + .legend { + fill: ${t.textColor}; + } + + .label text { + fill: #333; + } + .label { + color: ${t.textColor} + } + + .face { + ${t.faceColor?`fill: ${t.faceColor}`:"fill: #FFF8DC"}; + stroke: #999; + } + + .node rect, + .node circle, + .node ellipse, + .node polygon, + .node path { + fill: ${t.mainBkg}; + stroke: ${t.nodeBorder}; + stroke-width: 1px; + } + + .node .label { + text-align: center; + } + .node.clickable { + cursor: pointer; + } + + .arrowheadPath { + fill: ${t.arrowheadColor}; + } + + .edgePath .path { + stroke: ${t.lineColor}; + stroke-width: 1.5px; + } + + .flowchart-link { + stroke: ${t.lineColor}; + fill: none; + } + + .edgeLabel { + background-color: ${t.edgeLabelBackground}; + rect { + opacity: 0.5; + } + text-align: center; + } + + .cluster rect { + } + + .cluster text { + fill: ${t.titleColor}; + } + + div.mermaidTooltip { + position: absolute; + text-align: center; + max-width: 200px; + padding: 2px; + font-family: 'trebuchet ms', verdana, arial, sans-serif; + font-family: var(--mermaid-font-family); + font-size: 12px; + background: ${t.tertiaryColor}; + border: 1px solid ${t.border2}; + border-radius: 2px; + pointer-events: none; + z-index: 100; + } + + .task-type-0, .section-type-0 { + ${t.fillType0?`fill: ${t.fillType0}`:""}; + } + .task-type-1, .section-type-1 { + ${t.fillType0?`fill: ${t.fillType1}`:""}; + } + .task-type-2, .section-type-2 { + ${t.fillType0?`fill: ${t.fillType2}`:""}; + } + .task-type-3, .section-type-3 { + ${t.fillType0?`fill: ${t.fillType3}`:""}; + } + .task-type-4, .section-type-4 { + ${t.fillType0?`fill: ${t.fillType4}`:""}; + } + .task-type-5, .section-type-5 { + ${t.fillType0?`fill: ${t.fillType5}`:""}; + } + .task-type-6, .section-type-6 { + ${t.fillType0?`fill: ${t.fillType6}`:""}; + } + .task-type-7, .section-type-7 { + ${t.fillType0?`fill: ${t.fillType7}`:""}; + } + + .actor-0 { + ${t.actor0?`fill: ${t.actor0}`:""}; + } + .actor-1 { + ${t.actor1?`fill: ${t.actor1}`:""}; + } + .actor-2 { + ${t.actor2?`fill: ${t.actor2}`:""}; + } + .actor-3 { + ${t.actor3?`fill: ${t.actor3}`:""}; + } + .actor-4 { + ${t.actor4?`fill: ${t.actor4}`:""}; + } + .actor-5 { + ${t.actor5?`fill: ${t.actor5}`:""}; + } +`,Vt=Ct,U=function(t,e){return _t(t,e)},Ft=function(t,e){const l=t.append("circle").attr("cx",e.cx).attr("cy",e.cy).attr("class","face").attr("r",15).attr("stroke-width",2).attr("overflow","visible"),n=t.append("g");n.append("circle").attr("cx",e.cx-15/3).attr("cy",e.cy-15/3).attr("r",1.5).attr("stroke-width",2).attr("fill","#666").attr("stroke","#666"),n.append("circle").attr("cx",e.cx+15/3).attr("cy",e.cy-15/3).attr("r",1.5).attr("stroke-width",2).attr("fill","#666").attr("stroke","#666");function h(y){const m=Q().startAngle(Math.PI/2).endAngle(3*(Math.PI/2)).innerRadius(7.5).outerRadius(6.8181818181818175);y.append("path").attr("class","mouth").attr("d",m).attr("transform","translate("+e.cx+","+(e.cy+2)+")")}function c(y){const m=Q().startAngle(3*Math.PI/2).endAngle(5*(Math.PI/2)).innerRadius(7.5).outerRadius(6.8181818181818175);y.append("path").attr("class","mouth").attr("d",m).attr("transform","translate("+e.cx+","+(e.cy+7)+")")}function f(y){y.append("line").attr("class","mouth").attr("stroke",2).attr("x1",e.cx-5).attr("y1",e.cy+7).attr("x2",e.cx+5).attr("y2",e.cy+7).attr("class","mouth").attr("stroke-width","1px").attr("stroke","#666")}return e.score>3?h(n):e.score<3?c(n):f(n),l},rt=function(t,e){const i=t.append("circle");return i.attr("cx",e.cx),i.attr("cy",e.cy),i.attr("class","actor-"+e.pos),i.attr("fill",e.fill),i.attr("stroke",e.stroke),i.attr("r",e.r),i.class!==void 0&&i.attr("class",i.class),e.title!==void 0&&i.append("title").text(e.title),i},at=function(t,e){return bt(t,e)},Lt=function(t,e){function i(n,h,c,f,y){return n+","+h+" "+(n+c)+","+h+" "+(n+c)+","+(h+f-y)+" "+(n+c-y*1.2)+","+(h+f)+" "+n+","+(h+f)}const l=t.append("polygon");l.attr("points",i(e.x,e.y,50,20,7)),l.attr("class","labelBox"),e.y=e.y+e.labelMargin,e.x=e.x+.5*e.labelMargin,at(t,e)},Rt=function(t,e,i){const l=t.append("g"),n=it();n.x=e.x,n.y=e.y,n.fill=e.fill,n.width=i.width*e.taskCount+i.diagramMarginX*(e.taskCount-1),n.height=i.height,n.class="journey-section section-type-"+e.num,n.rx=3,n.ry=3,U(l,n),ot(i)(e.text,l,n.x,n.y,n.width,n.height,{class:"journey-section section-type-"+e.num},i,e.colour)};let et=-1;const Nt=function(t,e,i){const l=e.x+i.width/2,n=t.append("g");et++;const h=300+5*30;n.append("line").attr("id","task"+et).attr("x1",l).attr("y1",e.y).attr("x2",l).attr("y2",h).attr("class","task-line").attr("stroke-width","1px").attr("stroke-dasharray","4 2").attr("stroke","#666"),Ft(n,{cx:l,cy:300+(5-e.score)*30,score:e.score});const c=it();c.x=e.x,c.y=e.y,c.fill=e.fill,c.width=i.width,c.height=i.height,c.class="task task-type-"+e.num,c.rx=3,c.ry=3,U(n,c);let f=e.x+14;e.people.forEach(y=>{const m=e.actors[y].color,g={cx:f,cy:e.y,r:7,fill:m,stroke:"#000",title:y,pos:e.actors[y].position};rt(n,g),f+=10}),ot(i)(e.task,n,c.x,c.y,c.width,c.height,{class:"task"},i,e.colour)},Bt=function(t,e){vt(t,e)},ot=function(){function t(n,h,c,f,y,m,g,p){const s=h.append("text").attr("x",c+y/2).attr("y",f+m/2+5).style("font-color",p).style("text-anchor","middle").text(n);l(s,g)}function e(n,h,c,f,y,m,g,p,s){const{taskFontSize:r,taskFontFamily:a}=p,u=n.split(//gi);for(let d=0;d{const n=M[l].color,h={cx:20,cy:i,r:7,fill:n,stroke:"#000",pos:M[l].position};L.drawCircle(t,h);const c={x:40,y:i+7,fill:"#666",text:l,textMargin:e.boxTextMargin|5};L.drawText(t,c),i+=20})}const j=A().journey,P=j.leftMargin,Ot=function(t,e,i,l){const n=A().journey,h=A().securityLevel;let c;h==="sandbox"&&(c=W("#i"+e));const f=h==="sandbox"?W(c.nodes()[0].contentDocument.body):W("body");v.init();const y=f.select("#"+e);L.initGraphics(y);const m=l.db.getTasks(),g=l.db.getDiagramTitle(),p=l.db.getActors();for(const o in M)delete M[o];let s=0;p.forEach(o=>{M[o]={color:n.actorColours[s%n.actorColours.length],position:s},s++}),Yt(y),v.insert(0,0,P,Object.keys(M).length*50),qt(y,m,0);const r=v.getBounds();g&&y.append("text").text(g).attr("x",P).attr("font-size","4ex").attr("font-weight","bold").attr("y",25);const a=r.stopy-r.starty+2*n.diagramMarginY,u=P+r.stopx+2*n.diagramMarginX;kt(y,a,u,n.useMaxWidth),y.append("line").attr("x1",P).attr("y1",n.height*4).attr("x2",u-P-4).attr("y2",n.height*4).attr("stroke-width",4).attr("stroke","black").attr("marker-end","url(#arrowhead)");const d=g?70:0;y.attr("viewBox",`${r.startx} -25 ${u} ${a+d}`),y.attr("preserveAspectRatio","xMinYMin meet"),y.attr("height",a+d+25)},v={data:{startx:void 0,stopx:void 0,starty:void 0,stopy:void 0},verticalPos:0,sequenceItems:[],init:function(){this.sequenceItems=[],this.data={startx:void 0,stopx:void 0,starty:void 0,stopy:void 0},this.verticalPos=0},updateVal:function(t,e,i,l){t[e]===void 0?t[e]=i:t[e]=l(i,t[e])},updateBounds:function(t,e,i,l){const n=A().journey,h=this;let c=0;function f(y){return function(g){c++;const p=h.sequenceItems.length-c+1;h.updateVal(g,"starty",e-p*n.boxMargin,Math.min),h.updateVal(g,"stopy",l+p*n.boxMargin,Math.max),h.updateVal(v.data,"startx",t-p*n.boxMargin,Math.min),h.updateVal(v.data,"stopx",i+p*n.boxMargin,Math.max),h.updateVal(g,"startx",t-p*n.boxMargin,Math.min),h.updateVal(g,"stopx",i+p*n.boxMargin,Math.max),h.updateVal(v.data,"starty",e-p*n.boxMargin,Math.min),h.updateVal(v.data,"stopy",l+p*n.boxMargin,Math.max)}}this.sequenceItems.forEach(f())},insert:function(t,e,i,l){const n=Math.min(t,i),h=Math.max(t,i),c=Math.min(e,l),f=Math.max(e,l);this.updateVal(v.data,"startx",n,Math.min),this.updateVal(v.data,"starty",c,Math.min),this.updateVal(v.data,"stopx",h,Math.max),this.updateVal(v.data,"stopy",f,Math.max),this.updateBounds(n,c,h,f)},bumpVerticalPos:function(t){this.verticalPos=this.verticalPos+t,this.data.stopy=this.verticalPos},getVerticalPos:function(){return this.verticalPos},getBounds:function(){return this.data}},X=j.sectionFills,st=j.sectionColours,qt=function(t,e,i){const l=A().journey;let n="";const h=l.height*2+l.diagramMarginY,c=i+h;let f=0,y="#CCC",m="black",g=0;for(const[p,s]of e.entries()){if(n!==s.section){y=X[f%X.length],g=f%X.length,m=st[f%st.length];let a=0;const u=s.section;for(let o=p;o(M[u]&&(a[u]=M[u]),a),{});s.x=p*l.taskMargin+p*l.width+P,s.y=c,s.width=l.diagramMarginX,s.height=l.diagramMarginY,s.colour=m,s.fill=y,s.num=g,s.actors=r,L.drawTask(t,s,l),v.insert(s.x,s.y,s.x+s.width+l.taskMargin,300+5*30)}},nt={setConf:zt,draw:Ot},Zt={parser:wt,db:tt,renderer:nt,styles:Vt,init:t=>{nt.setConf(t.journey),tt.clear()}};export{Zt as diagram}; diff --git a/assets/katex-cqFQqex1.js b/assets/katex-cqFQqex1.js new file mode 100644 index 00000000..6e8f38ce --- /dev/null +++ b/assets/katex-cqFQqex1.js @@ -0,0 +1,261 @@ +class u0{constructor(e,t,a){this.lexer=void 0,this.start=void 0,this.end=void 0,this.lexer=e,this.start=t,this.end=a}static range(e,t){return t?!e||!e.loc||!t.loc||e.loc.lexer!==t.loc.lexer?null:new u0(e.loc.lexer,e.loc.start,t.loc.end):e&&e.loc}}class f0{constructor(e,t){this.text=void 0,this.loc=void 0,this.noexpand=void 0,this.treatAsRelax=void 0,this.text=e,this.loc=t}range(e,t){return new f0(t,u0.range(this,e))}}class M{constructor(e,t){this.name=void 0,this.position=void 0,this.length=void 0,this.rawMessage=void 0;var a="KaTeX parse error: "+e,n,s,o=t&&t.loc;if(o&&o.start<=o.end){var h=o.lexer.input;n=o.start,s=o.end,n===h.length?a+=" at end of input: ":a+=" at position "+(n+1)+": ";var c=h.slice(n,s).replace(/[^]/g,"$&̲"),p;n>15?p="…"+h.slice(n-15,n):p=h.slice(0,n);var g;s+15":">","<":"<",'"':""","'":"'"},ya=/[&><"']/g;function xa(r){return String(r).replace(ya,e=>ba[e])}var vr=function r(e){return e.type==="ordgroup"||e.type==="color"?e.body.length===1?r(e.body[0]):e:e.type==="font"?r(e.body):e},wa=function(e){var t=vr(e);return t.type==="mathord"||t.type==="textord"||t.type==="atom"},ka=function(e){if(!e)throw new Error("Expected non-null, but got "+String(e));return e},Sa=function(e){var t=/^[\x00-\x20]*([^\\/#?]*?)(:|�*58|�*3a|&colon)/i.exec(e);return t?t[2]!==":"||!/^[a-zA-Z][a-zA-Z0-9+\-.]*$/.test(t[1])?null:t[1].toLowerCase():"_relative"},q={contains:fa,deflt:pa,escape:xa,hyphenate:ga,getBaseElem:vr,isCharacterBox:wa,protocolFromUrl:Sa},ze={displayMode:{type:"boolean",description:"Render math in display mode, which puts the math in display style (so \\int and \\sum are large, for example), and centers the math on the page on its own line.",cli:"-d, --display-mode"},output:{type:{enum:["htmlAndMathml","html","mathml"]},description:"Determines the markup language of the output.",cli:"-F, --format "},leqno:{type:"boolean",description:"Render display math in leqno style (left-justified tags)."},fleqn:{type:"boolean",description:"Render display math flush left."},throwOnError:{type:"boolean",default:!0,cli:"-t, --no-throw-on-error",cliDescription:"Render errors (in the color given by --error-color) instead of throwing a ParseError exception when encountering an error."},errorColor:{type:"string",default:"#cc0000",cli:"-c, --error-color ",cliDescription:"A color string given in the format 'rgb' or 'rrggbb' (no #). This option determines the color of errors rendered by the -t option.",cliProcessor:r=>"#"+r},macros:{type:"object",cli:"-m, --macro ",cliDescription:"Define custom macro of the form '\\foo:expansion' (use multiple -m arguments for multiple macros).",cliDefault:[],cliProcessor:(r,e)=>(e.push(r),e)},minRuleThickness:{type:"number",description:"Specifies a minimum thickness, in ems, for fraction lines, `\\sqrt` top lines, `{array}` vertical lines, `\\hline`, `\\hdashline`, `\\underline`, `\\overline`, and the borders of `\\fbox`, `\\boxed`, and `\\fcolorbox`.",processor:r=>Math.max(0,r),cli:"--min-rule-thickness ",cliProcessor:parseFloat},colorIsTextColor:{type:"boolean",description:"Makes \\color behave like LaTeX's 2-argument \\textcolor, instead of LaTeX's one-argument \\color mode change.",cli:"-b, --color-is-text-color"},strict:{type:[{enum:["warn","ignore","error"]},"boolean","function"],description:"Turn on strict / LaTeX faithfulness mode, which throws an error if the input uses features that are not supported by LaTeX.",cli:"-S, --strict",cliDefault:!1},trust:{type:["boolean","function"],description:"Trust the input, enabling all HTML features such as \\url.",cli:"-T, --trust"},maxSize:{type:"number",default:1/0,description:"If non-zero, all user-specified sizes, e.g. in \\rule{500em}{500em}, will be capped to maxSize ems. Otherwise, elements and spaces can be arbitrarily large",processor:r=>Math.max(0,r),cli:"-s, --max-size ",cliProcessor:parseInt},maxExpand:{type:"number",default:1e3,description:"Limit the number of macro expansions to the specified number, to prevent e.g. infinite macro loops. If set to Infinity, the macro expander will try to fully expand as in LaTeX.",processor:r=>Math.max(0,r),cli:"-e, --max-expand ",cliProcessor:r=>r==="Infinity"?1/0:parseInt(r)},globalGroup:{type:"boolean",cli:!1}};function Ma(r){if(r.default)return r.default;var e=r.type,t=Array.isArray(e)?e[0]:e;if(typeof t!="string")return t.enum[0];switch(t){case"boolean":return!1;case"string":return"";case"number":return 0;case"object":return{}}}class dt{constructor(e){this.displayMode=void 0,this.output=void 0,this.leqno=void 0,this.fleqn=void 0,this.throwOnError=void 0,this.errorColor=void 0,this.macros=void 0,this.minRuleThickness=void 0,this.colorIsTextColor=void 0,this.strict=void 0,this.trust=void 0,this.maxSize=void 0,this.maxExpand=void 0,this.globalGroup=void 0,e=e||{};for(var t in ze)if(ze.hasOwnProperty(t)){var a=ze[t];this[t]=e[t]!==void 0?a.processor?a.processor(e[t]):e[t]:Ma(a)}}reportNonstrict(e,t,a){var n=this.strict;if(typeof n=="function"&&(n=n(e,t,a)),!(!n||n==="ignore")){if(n===!0||n==="error")throw new M("LaTeX-incompatible input and strict mode is set to 'error': "+(t+" ["+e+"]"),a);n==="warn"?typeof console<"u"&&console.warn("LaTeX-incompatible input and strict mode is set to 'warn': "+(t+" ["+e+"]")):typeof console<"u"&&console.warn("LaTeX-incompatible input and strict mode is set to "+("unrecognized '"+n+"': "+t+" ["+e+"]"))}}useStrictBehavior(e,t,a){var n=this.strict;if(typeof n=="function")try{n=n(e,t,a)}catch{n="error"}return!n||n==="ignore"?!1:n===!0||n==="error"?!0:n==="warn"?(typeof console<"u"&&console.warn("LaTeX-incompatible input and strict mode is set to 'warn': "+(t+" ["+e+"]")),!1):(typeof console<"u"&&console.warn("LaTeX-incompatible input and strict mode is set to "+("unrecognized '"+n+"': "+t+" ["+e+"]")),!1)}isTrusted(e){if(e.url&&!e.protocol){var t=q.protocolFromUrl(e.url);if(t==null)return!1;e.protocol=t}var a=typeof this.trust=="function"?this.trust(e):this.trust;return!!a}}class O0{constructor(e,t,a){this.id=void 0,this.size=void 0,this.cramped=void 0,this.id=e,this.size=t,this.cramped=a}sup(){return y0[za[this.id]]}sub(){return y0[Aa[this.id]]}fracNum(){return y0[Ta[this.id]]}fracDen(){return y0[Ba[this.id]]}cramp(){return y0[Da[this.id]]}text(){return y0[Ca[this.id]]}isTight(){return this.size>=2}}var ft=0,Te=1,ee=2,B0=3,le=4,d0=5,te=6,n0=7,y0=[new O0(ft,0,!1),new O0(Te,0,!0),new O0(ee,1,!1),new O0(B0,1,!0),new O0(le,2,!1),new O0(d0,2,!0),new O0(te,3,!1),new O0(n0,3,!0)],za=[le,d0,le,d0,te,n0,te,n0],Aa=[d0,d0,d0,d0,n0,n0,n0,n0],Ta=[ee,B0,le,d0,te,n0,te,n0],Ba=[B0,B0,d0,d0,n0,n0,n0,n0],Da=[Te,Te,B0,B0,d0,d0,n0,n0],Ca=[ft,Te,ee,B0,ee,B0,ee,B0],R={DISPLAY:y0[ft],TEXT:y0[ee],SCRIPT:y0[le],SCRIPTSCRIPT:y0[te]},nt=[{name:"latin",blocks:[[256,591],[768,879]]},{name:"cyrillic",blocks:[[1024,1279]]},{name:"armenian",blocks:[[1328,1423]]},{name:"brahmic",blocks:[[2304,4255]]},{name:"georgian",blocks:[[4256,4351]]},{name:"cjk",blocks:[[12288,12543],[19968,40879],[65280,65376]]},{name:"hangul",blocks:[[44032,55215]]}];function Na(r){for(var e=0;e=n[0]&&r<=n[1])return t.name}return null}var Ae=[];nt.forEach(r=>r.blocks.forEach(e=>Ae.push(...e)));function gr(r){for(var e=0;e=Ae[e]&&r<=Ae[e+1])return!0;return!1}var _0=80,qa=function(e,t){return"M95,"+(622+e+t)+` +c-2.7,0,-7.17,-2.7,-13.5,-8c-5.8,-5.3,-9.5,-10,-9.5,-14 +c0,-2,0.3,-3.3,1,-4c1.3,-2.7,23.83,-20.7,67.5,-54 +c44.2,-33.3,65.8,-50.3,66.5,-51c1.3,-1.3,3,-2,5,-2c4.7,0,8.7,3.3,12,10 +s173,378,173,378c0.7,0,35.3,-71,104,-213c68.7,-142,137.5,-285,206.5,-429 +c69,-144,104.5,-217.7,106.5,-221 +l`+e/2.075+" -"+e+` +c5.3,-9.3,12,-14,20,-14 +H400000v`+(40+e)+`H845.2724 +s-225.272,467,-225.272,467s-235,486,-235,486c-2.7,4.7,-9,7,-19,7 +c-6,0,-10,-1,-12,-3s-194,-422,-194,-422s-65,47,-65,47z +M`+(834+e)+" "+t+"h400000v"+(40+e)+"h-400000z"},Ea=function(e,t){return"M263,"+(601+e+t)+`c0.7,0,18,39.7,52,119 +c34,79.3,68.167,158.7,102.5,238c34.3,79.3,51.8,119.3,52.5,120 +c340,-704.7,510.7,-1060.3,512,-1067 +l`+e/2.084+" -"+e+` +c4.7,-7.3,11,-11,19,-11 +H40000v`+(40+e)+`H1012.3 +s-271.3,567,-271.3,567c-38.7,80.7,-84,175,-136,283c-52,108,-89.167,185.3,-111.5,232 +c-22.3,46.7,-33.8,70.3,-34.5,71c-4.7,4.7,-12.3,7,-23,7s-12,-1,-12,-1 +s-109,-253,-109,-253c-72.7,-168,-109.3,-252,-110,-252c-10.7,8,-22,16.7,-34,26 +c-22,17.3,-33.3,26,-34,26s-26,-26,-26,-26s76,-59,76,-59s76,-60,76,-60z +M`+(1001+e)+" "+t+"h400000v"+(40+e)+"h-400000z"},Ra=function(e,t){return"M983 "+(10+e+t)+` +l`+e/3.13+" -"+e+` +c4,-6.7,10,-10,18,-10 H400000v`+(40+e)+` +H1013.1s-83.4,268,-264.1,840c-180.7,572,-277,876.3,-289,913c-4.7,4.7,-12.7,7,-24,7 +s-12,0,-12,0c-1.3,-3.3,-3.7,-11.7,-7,-25c-35.3,-125.3,-106.7,-373.3,-214,-744 +c-10,12,-21,25,-33,39s-32,39,-32,39c-6,-5.3,-15,-14,-27,-26s25,-30,25,-30 +c26.7,-32.7,52,-63,76,-91s52,-60,52,-60s208,722,208,722 +c56,-175.3,126.3,-397.3,211,-666c84.7,-268.7,153.8,-488.2,207.5,-658.5 +c53.7,-170.3,84.5,-266.8,92.5,-289.5z +M`+(1001+e)+" "+t+"h400000v"+(40+e)+"h-400000z"},Ia=function(e,t){return"M424,"+(2398+e+t)+` +c-1.3,-0.7,-38.5,-172,-111.5,-514c-73,-342,-109.8,-513.3,-110.5,-514 +c0,-2,-10.7,14.3,-32,49c-4.7,7.3,-9.8,15.7,-15.5,25c-5.7,9.3,-9.8,16,-12.5,20 +s-5,7,-5,7c-4,-3.3,-8.3,-7.7,-13,-13s-13,-13,-13,-13s76,-122,76,-122s77,-121,77,-121 +s209,968,209,968c0,-2,84.7,-361.7,254,-1079c169.3,-717.3,254.7,-1077.7,256,-1081 +l`+e/4.223+" -"+e+`c4,-6.7,10,-10,18,-10 H400000 +v`+(40+e)+`H1014.6 +s-87.3,378.7,-272.6,1166c-185.3,787.3,-279.3,1182.3,-282,1185 +c-2,6,-10,9,-24,9 +c-8,0,-12,-0.7,-12,-2z M`+(1001+e)+" "+t+` +h400000v`+(40+e)+"h-400000z"},Fa=function(e,t){return"M473,"+(2713+e+t)+` +c339.3,-1799.3,509.3,-2700,510,-2702 l`+e/5.298+" -"+e+` +c3.3,-7.3,9.3,-11,18,-11 H400000v`+(40+e)+`H1017.7 +s-90.5,478,-276.2,1466c-185.7,988,-279.5,1483,-281.5,1485c-2,6,-10,9,-24,9 +c-8,0,-12,-0.7,-12,-2c0,-1.3,-5.3,-32,-16,-92c-50.7,-293.3,-119.7,-693.3,-207,-1200 +c0,-1.3,-5.3,8.7,-16,30c-10.7,21.3,-21.3,42.7,-32,64s-16,33,-16,33s-26,-26,-26,-26 +s76,-153,76,-153s77,-151,77,-151c0.7,0.7,35.7,202,105,604c67.3,400.7,102,602.7,104, +606zM`+(1001+e)+" "+t+"h400000v"+(40+e)+"H1017.7z"},Oa=function(e){var t=e/2;return"M400000 "+e+" H0 L"+t+" 0 l65 45 L145 "+(e-80)+" H400000z"},Ha=function(e,t,a){var n=a-54-t-e;return"M702 "+(e+t)+"H400000"+(40+e)+` +H742v`+n+`l-4 4-4 4c-.667.7 -2 1.5-4 2.5s-4.167 1.833-6.5 2.5-5.5 1-9.5 1 +h-12l-28-84c-16.667-52-96.667 -294.333-240-727l-212 -643 -85 170 +c-4-3.333-8.333-7.667-13 -13l-13-13l77-155 77-156c66 199.333 139 419.667 +219 661 l218 661zM702 `+t+"H400000v"+(40+e)+"H742z"},La=function(e,t,a){t=1e3*t;var n="";switch(e){case"sqrtMain":n=qa(t,_0);break;case"sqrtSize1":n=Ea(t,_0);break;case"sqrtSize2":n=Ra(t,_0);break;case"sqrtSize3":n=Ia(t,_0);break;case"sqrtSize4":n=Fa(t,_0);break;case"sqrtTall":n=Ha(t,_0,a)}return n},Pa=function(e,t){switch(e){case"⎜":return"M291 0 H417 V"+t+" H291z M291 0 H417 V"+t+" H291z";case"∣":return"M145 0 H188 V"+t+" H145z M145 0 H188 V"+t+" H145z";case"∥":return"M145 0 H188 V"+t+" H145z M145 0 H188 V"+t+" H145z"+("M367 0 H410 V"+t+" H367z M367 0 H410 V"+t+" H367z");case"⎟":return"M457 0 H583 V"+t+" H457z M457 0 H583 V"+t+" H457z";case"⎢":return"M319 0 H403 V"+t+" H319z M319 0 H403 V"+t+" H319z";case"⎥":return"M263 0 H347 V"+t+" H263z M263 0 H347 V"+t+" H263z";case"⎪":return"M384 0 H504 V"+t+" H384z M384 0 H504 V"+t+" H384z";case"⏐":return"M312 0 H355 V"+t+" H312z M312 0 H355 V"+t+" H312z";case"‖":return"M257 0 H300 V"+t+" H257z M257 0 H300 V"+t+" H257z"+("M478 0 H521 V"+t+" H478z M478 0 H521 V"+t+" H478z");default:return""}},Ft={doubleleftarrow:`M262 157 +l10-10c34-36 62.7-77 86-123 3.3-8 5-13.3 5-16 0-5.3-6.7-8-20-8-7.3 + 0-12.2.5-14.5 1.5-2.3 1-4.8 4.5-7.5 10.5-49.3 97.3-121.7 169.3-217 216-28 + 14-57.3 25-88 33-6.7 2-11 3.8-13 5.5-2 1.7-3 4.2-3 7.5s1 5.8 3 7.5 +c2 1.7 6.3 3.5 13 5.5 68 17.3 128.2 47.8 180.5 91.5 52.3 43.7 93.8 96.2 124.5 + 157.5 9.3 8 15.3 12.3 18 13h6c12-.7 18-4 18-10 0-2-1.7-7-5-15-23.3-46-52-87 +-86-123l-10-10h399738v-40H218c328 0 0 0 0 0l-10-8c-26.7-20-65.7-43-117-69 2.7 +-2 6-3.7 10-5 36.7-16 72.3-37.3 107-64l10-8h399782v-40z +m8 0v40h399730v-40zm0 194v40h399730v-40z`,doublerightarrow:`M399738 392l +-10 10c-34 36-62.7 77-86 123-3.3 8-5 13.3-5 16 0 5.3 6.7 8 20 8 7.3 0 12.2-.5 + 14.5-1.5 2.3-1 4.8-4.5 7.5-10.5 49.3-97.3 121.7-169.3 217-216 28-14 57.3-25 88 +-33 6.7-2 11-3.8 13-5.5 2-1.7 3-4.2 3-7.5s-1-5.8-3-7.5c-2-1.7-6.3-3.5-13-5.5-68 +-17.3-128.2-47.8-180.5-91.5-52.3-43.7-93.8-96.2-124.5-157.5-9.3-8-15.3-12.3-18 +-13h-6c-12 .7-18 4-18 10 0 2 1.7 7 5 15 23.3 46 52 87 86 123l10 10H0v40h399782 +c-328 0 0 0 0 0l10 8c26.7 20 65.7 43 117 69-2.7 2-6 3.7-10 5-36.7 16-72.3 37.3 +-107 64l-10 8H0v40zM0 157v40h399730v-40zm0 194v40h399730v-40z`,leftarrow:`M400000 241H110l3-3c68.7-52.7 113.7-120 + 135-202 4-14.7 6-23 6-25 0-7.3-7-11-21-11-8 0-13.2.8-15.5 2.5-2.3 1.7-4.2 5.8 +-5.5 12.5-1.3 4.7-2.7 10.3-4 17-12 48.7-34.8 92-68.5 130S65.3 228.3 18 247 +c-10 4-16 7.7-18 11 0 8.7 6 14.3 18 17 47.3 18.7 87.8 47 121.5 85S196 441.3 208 + 490c.7 2 1.3 5 2 9s1.2 6.7 1.5 8c.3 1.3 1 3.3 2 6s2.2 4.5 3.5 5.5c1.3 1 3.3 + 1.8 6 2.5s6 1 10 1c14 0 21-3.7 21-11 0-2-2-10.3-6-25-20-79.3-65-146.7-135-202 + l-3-3h399890zM100 241v40h399900v-40z`,leftbrace:`M6 548l-6-6v-35l6-11c56-104 135.3-181.3 238-232 57.3-28.7 117 +-45 179-50h399577v120H403c-43.3 7-81 15-113 26-100.7 33-179.7 91-237 174-2.7 + 5-6 9-10 13-.7 1-7.3 1-20 1H6z`,leftbraceunder:`M0 6l6-6h17c12.688 0 19.313.3 20 1 4 4 7.313 8.3 10 13 + 35.313 51.3 80.813 93.8 136.5 127.5 55.688 33.7 117.188 55.8 184.5 66.5.688 + 0 2 .3 4 1 18.688 2.7 76 4.3 172 5h399450v120H429l-6-1c-124.688-8-235-61.7 +-331-161C60.687 138.7 32.312 99.3 7 54L0 41V6z`,leftgroup:`M400000 80 +H435C64 80 168.3 229.4 21 260c-5.9 1.2-18 0-18 0-2 0-3-1-3-3v-38C76 61 257 0 + 435 0h399565z`,leftgroupunder:`M400000 262 +H435C64 262 168.3 112.6 21 82c-5.9-1.2-18 0-18 0-2 0-3 1-3 3v38c76 158 257 219 + 435 219h399565z`,leftharpoon:`M0 267c.7 5.3 3 10 7 14h399993v-40H93c3.3 +-3.3 10.2-9.5 20.5-18.5s17.8-15.8 22.5-20.5c50.7-52 88-110.3 112-175 4-11.3 5 +-18.3 3-21-1.3-4-7.3-6-18-6-8 0-13 .7-15 2s-4.7 6.7-8 16c-42 98.7-107.3 174.7 +-196 228-6.7 4.7-10.7 8-12 10-1.3 2-2 5.7-2 11zm100-26v40h399900v-40z`,leftharpoonplus:`M0 267c.7 5.3 3 10 7 14h399993v-40H93c3.3-3.3 10.2-9.5 + 20.5-18.5s17.8-15.8 22.5-20.5c50.7-52 88-110.3 112-175 4-11.3 5-18.3 3-21-1.3 +-4-7.3-6-18-6-8 0-13 .7-15 2s-4.7 6.7-8 16c-42 98.7-107.3 174.7-196 228-6.7 4.7 +-10.7 8-12 10-1.3 2-2 5.7-2 11zm100-26v40h399900v-40zM0 435v40h400000v-40z +m0 0v40h400000v-40z`,leftharpoondown:`M7 241c-4 4-6.333 8.667-7 14 0 5.333.667 9 2 11s5.333 + 5.333 12 10c90.667 54 156 130 196 228 3.333 10.667 6.333 16.333 9 17 2 .667 5 + 1 9 1h5c10.667 0 16.667-2 18-6 2-2.667 1-9.667-3-21-32-87.333-82.667-157.667 +-152-211l-3-3h399907v-40zM93 281 H400000 v-40L7 241z`,leftharpoondownplus:`M7 435c-4 4-6.3 8.7-7 14 0 5.3.7 9 2 11s5.3 5.3 12 + 10c90.7 54 156 130 196 228 3.3 10.7 6.3 16.3 9 17 2 .7 5 1 9 1h5c10.7 0 16.7 +-2 18-6 2-2.7 1-9.7-3-21-32-87.3-82.7-157.7-152-211l-3-3h399907v-40H7zm93 0 +v40h399900v-40zM0 241v40h399900v-40zm0 0v40h399900v-40z`,lefthook:`M400000 281 H103s-33-11.2-61-33.5S0 197.3 0 164s14.2-61.2 42.5 +-83.5C70.8 58.2 104 47 142 47 c16.7 0 25 6.7 25 20 0 12-8.7 18.7-26 20-40 3.3 +-68.7 15.7-86 37-10 12-15 25.3-15 40 0 22.7 9.8 40.7 29.5 54 19.7 13.3 43.5 21 + 71.5 23h399859zM103 281v-40h399897v40z`,leftlinesegment:`M40 281 V428 H0 V94 H40 V241 H400000 v40z +M40 281 V428 H0 V94 H40 V241 H400000 v40z`,leftmapsto:`M40 281 V448H0V74H40V241H400000v40z +M40 281 V448H0V74H40V241H400000v40z`,leftToFrom:`M0 147h400000v40H0zm0 214c68 40 115.7 95.7 143 167h22c15.3 0 23 +-.3 23-1 0-1.3-5.3-13.7-16-37-18-35.3-41.3-69-70-101l-7-8h399905v-40H95l7-8 +c28.7-32 52-65.7 70-101 10.7-23.3 16-35.7 16-37 0-.7-7.7-1-23-1h-22C115.7 265.3 + 68 321 0 361zm0-174v-40h399900v40zm100 154v40h399900v-40z`,longequal:`M0 50 h400000 v40H0z m0 194h40000v40H0z +M0 50 h400000 v40H0z m0 194h40000v40H0z`,midbrace:`M200428 334 +c-100.7-8.3-195.3-44-280-108-55.3-42-101.7-93-139-153l-9-14c-2.7 4-5.7 8.7-9 14 +-53.3 86.7-123.7 153-211 199-66.7 36-137.3 56.3-212 62H0V214h199568c178.3-11.7 + 311.7-78.3 403-201 6-8 9.7-12 11-12 .7-.7 6.7-1 18-1s17.3.3 18 1c1.3 0 5 4 11 + 12 44.7 59.3 101.3 106.3 170 141s145.3 54.3 229 60h199572v120z`,midbraceunder:`M199572 214 +c100.7 8.3 195.3 44 280 108 55.3 42 101.7 93 139 153l9 14c2.7-4 5.7-8.7 9-14 + 53.3-86.7 123.7-153 211-199 66.7-36 137.3-56.3 212-62h199568v120H200432c-178.3 + 11.7-311.7 78.3-403 201-6 8-9.7 12-11 12-.7.7-6.7 1-18 1s-17.3-.3-18-1c-1.3 0 +-5-4-11-12-44.7-59.3-101.3-106.3-170-141s-145.3-54.3-229-60H0V214z`,oiintSize1:`M512.6 71.6c272.6 0 320.3 106.8 320.3 178.2 0 70.8-47.7 177.6 +-320.3 177.6S193.1 320.6 193.1 249.8c0-71.4 46.9-178.2 319.5-178.2z +m368.1 178.2c0-86.4-60.9-215.4-368.1-215.4-306.4 0-367.3 129-367.3 215.4 0 85.8 +60.9 214.8 367.3 214.8 307.2 0 368.1-129 368.1-214.8z`,oiintSize2:`M757.8 100.1c384.7 0 451.1 137.6 451.1 230 0 91.3-66.4 228.8 +-451.1 228.8-386.3 0-452.7-137.5-452.7-228.8 0-92.4 66.4-230 452.7-230z +m502.4 230c0-111.2-82.4-277.2-502.4-277.2s-504 166-504 277.2 +c0 110 84 276 504 276s502.4-166 502.4-276z`,oiiintSize1:`M681.4 71.6c408.9 0 480.5 106.8 480.5 178.2 0 70.8-71.6 177.6 +-480.5 177.6S202.1 320.6 202.1 249.8c0-71.4 70.5-178.2 479.3-178.2z +m525.8 178.2c0-86.4-86.8-215.4-525.7-215.4-437.9 0-524.7 129-524.7 215.4 0 +85.8 86.8 214.8 524.7 214.8 438.9 0 525.7-129 525.7-214.8z`,oiiintSize2:`M1021.2 53c603.6 0 707.8 165.8 707.8 277.2 0 110-104.2 275.8 +-707.8 275.8-606 0-710.2-165.8-710.2-275.8C311 218.8 415.2 53 1021.2 53z +m770.4 277.1c0-131.2-126.4-327.6-770.5-327.6S248.4 198.9 248.4 330.1 +c0 130 128.8 326.4 772.7 326.4s770.5-196.4 770.5-326.4z`,rightarrow:`M0 241v40h399891c-47.3 35.3-84 78-110 128 +-16.7 32-27.7 63.7-33 95 0 1.3-.2 2.7-.5 4-.3 1.3-.5 2.3-.5 3 0 7.3 6.7 11 20 + 11 8 0 13.2-.8 15.5-2.5 2.3-1.7 4.2-5.5 5.5-11.5 2-13.3 5.7-27 11-41 14.7-44.7 + 39-84.5 73-119.5s73.7-60.2 119-75.5c6-2 9-5.7 9-11s-3-9-9-11c-45.3-15.3-85 +-40.5-119-75.5s-58.3-74.8-73-119.5c-4.7-14-8.3-27.3-11-40-1.3-6.7-3.2-10.8-5.5 +-12.5-2.3-1.7-7.5-2.5-15.5-2.5-14 0-21 3.7-21 11 0 2 2 10.3 6 25 20.7 83.3 67 + 151.7 139 205zm0 0v40h399900v-40z`,rightbrace:`M400000 542l +-6 6h-17c-12.7 0-19.3-.3-20-1-4-4-7.3-8.3-10-13-35.3-51.3-80.8-93.8-136.5-127.5 +s-117.2-55.8-184.5-66.5c-.7 0-2-.3-4-1-18.7-2.7-76-4.3-172-5H0V214h399571l6 1 +c124.7 8 235 61.7 331 161 31.3 33.3 59.7 72.7 85 118l7 13v35z`,rightbraceunder:`M399994 0l6 6v35l-6 11c-56 104-135.3 181.3-238 232-57.3 + 28.7-117 45-179 50H-300V214h399897c43.3-7 81-15 113-26 100.7-33 179.7-91 237 +-174 2.7-5 6-9 10-13 .7-1 7.3-1 20-1h17z`,rightgroup:`M0 80h399565c371 0 266.7 149.4 414 180 5.9 1.2 18 0 18 0 2 0 + 3-1 3-3v-38c-76-158-257-219-435-219H0z`,rightgroupunder:`M0 262h399565c371 0 266.7-149.4 414-180 5.9-1.2 18 0 18 + 0 2 0 3 1 3 3v38c-76 158-257 219-435 219H0z`,rightharpoon:`M0 241v40h399993c4.7-4.7 7-9.3 7-14 0-9.3 +-3.7-15.3-11-18-92.7-56.7-159-133.7-199-231-3.3-9.3-6-14.7-8-16-2-1.3-7-2-15-2 +-10.7 0-16.7 2-18 6-2 2.7-1 9.7 3 21 15.3 42 36.7 81.8 64 119.5 27.3 37.7 58 + 69.2 92 94.5zm0 0v40h399900v-40z`,rightharpoonplus:`M0 241v40h399993c4.7-4.7 7-9.3 7-14 0-9.3-3.7-15.3-11 +-18-92.7-56.7-159-133.7-199-231-3.3-9.3-6-14.7-8-16-2-1.3-7-2-15-2-10.7 0-16.7 + 2-18 6-2 2.7-1 9.7 3 21 15.3 42 36.7 81.8 64 119.5 27.3 37.7 58 69.2 92 94.5z +m0 0v40h399900v-40z m100 194v40h399900v-40zm0 0v40h399900v-40z`,rightharpoondown:`M399747 511c0 7.3 6.7 11 20 11 8 0 13-.8 15-2.5s4.7-6.8 + 8-15.5c40-94 99.3-166.3 178-217 13.3-8 20.3-12.3 21-13 5.3-3.3 8.5-5.8 9.5 +-7.5 1-1.7 1.5-5.2 1.5-10.5s-2.3-10.3-7-15H0v40h399908c-34 25.3-64.7 57-92 95 +-27.3 38-48.7 77.7-64 119-3.3 8.7-5 14-5 16zM0 241v40h399900v-40z`,rightharpoondownplus:`M399747 705c0 7.3 6.7 11 20 11 8 0 13-.8 + 15-2.5s4.7-6.8 8-15.5c40-94 99.3-166.3 178-217 13.3-8 20.3-12.3 21-13 5.3-3.3 + 8.5-5.8 9.5-7.5 1-1.7 1.5-5.2 1.5-10.5s-2.3-10.3-7-15H0v40h399908c-34 25.3 +-64.7 57-92 95-27.3 38-48.7 77.7-64 119-3.3 8.7-5 14-5 16zM0 435v40h399900v-40z +m0-194v40h400000v-40zm0 0v40h400000v-40z`,righthook:`M399859 241c-764 0 0 0 0 0 40-3.3 68.7-15.7 86-37 10-12 15-25.3 + 15-40 0-22.7-9.8-40.7-29.5-54-19.7-13.3-43.5-21-71.5-23-17.3-1.3-26-8-26-20 0 +-13.3 8.7-20 26-20 38 0 71 11.2 99 33.5 0 0 7 5.6 21 16.7 14 11.2 21 33.5 21 + 66.8s-14 61.2-42 83.5c-28 22.3-61 33.5-99 33.5L0 241z M0 281v-40h399859v40z`,rightlinesegment:`M399960 241 V94 h40 V428 h-40 V281 H0 v-40z +M399960 241 V94 h40 V428 h-40 V281 H0 v-40z`,rightToFrom:`M400000 167c-70.7-42-118-97.7-142-167h-23c-15.3 0-23 .3-23 + 1 0 1.3 5.3 13.7 16 37 18 35.3 41.3 69 70 101l7 8H0v40h399905l-7 8c-28.7 32 +-52 65.7-70 101-10.7 23.3-16 35.7-16 37 0 .7 7.7 1 23 1h23c24-69.3 71.3-125 142 +-167z M100 147v40h399900v-40zM0 341v40h399900v-40z`,twoheadleftarrow:`M0 167c68 40 + 115.7 95.7 143 167h22c15.3 0 23-.3 23-1 0-1.3-5.3-13.7-16-37-18-35.3-41.3-69 +-70-101l-7-8h125l9 7c50.7 39.3 85 86 103 140h46c0-4.7-6.3-18.7-19-42-18-35.3 +-40-67.3-66-96l-9-9h399716v-40H284l9-9c26-28.7 48-60.7 66-96 12.7-23.333 19 +-37.333 19-42h-46c-18 54-52.3 100.7-103 140l-9 7H95l7-8c28.7-32 52-65.7 70-101 + 10.7-23.333 16-35.7 16-37 0-.7-7.7-1-23-1h-22C115.7 71.3 68 127 0 167z`,twoheadrightarrow:`M400000 167 +c-68-40-115.7-95.7-143-167h-22c-15.3 0-23 .3-23 1 0 1.3 5.3 13.7 16 37 18 35.3 + 41.3 69 70 101l7 8h-125l-9-7c-50.7-39.3-85-86-103-140h-46c0 4.7 6.3 18.7 19 42 + 18 35.3 40 67.3 66 96l9 9H0v40h399716l-9 9c-26 28.7-48 60.7-66 96-12.7 23.333 +-19 37.333-19 42h46c18-54 52.3-100.7 103-140l9-7h125l-7 8c-28.7 32-52 65.7-70 + 101-10.7 23.333-16 35.7-16 37 0 .7 7.7 1 23 1h22c27.3-71.3 75-127 143-167z`,tilde1:`M200 55.538c-77 0-168 73.953-177 73.953-3 0-7 +-2.175-9-5.437L2 97c-1-2-2-4-2-6 0-4 2-7 5-9l20-12C116 12 171 0 207 0c86 0 + 114 68 191 68 78 0 168-68 177-68 4 0 7 2 9 5l12 19c1 2.175 2 4.35 2 6.525 0 + 4.35-2 7.613-5 9.788l-19 13.05c-92 63.077-116.937 75.308-183 76.128 +-68.267.847-113-73.952-191-73.952z`,tilde2:`M344 55.266c-142 0-300.638 81.316-311.5 86.418 +-8.01 3.762-22.5 10.91-23.5 5.562L1 120c-1-2-1-3-1-4 0-5 3-9 8-10l18.4-9C160.9 + 31.9 283 0 358 0c148 0 188 122 331 122s314-97 326-97c4 0 8 2 10 7l7 21.114 +c1 2.14 1 3.21 1 4.28 0 5.347-3 9.626-7 10.696l-22.3 12.622C852.6 158.372 751 + 181.476 676 181.476c-149 0-189-126.21-332-126.21z`,tilde3:`M786 59C457 59 32 175.242 13 175.242c-6 0-10-3.457 +-11-10.37L.15 138c-1-7 3-12 10-13l19.2-6.4C378.4 40.7 634.3 0 804.3 0c337 0 + 411.8 157 746.8 157 328 0 754-112 773-112 5 0 10 3 11 9l1 14.075c1 8.066-.697 + 16.595-6.697 17.492l-21.052 7.31c-367.9 98.146-609.15 122.696-778.15 122.696 + -338 0-409-156.573-744-156.573z`,tilde4:`M786 58C457 58 32 177.487 13 177.487c-6 0-10-3.345 +-11-10.035L.15 143c-1-7 3-12 10-13l22-6.7C381.2 35 637.15 0 807.15 0c337 0 409 + 177 744 177 328 0 754-127 773-127 5 0 10 3 11 9l1 14.794c1 7.805-3 13.38-9 + 14.495l-20.7 5.574c-366.85 99.79-607.3 139.372-776.3 139.372-338 0-409 + -175.236-744-175.236z`,vec:`M377 20c0-5.333 1.833-10 5.5-14S391 0 397 0c4.667 0 8.667 1.667 12 5 +3.333 2.667 6.667 9 10 19 6.667 24.667 20.333 43.667 41 57 7.333 4.667 11 +10.667 11 18 0 6-1 10-3 12s-6.667 5-14 9c-28.667 14.667-53.667 35.667-75 63 +-1.333 1.333-3.167 3.5-5.5 6.5s-4 4.833-5 5.5c-1 .667-2.5 1.333-4.5 2s-4.333 1 +-7 1c-4.667 0-9.167-1.833-13.5-5.5S337 184 337 178c0-12.667 15.667-32.333 47-59 +H213l-171-1c-8.667-6-13-12.333-13-19 0-4.667 4.333-11.333 13-20h359 +c-16-25.333-24-45-24-59z`,widehat1:`M529 0h5l519 115c5 1 9 5 9 10 0 1-1 2-1 3l-4 22 +c-1 5-5 9-11 9h-2L532 67 19 159h-2c-5 0-9-4-11-9l-5-22c-1-6 2-12 8-13z`,widehat2:`M1181 0h2l1171 176c6 0 10 5 10 11l-2 23c-1 6-5 10 +-11 10h-1L1182 67 15 220h-1c-6 0-10-4-11-10l-2-23c-1-6 4-11 10-11z`,widehat3:`M1181 0h2l1171 236c6 0 10 5 10 11l-2 23c-1 6-5 10 +-11 10h-1L1182 67 15 280h-1c-6 0-10-4-11-10l-2-23c-1-6 4-11 10-11z`,widehat4:`M1181 0h2l1171 296c6 0 10 5 10 11l-2 23c-1 6-5 10 +-11 10h-1L1182 67 15 340h-1c-6 0-10-4-11-10l-2-23c-1-6 4-11 10-11z`,widecheck1:`M529,159h5l519,-115c5,-1,9,-5,9,-10c0,-1,-1,-2,-1,-3l-4,-22c-1, +-5,-5,-9,-11,-9h-2l-512,92l-513,-92h-2c-5,0,-9,4,-11,9l-5,22c-1,6,2,12,8,13z`,widecheck2:`M1181,220h2l1171,-176c6,0,10,-5,10,-11l-2,-23c-1,-6,-5,-10, +-11,-10h-1l-1168,153l-1167,-153h-1c-6,0,-10,4,-11,10l-2,23c-1,6,4,11,10,11z`,widecheck3:`M1181,280h2l1171,-236c6,0,10,-5,10,-11l-2,-23c-1,-6,-5,-10, +-11,-10h-1l-1168,213l-1167,-213h-1c-6,0,-10,4,-11,10l-2,23c-1,6,4,11,10,11z`,widecheck4:`M1181,340h2l1171,-296c6,0,10,-5,10,-11l-2,-23c-1,-6,-5,-10, +-11,-10h-1l-1168,273l-1167,-273h-1c-6,0,-10,4,-11,10l-2,23c-1,6,4,11,10,11z`,baraboveleftarrow:`M400000 620h-399890l3 -3c68.7 -52.7 113.7 -120 135 -202 +c4 -14.7 6 -23 6 -25c0 -7.3 -7 -11 -21 -11c-8 0 -13.2 0.8 -15.5 2.5 +c-2.3 1.7 -4.2 5.8 -5.5 12.5c-1.3 4.7 -2.7 10.3 -4 17c-12 48.7 -34.8 92 -68.5 130 +s-74.2 66.3 -121.5 85c-10 4 -16 7.7 -18 11c0 8.7 6 14.3 18 17c47.3 18.7 87.8 47 +121.5 85s56.5 81.3 68.5 130c0.7 2 1.3 5 2 9s1.2 6.7 1.5 8c0.3 1.3 1 3.3 2 6 +s2.2 4.5 3.5 5.5c1.3 1 3.3 1.8 6 2.5s6 1 10 1c14 0 21 -3.7 21 -11 +c0 -2 -2 -10.3 -6 -25c-20 -79.3 -65 -146.7 -135 -202l-3 -3h399890z +M100 620v40h399900v-40z M0 241v40h399900v-40zM0 241v40h399900v-40z`,rightarrowabovebar:`M0 241v40h399891c-47.3 35.3-84 78-110 128-16.7 32 +-27.7 63.7-33 95 0 1.3-.2 2.7-.5 4-.3 1.3-.5 2.3-.5 3 0 7.3 6.7 11 20 11 8 0 +13.2-.8 15.5-2.5 2.3-1.7 4.2-5.5 5.5-11.5 2-13.3 5.7-27 11-41 14.7-44.7 39 +-84.5 73-119.5s73.7-60.2 119-75.5c6-2 9-5.7 9-11s-3-9-9-11c-45.3-15.3-85-40.5 +-119-75.5s-58.3-74.8-73-119.5c-4.7-14-8.3-27.3-11-40-1.3-6.7-3.2-10.8-5.5 +-12.5-2.3-1.7-7.5-2.5-15.5-2.5-14 0-21 3.7-21 11 0 2 2 10.3 6 25 20.7 83.3 67 +151.7 139 205zm96 379h399894v40H0zm0 0h399904v40H0z`,baraboveshortleftharpoon:`M507,435c-4,4,-6.3,8.7,-7,14c0,5.3,0.7,9,2,11 +c1.3,2,5.3,5.3,12,10c90.7,54,156,130,196,228c3.3,10.7,6.3,16.3,9,17 +c2,0.7,5,1,9,1c0,0,5,0,5,0c10.7,0,16.7,-2,18,-6c2,-2.7,1,-9.7,-3,-21 +c-32,-87.3,-82.7,-157.7,-152,-211c0,0,-3,-3,-3,-3l399351,0l0,-40 +c-398570,0,-399437,0,-399437,0z M593 435 v40 H399500 v-40z +M0 281 v-40 H399908 v40z M0 281 v-40 H399908 v40z`,rightharpoonaboveshortbar:`M0,241 l0,40c399126,0,399993,0,399993,0 +c4.7,-4.7,7,-9.3,7,-14c0,-9.3,-3.7,-15.3,-11,-18c-92.7,-56.7,-159,-133.7,-199, +-231c-3.3,-9.3,-6,-14.7,-8,-16c-2,-1.3,-7,-2,-15,-2c-10.7,0,-16.7,2,-18,6 +c-2,2.7,-1,9.7,3,21c15.3,42,36.7,81.8,64,119.5c27.3,37.7,58,69.2,92,94.5z +M0 241 v40 H399908 v-40z M0 475 v-40 H399500 v40z M0 475 v-40 H399500 v40z`,shortbaraboveleftharpoon:`M7,435c-4,4,-6.3,8.7,-7,14c0,5.3,0.7,9,2,11 +c1.3,2,5.3,5.3,12,10c90.7,54,156,130,196,228c3.3,10.7,6.3,16.3,9,17c2,0.7,5,1,9, +1c0,0,5,0,5,0c10.7,0,16.7,-2,18,-6c2,-2.7,1,-9.7,-3,-21c-32,-87.3,-82.7,-157.7, +-152,-211c0,0,-3,-3,-3,-3l399907,0l0,-40c-399126,0,-399993,0,-399993,0z +M93 435 v40 H400000 v-40z M500 241 v40 H400000 v-40z M500 241 v40 H400000 v-40z`,shortrightharpoonabovebar:`M53,241l0,40c398570,0,399437,0,399437,0 +c4.7,-4.7,7,-9.3,7,-14c0,-9.3,-3.7,-15.3,-11,-18c-92.7,-56.7,-159,-133.7,-199, +-231c-3.3,-9.3,-6,-14.7,-8,-16c-2,-1.3,-7,-2,-15,-2c-10.7,0,-16.7,2,-18,6 +c-2,2.7,-1,9.7,3,21c15.3,42,36.7,81.8,64,119.5c27.3,37.7,58,69.2,92,94.5z +M500 241 v40 H399408 v-40z M500 435 v40 H400000 v-40z`},Ga=function(e,t){switch(e){case"lbrack":return"M403 1759 V84 H666 V0 H319 V1759 v"+t+` v1759 h347 v-84 +H403z M403 1759 V0 H319 V1759 v`+t+" v1759 h84z";case"rbrack":return"M347 1759 V0 H0 V84 H263 V1759 v"+t+` v1759 H0 v84 H347z +M347 1759 V0 H263 V1759 v`+t+" v1759 h84z";case"vert":return"M145 15 v585 v"+t+` v585 c2.667,10,9.667,15,21,15 +c10,0,16.667,-5,20,-15 v-585 v`+-t+` v-585 c-2.667,-10,-9.667,-15,-21,-15 +c-10,0,-16.667,5,-20,15z M188 15 H145 v585 v`+t+" v585 h43z";case"doublevert":return"M145 15 v585 v"+t+` v585 c2.667,10,9.667,15,21,15 +c10,0,16.667,-5,20,-15 v-585 v`+-t+` v-585 c-2.667,-10,-9.667,-15,-21,-15 +c-10,0,-16.667,5,-20,15z M188 15 H145 v585 v`+t+` v585 h43z +M367 15 v585 v`+t+` v585 c2.667,10,9.667,15,21,15 +c10,0,16.667,-5,20,-15 v-585 v`+-t+` v-585 c-2.667,-10,-9.667,-15,-21,-15 +c-10,0,-16.667,5,-20,15z M410 15 H367 v585 v`+t+" v585 h43z";case"lfloor":return"M319 602 V0 H403 V602 v"+t+` v1715 h263 v84 H319z +MM319 602 V0 H403 V602 v`+t+" v1715 H319z";case"rfloor":return"M319 602 V0 H403 V602 v"+t+` v1799 H0 v-84 H319z +MM319 602 V0 H403 V602 v`+t+" v1715 H319z";case"lceil":return"M403 1759 V84 H666 V0 H319 V1759 v"+t+` v602 h84z +M403 1759 V0 H319 V1759 v`+t+" v602 h84z";case"rceil":return"M347 1759 V0 H0 V84 H263 V1759 v"+t+` v602 h84z +M347 1759 V0 h-84 V1759 v`+t+" v602 h84z";case"lparen":return`M863,9c0,-2,-2,-5,-6,-9c0,0,-17,0,-17,0c-12.7,0,-19.3,0.3,-20,1 +c-5.3,5.3,-10.3,11,-15,17c-242.7,294.7,-395.3,682,-458,1162c-21.3,163.3,-33.3,349, +-36,557 l0,`+(t+84)+`c0.2,6,0,26,0,60c2,159.3,10,310.7,24,454c53.3,528,210, +949.7,470,1265c4.7,6,9.7,11.7,15,17c0.7,0.7,7,1,19,1c0,0,18,0,18,0c4,-4,6,-7,6,-9 +c0,-2.7,-3.3,-8.7,-10,-18c-135.3,-192.7,-235.5,-414.3,-300.5,-665c-65,-250.7,-102.5, +-544.7,-112.5,-882c-2,-104,-3,-167,-3,-189 +l0,-`+(t+92)+`c0,-162.7,5.7,-314,17,-454c20.7,-272,63.7,-513,129,-723c65.3, +-210,155.3,-396.3,270,-559c6.7,-9.3,10,-15.3,10,-18z`;case"rparen":return`M76,0c-16.7,0,-25,3,-25,9c0,2,2,6.3,6,13c21.3,28.7,42.3,60.3, +63,95c96.7,156.7,172.8,332.5,228.5,527.5c55.7,195,92.8,416.5,111.5,664.5 +c11.3,139.3,17,290.7,17,454c0,28,1.7,43,3.3,45l0,`+(t+9)+` +c-3,4,-3.3,16.7,-3.3,38c0,162,-5.7,313.7,-17,455c-18.7,248,-55.8,469.3,-111.5,664 +c-55.7,194.7,-131.8,370.3,-228.5,527c-20.7,34.7,-41.7,66.3,-63,95c-2,3.3,-4,7,-6,11 +c0,7.3,5.7,11,17,11c0,0,11,0,11,0c9.3,0,14.3,-0.3,15,-1c5.3,-5.3,10.3,-11,15,-17 +c242.7,-294.7,395.3,-681.7,458,-1161c21.3,-164.7,33.3,-350.7,36,-558 +l0,-`+(t+144)+`c-2,-159.3,-10,-310.7,-24,-454c-53.3,-528,-210,-949.7, +-470,-1265c-4.7,-6,-9.7,-11.7,-15,-17c-0.7,-0.7,-6.7,-1,-18,-1z`;default:throw new Error("Unknown stretchy delimiter.")}};class ue{constructor(e){this.children=void 0,this.classes=void 0,this.height=void 0,this.depth=void 0,this.maxFontSize=void 0,this.style=void 0,this.children=e,this.classes=[],this.height=0,this.depth=0,this.maxFontSize=0,this.style={}}hasClass(e){return q.contains(this.classes,e)}toNode(){for(var e=document.createDocumentFragment(),t=0;tt.toText();return this.children.map(e).join("")}}var x0={"AMS-Regular":{32:[0,0,0,0,.25],65:[0,.68889,0,0,.72222],66:[0,.68889,0,0,.66667],67:[0,.68889,0,0,.72222],68:[0,.68889,0,0,.72222],69:[0,.68889,0,0,.66667],70:[0,.68889,0,0,.61111],71:[0,.68889,0,0,.77778],72:[0,.68889,0,0,.77778],73:[0,.68889,0,0,.38889],74:[.16667,.68889,0,0,.5],75:[0,.68889,0,0,.77778],76:[0,.68889,0,0,.66667],77:[0,.68889,0,0,.94445],78:[0,.68889,0,0,.72222],79:[.16667,.68889,0,0,.77778],80:[0,.68889,0,0,.61111],81:[.16667,.68889,0,0,.77778],82:[0,.68889,0,0,.72222],83:[0,.68889,0,0,.55556],84:[0,.68889,0,0,.66667],85:[0,.68889,0,0,.72222],86:[0,.68889,0,0,.72222],87:[0,.68889,0,0,1],88:[0,.68889,0,0,.72222],89:[0,.68889,0,0,.72222],90:[0,.68889,0,0,.66667],107:[0,.68889,0,0,.55556],160:[0,0,0,0,.25],165:[0,.675,.025,0,.75],174:[.15559,.69224,0,0,.94666],240:[0,.68889,0,0,.55556],295:[0,.68889,0,0,.54028],710:[0,.825,0,0,2.33334],732:[0,.9,0,0,2.33334],770:[0,.825,0,0,2.33334],771:[0,.9,0,0,2.33334],989:[.08167,.58167,0,0,.77778],1008:[0,.43056,.04028,0,.66667],8245:[0,.54986,0,0,.275],8463:[0,.68889,0,0,.54028],8487:[0,.68889,0,0,.72222],8498:[0,.68889,0,0,.55556],8502:[0,.68889,0,0,.66667],8503:[0,.68889,0,0,.44445],8504:[0,.68889,0,0,.66667],8513:[0,.68889,0,0,.63889],8592:[-.03598,.46402,0,0,.5],8594:[-.03598,.46402,0,0,.5],8602:[-.13313,.36687,0,0,1],8603:[-.13313,.36687,0,0,1],8606:[.01354,.52239,0,0,1],8608:[.01354,.52239,0,0,1],8610:[.01354,.52239,0,0,1.11111],8611:[.01354,.52239,0,0,1.11111],8619:[0,.54986,0,0,1],8620:[0,.54986,0,0,1],8621:[-.13313,.37788,0,0,1.38889],8622:[-.13313,.36687,0,0,1],8624:[0,.69224,0,0,.5],8625:[0,.69224,0,0,.5],8630:[0,.43056,0,0,1],8631:[0,.43056,0,0,1],8634:[.08198,.58198,0,0,.77778],8635:[.08198,.58198,0,0,.77778],8638:[.19444,.69224,0,0,.41667],8639:[.19444,.69224,0,0,.41667],8642:[.19444,.69224,0,0,.41667],8643:[.19444,.69224,0,0,.41667],8644:[.1808,.675,0,0,1],8646:[.1808,.675,0,0,1],8647:[.1808,.675,0,0,1],8648:[.19444,.69224,0,0,.83334],8649:[.1808,.675,0,0,1],8650:[.19444,.69224,0,0,.83334],8651:[.01354,.52239,0,0,1],8652:[.01354,.52239,0,0,1],8653:[-.13313,.36687,0,0,1],8654:[-.13313,.36687,0,0,1],8655:[-.13313,.36687,0,0,1],8666:[.13667,.63667,0,0,1],8667:[.13667,.63667,0,0,1],8669:[-.13313,.37788,0,0,1],8672:[-.064,.437,0,0,1.334],8674:[-.064,.437,0,0,1.334],8705:[0,.825,0,0,.5],8708:[0,.68889,0,0,.55556],8709:[.08167,.58167,0,0,.77778],8717:[0,.43056,0,0,.42917],8722:[-.03598,.46402,0,0,.5],8724:[.08198,.69224,0,0,.77778],8726:[.08167,.58167,0,0,.77778],8733:[0,.69224,0,0,.77778],8736:[0,.69224,0,0,.72222],8737:[0,.69224,0,0,.72222],8738:[.03517,.52239,0,0,.72222],8739:[.08167,.58167,0,0,.22222],8740:[.25142,.74111,0,0,.27778],8741:[.08167,.58167,0,0,.38889],8742:[.25142,.74111,0,0,.5],8756:[0,.69224,0,0,.66667],8757:[0,.69224,0,0,.66667],8764:[-.13313,.36687,0,0,.77778],8765:[-.13313,.37788,0,0,.77778],8769:[-.13313,.36687,0,0,.77778],8770:[-.03625,.46375,0,0,.77778],8774:[.30274,.79383,0,0,.77778],8776:[-.01688,.48312,0,0,.77778],8778:[.08167,.58167,0,0,.77778],8782:[.06062,.54986,0,0,.77778],8783:[.06062,.54986,0,0,.77778],8785:[.08198,.58198,0,0,.77778],8786:[.08198,.58198,0,0,.77778],8787:[.08198,.58198,0,0,.77778],8790:[0,.69224,0,0,.77778],8791:[.22958,.72958,0,0,.77778],8796:[.08198,.91667,0,0,.77778],8806:[.25583,.75583,0,0,.77778],8807:[.25583,.75583,0,0,.77778],8808:[.25142,.75726,0,0,.77778],8809:[.25142,.75726,0,0,.77778],8812:[.25583,.75583,0,0,.5],8814:[.20576,.70576,0,0,.77778],8815:[.20576,.70576,0,0,.77778],8816:[.30274,.79383,0,0,.77778],8817:[.30274,.79383,0,0,.77778],8818:[.22958,.72958,0,0,.77778],8819:[.22958,.72958,0,0,.77778],8822:[.1808,.675,0,0,.77778],8823:[.1808,.675,0,0,.77778],8828:[.13667,.63667,0,0,.77778],8829:[.13667,.63667,0,0,.77778],8830:[.22958,.72958,0,0,.77778],8831:[.22958,.72958,0,0,.77778],8832:[.20576,.70576,0,0,.77778],8833:[.20576,.70576,0,0,.77778],8840:[.30274,.79383,0,0,.77778],8841:[.30274,.79383,0,0,.77778],8842:[.13597,.63597,0,0,.77778],8843:[.13597,.63597,0,0,.77778],8847:[.03517,.54986,0,0,.77778],8848:[.03517,.54986,0,0,.77778],8858:[.08198,.58198,0,0,.77778],8859:[.08198,.58198,0,0,.77778],8861:[.08198,.58198,0,0,.77778],8862:[0,.675,0,0,.77778],8863:[0,.675,0,0,.77778],8864:[0,.675,0,0,.77778],8865:[0,.675,0,0,.77778],8872:[0,.69224,0,0,.61111],8873:[0,.69224,0,0,.72222],8874:[0,.69224,0,0,.88889],8876:[0,.68889,0,0,.61111],8877:[0,.68889,0,0,.61111],8878:[0,.68889,0,0,.72222],8879:[0,.68889,0,0,.72222],8882:[.03517,.54986,0,0,.77778],8883:[.03517,.54986,0,0,.77778],8884:[.13667,.63667,0,0,.77778],8885:[.13667,.63667,0,0,.77778],8888:[0,.54986,0,0,1.11111],8890:[.19444,.43056,0,0,.55556],8891:[.19444,.69224,0,0,.61111],8892:[.19444,.69224,0,0,.61111],8901:[0,.54986,0,0,.27778],8903:[.08167,.58167,0,0,.77778],8905:[.08167,.58167,0,0,.77778],8906:[.08167,.58167,0,0,.77778],8907:[0,.69224,0,0,.77778],8908:[0,.69224,0,0,.77778],8909:[-.03598,.46402,0,0,.77778],8910:[0,.54986,0,0,.76042],8911:[0,.54986,0,0,.76042],8912:[.03517,.54986,0,0,.77778],8913:[.03517,.54986,0,0,.77778],8914:[0,.54986,0,0,.66667],8915:[0,.54986,0,0,.66667],8916:[0,.69224,0,0,.66667],8918:[.0391,.5391,0,0,.77778],8919:[.0391,.5391,0,0,.77778],8920:[.03517,.54986,0,0,1.33334],8921:[.03517,.54986,0,0,1.33334],8922:[.38569,.88569,0,0,.77778],8923:[.38569,.88569,0,0,.77778],8926:[.13667,.63667,0,0,.77778],8927:[.13667,.63667,0,0,.77778],8928:[.30274,.79383,0,0,.77778],8929:[.30274,.79383,0,0,.77778],8934:[.23222,.74111,0,0,.77778],8935:[.23222,.74111,0,0,.77778],8936:[.23222,.74111,0,0,.77778],8937:[.23222,.74111,0,0,.77778],8938:[.20576,.70576,0,0,.77778],8939:[.20576,.70576,0,0,.77778],8940:[.30274,.79383,0,0,.77778],8941:[.30274,.79383,0,0,.77778],8994:[.19444,.69224,0,0,.77778],8995:[.19444,.69224,0,0,.77778],9416:[.15559,.69224,0,0,.90222],9484:[0,.69224,0,0,.5],9488:[0,.69224,0,0,.5],9492:[0,.37788,0,0,.5],9496:[0,.37788,0,0,.5],9585:[.19444,.68889,0,0,.88889],9586:[.19444,.74111,0,0,.88889],9632:[0,.675,0,0,.77778],9633:[0,.675,0,0,.77778],9650:[0,.54986,0,0,.72222],9651:[0,.54986,0,0,.72222],9654:[.03517,.54986,0,0,.77778],9660:[0,.54986,0,0,.72222],9661:[0,.54986,0,0,.72222],9664:[.03517,.54986,0,0,.77778],9674:[.11111,.69224,0,0,.66667],9733:[.19444,.69224,0,0,.94445],10003:[0,.69224,0,0,.83334],10016:[0,.69224,0,0,.83334],10731:[.11111,.69224,0,0,.66667],10846:[.19444,.75583,0,0,.61111],10877:[.13667,.63667,0,0,.77778],10878:[.13667,.63667,0,0,.77778],10885:[.25583,.75583,0,0,.77778],10886:[.25583,.75583,0,0,.77778],10887:[.13597,.63597,0,0,.77778],10888:[.13597,.63597,0,0,.77778],10889:[.26167,.75726,0,0,.77778],10890:[.26167,.75726,0,0,.77778],10891:[.48256,.98256,0,0,.77778],10892:[.48256,.98256,0,0,.77778],10901:[.13667,.63667,0,0,.77778],10902:[.13667,.63667,0,0,.77778],10933:[.25142,.75726,0,0,.77778],10934:[.25142,.75726,0,0,.77778],10935:[.26167,.75726,0,0,.77778],10936:[.26167,.75726,0,0,.77778],10937:[.26167,.75726,0,0,.77778],10938:[.26167,.75726,0,0,.77778],10949:[.25583,.75583,0,0,.77778],10950:[.25583,.75583,0,0,.77778],10955:[.28481,.79383,0,0,.77778],10956:[.28481,.79383,0,0,.77778],57350:[.08167,.58167,0,0,.22222],57351:[.08167,.58167,0,0,.38889],57352:[.08167,.58167,0,0,.77778],57353:[0,.43056,.04028,0,.66667],57356:[.25142,.75726,0,0,.77778],57357:[.25142,.75726,0,0,.77778],57358:[.41951,.91951,0,0,.77778],57359:[.30274,.79383,0,0,.77778],57360:[.30274,.79383,0,0,.77778],57361:[.41951,.91951,0,0,.77778],57366:[.25142,.75726,0,0,.77778],57367:[.25142,.75726,0,0,.77778],57368:[.25142,.75726,0,0,.77778],57369:[.25142,.75726,0,0,.77778],57370:[.13597,.63597,0,0,.77778],57371:[.13597,.63597,0,0,.77778]},"Caligraphic-Regular":{32:[0,0,0,0,.25],65:[0,.68333,0,.19445,.79847],66:[0,.68333,.03041,.13889,.65681],67:[0,.68333,.05834,.13889,.52653],68:[0,.68333,.02778,.08334,.77139],69:[0,.68333,.08944,.11111,.52778],70:[0,.68333,.09931,.11111,.71875],71:[.09722,.68333,.0593,.11111,.59487],72:[0,.68333,.00965,.11111,.84452],73:[0,.68333,.07382,0,.54452],74:[.09722,.68333,.18472,.16667,.67778],75:[0,.68333,.01445,.05556,.76195],76:[0,.68333,0,.13889,.68972],77:[0,.68333,0,.13889,1.2009],78:[0,.68333,.14736,.08334,.82049],79:[0,.68333,.02778,.11111,.79611],80:[0,.68333,.08222,.08334,.69556],81:[.09722,.68333,0,.11111,.81667],82:[0,.68333,0,.08334,.8475],83:[0,.68333,.075,.13889,.60556],84:[0,.68333,.25417,0,.54464],85:[0,.68333,.09931,.08334,.62583],86:[0,.68333,.08222,0,.61278],87:[0,.68333,.08222,.08334,.98778],88:[0,.68333,.14643,.13889,.7133],89:[.09722,.68333,.08222,.08334,.66834],90:[0,.68333,.07944,.13889,.72473],160:[0,0,0,0,.25]},"Fraktur-Regular":{32:[0,0,0,0,.25],33:[0,.69141,0,0,.29574],34:[0,.69141,0,0,.21471],38:[0,.69141,0,0,.73786],39:[0,.69141,0,0,.21201],40:[.24982,.74947,0,0,.38865],41:[.24982,.74947,0,0,.38865],42:[0,.62119,0,0,.27764],43:[.08319,.58283,0,0,.75623],44:[0,.10803,0,0,.27764],45:[.08319,.58283,0,0,.75623],46:[0,.10803,0,0,.27764],47:[.24982,.74947,0,0,.50181],48:[0,.47534,0,0,.50181],49:[0,.47534,0,0,.50181],50:[0,.47534,0,0,.50181],51:[.18906,.47534,0,0,.50181],52:[.18906,.47534,0,0,.50181],53:[.18906,.47534,0,0,.50181],54:[0,.69141,0,0,.50181],55:[.18906,.47534,0,0,.50181],56:[0,.69141,0,0,.50181],57:[.18906,.47534,0,0,.50181],58:[0,.47534,0,0,.21606],59:[.12604,.47534,0,0,.21606],61:[-.13099,.36866,0,0,.75623],63:[0,.69141,0,0,.36245],65:[0,.69141,0,0,.7176],66:[0,.69141,0,0,.88397],67:[0,.69141,0,0,.61254],68:[0,.69141,0,0,.83158],69:[0,.69141,0,0,.66278],70:[.12604,.69141,0,0,.61119],71:[0,.69141,0,0,.78539],72:[.06302,.69141,0,0,.7203],73:[0,.69141,0,0,.55448],74:[.12604,.69141,0,0,.55231],75:[0,.69141,0,0,.66845],76:[0,.69141,0,0,.66602],77:[0,.69141,0,0,1.04953],78:[0,.69141,0,0,.83212],79:[0,.69141,0,0,.82699],80:[.18906,.69141,0,0,.82753],81:[.03781,.69141,0,0,.82699],82:[0,.69141,0,0,.82807],83:[0,.69141,0,0,.82861],84:[0,.69141,0,0,.66899],85:[0,.69141,0,0,.64576],86:[0,.69141,0,0,.83131],87:[0,.69141,0,0,1.04602],88:[0,.69141,0,0,.71922],89:[.18906,.69141,0,0,.83293],90:[.12604,.69141,0,0,.60201],91:[.24982,.74947,0,0,.27764],93:[.24982,.74947,0,0,.27764],94:[0,.69141,0,0,.49965],97:[0,.47534,0,0,.50046],98:[0,.69141,0,0,.51315],99:[0,.47534,0,0,.38946],100:[0,.62119,0,0,.49857],101:[0,.47534,0,0,.40053],102:[.18906,.69141,0,0,.32626],103:[.18906,.47534,0,0,.5037],104:[.18906,.69141,0,0,.52126],105:[0,.69141,0,0,.27899],106:[0,.69141,0,0,.28088],107:[0,.69141,0,0,.38946],108:[0,.69141,0,0,.27953],109:[0,.47534,0,0,.76676],110:[0,.47534,0,0,.52666],111:[0,.47534,0,0,.48885],112:[.18906,.52396,0,0,.50046],113:[.18906,.47534,0,0,.48912],114:[0,.47534,0,0,.38919],115:[0,.47534,0,0,.44266],116:[0,.62119,0,0,.33301],117:[0,.47534,0,0,.5172],118:[0,.52396,0,0,.5118],119:[0,.52396,0,0,.77351],120:[.18906,.47534,0,0,.38865],121:[.18906,.47534,0,0,.49884],122:[.18906,.47534,0,0,.39054],160:[0,0,0,0,.25],8216:[0,.69141,0,0,.21471],8217:[0,.69141,0,0,.21471],58112:[0,.62119,0,0,.49749],58113:[0,.62119,0,0,.4983],58114:[.18906,.69141,0,0,.33328],58115:[.18906,.69141,0,0,.32923],58116:[.18906,.47534,0,0,.50343],58117:[0,.69141,0,0,.33301],58118:[0,.62119,0,0,.33409],58119:[0,.47534,0,0,.50073]},"Main-Bold":{32:[0,0,0,0,.25],33:[0,.69444,0,0,.35],34:[0,.69444,0,0,.60278],35:[.19444,.69444,0,0,.95833],36:[.05556,.75,0,0,.575],37:[.05556,.75,0,0,.95833],38:[0,.69444,0,0,.89444],39:[0,.69444,0,0,.31944],40:[.25,.75,0,0,.44722],41:[.25,.75,0,0,.44722],42:[0,.75,0,0,.575],43:[.13333,.63333,0,0,.89444],44:[.19444,.15556,0,0,.31944],45:[0,.44444,0,0,.38333],46:[0,.15556,0,0,.31944],47:[.25,.75,0,0,.575],48:[0,.64444,0,0,.575],49:[0,.64444,0,0,.575],50:[0,.64444,0,0,.575],51:[0,.64444,0,0,.575],52:[0,.64444,0,0,.575],53:[0,.64444,0,0,.575],54:[0,.64444,0,0,.575],55:[0,.64444,0,0,.575],56:[0,.64444,0,0,.575],57:[0,.64444,0,0,.575],58:[0,.44444,0,0,.31944],59:[.19444,.44444,0,0,.31944],60:[.08556,.58556,0,0,.89444],61:[-.10889,.39111,0,0,.89444],62:[.08556,.58556,0,0,.89444],63:[0,.69444,0,0,.54305],64:[0,.69444,0,0,.89444],65:[0,.68611,0,0,.86944],66:[0,.68611,0,0,.81805],67:[0,.68611,0,0,.83055],68:[0,.68611,0,0,.88194],69:[0,.68611,0,0,.75555],70:[0,.68611,0,0,.72361],71:[0,.68611,0,0,.90416],72:[0,.68611,0,0,.9],73:[0,.68611,0,0,.43611],74:[0,.68611,0,0,.59444],75:[0,.68611,0,0,.90138],76:[0,.68611,0,0,.69166],77:[0,.68611,0,0,1.09166],78:[0,.68611,0,0,.9],79:[0,.68611,0,0,.86388],80:[0,.68611,0,0,.78611],81:[.19444,.68611,0,0,.86388],82:[0,.68611,0,0,.8625],83:[0,.68611,0,0,.63889],84:[0,.68611,0,0,.8],85:[0,.68611,0,0,.88472],86:[0,.68611,.01597,0,.86944],87:[0,.68611,.01597,0,1.18888],88:[0,.68611,0,0,.86944],89:[0,.68611,.02875,0,.86944],90:[0,.68611,0,0,.70277],91:[.25,.75,0,0,.31944],92:[.25,.75,0,0,.575],93:[.25,.75,0,0,.31944],94:[0,.69444,0,0,.575],95:[.31,.13444,.03194,0,.575],97:[0,.44444,0,0,.55902],98:[0,.69444,0,0,.63889],99:[0,.44444,0,0,.51111],100:[0,.69444,0,0,.63889],101:[0,.44444,0,0,.52708],102:[0,.69444,.10903,0,.35139],103:[.19444,.44444,.01597,0,.575],104:[0,.69444,0,0,.63889],105:[0,.69444,0,0,.31944],106:[.19444,.69444,0,0,.35139],107:[0,.69444,0,0,.60694],108:[0,.69444,0,0,.31944],109:[0,.44444,0,0,.95833],110:[0,.44444,0,0,.63889],111:[0,.44444,0,0,.575],112:[.19444,.44444,0,0,.63889],113:[.19444,.44444,0,0,.60694],114:[0,.44444,0,0,.47361],115:[0,.44444,0,0,.45361],116:[0,.63492,0,0,.44722],117:[0,.44444,0,0,.63889],118:[0,.44444,.01597,0,.60694],119:[0,.44444,.01597,0,.83055],120:[0,.44444,0,0,.60694],121:[.19444,.44444,.01597,0,.60694],122:[0,.44444,0,0,.51111],123:[.25,.75,0,0,.575],124:[.25,.75,0,0,.31944],125:[.25,.75,0,0,.575],126:[.35,.34444,0,0,.575],160:[0,0,0,0,.25],163:[0,.69444,0,0,.86853],168:[0,.69444,0,0,.575],172:[0,.44444,0,0,.76666],176:[0,.69444,0,0,.86944],177:[.13333,.63333,0,0,.89444],184:[.17014,0,0,0,.51111],198:[0,.68611,0,0,1.04166],215:[.13333,.63333,0,0,.89444],216:[.04861,.73472,0,0,.89444],223:[0,.69444,0,0,.59722],230:[0,.44444,0,0,.83055],247:[.13333,.63333,0,0,.89444],248:[.09722,.54167,0,0,.575],305:[0,.44444,0,0,.31944],338:[0,.68611,0,0,1.16944],339:[0,.44444,0,0,.89444],567:[.19444,.44444,0,0,.35139],710:[0,.69444,0,0,.575],711:[0,.63194,0,0,.575],713:[0,.59611,0,0,.575],714:[0,.69444,0,0,.575],715:[0,.69444,0,0,.575],728:[0,.69444,0,0,.575],729:[0,.69444,0,0,.31944],730:[0,.69444,0,0,.86944],732:[0,.69444,0,0,.575],733:[0,.69444,0,0,.575],915:[0,.68611,0,0,.69166],916:[0,.68611,0,0,.95833],920:[0,.68611,0,0,.89444],923:[0,.68611,0,0,.80555],926:[0,.68611,0,0,.76666],928:[0,.68611,0,0,.9],931:[0,.68611,0,0,.83055],933:[0,.68611,0,0,.89444],934:[0,.68611,0,0,.83055],936:[0,.68611,0,0,.89444],937:[0,.68611,0,0,.83055],8211:[0,.44444,.03194,0,.575],8212:[0,.44444,.03194,0,1.14999],8216:[0,.69444,0,0,.31944],8217:[0,.69444,0,0,.31944],8220:[0,.69444,0,0,.60278],8221:[0,.69444,0,0,.60278],8224:[.19444,.69444,0,0,.51111],8225:[.19444,.69444,0,0,.51111],8242:[0,.55556,0,0,.34444],8407:[0,.72444,.15486,0,.575],8463:[0,.69444,0,0,.66759],8465:[0,.69444,0,0,.83055],8467:[0,.69444,0,0,.47361],8472:[.19444,.44444,0,0,.74027],8476:[0,.69444,0,0,.83055],8501:[0,.69444,0,0,.70277],8592:[-.10889,.39111,0,0,1.14999],8593:[.19444,.69444,0,0,.575],8594:[-.10889,.39111,0,0,1.14999],8595:[.19444,.69444,0,0,.575],8596:[-.10889,.39111,0,0,1.14999],8597:[.25,.75,0,0,.575],8598:[.19444,.69444,0,0,1.14999],8599:[.19444,.69444,0,0,1.14999],8600:[.19444,.69444,0,0,1.14999],8601:[.19444,.69444,0,0,1.14999],8636:[-.10889,.39111,0,0,1.14999],8637:[-.10889,.39111,0,0,1.14999],8640:[-.10889,.39111,0,0,1.14999],8641:[-.10889,.39111,0,0,1.14999],8656:[-.10889,.39111,0,0,1.14999],8657:[.19444,.69444,0,0,.70277],8658:[-.10889,.39111,0,0,1.14999],8659:[.19444,.69444,0,0,.70277],8660:[-.10889,.39111,0,0,1.14999],8661:[.25,.75,0,0,.70277],8704:[0,.69444,0,0,.63889],8706:[0,.69444,.06389,0,.62847],8707:[0,.69444,0,0,.63889],8709:[.05556,.75,0,0,.575],8711:[0,.68611,0,0,.95833],8712:[.08556,.58556,0,0,.76666],8715:[.08556,.58556,0,0,.76666],8722:[.13333,.63333,0,0,.89444],8723:[.13333,.63333,0,0,.89444],8725:[.25,.75,0,0,.575],8726:[.25,.75,0,0,.575],8727:[-.02778,.47222,0,0,.575],8728:[-.02639,.47361,0,0,.575],8729:[-.02639,.47361,0,0,.575],8730:[.18,.82,0,0,.95833],8733:[0,.44444,0,0,.89444],8734:[0,.44444,0,0,1.14999],8736:[0,.69224,0,0,.72222],8739:[.25,.75,0,0,.31944],8741:[.25,.75,0,0,.575],8743:[0,.55556,0,0,.76666],8744:[0,.55556,0,0,.76666],8745:[0,.55556,0,0,.76666],8746:[0,.55556,0,0,.76666],8747:[.19444,.69444,.12778,0,.56875],8764:[-.10889,.39111,0,0,.89444],8768:[.19444,.69444,0,0,.31944],8771:[.00222,.50222,0,0,.89444],8773:[.027,.638,0,0,.894],8776:[.02444,.52444,0,0,.89444],8781:[.00222,.50222,0,0,.89444],8801:[.00222,.50222,0,0,.89444],8804:[.19667,.69667,0,0,.89444],8805:[.19667,.69667,0,0,.89444],8810:[.08556,.58556,0,0,1.14999],8811:[.08556,.58556,0,0,1.14999],8826:[.08556,.58556,0,0,.89444],8827:[.08556,.58556,0,0,.89444],8834:[.08556,.58556,0,0,.89444],8835:[.08556,.58556,0,0,.89444],8838:[.19667,.69667,0,0,.89444],8839:[.19667,.69667,0,0,.89444],8846:[0,.55556,0,0,.76666],8849:[.19667,.69667,0,0,.89444],8850:[.19667,.69667,0,0,.89444],8851:[0,.55556,0,0,.76666],8852:[0,.55556,0,0,.76666],8853:[.13333,.63333,0,0,.89444],8854:[.13333,.63333,0,0,.89444],8855:[.13333,.63333,0,0,.89444],8856:[.13333,.63333,0,0,.89444],8857:[.13333,.63333,0,0,.89444],8866:[0,.69444,0,0,.70277],8867:[0,.69444,0,0,.70277],8868:[0,.69444,0,0,.89444],8869:[0,.69444,0,0,.89444],8900:[-.02639,.47361,0,0,.575],8901:[-.02639,.47361,0,0,.31944],8902:[-.02778,.47222,0,0,.575],8968:[.25,.75,0,0,.51111],8969:[.25,.75,0,0,.51111],8970:[.25,.75,0,0,.51111],8971:[.25,.75,0,0,.51111],8994:[-.13889,.36111,0,0,1.14999],8995:[-.13889,.36111,0,0,1.14999],9651:[.19444,.69444,0,0,1.02222],9657:[-.02778,.47222,0,0,.575],9661:[.19444,.69444,0,0,1.02222],9667:[-.02778,.47222,0,0,.575],9711:[.19444,.69444,0,0,1.14999],9824:[.12963,.69444,0,0,.89444],9825:[.12963,.69444,0,0,.89444],9826:[.12963,.69444,0,0,.89444],9827:[.12963,.69444,0,0,.89444],9837:[0,.75,0,0,.44722],9838:[.19444,.69444,0,0,.44722],9839:[.19444,.69444,0,0,.44722],10216:[.25,.75,0,0,.44722],10217:[.25,.75,0,0,.44722],10815:[0,.68611,0,0,.9],10927:[.19667,.69667,0,0,.89444],10928:[.19667,.69667,0,0,.89444],57376:[.19444,.69444,0,0,0]},"Main-BoldItalic":{32:[0,0,0,0,.25],33:[0,.69444,.11417,0,.38611],34:[0,.69444,.07939,0,.62055],35:[.19444,.69444,.06833,0,.94444],37:[.05556,.75,.12861,0,.94444],38:[0,.69444,.08528,0,.88555],39:[0,.69444,.12945,0,.35555],40:[.25,.75,.15806,0,.47333],41:[.25,.75,.03306,0,.47333],42:[0,.75,.14333,0,.59111],43:[.10333,.60333,.03306,0,.88555],44:[.19444,.14722,0,0,.35555],45:[0,.44444,.02611,0,.41444],46:[0,.14722,0,0,.35555],47:[.25,.75,.15806,0,.59111],48:[0,.64444,.13167,0,.59111],49:[0,.64444,.13167,0,.59111],50:[0,.64444,.13167,0,.59111],51:[0,.64444,.13167,0,.59111],52:[.19444,.64444,.13167,0,.59111],53:[0,.64444,.13167,0,.59111],54:[0,.64444,.13167,0,.59111],55:[.19444,.64444,.13167,0,.59111],56:[0,.64444,.13167,0,.59111],57:[0,.64444,.13167,0,.59111],58:[0,.44444,.06695,0,.35555],59:[.19444,.44444,.06695,0,.35555],61:[-.10889,.39111,.06833,0,.88555],63:[0,.69444,.11472,0,.59111],64:[0,.69444,.09208,0,.88555],65:[0,.68611,0,0,.86555],66:[0,.68611,.0992,0,.81666],67:[0,.68611,.14208,0,.82666],68:[0,.68611,.09062,0,.87555],69:[0,.68611,.11431,0,.75666],70:[0,.68611,.12903,0,.72722],71:[0,.68611,.07347,0,.89527],72:[0,.68611,.17208,0,.8961],73:[0,.68611,.15681,0,.47166],74:[0,.68611,.145,0,.61055],75:[0,.68611,.14208,0,.89499],76:[0,.68611,0,0,.69777],77:[0,.68611,.17208,0,1.07277],78:[0,.68611,.17208,0,.8961],79:[0,.68611,.09062,0,.85499],80:[0,.68611,.0992,0,.78721],81:[.19444,.68611,.09062,0,.85499],82:[0,.68611,.02559,0,.85944],83:[0,.68611,.11264,0,.64999],84:[0,.68611,.12903,0,.7961],85:[0,.68611,.17208,0,.88083],86:[0,.68611,.18625,0,.86555],87:[0,.68611,.18625,0,1.15999],88:[0,.68611,.15681,0,.86555],89:[0,.68611,.19803,0,.86555],90:[0,.68611,.14208,0,.70888],91:[.25,.75,.1875,0,.35611],93:[.25,.75,.09972,0,.35611],94:[0,.69444,.06709,0,.59111],95:[.31,.13444,.09811,0,.59111],97:[0,.44444,.09426,0,.59111],98:[0,.69444,.07861,0,.53222],99:[0,.44444,.05222,0,.53222],100:[0,.69444,.10861,0,.59111],101:[0,.44444,.085,0,.53222],102:[.19444,.69444,.21778,0,.4],103:[.19444,.44444,.105,0,.53222],104:[0,.69444,.09426,0,.59111],105:[0,.69326,.11387,0,.35555],106:[.19444,.69326,.1672,0,.35555],107:[0,.69444,.11111,0,.53222],108:[0,.69444,.10861,0,.29666],109:[0,.44444,.09426,0,.94444],110:[0,.44444,.09426,0,.64999],111:[0,.44444,.07861,0,.59111],112:[.19444,.44444,.07861,0,.59111],113:[.19444,.44444,.105,0,.53222],114:[0,.44444,.11111,0,.50167],115:[0,.44444,.08167,0,.48694],116:[0,.63492,.09639,0,.385],117:[0,.44444,.09426,0,.62055],118:[0,.44444,.11111,0,.53222],119:[0,.44444,.11111,0,.76777],120:[0,.44444,.12583,0,.56055],121:[.19444,.44444,.105,0,.56166],122:[0,.44444,.13889,0,.49055],126:[.35,.34444,.11472,0,.59111],160:[0,0,0,0,.25],168:[0,.69444,.11473,0,.59111],176:[0,.69444,0,0,.94888],184:[.17014,0,0,0,.53222],198:[0,.68611,.11431,0,1.02277],216:[.04861,.73472,.09062,0,.88555],223:[.19444,.69444,.09736,0,.665],230:[0,.44444,.085,0,.82666],248:[.09722,.54167,.09458,0,.59111],305:[0,.44444,.09426,0,.35555],338:[0,.68611,.11431,0,1.14054],339:[0,.44444,.085,0,.82666],567:[.19444,.44444,.04611,0,.385],710:[0,.69444,.06709,0,.59111],711:[0,.63194,.08271,0,.59111],713:[0,.59444,.10444,0,.59111],714:[0,.69444,.08528,0,.59111],715:[0,.69444,0,0,.59111],728:[0,.69444,.10333,0,.59111],729:[0,.69444,.12945,0,.35555],730:[0,.69444,0,0,.94888],732:[0,.69444,.11472,0,.59111],733:[0,.69444,.11472,0,.59111],915:[0,.68611,.12903,0,.69777],916:[0,.68611,0,0,.94444],920:[0,.68611,.09062,0,.88555],923:[0,.68611,0,0,.80666],926:[0,.68611,.15092,0,.76777],928:[0,.68611,.17208,0,.8961],931:[0,.68611,.11431,0,.82666],933:[0,.68611,.10778,0,.88555],934:[0,.68611,.05632,0,.82666],936:[0,.68611,.10778,0,.88555],937:[0,.68611,.0992,0,.82666],8211:[0,.44444,.09811,0,.59111],8212:[0,.44444,.09811,0,1.18221],8216:[0,.69444,.12945,0,.35555],8217:[0,.69444,.12945,0,.35555],8220:[0,.69444,.16772,0,.62055],8221:[0,.69444,.07939,0,.62055]},"Main-Italic":{32:[0,0,0,0,.25],33:[0,.69444,.12417,0,.30667],34:[0,.69444,.06961,0,.51444],35:[.19444,.69444,.06616,0,.81777],37:[.05556,.75,.13639,0,.81777],38:[0,.69444,.09694,0,.76666],39:[0,.69444,.12417,0,.30667],40:[.25,.75,.16194,0,.40889],41:[.25,.75,.03694,0,.40889],42:[0,.75,.14917,0,.51111],43:[.05667,.56167,.03694,0,.76666],44:[.19444,.10556,0,0,.30667],45:[0,.43056,.02826,0,.35778],46:[0,.10556,0,0,.30667],47:[.25,.75,.16194,0,.51111],48:[0,.64444,.13556,0,.51111],49:[0,.64444,.13556,0,.51111],50:[0,.64444,.13556,0,.51111],51:[0,.64444,.13556,0,.51111],52:[.19444,.64444,.13556,0,.51111],53:[0,.64444,.13556,0,.51111],54:[0,.64444,.13556,0,.51111],55:[.19444,.64444,.13556,0,.51111],56:[0,.64444,.13556,0,.51111],57:[0,.64444,.13556,0,.51111],58:[0,.43056,.0582,0,.30667],59:[.19444,.43056,.0582,0,.30667],61:[-.13313,.36687,.06616,0,.76666],63:[0,.69444,.1225,0,.51111],64:[0,.69444,.09597,0,.76666],65:[0,.68333,0,0,.74333],66:[0,.68333,.10257,0,.70389],67:[0,.68333,.14528,0,.71555],68:[0,.68333,.09403,0,.755],69:[0,.68333,.12028,0,.67833],70:[0,.68333,.13305,0,.65277],71:[0,.68333,.08722,0,.77361],72:[0,.68333,.16389,0,.74333],73:[0,.68333,.15806,0,.38555],74:[0,.68333,.14028,0,.525],75:[0,.68333,.14528,0,.76888],76:[0,.68333,0,0,.62722],77:[0,.68333,.16389,0,.89666],78:[0,.68333,.16389,0,.74333],79:[0,.68333,.09403,0,.76666],80:[0,.68333,.10257,0,.67833],81:[.19444,.68333,.09403,0,.76666],82:[0,.68333,.03868,0,.72944],83:[0,.68333,.11972,0,.56222],84:[0,.68333,.13305,0,.71555],85:[0,.68333,.16389,0,.74333],86:[0,.68333,.18361,0,.74333],87:[0,.68333,.18361,0,.99888],88:[0,.68333,.15806,0,.74333],89:[0,.68333,.19383,0,.74333],90:[0,.68333,.14528,0,.61333],91:[.25,.75,.1875,0,.30667],93:[.25,.75,.10528,0,.30667],94:[0,.69444,.06646,0,.51111],95:[.31,.12056,.09208,0,.51111],97:[0,.43056,.07671,0,.51111],98:[0,.69444,.06312,0,.46],99:[0,.43056,.05653,0,.46],100:[0,.69444,.10333,0,.51111],101:[0,.43056,.07514,0,.46],102:[.19444,.69444,.21194,0,.30667],103:[.19444,.43056,.08847,0,.46],104:[0,.69444,.07671,0,.51111],105:[0,.65536,.1019,0,.30667],106:[.19444,.65536,.14467,0,.30667],107:[0,.69444,.10764,0,.46],108:[0,.69444,.10333,0,.25555],109:[0,.43056,.07671,0,.81777],110:[0,.43056,.07671,0,.56222],111:[0,.43056,.06312,0,.51111],112:[.19444,.43056,.06312,0,.51111],113:[.19444,.43056,.08847,0,.46],114:[0,.43056,.10764,0,.42166],115:[0,.43056,.08208,0,.40889],116:[0,.61508,.09486,0,.33222],117:[0,.43056,.07671,0,.53666],118:[0,.43056,.10764,0,.46],119:[0,.43056,.10764,0,.66444],120:[0,.43056,.12042,0,.46389],121:[.19444,.43056,.08847,0,.48555],122:[0,.43056,.12292,0,.40889],126:[.35,.31786,.11585,0,.51111],160:[0,0,0,0,.25],168:[0,.66786,.10474,0,.51111],176:[0,.69444,0,0,.83129],184:[.17014,0,0,0,.46],198:[0,.68333,.12028,0,.88277],216:[.04861,.73194,.09403,0,.76666],223:[.19444,.69444,.10514,0,.53666],230:[0,.43056,.07514,0,.71555],248:[.09722,.52778,.09194,0,.51111],338:[0,.68333,.12028,0,.98499],339:[0,.43056,.07514,0,.71555],710:[0,.69444,.06646,0,.51111],711:[0,.62847,.08295,0,.51111],713:[0,.56167,.10333,0,.51111],714:[0,.69444,.09694,0,.51111],715:[0,.69444,0,0,.51111],728:[0,.69444,.10806,0,.51111],729:[0,.66786,.11752,0,.30667],730:[0,.69444,0,0,.83129],732:[0,.66786,.11585,0,.51111],733:[0,.69444,.1225,0,.51111],915:[0,.68333,.13305,0,.62722],916:[0,.68333,0,0,.81777],920:[0,.68333,.09403,0,.76666],923:[0,.68333,0,0,.69222],926:[0,.68333,.15294,0,.66444],928:[0,.68333,.16389,0,.74333],931:[0,.68333,.12028,0,.71555],933:[0,.68333,.11111,0,.76666],934:[0,.68333,.05986,0,.71555],936:[0,.68333,.11111,0,.76666],937:[0,.68333,.10257,0,.71555],8211:[0,.43056,.09208,0,.51111],8212:[0,.43056,.09208,0,1.02222],8216:[0,.69444,.12417,0,.30667],8217:[0,.69444,.12417,0,.30667],8220:[0,.69444,.1685,0,.51444],8221:[0,.69444,.06961,0,.51444],8463:[0,.68889,0,0,.54028]},"Main-Regular":{32:[0,0,0,0,.25],33:[0,.69444,0,0,.27778],34:[0,.69444,0,0,.5],35:[.19444,.69444,0,0,.83334],36:[.05556,.75,0,0,.5],37:[.05556,.75,0,0,.83334],38:[0,.69444,0,0,.77778],39:[0,.69444,0,0,.27778],40:[.25,.75,0,0,.38889],41:[.25,.75,0,0,.38889],42:[0,.75,0,0,.5],43:[.08333,.58333,0,0,.77778],44:[.19444,.10556,0,0,.27778],45:[0,.43056,0,0,.33333],46:[0,.10556,0,0,.27778],47:[.25,.75,0,0,.5],48:[0,.64444,0,0,.5],49:[0,.64444,0,0,.5],50:[0,.64444,0,0,.5],51:[0,.64444,0,0,.5],52:[0,.64444,0,0,.5],53:[0,.64444,0,0,.5],54:[0,.64444,0,0,.5],55:[0,.64444,0,0,.5],56:[0,.64444,0,0,.5],57:[0,.64444,0,0,.5],58:[0,.43056,0,0,.27778],59:[.19444,.43056,0,0,.27778],60:[.0391,.5391,0,0,.77778],61:[-.13313,.36687,0,0,.77778],62:[.0391,.5391,0,0,.77778],63:[0,.69444,0,0,.47222],64:[0,.69444,0,0,.77778],65:[0,.68333,0,0,.75],66:[0,.68333,0,0,.70834],67:[0,.68333,0,0,.72222],68:[0,.68333,0,0,.76389],69:[0,.68333,0,0,.68056],70:[0,.68333,0,0,.65278],71:[0,.68333,0,0,.78472],72:[0,.68333,0,0,.75],73:[0,.68333,0,0,.36111],74:[0,.68333,0,0,.51389],75:[0,.68333,0,0,.77778],76:[0,.68333,0,0,.625],77:[0,.68333,0,0,.91667],78:[0,.68333,0,0,.75],79:[0,.68333,0,0,.77778],80:[0,.68333,0,0,.68056],81:[.19444,.68333,0,0,.77778],82:[0,.68333,0,0,.73611],83:[0,.68333,0,0,.55556],84:[0,.68333,0,0,.72222],85:[0,.68333,0,0,.75],86:[0,.68333,.01389,0,.75],87:[0,.68333,.01389,0,1.02778],88:[0,.68333,0,0,.75],89:[0,.68333,.025,0,.75],90:[0,.68333,0,0,.61111],91:[.25,.75,0,0,.27778],92:[.25,.75,0,0,.5],93:[.25,.75,0,0,.27778],94:[0,.69444,0,0,.5],95:[.31,.12056,.02778,0,.5],97:[0,.43056,0,0,.5],98:[0,.69444,0,0,.55556],99:[0,.43056,0,0,.44445],100:[0,.69444,0,0,.55556],101:[0,.43056,0,0,.44445],102:[0,.69444,.07778,0,.30556],103:[.19444,.43056,.01389,0,.5],104:[0,.69444,0,0,.55556],105:[0,.66786,0,0,.27778],106:[.19444,.66786,0,0,.30556],107:[0,.69444,0,0,.52778],108:[0,.69444,0,0,.27778],109:[0,.43056,0,0,.83334],110:[0,.43056,0,0,.55556],111:[0,.43056,0,0,.5],112:[.19444,.43056,0,0,.55556],113:[.19444,.43056,0,0,.52778],114:[0,.43056,0,0,.39167],115:[0,.43056,0,0,.39445],116:[0,.61508,0,0,.38889],117:[0,.43056,0,0,.55556],118:[0,.43056,.01389,0,.52778],119:[0,.43056,.01389,0,.72222],120:[0,.43056,0,0,.52778],121:[.19444,.43056,.01389,0,.52778],122:[0,.43056,0,0,.44445],123:[.25,.75,0,0,.5],124:[.25,.75,0,0,.27778],125:[.25,.75,0,0,.5],126:[.35,.31786,0,0,.5],160:[0,0,0,0,.25],163:[0,.69444,0,0,.76909],167:[.19444,.69444,0,0,.44445],168:[0,.66786,0,0,.5],172:[0,.43056,0,0,.66667],176:[0,.69444,0,0,.75],177:[.08333,.58333,0,0,.77778],182:[.19444,.69444,0,0,.61111],184:[.17014,0,0,0,.44445],198:[0,.68333,0,0,.90278],215:[.08333,.58333,0,0,.77778],216:[.04861,.73194,0,0,.77778],223:[0,.69444,0,0,.5],230:[0,.43056,0,0,.72222],247:[.08333,.58333,0,0,.77778],248:[.09722,.52778,0,0,.5],305:[0,.43056,0,0,.27778],338:[0,.68333,0,0,1.01389],339:[0,.43056,0,0,.77778],567:[.19444,.43056,0,0,.30556],710:[0,.69444,0,0,.5],711:[0,.62847,0,0,.5],713:[0,.56778,0,0,.5],714:[0,.69444,0,0,.5],715:[0,.69444,0,0,.5],728:[0,.69444,0,0,.5],729:[0,.66786,0,0,.27778],730:[0,.69444,0,0,.75],732:[0,.66786,0,0,.5],733:[0,.69444,0,0,.5],915:[0,.68333,0,0,.625],916:[0,.68333,0,0,.83334],920:[0,.68333,0,0,.77778],923:[0,.68333,0,0,.69445],926:[0,.68333,0,0,.66667],928:[0,.68333,0,0,.75],931:[0,.68333,0,0,.72222],933:[0,.68333,0,0,.77778],934:[0,.68333,0,0,.72222],936:[0,.68333,0,0,.77778],937:[0,.68333,0,0,.72222],8211:[0,.43056,.02778,0,.5],8212:[0,.43056,.02778,0,1],8216:[0,.69444,0,0,.27778],8217:[0,.69444,0,0,.27778],8220:[0,.69444,0,0,.5],8221:[0,.69444,0,0,.5],8224:[.19444,.69444,0,0,.44445],8225:[.19444,.69444,0,0,.44445],8230:[0,.123,0,0,1.172],8242:[0,.55556,0,0,.275],8407:[0,.71444,.15382,0,.5],8463:[0,.68889,0,0,.54028],8465:[0,.69444,0,0,.72222],8467:[0,.69444,0,.11111,.41667],8472:[.19444,.43056,0,.11111,.63646],8476:[0,.69444,0,0,.72222],8501:[0,.69444,0,0,.61111],8592:[-.13313,.36687,0,0,1],8593:[.19444,.69444,0,0,.5],8594:[-.13313,.36687,0,0,1],8595:[.19444,.69444,0,0,.5],8596:[-.13313,.36687,0,0,1],8597:[.25,.75,0,0,.5],8598:[.19444,.69444,0,0,1],8599:[.19444,.69444,0,0,1],8600:[.19444,.69444,0,0,1],8601:[.19444,.69444,0,0,1],8614:[.011,.511,0,0,1],8617:[.011,.511,0,0,1.126],8618:[.011,.511,0,0,1.126],8636:[-.13313,.36687,0,0,1],8637:[-.13313,.36687,0,0,1],8640:[-.13313,.36687,0,0,1],8641:[-.13313,.36687,0,0,1],8652:[.011,.671,0,0,1],8656:[-.13313,.36687,0,0,1],8657:[.19444,.69444,0,0,.61111],8658:[-.13313,.36687,0,0,1],8659:[.19444,.69444,0,0,.61111],8660:[-.13313,.36687,0,0,1],8661:[.25,.75,0,0,.61111],8704:[0,.69444,0,0,.55556],8706:[0,.69444,.05556,.08334,.5309],8707:[0,.69444,0,0,.55556],8709:[.05556,.75,0,0,.5],8711:[0,.68333,0,0,.83334],8712:[.0391,.5391,0,0,.66667],8715:[.0391,.5391,0,0,.66667],8722:[.08333,.58333,0,0,.77778],8723:[.08333,.58333,0,0,.77778],8725:[.25,.75,0,0,.5],8726:[.25,.75,0,0,.5],8727:[-.03472,.46528,0,0,.5],8728:[-.05555,.44445,0,0,.5],8729:[-.05555,.44445,0,0,.5],8730:[.2,.8,0,0,.83334],8733:[0,.43056,0,0,.77778],8734:[0,.43056,0,0,1],8736:[0,.69224,0,0,.72222],8739:[.25,.75,0,0,.27778],8741:[.25,.75,0,0,.5],8743:[0,.55556,0,0,.66667],8744:[0,.55556,0,0,.66667],8745:[0,.55556,0,0,.66667],8746:[0,.55556,0,0,.66667],8747:[.19444,.69444,.11111,0,.41667],8764:[-.13313,.36687,0,0,.77778],8768:[.19444,.69444,0,0,.27778],8771:[-.03625,.46375,0,0,.77778],8773:[-.022,.589,0,0,.778],8776:[-.01688,.48312,0,0,.77778],8781:[-.03625,.46375,0,0,.77778],8784:[-.133,.673,0,0,.778],8801:[-.03625,.46375,0,0,.77778],8804:[.13597,.63597,0,0,.77778],8805:[.13597,.63597,0,0,.77778],8810:[.0391,.5391,0,0,1],8811:[.0391,.5391,0,0,1],8826:[.0391,.5391,0,0,.77778],8827:[.0391,.5391,0,0,.77778],8834:[.0391,.5391,0,0,.77778],8835:[.0391,.5391,0,0,.77778],8838:[.13597,.63597,0,0,.77778],8839:[.13597,.63597,0,0,.77778],8846:[0,.55556,0,0,.66667],8849:[.13597,.63597,0,0,.77778],8850:[.13597,.63597,0,0,.77778],8851:[0,.55556,0,0,.66667],8852:[0,.55556,0,0,.66667],8853:[.08333,.58333,0,0,.77778],8854:[.08333,.58333,0,0,.77778],8855:[.08333,.58333,0,0,.77778],8856:[.08333,.58333,0,0,.77778],8857:[.08333,.58333,0,0,.77778],8866:[0,.69444,0,0,.61111],8867:[0,.69444,0,0,.61111],8868:[0,.69444,0,0,.77778],8869:[0,.69444,0,0,.77778],8872:[.249,.75,0,0,.867],8900:[-.05555,.44445,0,0,.5],8901:[-.05555,.44445,0,0,.27778],8902:[-.03472,.46528,0,0,.5],8904:[.005,.505,0,0,.9],8942:[.03,.903,0,0,.278],8943:[-.19,.313,0,0,1.172],8945:[-.1,.823,0,0,1.282],8968:[.25,.75,0,0,.44445],8969:[.25,.75,0,0,.44445],8970:[.25,.75,0,0,.44445],8971:[.25,.75,0,0,.44445],8994:[-.14236,.35764,0,0,1],8995:[-.14236,.35764,0,0,1],9136:[.244,.744,0,0,.412],9137:[.244,.745,0,0,.412],9651:[.19444,.69444,0,0,.88889],9657:[-.03472,.46528,0,0,.5],9661:[.19444,.69444,0,0,.88889],9667:[-.03472,.46528,0,0,.5],9711:[.19444,.69444,0,0,1],9824:[.12963,.69444,0,0,.77778],9825:[.12963,.69444,0,0,.77778],9826:[.12963,.69444,0,0,.77778],9827:[.12963,.69444,0,0,.77778],9837:[0,.75,0,0,.38889],9838:[.19444,.69444,0,0,.38889],9839:[.19444,.69444,0,0,.38889],10216:[.25,.75,0,0,.38889],10217:[.25,.75,0,0,.38889],10222:[.244,.744,0,0,.412],10223:[.244,.745,0,0,.412],10229:[.011,.511,0,0,1.609],10230:[.011,.511,0,0,1.638],10231:[.011,.511,0,0,1.859],10232:[.024,.525,0,0,1.609],10233:[.024,.525,0,0,1.638],10234:[.024,.525,0,0,1.858],10236:[.011,.511,0,0,1.638],10815:[0,.68333,0,0,.75],10927:[.13597,.63597,0,0,.77778],10928:[.13597,.63597,0,0,.77778],57376:[.19444,.69444,0,0,0]},"Math-BoldItalic":{32:[0,0,0,0,.25],48:[0,.44444,0,0,.575],49:[0,.44444,0,0,.575],50:[0,.44444,0,0,.575],51:[.19444,.44444,0,0,.575],52:[.19444,.44444,0,0,.575],53:[.19444,.44444,0,0,.575],54:[0,.64444,0,0,.575],55:[.19444,.44444,0,0,.575],56:[0,.64444,0,0,.575],57:[.19444,.44444,0,0,.575],65:[0,.68611,0,0,.86944],66:[0,.68611,.04835,0,.8664],67:[0,.68611,.06979,0,.81694],68:[0,.68611,.03194,0,.93812],69:[0,.68611,.05451,0,.81007],70:[0,.68611,.15972,0,.68889],71:[0,.68611,0,0,.88673],72:[0,.68611,.08229,0,.98229],73:[0,.68611,.07778,0,.51111],74:[0,.68611,.10069,0,.63125],75:[0,.68611,.06979,0,.97118],76:[0,.68611,0,0,.75555],77:[0,.68611,.11424,0,1.14201],78:[0,.68611,.11424,0,.95034],79:[0,.68611,.03194,0,.83666],80:[0,.68611,.15972,0,.72309],81:[.19444,.68611,0,0,.86861],82:[0,.68611,.00421,0,.87235],83:[0,.68611,.05382,0,.69271],84:[0,.68611,.15972,0,.63663],85:[0,.68611,.11424,0,.80027],86:[0,.68611,.25555,0,.67778],87:[0,.68611,.15972,0,1.09305],88:[0,.68611,.07778,0,.94722],89:[0,.68611,.25555,0,.67458],90:[0,.68611,.06979,0,.77257],97:[0,.44444,0,0,.63287],98:[0,.69444,0,0,.52083],99:[0,.44444,0,0,.51342],100:[0,.69444,0,0,.60972],101:[0,.44444,0,0,.55361],102:[.19444,.69444,.11042,0,.56806],103:[.19444,.44444,.03704,0,.5449],104:[0,.69444,0,0,.66759],105:[0,.69326,0,0,.4048],106:[.19444,.69326,.0622,0,.47083],107:[0,.69444,.01852,0,.6037],108:[0,.69444,.0088,0,.34815],109:[0,.44444,0,0,1.0324],110:[0,.44444,0,0,.71296],111:[0,.44444,0,0,.58472],112:[.19444,.44444,0,0,.60092],113:[.19444,.44444,.03704,0,.54213],114:[0,.44444,.03194,0,.5287],115:[0,.44444,0,0,.53125],116:[0,.63492,0,0,.41528],117:[0,.44444,0,0,.68102],118:[0,.44444,.03704,0,.56666],119:[0,.44444,.02778,0,.83148],120:[0,.44444,0,0,.65903],121:[.19444,.44444,.03704,0,.59028],122:[0,.44444,.04213,0,.55509],160:[0,0,0,0,.25],915:[0,.68611,.15972,0,.65694],916:[0,.68611,0,0,.95833],920:[0,.68611,.03194,0,.86722],923:[0,.68611,0,0,.80555],926:[0,.68611,.07458,0,.84125],928:[0,.68611,.08229,0,.98229],931:[0,.68611,.05451,0,.88507],933:[0,.68611,.15972,0,.67083],934:[0,.68611,0,0,.76666],936:[0,.68611,.11653,0,.71402],937:[0,.68611,.04835,0,.8789],945:[0,.44444,0,0,.76064],946:[.19444,.69444,.03403,0,.65972],947:[.19444,.44444,.06389,0,.59003],948:[0,.69444,.03819,0,.52222],949:[0,.44444,0,0,.52882],950:[.19444,.69444,.06215,0,.50833],951:[.19444,.44444,.03704,0,.6],952:[0,.69444,.03194,0,.5618],953:[0,.44444,0,0,.41204],954:[0,.44444,0,0,.66759],955:[0,.69444,0,0,.67083],956:[.19444,.44444,0,0,.70787],957:[0,.44444,.06898,0,.57685],958:[.19444,.69444,.03021,0,.50833],959:[0,.44444,0,0,.58472],960:[0,.44444,.03704,0,.68241],961:[.19444,.44444,0,0,.6118],962:[.09722,.44444,.07917,0,.42361],963:[0,.44444,.03704,0,.68588],964:[0,.44444,.13472,0,.52083],965:[0,.44444,.03704,0,.63055],966:[.19444,.44444,0,0,.74722],967:[.19444,.44444,0,0,.71805],968:[.19444,.69444,.03704,0,.75833],969:[0,.44444,.03704,0,.71782],977:[0,.69444,0,0,.69155],981:[.19444,.69444,0,0,.7125],982:[0,.44444,.03194,0,.975],1009:[.19444,.44444,0,0,.6118],1013:[0,.44444,0,0,.48333],57649:[0,.44444,0,0,.39352],57911:[.19444,.44444,0,0,.43889]},"Math-Italic":{32:[0,0,0,0,.25],48:[0,.43056,0,0,.5],49:[0,.43056,0,0,.5],50:[0,.43056,0,0,.5],51:[.19444,.43056,0,0,.5],52:[.19444,.43056,0,0,.5],53:[.19444,.43056,0,0,.5],54:[0,.64444,0,0,.5],55:[.19444,.43056,0,0,.5],56:[0,.64444,0,0,.5],57:[.19444,.43056,0,0,.5],65:[0,.68333,0,.13889,.75],66:[0,.68333,.05017,.08334,.75851],67:[0,.68333,.07153,.08334,.71472],68:[0,.68333,.02778,.05556,.82792],69:[0,.68333,.05764,.08334,.7382],70:[0,.68333,.13889,.08334,.64306],71:[0,.68333,0,.08334,.78625],72:[0,.68333,.08125,.05556,.83125],73:[0,.68333,.07847,.11111,.43958],74:[0,.68333,.09618,.16667,.55451],75:[0,.68333,.07153,.05556,.84931],76:[0,.68333,0,.02778,.68056],77:[0,.68333,.10903,.08334,.97014],78:[0,.68333,.10903,.08334,.80347],79:[0,.68333,.02778,.08334,.76278],80:[0,.68333,.13889,.08334,.64201],81:[.19444,.68333,0,.08334,.79056],82:[0,.68333,.00773,.08334,.75929],83:[0,.68333,.05764,.08334,.6132],84:[0,.68333,.13889,.08334,.58438],85:[0,.68333,.10903,.02778,.68278],86:[0,.68333,.22222,0,.58333],87:[0,.68333,.13889,0,.94445],88:[0,.68333,.07847,.08334,.82847],89:[0,.68333,.22222,0,.58056],90:[0,.68333,.07153,.08334,.68264],97:[0,.43056,0,0,.52859],98:[0,.69444,0,0,.42917],99:[0,.43056,0,.05556,.43276],100:[0,.69444,0,.16667,.52049],101:[0,.43056,0,.05556,.46563],102:[.19444,.69444,.10764,.16667,.48959],103:[.19444,.43056,.03588,.02778,.47697],104:[0,.69444,0,0,.57616],105:[0,.65952,0,0,.34451],106:[.19444,.65952,.05724,0,.41181],107:[0,.69444,.03148,0,.5206],108:[0,.69444,.01968,.08334,.29838],109:[0,.43056,0,0,.87801],110:[0,.43056,0,0,.60023],111:[0,.43056,0,.05556,.48472],112:[.19444,.43056,0,.08334,.50313],113:[.19444,.43056,.03588,.08334,.44641],114:[0,.43056,.02778,.05556,.45116],115:[0,.43056,0,.05556,.46875],116:[0,.61508,0,.08334,.36111],117:[0,.43056,0,.02778,.57246],118:[0,.43056,.03588,.02778,.48472],119:[0,.43056,.02691,.08334,.71592],120:[0,.43056,0,.02778,.57153],121:[.19444,.43056,.03588,.05556,.49028],122:[0,.43056,.04398,.05556,.46505],160:[0,0,0,0,.25],915:[0,.68333,.13889,.08334,.61528],916:[0,.68333,0,.16667,.83334],920:[0,.68333,.02778,.08334,.76278],923:[0,.68333,0,.16667,.69445],926:[0,.68333,.07569,.08334,.74236],928:[0,.68333,.08125,.05556,.83125],931:[0,.68333,.05764,.08334,.77986],933:[0,.68333,.13889,.05556,.58333],934:[0,.68333,0,.08334,.66667],936:[0,.68333,.11,.05556,.61222],937:[0,.68333,.05017,.08334,.7724],945:[0,.43056,.0037,.02778,.6397],946:[.19444,.69444,.05278,.08334,.56563],947:[.19444,.43056,.05556,0,.51773],948:[0,.69444,.03785,.05556,.44444],949:[0,.43056,0,.08334,.46632],950:[.19444,.69444,.07378,.08334,.4375],951:[.19444,.43056,.03588,.05556,.49653],952:[0,.69444,.02778,.08334,.46944],953:[0,.43056,0,.05556,.35394],954:[0,.43056,0,0,.57616],955:[0,.69444,0,0,.58334],956:[.19444,.43056,0,.02778,.60255],957:[0,.43056,.06366,.02778,.49398],958:[.19444,.69444,.04601,.11111,.4375],959:[0,.43056,0,.05556,.48472],960:[0,.43056,.03588,0,.57003],961:[.19444,.43056,0,.08334,.51702],962:[.09722,.43056,.07986,.08334,.36285],963:[0,.43056,.03588,0,.57141],964:[0,.43056,.1132,.02778,.43715],965:[0,.43056,.03588,.02778,.54028],966:[.19444,.43056,0,.08334,.65417],967:[.19444,.43056,0,.05556,.62569],968:[.19444,.69444,.03588,.11111,.65139],969:[0,.43056,.03588,0,.62245],977:[0,.69444,0,.08334,.59144],981:[.19444,.69444,0,.08334,.59583],982:[0,.43056,.02778,0,.82813],1009:[.19444,.43056,0,.08334,.51702],1013:[0,.43056,0,.05556,.4059],57649:[0,.43056,0,.02778,.32246],57911:[.19444,.43056,0,.08334,.38403]},"SansSerif-Bold":{32:[0,0,0,0,.25],33:[0,.69444,0,0,.36667],34:[0,.69444,0,0,.55834],35:[.19444,.69444,0,0,.91667],36:[.05556,.75,0,0,.55],37:[.05556,.75,0,0,1.02912],38:[0,.69444,0,0,.83056],39:[0,.69444,0,0,.30556],40:[.25,.75,0,0,.42778],41:[.25,.75,0,0,.42778],42:[0,.75,0,0,.55],43:[.11667,.61667,0,0,.85556],44:[.10556,.13056,0,0,.30556],45:[0,.45833,0,0,.36667],46:[0,.13056,0,0,.30556],47:[.25,.75,0,0,.55],48:[0,.69444,0,0,.55],49:[0,.69444,0,0,.55],50:[0,.69444,0,0,.55],51:[0,.69444,0,0,.55],52:[0,.69444,0,0,.55],53:[0,.69444,0,0,.55],54:[0,.69444,0,0,.55],55:[0,.69444,0,0,.55],56:[0,.69444,0,0,.55],57:[0,.69444,0,0,.55],58:[0,.45833,0,0,.30556],59:[.10556,.45833,0,0,.30556],61:[-.09375,.40625,0,0,.85556],63:[0,.69444,0,0,.51945],64:[0,.69444,0,0,.73334],65:[0,.69444,0,0,.73334],66:[0,.69444,0,0,.73334],67:[0,.69444,0,0,.70278],68:[0,.69444,0,0,.79445],69:[0,.69444,0,0,.64167],70:[0,.69444,0,0,.61111],71:[0,.69444,0,0,.73334],72:[0,.69444,0,0,.79445],73:[0,.69444,0,0,.33056],74:[0,.69444,0,0,.51945],75:[0,.69444,0,0,.76389],76:[0,.69444,0,0,.58056],77:[0,.69444,0,0,.97778],78:[0,.69444,0,0,.79445],79:[0,.69444,0,0,.79445],80:[0,.69444,0,0,.70278],81:[.10556,.69444,0,0,.79445],82:[0,.69444,0,0,.70278],83:[0,.69444,0,0,.61111],84:[0,.69444,0,0,.73334],85:[0,.69444,0,0,.76389],86:[0,.69444,.01528,0,.73334],87:[0,.69444,.01528,0,1.03889],88:[0,.69444,0,0,.73334],89:[0,.69444,.0275,0,.73334],90:[0,.69444,0,0,.67223],91:[.25,.75,0,0,.34306],93:[.25,.75,0,0,.34306],94:[0,.69444,0,0,.55],95:[.35,.10833,.03056,0,.55],97:[0,.45833,0,0,.525],98:[0,.69444,0,0,.56111],99:[0,.45833,0,0,.48889],100:[0,.69444,0,0,.56111],101:[0,.45833,0,0,.51111],102:[0,.69444,.07639,0,.33611],103:[.19444,.45833,.01528,0,.55],104:[0,.69444,0,0,.56111],105:[0,.69444,0,0,.25556],106:[.19444,.69444,0,0,.28611],107:[0,.69444,0,0,.53056],108:[0,.69444,0,0,.25556],109:[0,.45833,0,0,.86667],110:[0,.45833,0,0,.56111],111:[0,.45833,0,0,.55],112:[.19444,.45833,0,0,.56111],113:[.19444,.45833,0,0,.56111],114:[0,.45833,.01528,0,.37222],115:[0,.45833,0,0,.42167],116:[0,.58929,0,0,.40417],117:[0,.45833,0,0,.56111],118:[0,.45833,.01528,0,.5],119:[0,.45833,.01528,0,.74445],120:[0,.45833,0,0,.5],121:[.19444,.45833,.01528,0,.5],122:[0,.45833,0,0,.47639],126:[.35,.34444,0,0,.55],160:[0,0,0,0,.25],168:[0,.69444,0,0,.55],176:[0,.69444,0,0,.73334],180:[0,.69444,0,0,.55],184:[.17014,0,0,0,.48889],305:[0,.45833,0,0,.25556],567:[.19444,.45833,0,0,.28611],710:[0,.69444,0,0,.55],711:[0,.63542,0,0,.55],713:[0,.63778,0,0,.55],728:[0,.69444,0,0,.55],729:[0,.69444,0,0,.30556],730:[0,.69444,0,0,.73334],732:[0,.69444,0,0,.55],733:[0,.69444,0,0,.55],915:[0,.69444,0,0,.58056],916:[0,.69444,0,0,.91667],920:[0,.69444,0,0,.85556],923:[0,.69444,0,0,.67223],926:[0,.69444,0,0,.73334],928:[0,.69444,0,0,.79445],931:[0,.69444,0,0,.79445],933:[0,.69444,0,0,.85556],934:[0,.69444,0,0,.79445],936:[0,.69444,0,0,.85556],937:[0,.69444,0,0,.79445],8211:[0,.45833,.03056,0,.55],8212:[0,.45833,.03056,0,1.10001],8216:[0,.69444,0,0,.30556],8217:[0,.69444,0,0,.30556],8220:[0,.69444,0,0,.55834],8221:[0,.69444,0,0,.55834]},"SansSerif-Italic":{32:[0,0,0,0,.25],33:[0,.69444,.05733,0,.31945],34:[0,.69444,.00316,0,.5],35:[.19444,.69444,.05087,0,.83334],36:[.05556,.75,.11156,0,.5],37:[.05556,.75,.03126,0,.83334],38:[0,.69444,.03058,0,.75834],39:[0,.69444,.07816,0,.27778],40:[.25,.75,.13164,0,.38889],41:[.25,.75,.02536,0,.38889],42:[0,.75,.11775,0,.5],43:[.08333,.58333,.02536,0,.77778],44:[.125,.08333,0,0,.27778],45:[0,.44444,.01946,0,.33333],46:[0,.08333,0,0,.27778],47:[.25,.75,.13164,0,.5],48:[0,.65556,.11156,0,.5],49:[0,.65556,.11156,0,.5],50:[0,.65556,.11156,0,.5],51:[0,.65556,.11156,0,.5],52:[0,.65556,.11156,0,.5],53:[0,.65556,.11156,0,.5],54:[0,.65556,.11156,0,.5],55:[0,.65556,.11156,0,.5],56:[0,.65556,.11156,0,.5],57:[0,.65556,.11156,0,.5],58:[0,.44444,.02502,0,.27778],59:[.125,.44444,.02502,0,.27778],61:[-.13,.37,.05087,0,.77778],63:[0,.69444,.11809,0,.47222],64:[0,.69444,.07555,0,.66667],65:[0,.69444,0,0,.66667],66:[0,.69444,.08293,0,.66667],67:[0,.69444,.11983,0,.63889],68:[0,.69444,.07555,0,.72223],69:[0,.69444,.11983,0,.59722],70:[0,.69444,.13372,0,.56945],71:[0,.69444,.11983,0,.66667],72:[0,.69444,.08094,0,.70834],73:[0,.69444,.13372,0,.27778],74:[0,.69444,.08094,0,.47222],75:[0,.69444,.11983,0,.69445],76:[0,.69444,0,0,.54167],77:[0,.69444,.08094,0,.875],78:[0,.69444,.08094,0,.70834],79:[0,.69444,.07555,0,.73611],80:[0,.69444,.08293,0,.63889],81:[.125,.69444,.07555,0,.73611],82:[0,.69444,.08293,0,.64584],83:[0,.69444,.09205,0,.55556],84:[0,.69444,.13372,0,.68056],85:[0,.69444,.08094,0,.6875],86:[0,.69444,.1615,0,.66667],87:[0,.69444,.1615,0,.94445],88:[0,.69444,.13372,0,.66667],89:[0,.69444,.17261,0,.66667],90:[0,.69444,.11983,0,.61111],91:[.25,.75,.15942,0,.28889],93:[.25,.75,.08719,0,.28889],94:[0,.69444,.0799,0,.5],95:[.35,.09444,.08616,0,.5],97:[0,.44444,.00981,0,.48056],98:[0,.69444,.03057,0,.51667],99:[0,.44444,.08336,0,.44445],100:[0,.69444,.09483,0,.51667],101:[0,.44444,.06778,0,.44445],102:[0,.69444,.21705,0,.30556],103:[.19444,.44444,.10836,0,.5],104:[0,.69444,.01778,0,.51667],105:[0,.67937,.09718,0,.23889],106:[.19444,.67937,.09162,0,.26667],107:[0,.69444,.08336,0,.48889],108:[0,.69444,.09483,0,.23889],109:[0,.44444,.01778,0,.79445],110:[0,.44444,.01778,0,.51667],111:[0,.44444,.06613,0,.5],112:[.19444,.44444,.0389,0,.51667],113:[.19444,.44444,.04169,0,.51667],114:[0,.44444,.10836,0,.34167],115:[0,.44444,.0778,0,.38333],116:[0,.57143,.07225,0,.36111],117:[0,.44444,.04169,0,.51667],118:[0,.44444,.10836,0,.46111],119:[0,.44444,.10836,0,.68334],120:[0,.44444,.09169,0,.46111],121:[.19444,.44444,.10836,0,.46111],122:[0,.44444,.08752,0,.43472],126:[.35,.32659,.08826,0,.5],160:[0,0,0,0,.25],168:[0,.67937,.06385,0,.5],176:[0,.69444,0,0,.73752],184:[.17014,0,0,0,.44445],305:[0,.44444,.04169,0,.23889],567:[.19444,.44444,.04169,0,.26667],710:[0,.69444,.0799,0,.5],711:[0,.63194,.08432,0,.5],713:[0,.60889,.08776,0,.5],714:[0,.69444,.09205,0,.5],715:[0,.69444,0,0,.5],728:[0,.69444,.09483,0,.5],729:[0,.67937,.07774,0,.27778],730:[0,.69444,0,0,.73752],732:[0,.67659,.08826,0,.5],733:[0,.69444,.09205,0,.5],915:[0,.69444,.13372,0,.54167],916:[0,.69444,0,0,.83334],920:[0,.69444,.07555,0,.77778],923:[0,.69444,0,0,.61111],926:[0,.69444,.12816,0,.66667],928:[0,.69444,.08094,0,.70834],931:[0,.69444,.11983,0,.72222],933:[0,.69444,.09031,0,.77778],934:[0,.69444,.04603,0,.72222],936:[0,.69444,.09031,0,.77778],937:[0,.69444,.08293,0,.72222],8211:[0,.44444,.08616,0,.5],8212:[0,.44444,.08616,0,1],8216:[0,.69444,.07816,0,.27778],8217:[0,.69444,.07816,0,.27778],8220:[0,.69444,.14205,0,.5],8221:[0,.69444,.00316,0,.5]},"SansSerif-Regular":{32:[0,0,0,0,.25],33:[0,.69444,0,0,.31945],34:[0,.69444,0,0,.5],35:[.19444,.69444,0,0,.83334],36:[.05556,.75,0,0,.5],37:[.05556,.75,0,0,.83334],38:[0,.69444,0,0,.75834],39:[0,.69444,0,0,.27778],40:[.25,.75,0,0,.38889],41:[.25,.75,0,0,.38889],42:[0,.75,0,0,.5],43:[.08333,.58333,0,0,.77778],44:[.125,.08333,0,0,.27778],45:[0,.44444,0,0,.33333],46:[0,.08333,0,0,.27778],47:[.25,.75,0,0,.5],48:[0,.65556,0,0,.5],49:[0,.65556,0,0,.5],50:[0,.65556,0,0,.5],51:[0,.65556,0,0,.5],52:[0,.65556,0,0,.5],53:[0,.65556,0,0,.5],54:[0,.65556,0,0,.5],55:[0,.65556,0,0,.5],56:[0,.65556,0,0,.5],57:[0,.65556,0,0,.5],58:[0,.44444,0,0,.27778],59:[.125,.44444,0,0,.27778],61:[-.13,.37,0,0,.77778],63:[0,.69444,0,0,.47222],64:[0,.69444,0,0,.66667],65:[0,.69444,0,0,.66667],66:[0,.69444,0,0,.66667],67:[0,.69444,0,0,.63889],68:[0,.69444,0,0,.72223],69:[0,.69444,0,0,.59722],70:[0,.69444,0,0,.56945],71:[0,.69444,0,0,.66667],72:[0,.69444,0,0,.70834],73:[0,.69444,0,0,.27778],74:[0,.69444,0,0,.47222],75:[0,.69444,0,0,.69445],76:[0,.69444,0,0,.54167],77:[0,.69444,0,0,.875],78:[0,.69444,0,0,.70834],79:[0,.69444,0,0,.73611],80:[0,.69444,0,0,.63889],81:[.125,.69444,0,0,.73611],82:[0,.69444,0,0,.64584],83:[0,.69444,0,0,.55556],84:[0,.69444,0,0,.68056],85:[0,.69444,0,0,.6875],86:[0,.69444,.01389,0,.66667],87:[0,.69444,.01389,0,.94445],88:[0,.69444,0,0,.66667],89:[0,.69444,.025,0,.66667],90:[0,.69444,0,0,.61111],91:[.25,.75,0,0,.28889],93:[.25,.75,0,0,.28889],94:[0,.69444,0,0,.5],95:[.35,.09444,.02778,0,.5],97:[0,.44444,0,0,.48056],98:[0,.69444,0,0,.51667],99:[0,.44444,0,0,.44445],100:[0,.69444,0,0,.51667],101:[0,.44444,0,0,.44445],102:[0,.69444,.06944,0,.30556],103:[.19444,.44444,.01389,0,.5],104:[0,.69444,0,0,.51667],105:[0,.67937,0,0,.23889],106:[.19444,.67937,0,0,.26667],107:[0,.69444,0,0,.48889],108:[0,.69444,0,0,.23889],109:[0,.44444,0,0,.79445],110:[0,.44444,0,0,.51667],111:[0,.44444,0,0,.5],112:[.19444,.44444,0,0,.51667],113:[.19444,.44444,0,0,.51667],114:[0,.44444,.01389,0,.34167],115:[0,.44444,0,0,.38333],116:[0,.57143,0,0,.36111],117:[0,.44444,0,0,.51667],118:[0,.44444,.01389,0,.46111],119:[0,.44444,.01389,0,.68334],120:[0,.44444,0,0,.46111],121:[.19444,.44444,.01389,0,.46111],122:[0,.44444,0,0,.43472],126:[.35,.32659,0,0,.5],160:[0,0,0,0,.25],168:[0,.67937,0,0,.5],176:[0,.69444,0,0,.66667],184:[.17014,0,0,0,.44445],305:[0,.44444,0,0,.23889],567:[.19444,.44444,0,0,.26667],710:[0,.69444,0,0,.5],711:[0,.63194,0,0,.5],713:[0,.60889,0,0,.5],714:[0,.69444,0,0,.5],715:[0,.69444,0,0,.5],728:[0,.69444,0,0,.5],729:[0,.67937,0,0,.27778],730:[0,.69444,0,0,.66667],732:[0,.67659,0,0,.5],733:[0,.69444,0,0,.5],915:[0,.69444,0,0,.54167],916:[0,.69444,0,0,.83334],920:[0,.69444,0,0,.77778],923:[0,.69444,0,0,.61111],926:[0,.69444,0,0,.66667],928:[0,.69444,0,0,.70834],931:[0,.69444,0,0,.72222],933:[0,.69444,0,0,.77778],934:[0,.69444,0,0,.72222],936:[0,.69444,0,0,.77778],937:[0,.69444,0,0,.72222],8211:[0,.44444,.02778,0,.5],8212:[0,.44444,.02778,0,1],8216:[0,.69444,0,0,.27778],8217:[0,.69444,0,0,.27778],8220:[0,.69444,0,0,.5],8221:[0,.69444,0,0,.5]},"Script-Regular":{32:[0,0,0,0,.25],65:[0,.7,.22925,0,.80253],66:[0,.7,.04087,0,.90757],67:[0,.7,.1689,0,.66619],68:[0,.7,.09371,0,.77443],69:[0,.7,.18583,0,.56162],70:[0,.7,.13634,0,.89544],71:[0,.7,.17322,0,.60961],72:[0,.7,.29694,0,.96919],73:[0,.7,.19189,0,.80907],74:[.27778,.7,.19189,0,1.05159],75:[0,.7,.31259,0,.91364],76:[0,.7,.19189,0,.87373],77:[0,.7,.15981,0,1.08031],78:[0,.7,.3525,0,.9015],79:[0,.7,.08078,0,.73787],80:[0,.7,.08078,0,1.01262],81:[0,.7,.03305,0,.88282],82:[0,.7,.06259,0,.85],83:[0,.7,.19189,0,.86767],84:[0,.7,.29087,0,.74697],85:[0,.7,.25815,0,.79996],86:[0,.7,.27523,0,.62204],87:[0,.7,.27523,0,.80532],88:[0,.7,.26006,0,.94445],89:[0,.7,.2939,0,.70961],90:[0,.7,.24037,0,.8212],160:[0,0,0,0,.25]},"Size1-Regular":{32:[0,0,0,0,.25],40:[.35001,.85,0,0,.45834],41:[.35001,.85,0,0,.45834],47:[.35001,.85,0,0,.57778],91:[.35001,.85,0,0,.41667],92:[.35001,.85,0,0,.57778],93:[.35001,.85,0,0,.41667],123:[.35001,.85,0,0,.58334],125:[.35001,.85,0,0,.58334],160:[0,0,0,0,.25],710:[0,.72222,0,0,.55556],732:[0,.72222,0,0,.55556],770:[0,.72222,0,0,.55556],771:[0,.72222,0,0,.55556],8214:[-99e-5,.601,0,0,.77778],8593:[1e-5,.6,0,0,.66667],8595:[1e-5,.6,0,0,.66667],8657:[1e-5,.6,0,0,.77778],8659:[1e-5,.6,0,0,.77778],8719:[.25001,.75,0,0,.94445],8720:[.25001,.75,0,0,.94445],8721:[.25001,.75,0,0,1.05556],8730:[.35001,.85,0,0,1],8739:[-.00599,.606,0,0,.33333],8741:[-.00599,.606,0,0,.55556],8747:[.30612,.805,.19445,0,.47222],8748:[.306,.805,.19445,0,.47222],8749:[.306,.805,.19445,0,.47222],8750:[.30612,.805,.19445,0,.47222],8896:[.25001,.75,0,0,.83334],8897:[.25001,.75,0,0,.83334],8898:[.25001,.75,0,0,.83334],8899:[.25001,.75,0,0,.83334],8968:[.35001,.85,0,0,.47222],8969:[.35001,.85,0,0,.47222],8970:[.35001,.85,0,0,.47222],8971:[.35001,.85,0,0,.47222],9168:[-99e-5,.601,0,0,.66667],10216:[.35001,.85,0,0,.47222],10217:[.35001,.85,0,0,.47222],10752:[.25001,.75,0,0,1.11111],10753:[.25001,.75,0,0,1.11111],10754:[.25001,.75,0,0,1.11111],10756:[.25001,.75,0,0,.83334],10758:[.25001,.75,0,0,.83334]},"Size2-Regular":{32:[0,0,0,0,.25],40:[.65002,1.15,0,0,.59722],41:[.65002,1.15,0,0,.59722],47:[.65002,1.15,0,0,.81111],91:[.65002,1.15,0,0,.47222],92:[.65002,1.15,0,0,.81111],93:[.65002,1.15,0,0,.47222],123:[.65002,1.15,0,0,.66667],125:[.65002,1.15,0,0,.66667],160:[0,0,0,0,.25],710:[0,.75,0,0,1],732:[0,.75,0,0,1],770:[0,.75,0,0,1],771:[0,.75,0,0,1],8719:[.55001,1.05,0,0,1.27778],8720:[.55001,1.05,0,0,1.27778],8721:[.55001,1.05,0,0,1.44445],8730:[.65002,1.15,0,0,1],8747:[.86225,1.36,.44445,0,.55556],8748:[.862,1.36,.44445,0,.55556],8749:[.862,1.36,.44445,0,.55556],8750:[.86225,1.36,.44445,0,.55556],8896:[.55001,1.05,0,0,1.11111],8897:[.55001,1.05,0,0,1.11111],8898:[.55001,1.05,0,0,1.11111],8899:[.55001,1.05,0,0,1.11111],8968:[.65002,1.15,0,0,.52778],8969:[.65002,1.15,0,0,.52778],8970:[.65002,1.15,0,0,.52778],8971:[.65002,1.15,0,0,.52778],10216:[.65002,1.15,0,0,.61111],10217:[.65002,1.15,0,0,.61111],10752:[.55001,1.05,0,0,1.51112],10753:[.55001,1.05,0,0,1.51112],10754:[.55001,1.05,0,0,1.51112],10756:[.55001,1.05,0,0,1.11111],10758:[.55001,1.05,0,0,1.11111]},"Size3-Regular":{32:[0,0,0,0,.25],40:[.95003,1.45,0,0,.73611],41:[.95003,1.45,0,0,.73611],47:[.95003,1.45,0,0,1.04445],91:[.95003,1.45,0,0,.52778],92:[.95003,1.45,0,0,1.04445],93:[.95003,1.45,0,0,.52778],123:[.95003,1.45,0,0,.75],125:[.95003,1.45,0,0,.75],160:[0,0,0,0,.25],710:[0,.75,0,0,1.44445],732:[0,.75,0,0,1.44445],770:[0,.75,0,0,1.44445],771:[0,.75,0,0,1.44445],8730:[.95003,1.45,0,0,1],8968:[.95003,1.45,0,0,.58334],8969:[.95003,1.45,0,0,.58334],8970:[.95003,1.45,0,0,.58334],8971:[.95003,1.45,0,0,.58334],10216:[.95003,1.45,0,0,.75],10217:[.95003,1.45,0,0,.75]},"Size4-Regular":{32:[0,0,0,0,.25],40:[1.25003,1.75,0,0,.79167],41:[1.25003,1.75,0,0,.79167],47:[1.25003,1.75,0,0,1.27778],91:[1.25003,1.75,0,0,.58334],92:[1.25003,1.75,0,0,1.27778],93:[1.25003,1.75,0,0,.58334],123:[1.25003,1.75,0,0,.80556],125:[1.25003,1.75,0,0,.80556],160:[0,0,0,0,.25],710:[0,.825,0,0,1.8889],732:[0,.825,0,0,1.8889],770:[0,.825,0,0,1.8889],771:[0,.825,0,0,1.8889],8730:[1.25003,1.75,0,0,1],8968:[1.25003,1.75,0,0,.63889],8969:[1.25003,1.75,0,0,.63889],8970:[1.25003,1.75,0,0,.63889],8971:[1.25003,1.75,0,0,.63889],9115:[.64502,1.155,0,0,.875],9116:[1e-5,.6,0,0,.875],9117:[.64502,1.155,0,0,.875],9118:[.64502,1.155,0,0,.875],9119:[1e-5,.6,0,0,.875],9120:[.64502,1.155,0,0,.875],9121:[.64502,1.155,0,0,.66667],9122:[-99e-5,.601,0,0,.66667],9123:[.64502,1.155,0,0,.66667],9124:[.64502,1.155,0,0,.66667],9125:[-99e-5,.601,0,0,.66667],9126:[.64502,1.155,0,0,.66667],9127:[1e-5,.9,0,0,.88889],9128:[.65002,1.15,0,0,.88889],9129:[.90001,0,0,0,.88889],9130:[0,.3,0,0,.88889],9131:[1e-5,.9,0,0,.88889],9132:[.65002,1.15,0,0,.88889],9133:[.90001,0,0,0,.88889],9143:[.88502,.915,0,0,1.05556],10216:[1.25003,1.75,0,0,.80556],10217:[1.25003,1.75,0,0,.80556],57344:[-.00499,.605,0,0,1.05556],57345:[-.00499,.605,0,0,1.05556],57680:[0,.12,0,0,.45],57681:[0,.12,0,0,.45],57682:[0,.12,0,0,.45],57683:[0,.12,0,0,.45]},"Typewriter-Regular":{32:[0,0,0,0,.525],33:[0,.61111,0,0,.525],34:[0,.61111,0,0,.525],35:[0,.61111,0,0,.525],36:[.08333,.69444,0,0,.525],37:[.08333,.69444,0,0,.525],38:[0,.61111,0,0,.525],39:[0,.61111,0,0,.525],40:[.08333,.69444,0,0,.525],41:[.08333,.69444,0,0,.525],42:[0,.52083,0,0,.525],43:[-.08056,.53055,0,0,.525],44:[.13889,.125,0,0,.525],45:[-.08056,.53055,0,0,.525],46:[0,.125,0,0,.525],47:[.08333,.69444,0,0,.525],48:[0,.61111,0,0,.525],49:[0,.61111,0,0,.525],50:[0,.61111,0,0,.525],51:[0,.61111,0,0,.525],52:[0,.61111,0,0,.525],53:[0,.61111,0,0,.525],54:[0,.61111,0,0,.525],55:[0,.61111,0,0,.525],56:[0,.61111,0,0,.525],57:[0,.61111,0,0,.525],58:[0,.43056,0,0,.525],59:[.13889,.43056,0,0,.525],60:[-.05556,.55556,0,0,.525],61:[-.19549,.41562,0,0,.525],62:[-.05556,.55556,0,0,.525],63:[0,.61111,0,0,.525],64:[0,.61111,0,0,.525],65:[0,.61111,0,0,.525],66:[0,.61111,0,0,.525],67:[0,.61111,0,0,.525],68:[0,.61111,0,0,.525],69:[0,.61111,0,0,.525],70:[0,.61111,0,0,.525],71:[0,.61111,0,0,.525],72:[0,.61111,0,0,.525],73:[0,.61111,0,0,.525],74:[0,.61111,0,0,.525],75:[0,.61111,0,0,.525],76:[0,.61111,0,0,.525],77:[0,.61111,0,0,.525],78:[0,.61111,0,0,.525],79:[0,.61111,0,0,.525],80:[0,.61111,0,0,.525],81:[.13889,.61111,0,0,.525],82:[0,.61111,0,0,.525],83:[0,.61111,0,0,.525],84:[0,.61111,0,0,.525],85:[0,.61111,0,0,.525],86:[0,.61111,0,0,.525],87:[0,.61111,0,0,.525],88:[0,.61111,0,0,.525],89:[0,.61111,0,0,.525],90:[0,.61111,0,0,.525],91:[.08333,.69444,0,0,.525],92:[.08333,.69444,0,0,.525],93:[.08333,.69444,0,0,.525],94:[0,.61111,0,0,.525],95:[.09514,0,0,0,.525],96:[0,.61111,0,0,.525],97:[0,.43056,0,0,.525],98:[0,.61111,0,0,.525],99:[0,.43056,0,0,.525],100:[0,.61111,0,0,.525],101:[0,.43056,0,0,.525],102:[0,.61111,0,0,.525],103:[.22222,.43056,0,0,.525],104:[0,.61111,0,0,.525],105:[0,.61111,0,0,.525],106:[.22222,.61111,0,0,.525],107:[0,.61111,0,0,.525],108:[0,.61111,0,0,.525],109:[0,.43056,0,0,.525],110:[0,.43056,0,0,.525],111:[0,.43056,0,0,.525],112:[.22222,.43056,0,0,.525],113:[.22222,.43056,0,0,.525],114:[0,.43056,0,0,.525],115:[0,.43056,0,0,.525],116:[0,.55358,0,0,.525],117:[0,.43056,0,0,.525],118:[0,.43056,0,0,.525],119:[0,.43056,0,0,.525],120:[0,.43056,0,0,.525],121:[.22222,.43056,0,0,.525],122:[0,.43056,0,0,.525],123:[.08333,.69444,0,0,.525],124:[.08333,.69444,0,0,.525],125:[.08333,.69444,0,0,.525],126:[0,.61111,0,0,.525],127:[0,.61111,0,0,.525],160:[0,0,0,0,.525],176:[0,.61111,0,0,.525],184:[.19445,0,0,0,.525],305:[0,.43056,0,0,.525],567:[.22222,.43056,0,0,.525],711:[0,.56597,0,0,.525],713:[0,.56555,0,0,.525],714:[0,.61111,0,0,.525],715:[0,.61111,0,0,.525],728:[0,.61111,0,0,.525],730:[0,.61111,0,0,.525],770:[0,.61111,0,0,.525],771:[0,.61111,0,0,.525],776:[0,.61111,0,0,.525],915:[0,.61111,0,0,.525],916:[0,.61111,0,0,.525],920:[0,.61111,0,0,.525],923:[0,.61111,0,0,.525],926:[0,.61111,0,0,.525],928:[0,.61111,0,0,.525],931:[0,.61111,0,0,.525],933:[0,.61111,0,0,.525],934:[0,.61111,0,0,.525],936:[0,.61111,0,0,.525],937:[0,.61111,0,0,.525],8216:[0,.61111,0,0,.525],8217:[0,.61111,0,0,.525],8242:[0,.61111,0,0,.525],9251:[.11111,.21944,0,0,.525]}},ve={slant:[.25,.25,.25],space:[0,0,0],stretch:[0,0,0],shrink:[0,0,0],xHeight:[.431,.431,.431],quad:[1,1.171,1.472],extraSpace:[0,0,0],num1:[.677,.732,.925],num2:[.394,.384,.387],num3:[.444,.471,.504],denom1:[.686,.752,1.025],denom2:[.345,.344,.532],sup1:[.413,.503,.504],sup2:[.363,.431,.404],sup3:[.289,.286,.294],sub1:[.15,.143,.2],sub2:[.247,.286,.4],supDrop:[.386,.353,.494],subDrop:[.05,.071,.1],delim1:[2.39,1.7,1.98],delim2:[1.01,1.157,1.42],axisHeight:[.25,.25,.25],defaultRuleThickness:[.04,.049,.049],bigOpSpacing1:[.111,.111,.111],bigOpSpacing2:[.166,.166,.166],bigOpSpacing3:[.2,.2,.2],bigOpSpacing4:[.6,.611,.611],bigOpSpacing5:[.1,.143,.143],sqrtRuleThickness:[.04,.04,.04],ptPerEm:[10,10,10],doubleRuleSep:[.2,.2,.2],arrayRuleWidth:[.04,.04,.04],fboxsep:[.3,.3,.3],fboxrule:[.04,.04,.04]},Ot={Å:"A",Ð:"D",Þ:"o",å:"a",ð:"d",þ:"o",А:"A",Б:"B",В:"B",Г:"F",Д:"A",Е:"E",Ж:"K",З:"3",И:"N",Й:"N",К:"K",Л:"N",М:"M",Н:"H",О:"O",П:"N",Р:"P",С:"C",Т:"T",У:"y",Ф:"O",Х:"X",Ц:"U",Ч:"h",Ш:"W",Щ:"W",Ъ:"B",Ы:"X",Ь:"B",Э:"3",Ю:"X",Я:"R",а:"a",б:"b",в:"a",г:"r",д:"y",е:"e",ж:"m",з:"e",и:"n",й:"n",к:"n",л:"n",м:"m",н:"n",о:"o",п:"n",р:"p",с:"c",т:"o",у:"y",ф:"b",х:"x",ц:"n",ч:"n",ш:"w",щ:"w",ъ:"a",ы:"m",ь:"a",э:"e",ю:"m",я:"r"};function Va(r,e){x0[r]=e}function pt(r,e,t){if(!x0[e])throw new Error("Font metrics not found for font: "+e+".");var a=r.charCodeAt(0),n=x0[e][a];if(!n&&r[0]in Ot&&(a=Ot[r[0]].charCodeAt(0),n=x0[e][a]),!n&&t==="text"&&gr(a)&&(n=x0[e][77]),n)return{depth:n[0],height:n[1],italic:n[2],skew:n[3],width:n[4]}}var Ue={};function Ua(r){var e;if(r>=5?e=0:r>=3?e=1:e=2,!Ue[e]){var t=Ue[e]={cssEmPerMu:ve.quad[e]/18};for(var a in ve)ve.hasOwnProperty(a)&&(t[a]=ve[a][e])}return Ue[e]}var Ya=[[1,1,1],[2,1,1],[3,1,1],[4,2,1],[5,2,1],[6,3,1],[7,4,2],[8,6,3],[9,7,6],[10,8,7],[11,10,9]],Ht=[.5,.6,.7,.8,.9,1,1.2,1.44,1.728,2.074,2.488],Lt=function(e,t){return t.size<2?e:Ya[e-1][t.size-1]};class T0{constructor(e){this.style=void 0,this.color=void 0,this.size=void 0,this.textSize=void 0,this.phantom=void 0,this.font=void 0,this.fontFamily=void 0,this.fontWeight=void 0,this.fontShape=void 0,this.sizeMultiplier=void 0,this.maxSize=void 0,this.minRuleThickness=void 0,this._fontMetrics=void 0,this.style=e.style,this.color=e.color,this.size=e.size||T0.BASESIZE,this.textSize=e.textSize||this.size,this.phantom=!!e.phantom,this.font=e.font||"",this.fontFamily=e.fontFamily||"",this.fontWeight=e.fontWeight||"",this.fontShape=e.fontShape||"",this.sizeMultiplier=Ht[this.size-1],this.maxSize=e.maxSize,this.minRuleThickness=e.minRuleThickness,this._fontMetrics=void 0}extend(e){var t={style:this.style,size:this.size,textSize:this.textSize,color:this.color,phantom:this.phantom,font:this.font,fontFamily:this.fontFamily,fontWeight:this.fontWeight,fontShape:this.fontShape,maxSize:this.maxSize,minRuleThickness:this.minRuleThickness};for(var a in e)e.hasOwnProperty(a)&&(t[a]=e[a]);return new T0(t)}havingStyle(e){return this.style===e?this:this.extend({style:e,size:Lt(this.textSize,e)})}havingCrampedStyle(){return this.havingStyle(this.style.cramp())}havingSize(e){return this.size===e&&this.textSize===e?this:this.extend({style:this.style.text(),size:e,textSize:e,sizeMultiplier:Ht[e-1]})}havingBaseStyle(e){e=e||this.style.text();var t=Lt(T0.BASESIZE,e);return this.size===t&&this.textSize===T0.BASESIZE&&this.style===e?this:this.extend({style:e,size:t})}havingBaseSizing(){var e;switch(this.style.id){case 4:case 5:e=3;break;case 6:case 7:e=1;break;default:e=6}return this.extend({style:this.style.text(),size:e})}withColor(e){return this.extend({color:e})}withPhantom(){return this.extend({phantom:!0})}withFont(e){return this.extend({font:e})}withTextFontFamily(e){return this.extend({fontFamily:e,font:""})}withTextFontWeight(e){return this.extend({fontWeight:e,font:""})}withTextFontShape(e){return this.extend({fontShape:e,font:""})}sizingClasses(e){return e.size!==this.size?["sizing","reset-size"+e.size,"size"+this.size]:[]}baseSizingClasses(){return this.size!==T0.BASESIZE?["sizing","reset-size"+this.size,"size"+T0.BASESIZE]:[]}fontMetrics(){return this._fontMetrics||(this._fontMetrics=Ua(this.size)),this._fontMetrics}getColor(){return this.phantom?"transparent":this.color}}T0.BASESIZE=6;var it={pt:1,mm:7227/2540,cm:7227/254,in:72.27,bp:803/800,pc:12,dd:1238/1157,cc:14856/1157,nd:685/642,nc:1370/107,sp:1/65536,px:803/800},Xa={ex:!0,em:!0,mu:!0},br=function(e){return typeof e!="string"&&(e=e.unit),e in it||e in Xa||e==="ex"},K=function(e,t){var a;if(e.unit in it)a=it[e.unit]/t.fontMetrics().ptPerEm/t.sizeMultiplier;else if(e.unit==="mu")a=t.fontMetrics().cssEmPerMu;else{var n;if(t.style.isTight()?n=t.havingStyle(t.style.text()):n=t,e.unit==="ex")a=n.fontMetrics().xHeight;else if(e.unit==="em")a=n.fontMetrics().quad;else throw new M("Invalid unit: '"+e.unit+"'");n!==t&&(a*=n.sizeMultiplier/t.sizeMultiplier)}return Math.min(e.number*a,t.maxSize)},A=function(e){return+e.toFixed(4)+"em"},P0=function(e){return e.filter(t=>t).join(" ")},yr=function(e,t,a){if(this.classes=e||[],this.attributes={},this.height=0,this.depth=0,this.maxFontSize=0,this.style=a||{},t){t.style.isTight()&&this.classes.push("mtight");var n=t.getColor();n&&(this.style.color=n)}},xr=function(e){var t=document.createElement(e);t.className=P0(this.classes);for(var a in this.style)this.style.hasOwnProperty(a)&&(t.style[a]=this.style[a]);for(var n in this.attributes)this.attributes.hasOwnProperty(n)&&t.setAttribute(n,this.attributes[n]);for(var s=0;s",t};class he{constructor(e,t,a,n){this.children=void 0,this.attributes=void 0,this.classes=void 0,this.height=void 0,this.depth=void 0,this.width=void 0,this.maxFontSize=void 0,this.style=void 0,yr.call(this,e,a,n),this.children=t||[]}setAttribute(e,t){this.attributes[e]=t}hasClass(e){return q.contains(this.classes,e)}toNode(){return xr.call(this,"span")}toMarkup(){return wr.call(this,"span")}}class vt{constructor(e,t,a,n){this.children=void 0,this.attributes=void 0,this.classes=void 0,this.height=void 0,this.depth=void 0,this.maxFontSize=void 0,this.style=void 0,yr.call(this,t,n),this.children=a||[],this.setAttribute("href",e)}setAttribute(e,t){this.attributes[e]=t}hasClass(e){return q.contains(this.classes,e)}toNode(){return xr.call(this,"a")}toMarkup(){return wr.call(this,"a")}}class $a{constructor(e,t,a){this.src=void 0,this.alt=void 0,this.classes=void 0,this.height=void 0,this.depth=void 0,this.maxFontSize=void 0,this.style=void 0,this.alt=t,this.src=e,this.classes=["mord"],this.style=a}hasClass(e){return q.contains(this.classes,e)}toNode(){var e=document.createElement("img");e.src=this.src,e.alt=this.alt,e.className="mord";for(var t in this.style)this.style.hasOwnProperty(t)&&(e.style[t]=this.style[t]);return e}toMarkup(){var e=''+q.escape(this.alt)+'0&&(t=document.createElement("span"),t.style.marginRight=A(this.italic)),this.classes.length>0&&(t=t||document.createElement("span"),t.className=P0(this.classes));for(var a in this.style)this.style.hasOwnProperty(a)&&(t=t||document.createElement("span"),t.style[a]=this.style[a]);return t?(t.appendChild(e),t):e}toMarkup(){var e=!1,t="0&&(a+="margin-right:"+this.italic+"em;");for(var n in this.style)this.style.hasOwnProperty(n)&&(a+=q.hyphenate(n)+":"+this.style[n]+";");a&&(e=!0,t+=' style="'+q.escape(a)+'"');var s=q.escape(this.text);return e?(t+=">",t+=s,t+="",t):s}}class C0{constructor(e,t){this.children=void 0,this.attributes=void 0,this.children=e||[],this.attributes=t||{}}toNode(){var e="http://www.w3.org/2000/svg",t=document.createElementNS(e,"svg");for(var a in this.attributes)Object.prototype.hasOwnProperty.call(this.attributes,a)&&t.setAttribute(a,this.attributes[a]);for(var n=0;n':''}}class st{constructor(e){this.attributes=void 0,this.attributes=e||{}}toNode(){var e="http://www.w3.org/2000/svg",t=document.createElementNS(e,"line");for(var a in this.attributes)Object.prototype.hasOwnProperty.call(this.attributes,a)&&t.setAttribute(a,this.attributes[a]);return t}toMarkup(){var e=" but got "+String(r)+".")}var Za={bin:1,close:1,inner:1,open:1,punct:1,rel:1},Ka={"accent-token":1,mathord:1,"op-token":1,spacing:1,textord:1},$={math:{},text:{}};function i(r,e,t,a,n,s){$[r][n]={font:e,group:t,replace:a},s&&a&&($[r][a]=$[r][n])}var l="math",k="text",u="main",d="ams",W="accent-token",D="bin",i0="close",re="inner",E="mathord",_="op-token",m0="open",qe="punct",f="rel",E0="spacing",v="textord";i(l,u,f,"≡","\\equiv",!0);i(l,u,f,"≺","\\prec",!0);i(l,u,f,"≻","\\succ",!0);i(l,u,f,"∼","\\sim",!0);i(l,u,f,"⊥","\\perp");i(l,u,f,"⪯","\\preceq",!0);i(l,u,f,"⪰","\\succeq",!0);i(l,u,f,"≃","\\simeq",!0);i(l,u,f,"∣","\\mid",!0);i(l,u,f,"≪","\\ll",!0);i(l,u,f,"≫","\\gg",!0);i(l,u,f,"≍","\\asymp",!0);i(l,u,f,"∥","\\parallel");i(l,u,f,"⋈","\\bowtie",!0);i(l,u,f,"⌣","\\smile",!0);i(l,u,f,"⊑","\\sqsubseteq",!0);i(l,u,f,"⊒","\\sqsupseteq",!0);i(l,u,f,"≐","\\doteq",!0);i(l,u,f,"⌢","\\frown",!0);i(l,u,f,"∋","\\ni",!0);i(l,u,f,"∝","\\propto",!0);i(l,u,f,"⊢","\\vdash",!0);i(l,u,f,"⊣","\\dashv",!0);i(l,u,f,"∋","\\owns");i(l,u,qe,".","\\ldotp");i(l,u,qe,"⋅","\\cdotp");i(l,u,v,"#","\\#");i(k,u,v,"#","\\#");i(l,u,v,"&","\\&");i(k,u,v,"&","\\&");i(l,u,v,"ℵ","\\aleph",!0);i(l,u,v,"∀","\\forall",!0);i(l,u,v,"ℏ","\\hbar",!0);i(l,u,v,"∃","\\exists",!0);i(l,u,v,"∇","\\nabla",!0);i(l,u,v,"♭","\\flat",!0);i(l,u,v,"ℓ","\\ell",!0);i(l,u,v,"♮","\\natural",!0);i(l,u,v,"♣","\\clubsuit",!0);i(l,u,v,"℘","\\wp",!0);i(l,u,v,"♯","\\sharp",!0);i(l,u,v,"♢","\\diamondsuit",!0);i(l,u,v,"ℜ","\\Re",!0);i(l,u,v,"♡","\\heartsuit",!0);i(l,u,v,"ℑ","\\Im",!0);i(l,u,v,"♠","\\spadesuit",!0);i(l,u,v,"§","\\S",!0);i(k,u,v,"§","\\S");i(l,u,v,"¶","\\P",!0);i(k,u,v,"¶","\\P");i(l,u,v,"†","\\dag");i(k,u,v,"†","\\dag");i(k,u,v,"†","\\textdagger");i(l,u,v,"‡","\\ddag");i(k,u,v,"‡","\\ddag");i(k,u,v,"‡","\\textdaggerdbl");i(l,u,i0,"⎱","\\rmoustache",!0);i(l,u,m0,"⎰","\\lmoustache",!0);i(l,u,i0,"⟯","\\rgroup",!0);i(l,u,m0,"⟮","\\lgroup",!0);i(l,u,D,"∓","\\mp",!0);i(l,u,D,"⊖","\\ominus",!0);i(l,u,D,"⊎","\\uplus",!0);i(l,u,D,"⊓","\\sqcap",!0);i(l,u,D,"∗","\\ast");i(l,u,D,"⊔","\\sqcup",!0);i(l,u,D,"◯","\\bigcirc",!0);i(l,u,D,"∙","\\bullet",!0);i(l,u,D,"‡","\\ddagger");i(l,u,D,"≀","\\wr",!0);i(l,u,D,"⨿","\\amalg");i(l,u,D,"&","\\And");i(l,u,f,"⟵","\\longleftarrow",!0);i(l,u,f,"⇐","\\Leftarrow",!0);i(l,u,f,"⟸","\\Longleftarrow",!0);i(l,u,f,"⟶","\\longrightarrow",!0);i(l,u,f,"⇒","\\Rightarrow",!0);i(l,u,f,"⟹","\\Longrightarrow",!0);i(l,u,f,"↔","\\leftrightarrow",!0);i(l,u,f,"⟷","\\longleftrightarrow",!0);i(l,u,f,"⇔","\\Leftrightarrow",!0);i(l,u,f,"⟺","\\Longleftrightarrow",!0);i(l,u,f,"↦","\\mapsto",!0);i(l,u,f,"⟼","\\longmapsto",!0);i(l,u,f,"↗","\\nearrow",!0);i(l,u,f,"↩","\\hookleftarrow",!0);i(l,u,f,"↪","\\hookrightarrow",!0);i(l,u,f,"↘","\\searrow",!0);i(l,u,f,"↼","\\leftharpoonup",!0);i(l,u,f,"⇀","\\rightharpoonup",!0);i(l,u,f,"↙","\\swarrow",!0);i(l,u,f,"↽","\\leftharpoondown",!0);i(l,u,f,"⇁","\\rightharpoondown",!0);i(l,u,f,"↖","\\nwarrow",!0);i(l,u,f,"⇌","\\rightleftharpoons",!0);i(l,d,f,"≮","\\nless",!0);i(l,d,f,"","\\@nleqslant");i(l,d,f,"","\\@nleqq");i(l,d,f,"⪇","\\lneq",!0);i(l,d,f,"≨","\\lneqq",!0);i(l,d,f,"","\\@lvertneqq");i(l,d,f,"⋦","\\lnsim",!0);i(l,d,f,"⪉","\\lnapprox",!0);i(l,d,f,"⊀","\\nprec",!0);i(l,d,f,"⋠","\\npreceq",!0);i(l,d,f,"⋨","\\precnsim",!0);i(l,d,f,"⪹","\\precnapprox",!0);i(l,d,f,"≁","\\nsim",!0);i(l,d,f,"","\\@nshortmid");i(l,d,f,"∤","\\nmid",!0);i(l,d,f,"⊬","\\nvdash",!0);i(l,d,f,"⊭","\\nvDash",!0);i(l,d,f,"⋪","\\ntriangleleft");i(l,d,f,"⋬","\\ntrianglelefteq",!0);i(l,d,f,"⊊","\\subsetneq",!0);i(l,d,f,"","\\@varsubsetneq");i(l,d,f,"⫋","\\subsetneqq",!0);i(l,d,f,"","\\@varsubsetneqq");i(l,d,f,"≯","\\ngtr",!0);i(l,d,f,"","\\@ngeqslant");i(l,d,f,"","\\@ngeqq");i(l,d,f,"⪈","\\gneq",!0);i(l,d,f,"≩","\\gneqq",!0);i(l,d,f,"","\\@gvertneqq");i(l,d,f,"⋧","\\gnsim",!0);i(l,d,f,"⪊","\\gnapprox",!0);i(l,d,f,"⊁","\\nsucc",!0);i(l,d,f,"⋡","\\nsucceq",!0);i(l,d,f,"⋩","\\succnsim",!0);i(l,d,f,"⪺","\\succnapprox",!0);i(l,d,f,"≆","\\ncong",!0);i(l,d,f,"","\\@nshortparallel");i(l,d,f,"∦","\\nparallel",!0);i(l,d,f,"⊯","\\nVDash",!0);i(l,d,f,"⋫","\\ntriangleright");i(l,d,f,"⋭","\\ntrianglerighteq",!0);i(l,d,f,"","\\@nsupseteqq");i(l,d,f,"⊋","\\supsetneq",!0);i(l,d,f,"","\\@varsupsetneq");i(l,d,f,"⫌","\\supsetneqq",!0);i(l,d,f,"","\\@varsupsetneqq");i(l,d,f,"⊮","\\nVdash",!0);i(l,d,f,"⪵","\\precneqq",!0);i(l,d,f,"⪶","\\succneqq",!0);i(l,d,f,"","\\@nsubseteqq");i(l,d,D,"⊴","\\unlhd");i(l,d,D,"⊵","\\unrhd");i(l,d,f,"↚","\\nleftarrow",!0);i(l,d,f,"↛","\\nrightarrow",!0);i(l,d,f,"⇍","\\nLeftarrow",!0);i(l,d,f,"⇏","\\nRightarrow",!0);i(l,d,f,"↮","\\nleftrightarrow",!0);i(l,d,f,"⇎","\\nLeftrightarrow",!0);i(l,d,f,"△","\\vartriangle");i(l,d,v,"ℏ","\\hslash");i(l,d,v,"▽","\\triangledown");i(l,d,v,"◊","\\lozenge");i(l,d,v,"Ⓢ","\\circledS");i(l,d,v,"®","\\circledR");i(k,d,v,"®","\\circledR");i(l,d,v,"∡","\\measuredangle",!0);i(l,d,v,"∄","\\nexists");i(l,d,v,"℧","\\mho");i(l,d,v,"Ⅎ","\\Finv",!0);i(l,d,v,"⅁","\\Game",!0);i(l,d,v,"‵","\\backprime");i(l,d,v,"▲","\\blacktriangle");i(l,d,v,"▼","\\blacktriangledown");i(l,d,v,"■","\\blacksquare");i(l,d,v,"⧫","\\blacklozenge");i(l,d,v,"★","\\bigstar");i(l,d,v,"∢","\\sphericalangle",!0);i(l,d,v,"∁","\\complement",!0);i(l,d,v,"ð","\\eth",!0);i(k,u,v,"ð","ð");i(l,d,v,"╱","\\diagup");i(l,d,v,"╲","\\diagdown");i(l,d,v,"□","\\square");i(l,d,v,"□","\\Box");i(l,d,v,"◊","\\Diamond");i(l,d,v,"¥","\\yen",!0);i(k,d,v,"¥","\\yen",!0);i(l,d,v,"✓","\\checkmark",!0);i(k,d,v,"✓","\\checkmark");i(l,d,v,"ℶ","\\beth",!0);i(l,d,v,"ℸ","\\daleth",!0);i(l,d,v,"ℷ","\\gimel",!0);i(l,d,v,"ϝ","\\digamma",!0);i(l,d,v,"ϰ","\\varkappa");i(l,d,m0,"┌","\\@ulcorner",!0);i(l,d,i0,"┐","\\@urcorner",!0);i(l,d,m0,"└","\\@llcorner",!0);i(l,d,i0,"┘","\\@lrcorner",!0);i(l,d,f,"≦","\\leqq",!0);i(l,d,f,"⩽","\\leqslant",!0);i(l,d,f,"⪕","\\eqslantless",!0);i(l,d,f,"≲","\\lesssim",!0);i(l,d,f,"⪅","\\lessapprox",!0);i(l,d,f,"≊","\\approxeq",!0);i(l,d,D,"⋖","\\lessdot");i(l,d,f,"⋘","\\lll",!0);i(l,d,f,"≶","\\lessgtr",!0);i(l,d,f,"⋚","\\lesseqgtr",!0);i(l,d,f,"⪋","\\lesseqqgtr",!0);i(l,d,f,"≑","\\doteqdot");i(l,d,f,"≓","\\risingdotseq",!0);i(l,d,f,"≒","\\fallingdotseq",!0);i(l,d,f,"∽","\\backsim",!0);i(l,d,f,"⋍","\\backsimeq",!0);i(l,d,f,"⫅","\\subseteqq",!0);i(l,d,f,"⋐","\\Subset",!0);i(l,d,f,"⊏","\\sqsubset",!0);i(l,d,f,"≼","\\preccurlyeq",!0);i(l,d,f,"⋞","\\curlyeqprec",!0);i(l,d,f,"≾","\\precsim",!0);i(l,d,f,"⪷","\\precapprox",!0);i(l,d,f,"⊲","\\vartriangleleft");i(l,d,f,"⊴","\\trianglelefteq");i(l,d,f,"⊨","\\vDash",!0);i(l,d,f,"⊪","\\Vvdash",!0);i(l,d,f,"⌣","\\smallsmile");i(l,d,f,"⌢","\\smallfrown");i(l,d,f,"≏","\\bumpeq",!0);i(l,d,f,"≎","\\Bumpeq",!0);i(l,d,f,"≧","\\geqq",!0);i(l,d,f,"⩾","\\geqslant",!0);i(l,d,f,"⪖","\\eqslantgtr",!0);i(l,d,f,"≳","\\gtrsim",!0);i(l,d,f,"⪆","\\gtrapprox",!0);i(l,d,D,"⋗","\\gtrdot");i(l,d,f,"⋙","\\ggg",!0);i(l,d,f,"≷","\\gtrless",!0);i(l,d,f,"⋛","\\gtreqless",!0);i(l,d,f,"⪌","\\gtreqqless",!0);i(l,d,f,"≖","\\eqcirc",!0);i(l,d,f,"≗","\\circeq",!0);i(l,d,f,"≜","\\triangleq",!0);i(l,d,f,"∼","\\thicksim");i(l,d,f,"≈","\\thickapprox");i(l,d,f,"⫆","\\supseteqq",!0);i(l,d,f,"⋑","\\Supset",!0);i(l,d,f,"⊐","\\sqsupset",!0);i(l,d,f,"≽","\\succcurlyeq",!0);i(l,d,f,"⋟","\\curlyeqsucc",!0);i(l,d,f,"≿","\\succsim",!0);i(l,d,f,"⪸","\\succapprox",!0);i(l,d,f,"⊳","\\vartriangleright");i(l,d,f,"⊵","\\trianglerighteq");i(l,d,f,"⊩","\\Vdash",!0);i(l,d,f,"∣","\\shortmid");i(l,d,f,"∥","\\shortparallel");i(l,d,f,"≬","\\between",!0);i(l,d,f,"⋔","\\pitchfork",!0);i(l,d,f,"∝","\\varpropto");i(l,d,f,"◀","\\blacktriangleleft");i(l,d,f,"∴","\\therefore",!0);i(l,d,f,"∍","\\backepsilon");i(l,d,f,"▶","\\blacktriangleright");i(l,d,f,"∵","\\because",!0);i(l,d,f,"⋘","\\llless");i(l,d,f,"⋙","\\gggtr");i(l,d,D,"⊲","\\lhd");i(l,d,D,"⊳","\\rhd");i(l,d,f,"≂","\\eqsim",!0);i(l,u,f,"⋈","\\Join");i(l,d,f,"≑","\\Doteq",!0);i(l,d,D,"∔","\\dotplus",!0);i(l,d,D,"∖","\\smallsetminus");i(l,d,D,"⋒","\\Cap",!0);i(l,d,D,"⋓","\\Cup",!0);i(l,d,D,"⩞","\\doublebarwedge",!0);i(l,d,D,"⊟","\\boxminus",!0);i(l,d,D,"⊞","\\boxplus",!0);i(l,d,D,"⋇","\\divideontimes",!0);i(l,d,D,"⋉","\\ltimes",!0);i(l,d,D,"⋊","\\rtimes",!0);i(l,d,D,"⋋","\\leftthreetimes",!0);i(l,d,D,"⋌","\\rightthreetimes",!0);i(l,d,D,"⋏","\\curlywedge",!0);i(l,d,D,"⋎","\\curlyvee",!0);i(l,d,D,"⊝","\\circleddash",!0);i(l,d,D,"⊛","\\circledast",!0);i(l,d,D,"⋅","\\centerdot");i(l,d,D,"⊺","\\intercal",!0);i(l,d,D,"⋒","\\doublecap");i(l,d,D,"⋓","\\doublecup");i(l,d,D,"⊠","\\boxtimes",!0);i(l,d,f,"⇢","\\dashrightarrow",!0);i(l,d,f,"⇠","\\dashleftarrow",!0);i(l,d,f,"⇇","\\leftleftarrows",!0);i(l,d,f,"⇆","\\leftrightarrows",!0);i(l,d,f,"⇚","\\Lleftarrow",!0);i(l,d,f,"↞","\\twoheadleftarrow",!0);i(l,d,f,"↢","\\leftarrowtail",!0);i(l,d,f,"↫","\\looparrowleft",!0);i(l,d,f,"⇋","\\leftrightharpoons",!0);i(l,d,f,"↶","\\curvearrowleft",!0);i(l,d,f,"↺","\\circlearrowleft",!0);i(l,d,f,"↰","\\Lsh",!0);i(l,d,f,"⇈","\\upuparrows",!0);i(l,d,f,"↿","\\upharpoonleft",!0);i(l,d,f,"⇃","\\downharpoonleft",!0);i(l,u,f,"⊶","\\origof",!0);i(l,u,f,"⊷","\\imageof",!0);i(l,d,f,"⊸","\\multimap",!0);i(l,d,f,"↭","\\leftrightsquigarrow",!0);i(l,d,f,"⇉","\\rightrightarrows",!0);i(l,d,f,"⇄","\\rightleftarrows",!0);i(l,d,f,"↠","\\twoheadrightarrow",!0);i(l,d,f,"↣","\\rightarrowtail",!0);i(l,d,f,"↬","\\looparrowright",!0);i(l,d,f,"↷","\\curvearrowright",!0);i(l,d,f,"↻","\\circlearrowright",!0);i(l,d,f,"↱","\\Rsh",!0);i(l,d,f,"⇊","\\downdownarrows",!0);i(l,d,f,"↾","\\upharpoonright",!0);i(l,d,f,"⇂","\\downharpoonright",!0);i(l,d,f,"⇝","\\rightsquigarrow",!0);i(l,d,f,"⇝","\\leadsto");i(l,d,f,"⇛","\\Rrightarrow",!0);i(l,d,f,"↾","\\restriction");i(l,u,v,"‘","`");i(l,u,v,"$","\\$");i(k,u,v,"$","\\$");i(k,u,v,"$","\\textdollar");i(l,u,v,"%","\\%");i(k,u,v,"%","\\%");i(l,u,v,"_","\\_");i(k,u,v,"_","\\_");i(k,u,v,"_","\\textunderscore");i(l,u,v,"∠","\\angle",!0);i(l,u,v,"∞","\\infty",!0);i(l,u,v,"′","\\prime");i(l,u,v,"△","\\triangle");i(l,u,v,"Γ","\\Gamma",!0);i(l,u,v,"Δ","\\Delta",!0);i(l,u,v,"Θ","\\Theta",!0);i(l,u,v,"Λ","\\Lambda",!0);i(l,u,v,"Ξ","\\Xi",!0);i(l,u,v,"Π","\\Pi",!0);i(l,u,v,"Σ","\\Sigma",!0);i(l,u,v,"Υ","\\Upsilon",!0);i(l,u,v,"Φ","\\Phi",!0);i(l,u,v,"Ψ","\\Psi",!0);i(l,u,v,"Ω","\\Omega",!0);i(l,u,v,"A","Α");i(l,u,v,"B","Β");i(l,u,v,"E","Ε");i(l,u,v,"Z","Ζ");i(l,u,v,"H","Η");i(l,u,v,"I","Ι");i(l,u,v,"K","Κ");i(l,u,v,"M","Μ");i(l,u,v,"N","Ν");i(l,u,v,"O","Ο");i(l,u,v,"P","Ρ");i(l,u,v,"T","Τ");i(l,u,v,"X","Χ");i(l,u,v,"¬","\\neg",!0);i(l,u,v,"¬","\\lnot");i(l,u,v,"⊤","\\top");i(l,u,v,"⊥","\\bot");i(l,u,v,"∅","\\emptyset");i(l,d,v,"∅","\\varnothing");i(l,u,E,"α","\\alpha",!0);i(l,u,E,"β","\\beta",!0);i(l,u,E,"γ","\\gamma",!0);i(l,u,E,"δ","\\delta",!0);i(l,u,E,"ϵ","\\epsilon",!0);i(l,u,E,"ζ","\\zeta",!0);i(l,u,E,"η","\\eta",!0);i(l,u,E,"θ","\\theta",!0);i(l,u,E,"ι","\\iota",!0);i(l,u,E,"κ","\\kappa",!0);i(l,u,E,"λ","\\lambda",!0);i(l,u,E,"μ","\\mu",!0);i(l,u,E,"ν","\\nu",!0);i(l,u,E,"ξ","\\xi",!0);i(l,u,E,"ο","\\omicron",!0);i(l,u,E,"π","\\pi",!0);i(l,u,E,"ρ","\\rho",!0);i(l,u,E,"σ","\\sigma",!0);i(l,u,E,"τ","\\tau",!0);i(l,u,E,"υ","\\upsilon",!0);i(l,u,E,"ϕ","\\phi",!0);i(l,u,E,"χ","\\chi",!0);i(l,u,E,"ψ","\\psi",!0);i(l,u,E,"ω","\\omega",!0);i(l,u,E,"ε","\\varepsilon",!0);i(l,u,E,"ϑ","\\vartheta",!0);i(l,u,E,"ϖ","\\varpi",!0);i(l,u,E,"ϱ","\\varrho",!0);i(l,u,E,"ς","\\varsigma",!0);i(l,u,E,"φ","\\varphi",!0);i(l,u,D,"∗","*",!0);i(l,u,D,"+","+");i(l,u,D,"−","-",!0);i(l,u,D,"⋅","\\cdot",!0);i(l,u,D,"∘","\\circ",!0);i(l,u,D,"÷","\\div",!0);i(l,u,D,"±","\\pm",!0);i(l,u,D,"×","\\times",!0);i(l,u,D,"∩","\\cap",!0);i(l,u,D,"∪","\\cup",!0);i(l,u,D,"∖","\\setminus",!0);i(l,u,D,"∧","\\land");i(l,u,D,"∨","\\lor");i(l,u,D,"∧","\\wedge",!0);i(l,u,D,"∨","\\vee",!0);i(l,u,v,"√","\\surd");i(l,u,m0,"⟨","\\langle",!0);i(l,u,m0,"∣","\\lvert");i(l,u,m0,"∥","\\lVert");i(l,u,i0,"?","?");i(l,u,i0,"!","!");i(l,u,i0,"⟩","\\rangle",!0);i(l,u,i0,"∣","\\rvert");i(l,u,i0,"∥","\\rVert");i(l,u,f,"=","=");i(l,u,f,":",":");i(l,u,f,"≈","\\approx",!0);i(l,u,f,"≅","\\cong",!0);i(l,u,f,"≥","\\ge");i(l,u,f,"≥","\\geq",!0);i(l,u,f,"←","\\gets");i(l,u,f,">","\\gt",!0);i(l,u,f,"∈","\\in",!0);i(l,u,f,"","\\@not");i(l,u,f,"⊂","\\subset",!0);i(l,u,f,"⊃","\\supset",!0);i(l,u,f,"⊆","\\subseteq",!0);i(l,u,f,"⊇","\\supseteq",!0);i(l,d,f,"⊈","\\nsubseteq",!0);i(l,d,f,"⊉","\\nsupseteq",!0);i(l,u,f,"⊨","\\models");i(l,u,f,"←","\\leftarrow",!0);i(l,u,f,"≤","\\le");i(l,u,f,"≤","\\leq",!0);i(l,u,f,"<","\\lt",!0);i(l,u,f,"→","\\rightarrow",!0);i(l,u,f,"→","\\to");i(l,d,f,"≱","\\ngeq",!0);i(l,d,f,"≰","\\nleq",!0);i(l,u,E0," ","\\ ");i(l,u,E0," ","\\space");i(l,u,E0," ","\\nobreakspace");i(k,u,E0," ","\\ ");i(k,u,E0," "," ");i(k,u,E0," ","\\space");i(k,u,E0," ","\\nobreakspace");i(l,u,E0,null,"\\nobreak");i(l,u,E0,null,"\\allowbreak");i(l,u,qe,",",",");i(l,u,qe,";",";");i(l,d,D,"⊼","\\barwedge",!0);i(l,d,D,"⊻","\\veebar",!0);i(l,u,D,"⊙","\\odot",!0);i(l,u,D,"⊕","\\oplus",!0);i(l,u,D,"⊗","\\otimes",!0);i(l,u,v,"∂","\\partial",!0);i(l,u,D,"⊘","\\oslash",!0);i(l,d,D,"⊚","\\circledcirc",!0);i(l,d,D,"⊡","\\boxdot",!0);i(l,u,D,"△","\\bigtriangleup");i(l,u,D,"▽","\\bigtriangledown");i(l,u,D,"†","\\dagger");i(l,u,D,"⋄","\\diamond");i(l,u,D,"⋆","\\star");i(l,u,D,"◃","\\triangleleft");i(l,u,D,"▹","\\triangleright");i(l,u,m0,"{","\\{");i(k,u,v,"{","\\{");i(k,u,v,"{","\\textbraceleft");i(l,u,i0,"}","\\}");i(k,u,v,"}","\\}");i(k,u,v,"}","\\textbraceright");i(l,u,m0,"{","\\lbrace");i(l,u,i0,"}","\\rbrace");i(l,u,m0,"[","\\lbrack",!0);i(k,u,v,"[","\\lbrack",!0);i(l,u,i0,"]","\\rbrack",!0);i(k,u,v,"]","\\rbrack",!0);i(l,u,m0,"(","\\lparen",!0);i(l,u,i0,")","\\rparen",!0);i(k,u,v,"<","\\textless",!0);i(k,u,v,">","\\textgreater",!0);i(l,u,m0,"⌊","\\lfloor",!0);i(l,u,i0,"⌋","\\rfloor",!0);i(l,u,m0,"⌈","\\lceil",!0);i(l,u,i0,"⌉","\\rceil",!0);i(l,u,v,"\\","\\backslash");i(l,u,v,"∣","|");i(l,u,v,"∣","\\vert");i(k,u,v,"|","\\textbar",!0);i(l,u,v,"∥","\\|");i(l,u,v,"∥","\\Vert");i(k,u,v,"∥","\\textbardbl");i(k,u,v,"~","\\textasciitilde");i(k,u,v,"\\","\\textbackslash");i(k,u,v,"^","\\textasciicircum");i(l,u,f,"↑","\\uparrow",!0);i(l,u,f,"⇑","\\Uparrow",!0);i(l,u,f,"↓","\\downarrow",!0);i(l,u,f,"⇓","\\Downarrow",!0);i(l,u,f,"↕","\\updownarrow",!0);i(l,u,f,"⇕","\\Updownarrow",!0);i(l,u,_,"∐","\\coprod");i(l,u,_,"⋁","\\bigvee");i(l,u,_,"⋀","\\bigwedge");i(l,u,_,"⨄","\\biguplus");i(l,u,_,"⋂","\\bigcap");i(l,u,_,"⋃","\\bigcup");i(l,u,_,"∫","\\int");i(l,u,_,"∫","\\intop");i(l,u,_,"∬","\\iint");i(l,u,_,"∭","\\iiint");i(l,u,_,"∏","\\prod");i(l,u,_,"∑","\\sum");i(l,u,_,"⨂","\\bigotimes");i(l,u,_,"⨁","\\bigoplus");i(l,u,_,"⨀","\\bigodot");i(l,u,_,"∮","\\oint");i(l,u,_,"∯","\\oiint");i(l,u,_,"∰","\\oiiint");i(l,u,_,"⨆","\\bigsqcup");i(l,u,_,"∫","\\smallint");i(k,u,re,"…","\\textellipsis");i(l,u,re,"…","\\mathellipsis");i(k,u,re,"…","\\ldots",!0);i(l,u,re,"…","\\ldots",!0);i(l,u,re,"⋯","\\@cdots",!0);i(l,u,re,"⋱","\\ddots",!0);i(l,u,v,"⋮","\\varvdots");i(k,u,v,"⋮","\\varvdots");i(l,u,W,"ˊ","\\acute");i(l,u,W,"ˋ","\\grave");i(l,u,W,"¨","\\ddot");i(l,u,W,"~","\\tilde");i(l,u,W,"ˉ","\\bar");i(l,u,W,"˘","\\breve");i(l,u,W,"ˇ","\\check");i(l,u,W,"^","\\hat");i(l,u,W,"⃗","\\vec");i(l,u,W,"˙","\\dot");i(l,u,W,"˚","\\mathring");i(l,u,E,"","\\@imath");i(l,u,E,"","\\@jmath");i(l,u,v,"ı","ı");i(l,u,v,"ȷ","ȷ");i(k,u,v,"ı","\\i",!0);i(k,u,v,"ȷ","\\j",!0);i(k,u,v,"ß","\\ss",!0);i(k,u,v,"æ","\\ae",!0);i(k,u,v,"œ","\\oe",!0);i(k,u,v,"ø","\\o",!0);i(k,u,v,"Æ","\\AE",!0);i(k,u,v,"Œ","\\OE",!0);i(k,u,v,"Ø","\\O",!0);i(k,u,W,"ˊ","\\'");i(k,u,W,"ˋ","\\`");i(k,u,W,"ˆ","\\^");i(k,u,W,"˜","\\~");i(k,u,W,"ˉ","\\=");i(k,u,W,"˘","\\u");i(k,u,W,"˙","\\.");i(k,u,W,"¸","\\c");i(k,u,W,"˚","\\r");i(k,u,W,"ˇ","\\v");i(k,u,W,"¨",'\\"');i(k,u,W,"˝","\\H");i(k,u,W,"◯","\\textcircled");var kr={"--":!0,"---":!0,"``":!0,"''":!0};i(k,u,v,"–","--",!0);i(k,u,v,"–","\\textendash");i(k,u,v,"—","---",!0);i(k,u,v,"—","\\textemdash");i(k,u,v,"‘","`",!0);i(k,u,v,"‘","\\textquoteleft");i(k,u,v,"’","'",!0);i(k,u,v,"’","\\textquoteright");i(k,u,v,"“","``",!0);i(k,u,v,"“","\\textquotedblleft");i(k,u,v,"”","''",!0);i(k,u,v,"”","\\textquotedblright");i(l,u,v,"°","\\degree",!0);i(k,u,v,"°","\\degree");i(k,u,v,"°","\\textdegree",!0);i(l,u,v,"£","\\pounds");i(l,u,v,"£","\\mathsterling",!0);i(k,u,v,"£","\\pounds");i(k,u,v,"£","\\textsterling",!0);i(l,d,v,"✠","\\maltese");i(k,d,v,"✠","\\maltese");var Gt='0123456789/@."';for(var Ye=0;Ye0)return b0(s,p,n,t,o.concat(g));if(c){var y,w;if(c==="boldsymbol"){var x=_a(s,n,t,o,a);y=x.fontName,w=[x.fontClass]}else h?(y=zr[c].fontName,w=[c]):(y=xe(c,t.fontWeight,t.fontShape),w=[c,t.fontWeight,t.fontShape]);if(Ee(s,y,n).metrics)return b0(s,y,n,t,o.concat(w));if(kr.hasOwnProperty(s)&&y.slice(0,10)==="Typewriter"){for(var z=[],T=0;T{if(P0(r.classes)!==P0(e.classes)||r.skew!==e.skew||r.maxFontSize!==e.maxFontSize)return!1;if(r.classes.length===1){var t=r.classes[0];if(t==="mbin"||t==="mord")return!1}for(var a in r.style)if(r.style.hasOwnProperty(a)&&r.style[a]!==e.style[a])return!1;for(var n in e.style)if(e.style.hasOwnProperty(n)&&r.style[n]!==e.style[n])return!1;return!0},r1=r=>{for(var e=0;et&&(t=o.height),o.depth>a&&(a=o.depth),o.maxFontSize>n&&(n=o.maxFontSize)}e.height=t,e.depth=a,e.maxFontSize=n},l0=function(e,t,a,n){var s=new he(e,t,a,n);return gt(s),s},Sr=(r,e,t,a)=>new he(r,e,t,a),a1=function(e,t,a){var n=l0([e],[],t);return n.height=Math.max(a||t.fontMetrics().defaultRuleThickness,t.minRuleThickness),n.style.borderBottomWidth=A(n.height),n.maxFontSize=1,n},n1=function(e,t,a,n){var s=new vt(e,t,a,n);return gt(s),s},Mr=function(e){var t=new ue(e);return gt(t),t},i1=function(e,t){return e instanceof ue?l0([],[e],t):e},s1=function(e){if(e.positionType==="individualShift"){for(var t=e.children,a=[t[0]],n=-t[0].shift-t[0].elem.depth,s=n,o=1;o{var t=l0(["mspace"],[],e),a=K(r,e);return t.style.marginRight=A(a),t},xe=function(e,t,a){var n="";switch(e){case"amsrm":n="AMS";break;case"textrm":n="Main";break;case"textsf":n="SansSerif";break;case"texttt":n="Typewriter";break;default:n=e}var s;return t==="textbf"&&a==="textit"?s="BoldItalic":t==="textbf"?s="Bold":t==="textit"?s="Italic":s="Regular",n+"-"+s},zr={mathbf:{variant:"bold",fontName:"Main-Bold"},mathrm:{variant:"normal",fontName:"Main-Regular"},textit:{variant:"italic",fontName:"Main-Italic"},mathit:{variant:"italic",fontName:"Main-Italic"},mathnormal:{variant:"italic",fontName:"Math-Italic"},mathsfit:{variant:"sans-serif-italic",fontName:"SansSerif-Italic"},mathbb:{variant:"double-struck",fontName:"AMS-Regular"},mathcal:{variant:"script",fontName:"Caligraphic-Regular"},mathfrak:{variant:"fraktur",fontName:"Fraktur-Regular"},mathscr:{variant:"script",fontName:"Script-Regular"},mathsf:{variant:"sans-serif",fontName:"SansSerif-Regular"},mathtt:{variant:"monospace",fontName:"Typewriter-Regular"}},Ar={vec:["vec",.471,.714],oiintSize1:["oiintSize1",.957,.499],oiintSize2:["oiintSize2",1.472,.659],oiiintSize1:["oiiintSize1",1.304,.499],oiiintSize2:["oiiintSize2",1.98,.659]},u1=function(e,t){var[a,n,s]=Ar[e],o=new G0(a),h=new C0([o],{width:A(n),height:A(s),style:"width:"+A(n),viewBox:"0 0 "+1e3*n+" "+1e3*s,preserveAspectRatio:"xMinYMin"}),c=Sr(["overlay"],[h],t);return c.height=s,c.style.height=A(s),c.style.width=A(n),c},b={fontMap:zr,makeSymbol:b0,mathsym:Qa,makeSpan:l0,makeSvgSpan:Sr,makeLineSpan:a1,makeAnchor:n1,makeFragment:Mr,wrapFragment:i1,makeVList:l1,makeOrd:e1,makeGlue:o1,staticSvg:u1,svgData:Ar,tryCombineChars:r1},Z={number:3,unit:"mu"},$0={number:4,unit:"mu"},A0={number:5,unit:"mu"},h1={mord:{mop:Z,mbin:$0,mrel:A0,minner:Z},mop:{mord:Z,mop:Z,mrel:A0,minner:Z},mbin:{mord:$0,mop:$0,mopen:$0,minner:$0},mrel:{mord:A0,mop:A0,mopen:A0,minner:A0},mopen:{},mclose:{mop:Z,mbin:$0,mrel:A0,minner:Z},mpunct:{mord:Z,mop:Z,mrel:A0,mopen:Z,mclose:Z,mpunct:Z,minner:Z},minner:{mord:Z,mop:Z,mbin:$0,mrel:A0,mopen:Z,mpunct:Z,minner:Z}},m1={mord:{mop:Z},mop:{mord:Z,mop:Z},mbin:{},mrel:{},mopen:{},mclose:{mop:Z},mpunct:{},minner:{mop:Z}},Tr={},De={},Ce={};function B(r){for(var{type:e,names:t,props:a,handler:n,htmlBuilder:s,mathmlBuilder:o}=r,h={type:e,numArgs:a.numArgs,argTypes:a.argTypes,allowedInArgument:!!a.allowedInArgument,allowedInText:!!a.allowedInText,allowedInMath:a.allowedInMath===void 0?!0:a.allowedInMath,numOptionalArgs:a.numOptionalArgs||0,infix:!!a.infix,primitive:!!a.primitive,handler:n},c=0;c{var C=T.classes[0],N=z.classes[0];C==="mbin"&&q.contains(d1,N)?T.classes[0]="mord":N==="mbin"&&q.contains(c1,C)&&(z.classes[0]="mord")},{node:y},w,x),$t(s,(z,T)=>{var C=ot(T),N=ot(z),F=C&&N?z.hasClass("mtight")?m1[C][N]:h1[C][N]:null;if(F)return b.makeGlue(F,p)},{node:y},w,x),s},$t=function r(e,t,a,n,s){n&&e.push(n);for(var o=0;ow=>{e.splice(y+1,0,w),o++})(o)}n&&e.pop()},Br=function(e){return e instanceof ue||e instanceof vt||e instanceof he&&e.hasClass("enclosing")?e:null},v1=function r(e,t){var a=Br(e);if(a){var n=a.children;if(n.length){if(t==="right")return r(n[n.length-1],"right");if(t==="left")return r(n[0],"left")}}return e},ot=function(e,t){return e?(t&&(e=v1(e,t)),p1[e.classes[0]]||null):null},oe=function(e,t){var a=["nulldelimiter"].concat(e.baseSizingClasses());return N0(t.concat(a))},P=function(e,t,a){if(!e)return N0();if(De[e.type]){var n=De[e.type](e,t);if(a&&t.size!==a.size){n=N0(t.sizingClasses(a),[n],t);var s=t.sizeMultiplier/a.sizeMultiplier;n.height*=s,n.depth*=s}return n}else throw new M("Got group of unknown type: '"+e.type+"'")};function we(r,e){var t=N0(["base"],r,e),a=N0(["strut"]);return a.style.height=A(t.height+t.depth),t.depth&&(a.style.verticalAlign=A(-t.depth)),t.children.unshift(a),t}function ut(r,e){var t=null;r.length===1&&r[0].type==="tag"&&(t=r[0].tag,r=r[0].body);var a=t0(r,e,"root"),n;a.length===2&&a[1].hasClass("tag")&&(n=a.pop());for(var s=[],o=[],h=0;h0&&(s.push(we(o,e)),o=[]),s.push(a[h]));o.length>0&&s.push(we(o,e));var p;t?(p=we(t0(t,e,!0)),p.classes=["tag"],s.push(p)):n&&s.push(n);var g=N0(["katex-html"],s);if(g.setAttribute("aria-hidden","true"),p){var y=p.children[0];y.style.height=A(g.height+g.depth),g.depth&&(y.style.verticalAlign=A(-g.depth))}return g}function Dr(r){return new ue(r)}class h0{constructor(e,t,a){this.type=void 0,this.attributes=void 0,this.children=void 0,this.classes=void 0,this.type=e,this.attributes={},this.children=t||[],this.classes=a||[]}setAttribute(e,t){this.attributes[e]=t}getAttribute(e){return this.attributes[e]}toNode(){var e=document.createElementNS("http://www.w3.org/1998/Math/MathML",this.type);for(var t in this.attributes)Object.prototype.hasOwnProperty.call(this.attributes,t)&&e.setAttribute(t,this.attributes[t]);this.classes.length>0&&(e.className=P0(this.classes));for(var a=0;a0&&(e+=' class ="'+q.escape(P0(this.classes))+'"'),e+=">";for(var a=0;a",e}toText(){return this.children.map(e=>e.toText()).join("")}}class w0{constructor(e){this.text=void 0,this.text=e}toNode(){return document.createTextNode(this.text)}toMarkup(){return q.escape(this.toText())}toText(){return this.text}}class g1{constructor(e){this.width=void 0,this.character=void 0,this.width=e,e>=.05555&&e<=.05556?this.character=" ":e>=.1666&&e<=.1667?this.character=" ":e>=.2222&&e<=.2223?this.character=" ":e>=.2777&&e<=.2778?this.character="  ":e>=-.05556&&e<=-.05555?this.character=" ⁣":e>=-.1667&&e<=-.1666?this.character=" ⁣":e>=-.2223&&e<=-.2222?this.character=" ⁣":e>=-.2778&&e<=-.2777?this.character=" ⁣":this.character=null}toNode(){if(this.character)return document.createTextNode(this.character);var e=document.createElementNS("http://www.w3.org/1998/Math/MathML","mspace");return e.setAttribute("width",A(this.width)),e}toMarkup(){return this.character?""+this.character+"":''}toText(){return this.character?this.character:" "}}var S={MathNode:h0,TextNode:w0,SpaceNode:g1,newDocumentFragment:Dr},v0=function(e,t,a){return $[t][e]&&$[t][e].replace&&e.charCodeAt(0)!==55349&&!(kr.hasOwnProperty(e)&&a&&(a.fontFamily&&a.fontFamily.slice(4,6)==="tt"||a.font&&a.font.slice(4,6)==="tt"))&&(e=$[t][e].replace),new S.TextNode(e)},bt=function(e){return e.length===1?e[0]:new S.MathNode("mrow",e)},yt=function(e,t){if(t.fontFamily==="texttt")return"monospace";if(t.fontFamily==="textsf")return t.fontShape==="textit"&&t.fontWeight==="textbf"?"sans-serif-bold-italic":t.fontShape==="textit"?"sans-serif-italic":t.fontWeight==="textbf"?"bold-sans-serif":"sans-serif";if(t.fontShape==="textit"&&t.fontWeight==="textbf")return"bold-italic";if(t.fontShape==="textit")return"italic";if(t.fontWeight==="textbf")return"bold";var a=t.font;if(!a||a==="mathnormal")return null;var n=e.mode;if(a==="mathit")return"italic";if(a==="boldsymbol")return e.type==="textord"?"bold":"bold-italic";if(a==="mathbf")return"bold";if(a==="mathbb")return"double-struck";if(a==="mathsfit")return"sans-serif-italic";if(a==="mathfrak")return"fraktur";if(a==="mathscr"||a==="mathcal")return"script";if(a==="mathsf")return"sans-serif";if(a==="mathtt")return"monospace";var s=e.text;if(q.contains(["\\imath","\\jmath"],s))return null;$[n][s]&&$[n][s].replace&&(s=$[n][s].replace);var o=b.fontMap[a].fontName;return pt(s,o,n)?b.fontMap[a].variant:null};function je(r){if(!r)return!1;if(r.type==="mi"&&r.children.length===1){var e=r.children[0];return e instanceof w0&&e.text==="."}else if(r.type==="mo"&&r.children.length===1&&r.getAttribute("separator")==="true"&&r.getAttribute("lspace")==="0em"&&r.getAttribute("rspace")==="0em"){var t=r.children[0];return t instanceof w0&&t.text===","}else return!1}var o0=function(e,t,a){if(e.length===1){var n=X(e[0],t);return a&&n instanceof h0&&n.type==="mo"&&(n.setAttribute("lspace","0em"),n.setAttribute("rspace","0em")),[n]}for(var s=[],o,h=0;h=1&&(o.type==="mn"||je(o))){var p=c.children[0];p instanceof h0&&p.type==="mn"&&(p.children=[...o.children,...p.children],s.pop())}else if(o.type==="mi"&&o.children.length===1){var g=o.children[0];if(g instanceof w0&&g.text==="̸"&&(c.type==="mo"||c.type==="mi"||c.type==="mn")){var y=c.children[0];y instanceof w0&&y.text.length>0&&(y.text=y.text.slice(0,1)+"̸"+y.text.slice(1),s.pop())}}}s.push(c),o=c}return s},V0=function(e,t,a){return bt(o0(e,t,a))},X=function(e,t){if(!e)return new S.MathNode("mrow");if(Ce[e.type]){var a=Ce[e.type](e,t);return a}else throw new M("Got group of unknown type: '"+e.type+"'")};function Wt(r,e,t,a,n){var s=o0(r,t),o;s.length===1&&s[0]instanceof h0&&q.contains(["mrow","mtable"],s[0].type)?o=s[0]:o=new S.MathNode("mrow",s);var h=new S.MathNode("annotation",[new S.TextNode(e)]);h.setAttribute("encoding","application/x-tex");var c=new S.MathNode("semantics",[o,h]),p=new S.MathNode("math",[c]);p.setAttribute("xmlns","http://www.w3.org/1998/Math/MathML"),a&&p.setAttribute("display","block");var g=n?"katex":"katex-mathml";return b.makeSpan([g],[p])}var Cr=function(e){return new T0({style:e.displayMode?R.DISPLAY:R.TEXT,maxSize:e.maxSize,minRuleThickness:e.minRuleThickness})},Nr=function(e,t){if(t.displayMode){var a=["katex-display"];t.leqno&&a.push("leqno"),t.fleqn&&a.push("fleqn"),e=b.makeSpan(a,[e])}return e},b1=function(e,t,a){var n=Cr(a),s;if(a.output==="mathml")return Wt(e,t,n,a.displayMode,!0);if(a.output==="html"){var o=ut(e,n);s=b.makeSpan(["katex"],[o])}else{var h=Wt(e,t,n,a.displayMode,!1),c=ut(e,n);s=b.makeSpan(["katex"],[h,c])}return Nr(s,a)},y1=function(e,t,a){var n=Cr(a),s=ut(e,n),o=b.makeSpan(["katex"],[s]);return Nr(o,a)},x1={widehat:"^",widecheck:"ˇ",widetilde:"~",utilde:"~",overleftarrow:"←",underleftarrow:"←",xleftarrow:"←",overrightarrow:"→",underrightarrow:"→",xrightarrow:"→",underbrace:"⏟",overbrace:"⏞",overgroup:"⏠",undergroup:"⏡",overleftrightarrow:"↔",underleftrightarrow:"↔",xleftrightarrow:"↔",Overrightarrow:"⇒",xRightarrow:"⇒",overleftharpoon:"↼",xleftharpoonup:"↼",overrightharpoon:"⇀",xrightharpoonup:"⇀",xLeftarrow:"⇐",xLeftrightarrow:"⇔",xhookleftarrow:"↩",xhookrightarrow:"↪",xmapsto:"↦",xrightharpoondown:"⇁",xleftharpoondown:"↽",xrightleftharpoons:"⇌",xleftrightharpoons:"⇋",xtwoheadleftarrow:"↞",xtwoheadrightarrow:"↠",xlongequal:"=",xtofrom:"⇄",xrightleftarrows:"⇄",xrightequilibrium:"⇌",xleftequilibrium:"⇋","\\cdrightarrow":"→","\\cdleftarrow":"←","\\cdlongequal":"="},w1=function(e){var t=new S.MathNode("mo",[new S.TextNode(x1[e.replace(/^\\/,"")])]);return t.setAttribute("stretchy","true"),t},k1={overrightarrow:[["rightarrow"],.888,522,"xMaxYMin"],overleftarrow:[["leftarrow"],.888,522,"xMinYMin"],underrightarrow:[["rightarrow"],.888,522,"xMaxYMin"],underleftarrow:[["leftarrow"],.888,522,"xMinYMin"],xrightarrow:[["rightarrow"],1.469,522,"xMaxYMin"],"\\cdrightarrow":[["rightarrow"],3,522,"xMaxYMin"],xleftarrow:[["leftarrow"],1.469,522,"xMinYMin"],"\\cdleftarrow":[["leftarrow"],3,522,"xMinYMin"],Overrightarrow:[["doublerightarrow"],.888,560,"xMaxYMin"],xRightarrow:[["doublerightarrow"],1.526,560,"xMaxYMin"],xLeftarrow:[["doubleleftarrow"],1.526,560,"xMinYMin"],overleftharpoon:[["leftharpoon"],.888,522,"xMinYMin"],xleftharpoonup:[["leftharpoon"],.888,522,"xMinYMin"],xleftharpoondown:[["leftharpoondown"],.888,522,"xMinYMin"],overrightharpoon:[["rightharpoon"],.888,522,"xMaxYMin"],xrightharpoonup:[["rightharpoon"],.888,522,"xMaxYMin"],xrightharpoondown:[["rightharpoondown"],.888,522,"xMaxYMin"],xlongequal:[["longequal"],.888,334,"xMinYMin"],"\\cdlongequal":[["longequal"],3,334,"xMinYMin"],xtwoheadleftarrow:[["twoheadleftarrow"],.888,334,"xMinYMin"],xtwoheadrightarrow:[["twoheadrightarrow"],.888,334,"xMaxYMin"],overleftrightarrow:[["leftarrow","rightarrow"],.888,522],overbrace:[["leftbrace","midbrace","rightbrace"],1.6,548],underbrace:[["leftbraceunder","midbraceunder","rightbraceunder"],1.6,548],underleftrightarrow:[["leftarrow","rightarrow"],.888,522],xleftrightarrow:[["leftarrow","rightarrow"],1.75,522],xLeftrightarrow:[["doubleleftarrow","doublerightarrow"],1.75,560],xrightleftharpoons:[["leftharpoondownplus","rightharpoonplus"],1.75,716],xleftrightharpoons:[["leftharpoonplus","rightharpoondownplus"],1.75,716],xhookleftarrow:[["leftarrow","righthook"],1.08,522],xhookrightarrow:[["lefthook","rightarrow"],1.08,522],overlinesegment:[["leftlinesegment","rightlinesegment"],.888,522],underlinesegment:[["leftlinesegment","rightlinesegment"],.888,522],overgroup:[["leftgroup","rightgroup"],.888,342],undergroup:[["leftgroupunder","rightgroupunder"],.888,342],xmapsto:[["leftmapsto","rightarrow"],1.5,522],xtofrom:[["leftToFrom","rightToFrom"],1.75,528],xrightleftarrows:[["baraboveleftarrow","rightarrowabovebar"],1.75,901],xrightequilibrium:[["baraboveshortleftharpoon","rightharpoonaboveshortbar"],1.75,716],xleftequilibrium:[["shortbaraboveleftharpoon","shortrightharpoonabovebar"],1.75,716]},S1=function(e){return e.type==="ordgroup"?e.body.length:1},M1=function(e,t){function a(){var h=4e5,c=e.label.slice(1);if(q.contains(["widehat","widecheck","widetilde","utilde"],c)){var p=e,g=S1(p.base),y,w,x;if(g>5)c==="widehat"||c==="widecheck"?(y=420,h=2364,x=.42,w=c+"4"):(y=312,h=2340,x=.34,w="tilde4");else{var z=[1,1,2,2,3,3][g];c==="widehat"||c==="widecheck"?(h=[0,1062,2364,2364,2364][z],y=[0,239,300,360,420][z],x=[0,.24,.3,.3,.36,.42][z],w=c+z):(h=[0,600,1033,2339,2340][z],y=[0,260,286,306,312][z],x=[0,.26,.286,.3,.306,.34][z],w="tilde"+z)}var T=new G0(w),C=new C0([T],{width:"100%",height:A(x),viewBox:"0 0 "+h+" "+y,preserveAspectRatio:"none"});return{span:b.makeSvgSpan([],[C],t),minWidth:0,height:x}}else{var N=[],F=k1[c],[O,V,L]=F,U=L/1e3,G=O.length,j,Y;if(G===1){var z0=F[3];j=["hide-tail"],Y=[z0]}else if(G===2)j=["halfarrow-left","halfarrow-right"],Y=["xMinYMin","xMaxYMin"];else if(G===3)j=["brace-left","brace-center","brace-right"],Y=["xMinYMin","xMidYMin","xMaxYMin"];else throw new Error(`Correct katexImagesData or update code here to support + `+G+" children.");for(var r0=0;r00&&(n.style.minWidth=A(s)),n},z1=function(e,t,a,n,s){var o,h=e.height+e.depth+a+n;if(/fbox|color|angl/.test(t)){if(o=b.makeSpan(["stretchy",t],[],s),t==="fbox"){var c=s.color&&s.getColor();c&&(o.style.borderColor=c)}}else{var p=[];/^[bx]cancel$/.test(t)&&p.push(new st({x1:"0",y1:"0",x2:"100%",y2:"100%","stroke-width":"0.046em"})),/^x?cancel$/.test(t)&&p.push(new st({x1:"0",y1:"100%",x2:"100%",y2:"0","stroke-width":"0.046em"}));var g=new C0(p,{width:"100%",height:A(h)});o=b.makeSvgSpan([],[g],s)}return o.height=h,o.style.height=A(h),o},q0={encloseSpan:z1,mathMLnode:w1,svgSpan:M1};function H(r,e){if(!r||r.type!==e)throw new Error("Expected node of type "+e+", but got "+(r?"node of type "+r.type:String(r)));return r}function xt(r){var e=Re(r);if(!e)throw new Error("Expected node of symbol group type, but got "+(r?"node of type "+r.type:String(r)));return e}function Re(r){return r&&(r.type==="atom"||Ka.hasOwnProperty(r.type))?r:null}var wt=(r,e)=>{var t,a,n;r&&r.type==="supsub"?(a=H(r.base,"accent"),t=a.base,r.base=t,n=ja(P(r,e)),r.base=a):(a=H(r,"accent"),t=a.base);var s=P(t,e.havingCrampedStyle()),o=a.isShifty&&q.isCharacterBox(t),h=0;if(o){var c=q.getBaseElem(t),p=P(c,e.havingCrampedStyle());h=Pt(p).skew}var g=a.label==="\\c",y=g?s.height+s.depth:Math.min(s.height,e.fontMetrics().xHeight),w;if(a.isStretchy)w=q0.svgSpan(a,e),w=b.makeVList({positionType:"firstBaseline",children:[{type:"elem",elem:s},{type:"elem",elem:w,wrapperClasses:["svg-align"],wrapperStyle:h>0?{width:"calc(100% - "+A(2*h)+")",marginLeft:A(2*h)}:void 0}]},e);else{var x,z;a.label==="\\vec"?(x=b.staticSvg("vec",e),z=b.svgData.vec[1]):(x=b.makeOrd({mode:a.mode,text:a.label},e,"textord"),x=Pt(x),x.italic=0,z=x.width,g&&(y+=x.depth)),w=b.makeSpan(["accent-body"],[x]);var T=a.label==="\\textcircled";T&&(w.classes.push("accent-full"),y=s.height);var C=h;T||(C-=z/2),w.style.left=A(C),a.label==="\\textcircled"&&(w.style.top=".2em"),w=b.makeVList({positionType:"firstBaseline",children:[{type:"elem",elem:s},{type:"kern",size:-y},{type:"elem",elem:w}]},e)}var N=b.makeSpan(["mord","accent"],[w],e);return n?(n.children[0]=N,n.height=Math.max(N.height,n.height),n.classes[0]="mord",n):N},qr=(r,e)=>{var t=r.isStretchy?q0.mathMLnode(r.label):new S.MathNode("mo",[v0(r.label,r.mode)]),a=new S.MathNode("mover",[X(r.base,e),t]);return a.setAttribute("accent","true"),a},A1=new RegExp(["\\acute","\\grave","\\ddot","\\tilde","\\bar","\\breve","\\check","\\hat","\\vec","\\dot","\\mathring"].map(r=>"\\"+r).join("|"));B({type:"accent",names:["\\acute","\\grave","\\ddot","\\tilde","\\bar","\\breve","\\check","\\hat","\\vec","\\dot","\\mathring","\\widecheck","\\widehat","\\widetilde","\\overrightarrow","\\overleftarrow","\\Overrightarrow","\\overleftrightarrow","\\overgroup","\\overlinesegment","\\overleftharpoon","\\overrightharpoon"],props:{numArgs:1},handler:(r,e)=>{var t=Ne(e[0]),a=!A1.test(r.funcName),n=!a||r.funcName==="\\widehat"||r.funcName==="\\widetilde"||r.funcName==="\\widecheck";return{type:"accent",mode:r.parser.mode,label:r.funcName,isStretchy:a,isShifty:n,base:t}},htmlBuilder:wt,mathmlBuilder:qr});B({type:"accent",names:["\\'","\\`","\\^","\\~","\\=","\\u","\\.",'\\"',"\\c","\\r","\\H","\\v","\\textcircled"],props:{numArgs:1,allowedInText:!0,allowedInMath:!0,argTypes:["primitive"]},handler:(r,e)=>{var t=e[0],a=r.parser.mode;return a==="math"&&(r.parser.settings.reportNonstrict("mathVsTextAccents","LaTeX's accent "+r.funcName+" works only in text mode"),a="text"),{type:"accent",mode:a,label:r.funcName,isStretchy:!1,isShifty:!0,base:t}},htmlBuilder:wt,mathmlBuilder:qr});B({type:"accentUnder",names:["\\underleftarrow","\\underrightarrow","\\underleftrightarrow","\\undergroup","\\underlinesegment","\\utilde"],props:{numArgs:1},handler:(r,e)=>{var{parser:t,funcName:a}=r,n=e[0];return{type:"accentUnder",mode:t.mode,label:a,base:n}},htmlBuilder:(r,e)=>{var t=P(r.base,e),a=q0.svgSpan(r,e),n=r.label==="\\utilde"?.12:0,s=b.makeVList({positionType:"top",positionData:t.height,children:[{type:"elem",elem:a,wrapperClasses:["svg-align"]},{type:"kern",size:n},{type:"elem",elem:t}]},e);return b.makeSpan(["mord","accentunder"],[s],e)},mathmlBuilder:(r,e)=>{var t=q0.mathMLnode(r.label),a=new S.MathNode("munder",[X(r.base,e),t]);return a.setAttribute("accentunder","true"),a}});var ke=r=>{var e=new S.MathNode("mpadded",r?[r]:[]);return e.setAttribute("width","+0.6em"),e.setAttribute("lspace","0.3em"),e};B({type:"xArrow",names:["\\xleftarrow","\\xrightarrow","\\xLeftarrow","\\xRightarrow","\\xleftrightarrow","\\xLeftrightarrow","\\xhookleftarrow","\\xhookrightarrow","\\xmapsto","\\xrightharpoondown","\\xrightharpoonup","\\xleftharpoondown","\\xleftharpoonup","\\xrightleftharpoons","\\xleftrightharpoons","\\xlongequal","\\xtwoheadrightarrow","\\xtwoheadleftarrow","\\xtofrom","\\xrightleftarrows","\\xrightequilibrium","\\xleftequilibrium","\\\\cdrightarrow","\\\\cdleftarrow","\\\\cdlongequal"],props:{numArgs:1,numOptionalArgs:1},handler(r,e,t){var{parser:a,funcName:n}=r;return{type:"xArrow",mode:a.mode,label:n,body:e[0],below:t[0]}},htmlBuilder(r,e){var t=e.style,a=e.havingStyle(t.sup()),n=b.wrapFragment(P(r.body,a,e),e),s=r.label.slice(0,2)==="\\x"?"x":"cd";n.classes.push(s+"-arrow-pad");var o;r.below&&(a=e.havingStyle(t.sub()),o=b.wrapFragment(P(r.below,a,e),e),o.classes.push(s+"-arrow-pad"));var h=q0.svgSpan(r,e),c=-e.fontMetrics().axisHeight+.5*h.height,p=-e.fontMetrics().axisHeight-.5*h.height-.111;(n.depth>.25||r.label==="\\xleftequilibrium")&&(p-=n.depth);var g;if(o){var y=-e.fontMetrics().axisHeight+o.height+.5*h.height+.111;g=b.makeVList({positionType:"individualShift",children:[{type:"elem",elem:n,shift:p},{type:"elem",elem:h,shift:c},{type:"elem",elem:o,shift:y}]},e)}else g=b.makeVList({positionType:"individualShift",children:[{type:"elem",elem:n,shift:p},{type:"elem",elem:h,shift:c}]},e);return g.children[0].children[0].children[1].classes.push("svg-align"),b.makeSpan(["mrel","x-arrow"],[g],e)},mathmlBuilder(r,e){var t=q0.mathMLnode(r.label);t.setAttribute("minsize",r.label.charAt(0)==="x"?"1.75em":"3.0em");var a;if(r.body){var n=ke(X(r.body,e));if(r.below){var s=ke(X(r.below,e));a=new S.MathNode("munderover",[t,s,n])}else a=new S.MathNode("mover",[t,n])}else if(r.below){var o=ke(X(r.below,e));a=new S.MathNode("munder",[t,o])}else a=ke(),a=new S.MathNode("mover",[t,a]);return a}});var T1=b.makeSpan;function Er(r,e){var t=t0(r.body,e,!0);return T1([r.mclass],t,e)}function Rr(r,e){var t,a=o0(r.body,e);return r.mclass==="minner"?t=new S.MathNode("mpadded",a):r.mclass==="mord"?r.isCharacterBox?(t=a[0],t.type="mi"):t=new S.MathNode("mi",a):(r.isCharacterBox?(t=a[0],t.type="mo"):t=new S.MathNode("mo",a),r.mclass==="mbin"?(t.attributes.lspace="0.22em",t.attributes.rspace="0.22em"):r.mclass==="mpunct"?(t.attributes.lspace="0em",t.attributes.rspace="0.17em"):r.mclass==="mopen"||r.mclass==="mclose"?(t.attributes.lspace="0em",t.attributes.rspace="0em"):r.mclass==="minner"&&(t.attributes.lspace="0.0556em",t.attributes.width="+0.1111em")),t}B({type:"mclass",names:["\\mathord","\\mathbin","\\mathrel","\\mathopen","\\mathclose","\\mathpunct","\\mathinner"],props:{numArgs:1,primitive:!0},handler(r,e){var{parser:t,funcName:a}=r,n=e[0];return{type:"mclass",mode:t.mode,mclass:"m"+a.slice(5),body:Q(n),isCharacterBox:q.isCharacterBox(n)}},htmlBuilder:Er,mathmlBuilder:Rr});var Ie=r=>{var e=r.type==="ordgroup"&&r.body.length?r.body[0]:r;return e.type==="atom"&&(e.family==="bin"||e.family==="rel")?"m"+e.family:"mord"};B({type:"mclass",names:["\\@binrel"],props:{numArgs:2},handler(r,e){var{parser:t}=r;return{type:"mclass",mode:t.mode,mclass:Ie(e[0]),body:Q(e[1]),isCharacterBox:q.isCharacterBox(e[1])}}});B({type:"mclass",names:["\\stackrel","\\overset","\\underset"],props:{numArgs:2},handler(r,e){var{parser:t,funcName:a}=r,n=e[1],s=e[0],o;a!=="\\stackrel"?o=Ie(n):o="mrel";var h={type:"op",mode:n.mode,limits:!0,alwaysHandleSupSub:!0,parentIsSupSub:!1,symbol:!1,suppressBaseShift:a!=="\\stackrel",body:Q(n)},c={type:"supsub",mode:s.mode,base:h,sup:a==="\\underset"?null:s,sub:a==="\\underset"?s:null};return{type:"mclass",mode:t.mode,mclass:o,body:[c],isCharacterBox:q.isCharacterBox(c)}},htmlBuilder:Er,mathmlBuilder:Rr});B({type:"pmb",names:["\\pmb"],props:{numArgs:1,allowedInText:!0},handler(r,e){var{parser:t}=r;return{type:"pmb",mode:t.mode,mclass:Ie(e[0]),body:Q(e[0])}},htmlBuilder(r,e){var t=t0(r.body,e,!0),a=b.makeSpan([r.mclass],t,e);return a.style.textShadow="0.02em 0.01em 0.04px",a},mathmlBuilder(r,e){var t=o0(r.body,e),a=new S.MathNode("mstyle",t);return a.setAttribute("style","text-shadow: 0.02em 0.01em 0.04px"),a}});var B1={">":"\\\\cdrightarrow","<":"\\\\cdleftarrow","=":"\\\\cdlongequal",A:"\\uparrow",V:"\\downarrow","|":"\\Vert",".":"no arrow"},jt=()=>({type:"styling",body:[],mode:"math",style:"display"}),Zt=r=>r.type==="textord"&&r.text==="@",D1=(r,e)=>(r.type==="mathord"||r.type==="atom")&&r.text===e;function C1(r,e,t){var a=B1[r];switch(a){case"\\\\cdrightarrow":case"\\\\cdleftarrow":return t.callFunction(a,[e[0]],[e[1]]);case"\\uparrow":case"\\downarrow":{var n=t.callFunction("\\\\cdleft",[e[0]],[]),s={type:"atom",text:a,mode:"math",family:"rel"},o=t.callFunction("\\Big",[s],[]),h=t.callFunction("\\\\cdright",[e[1]],[]),c={type:"ordgroup",mode:"math",body:[n,o,h]};return t.callFunction("\\\\cdparent",[c],[])}case"\\\\cdlongequal":return t.callFunction("\\\\cdlongequal",[],[]);case"\\Vert":{var p={type:"textord",text:"\\Vert",mode:"math"};return t.callFunction("\\Big",[p],[])}default:return{type:"textord",text:" ",mode:"math"}}}function N1(r){var e=[];for(r.gullet.beginGroup(),r.gullet.macros.set("\\cr","\\\\\\relax"),r.gullet.beginGroup();;){e.push(r.parseExpression(!1,"\\\\")),r.gullet.endGroup(),r.gullet.beginGroup();var t=r.fetch().text;if(t==="&"||t==="\\\\")r.consume();else if(t==="\\end"){e[e.length-1].length===0&&e.pop();break}else throw new M("Expected \\\\ or \\cr or \\end",r.nextToken)}for(var a=[],n=[a],s=0;s-1))if("<>AV".indexOf(p)>-1)for(var y=0;y<2;y++){for(var w=!0,x=c+1;xAV=|." after @',o[c]);var z=C1(p,g,r),T={type:"styling",body:[z],mode:"math",style:"display"};a.push(T),h=jt()}s%2===0?a.push(h):a.shift(),a=[],n.push(a)}r.gullet.endGroup(),r.gullet.endGroup();var C=new Array(n[0].length).fill({type:"align",align:"c",pregap:.25,postgap:.25});return{type:"array",mode:"math",body:n,arraystretch:1,addJot:!0,rowGaps:[null],cols:C,colSeparationType:"CD",hLinesBeforeRow:new Array(n.length+1).fill([])}}B({type:"cdlabel",names:["\\\\cdleft","\\\\cdright"],props:{numArgs:1},handler(r,e){var{parser:t,funcName:a}=r;return{type:"cdlabel",mode:t.mode,side:a.slice(4),label:e[0]}},htmlBuilder(r,e){var t=e.havingStyle(e.style.sup()),a=b.wrapFragment(P(r.label,t,e),e);return a.classes.push("cd-label-"+r.side),a.style.bottom=A(.8-a.depth),a.height=0,a.depth=0,a},mathmlBuilder(r,e){var t=new S.MathNode("mrow",[X(r.label,e)]);return t=new S.MathNode("mpadded",[t]),t.setAttribute("width","0"),r.side==="left"&&t.setAttribute("lspace","-1width"),t.setAttribute("voffset","0.7em"),t=new S.MathNode("mstyle",[t]),t.setAttribute("displaystyle","false"),t.setAttribute("scriptlevel","1"),t}});B({type:"cdlabelparent",names:["\\\\cdparent"],props:{numArgs:1},handler(r,e){var{parser:t}=r;return{type:"cdlabelparent",mode:t.mode,fragment:e[0]}},htmlBuilder(r,e){var t=b.wrapFragment(P(r.fragment,e),e);return t.classes.push("cd-vert-arrow"),t},mathmlBuilder(r,e){return new S.MathNode("mrow",[X(r.fragment,e)])}});B({type:"textord",names:["\\@char"],props:{numArgs:1,allowedInText:!0},handler(r,e){for(var{parser:t}=r,a=H(e[0],"ordgroup"),n=a.body,s="",o=0;o=1114111)throw new M("\\@char with invalid code point "+s);return c<=65535?p=String.fromCharCode(c):(c-=65536,p=String.fromCharCode((c>>10)+55296,(c&1023)+56320)),{type:"textord",mode:t.mode,text:p}}});var Ir=(r,e)=>{var t=t0(r.body,e.withColor(r.color),!1);return b.makeFragment(t)},Fr=(r,e)=>{var t=o0(r.body,e.withColor(r.color)),a=new S.MathNode("mstyle",t);return a.setAttribute("mathcolor",r.color),a};B({type:"color",names:["\\textcolor"],props:{numArgs:2,allowedInText:!0,argTypes:["color","original"]},handler(r,e){var{parser:t}=r,a=H(e[0],"color-token").color,n=e[1];return{type:"color",mode:t.mode,color:a,body:Q(n)}},htmlBuilder:Ir,mathmlBuilder:Fr});B({type:"color",names:["\\color"],props:{numArgs:1,allowedInText:!0,argTypes:["color"]},handler(r,e){var{parser:t,breakOnTokenText:a}=r,n=H(e[0],"color-token").color;t.gullet.macros.set("\\current@color",n);var s=t.parseExpression(!0,a);return{type:"color",mode:t.mode,color:n,body:s}},htmlBuilder:Ir,mathmlBuilder:Fr});B({type:"cr",names:["\\\\"],props:{numArgs:0,numOptionalArgs:0,allowedInText:!0},handler(r,e,t){var{parser:a}=r,n=a.gullet.future().text==="["?a.parseSizeGroup(!0):null,s=!a.settings.displayMode||!a.settings.useStrictBehavior("newLineInDisplayMode","In LaTeX, \\\\ or \\newline does nothing in display mode");return{type:"cr",mode:a.mode,newLine:s,size:n&&H(n,"size").value}},htmlBuilder(r,e){var t=b.makeSpan(["mspace"],[],e);return r.newLine&&(t.classes.push("newline"),r.size&&(t.style.marginTop=A(K(r.size,e)))),t},mathmlBuilder(r,e){var t=new S.MathNode("mspace");return r.newLine&&(t.setAttribute("linebreak","newline"),r.size&&t.setAttribute("height",A(K(r.size,e)))),t}});var ht={"\\global":"\\global","\\long":"\\\\globallong","\\\\globallong":"\\\\globallong","\\def":"\\gdef","\\gdef":"\\gdef","\\edef":"\\xdef","\\xdef":"\\xdef","\\let":"\\\\globallet","\\futurelet":"\\\\globalfuture"},Or=r=>{var e=r.text;if(/^(?:[\\{}$&#^_]|EOF)$/.test(e))throw new M("Expected a control sequence",r);return e},q1=r=>{var e=r.gullet.popToken();return e.text==="="&&(e=r.gullet.popToken(),e.text===" "&&(e=r.gullet.popToken())),e},Hr=(r,e,t,a)=>{var n=r.gullet.macros.get(t.text);n==null&&(t.noexpand=!0,n={tokens:[t],numArgs:0,unexpandable:!r.gullet.isExpandable(t.text)}),r.gullet.macros.set(e,n,a)};B({type:"internal",names:["\\global","\\long","\\\\globallong"],props:{numArgs:0,allowedInText:!0},handler(r){var{parser:e,funcName:t}=r;e.consumeSpaces();var a=e.fetch();if(ht[a.text])return(t==="\\global"||t==="\\\\globallong")&&(a.text=ht[a.text]),H(e.parseFunction(),"internal");throw new M("Invalid token after macro prefix",a)}});B({type:"internal",names:["\\def","\\gdef","\\edef","\\xdef"],props:{numArgs:0,allowedInText:!0,primitive:!0},handler(r){var{parser:e,funcName:t}=r,a=e.gullet.popToken(),n=a.text;if(/^(?:[\\{}$&#^_]|EOF)$/.test(n))throw new M("Expected a control sequence",a);for(var s=0,o,h=[[]];e.gullet.future().text!=="{";)if(a=e.gullet.popToken(),a.text==="#"){if(e.gullet.future().text==="{"){o=e.gullet.future(),h[s].push("{");break}if(a=e.gullet.popToken(),!/^[1-9]$/.test(a.text))throw new M('Invalid argument number "'+a.text+'"');if(parseInt(a.text)!==s+1)throw new M('Argument number "'+a.text+'" out of order');s++,h.push([])}else{if(a.text==="EOF")throw new M("Expected a macro definition");h[s].push(a.text)}var{tokens:c}=e.gullet.consumeArg();return o&&c.unshift(o),(t==="\\edef"||t==="\\xdef")&&(c=e.gullet.expandTokens(c),c.reverse()),e.gullet.macros.set(n,{tokens:c,numArgs:s,delimiters:h},t===ht[t]),{type:"internal",mode:e.mode}}});B({type:"internal",names:["\\let","\\\\globallet"],props:{numArgs:0,allowedInText:!0,primitive:!0},handler(r){var{parser:e,funcName:t}=r,a=Or(e.gullet.popToken());e.gullet.consumeSpaces();var n=q1(e);return Hr(e,a,n,t==="\\\\globallet"),{type:"internal",mode:e.mode}}});B({type:"internal",names:["\\futurelet","\\\\globalfuture"],props:{numArgs:0,allowedInText:!0,primitive:!0},handler(r){var{parser:e,funcName:t}=r,a=Or(e.gullet.popToken()),n=e.gullet.popToken(),s=e.gullet.popToken();return Hr(e,a,s,t==="\\\\globalfuture"),e.gullet.pushToken(s),e.gullet.pushToken(n),{type:"internal",mode:e.mode}}});var ie=function(e,t,a){var n=$.math[e]&&$.math[e].replace,s=pt(n||e,t,a);if(!s)throw new Error("Unsupported symbol "+e+" and font size "+t+".");return s},kt=function(e,t,a,n){var s=a.havingBaseStyle(t),o=b.makeSpan(n.concat(s.sizingClasses(a)),[e],a),h=s.sizeMultiplier/a.sizeMultiplier;return o.height*=h,o.depth*=h,o.maxFontSize=s.sizeMultiplier,o},Lr=function(e,t,a){var n=t.havingBaseStyle(a),s=(1-t.sizeMultiplier/n.sizeMultiplier)*t.fontMetrics().axisHeight;e.classes.push("delimcenter"),e.style.top=A(s),e.height-=s,e.depth+=s},E1=function(e,t,a,n,s,o){var h=b.makeSymbol(e,"Main-Regular",s,n),c=kt(h,t,n,o);return a&&Lr(c,n,t),c},R1=function(e,t,a,n){return b.makeSymbol(e,"Size"+t+"-Regular",a,n)},Pr=function(e,t,a,n,s,o){var h=R1(e,t,s,n),c=kt(b.makeSpan(["delimsizing","size"+t],[h],n),R.TEXT,n,o);return a&&Lr(c,n,R.TEXT),c},Ze=function(e,t,a){var n;t==="Size1-Regular"?n="delim-size1":n="delim-size4";var s=b.makeSpan(["delimsizinginner",n],[b.makeSpan([],[b.makeSymbol(e,t,a)])]);return{type:"elem",elem:s}},Ke=function(e,t,a){var n=x0["Size4-Regular"][e.charCodeAt(0)]?x0["Size4-Regular"][e.charCodeAt(0)][4]:x0["Size1-Regular"][e.charCodeAt(0)][4],s=new G0("inner",Pa(e,Math.round(1e3*t))),o=new C0([s],{width:A(n),height:A(t),style:"width:"+A(n),viewBox:"0 0 "+1e3*n+" "+Math.round(1e3*t),preserveAspectRatio:"xMinYMin"}),h=b.makeSvgSpan([],[o],a);return h.height=t,h.style.height=A(t),h.style.width=A(n),{type:"elem",elem:h}},mt=.008,Se={type:"kern",size:-1*mt},I1=["|","\\lvert","\\rvert","\\vert"],F1=["\\|","\\lVert","\\rVert","\\Vert"],Gr=function(e,t,a,n,s,o){var h,c,p,g,y="",w=0;h=p=g=e,c=null;var x="Size1-Regular";e==="\\uparrow"?p=g="⏐":e==="\\Uparrow"?p=g="‖":e==="\\downarrow"?h=p="⏐":e==="\\Downarrow"?h=p="‖":e==="\\updownarrow"?(h="\\uparrow",p="⏐",g="\\downarrow"):e==="\\Updownarrow"?(h="\\Uparrow",p="‖",g="\\Downarrow"):q.contains(I1,e)?(p="∣",y="vert",w=333):q.contains(F1,e)?(p="∥",y="doublevert",w=556):e==="["||e==="\\lbrack"?(h="⎡",p="⎢",g="⎣",x="Size4-Regular",y="lbrack",w=667):e==="]"||e==="\\rbrack"?(h="⎤",p="⎥",g="⎦",x="Size4-Regular",y="rbrack",w=667):e==="\\lfloor"||e==="⌊"?(p=h="⎢",g="⎣",x="Size4-Regular",y="lfloor",w=667):e==="\\lceil"||e==="⌈"?(h="⎡",p=g="⎢",x="Size4-Regular",y="lceil",w=667):e==="\\rfloor"||e==="⌋"?(p=h="⎥",g="⎦",x="Size4-Regular",y="rfloor",w=667):e==="\\rceil"||e==="⌉"?(h="⎤",p=g="⎥",x="Size4-Regular",y="rceil",w=667):e==="("||e==="\\lparen"?(h="⎛",p="⎜",g="⎝",x="Size4-Regular",y="lparen",w=875):e===")"||e==="\\rparen"?(h="⎞",p="⎟",g="⎠",x="Size4-Regular",y="rparen",w=875):e==="\\{"||e==="\\lbrace"?(h="⎧",c="⎨",g="⎩",p="⎪",x="Size4-Regular"):e==="\\}"||e==="\\rbrace"?(h="⎫",c="⎬",g="⎭",p="⎪",x="Size4-Regular"):e==="\\lgroup"||e==="⟮"?(h="⎧",g="⎩",p="⎪",x="Size4-Regular"):e==="\\rgroup"||e==="⟯"?(h="⎫",g="⎭",p="⎪",x="Size4-Regular"):e==="\\lmoustache"||e==="⎰"?(h="⎧",g="⎭",p="⎪",x="Size4-Regular"):(e==="\\rmoustache"||e==="⎱")&&(h="⎫",g="⎩",p="⎪",x="Size4-Regular");var z=ie(h,x,s),T=z.height+z.depth,C=ie(p,x,s),N=C.height+C.depth,F=ie(g,x,s),O=F.height+F.depth,V=0,L=1;if(c!==null){var U=ie(c,x,s);V=U.height+U.depth,L=2}var G=T+O+V,j=Math.max(0,Math.ceil((t-G)/(L*N))),Y=G+j*L*N,z0=n.fontMetrics().axisHeight;a&&(z0*=n.sizeMultiplier);var r0=Y/2-z0,e0=[];if(y.length>0){var Y0=Y-T-O,s0=Math.round(Y*1e3),g0=Ga(y,Math.round(Y0*1e3)),R0=new G0(y,g0),j0=(w/1e3).toFixed(3)+"em",Z0=(s0/1e3).toFixed(3)+"em",Le=new C0([R0],{width:j0,height:Z0,viewBox:"0 0 "+w+" "+s0}),I0=b.makeSvgSpan([],[Le],n);I0.height=s0/1e3,I0.style.width=j0,I0.style.height=Z0,e0.push({type:"elem",elem:I0})}else{if(e0.push(Ze(g,x,s)),e0.push(Se),c===null){var F0=Y-T-O+2*mt;e0.push(Ke(p,F0,n))}else{var c0=(Y-T-O-V)/2+2*mt;e0.push(Ke(p,c0,n)),e0.push(Se),e0.push(Ze(c,x,s)),e0.push(Se),e0.push(Ke(p,c0,n))}e0.push(Se),e0.push(Ze(h,x,s))}var ne=n.havingBaseStyle(R.TEXT),Pe=b.makeVList({positionType:"bottom",positionData:r0,children:e0},ne);return kt(b.makeSpan(["delimsizing","mult"],[Pe],ne),R.TEXT,n,o)},Je=80,Qe=.08,_e=function(e,t,a,n,s){var o=La(e,n,a),h=new G0(e,o),c=new C0([h],{width:"400em",height:A(t),viewBox:"0 0 400000 "+a,preserveAspectRatio:"xMinYMin slice"});return b.makeSvgSpan(["hide-tail"],[c],s)},O1=function(e,t){var a=t.havingBaseSizing(),n=Xr("\\surd",e*a.sizeMultiplier,Yr,a),s=a.sizeMultiplier,o=Math.max(0,t.minRuleThickness-t.fontMetrics().sqrtRuleThickness),h,c=0,p=0,g=0,y;return n.type==="small"?(g=1e3+1e3*o+Je,e<1?s=1:e<1.4&&(s=.7),c=(1+o+Qe)/s,p=(1+o)/s,h=_e("sqrtMain",c,g,o,t),h.style.minWidth="0.853em",y=.833/s):n.type==="large"?(g=(1e3+Je)*se[n.size],p=(se[n.size]+o)/s,c=(se[n.size]+o+Qe)/s,h=_e("sqrtSize"+n.size,c,g,o,t),h.style.minWidth="1.02em",y=1/s):(c=e+o+Qe,p=e+o,g=Math.floor(1e3*e+o)+Je,h=_e("sqrtTall",c,g,o,t),h.style.minWidth="0.742em",y=1.056),h.height=p,h.style.height=A(c),{span:h,advanceWidth:y,ruleWidth:(t.fontMetrics().sqrtRuleThickness+o)*s}},Vr=["(","\\lparen",")","\\rparen","[","\\lbrack","]","\\rbrack","\\{","\\lbrace","\\}","\\rbrace","\\lfloor","\\rfloor","⌊","⌋","\\lceil","\\rceil","⌈","⌉","\\surd"],H1=["\\uparrow","\\downarrow","\\updownarrow","\\Uparrow","\\Downarrow","\\Updownarrow","|","\\|","\\vert","\\Vert","\\lvert","\\rvert","\\lVert","\\rVert","\\lgroup","\\rgroup","⟮","⟯","\\lmoustache","\\rmoustache","⎰","⎱"],Ur=["<",">","\\langle","\\rangle","/","\\backslash","\\lt","\\gt"],se=[0,1.2,1.8,2.4,3],L1=function(e,t,a,n,s){if(e==="<"||e==="\\lt"||e==="⟨"?e="\\langle":(e===">"||e==="\\gt"||e==="⟩")&&(e="\\rangle"),q.contains(Vr,e)||q.contains(Ur,e))return Pr(e,t,!1,a,n,s);if(q.contains(H1,e))return Gr(e,se[t],!1,a,n,s);throw new M("Illegal delimiter: '"+e+"'")},P1=[{type:"small",style:R.SCRIPTSCRIPT},{type:"small",style:R.SCRIPT},{type:"small",style:R.TEXT},{type:"large",size:1},{type:"large",size:2},{type:"large",size:3},{type:"large",size:4}],G1=[{type:"small",style:R.SCRIPTSCRIPT},{type:"small",style:R.SCRIPT},{type:"small",style:R.TEXT},{type:"stack"}],Yr=[{type:"small",style:R.SCRIPTSCRIPT},{type:"small",style:R.SCRIPT},{type:"small",style:R.TEXT},{type:"large",size:1},{type:"large",size:2},{type:"large",size:3},{type:"large",size:4},{type:"stack"}],V1=function(e){if(e.type==="small")return"Main-Regular";if(e.type==="large")return"Size"+e.size+"-Regular";if(e.type==="stack")return"Size4-Regular";throw new Error("Add support for delim type '"+e.type+"' here.")},Xr=function(e,t,a,n){for(var s=Math.min(2,3-n.style.size),o=s;ot)return a[o]}return a[a.length-1]},$r=function(e,t,a,n,s,o){e==="<"||e==="\\lt"||e==="⟨"?e="\\langle":(e===">"||e==="\\gt"||e==="⟩")&&(e="\\rangle");var h;q.contains(Ur,e)?h=P1:q.contains(Vr,e)?h=Yr:h=G1;var c=Xr(e,t,h,n);return c.type==="small"?E1(e,c.style,a,n,s,o):c.type==="large"?Pr(e,c.size,a,n,s,o):Gr(e,t,a,n,s,o)},U1=function(e,t,a,n,s,o){var h=n.fontMetrics().axisHeight*n.sizeMultiplier,c=901,p=5/n.fontMetrics().ptPerEm,g=Math.max(t-h,a+h),y=Math.max(g/500*c,2*g-p);return $r(e,y,!0,n,s,o)},D0={sqrtImage:O1,sizedDelim:L1,sizeToMaxHeight:se,customSizedDelim:$r,leftRightDelim:U1},Kt={"\\bigl":{mclass:"mopen",size:1},"\\Bigl":{mclass:"mopen",size:2},"\\biggl":{mclass:"mopen",size:3},"\\Biggl":{mclass:"mopen",size:4},"\\bigr":{mclass:"mclose",size:1},"\\Bigr":{mclass:"mclose",size:2},"\\biggr":{mclass:"mclose",size:3},"\\Biggr":{mclass:"mclose",size:4},"\\bigm":{mclass:"mrel",size:1},"\\Bigm":{mclass:"mrel",size:2},"\\biggm":{mclass:"mrel",size:3},"\\Biggm":{mclass:"mrel",size:4},"\\big":{mclass:"mord",size:1},"\\Big":{mclass:"mord",size:2},"\\bigg":{mclass:"mord",size:3},"\\Bigg":{mclass:"mord",size:4}},Y1=["(","\\lparen",")","\\rparen","[","\\lbrack","]","\\rbrack","\\{","\\lbrace","\\}","\\rbrace","\\lfloor","\\rfloor","⌊","⌋","\\lceil","\\rceil","⌈","⌉","<",">","\\langle","⟨","\\rangle","⟩","\\lt","\\gt","\\lvert","\\rvert","\\lVert","\\rVert","\\lgroup","\\rgroup","⟮","⟯","\\lmoustache","\\rmoustache","⎰","⎱","/","\\backslash","|","\\vert","\\|","\\Vert","\\uparrow","\\Uparrow","\\downarrow","\\Downarrow","\\updownarrow","\\Updownarrow","."];function Fe(r,e){var t=Re(r);if(t&&q.contains(Y1,t.text))return t;throw t?new M("Invalid delimiter '"+t.text+"' after '"+e.funcName+"'",r):new M("Invalid delimiter type '"+r.type+"'",r)}B({type:"delimsizing",names:["\\bigl","\\Bigl","\\biggl","\\Biggl","\\bigr","\\Bigr","\\biggr","\\Biggr","\\bigm","\\Bigm","\\biggm","\\Biggm","\\big","\\Big","\\bigg","\\Bigg"],props:{numArgs:1,argTypes:["primitive"]},handler:(r,e)=>{var t=Fe(e[0],r);return{type:"delimsizing",mode:r.parser.mode,size:Kt[r.funcName].size,mclass:Kt[r.funcName].mclass,delim:t.text}},htmlBuilder:(r,e)=>r.delim==="."?b.makeSpan([r.mclass]):D0.sizedDelim(r.delim,r.size,e,r.mode,[r.mclass]),mathmlBuilder:r=>{var e=[];r.delim!=="."&&e.push(v0(r.delim,r.mode));var t=new S.MathNode("mo",e);r.mclass==="mopen"||r.mclass==="mclose"?t.setAttribute("fence","true"):t.setAttribute("fence","false"),t.setAttribute("stretchy","true");var a=A(D0.sizeToMaxHeight[r.size]);return t.setAttribute("minsize",a),t.setAttribute("maxsize",a),t}});function Jt(r){if(!r.body)throw new Error("Bug: The leftright ParseNode wasn't fully parsed.")}B({type:"leftright-right",names:["\\right"],props:{numArgs:1,primitive:!0},handler:(r,e)=>{var t=r.parser.gullet.macros.get("\\current@color");if(t&&typeof t!="string")throw new M("\\current@color set to non-string in \\right");return{type:"leftright-right",mode:r.parser.mode,delim:Fe(e[0],r).text,color:t}}});B({type:"leftright",names:["\\left"],props:{numArgs:1,primitive:!0},handler:(r,e)=>{var t=Fe(e[0],r),a=r.parser;++a.leftrightDepth;var n=a.parseExpression(!1);--a.leftrightDepth,a.expect("\\right",!1);var s=H(a.parseFunction(),"leftright-right");return{type:"leftright",mode:a.mode,body:n,left:t.text,right:s.delim,rightColor:s.color}},htmlBuilder:(r,e)=>{Jt(r);for(var t=t0(r.body,e,!0,["mopen","mclose"]),a=0,n=0,s=!1,o=0;o{Jt(r);var t=o0(r.body,e);if(r.left!=="."){var a=new S.MathNode("mo",[v0(r.left,r.mode)]);a.setAttribute("fence","true"),t.unshift(a)}if(r.right!=="."){var n=new S.MathNode("mo",[v0(r.right,r.mode)]);n.setAttribute("fence","true"),r.rightColor&&n.setAttribute("mathcolor",r.rightColor),t.push(n)}return bt(t)}});B({type:"middle",names:["\\middle"],props:{numArgs:1,primitive:!0},handler:(r,e)=>{var t=Fe(e[0],r);if(!r.parser.leftrightDepth)throw new M("\\middle without preceding \\left",t);return{type:"middle",mode:r.parser.mode,delim:t.text}},htmlBuilder:(r,e)=>{var t;if(r.delim===".")t=oe(e,[]);else{t=D0.sizedDelim(r.delim,1,e,r.mode,[]);var a={delim:r.delim,options:e};t.isMiddle=a}return t},mathmlBuilder:(r,e)=>{var t=r.delim==="\\vert"||r.delim==="|"?v0("|","text"):v0(r.delim,r.mode),a=new S.MathNode("mo",[t]);return a.setAttribute("fence","true"),a.setAttribute("lspace","0.05em"),a.setAttribute("rspace","0.05em"),a}});var St=(r,e)=>{var t=b.wrapFragment(P(r.body,e),e),a=r.label.slice(1),n=e.sizeMultiplier,s,o=0,h=q.isCharacterBox(r.body);if(a==="sout")s=b.makeSpan(["stretchy","sout"]),s.height=e.fontMetrics().defaultRuleThickness/n,o=-.5*e.fontMetrics().xHeight;else if(a==="phase"){var c=K({number:.6,unit:"pt"},e),p=K({number:.35,unit:"ex"},e),g=e.havingBaseSizing();n=n/g.sizeMultiplier;var y=t.height+t.depth+c+p;t.style.paddingLeft=A(y/2+c);var w=Math.floor(1e3*y*n),x=Oa(w),z=new C0([new G0("phase",x)],{width:"400em",height:A(w/1e3),viewBox:"0 0 400000 "+w,preserveAspectRatio:"xMinYMin slice"});s=b.makeSvgSpan(["hide-tail"],[z],e),s.style.height=A(y),o=t.depth+c+p}else{/cancel/.test(a)?h||t.classes.push("cancel-pad"):a==="angl"?t.classes.push("anglpad"):t.classes.push("boxpad");var T=0,C=0,N=0;/box/.test(a)?(N=Math.max(e.fontMetrics().fboxrule,e.minRuleThickness),T=e.fontMetrics().fboxsep+(a==="colorbox"?0:N),C=T):a==="angl"?(N=Math.max(e.fontMetrics().defaultRuleThickness,e.minRuleThickness),T=4*N,C=Math.max(0,.25-t.depth)):(T=h?.2:0,C=T),s=q0.encloseSpan(t,a,T,C,e),/fbox|boxed|fcolorbox/.test(a)?(s.style.borderStyle="solid",s.style.borderWidth=A(N)):a==="angl"&&N!==.049&&(s.style.borderTopWidth=A(N),s.style.borderRightWidth=A(N)),o=t.depth+C,r.backgroundColor&&(s.style.backgroundColor=r.backgroundColor,r.borderColor&&(s.style.borderColor=r.borderColor))}var F;if(r.backgroundColor)F=b.makeVList({positionType:"individualShift",children:[{type:"elem",elem:s,shift:o},{type:"elem",elem:t,shift:0}]},e);else{var O=/cancel|phase/.test(a)?["svg-align"]:[];F=b.makeVList({positionType:"individualShift",children:[{type:"elem",elem:t,shift:0},{type:"elem",elem:s,shift:o,wrapperClasses:O}]},e)}return/cancel/.test(a)&&(F.height=t.height,F.depth=t.depth),/cancel/.test(a)&&!h?b.makeSpan(["mord","cancel-lap"],[F],e):b.makeSpan(["mord"],[F],e)},Mt=(r,e)=>{var t=0,a=new S.MathNode(r.label.indexOf("colorbox")>-1?"mpadded":"menclose",[X(r.body,e)]);switch(r.label){case"\\cancel":a.setAttribute("notation","updiagonalstrike");break;case"\\bcancel":a.setAttribute("notation","downdiagonalstrike");break;case"\\phase":a.setAttribute("notation","phasorangle");break;case"\\sout":a.setAttribute("notation","horizontalstrike");break;case"\\fbox":a.setAttribute("notation","box");break;case"\\angl":a.setAttribute("notation","actuarial");break;case"\\fcolorbox":case"\\colorbox":if(t=e.fontMetrics().fboxsep*e.fontMetrics().ptPerEm,a.setAttribute("width","+"+2*t+"pt"),a.setAttribute("height","+"+2*t+"pt"),a.setAttribute("lspace",t+"pt"),a.setAttribute("voffset",t+"pt"),r.label==="\\fcolorbox"){var n=Math.max(e.fontMetrics().fboxrule,e.minRuleThickness);a.setAttribute("style","border: "+n+"em solid "+String(r.borderColor))}break;case"\\xcancel":a.setAttribute("notation","updiagonalstrike downdiagonalstrike");break}return r.backgroundColor&&a.setAttribute("mathbackground",r.backgroundColor),a};B({type:"enclose",names:["\\colorbox"],props:{numArgs:2,allowedInText:!0,argTypes:["color","text"]},handler(r,e,t){var{parser:a,funcName:n}=r,s=H(e[0],"color-token").color,o=e[1];return{type:"enclose",mode:a.mode,label:n,backgroundColor:s,body:o}},htmlBuilder:St,mathmlBuilder:Mt});B({type:"enclose",names:["\\fcolorbox"],props:{numArgs:3,allowedInText:!0,argTypes:["color","color","text"]},handler(r,e,t){var{parser:a,funcName:n}=r,s=H(e[0],"color-token").color,o=H(e[1],"color-token").color,h=e[2];return{type:"enclose",mode:a.mode,label:n,backgroundColor:o,borderColor:s,body:h}},htmlBuilder:St,mathmlBuilder:Mt});B({type:"enclose",names:["\\fbox"],props:{numArgs:1,argTypes:["hbox"],allowedInText:!0},handler(r,e){var{parser:t}=r;return{type:"enclose",mode:t.mode,label:"\\fbox",body:e[0]}}});B({type:"enclose",names:["\\cancel","\\bcancel","\\xcancel","\\sout","\\phase"],props:{numArgs:1},handler(r,e){var{parser:t,funcName:a}=r,n=e[0];return{type:"enclose",mode:t.mode,label:a,body:n}},htmlBuilder:St,mathmlBuilder:Mt});B({type:"enclose",names:["\\angl"],props:{numArgs:1,argTypes:["hbox"],allowedInText:!1},handler(r,e){var{parser:t}=r;return{type:"enclose",mode:t.mode,label:"\\angl",body:e[0]}}});var Wr={};function k0(r){for(var{type:e,names:t,props:a,handler:n,htmlBuilder:s,mathmlBuilder:o}=r,h={type:e,numArgs:a.numArgs||0,allowedInText:!1,numOptionalArgs:0,handler:n},c=0;c{var e=r.parser.settings;if(!e.displayMode)throw new M("{"+r.envName+"} can be used only in display mode.")};function zt(r){if(r.indexOf("ed")===-1)return r.indexOf("*")===-1}function U0(r,e,t){var{hskipBeforeAndAfter:a,addJot:n,cols:s,arraystretch:o,colSeparationType:h,autoTag:c,singleRow:p,emptySingleRow:g,maxNumCols:y,leqno:w}=e;if(r.gullet.beginGroup(),p||r.gullet.macros.set("\\cr","\\\\\\relax"),!o){var x=r.gullet.expandMacroAsText("\\arraystretch");if(x==null)o=1;else if(o=parseFloat(x),!o||o<0)throw new M("Invalid \\arraystretch: "+x)}r.gullet.beginGroup();var z=[],T=[z],C=[],N=[],F=c!=null?[]:void 0;function O(){c&&r.gullet.macros.set("\\@eqnsw","1",!0)}function V(){F&&(r.gullet.macros.get("\\df@tag")?(F.push(r.subparse([new f0("\\df@tag")])),r.gullet.macros.set("\\df@tag",void 0,!0)):F.push(!!c&&r.gullet.macros.get("\\@eqnsw")==="1"))}for(O(),N.push(Qt(r));;){var L=r.parseExpression(!1,p?"\\end":"\\\\");r.gullet.endGroup(),r.gullet.beginGroup(),L={type:"ordgroup",mode:r.mode,body:L},t&&(L={type:"styling",mode:r.mode,style:t,body:[L]}),z.push(L);var U=r.fetch().text;if(U==="&"){if(y&&z.length===y){if(p||h)throw new M("Too many tab characters: &",r.nextToken);r.settings.reportNonstrict("textEnv","Too few columns specified in the {array} column argument.")}r.consume()}else if(U==="\\end"){V(),z.length===1&&L.type==="styling"&&L.body[0].body.length===0&&(T.length>1||!g)&&T.pop(),N.length0&&(O+=.25),p.push({pos:O,isDashed:fe[pe]})}for(V(o[0]),a=0;a0&&(r0+=F,Gfe))for(a=0;a=h)){var J0=void 0;(n>0||e.hskipBeforeAndAfter)&&(J0=q.deflt(c0.pregap,w),J0!==0&&(g0=b.makeSpan(["arraycolsep"],[]),g0.style.width=A(J0),s0.push(g0)));var Q0=[];for(a=0;a0){for(var ca=b.makeLineSpan("hline",t,g),da=b.makeLineSpan("hdashline",t,g),Ge=[{type:"elem",elem:c,shift:0}];p.length>0;){var Rt=p.pop(),It=Rt.pos-e0;Rt.isDashed?Ge.push({type:"elem",elem:da,shift:It}):Ge.push({type:"elem",elem:ca,shift:It})}c=b.makeVList({positionType:"individualShift",children:Ge},t)}if(j0.length===0)return b.makeSpan(["mord"],[c],t);var Ve=b.makeVList({positionType:"individualShift",children:j0},t);return Ve=b.makeSpan(["tag"],[Ve],t),b.makeFragment([c,Ve])},X1={c:"center ",l:"left ",r:"right "},M0=function(e,t){for(var a=[],n=new S.MathNode("mtd",[],["mtr-glue"]),s=new S.MathNode("mtd",[],["mml-eqn-num"]),o=0;o0){var z=e.cols,T="",C=!1,N=0,F=z.length;z[0].type==="separator"&&(w+="top ",N=1),z[z.length-1].type==="separator"&&(w+="bottom ",F-=1);for(var O=N;O0?"left ":"",w+=j[j.length-1].length>0?"right ":"";for(var Y=1;Y-1?"alignat":"align",s=e.envName==="split",o=U0(e.parser,{cols:a,addJot:!0,autoTag:s?void 0:zt(e.envName),emptySingleRow:!0,colSeparationType:n,maxNumCols:s?2:void 0,leqno:e.parser.settings.leqno},"display"),h,c=0,p={type:"ordgroup",mode:e.mode,body:[]};if(t[0]&&t[0].type==="ordgroup"){for(var g="",y=0;y0&&x&&(C=1),a[z]={type:"align",align:T,pregap:C,postgap:0}}return o.colSeparationType=x?"align":"alignat",o};k0({type:"array",names:["array","darray"],props:{numArgs:1},handler(r,e){var t=Re(e[0]),a=t?[e[0]]:H(e[0],"ordgroup").body,n=a.map(function(o){var h=xt(o),c=h.text;if("lcr".indexOf(c)!==-1)return{type:"align",align:c};if(c==="|")return{type:"separator",separator:"|"};if(c===":")return{type:"separator",separator:":"};throw new M("Unknown column alignment: "+c,o)}),s={cols:n,hskipBeforeAndAfter:!0,maxNumCols:n.length};return U0(r.parser,s,At(r.envName))},htmlBuilder:S0,mathmlBuilder:M0});k0({type:"array",names:["matrix","pmatrix","bmatrix","Bmatrix","vmatrix","Vmatrix","matrix*","pmatrix*","bmatrix*","Bmatrix*","vmatrix*","Vmatrix*"],props:{numArgs:0},handler(r){var e={matrix:null,pmatrix:["(",")"],bmatrix:["[","]"],Bmatrix:["\\{","\\}"],vmatrix:["|","|"],Vmatrix:["\\Vert","\\Vert"]}[r.envName.replace("*","")],t="c",a={hskipBeforeAndAfter:!1,cols:[{type:"align",align:t}]};if(r.envName.charAt(r.envName.length-1)==="*"){var n=r.parser;if(n.consumeSpaces(),n.fetch().text==="["){if(n.consume(),n.consumeSpaces(),t=n.fetch().text,"lcr".indexOf(t)===-1)throw new M("Expected l or c or r",n.nextToken);n.consume(),n.consumeSpaces(),n.expect("]"),n.consume(),a.cols=[{type:"align",align:t}]}}var s=U0(r.parser,a,At(r.envName)),o=Math.max(0,...s.body.map(h=>h.length));return s.cols=new Array(o).fill({type:"align",align:t}),e?{type:"leftright",mode:r.mode,body:[s],left:e[0],right:e[1],rightColor:void 0}:s},htmlBuilder:S0,mathmlBuilder:M0});k0({type:"array",names:["smallmatrix"],props:{numArgs:0},handler(r){var e={arraystretch:.5},t=U0(r.parser,e,"script");return t.colSeparationType="small",t},htmlBuilder:S0,mathmlBuilder:M0});k0({type:"array",names:["subarray"],props:{numArgs:1},handler(r,e){var t=Re(e[0]),a=t?[e[0]]:H(e[0],"ordgroup").body,n=a.map(function(o){var h=xt(o),c=h.text;if("lc".indexOf(c)!==-1)return{type:"align",align:c};throw new M("Unknown column alignment: "+c,o)});if(n.length>1)throw new M("{subarray} can contain only one column");var s={cols:n,hskipBeforeAndAfter:!1,arraystretch:.5};if(s=U0(r.parser,s,"script"),s.body.length>0&&s.body[0].length>1)throw new M("{subarray} can contain only one column");return s},htmlBuilder:S0,mathmlBuilder:M0});k0({type:"array",names:["cases","dcases","rcases","drcases"],props:{numArgs:0},handler(r){var e={arraystretch:1.2,cols:[{type:"align",align:"l",pregap:0,postgap:1},{type:"align",align:"l",pregap:0,postgap:0}]},t=U0(r.parser,e,At(r.envName));return{type:"leftright",mode:r.mode,body:[t],left:r.envName.indexOf("r")>-1?".":"\\{",right:r.envName.indexOf("r")>-1?"\\}":".",rightColor:void 0}},htmlBuilder:S0,mathmlBuilder:M0});k0({type:"array",names:["align","align*","aligned","split"],props:{numArgs:0},handler:Zr,htmlBuilder:S0,mathmlBuilder:M0});k0({type:"array",names:["gathered","gather","gather*"],props:{numArgs:0},handler(r){q.contains(["gather","gather*"],r.envName)&&Oe(r);var e={cols:[{type:"align",align:"c"}],addJot:!0,colSeparationType:"gather",autoTag:zt(r.envName),emptySingleRow:!0,leqno:r.parser.settings.leqno};return U0(r.parser,e,"display")},htmlBuilder:S0,mathmlBuilder:M0});k0({type:"array",names:["alignat","alignat*","alignedat"],props:{numArgs:1},handler:Zr,htmlBuilder:S0,mathmlBuilder:M0});k0({type:"array",names:["equation","equation*"],props:{numArgs:0},handler(r){Oe(r);var e={autoTag:zt(r.envName),emptySingleRow:!0,singleRow:!0,maxNumCols:1,leqno:r.parser.settings.leqno};return U0(r.parser,e,"display")},htmlBuilder:S0,mathmlBuilder:M0});k0({type:"array",names:["CD"],props:{numArgs:0},handler(r){return Oe(r),N1(r.parser)},htmlBuilder:S0,mathmlBuilder:M0});m("\\nonumber","\\gdef\\@eqnsw{0}");m("\\notag","\\nonumber");B({type:"text",names:["\\hline","\\hdashline"],props:{numArgs:0,allowedInText:!0,allowedInMath:!0},handler(r,e){throw new M(r.funcName+" valid only within array environment")}});var _t=Wr;B({type:"environment",names:["\\begin","\\end"],props:{numArgs:1,argTypes:["text"]},handler(r,e){var{parser:t,funcName:a}=r,n=e[0];if(n.type!=="ordgroup")throw new M("Invalid environment name",n);for(var s="",o=0;o{var t=r.font,a=e.withFont(t);return P(r.body,a)},Jr=(r,e)=>{var t=r.font,a=e.withFont(t);return X(r.body,a)},er={"\\Bbb":"\\mathbb","\\bold":"\\mathbf","\\frak":"\\mathfrak","\\bm":"\\boldsymbol"};B({type:"font",names:["\\mathrm","\\mathit","\\mathbf","\\mathnormal","\\mathsfit","\\mathbb","\\mathcal","\\mathfrak","\\mathscr","\\mathsf","\\mathtt","\\Bbb","\\bold","\\frak"],props:{numArgs:1,allowedInArgument:!0},handler:(r,e)=>{var{parser:t,funcName:a}=r,n=Ne(e[0]),s=a;return s in er&&(s=er[s]),{type:"font",mode:t.mode,font:s.slice(1),body:n}},htmlBuilder:Kr,mathmlBuilder:Jr});B({type:"mclass",names:["\\boldsymbol","\\bm"],props:{numArgs:1},handler:(r,e)=>{var{parser:t}=r,a=e[0],n=q.isCharacterBox(a);return{type:"mclass",mode:t.mode,mclass:Ie(a),body:[{type:"font",mode:t.mode,font:"boldsymbol",body:a}],isCharacterBox:n}}});B({type:"font",names:["\\rm","\\sf","\\tt","\\bf","\\it","\\cal"],props:{numArgs:0,allowedInText:!0},handler:(r,e)=>{var{parser:t,funcName:a,breakOnTokenText:n}=r,{mode:s}=t,o=t.parseExpression(!0,n),h="math"+a.slice(1);return{type:"font",mode:s,font:h,body:{type:"ordgroup",mode:t.mode,body:o}}},htmlBuilder:Kr,mathmlBuilder:Jr});var Qr=(r,e)=>{var t=e;return r==="display"?t=t.id>=R.SCRIPT.id?t.text():R.DISPLAY:r==="text"&&t.size===R.DISPLAY.size?t=R.TEXT:r==="script"?t=R.SCRIPT:r==="scriptscript"&&(t=R.SCRIPTSCRIPT),t},Tt=(r,e)=>{var t=Qr(r.size,e.style),a=t.fracNum(),n=t.fracDen(),s;s=e.havingStyle(a);var o=P(r.numer,s,e);if(r.continued){var h=8.5/e.fontMetrics().ptPerEm,c=3.5/e.fontMetrics().ptPerEm;o.height=o.height0?z=3*w:z=7*w,T=e.fontMetrics().denom1):(y>0?(x=e.fontMetrics().num2,z=w):(x=e.fontMetrics().num3,z=3*w),T=e.fontMetrics().denom2);var C;if(g){var F=e.fontMetrics().axisHeight;x-o.depth-(F+.5*y){var t=new S.MathNode("mfrac",[X(r.numer,e),X(r.denom,e)]);if(!r.hasBarLine)t.setAttribute("linethickness","0px");else if(r.barSize){var a=K(r.barSize,e);t.setAttribute("linethickness",A(a))}var n=Qr(r.size,e.style);if(n.size!==e.style.size){t=new S.MathNode("mstyle",[t]);var s=n.size===R.DISPLAY.size?"true":"false";t.setAttribute("displaystyle",s),t.setAttribute("scriptlevel","0")}if(r.leftDelim!=null||r.rightDelim!=null){var o=[];if(r.leftDelim!=null){var h=new S.MathNode("mo",[new S.TextNode(r.leftDelim.replace("\\",""))]);h.setAttribute("fence","true"),o.push(h)}if(o.push(t),r.rightDelim!=null){var c=new S.MathNode("mo",[new S.TextNode(r.rightDelim.replace("\\",""))]);c.setAttribute("fence","true"),o.push(c)}return bt(o)}return t};B({type:"genfrac",names:["\\dfrac","\\frac","\\tfrac","\\dbinom","\\binom","\\tbinom","\\\\atopfrac","\\\\bracefrac","\\\\brackfrac"],props:{numArgs:2,allowedInArgument:!0},handler:(r,e)=>{var{parser:t,funcName:a}=r,n=e[0],s=e[1],o,h=null,c=null,p="auto";switch(a){case"\\dfrac":case"\\frac":case"\\tfrac":o=!0;break;case"\\\\atopfrac":o=!1;break;case"\\dbinom":case"\\binom":case"\\tbinom":o=!1,h="(",c=")";break;case"\\\\bracefrac":o=!1,h="\\{",c="\\}";break;case"\\\\brackfrac":o=!1,h="[",c="]";break;default:throw new Error("Unrecognized genfrac command")}switch(a){case"\\dfrac":case"\\dbinom":p="display";break;case"\\tfrac":case"\\tbinom":p="text";break}return{type:"genfrac",mode:t.mode,continued:!1,numer:n,denom:s,hasBarLine:o,leftDelim:h,rightDelim:c,size:p,barSize:null}},htmlBuilder:Tt,mathmlBuilder:Bt});B({type:"genfrac",names:["\\cfrac"],props:{numArgs:2},handler:(r,e)=>{var{parser:t,funcName:a}=r,n=e[0],s=e[1];return{type:"genfrac",mode:t.mode,continued:!0,numer:n,denom:s,hasBarLine:!0,leftDelim:null,rightDelim:null,size:"display",barSize:null}}});B({type:"infix",names:["\\over","\\choose","\\atop","\\brace","\\brack"],props:{numArgs:0,infix:!0},handler(r){var{parser:e,funcName:t,token:a}=r,n;switch(t){case"\\over":n="\\frac";break;case"\\choose":n="\\binom";break;case"\\atop":n="\\\\atopfrac";break;case"\\brace":n="\\\\bracefrac";break;case"\\brack":n="\\\\brackfrac";break;default:throw new Error("Unrecognized infix genfrac command")}return{type:"infix",mode:e.mode,replaceWith:n,token:a}}});var tr=["display","text","script","scriptscript"],rr=function(e){var t=null;return e.length>0&&(t=e,t=t==="."?null:t),t};B({type:"genfrac",names:["\\genfrac"],props:{numArgs:6,allowedInArgument:!0,argTypes:["math","math","size","text","math","math"]},handler(r,e){var{parser:t}=r,a=e[4],n=e[5],s=Ne(e[0]),o=s.type==="atom"&&s.family==="open"?rr(s.text):null,h=Ne(e[1]),c=h.type==="atom"&&h.family==="close"?rr(h.text):null,p=H(e[2],"size"),g,y=null;p.isBlank?g=!0:(y=p.value,g=y.number>0);var w="auto",x=e[3];if(x.type==="ordgroup"){if(x.body.length>0){var z=H(x.body[0],"textord");w=tr[Number(z.text)]}}else x=H(x,"textord"),w=tr[Number(x.text)];return{type:"genfrac",mode:t.mode,numer:a,denom:n,continued:!1,hasBarLine:g,barSize:y,leftDelim:o,rightDelim:c,size:w}},htmlBuilder:Tt,mathmlBuilder:Bt});B({type:"infix",names:["\\above"],props:{numArgs:1,argTypes:["size"],infix:!0},handler(r,e){var{parser:t,funcName:a,token:n}=r;return{type:"infix",mode:t.mode,replaceWith:"\\\\abovefrac",size:H(e[0],"size").value,token:n}}});B({type:"genfrac",names:["\\\\abovefrac"],props:{numArgs:3,argTypes:["math","size","math"]},handler:(r,e)=>{var{parser:t,funcName:a}=r,n=e[0],s=ka(H(e[1],"infix").size),o=e[2],h=s.number>0;return{type:"genfrac",mode:t.mode,numer:n,denom:o,continued:!1,hasBarLine:h,barSize:s,leftDelim:null,rightDelim:null,size:"auto"}},htmlBuilder:Tt,mathmlBuilder:Bt});var _r=(r,e)=>{var t=e.style,a,n;r.type==="supsub"?(a=r.sup?P(r.sup,e.havingStyle(t.sup()),e):P(r.sub,e.havingStyle(t.sub()),e),n=H(r.base,"horizBrace")):n=H(r,"horizBrace");var s=P(n.base,e.havingBaseStyle(R.DISPLAY)),o=q0.svgSpan(n,e),h;if(n.isOver?(h=b.makeVList({positionType:"firstBaseline",children:[{type:"elem",elem:s},{type:"kern",size:.1},{type:"elem",elem:o}]},e),h.children[0].children[0].children[1].classes.push("svg-align")):(h=b.makeVList({positionType:"bottom",positionData:s.depth+.1+o.height,children:[{type:"elem",elem:o},{type:"kern",size:.1},{type:"elem",elem:s}]},e),h.children[0].children[0].children[0].classes.push("svg-align")),a){var c=b.makeSpan(["mord",n.isOver?"mover":"munder"],[h],e);n.isOver?h=b.makeVList({positionType:"firstBaseline",children:[{type:"elem",elem:c},{type:"kern",size:.2},{type:"elem",elem:a}]},e):h=b.makeVList({positionType:"bottom",positionData:c.depth+.2+a.height+a.depth,children:[{type:"elem",elem:a},{type:"kern",size:.2},{type:"elem",elem:c}]},e)}return b.makeSpan(["mord",n.isOver?"mover":"munder"],[h],e)},$1=(r,e)=>{var t=q0.mathMLnode(r.label);return new S.MathNode(r.isOver?"mover":"munder",[X(r.base,e),t])};B({type:"horizBrace",names:["\\overbrace","\\underbrace"],props:{numArgs:1},handler(r,e){var{parser:t,funcName:a}=r;return{type:"horizBrace",mode:t.mode,label:a,isOver:/^\\over/.test(a),base:e[0]}},htmlBuilder:_r,mathmlBuilder:$1});B({type:"href",names:["\\href"],props:{numArgs:2,argTypes:["url","original"],allowedInText:!0},handler:(r,e)=>{var{parser:t}=r,a=e[1],n=H(e[0],"url").url;return t.settings.isTrusted({command:"\\href",url:n})?{type:"href",mode:t.mode,href:n,body:Q(a)}:t.formatUnsupportedCmd("\\href")},htmlBuilder:(r,e)=>{var t=t0(r.body,e,!1);return b.makeAnchor(r.href,[],t,e)},mathmlBuilder:(r,e)=>{var t=V0(r.body,e);return t instanceof h0||(t=new h0("mrow",[t])),t.setAttribute("href",r.href),t}});B({type:"href",names:["\\url"],props:{numArgs:1,argTypes:["url"],allowedInText:!0},handler:(r,e)=>{var{parser:t}=r,a=H(e[0],"url").url;if(!t.settings.isTrusted({command:"\\url",url:a}))return t.formatUnsupportedCmd("\\url");for(var n=[],s=0;s{var{parser:t,funcName:a,token:n}=r,s=H(e[0],"raw").string,o=e[1];t.settings.strict&&t.settings.reportNonstrict("htmlExtension","HTML extension is disabled on strict mode");var h,c={};switch(a){case"\\htmlClass":c.class=s,h={command:"\\htmlClass",class:s};break;case"\\htmlId":c.id=s,h={command:"\\htmlId",id:s};break;case"\\htmlStyle":c.style=s,h={command:"\\htmlStyle",style:s};break;case"\\htmlData":{for(var p=s.split(","),g=0;g{var t=t0(r.body,e,!1),a=["enclosing"];r.attributes.class&&a.push(...r.attributes.class.trim().split(/\s+/));var n=b.makeSpan(a,t,e);for(var s in r.attributes)s!=="class"&&r.attributes.hasOwnProperty(s)&&n.setAttribute(s,r.attributes[s]);return n},mathmlBuilder:(r,e)=>V0(r.body,e)});B({type:"htmlmathml",names:["\\html@mathml"],props:{numArgs:2,allowedInText:!0},handler:(r,e)=>{var{parser:t}=r;return{type:"htmlmathml",mode:t.mode,html:Q(e[0]),mathml:Q(e[1])}},htmlBuilder:(r,e)=>{var t=t0(r.html,e,!1);return b.makeFragment(t)},mathmlBuilder:(r,e)=>V0(r.mathml,e)});var et=function(e){if(/^[-+]? *(\d+(\.\d*)?|\.\d+)$/.test(e))return{number:+e,unit:"bp"};var t=/([-+]?) *(\d+(?:\.\d*)?|\.\d+) *([a-z]{2})/.exec(e);if(!t)throw new M("Invalid size: '"+e+"' in \\includegraphics");var a={number:+(t[1]+t[2]),unit:t[3]};if(!br(a))throw new M("Invalid unit: '"+a.unit+"' in \\includegraphics.");return a};B({type:"includegraphics",names:["\\includegraphics"],props:{numArgs:1,numOptionalArgs:1,argTypes:["raw","url"],allowedInText:!1},handler:(r,e,t)=>{var{parser:a}=r,n={number:0,unit:"em"},s={number:.9,unit:"em"},o={number:0,unit:"em"},h="";if(t[0])for(var c=H(t[0],"raw").string,p=c.split(","),g=0;g{var t=K(r.height,e),a=0;r.totalheight.number>0&&(a=K(r.totalheight,e)-t);var n=0;r.width.number>0&&(n=K(r.width,e));var s={height:A(t+a)};n>0&&(s.width=A(n)),a>0&&(s.verticalAlign=A(-a));var o=new $a(r.src,r.alt,s);return o.height=t,o.depth=a,o},mathmlBuilder:(r,e)=>{var t=new S.MathNode("mglyph",[]);t.setAttribute("alt",r.alt);var a=K(r.height,e),n=0;if(r.totalheight.number>0&&(n=K(r.totalheight,e)-a,t.setAttribute("valign",A(-n))),t.setAttribute("height",A(a+n)),r.width.number>0){var s=K(r.width,e);t.setAttribute("width",A(s))}return t.setAttribute("src",r.src),t}});B({type:"kern",names:["\\kern","\\mkern","\\hskip","\\mskip"],props:{numArgs:1,argTypes:["size"],primitive:!0,allowedInText:!0},handler(r,e){var{parser:t,funcName:a}=r,n=H(e[0],"size");if(t.settings.strict){var s=a[1]==="m",o=n.value.unit==="mu";s?(o||t.settings.reportNonstrict("mathVsTextUnits","LaTeX's "+a+" supports only mu units, "+("not "+n.value.unit+" units")),t.mode!=="math"&&t.settings.reportNonstrict("mathVsTextUnits","LaTeX's "+a+" works only in math mode")):o&&t.settings.reportNonstrict("mathVsTextUnits","LaTeX's "+a+" doesn't support mu units")}return{type:"kern",mode:t.mode,dimension:n.value}},htmlBuilder(r,e){return b.makeGlue(r.dimension,e)},mathmlBuilder(r,e){var t=K(r.dimension,e);return new S.SpaceNode(t)}});B({type:"lap",names:["\\mathllap","\\mathrlap","\\mathclap"],props:{numArgs:1,allowedInText:!0},handler:(r,e)=>{var{parser:t,funcName:a}=r,n=e[0];return{type:"lap",mode:t.mode,alignment:a.slice(5),body:n}},htmlBuilder:(r,e)=>{var t;r.alignment==="clap"?(t=b.makeSpan([],[P(r.body,e)]),t=b.makeSpan(["inner"],[t],e)):t=b.makeSpan(["inner"],[P(r.body,e)]);var a=b.makeSpan(["fix"],[]),n=b.makeSpan([r.alignment],[t,a],e),s=b.makeSpan(["strut"]);return s.style.height=A(n.height+n.depth),n.depth&&(s.style.verticalAlign=A(-n.depth)),n.children.unshift(s),n=b.makeSpan(["thinbox"],[n],e),b.makeSpan(["mord","vbox"],[n],e)},mathmlBuilder:(r,e)=>{var t=new S.MathNode("mpadded",[X(r.body,e)]);if(r.alignment!=="rlap"){var a=r.alignment==="llap"?"-1":"-0.5";t.setAttribute("lspace",a+"width")}return t.setAttribute("width","0px"),t}});B({type:"styling",names:["\\(","$"],props:{numArgs:0,allowedInText:!0,allowedInMath:!1},handler(r,e){var{funcName:t,parser:a}=r,n=a.mode;a.switchMode("math");var s=t==="\\("?"\\)":"$",o=a.parseExpression(!1,s);return a.expect(s),a.switchMode(n),{type:"styling",mode:a.mode,style:"text",body:o}}});B({type:"text",names:["\\)","\\]"],props:{numArgs:0,allowedInText:!0,allowedInMath:!1},handler(r,e){throw new M("Mismatched "+r.funcName)}});var ar=(r,e)=>{switch(e.style.size){case R.DISPLAY.size:return r.display;case R.TEXT.size:return r.text;case R.SCRIPT.size:return r.script;case R.SCRIPTSCRIPT.size:return r.scriptscript;default:return r.text}};B({type:"mathchoice",names:["\\mathchoice"],props:{numArgs:4,primitive:!0},handler:(r,e)=>{var{parser:t}=r;return{type:"mathchoice",mode:t.mode,display:Q(e[0]),text:Q(e[1]),script:Q(e[2]),scriptscript:Q(e[3])}},htmlBuilder:(r,e)=>{var t=ar(r,e),a=t0(t,e,!1);return b.makeFragment(a)},mathmlBuilder:(r,e)=>{var t=ar(r,e);return V0(t,e)}});var ea=(r,e,t,a,n,s,o)=>{r=b.makeSpan([],[r]);var h=t&&q.isCharacterBox(t),c,p;if(e){var g=P(e,a.havingStyle(n.sup()),a);p={elem:g,kern:Math.max(a.fontMetrics().bigOpSpacing1,a.fontMetrics().bigOpSpacing3-g.depth)}}if(t){var y=P(t,a.havingStyle(n.sub()),a);c={elem:y,kern:Math.max(a.fontMetrics().bigOpSpacing2,a.fontMetrics().bigOpSpacing4-y.height)}}var w;if(p&&c){var x=a.fontMetrics().bigOpSpacing5+c.elem.height+c.elem.depth+c.kern+r.depth+o;w=b.makeVList({positionType:"bottom",positionData:x,children:[{type:"kern",size:a.fontMetrics().bigOpSpacing5},{type:"elem",elem:c.elem,marginLeft:A(-s)},{type:"kern",size:c.kern},{type:"elem",elem:r},{type:"kern",size:p.kern},{type:"elem",elem:p.elem,marginLeft:A(s)},{type:"kern",size:a.fontMetrics().bigOpSpacing5}]},a)}else if(c){var z=r.height-o;w=b.makeVList({positionType:"top",positionData:z,children:[{type:"kern",size:a.fontMetrics().bigOpSpacing5},{type:"elem",elem:c.elem,marginLeft:A(-s)},{type:"kern",size:c.kern},{type:"elem",elem:r}]},a)}else if(p){var T=r.depth+o;w=b.makeVList({positionType:"bottom",positionData:T,children:[{type:"elem",elem:r},{type:"kern",size:p.kern},{type:"elem",elem:p.elem,marginLeft:A(s)},{type:"kern",size:a.fontMetrics().bigOpSpacing5}]},a)}else return r;var C=[w];if(c&&s!==0&&!h){var N=b.makeSpan(["mspace"],[],a);N.style.marginRight=A(s),C.unshift(N)}return b.makeSpan(["mop","op-limits"],C,a)},ta=["\\smallint"],ae=(r,e)=>{var t,a,n=!1,s;r.type==="supsub"?(t=r.sup,a=r.sub,s=H(r.base,"op"),n=!0):s=H(r,"op");var o=e.style,h=!1;o.size===R.DISPLAY.size&&s.symbol&&!q.contains(ta,s.name)&&(h=!0);var c;if(s.symbol){var p=h?"Size2-Regular":"Size1-Regular",g="";if((s.name==="\\oiint"||s.name==="\\oiiint")&&(g=s.name.slice(1),s.name=g==="oiint"?"\\iint":"\\iiint"),c=b.makeSymbol(s.name,p,"math",e,["mop","op-symbol",h?"large-op":"small-op"]),g.length>0){var y=c.italic,w=b.staticSvg(g+"Size"+(h?"2":"1"),e);c=b.makeVList({positionType:"individualShift",children:[{type:"elem",elem:c,shift:0},{type:"elem",elem:w,shift:h?.08:0}]},e),s.name="\\"+g,c.classes.unshift("mop"),c.italic=y}}else if(s.body){var x=t0(s.body,e,!0);x.length===1&&x[0]instanceof p0?(c=x[0],c.classes[0]="mop"):c=b.makeSpan(["mop"],x,e)}else{for(var z=[],T=1;T{var t;if(r.symbol)t=new h0("mo",[v0(r.name,r.mode)]),q.contains(ta,r.name)&&t.setAttribute("largeop","false");else if(r.body)t=new h0("mo",o0(r.body,e));else{t=new h0("mi",[new w0(r.name.slice(1))]);var a=new h0("mo",[v0("⁡","text")]);r.parentIsSupSub?t=new h0("mrow",[t,a]):t=Dr([t,a])}return t},W1={"∏":"\\prod","∐":"\\coprod","∑":"\\sum","⋀":"\\bigwedge","⋁":"\\bigvee","⋂":"\\bigcap","⋃":"\\bigcup","⨀":"\\bigodot","⨁":"\\bigoplus","⨂":"\\bigotimes","⨄":"\\biguplus","⨆":"\\bigsqcup"};B({type:"op",names:["\\coprod","\\bigvee","\\bigwedge","\\biguplus","\\bigcap","\\bigcup","\\intop","\\prod","\\sum","\\bigotimes","\\bigoplus","\\bigodot","\\bigsqcup","\\smallint","∏","∐","∑","⋀","⋁","⋂","⋃","⨀","⨁","⨂","⨄","⨆"],props:{numArgs:0},handler:(r,e)=>{var{parser:t,funcName:a}=r,n=a;return n.length===1&&(n=W1[n]),{type:"op",mode:t.mode,limits:!0,parentIsSupSub:!1,symbol:!0,name:n}},htmlBuilder:ae,mathmlBuilder:me});B({type:"op",names:["\\mathop"],props:{numArgs:1,primitive:!0},handler:(r,e)=>{var{parser:t}=r,a=e[0];return{type:"op",mode:t.mode,limits:!1,parentIsSupSub:!1,symbol:!1,body:Q(a)}},htmlBuilder:ae,mathmlBuilder:me});var j1={"∫":"\\int","∬":"\\iint","∭":"\\iiint","∮":"\\oint","∯":"\\oiint","∰":"\\oiiint"};B({type:"op",names:["\\arcsin","\\arccos","\\arctan","\\arctg","\\arcctg","\\arg","\\ch","\\cos","\\cosec","\\cosh","\\cot","\\cotg","\\coth","\\csc","\\ctg","\\cth","\\deg","\\dim","\\exp","\\hom","\\ker","\\lg","\\ln","\\log","\\sec","\\sin","\\sinh","\\sh","\\tan","\\tanh","\\tg","\\th"],props:{numArgs:0},handler(r){var{parser:e,funcName:t}=r;return{type:"op",mode:e.mode,limits:!1,parentIsSupSub:!1,symbol:!1,name:t}},htmlBuilder:ae,mathmlBuilder:me});B({type:"op",names:["\\det","\\gcd","\\inf","\\lim","\\max","\\min","\\Pr","\\sup"],props:{numArgs:0},handler(r){var{parser:e,funcName:t}=r;return{type:"op",mode:e.mode,limits:!0,parentIsSupSub:!1,symbol:!1,name:t}},htmlBuilder:ae,mathmlBuilder:me});B({type:"op",names:["\\int","\\iint","\\iiint","\\oint","\\oiint","\\oiiint","∫","∬","∭","∮","∯","∰"],props:{numArgs:0},handler(r){var{parser:e,funcName:t}=r,a=t;return a.length===1&&(a=j1[a]),{type:"op",mode:e.mode,limits:!1,parentIsSupSub:!1,symbol:!0,name:a}},htmlBuilder:ae,mathmlBuilder:me});var ra=(r,e)=>{var t,a,n=!1,s;r.type==="supsub"?(t=r.sup,a=r.sub,s=H(r.base,"operatorname"),n=!0):s=H(r,"operatorname");var o;if(s.body.length>0){for(var h=s.body.map(y=>{var w=y.text;return typeof w=="string"?{type:"textord",mode:y.mode,text:w}:y}),c=t0(h,e.withFont("mathrm"),!0),p=0;p{for(var t=o0(r.body,e.withFont("mathrm")),a=!0,n=0;ng.toText()).join("");t=[new S.TextNode(h)]}var c=new S.MathNode("mi",t);c.setAttribute("mathvariant","normal");var p=new S.MathNode("mo",[v0("⁡","text")]);return r.parentIsSupSub?new S.MathNode("mrow",[c,p]):S.newDocumentFragment([c,p])};B({type:"operatorname",names:["\\operatorname@","\\operatornamewithlimits"],props:{numArgs:1},handler:(r,e)=>{var{parser:t,funcName:a}=r,n=e[0];return{type:"operatorname",mode:t.mode,body:Q(n),alwaysHandleSupSub:a==="\\operatornamewithlimits",limits:!1,parentIsSupSub:!1}},htmlBuilder:ra,mathmlBuilder:Z1});m("\\operatorname","\\@ifstar\\operatornamewithlimits\\operatorname@");W0({type:"ordgroup",htmlBuilder(r,e){return r.semisimple?b.makeFragment(t0(r.body,e,!1)):b.makeSpan(["mord"],t0(r.body,e,!0),e)},mathmlBuilder(r,e){return V0(r.body,e,!0)}});B({type:"overline",names:["\\overline"],props:{numArgs:1},handler(r,e){var{parser:t}=r,a=e[0];return{type:"overline",mode:t.mode,body:a}},htmlBuilder(r,e){var t=P(r.body,e.havingCrampedStyle()),a=b.makeLineSpan("overline-line",e),n=e.fontMetrics().defaultRuleThickness,s=b.makeVList({positionType:"firstBaseline",children:[{type:"elem",elem:t},{type:"kern",size:3*n},{type:"elem",elem:a},{type:"kern",size:n}]},e);return b.makeSpan(["mord","overline"],[s],e)},mathmlBuilder(r,e){var t=new S.MathNode("mo",[new S.TextNode("‾")]);t.setAttribute("stretchy","true");var a=new S.MathNode("mover",[X(r.body,e),t]);return a.setAttribute("accent","true"),a}});B({type:"phantom",names:["\\phantom"],props:{numArgs:1,allowedInText:!0},handler:(r,e)=>{var{parser:t}=r,a=e[0];return{type:"phantom",mode:t.mode,body:Q(a)}},htmlBuilder:(r,e)=>{var t=t0(r.body,e.withPhantom(),!1);return b.makeFragment(t)},mathmlBuilder:(r,e)=>{var t=o0(r.body,e);return new S.MathNode("mphantom",t)}});B({type:"hphantom",names:["\\hphantom"],props:{numArgs:1,allowedInText:!0},handler:(r,e)=>{var{parser:t}=r,a=e[0];return{type:"hphantom",mode:t.mode,body:a}},htmlBuilder:(r,e)=>{var t=b.makeSpan([],[P(r.body,e.withPhantom())]);if(t.height=0,t.depth=0,t.children)for(var a=0;a{var t=o0(Q(r.body),e),a=new S.MathNode("mphantom",t),n=new S.MathNode("mpadded",[a]);return n.setAttribute("height","0px"),n.setAttribute("depth","0px"),n}});B({type:"vphantom",names:["\\vphantom"],props:{numArgs:1,allowedInText:!0},handler:(r,e)=>{var{parser:t}=r,a=e[0];return{type:"vphantom",mode:t.mode,body:a}},htmlBuilder:(r,e)=>{var t=b.makeSpan(["inner"],[P(r.body,e.withPhantom())]),a=b.makeSpan(["fix"],[]);return b.makeSpan(["mord","rlap"],[t,a],e)},mathmlBuilder:(r,e)=>{var t=o0(Q(r.body),e),a=new S.MathNode("mphantom",t),n=new S.MathNode("mpadded",[a]);return n.setAttribute("width","0px"),n}});B({type:"raisebox",names:["\\raisebox"],props:{numArgs:2,argTypes:["size","hbox"],allowedInText:!0},handler(r,e){var{parser:t}=r,a=H(e[0],"size").value,n=e[1];return{type:"raisebox",mode:t.mode,dy:a,body:n}},htmlBuilder(r,e){var t=P(r.body,e),a=K(r.dy,e);return b.makeVList({positionType:"shift",positionData:-a,children:[{type:"elem",elem:t}]},e)},mathmlBuilder(r,e){var t=new S.MathNode("mpadded",[X(r.body,e)]),a=r.dy.number+r.dy.unit;return t.setAttribute("voffset",a),t}});B({type:"internal",names:["\\relax"],props:{numArgs:0,allowedInText:!0},handler(r){var{parser:e}=r;return{type:"internal",mode:e.mode}}});B({type:"rule",names:["\\rule"],props:{numArgs:2,numOptionalArgs:1,allowedInText:!0,allowedInMath:!0,argTypes:["size","size","size"]},handler(r,e,t){var{parser:a}=r,n=t[0],s=H(e[0],"size"),o=H(e[1],"size");return{type:"rule",mode:a.mode,shift:n&&H(n,"size").value,width:s.value,height:o.value}},htmlBuilder(r,e){var t=b.makeSpan(["mord","rule"],[],e),a=K(r.width,e),n=K(r.height,e),s=r.shift?K(r.shift,e):0;return t.style.borderRightWidth=A(a),t.style.borderTopWidth=A(n),t.style.bottom=A(s),t.width=a,t.height=n+s,t.depth=-s,t.maxFontSize=n*1.125*e.sizeMultiplier,t},mathmlBuilder(r,e){var t=K(r.width,e),a=K(r.height,e),n=r.shift?K(r.shift,e):0,s=e.color&&e.getColor()||"black",o=new S.MathNode("mspace");o.setAttribute("mathbackground",s),o.setAttribute("width",A(t)),o.setAttribute("height",A(a));var h=new S.MathNode("mpadded",[o]);return n>=0?h.setAttribute("height",A(n)):(h.setAttribute("height",A(n)),h.setAttribute("depth",A(-n))),h.setAttribute("voffset",A(n)),h}});function aa(r,e,t){for(var a=t0(r,e,!1),n=e.sizeMultiplier/t.sizeMultiplier,s=0;s{var t=e.havingSize(r.size);return aa(r.body,t,e)};B({type:"sizing",names:nr,props:{numArgs:0,allowedInText:!0},handler:(r,e)=>{var{breakOnTokenText:t,funcName:a,parser:n}=r,s=n.parseExpression(!1,t);return{type:"sizing",mode:n.mode,size:nr.indexOf(a)+1,body:s}},htmlBuilder:K1,mathmlBuilder:(r,e)=>{var t=e.havingSize(r.size),a=o0(r.body,t),n=new S.MathNode("mstyle",a);return n.setAttribute("mathsize",A(t.sizeMultiplier)),n}});B({type:"smash",names:["\\smash"],props:{numArgs:1,numOptionalArgs:1,allowedInText:!0},handler:(r,e,t)=>{var{parser:a}=r,n=!1,s=!1,o=t[0]&&H(t[0],"ordgroup");if(o)for(var h="",c=0;c{var t=b.makeSpan([],[P(r.body,e)]);if(!r.smashHeight&&!r.smashDepth)return t;if(r.smashHeight&&(t.height=0,t.children))for(var a=0;a{var t=new S.MathNode("mpadded",[X(r.body,e)]);return r.smashHeight&&t.setAttribute("height","0px"),r.smashDepth&&t.setAttribute("depth","0px"),t}});B({type:"sqrt",names:["\\sqrt"],props:{numArgs:1,numOptionalArgs:1},handler(r,e,t){var{parser:a}=r,n=t[0],s=e[0];return{type:"sqrt",mode:a.mode,body:s,index:n}},htmlBuilder(r,e){var t=P(r.body,e.havingCrampedStyle());t.height===0&&(t.height=e.fontMetrics().xHeight),t=b.wrapFragment(t,e);var a=e.fontMetrics(),n=a.defaultRuleThickness,s=n;e.style.idt.height+t.depth+o&&(o=(o+y-t.height-t.depth)/2);var w=c.height-t.height-o-p;t.style.paddingLeft=A(g);var x=b.makeVList({positionType:"firstBaseline",children:[{type:"elem",elem:t,wrapperClasses:["svg-align"]},{type:"kern",size:-(t.height+w)},{type:"elem",elem:c},{type:"kern",size:p}]},e);if(r.index){var z=e.havingStyle(R.SCRIPTSCRIPT),T=P(r.index,z,e),C=.6*(x.height-x.depth),N=b.makeVList({positionType:"shift",positionData:-C,children:[{type:"elem",elem:T}]},e),F=b.makeSpan(["root"],[N]);return b.makeSpan(["mord","sqrt"],[F,x],e)}else return b.makeSpan(["mord","sqrt"],[x],e)},mathmlBuilder(r,e){var{body:t,index:a}=r;return a?new S.MathNode("mroot",[X(t,e),X(a,e)]):new S.MathNode("msqrt",[X(t,e)])}});var ir={display:R.DISPLAY,text:R.TEXT,script:R.SCRIPT,scriptscript:R.SCRIPTSCRIPT};B({type:"styling",names:["\\displaystyle","\\textstyle","\\scriptstyle","\\scriptscriptstyle"],props:{numArgs:0,allowedInText:!0,primitive:!0},handler(r,e){var{breakOnTokenText:t,funcName:a,parser:n}=r,s=n.parseExpression(!0,t),o=a.slice(1,a.length-5);return{type:"styling",mode:n.mode,style:o,body:s}},htmlBuilder(r,e){var t=ir[r.style],a=e.havingStyle(t).withFont("");return aa(r.body,a,e)},mathmlBuilder(r,e){var t=ir[r.style],a=e.havingStyle(t),n=o0(r.body,a),s=new S.MathNode("mstyle",n),o={display:["0","true"],text:["0","false"],script:["1","false"],scriptscript:["2","false"]},h=o[r.style];return s.setAttribute("scriptlevel",h[0]),s.setAttribute("displaystyle",h[1]),s}});var J1=function(e,t){var a=e.base;if(a)if(a.type==="op"){var n=a.limits&&(t.style.size===R.DISPLAY.size||a.alwaysHandleSupSub);return n?ae:null}else if(a.type==="operatorname"){var s=a.alwaysHandleSupSub&&(t.style.size===R.DISPLAY.size||a.limits);return s?ra:null}else{if(a.type==="accent")return q.isCharacterBox(a.base)?wt:null;if(a.type==="horizBrace"){var o=!e.sub;return o===a.isOver?_r:null}else return null}else return null};W0({type:"supsub",htmlBuilder(r,e){var t=J1(r,e);if(t)return t(r,e);var{base:a,sup:n,sub:s}=r,o=P(a,e),h,c,p=e.fontMetrics(),g=0,y=0,w=a&&q.isCharacterBox(a);if(n){var x=e.havingStyle(e.style.sup());h=P(n,x,e),w||(g=o.height-x.fontMetrics().supDrop*x.sizeMultiplier/e.sizeMultiplier)}if(s){var z=e.havingStyle(e.style.sub());c=P(s,z,e),w||(y=o.depth+z.fontMetrics().subDrop*z.sizeMultiplier/e.sizeMultiplier)}var T;e.style===R.DISPLAY?T=p.sup1:e.style.cramped?T=p.sup3:T=p.sup2;var C=e.sizeMultiplier,N=A(.5/p.ptPerEm/C),F=null;if(c){var O=r.base&&r.base.type==="op"&&r.base.name&&(r.base.name==="\\oiint"||r.base.name==="\\oiiint");(o instanceof p0||O)&&(F=A(-o.italic))}var V;if(h&&c){g=Math.max(g,T,h.depth+.25*p.xHeight),y=Math.max(y,p.sub2);var L=p.defaultRuleThickness,U=4*L;if(g-h.depth-(c.height-y)0&&(g+=G,y-=G)}var j=[{type:"elem",elem:c,shift:y,marginRight:N,marginLeft:F},{type:"elem",elem:h,shift:-g,marginRight:N}];V=b.makeVList({positionType:"individualShift",children:j},e)}else if(c){y=Math.max(y,p.sub1,c.height-.8*p.xHeight);var Y=[{type:"elem",elem:c,marginLeft:F,marginRight:N}];V=b.makeVList({positionType:"shift",positionData:y,children:Y},e)}else if(h)g=Math.max(g,T,h.depth+.25*p.xHeight),V=b.makeVList({positionType:"shift",positionData:-g,children:[{type:"elem",elem:h,marginRight:N}]},e);else throw new Error("supsub must have either sup or sub.");var z0=ot(o,"right")||"mord";return b.makeSpan([z0],[o,b.makeSpan(["msupsub"],[V])],e)},mathmlBuilder(r,e){var t=!1,a,n;r.base&&r.base.type==="horizBrace"&&(n=!!r.sup,n===r.base.isOver&&(t=!0,a=r.base.isOver)),r.base&&(r.base.type==="op"||r.base.type==="operatorname")&&(r.base.parentIsSupSub=!0);var s=[X(r.base,e)];r.sub&&s.push(X(r.sub,e)),r.sup&&s.push(X(r.sup,e));var o;if(t)o=a?"mover":"munder";else if(r.sub)if(r.sup){var p=r.base;p&&p.type==="op"&&p.limits&&e.style===R.DISPLAY||p&&p.type==="operatorname"&&p.alwaysHandleSupSub&&(e.style===R.DISPLAY||p.limits)?o="munderover":o="msubsup"}else{var c=r.base;c&&c.type==="op"&&c.limits&&(e.style===R.DISPLAY||c.alwaysHandleSupSub)||c&&c.type==="operatorname"&&c.alwaysHandleSupSub&&(c.limits||e.style===R.DISPLAY)?o="munder":o="msub"}else{var h=r.base;h&&h.type==="op"&&h.limits&&(e.style===R.DISPLAY||h.alwaysHandleSupSub)||h&&h.type==="operatorname"&&h.alwaysHandleSupSub&&(h.limits||e.style===R.DISPLAY)?o="mover":o="msup"}return new S.MathNode(o,s)}});W0({type:"atom",htmlBuilder(r,e){return b.mathsym(r.text,r.mode,e,["m"+r.family])},mathmlBuilder(r,e){var t=new S.MathNode("mo",[v0(r.text,r.mode)]);if(r.family==="bin"){var a=yt(r,e);a==="bold-italic"&&t.setAttribute("mathvariant",a)}else r.family==="punct"?t.setAttribute("separator","true"):(r.family==="open"||r.family==="close")&&t.setAttribute("stretchy","false");return t}});var na={mi:"italic",mn:"normal",mtext:"normal"};W0({type:"mathord",htmlBuilder(r,e){return b.makeOrd(r,e,"mathord")},mathmlBuilder(r,e){var t=new S.MathNode("mi",[v0(r.text,r.mode,e)]),a=yt(r,e)||"italic";return a!==na[t.type]&&t.setAttribute("mathvariant",a),t}});W0({type:"textord",htmlBuilder(r,e){return b.makeOrd(r,e,"textord")},mathmlBuilder(r,e){var t=v0(r.text,r.mode,e),a=yt(r,e)||"normal",n;return r.mode==="text"?n=new S.MathNode("mtext",[t]):/[0-9]/.test(r.text)?n=new S.MathNode("mn",[t]):r.text==="\\prime"?n=new S.MathNode("mo",[t]):n=new S.MathNode("mi",[t]),a!==na[n.type]&&n.setAttribute("mathvariant",a),n}});var tt={"\\nobreak":"nobreak","\\allowbreak":"allowbreak"},rt={" ":{},"\\ ":{},"~":{className:"nobreak"},"\\space":{},"\\nobreakspace":{className:"nobreak"}};W0({type:"spacing",htmlBuilder(r,e){if(rt.hasOwnProperty(r.text)){var t=rt[r.text].className||"";if(r.mode==="text"){var a=b.makeOrd(r,e,"textord");return a.classes.push(t),a}else return b.makeSpan(["mspace",t],[b.mathsym(r.text,r.mode,e)],e)}else{if(tt.hasOwnProperty(r.text))return b.makeSpan(["mspace",tt[r.text]],[],e);throw new M('Unknown type of space "'+r.text+'"')}},mathmlBuilder(r,e){var t;if(rt.hasOwnProperty(r.text))t=new S.MathNode("mtext",[new S.TextNode(" ")]);else{if(tt.hasOwnProperty(r.text))return new S.MathNode("mspace");throw new M('Unknown type of space "'+r.text+'"')}return t}});var sr=()=>{var r=new S.MathNode("mtd",[]);return r.setAttribute("width","50%"),r};W0({type:"tag",mathmlBuilder(r,e){var t=new S.MathNode("mtable",[new S.MathNode("mtr",[sr(),new S.MathNode("mtd",[V0(r.body,e)]),sr(),new S.MathNode("mtd",[V0(r.tag,e)])])]);return t.setAttribute("width","100%"),t}});var lr={"\\text":void 0,"\\textrm":"textrm","\\textsf":"textsf","\\texttt":"texttt","\\textnormal":"textrm"},or={"\\textbf":"textbf","\\textmd":"textmd"},Q1={"\\textit":"textit","\\textup":"textup"},ur=(r,e)=>{var t=r.font;if(t){if(lr[t])return e.withTextFontFamily(lr[t]);if(or[t])return e.withTextFontWeight(or[t]);if(t==="\\emph")return e.fontShape==="textit"?e.withTextFontShape("textup"):e.withTextFontShape("textit")}else return e;return e.withTextFontShape(Q1[t])};B({type:"text",names:["\\text","\\textrm","\\textsf","\\texttt","\\textnormal","\\textbf","\\textmd","\\textit","\\textup","\\emph"],props:{numArgs:1,argTypes:["text"],allowedInArgument:!0,allowedInText:!0},handler(r,e){var{parser:t,funcName:a}=r,n=e[0];return{type:"text",mode:t.mode,body:Q(n),font:a}},htmlBuilder(r,e){var t=ur(r,e),a=t0(r.body,t,!0);return b.makeSpan(["mord","text"],a,t)},mathmlBuilder(r,e){var t=ur(r,e);return V0(r.body,t)}});B({type:"underline",names:["\\underline"],props:{numArgs:1,allowedInText:!0},handler(r,e){var{parser:t}=r;return{type:"underline",mode:t.mode,body:e[0]}},htmlBuilder(r,e){var t=P(r.body,e),a=b.makeLineSpan("underline-line",e),n=e.fontMetrics().defaultRuleThickness,s=b.makeVList({positionType:"top",positionData:t.height,children:[{type:"kern",size:n},{type:"elem",elem:a},{type:"kern",size:3*n},{type:"elem",elem:t}]},e);return b.makeSpan(["mord","underline"],[s],e)},mathmlBuilder(r,e){var t=new S.MathNode("mo",[new S.TextNode("‾")]);t.setAttribute("stretchy","true");var a=new S.MathNode("munder",[X(r.body,e),t]);return a.setAttribute("accentunder","true"),a}});B({type:"vcenter",names:["\\vcenter"],props:{numArgs:1,argTypes:["original"],allowedInText:!1},handler(r,e){var{parser:t}=r;return{type:"vcenter",mode:t.mode,body:e[0]}},htmlBuilder(r,e){var t=P(r.body,e),a=e.fontMetrics().axisHeight,n=.5*(t.height-a-(t.depth+a));return b.makeVList({positionType:"shift",positionData:n,children:[{type:"elem",elem:t}]},e)},mathmlBuilder(r,e){return new S.MathNode("mpadded",[X(r.body,e)],["vcenter"])}});B({type:"verb",names:["\\verb"],props:{numArgs:0,allowedInText:!0},handler(r,e,t){throw new M("\\verb ended by end of line instead of matching delimiter")},htmlBuilder(r,e){for(var t=hr(r),a=[],n=e.havingStyle(e.style.text()),s=0;sr.body.replace(/ /g,r.star?"␣":" "),L0=Tr,ia=`[ \r + ]`,_1="\\\\[a-zA-Z@]+",e4="\\\\[^\uD800-\uDFFF]",t4="("+_1+")"+ia+"*",r4=`\\\\( +|[ \r ]+ +?)[ \r ]*`,ct="[̀-ͯ]",a4=new RegExp(ct+"+$"),n4="("+ia+"+)|"+(r4+"|")+"([!-\\[\\]-‧‪-퟿豈-￿]"+(ct+"*")+"|[\uD800-\uDBFF][\uDC00-\uDFFF]"+(ct+"*")+"|\\\\verb\\*([^]).*?\\4|\\\\verb([^*a-zA-Z]).*?\\5"+("|"+t4)+("|"+e4+")");class mr{constructor(e,t){this.input=void 0,this.settings=void 0,this.tokenRegex=void 0,this.catcodes=void 0,this.input=e,this.settings=t,this.tokenRegex=new RegExp(n4,"g"),this.catcodes={"%":14,"~":13}}setCatcode(e,t){this.catcodes[e]=t}lex(){var e=this.input,t=this.tokenRegex.lastIndex;if(t===e.length)return new f0("EOF",new u0(this,t,t));var a=this.tokenRegex.exec(e);if(a===null||a.index!==t)throw new M("Unexpected character: '"+e[t]+"'",new f0(e[t],new u0(this,t,t+1)));var n=a[6]||a[3]||(a[2]?"\\ ":" ");if(this.catcodes[n]===14){var s=e.indexOf(` +`,this.tokenRegex.lastIndex);return s===-1?(this.tokenRegex.lastIndex=e.length,this.settings.reportNonstrict("commentAtEnd","% comment has no terminating newline; LaTeX would fail because of commenting the end of math mode (e.g. $)")):this.tokenRegex.lastIndex=s+1,this.lex()}return new f0(n,new u0(this,t,this.tokenRegex.lastIndex))}}class i4{constructor(e,t){e===void 0&&(e={}),t===void 0&&(t={}),this.current=void 0,this.builtins=void 0,this.undefStack=void 0,this.current=t,this.builtins=e,this.undefStack=[]}beginGroup(){this.undefStack.push({})}endGroup(){if(this.undefStack.length===0)throw new M("Unbalanced namespace destruction: attempt to pop global namespace; please report this as a bug");var e=this.undefStack.pop();for(var t in e)e.hasOwnProperty(t)&&(e[t]==null?delete this.current[t]:this.current[t]=e[t])}endGroups(){for(;this.undefStack.length>0;)this.endGroup()}has(e){return this.current.hasOwnProperty(e)||this.builtins.hasOwnProperty(e)}get(e){return this.current.hasOwnProperty(e)?this.current[e]:this.builtins[e]}set(e,t,a){if(a===void 0&&(a=!1),a){for(var n=0;n0&&(this.undefStack[this.undefStack.length-1][e]=t)}else{var s=this.undefStack[this.undefStack.length-1];s&&!s.hasOwnProperty(e)&&(s[e]=this.current[e])}t==null?delete this.current[e]:this.current[e]=t}}var s4=jr;m("\\noexpand",function(r){var e=r.popToken();return r.isExpandable(e.text)&&(e.noexpand=!0,e.treatAsRelax=!0),{tokens:[e],numArgs:0}});m("\\expandafter",function(r){var e=r.popToken();return r.expandOnce(!0),{tokens:[e],numArgs:0}});m("\\@firstoftwo",function(r){var e=r.consumeArgs(2);return{tokens:e[0],numArgs:0}});m("\\@secondoftwo",function(r){var e=r.consumeArgs(2);return{tokens:e[1],numArgs:0}});m("\\@ifnextchar",function(r){var e=r.consumeArgs(3);r.consumeSpaces();var t=r.future();return e[0].length===1&&e[0][0].text===t.text?{tokens:e[1],numArgs:0}:{tokens:e[2],numArgs:0}});m("\\@ifstar","\\@ifnextchar *{\\@firstoftwo{#1}}");m("\\TextOrMath",function(r){var e=r.consumeArgs(2);return r.mode==="text"?{tokens:e[0],numArgs:0}:{tokens:e[1],numArgs:0}});var cr={0:0,1:1,2:2,3:3,4:4,5:5,6:6,7:7,8:8,9:9,a:10,A:10,b:11,B:11,c:12,C:12,d:13,D:13,e:14,E:14,f:15,F:15};m("\\char",function(r){var e=r.popToken(),t,a="";if(e.text==="'")t=8,e=r.popToken();else if(e.text==='"')t=16,e=r.popToken();else if(e.text==="`")if(e=r.popToken(),e.text[0]==="\\")a=e.text.charCodeAt(1);else{if(e.text==="EOF")throw new M("\\char` missing argument");a=e.text.charCodeAt(0)}else t=10;if(t){if(a=cr[e.text],a==null||a>=t)throw new M("Invalid base-"+t+" digit "+e.text);for(var n;(n=cr[r.future().text])!=null&&n{var a=r.consumeArg().tokens;if(a.length!==1)throw new M("\\newcommand's first argument must be a macro name");var n=a[0].text,s=r.isDefined(n);if(s&&!e)throw new M("\\newcommand{"+n+"} attempting to redefine "+(n+"; use \\renewcommand"));if(!s&&!t)throw new M("\\renewcommand{"+n+"} when command "+n+" does not yet exist; use \\newcommand");var o=0;if(a=r.consumeArg().tokens,a.length===1&&a[0].text==="["){for(var h="",c=r.expandNextToken();c.text!=="]"&&c.text!=="EOF";)h+=c.text,c=r.expandNextToken();if(!h.match(/^\s*[0-9]+\s*$/))throw new M("Invalid number of arguments: "+h);o=parseInt(h),a=r.consumeArg().tokens}return r.macros.set(n,{tokens:a,numArgs:o}),""};m("\\newcommand",r=>Dt(r,!1,!0));m("\\renewcommand",r=>Dt(r,!0,!1));m("\\providecommand",r=>Dt(r,!0,!0));m("\\message",r=>{var e=r.consumeArgs(1)[0];return console.log(e.reverse().map(t=>t.text).join("")),""});m("\\errmessage",r=>{var e=r.consumeArgs(1)[0];return console.error(e.reverse().map(t=>t.text).join("")),""});m("\\show",r=>{var e=r.popToken(),t=e.text;return console.log(e,r.macros.get(t),L0[t],$.math[t],$.text[t]),""});m("\\bgroup","{");m("\\egroup","}");m("~","\\nobreakspace");m("\\lq","`");m("\\rq","'");m("\\aa","\\r a");m("\\AA","\\r A");m("\\textcopyright","\\html@mathml{\\textcircled{c}}{\\char`©}");m("\\copyright","\\TextOrMath{\\textcopyright}{\\text{\\textcopyright}}");m("\\textregistered","\\html@mathml{\\textcircled{\\scriptsize R}}{\\char`®}");m("ℬ","\\mathscr{B}");m("ℰ","\\mathscr{E}");m("ℱ","\\mathscr{F}");m("ℋ","\\mathscr{H}");m("ℐ","\\mathscr{I}");m("ℒ","\\mathscr{L}");m("ℳ","\\mathscr{M}");m("ℛ","\\mathscr{R}");m("ℭ","\\mathfrak{C}");m("ℌ","\\mathfrak{H}");m("ℨ","\\mathfrak{Z}");m("\\Bbbk","\\Bbb{k}");m("·","\\cdotp");m("\\llap","\\mathllap{\\textrm{#1}}");m("\\rlap","\\mathrlap{\\textrm{#1}}");m("\\clap","\\mathclap{\\textrm{#1}}");m("\\mathstrut","\\vphantom{(}");m("\\underbar","\\underline{\\text{#1}}");m("\\not",'\\html@mathml{\\mathrel{\\mathrlap\\@not}}{\\char"338}');m("\\neq","\\html@mathml{\\mathrel{\\not=}}{\\mathrel{\\char`≠}}");m("\\ne","\\neq");m("≠","\\neq");m("\\notin","\\html@mathml{\\mathrel{{\\in}\\mathllap{/\\mskip1mu}}}{\\mathrel{\\char`∉}}");m("∉","\\notin");m("≘","\\html@mathml{\\mathrel{=\\kern{-1em}\\raisebox{0.4em}{$\\scriptsize\\frown$}}}{\\mathrel{\\char`≘}}");m("≙","\\html@mathml{\\stackrel{\\tiny\\wedge}{=}}{\\mathrel{\\char`≘}}");m("≚","\\html@mathml{\\stackrel{\\tiny\\vee}{=}}{\\mathrel{\\char`≚}}");m("≛","\\html@mathml{\\stackrel{\\scriptsize\\star}{=}}{\\mathrel{\\char`≛}}");m("≝","\\html@mathml{\\stackrel{\\tiny\\mathrm{def}}{=}}{\\mathrel{\\char`≝}}");m("≞","\\html@mathml{\\stackrel{\\tiny\\mathrm{m}}{=}}{\\mathrel{\\char`≞}}");m("≟","\\html@mathml{\\stackrel{\\tiny?}{=}}{\\mathrel{\\char`≟}}");m("⟂","\\perp");m("‼","\\mathclose{!\\mkern-0.8mu!}");m("∌","\\notni");m("⌜","\\ulcorner");m("⌝","\\urcorner");m("⌞","\\llcorner");m("⌟","\\lrcorner");m("©","\\copyright");m("®","\\textregistered");m("️","\\textregistered");m("\\ulcorner",'\\html@mathml{\\@ulcorner}{\\mathop{\\char"231c}}');m("\\urcorner",'\\html@mathml{\\@urcorner}{\\mathop{\\char"231d}}');m("\\llcorner",'\\html@mathml{\\@llcorner}{\\mathop{\\char"231e}}');m("\\lrcorner",'\\html@mathml{\\@lrcorner}{\\mathop{\\char"231f}}');m("\\vdots","{\\varvdots\\rule{0pt}{15pt}}");m("⋮","\\vdots");m("\\varGamma","\\mathit{\\Gamma}");m("\\varDelta","\\mathit{\\Delta}");m("\\varTheta","\\mathit{\\Theta}");m("\\varLambda","\\mathit{\\Lambda}");m("\\varXi","\\mathit{\\Xi}");m("\\varPi","\\mathit{\\Pi}");m("\\varSigma","\\mathit{\\Sigma}");m("\\varUpsilon","\\mathit{\\Upsilon}");m("\\varPhi","\\mathit{\\Phi}");m("\\varPsi","\\mathit{\\Psi}");m("\\varOmega","\\mathit{\\Omega}");m("\\substack","\\begin{subarray}{c}#1\\end{subarray}");m("\\colon","\\nobreak\\mskip2mu\\mathpunct{}\\mathchoice{\\mkern-3mu}{\\mkern-3mu}{}{}{:}\\mskip6mu\\relax");m("\\boxed","\\fbox{$\\displaystyle{#1}$}");m("\\iff","\\DOTSB\\;\\Longleftrightarrow\\;");m("\\implies","\\DOTSB\\;\\Longrightarrow\\;");m("\\impliedby","\\DOTSB\\;\\Longleftarrow\\;");m("\\dddot","{\\overset{\\raisebox{-0.1ex}{\\normalsize ...}}{#1}}");m("\\ddddot","{\\overset{\\raisebox{-0.1ex}{\\normalsize ....}}{#1}}");var dr={",":"\\dotsc","\\not":"\\dotsb","+":"\\dotsb","=":"\\dotsb","<":"\\dotsb",">":"\\dotsb","-":"\\dotsb","*":"\\dotsb",":":"\\dotsb","\\DOTSB":"\\dotsb","\\coprod":"\\dotsb","\\bigvee":"\\dotsb","\\bigwedge":"\\dotsb","\\biguplus":"\\dotsb","\\bigcap":"\\dotsb","\\bigcup":"\\dotsb","\\prod":"\\dotsb","\\sum":"\\dotsb","\\bigotimes":"\\dotsb","\\bigoplus":"\\dotsb","\\bigodot":"\\dotsb","\\bigsqcup":"\\dotsb","\\And":"\\dotsb","\\longrightarrow":"\\dotsb","\\Longrightarrow":"\\dotsb","\\longleftarrow":"\\dotsb","\\Longleftarrow":"\\dotsb","\\longleftrightarrow":"\\dotsb","\\Longleftrightarrow":"\\dotsb","\\mapsto":"\\dotsb","\\longmapsto":"\\dotsb","\\hookrightarrow":"\\dotsb","\\doteq":"\\dotsb","\\mathbin":"\\dotsb","\\mathrel":"\\dotsb","\\relbar":"\\dotsb","\\Relbar":"\\dotsb","\\xrightarrow":"\\dotsb","\\xleftarrow":"\\dotsb","\\DOTSI":"\\dotsi","\\int":"\\dotsi","\\oint":"\\dotsi","\\iint":"\\dotsi","\\iiint":"\\dotsi","\\iiiint":"\\dotsi","\\idotsint":"\\dotsi","\\DOTSX":"\\dotsx"};m("\\dots",function(r){var e="\\dotso",t=r.expandAfterFuture().text;return t in dr?e=dr[t]:(t.slice(0,4)==="\\not"||t in $.math&&q.contains(["bin","rel"],$.math[t].group))&&(e="\\dotsb"),e});var Ct={")":!0,"]":!0,"\\rbrack":!0,"\\}":!0,"\\rbrace":!0,"\\rangle":!0,"\\rceil":!0,"\\rfloor":!0,"\\rgroup":!0,"\\rmoustache":!0,"\\right":!0,"\\bigr":!0,"\\biggr":!0,"\\Bigr":!0,"\\Biggr":!0,$:!0,";":!0,".":!0,",":!0};m("\\dotso",function(r){var e=r.future().text;return e in Ct?"\\ldots\\,":"\\ldots"});m("\\dotsc",function(r){var e=r.future().text;return e in Ct&&e!==","?"\\ldots\\,":"\\ldots"});m("\\cdots",function(r){var e=r.future().text;return e in Ct?"\\@cdots\\,":"\\@cdots"});m("\\dotsb","\\cdots");m("\\dotsm","\\cdots");m("\\dotsi","\\!\\cdots");m("\\dotsx","\\ldots\\,");m("\\DOTSI","\\relax");m("\\DOTSB","\\relax");m("\\DOTSX","\\relax");m("\\tmspace","\\TextOrMath{\\kern#1#3}{\\mskip#1#2}\\relax");m("\\,","\\tmspace+{3mu}{.1667em}");m("\\thinspace","\\,");m("\\>","\\mskip{4mu}");m("\\:","\\tmspace+{4mu}{.2222em}");m("\\medspace","\\:");m("\\;","\\tmspace+{5mu}{.2777em}");m("\\thickspace","\\;");m("\\!","\\tmspace-{3mu}{.1667em}");m("\\negthinspace","\\!");m("\\negmedspace","\\tmspace-{4mu}{.2222em}");m("\\negthickspace","\\tmspace-{5mu}{.277em}");m("\\enspace","\\kern.5em ");m("\\enskip","\\hskip.5em\\relax");m("\\quad","\\hskip1em\\relax");m("\\qquad","\\hskip2em\\relax");m("\\tag","\\@ifstar\\tag@literal\\tag@paren");m("\\tag@paren","\\tag@literal{({#1})}");m("\\tag@literal",r=>{if(r.macros.get("\\df@tag"))throw new M("Multiple \\tag");return"\\gdef\\df@tag{\\text{#1}}"});m("\\bmod","\\mathchoice{\\mskip1mu}{\\mskip1mu}{\\mskip5mu}{\\mskip5mu}\\mathbin{\\rm mod}\\mathchoice{\\mskip1mu}{\\mskip1mu}{\\mskip5mu}{\\mskip5mu}");m("\\pod","\\allowbreak\\mathchoice{\\mkern18mu}{\\mkern8mu}{\\mkern8mu}{\\mkern8mu}(#1)");m("\\pmod","\\pod{{\\rm mod}\\mkern6mu#1}");m("\\mod","\\allowbreak\\mathchoice{\\mkern18mu}{\\mkern12mu}{\\mkern12mu}{\\mkern12mu}{\\rm mod}\\,\\,#1");m("\\newline","\\\\\\relax");m("\\TeX","\\textrm{\\html@mathml{T\\kern-.1667em\\raisebox{-.5ex}{E}\\kern-.125emX}{TeX}}");var sa=A(x0["Main-Regular"][84][1]-.7*x0["Main-Regular"][65][1]);m("\\LaTeX","\\textrm{\\html@mathml{"+("L\\kern-.36em\\raisebox{"+sa+"}{\\scriptstyle A}")+"\\kern-.15em\\TeX}{LaTeX}}");m("\\KaTeX","\\textrm{\\html@mathml{"+("K\\kern-.17em\\raisebox{"+sa+"}{\\scriptstyle A}")+"\\kern-.15em\\TeX}{KaTeX}}");m("\\hspace","\\@ifstar\\@hspacer\\@hspace");m("\\@hspace","\\hskip #1\\relax");m("\\@hspacer","\\rule{0pt}{0pt}\\hskip #1\\relax");m("\\ordinarycolon",":");m("\\vcentcolon","\\mathrel{\\mathop\\ordinarycolon}");m("\\dblcolon",'\\html@mathml{\\mathrel{\\vcentcolon\\mathrel{\\mkern-.9mu}\\vcentcolon}}{\\mathop{\\char"2237}}');m("\\coloneqq",'\\html@mathml{\\mathrel{\\vcentcolon\\mathrel{\\mkern-1.2mu}=}}{\\mathop{\\char"2254}}');m("\\Coloneqq",'\\html@mathml{\\mathrel{\\dblcolon\\mathrel{\\mkern-1.2mu}=}}{\\mathop{\\char"2237\\char"3d}}');m("\\coloneq",'\\html@mathml{\\mathrel{\\vcentcolon\\mathrel{\\mkern-1.2mu}\\mathrel{-}}}{\\mathop{\\char"3a\\char"2212}}');m("\\Coloneq",'\\html@mathml{\\mathrel{\\dblcolon\\mathrel{\\mkern-1.2mu}\\mathrel{-}}}{\\mathop{\\char"2237\\char"2212}}');m("\\eqqcolon",'\\html@mathml{\\mathrel{=\\mathrel{\\mkern-1.2mu}\\vcentcolon}}{\\mathop{\\char"2255}}');m("\\Eqqcolon",'\\html@mathml{\\mathrel{=\\mathrel{\\mkern-1.2mu}\\dblcolon}}{\\mathop{\\char"3d\\char"2237}}');m("\\eqcolon",'\\html@mathml{\\mathrel{\\mathrel{-}\\mathrel{\\mkern-1.2mu}\\vcentcolon}}{\\mathop{\\char"2239}}');m("\\Eqcolon",'\\html@mathml{\\mathrel{\\mathrel{-}\\mathrel{\\mkern-1.2mu}\\dblcolon}}{\\mathop{\\char"2212\\char"2237}}');m("\\colonapprox",'\\html@mathml{\\mathrel{\\vcentcolon\\mathrel{\\mkern-1.2mu}\\approx}}{\\mathop{\\char"3a\\char"2248}}');m("\\Colonapprox",'\\html@mathml{\\mathrel{\\dblcolon\\mathrel{\\mkern-1.2mu}\\approx}}{\\mathop{\\char"2237\\char"2248}}');m("\\colonsim",'\\html@mathml{\\mathrel{\\vcentcolon\\mathrel{\\mkern-1.2mu}\\sim}}{\\mathop{\\char"3a\\char"223c}}');m("\\Colonsim",'\\html@mathml{\\mathrel{\\dblcolon\\mathrel{\\mkern-1.2mu}\\sim}}{\\mathop{\\char"2237\\char"223c}}');m("∷","\\dblcolon");m("∹","\\eqcolon");m("≔","\\coloneqq");m("≕","\\eqqcolon");m("⩴","\\Coloneqq");m("\\ratio","\\vcentcolon");m("\\coloncolon","\\dblcolon");m("\\colonequals","\\coloneqq");m("\\coloncolonequals","\\Coloneqq");m("\\equalscolon","\\eqqcolon");m("\\equalscoloncolon","\\Eqqcolon");m("\\colonminus","\\coloneq");m("\\coloncolonminus","\\Coloneq");m("\\minuscolon","\\eqcolon");m("\\minuscoloncolon","\\Eqcolon");m("\\coloncolonapprox","\\Colonapprox");m("\\coloncolonsim","\\Colonsim");m("\\simcolon","\\mathrel{\\sim\\mathrel{\\mkern-1.2mu}\\vcentcolon}");m("\\simcoloncolon","\\mathrel{\\sim\\mathrel{\\mkern-1.2mu}\\dblcolon}");m("\\approxcolon","\\mathrel{\\approx\\mathrel{\\mkern-1.2mu}\\vcentcolon}");m("\\approxcoloncolon","\\mathrel{\\approx\\mathrel{\\mkern-1.2mu}\\dblcolon}");m("\\notni","\\html@mathml{\\not\\ni}{\\mathrel{\\char`∌}}");m("\\limsup","\\DOTSB\\operatorname*{lim\\,sup}");m("\\liminf","\\DOTSB\\operatorname*{lim\\,inf}");m("\\injlim","\\DOTSB\\operatorname*{inj\\,lim}");m("\\projlim","\\DOTSB\\operatorname*{proj\\,lim}");m("\\varlimsup","\\DOTSB\\operatorname*{\\overline{lim}}");m("\\varliminf","\\DOTSB\\operatorname*{\\underline{lim}}");m("\\varinjlim","\\DOTSB\\operatorname*{\\underrightarrow{lim}}");m("\\varprojlim","\\DOTSB\\operatorname*{\\underleftarrow{lim}}");m("\\gvertneqq","\\html@mathml{\\@gvertneqq}{≩}");m("\\lvertneqq","\\html@mathml{\\@lvertneqq}{≨}");m("\\ngeqq","\\html@mathml{\\@ngeqq}{≱}");m("\\ngeqslant","\\html@mathml{\\@ngeqslant}{≱}");m("\\nleqq","\\html@mathml{\\@nleqq}{≰}");m("\\nleqslant","\\html@mathml{\\@nleqslant}{≰}");m("\\nshortmid","\\html@mathml{\\@nshortmid}{∤}");m("\\nshortparallel","\\html@mathml{\\@nshortparallel}{∦}");m("\\nsubseteqq","\\html@mathml{\\@nsubseteqq}{⊈}");m("\\nsupseteqq","\\html@mathml{\\@nsupseteqq}{⊉}");m("\\varsubsetneq","\\html@mathml{\\@varsubsetneq}{⊊}");m("\\varsubsetneqq","\\html@mathml{\\@varsubsetneqq}{⫋}");m("\\varsupsetneq","\\html@mathml{\\@varsupsetneq}{⊋}");m("\\varsupsetneqq","\\html@mathml{\\@varsupsetneqq}{⫌}");m("\\imath","\\html@mathml{\\@imath}{ı}");m("\\jmath","\\html@mathml{\\@jmath}{ȷ}");m("\\llbracket","\\html@mathml{\\mathopen{[\\mkern-3.2mu[}}{\\mathopen{\\char`⟦}}");m("\\rrbracket","\\html@mathml{\\mathclose{]\\mkern-3.2mu]}}{\\mathclose{\\char`⟧}}");m("⟦","\\llbracket");m("⟧","\\rrbracket");m("\\lBrace","\\html@mathml{\\mathopen{\\{\\mkern-3.2mu[}}{\\mathopen{\\char`⦃}}");m("\\rBrace","\\html@mathml{\\mathclose{]\\mkern-3.2mu\\}}}{\\mathclose{\\char`⦄}}");m("⦃","\\lBrace");m("⦄","\\rBrace");m("\\minuso","\\mathbin{\\html@mathml{{\\mathrlap{\\mathchoice{\\kern{0.145em}}{\\kern{0.145em}}{\\kern{0.1015em}}{\\kern{0.0725em}}\\circ}{-}}}{\\char`⦵}}");m("⦵","\\minuso");m("\\darr","\\downarrow");m("\\dArr","\\Downarrow");m("\\Darr","\\Downarrow");m("\\lang","\\langle");m("\\rang","\\rangle");m("\\uarr","\\uparrow");m("\\uArr","\\Uparrow");m("\\Uarr","\\Uparrow");m("\\N","\\mathbb{N}");m("\\R","\\mathbb{R}");m("\\Z","\\mathbb{Z}");m("\\alef","\\aleph");m("\\alefsym","\\aleph");m("\\Alpha","\\mathrm{A}");m("\\Beta","\\mathrm{B}");m("\\bull","\\bullet");m("\\Chi","\\mathrm{X}");m("\\clubs","\\clubsuit");m("\\cnums","\\mathbb{C}");m("\\Complex","\\mathbb{C}");m("\\Dagger","\\ddagger");m("\\diamonds","\\diamondsuit");m("\\empty","\\emptyset");m("\\Epsilon","\\mathrm{E}");m("\\Eta","\\mathrm{H}");m("\\exist","\\exists");m("\\harr","\\leftrightarrow");m("\\hArr","\\Leftrightarrow");m("\\Harr","\\Leftrightarrow");m("\\hearts","\\heartsuit");m("\\image","\\Im");m("\\infin","\\infty");m("\\Iota","\\mathrm{I}");m("\\isin","\\in");m("\\Kappa","\\mathrm{K}");m("\\larr","\\leftarrow");m("\\lArr","\\Leftarrow");m("\\Larr","\\Leftarrow");m("\\lrarr","\\leftrightarrow");m("\\lrArr","\\Leftrightarrow");m("\\Lrarr","\\Leftrightarrow");m("\\Mu","\\mathrm{M}");m("\\natnums","\\mathbb{N}");m("\\Nu","\\mathrm{N}");m("\\Omicron","\\mathrm{O}");m("\\plusmn","\\pm");m("\\rarr","\\rightarrow");m("\\rArr","\\Rightarrow");m("\\Rarr","\\Rightarrow");m("\\real","\\Re");m("\\reals","\\mathbb{R}");m("\\Reals","\\mathbb{R}");m("\\Rho","\\mathrm{P}");m("\\sdot","\\cdot");m("\\sect","\\S");m("\\spades","\\spadesuit");m("\\sub","\\subset");m("\\sube","\\subseteq");m("\\supe","\\supseteq");m("\\Tau","\\mathrm{T}");m("\\thetasym","\\vartheta");m("\\weierp","\\wp");m("\\Zeta","\\mathrm{Z}");m("\\argmin","\\DOTSB\\operatorname*{arg\\,min}");m("\\argmax","\\DOTSB\\operatorname*{arg\\,max}");m("\\plim","\\DOTSB\\mathop{\\operatorname{plim}}\\limits");m("\\bra","\\mathinner{\\langle{#1}|}");m("\\ket","\\mathinner{|{#1}\\rangle}");m("\\braket","\\mathinner{\\langle{#1}\\rangle}");m("\\Bra","\\left\\langle#1\\right|");m("\\Ket","\\left|#1\\right\\rangle");var la=r=>e=>{var t=e.consumeArg().tokens,a=e.consumeArg().tokens,n=e.consumeArg().tokens,s=e.consumeArg().tokens,o=e.macros.get("|"),h=e.macros.get("\\|");e.macros.beginGroup();var c=y=>w=>{r&&(w.macros.set("|",o),n.length&&w.macros.set("\\|",h));var x=y;if(!y&&n.length){var z=w.future();z.text==="|"&&(w.popToken(),x=!0)}return{tokens:x?n:a,numArgs:0}};e.macros.set("|",c(!1)),n.length&&e.macros.set("\\|",c(!0));var p=e.consumeArg().tokens,g=e.expandTokens([...s,...p,...t]);return e.macros.endGroup(),{tokens:g.reverse(),numArgs:0}};m("\\bra@ket",la(!1));m("\\bra@set",la(!0));m("\\Braket","\\bra@ket{\\left\\langle}{\\,\\middle\\vert\\,}{\\,\\middle\\vert\\,}{\\right\\rangle}");m("\\Set","\\bra@set{\\left\\{\\:}{\\;\\middle\\vert\\;}{\\;\\middle\\Vert\\;}{\\:\\right\\}}");m("\\set","\\bra@set{\\{\\,}{\\mid}{}{\\,\\}}");m("\\angln","{\\angl n}");m("\\blue","\\textcolor{##6495ed}{#1}");m("\\orange","\\textcolor{##ffa500}{#1}");m("\\pink","\\textcolor{##ff00af}{#1}");m("\\red","\\textcolor{##df0030}{#1}");m("\\green","\\textcolor{##28ae7b}{#1}");m("\\gray","\\textcolor{gray}{#1}");m("\\purple","\\textcolor{##9d38bd}{#1}");m("\\blueA","\\textcolor{##ccfaff}{#1}");m("\\blueB","\\textcolor{##80f6ff}{#1}");m("\\blueC","\\textcolor{##63d9ea}{#1}");m("\\blueD","\\textcolor{##11accd}{#1}");m("\\blueE","\\textcolor{##0c7f99}{#1}");m("\\tealA","\\textcolor{##94fff5}{#1}");m("\\tealB","\\textcolor{##26edd5}{#1}");m("\\tealC","\\textcolor{##01d1c1}{#1}");m("\\tealD","\\textcolor{##01a995}{#1}");m("\\tealE","\\textcolor{##208170}{#1}");m("\\greenA","\\textcolor{##b6ffb0}{#1}");m("\\greenB","\\textcolor{##8af281}{#1}");m("\\greenC","\\textcolor{##74cf70}{#1}");m("\\greenD","\\textcolor{##1fab54}{#1}");m("\\greenE","\\textcolor{##0d923f}{#1}");m("\\goldA","\\textcolor{##ffd0a9}{#1}");m("\\goldB","\\textcolor{##ffbb71}{#1}");m("\\goldC","\\textcolor{##ff9c39}{#1}");m("\\goldD","\\textcolor{##e07d10}{#1}");m("\\goldE","\\textcolor{##a75a05}{#1}");m("\\redA","\\textcolor{##fca9a9}{#1}");m("\\redB","\\textcolor{##ff8482}{#1}");m("\\redC","\\textcolor{##f9685d}{#1}");m("\\redD","\\textcolor{##e84d39}{#1}");m("\\redE","\\textcolor{##bc2612}{#1}");m("\\maroonA","\\textcolor{##ffbde0}{#1}");m("\\maroonB","\\textcolor{##ff92c6}{#1}");m("\\maroonC","\\textcolor{##ed5fa6}{#1}");m("\\maroonD","\\textcolor{##ca337c}{#1}");m("\\maroonE","\\textcolor{##9e034e}{#1}");m("\\purpleA","\\textcolor{##ddd7ff}{#1}");m("\\purpleB","\\textcolor{##c6b9fc}{#1}");m("\\purpleC","\\textcolor{##aa87ff}{#1}");m("\\purpleD","\\textcolor{##7854ab}{#1}");m("\\purpleE","\\textcolor{##543b78}{#1}");m("\\mintA","\\textcolor{##f5f9e8}{#1}");m("\\mintB","\\textcolor{##edf2df}{#1}");m("\\mintC","\\textcolor{##e0e5cc}{#1}");m("\\grayA","\\textcolor{##f6f7f7}{#1}");m("\\grayB","\\textcolor{##f0f1f2}{#1}");m("\\grayC","\\textcolor{##e3e5e6}{#1}");m("\\grayD","\\textcolor{##d6d8da}{#1}");m("\\grayE","\\textcolor{##babec2}{#1}");m("\\grayF","\\textcolor{##888d93}{#1}");m("\\grayG","\\textcolor{##626569}{#1}");m("\\grayH","\\textcolor{##3b3e40}{#1}");m("\\grayI","\\textcolor{##21242c}{#1}");m("\\kaBlue","\\textcolor{##314453}{#1}");m("\\kaGreen","\\textcolor{##71B307}{#1}");var oa={"^":!0,_:!0,"\\limits":!0,"\\nolimits":!0};class l4{constructor(e,t,a){this.settings=void 0,this.expansionCount=void 0,this.lexer=void 0,this.macros=void 0,this.stack=void 0,this.mode=void 0,this.settings=t,this.expansionCount=0,this.feed(e),this.macros=new i4(s4,t.macros),this.mode=a,this.stack=[]}feed(e){this.lexer=new mr(e,this.settings)}switchMode(e){this.mode=e}beginGroup(){this.macros.beginGroup()}endGroup(){this.macros.endGroup()}endGroups(){this.macros.endGroups()}future(){return this.stack.length===0&&this.pushToken(this.lexer.lex()),this.stack[this.stack.length-1]}popToken(){return this.future(),this.stack.pop()}pushToken(e){this.stack.push(e)}pushTokens(e){this.stack.push(...e)}scanArgument(e){var t,a,n;if(e){if(this.consumeSpaces(),this.future().text!=="[")return null;t=this.popToken(),{tokens:n,end:a}=this.consumeArg(["]"])}else({tokens:n,start:t,end:a}=this.consumeArg());return this.pushToken(new f0("EOF",a.loc)),this.pushTokens(n),t.range(a,"")}consumeSpaces(){for(;;){var e=this.future();if(e.text===" ")this.stack.pop();else break}}consumeArg(e){var t=[],a=e&&e.length>0;a||this.consumeSpaces();var n=this.future(),s,o=0,h=0;do{if(s=this.popToken(),t.push(s),s.text==="{")++o;else if(s.text==="}"){if(--o,o===-1)throw new M("Extra }",s)}else if(s.text==="EOF")throw new M("Unexpected end of input in a macro argument, expected '"+(e&&a?e[h]:"}")+"'",s);if(e&&a)if((o===0||o===1&&e[h]==="{")&&s.text===e[h]){if(++h,h===e.length){t.splice(-h,h);break}}else h=0}while(o!==0||a);return n.text==="{"&&t[t.length-1].text==="}"&&(t.pop(),t.shift()),t.reverse(),{tokens:t,start:n,end:s}}consumeArgs(e,t){if(t){if(t.length!==e+1)throw new M("The length of delimiters doesn't match the number of args!");for(var a=t[0],n=0;nthis.settings.maxExpand)throw new M("Too many expansions: infinite loop or need to increase maxExpand setting")}expandOnce(e){var t=this.popToken(),a=t.text,n=t.noexpand?null:this._getExpansion(a);if(n==null||e&&n.unexpandable){if(e&&n==null&&a[0]==="\\"&&!this.isDefined(a))throw new M("Undefined control sequence: "+a);return this.pushToken(t),!1}this.countExpansion(1);var s=n.tokens,o=this.consumeArgs(n.numArgs,n.delimiters);if(n.numArgs){s=s.slice();for(var h=s.length-1;h>=0;--h){var c=s[h];if(c.text==="#"){if(h===0)throw new M("Incomplete placeholder at end of macro body",c);if(c=s[--h],c.text==="#")s.splice(h+1,1);else if(/^[1-9]$/.test(c.text))s.splice(h,2,...o[+c.text-1]);else throw new M("Not a valid argument number",c)}}}return this.pushTokens(s),s.length}expandAfterFuture(){return this.expandOnce(),this.future()}expandNextToken(){for(;;)if(this.expandOnce()===!1){var e=this.stack.pop();return e.treatAsRelax&&(e.text="\\relax"),e}throw new Error}expandMacro(e){return this.macros.has(e)?this.expandTokens([new f0(e)]):void 0}expandTokens(e){var t=[],a=this.stack.length;for(this.pushTokens(e);this.stack.length>a;)if(this.expandOnce(!0)===!1){var n=this.stack.pop();n.treatAsRelax&&(n.noexpand=!1,n.treatAsRelax=!1),t.push(n)}return this.countExpansion(t.length),t}expandMacroAsText(e){var t=this.expandMacro(e);return t&&t.map(a=>a.text).join("")}_getExpansion(e){var t=this.macros.get(e);if(t==null)return t;if(e.length===1){var a=this.lexer.catcodes[e];if(a!=null&&a!==13)return}var n=typeof t=="function"?t(this):t;if(typeof n=="string"){var s=0;if(n.indexOf("#")!==-1)for(var o=n.replace(/##/g,"");o.indexOf("#"+(s+1))!==-1;)++s;for(var h=new mr(n,this.settings),c=[],p=h.lex();p.text!=="EOF";)c.push(p),p=h.lex();c.reverse();var g={tokens:c,numArgs:s};return g}return n}isDefined(e){return this.macros.has(e)||L0.hasOwnProperty(e)||$.math.hasOwnProperty(e)||$.text.hasOwnProperty(e)||oa.hasOwnProperty(e)}isExpandable(e){var t=this.macros.get(e);return t!=null?typeof t=="string"||typeof t=="function"||!t.unexpandable:L0.hasOwnProperty(e)&&!L0[e].primitive}}var fr=/^[₊₋₌₍₎₀₁₂₃₄₅₆₇₈₉ₐₑₕᵢⱼₖₗₘₙₒₚᵣₛₜᵤᵥₓᵦᵧᵨᵩᵪ]/,Me=Object.freeze({"₊":"+","₋":"-","₌":"=","₍":"(","₎":")","₀":"0","₁":"1","₂":"2","₃":"3","₄":"4","₅":"5","₆":"6","₇":"7","₈":"8","₉":"9","ₐ":"a","ₑ":"e","ₕ":"h","ᵢ":"i","ⱼ":"j","ₖ":"k","ₗ":"l","ₘ":"m","ₙ":"n","ₒ":"o","ₚ":"p","ᵣ":"r","ₛ":"s","ₜ":"t","ᵤ":"u","ᵥ":"v","ₓ":"x","ᵦ":"β","ᵧ":"γ","ᵨ":"ρ","ᵩ":"ϕ","ᵪ":"χ","⁺":"+","⁻":"-","⁼":"=","⁽":"(","⁾":")","⁰":"0","¹":"1","²":"2","³":"3","⁴":"4","⁵":"5","⁶":"6","⁷":"7","⁸":"8","⁹":"9","ᴬ":"A","ᴮ":"B","ᴰ":"D","ᴱ":"E","ᴳ":"G","ᴴ":"H","ᴵ":"I","ᴶ":"J","ᴷ":"K","ᴸ":"L","ᴹ":"M","ᴺ":"N","ᴼ":"O","ᴾ":"P","ᴿ":"R","ᵀ":"T","ᵁ":"U","ⱽ":"V","ᵂ":"W","ᵃ":"a","ᵇ":"b","ᶜ":"c","ᵈ":"d","ᵉ":"e","ᶠ":"f","ᵍ":"g",ʰ:"h","ⁱ":"i",ʲ:"j","ᵏ":"k",ˡ:"l","ᵐ":"m",ⁿ:"n","ᵒ":"o","ᵖ":"p",ʳ:"r",ˢ:"s","ᵗ":"t","ᵘ":"u","ᵛ":"v",ʷ:"w",ˣ:"x",ʸ:"y","ᶻ":"z","ᵝ":"β","ᵞ":"γ","ᵟ":"δ","ᵠ":"ϕ","ᵡ":"χ","ᶿ":"θ"}),at={"́":{text:"\\'",math:"\\acute"},"̀":{text:"\\`",math:"\\grave"},"̈":{text:'\\"',math:"\\ddot"},"̃":{text:"\\~",math:"\\tilde"},"̄":{text:"\\=",math:"\\bar"},"̆":{text:"\\u",math:"\\breve"},"̌":{text:"\\v",math:"\\check"},"̂":{text:"\\^",math:"\\hat"},"̇":{text:"\\.",math:"\\dot"},"̊":{text:"\\r",math:"\\mathring"},"̋":{text:"\\H"},"̧":{text:"\\c"}},pr={á:"á",à:"à",ä:"ä",ǟ:"ǟ",ã:"ã",ā:"ā",ă:"ă",ắ:"ắ",ằ:"ằ",ẵ:"ẵ",ǎ:"ǎ",â:"â",ấ:"ấ",ầ:"ầ",ẫ:"ẫ",ȧ:"ȧ",ǡ:"ǡ",å:"å",ǻ:"ǻ",ḃ:"ḃ",ć:"ć",ḉ:"ḉ",č:"č",ĉ:"ĉ",ċ:"ċ",ç:"ç",ď:"ď",ḋ:"ḋ",ḑ:"ḑ",é:"é",è:"è",ë:"ë",ẽ:"ẽ",ē:"ē",ḗ:"ḗ",ḕ:"ḕ",ĕ:"ĕ",ḝ:"ḝ",ě:"ě",ê:"ê",ế:"ế",ề:"ề",ễ:"ễ",ė:"ė",ȩ:"ȩ",ḟ:"ḟ",ǵ:"ǵ",ḡ:"ḡ",ğ:"ğ",ǧ:"ǧ",ĝ:"ĝ",ġ:"ġ",ģ:"ģ",ḧ:"ḧ",ȟ:"ȟ",ĥ:"ĥ",ḣ:"ḣ",ḩ:"ḩ",í:"í",ì:"ì",ï:"ï",ḯ:"ḯ",ĩ:"ĩ",ī:"ī",ĭ:"ĭ",ǐ:"ǐ",î:"î",ǰ:"ǰ",ĵ:"ĵ",ḱ:"ḱ",ǩ:"ǩ",ķ:"ķ",ĺ:"ĺ",ľ:"ľ",ļ:"ļ",ḿ:"ḿ",ṁ:"ṁ",ń:"ń",ǹ:"ǹ",ñ:"ñ",ň:"ň",ṅ:"ṅ",ņ:"ņ",ó:"ó",ò:"ò",ö:"ö",ȫ:"ȫ",õ:"õ",ṍ:"ṍ",ṏ:"ṏ",ȭ:"ȭ",ō:"ō",ṓ:"ṓ",ṑ:"ṑ",ŏ:"ŏ",ǒ:"ǒ",ô:"ô",ố:"ố",ồ:"ồ",ỗ:"ỗ",ȯ:"ȯ",ȱ:"ȱ",ő:"ő",ṕ:"ṕ",ṗ:"ṗ",ŕ:"ŕ",ř:"ř",ṙ:"ṙ",ŗ:"ŗ",ś:"ś",ṥ:"ṥ",š:"š",ṧ:"ṧ",ŝ:"ŝ",ṡ:"ṡ",ş:"ş",ẗ:"ẗ",ť:"ť",ṫ:"ṫ",ţ:"ţ",ú:"ú",ù:"ù",ü:"ü",ǘ:"ǘ",ǜ:"ǜ",ǖ:"ǖ",ǚ:"ǚ",ũ:"ũ",ṹ:"ṹ",ū:"ū",ṻ:"ṻ",ŭ:"ŭ",ǔ:"ǔ",û:"û",ů:"ů",ű:"ű",ṽ:"ṽ",ẃ:"ẃ",ẁ:"ẁ",ẅ:"ẅ",ŵ:"ŵ",ẇ:"ẇ",ẘ:"ẘ",ẍ:"ẍ",ẋ:"ẋ",ý:"ý",ỳ:"ỳ",ÿ:"ÿ",ỹ:"ỹ",ȳ:"ȳ",ŷ:"ŷ",ẏ:"ẏ",ẙ:"ẙ",ź:"ź",ž:"ž",ẑ:"ẑ",ż:"ż",Á:"Á",À:"À",Ä:"Ä",Ǟ:"Ǟ",Ã:"Ã",Ā:"Ā",Ă:"Ă",Ắ:"Ắ",Ằ:"Ằ",Ẵ:"Ẵ",Ǎ:"Ǎ",Â:"Â",Ấ:"Ấ",Ầ:"Ầ",Ẫ:"Ẫ",Ȧ:"Ȧ",Ǡ:"Ǡ",Å:"Å",Ǻ:"Ǻ",Ḃ:"Ḃ",Ć:"Ć",Ḉ:"Ḉ",Č:"Č",Ĉ:"Ĉ",Ċ:"Ċ",Ç:"Ç",Ď:"Ď",Ḋ:"Ḋ",Ḑ:"Ḑ",É:"É",È:"È",Ë:"Ë",Ẽ:"Ẽ",Ē:"Ē",Ḗ:"Ḗ",Ḕ:"Ḕ",Ĕ:"Ĕ",Ḝ:"Ḝ",Ě:"Ě",Ê:"Ê",Ế:"Ế",Ề:"Ề",Ễ:"Ễ",Ė:"Ė",Ȩ:"Ȩ",Ḟ:"Ḟ",Ǵ:"Ǵ",Ḡ:"Ḡ",Ğ:"Ğ",Ǧ:"Ǧ",Ĝ:"Ĝ",Ġ:"Ġ",Ģ:"Ģ",Ḧ:"Ḧ",Ȟ:"Ȟ",Ĥ:"Ĥ",Ḣ:"Ḣ",Ḩ:"Ḩ",Í:"Í",Ì:"Ì",Ï:"Ï",Ḯ:"Ḯ",Ĩ:"Ĩ",Ī:"Ī",Ĭ:"Ĭ",Ǐ:"Ǐ",Î:"Î",İ:"İ",Ĵ:"Ĵ",Ḱ:"Ḱ",Ǩ:"Ǩ",Ķ:"Ķ",Ĺ:"Ĺ",Ľ:"Ľ",Ļ:"Ļ",Ḿ:"Ḿ",Ṁ:"Ṁ",Ń:"Ń",Ǹ:"Ǹ",Ñ:"Ñ",Ň:"Ň",Ṅ:"Ṅ",Ņ:"Ņ",Ó:"Ó",Ò:"Ò",Ö:"Ö",Ȫ:"Ȫ",Õ:"Õ",Ṍ:"Ṍ",Ṏ:"Ṏ",Ȭ:"Ȭ",Ō:"Ō",Ṓ:"Ṓ",Ṑ:"Ṑ",Ŏ:"Ŏ",Ǒ:"Ǒ",Ô:"Ô",Ố:"Ố",Ồ:"Ồ",Ỗ:"Ỗ",Ȯ:"Ȯ",Ȱ:"Ȱ",Ő:"Ő",Ṕ:"Ṕ",Ṗ:"Ṗ",Ŕ:"Ŕ",Ř:"Ř",Ṙ:"Ṙ",Ŗ:"Ŗ",Ś:"Ś",Ṥ:"Ṥ",Š:"Š",Ṧ:"Ṧ",Ŝ:"Ŝ",Ṡ:"Ṡ",Ş:"Ş",Ť:"Ť",Ṫ:"Ṫ",Ţ:"Ţ",Ú:"Ú",Ù:"Ù",Ü:"Ü",Ǘ:"Ǘ",Ǜ:"Ǜ",Ǖ:"Ǖ",Ǚ:"Ǚ",Ũ:"Ũ",Ṹ:"Ṹ",Ū:"Ū",Ṻ:"Ṻ",Ŭ:"Ŭ",Ǔ:"Ǔ",Û:"Û",Ů:"Ů",Ű:"Ű",Ṽ:"Ṽ",Ẃ:"Ẃ",Ẁ:"Ẁ",Ẅ:"Ẅ",Ŵ:"Ŵ",Ẇ:"Ẇ",Ẍ:"Ẍ",Ẋ:"Ẋ",Ý:"Ý",Ỳ:"Ỳ",Ÿ:"Ÿ",Ỹ:"Ỹ",Ȳ:"Ȳ",Ŷ:"Ŷ",Ẏ:"Ẏ",Ź:"Ź",Ž:"Ž",Ẑ:"Ẑ",Ż:"Ż",ά:"ά",ὰ:"ὰ",ᾱ:"ᾱ",ᾰ:"ᾰ",έ:"έ",ὲ:"ὲ",ή:"ή",ὴ:"ὴ",ί:"ί",ὶ:"ὶ",ϊ:"ϊ",ΐ:"ΐ",ῒ:"ῒ",ῑ:"ῑ",ῐ:"ῐ",ό:"ό",ὸ:"ὸ",ύ:"ύ",ὺ:"ὺ",ϋ:"ϋ",ΰ:"ΰ",ῢ:"ῢ",ῡ:"ῡ",ῠ:"ῠ",ώ:"ώ",ὼ:"ὼ",Ύ:"Ύ",Ὺ:"Ὺ",Ϋ:"Ϋ",Ῡ:"Ῡ",Ῠ:"Ῠ",Ώ:"Ώ",Ὼ:"Ὼ"};class He{constructor(e,t){this.mode=void 0,this.gullet=void 0,this.settings=void 0,this.leftrightDepth=void 0,this.nextToken=void 0,this.mode="math",this.gullet=new l4(e,t,this.mode),this.settings=t,this.leftrightDepth=0}expect(e,t){if(t===void 0&&(t=!0),this.fetch().text!==e)throw new M("Expected '"+e+"', got '"+this.fetch().text+"'",this.fetch());t&&this.consume()}consume(){this.nextToken=null}fetch(){return this.nextToken==null&&(this.nextToken=this.gullet.expandNextToken()),this.nextToken}switchMode(e){this.mode=e,this.gullet.switchMode(e)}parse(){this.settings.globalGroup||this.gullet.beginGroup(),this.settings.colorIsTextColor&&this.gullet.macros.set("\\color","\\textcolor");try{var e=this.parseExpression(!1);return this.expect("EOF"),this.settings.globalGroup||this.gullet.endGroup(),e}finally{this.gullet.endGroups()}}subparse(e){var t=this.nextToken;this.consume(),this.gullet.pushToken(new f0("}")),this.gullet.pushTokens(e);var a=this.parseExpression(!1);return this.expect("}"),this.nextToken=t,a}parseExpression(e,t){for(var a=[];;){this.mode==="math"&&this.consumeSpaces();var n=this.fetch();if(He.endOfExpression.indexOf(n.text)!==-1||t&&n.text===t||e&&L0[n.text]&&L0[n.text].infix)break;var s=this.parseAtom(t);if(s){if(s.type==="internal")continue}else break;a.push(s)}return this.mode==="text"&&this.formLigatures(a),this.handleInfixNodes(a)}handleInfixNodes(e){for(var t=-1,a,n=0;n=0&&this.settings.reportNonstrict("unicodeTextInMathMode",'Latin-1/Unicode text character "'+t[0]+'" used in math mode',e);var h=$[this.mode][t].group,c=u0.range(e),p;if(Za.hasOwnProperty(h)){var g=h;p={type:"atom",mode:this.mode,family:g,loc:c,text:t}}else p={type:h,mode:this.mode,loc:c,text:t};o=p}else if(t.charCodeAt(0)>=128)this.settings.strict&&(gr(t.charCodeAt(0))?this.mode==="math"&&this.settings.reportNonstrict("unicodeTextInMathMode",'Unicode text character "'+t[0]+'" used in math mode',e):this.settings.reportNonstrict("unknownSymbol",'Unrecognized Unicode character "'+t[0]+'"'+(" ("+t.charCodeAt(0)+")"),e)),o={type:"textord",mode:"text",loc:u0.range(e),text:t};else return null;if(this.consume(),s)for(var y=0;y2?e[2]:void 0;for(i&&B(e[0],e[1],i)&&(t=1);++r-1?i[o?e[a]:a]:void 0}}var Ne=Math.max;function Le(n,e,r){var t=n==null?0:n.length;if(!t)return-1;var i=r==null?0:we(r);return i<0&&(i=Ne(t+i,0)),Un(n,L(e),i)}var Q=ye(Le);function Rn(n,e){var r=-1,t=_n(n)?Array(n.length):[];return Hn(n,function(i,o,a){t[++r]=e(i,o,a)}),t}function m(n,e){var r=K(n)?P:Rn;return r(n,L(e))}function _e(n,e){return n==null?n:ee(n,xn(e),Ln)}function Ce(n,e){return n&&En(n,xn(e))}function Ie(n,e){return n>e}function Tn(n,e){return ne||o&&a&&d&&!u&&!f||t&&a&&d||!r&&d||!i)return 1;if(!t&&!o&&!f&&n=u)return d;var f=r[t];return d*(f=="desc"?-1:1)}}return n.index-e.index}function Se(n,e,r){e.length?e=P(e,function(o){return K(o)?function(a){return yn(a,o.length===1?o[0]:o)}:o}):e=[J];var t=-1;e=P(e,ie(L));var i=Rn(n,function(o,a,u){var d=P(e,function(f){return f(o)});return{criteria:d,index:++t,value:o}});return Me(i,function(o,a){return Pe(o,a,r)})}function Fe(n,e){return Te(n,e,function(r,t){return Kn(n,t)})}var V=me(function(n,e){return n==null?{}:Fe(n,e)}),Ae=Math.ceil,Be=Math.max;function Ge(n,e,r,t){for(var i=-1,o=Be(Ae((e-n)/(r||1)),0),a=Array(o);o--;)a[++i]=n,n+=r;return a}function Ve(n){return function(e,r,t){return t&&typeof t!="number"&&B(e,r,t)&&(r=t=void 0),e=S(e),r===void 0?(r=e,e=0):r=S(r),t=t===void 0?e1&&B(n,e[0],e[1])?e=[]:r>2&&B(e[0],e[1],e[2])&&(e=[e[0]]),Se(n,gn(e),[])}),Ye=0;function en(n){var e=++Ye;return Jn(n)+e}function De(n,e,r){for(var t=-1,i=n.length,o=e.length,a={};++t0;--u)if(a=e[u].dequeue(),a){t=t.concat(q(n,e,r,a,!0));break}}}return t}function q(n,e,r,t,i){var o=i?[]:void 0;return s(n.inEdges(t.v),function(a){var u=n.edge(a),d=n.node(a.v);i&&o.push({v:a.v,w:a.w}),d.out-=u,j(e,r,d)}),s(n.outEdges(t.v),function(a){var u=n.edge(a),d=a.w,f=n.node(d);f.in-=u,j(e,r,f)}),n.removeNode(t.v),o}function He(n,e){var r=new x,t=0,i=0;s(n.nodes(),function(u){r.setNode(u,{v:u,in:0,out:0})}),s(n.edges(),function(u){var d=r.edge(u.v,u.w)||0,f=e(u),c=d+f;r.setEdge(u.v,u.w,c),i=Math.max(i,r.node(u.v).out+=f),t=Math.max(t,r.node(u.w).in+=f)});var o=N(i+t+3).map(function(){return new qe}),a=t+1;return s(r.nodes(),function(u){j(o,a,r.node(u))}),{graph:r,buckets:o,zeroIdx:a}}function j(n,e,r){r.out?r.in?n[r.out-r.in+e].enqueue(r):n[n.length-1].enqueue(r):n[0].enqueue(r)}function je(n){var e=n.graph().acyclicer==="greedy"?Xe(n,r(n)):Ke(n);s(e,function(t){var i=n.edge(t);n.removeEdge(t),i.forwardName=t.name,i.reversed=!0,n.setEdge(t.w,t.v,i,en("rev"))});function r(t){return function(i){return t.edge(i).weight}}}function Ke(n){var e=[],r={},t={};function i(o){w(t,o)||(t[o]=!0,r[o]=!0,s(n.outEdges(o),function(a){w(r,a.w)?e.push(a):i(a.w)}),delete r[o])}return s(n.nodes(),i),e}function Je(n){s(n.edges(),function(e){var r=n.edge(e);if(r.reversed){n.removeEdge(e);var t=r.forwardName;delete r.reversed,delete r.forwardName,n.setEdge(e.w,e.v,r,t)}})}function C(n,e,r,t){var i;do i=en(t);while(n.hasNode(i));return r.dummy=e,n.setNode(i,r),i}function Qe(n){var e=new x().setGraph(n.graph());return s(n.nodes(),function(r){e.setNode(r,n.node(r))}),s(n.edges(),function(r){var t=e.edge(r.v,r.w)||{weight:0,minlen:1},i=n.edge(r);e.setEdge(r.v,r.w,{weight:t.weight+i.weight,minlen:Math.max(t.minlen,i.minlen)})}),e}function Mn(n){var e=new x({multigraph:n.isMultigraph()}).setGraph(n.graph());return s(n.nodes(),function(r){n.children(r).length||e.setNode(r,n.node(r))}),s(n.edges(),function(r){e.setEdge(r,n.edge(r))}),e}function sn(n,e){var r=n.x,t=n.y,i=e.x-r,o=e.y-t,a=n.width/2,u=n.height/2;if(!i&&!o)throw new Error("Not possible to find intersection inside of the rectangle");var d,f;return Math.abs(o)*a>Math.abs(i)*u?(o<0&&(u=-u),d=u*i/o,f=u):(i<0&&(a=-a),d=a,f=a*o/i),{x:r+d,y:t+f}}function $(n){var e=m(N(On(n)+1),function(){return[]});return s(n.nodes(),function(r){var t=n.node(r),i=t.rank;g(i)||(e[i][t.order]=r)}),e}function Ze(n){var e=R(m(n.nodes(),function(r){return n.node(r).rank}));s(n.nodes(),function(r){var t=n.node(r);w(t,"rank")&&(t.rank-=e)})}function nr(n){var e=R(m(n.nodes(),function(o){return n.node(o).rank})),r=[];s(n.nodes(),function(o){var a=n.node(o).rank-e;r[a]||(r[a]=[]),r[a].push(o)});var t=0,i=n.graph().nodeRankFactor;s(r,function(o,a){g(o)&&a%i!==0?--t:t&&s(o,function(u){n.node(u).rank+=t})})}function cn(n,e,r,t){var i={width:0,height:0};return arguments.length>=4&&(i.rank=r,i.order=t),C(n,"border",i,e)}function On(n){return E(m(n.nodes(),function(e){var r=n.node(e).rank;if(!g(r))return r}))}function er(n,e){var r={lhs:[],rhs:[]};return s(n,function(t){e(t)?r.lhs.push(t):r.rhs.push(t)}),r}function rr(n,e){return e()}function tr(n){function e(r){var t=n.children(r),i=n.node(r);if(t.length&&s(t,e),w(i,"minRank")){i.borderLeft=[],i.borderRight=[];for(var o=i.minRank,a=i.maxRank+1;oa.lim&&(u=a,d=!0);var f=M(e.edges(),function(c){return d===vn(n,n.node(c.v),u)&&d!==vn(n,n.node(c.w),u)});return nn(f,function(c){return T(e,c)})}function Dn(n,e,r,t){var i=r.v,o=r.w;n.removeEdge(i,o),n.setEdge(t.v,t.w,{}),an(n),tn(n,e),br(n,e)}function br(n,e){var r=Q(n.nodes(),function(i){return!e.node(i).parent}),t=wr(n,r);t=t.slice(1),s(t,function(i){var o=n.node(i).parent,a=e.edge(i,o),u=!1;a||(a=e.edge(o,i),u=!0),e.node(i).rank=e.node(o).rank+(u?a.minlen:-a.minlen)})}function gr(n,e,r){return n.hasEdge(e,r)}function vn(n,e,r){return r.low<=e.lim&&e.lim<=r.lim}function xr(n){switch(n.graph().ranker){case"network-simplex":pn(n);break;case"tight-tree":kr(n);break;case"longest-path":Er(n);break;default:pn(n)}}var Er=rn;function kr(n){rn(n),Sn(n)}function pn(n){k(n)}function yr(n){var e=C(n,"root",{},"_root"),r=Nr(n),t=E(y(r))-1,i=2*t+1;n.graph().nestingRoot=e,s(n.edges(),function(a){n.edge(a).minlen*=i});var o=Lr(n)+1;s(n.children(),function(a){$n(n,e,i,o,t,r,a)}),n.graph().nodeRankFactor=i}function $n(n,e,r,t,i,o,a){var u=n.children(a);if(!u.length){a!==e&&n.setEdge(e,a,{weight:0,minlen:r});return}var d=cn(n,"_bt"),f=cn(n,"_bb"),c=n.node(a);n.setParent(d,a),c.borderTop=d,n.setParent(f,a),c.borderBottom=f,s(u,function(h){$n(n,e,r,t,i,o,h);var l=n.node(h),v=l.borderTop?l.borderTop:h,p=l.borderBottom?l.borderBottom:h,b=l.borderTop?t:2*t,I=v!==p?1:i-o[a]+1;n.setEdge(d,v,{weight:b,minlen:I,nestingEdge:!0}),n.setEdge(p,f,{weight:b,minlen:I,nestingEdge:!0})}),n.parent(a)||n.setEdge(e,d,{weight:0,minlen:i+o[a]})}function Nr(n){var e={};function r(t,i){var o=n.children(t);o&&o.length&&s(o,function(a){r(a,i+1)}),e[t]=i}return s(n.children(),function(t){r(t,1)}),e}function Lr(n){return Y(n.edges(),function(e,r){return e+n.edge(r).weight},0)}function _r(n){var e=n.graph();n.removeNode(e.nestingRoot),delete e.nestingRoot,s(n.edges(),function(r){var t=n.edge(r);t.nestingEdge&&n.removeEdge(r)})}function Cr(n,e,r){var t={},i;s(r,function(o){for(var a=n.parent(o),u,d;a;){if(u=n.parent(a),u?(d=t[u],t[u]=a):(d=i,i=a),d&&d!==a){e.setEdge(d,a);return}a=u}})}function Ir(n,e,r){var t=Rr(n),i=new x({compound:!0}).setGraph({root:t}).setDefaultNodeLabel(function(o){return n.node(o)});return s(n.nodes(),function(o){var a=n.node(o),u=n.parent(o);(a.rank===e||a.minRank<=e&&e<=a.maxRank)&&(i.setNode(o),i.setParent(o,u||t),s(n[r](o),function(d){var f=d.v===o?d.w:d.v,c=i.edge(f,o),h=g(c)?0:c.weight;i.setEdge(f,o,{weight:n.edge(d).weight+h})}),w(a,"minRank")&&i.setNode(o,{borderLeft:a.borderLeft[e],borderRight:a.borderRight[e]}))}),i}function Rr(n){for(var e;n.hasNode(e=en("_root")););return e}function Tr(n,e){for(var r=0,t=1;t0;)c%2&&(h+=u[c+1]),c=c-1>>1,u[c]+=f.weight;d+=f.weight*h})),d}function Or(n){var e={},r=M(n.nodes(),function(u){return!n.children(u).length}),t=E(m(r,function(u){return n.node(u).rank})),i=m(N(t+1),function(){return[]});function o(u){if(!w(e,u)){e[u]=!0;var d=n.node(u);i[d.rank].push(u),s(n.successors(u),o)}}var a=O(r,function(u){return n.node(u).rank});return s(a,o),i}function Pr(n,e){return m(e,function(r){var t=n.inEdges(r);if(t.length){var i=Y(t,function(o,a){var u=n.edge(a),d=n.node(a.v);return{sum:o.sum+u.weight*d.order,weight:o.weight+u.weight}},{sum:0,weight:0});return{v:r,barycenter:i.sum/i.weight,weight:i.weight}}else return{v:r}})}function Sr(n,e){var r={};s(n,function(i,o){var a=r[i.v]={indegree:0,in:[],out:[],vs:[i.v],i:o};g(i.barycenter)||(a.barycenter=i.barycenter,a.weight=i.weight)}),s(e.edges(),function(i){var o=r[i.v],a=r[i.w];!g(o)&&!g(a)&&(a.indegree++,o.out.push(r[i.w]))});var t=M(r,function(i){return!i.indegree});return Fr(t)}function Fr(n){var e=[];function r(o){return function(a){a.merged||(g(a.barycenter)||g(o.barycenter)||a.barycenter>=o.barycenter)&&Ar(o,a)}}function t(o){return function(a){a.in.push(o),--a.indegree===0&&n.push(a)}}for(;n.length;){var i=n.pop();e.push(i),s(i.in.reverse(),r(i)),s(i.out,t(i))}return m(M(e,function(o){return!o.merged}),function(o){return V(o,["vs","i","barycenter","weight"])})}function Ar(n,e){var r=0,t=0;n.weight&&(r+=n.barycenter*n.weight,t+=n.weight),e.weight&&(r+=e.barycenter*e.weight,t+=e.weight),n.vs=e.vs.concat(n.vs),n.barycenter=r/t,n.weight=t,n.i=Math.min(e.i,n.i),e.merged=!0}function Br(n,e){var r=er(n,function(c){return w(c,"barycenter")}),t=r.lhs,i=O(r.rhs,function(c){return-c.i}),o=[],a=0,u=0,d=0;t.sort(Gr(!!e)),d=wn(o,i,d),s(t,function(c){d+=c.vs.length,o.push(c.vs),a+=c.barycenter*c.weight,u+=c.weight,d=wn(o,i,d)});var f={vs:_(o)};return u&&(f.barycenter=a/u,f.weight=u),f}function wn(n,e,r){for(var t;e.length&&(t=G(e)).i<=r;)e.pop(),n.push(t.vs),r++;return r}function Gr(n){return function(e,r){return e.barycenterr.barycenter?1:n?r.i-e.i:e.i-r.i}}function qn(n,e,r,t){var i=n.children(e),o=n.node(e),a=o?o.borderLeft:void 0,u=o?o.borderRight:void 0,d={};a&&(i=M(i,function(p){return p!==a&&p!==u}));var f=Pr(n,i);s(f,function(p){if(n.children(p.v).length){var b=qn(n,p.v,r,t);d[p.v]=b,w(b,"barycenter")&&Yr(p,b)}});var c=Sr(f,r);Vr(c,d);var h=Br(c,t);if(a&&(h.vs=_([a,h.vs,u]),n.predecessors(a).length)){var l=n.node(n.predecessors(a)[0]),v=n.node(n.predecessors(u)[0]);w(h,"barycenter")||(h.barycenter=0,h.weight=0),h.barycenter=(h.barycenter*h.weight+l.order+v.order)/(h.weight+2),h.weight+=2}return h}function Vr(n,e){s(n,function(r){r.vs=_(r.vs.map(function(t){return e[t]?e[t].vs:t}))})}function Yr(n,e){g(n.barycenter)?(n.barycenter=e.barycenter,n.weight=e.weight):(n.barycenter=(n.barycenter*n.weight+e.barycenter*e.weight)/(n.weight+e.weight),n.weight+=e.weight)}function Dr(n){var e=On(n),r=mn(n,N(1,e+1),"inEdges"),t=mn(n,N(e-1,-1,-1),"outEdges"),i=Or(n);bn(n,i);for(var o=Number.POSITIVE_INFINITY,a,u=0,d=0;d<4;++u,++d){$r(u%2?r:t,u%4>=2),i=$(n);var f=Tr(n,i);fa||u>e[d].lim));for(f=d,d=t;(d=n.parent(d))!==f;)o.push(d);return{path:i.concat(o.reverse()),lca:f}}function zr(n){var e={},r=0;function t(i){var o=r;s(n.children(i),t),e[i]={low:o,lim:r++}}return s(n.children(),t),e}function Xr(n,e){var r={};function t(i,o){var a=0,u=0,d=i.length,f=G(o);return s(o,function(c,h){var l=Hr(n,c),v=l?n.node(l).order:d;(l||c===f)&&(s(o.slice(u,h+1),function(p){s(n.predecessors(p),function(b){var I=n.node(b),on=I.order;(onf)&&Wn(r,l,c)})})}function i(o,a){var u=-1,d,f=0;return s(a,function(c,h){if(n.node(c).dummy==="border"){var l=n.predecessors(c);l.length&&(d=n.node(l[0]).order,t(a,f,h,u,d),f=h,u=d)}t(a,f,a.length,d,o.length)}),a}return Y(e,i),r}function Hr(n,e){if(n.node(e).dummy)return Q(n.predecessors(e),function(r){return n.node(r).dummy})}function Wn(n,e,r){if(e>r){var t=e;e=r,r=t}var i=n[e];i||(n[e]=i={}),i[r]=!0}function jr(n,e,r){if(e>r){var t=e;e=r,r=t}return w(n[e],r)}function Kr(n,e,r,t){var i={},o={},a={};return s(e,function(u){s(u,function(d,f){i[d]=d,o[d]=d,a[d]=f})}),s(e,function(u){var d=-1;s(u,function(f){var c=t(f);if(c.length){c=O(c,function(b){return a[b]});for(var h=(c.length-1)/2,l=Math.floor(h),v=Math.ceil(h);l<=v;++l){var p=c[l];o[f]===f&&dt?1:n>=t?0:NaN}function hn(n,t){return n==null||t==null?NaN:tn?1:t>=n?0:NaN}function _(n){let t,e,r;n.length!==2?(t=$,e=(u,c)=>$(n(u),c),r=(u,c)=>n(u)-c):(t=n===$||n===hn?n:mn,e=n,r=n);function i(u,c,o=0,s=u.length){if(o>>1;e(u[h],c)<0?o=h+1:s=h}while(o>>1;e(u[h],c)<=0?o=h+1:s=h}while(oo&&r(u[h-1],c)>-r(u[h],c)?h-1:h}return{left:i,center:a,right:f}}function mn(){return 0}function ln(n){return n===null?NaN:+n}const sn=_($),dn=sn.right;_(ln).center;const gn=Math.sqrt(50),yn=Math.sqrt(10),Mn=Math.sqrt(2);function E(n,t,e){const r=(t-n)/Math.max(0,e),i=Math.floor(Math.log10(r)),f=r/Math.pow(10,i),a=f>=gn?10:f>=yn?5:f>=Mn?2:1;let u,c,o;return i<0?(o=Math.pow(10,-i)/a,u=Math.round(n*o),c=Math.round(t*o),u/ot&&--c,o=-o):(o=Math.pow(10,i)*a,u=Math.round(n/o),c=Math.round(t/o),u*ot&&--c),c0))return[];if(n===t)return[n];const r=t=i))return[];const u=f-i+1,c=new Array(u);if(r)if(a<0)for(let o=0;o=1e21?n.toLocaleString("en").replace(/,/g,""):n.toString(10)}function R(n,t){if((e=(n=t?n.toExponential(t-1):n.toExponential()).indexOf("e"))<0)return null;var e,r=n.slice(0,e);return[r.length>1?r[0]+r.slice(2):r,+n.slice(e+1)]}function v(n){return n=R(Math.abs(n)),n?n[1]:NaN}function jn(n,t){return function(e,r){for(var i=e.length,f=[],a=0,u=n[0],c=0;i>0&&u>0&&(c+u+1>r&&(u=Math.max(1,r-c)),f.push(e.substring(i-=u,i+u)),!((c+=u+1)>r));)u=n[a=(a+1)%n.length];return f.reverse().join(t)}}function Pn(n){return function(t){return t.replace(/[0-9]/g,function(e){return n[+e]})}}var zn=/^(?:(.)?([<>=^]))?([+\-( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i;function D(n){if(!(t=zn.exec(n)))throw new Error("invalid format: "+n);var t;return new G({fill:t[1],align:t[2],sign:t[3],symbol:t[4],zero:t[5],width:t[6],comma:t[7],precision:t[8]&&t[8].slice(1),trim:t[9],type:t[10]})}D.prototype=G.prototype;function G(n){this.fill=n.fill===void 0?" ":n.fill+"",this.align=n.align===void 0?">":n.align+"",this.sign=n.sign===void 0?"-":n.sign+"",this.symbol=n.symbol===void 0?"":n.symbol+"",this.zero=!!n.zero,this.width=n.width===void 0?void 0:+n.width,this.comma=!!n.comma,this.precision=n.precision===void 0?void 0:+n.precision,this.trim=!!n.trim,this.type=n.type===void 0?"":n.type+""}G.prototype.toString=function(){return this.fill+this.align+this.sign+this.symbol+(this.zero?"0":"")+(this.width===void 0?"":Math.max(1,this.width|0))+(this.comma?",":"")+(this.precision===void 0?"":"."+Math.max(0,this.precision|0))+(this.trim?"~":"")+this.type};function Fn(n){n:for(var t=n.length,e=1,r=-1,i;e0&&(r=0);break}return r>0?n.slice(0,r)+n.slice(i+1):n}var nn;function $n(n,t){var e=R(n,t);if(!e)return n+"";var r=e[0],i=e[1],f=i-(nn=Math.max(-8,Math.min(8,Math.floor(i/3)))*3)+1,a=r.length;return f===a?r:f>a?r+new Array(f-a+1).join("0"):f>0?r.slice(0,f)+"."+r.slice(f):"0."+new Array(1-f).join("0")+R(n,Math.max(0,t+f-1))[0]}function Z(n,t){var e=R(n,t);if(!e)return n+"";var r=e[0],i=e[1];return i<0?"0."+new Array(-i).join("0")+r:r.length>i+1?r.slice(0,i+1)+"."+r.slice(i+1):r+new Array(i-r.length+2).join("0")}const H={"%":(n,t)=>(n*100).toFixed(t),b:n=>Math.round(n).toString(2),c:n=>n+"",d:bn,e:(n,t)=>n.toExponential(t),f:(n,t)=>n.toFixed(t),g:(n,t)=>n.toPrecision(t),o:n=>Math.round(n).toString(8),p:(n,t)=>Z(n*100,t),r:Z,s:$n,X:n=>Math.round(n).toString(16).toUpperCase(),x:n=>Math.round(n).toString(16)};function J(n){return n}var K=Array.prototype.map,Q=["y","z","a","f","p","n","µ","m","","k","M","G","T","P","E","Z","Y"];function En(n){var t=n.grouping===void 0||n.thousands===void 0?J:jn(K.call(n.grouping,Number),n.thousands+""),e=n.currency===void 0?"":n.currency[0]+"",r=n.currency===void 0?"":n.currency[1]+"",i=n.decimal===void 0?".":n.decimal+"",f=n.numerals===void 0?J:Pn(K.call(n.numerals,String)),a=n.percent===void 0?"%":n.percent+"",u=n.minus===void 0?"−":n.minus+"",c=n.nan===void 0?"NaN":n.nan+"";function o(h){h=D(h);var l=h.fill,p=h.align,y=h.sign,S=h.symbol,k=h.zero,b=h.width,T=h.comma,w=h.precision,B=h.trim,d=h.type;d==="n"?(T=!0,d="g"):H[d]||(w===void 0&&(w=12),B=!0,d="g"),(k||l==="0"&&p==="=")&&(k=!0,l="0",p="=");var en=S==="$"?e:S==="#"&&/[boxX]/.test(d)?"0"+d.toLowerCase():"",on=S==="$"?r:/[%p]/.test(d)?a:"",O=H[d],an=/[defgprs%]/.test(d);w=w===void 0?6:/[gprs]/.test(d)?Math.max(1,Math.min(21,w)):Math.max(0,Math.min(20,w));function V(m){var N=en,g=on,x,X,j;if(d==="c")g=O(m)+g,m="";else{m=+m;var P=m<0||1/m<0;if(m=isNaN(m)?c:O(Math.abs(m),w),B&&(m=Fn(m)),P&&+m==0&&y!=="+"&&(P=!1),N=(P?y==="("?y:u:y==="-"||y==="("?"":y)+N,g=(d==="s"?Q[8+nn/3]:"")+g+(P&&y==="("?")":""),an){for(x=-1,X=m.length;++xj||j>57){g=(j===46?i+m.slice(x+1):m.slice(x))+g,m=m.slice(0,x);break}}}T&&!k&&(m=t(m,1/0));var z=N.length+m.length+g.length,M=z>1)+N+m+g+M.slice(z);break;default:m=M+N+m+g;break}return f(m)}return V.toString=function(){return h+""},V}function s(h,l){var p=o((h=D(h),h.type="f",h)),y=Math.max(-8,Math.min(8,Math.floor(v(l)/3)))*3,S=Math.pow(10,-y),k=Q[8+y/3];return function(b){return p(S*b)+k}}return{format:o,formatPrefix:s}}var F,tn,rn;Rn({thousands:",",grouping:[3],currency:["$",""]});function Rn(n){return F=En(n),tn=F.format,rn=F.formatPrefix,F}function Dn(n){return Math.max(0,-v(Math.abs(n)))}function Tn(n,t){return Math.max(0,Math.max(-8,Math.min(8,Math.floor(v(t)/3)))*3-v(Math.abs(n)))}function Cn(n,t){return n=Math.abs(n),t=Math.abs(t)-n,Math.max(0,v(t)-v(n))+1}function In(n){return function(){return n}}function Ln(n){return+n}var W=[0,1];function A(n){return n}function L(n,t){return(t-=n=+n)?function(e){return(e-n)/t}:In(isNaN(t)?NaN:.5)}function qn(n,t){var e;return n>t&&(e=n,n=t,t=e),function(r){return Math.max(n,Math.min(t,r))}}function Gn(n,t,e){var r=n[0],i=n[1],f=t[0],a=t[1];return i2?Bn:Gn,c=o=null,h}function h(l){return l==null||isNaN(l=+l)?f:(c||(c=u(n.map(r),t,e)))(r(a(l)))}return h.invert=function(l){return a(i((o||(o=u(t,n.map(r),C)))(l)))},h.domain=function(l){return arguments.length?(n=Array.from(l,Ln),s()):n.slice()},h.range=function(l){return arguments.length?(t=Array.from(l),s()):t.slice()},h.rangeRound=function(l){return t=Array.from(l),e=Sn,s()},h.clamp=function(l){return arguments.length?(a=l?!0:A,s()):a!==A},h.interpolate=function(l){return arguments.length?(e=l,s()):e},h.unknown=function(l){return arguments.length?(f=l,h):f},function(l,p){return r=l,i=p,s()}}function Xn(){return Vn()(A,A)}function Un(n,t,e,r){var i=wn(n,t,e),f;switch(r=D(r??",f"),r.type){case"s":{var a=Math.max(Math.abs(n),Math.abs(t));return r.precision==null&&!isNaN(f=Tn(i,a))&&(r.precision=f),rn(r,a)}case"":case"e":case"g":case"p":case"r":{r.precision==null&&!isNaN(f=Cn(i,Math.max(Math.abs(n),Math.abs(t))))&&(r.precision=f-(r.type==="e"));break}case"f":case"%":{r.precision==null&&!isNaN(f=Dn(i))&&(r.precision=f-(r.type==="%")*2);break}}return tn(r)}function Yn(n){var t=n.domain;return n.ticks=function(e){var r=t();return pn(r[0],r[r.length-1],e??10)},n.tickFormat=function(e,r){var i=t();return Un(i[0],i[i.length-1],e??10,r)},n.nice=function(e){e==null&&(e=10);var r=t(),i=0,f=r.length-1,a=r[i],u=r[f],c,o,s=10;for(u0;){if(o=I(a,u,e),o===c)return r[i]=a,r[f]=u,t(r);if(o>0)a=Math.floor(a/o)*o,u=Math.ceil(u/o)*o;else if(o<0)a=Math.ceil(a*o)/o,u=Math.floor(u*o)/o;else break;c=o}return n},n}function Zn(){var n=Xn();return n.copy=function(){return On(n,Zn())},cn.apply(n,arguments),Yn(n)}export{On as a,_ as b,Xn as c,Zn as l,wn as t}; diff --git a/assets/mermaid.core-B_tqKmhs.js b/assets/mermaid.core-B_tqKmhs.js new file mode 100644 index 00000000..ce260e45 --- /dev/null +++ b/assets/mermaid.core-B_tqKmhs.js @@ -0,0 +1,91 @@ +const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/c4Diagram-3d4e48cf-DdPIZlGU.js","assets/svgDrawCommon-08f97a94-Dr3rJKJn.js","assets/index-Be9IN4QR.js","assets/index-CZLSIS4C.css","assets/flowDiagram-66a62f08-Dx8iOe0_.js","assets/flowDb-956e92f1-BNSiZQGL.js","assets/graph-Es7S6dYR.js","assets/layout-Cjy8fVPY.js","assets/styles-c10674c1-B6ZOCMWN.js","assets/index-3862675e-BNucB7R-.js","assets/clone-WSVs8Prh.js","assets/edges-e0da2a9e-CFrRRtuw.js","assets/createText-2e5e7dd3-CtNqJc9Q.js","assets/line-CC-POSaO.js","assets/array-BKyUJesY.js","assets/path-CbwjOpE9.js","assets/channel-nQRcXLRS.js","assets/flowDiagram-v2-96b9c2cf-CxrnYKIo.js","assets/erDiagram-9861fffd-IEVO5HKD.js","assets/gitGraphDiagram-72cf32ee-WEL1-h6_.js","assets/ganttDiagram-c361ad54-DAUMiWli.js","assets/linear-Du8N0-WX.js","assets/init-Gi6I4Gst.js","assets/infoDiagram-f8f76790-DDADd7By.js","assets/pieDiagram-8a3498a8-DxB0-Bo0.js","assets/arc-DLmlFMgC.js","assets/ordinal-Cboi1Yqb.js","assets/quadrantDiagram-120e2f19-DXc7CzOL.js","assets/xychartDiagram-e933f94c-DcDvCfus.js","assets/requirementDiagram-deff3bca-DtT00n4w.js","assets/sequenceDiagram-704730f1-Bf_KtpsE.js","assets/classDiagram-70f12bd4-CxVN6dqg.js","assets/styles-9a916d00-BOnhL2df.js","assets/classDiagram-v2-f2320105-sxYuC2Nh.js","assets/stateDiagram-587899a1-0572nodG.js","assets/styles-6aaf32cf-DpMs8-PK.js","assets/stateDiagram-v2-d93cdb3a-Bk-Y7fy9.js","assets/journeyDiagram-49397b02-DyGjNBW-.js","assets/flowchart-elk-definition-4a651766-BEXfWFi4.js","assets/timeline-definition-85554ec2-CU0quQnj.js","assets/mindmap-definition-fc14e90a-OwahSOpH.js","assets/sankeyDiagram-04a897e0-KBmVLHBz.js","assets/Tableau10-B-NsZVaP.js","assets/blockDiagram-38ab4fdb-PSSimswN.js"])))=>i.map(i=>d[i]); +import{c as yh,g as Ch,_ as K}from"./index-Be9IN4QR.js";function xh(t){for(var e=[],i=1;i=T?M:""+Array(T+1-w.length).join(y)+M},N={s:U,z:function(M){var T=-M.utcOffset(),y=Math.abs(T),w=Math.floor(y/60),x=y%60;return(T<=0?"+":"-")+U(w,2,"0")+":"+U(x,2,"0")},m:function M(T,y){if(T.date()1)return M(D[0])}else{var $=T.name;G[$]=T,x=$}return!w&&x&&(j=x),x||!w&&j},Z=function(M,T){if(Jt(M))return M.clone();var y=typeof T=="object"?T:{};return y.date=M,y.args=arguments,new St(y)},R=N;R.l=Qt,R.i=Jt,R.w=function(M,T){return Z(M,{locale:T.$L,utc:T.$u,x:T.$x,$offset:T.$offset})};var St=function(){function M(y){this.$L=Qt(y.locale,null,!0),this.parse(y),this.$x=this.$x||y.x||{},this[W]=!0}var T=M.prototype;return T.parse=function(y){this.$d=function(w){var x=w.date,F=w.utc;if(x===null)return new Date(NaN);if(R.u(x))return new Date;if(x instanceof Date)return new Date(x);if(typeof x=="string"&&!/Z$/i.test(x)){var D=x.match(k);if(D){var $=D[2]-1||0,X=(D[7]||"0").substring(0,3);return F?new Date(Date.UTC(D[1],$,D[3]||1,D[4]||0,D[5]||0,D[6]||0,X)):new Date(D[1],$,D[3]||1,D[4]||0,D[5]||0,D[6]||0,X)}}return new Date(x)}(y),this.init()},T.init=function(){var y=this.$d;this.$y=y.getFullYear(),this.$M=y.getMonth(),this.$D=y.getDate(),this.$W=y.getDay(),this.$H=y.getHours(),this.$m=y.getMinutes(),this.$s=y.getSeconds(),this.$ms=y.getMilliseconds()},T.$utils=function(){return R},T.isValid=function(){return this.$d.toString()!==b},T.isSame=function(y,w){var x=Z(y);return this.startOf(w)<=x&&x<=this.endOf(w)},T.isAfter=function(y,w){return Z(y)-1}function l(u){var f=u.replace(n,"");return f.replace(i,function(c,p){return String.fromCharCode(p)})}function h(u){if(!u)return t.BLANK_URL;var f=l(u).replace(r,"").replace(n,"").trim();if(!f)return t.BLANK_URL;if(a(f))return f;var c=f.match(o);if(!c)return f;var p=c[0];return e.test(p)?t.BLANK_URL:f}t.sanitizeUrl=h})(Hs);var vh={value:()=>{}};function js(){for(var t=0,e=arguments.length,i={},r;t=0&&(r=i.slice(n+1),i=i.slice(0,n)),i&&!e.hasOwnProperty(i))throw new Error("unknown type: "+i);return{type:i,name:r}})}Pi.prototype=js.prototype={constructor:Pi,on:function(t,e){var i=this._,r=kh(t+"",i),n,o=-1,s=r.length;if(arguments.length<2){for(;++o0)for(var i=new Array(n),r=0,n,o;r=0&&(e=t.slice(0,i))!=="xmlns"&&(t=t.slice(i+1)),Ao.hasOwnProperty(e)?{space:Ao[e],local:t}:t}function wh(t){return function(){var e=this.ownerDocument,i=this.namespaceURI;return i===nn&&e.documentElement.namespaceURI===nn?e.createElement(t):e.createElementNS(i,t)}}function Bh(t){return function(){return this.ownerDocument.createElementNS(t.space,t.local)}}function Us(t){var e=mr(t);return(e.local?Bh:wh)(e)}function Ah(){}function Sn(t){return t==null?Ah:function(){return this.querySelector(t)}}function Lh(t){typeof t!="function"&&(t=Sn(t));for(var e=this._groups,i=e.length,r=new Array(i),n=0;n=U&&(U=v+1);!(j=k[U])&&++U<_;);N._next=j||null}}return s=new _t(s,r),s._enter=a,s._exit=l,s}function Xh(t){return typeof t=="object"&&"length"in t?t:Array.from(t)}function Kh(){return new _t(this._exit||this._groups.map(Xs),this._parents)}function Zh(t,e,i){var r=this.enter(),n=this,o=this.exit();return typeof t=="function"?(r=t(r),r&&(r=r.selection())):r=r.append(t+""),e!=null&&(n=e(n),n&&(n=n.selection())),i==null?o.remove():i(o),r&&n?r.merge(n).order():n}function Jh(t){for(var e=t.selection?t.selection():t,i=this._groups,r=e._groups,n=i.length,o=r.length,s=Math.min(n,o),a=new Array(n),l=0;l=0;)(s=r[n])&&(o&&s.compareDocumentPosition(o)^4&&o.parentNode.insertBefore(s,o),o=s);return this}function tc(t){t||(t=ec);function e(f,c){return f&&c?t(f.__data__,c.__data__):!f-!c}for(var i=this._groups,r=i.length,n=new Array(r),o=0;oe?1:t>=e?0:NaN}function ic(){var t=arguments[0];return arguments[0]=this,t.apply(null,arguments),this}function rc(){return Array.from(this)}function nc(){for(var t=this._groups,e=0,i=t.length;e1?this.each((e==null?gc:typeof e=="function"?_c:mc)(t,e,i??"")):Me(this.node(),t)}function Me(t,e){return t.style.getPropertyValue(e)||Ks(t).getComputedStyle(t,null).getPropertyValue(e)}function Cc(t){return function(){delete this[t]}}function xc(t,e){return function(){this[t]=e}}function bc(t,e){return function(){var i=e.apply(this,arguments);i==null?delete this[t]:this[t]=i}}function Tc(t,e){return arguments.length>1?this.each((e==null?Cc:typeof e=="function"?bc:xc)(t,e)):this.node()[t]}function Zs(t){return t.trim().split(/^|\s+/)}function wn(t){return t.classList||new Js(t)}function Js(t){this._node=t,this._names=Zs(t.getAttribute("class")||"")}Js.prototype={add:function(t){var e=this._names.indexOf(t);e<0&&(this._names.push(t),this._node.setAttribute("class",this._names.join(" ")))},remove:function(t){var e=this._names.indexOf(t);e>=0&&(this._names.splice(e,1),this._node.setAttribute("class",this._names.join(" ")))},contains:function(t){return this._names.indexOf(t)>=0}};function Qs(t,e){for(var i=wn(t),r=-1,n=e.length;++r=0&&(i=e.slice(r+1),e=e.slice(0,r)),{type:e,name:i}})}function Kc(t){return function(){var e=this.__on;if(e){for(var i=0,r=-1,n=e.length,o;i>8&15|e>>4&240,e>>4&15|e&240,(e&15)<<4|e&15,1):i===8?Oi(e>>24&255,e>>16&255,e>>8&255,(e&255)/255):i===4?Oi(e>>12&15|e>>8&240,e>>8&15|e>>4&240,e>>4&15|e&240,((e&15)<<4|e&15)/255):null):(e=ou.exec(t))?new gt(e[1],e[2],e[3],1):(e=su.exec(t))?new gt(e[1]*255/100,e[2]*255/100,e[3]*255/100,1):(e=au.exec(t))?Oi(e[1],e[2],e[3],e[4]):(e=lu.exec(t))?Oi(e[1]*255/100,e[2]*255/100,e[3]*255/100,e[4]):(e=hu.exec(t))?$o(e[1],e[2]/100,e[3]/100,1):(e=cu.exec(t))?$o(e[1],e[2]/100,e[3]/100,e[4]):Lo.hasOwnProperty(t)?Oo(Lo[t]):t==="transparent"?new gt(NaN,NaN,NaN,0):null}function Oo(t){return new gt(t>>16&255,t>>8&255,t&255,1)}function Oi(t,e,i,r){return r<=0&&(t=e=i=NaN),new gt(t,e,i,r)}function du(t){return t instanceof Ti||(t=di(t)),t?(t=t.rgb(),new gt(t.r,t.g,t.b,t.opacity)):new gt}function on(t,e,i,r){return arguments.length===1?du(t):new gt(t,e,i,r??1)}function gt(t,e,i,r){this.r=+t,this.g=+e,this.b=+i,this.opacity=+r}Bn(gt,on,ra(Ti,{brighter(t){return t=t==null?Xi:Math.pow(Xi,t),new gt(this.r*t,this.g*t,this.b*t,this.opacity)},darker(t){return t=t==null?ui:Math.pow(ui,t),new gt(this.r*t,this.g*t,this.b*t,this.opacity)},rgb(){return this},clamp(){return new gt(ge(this.r),ge(this.g),ge(this.b),Ki(this.opacity))},displayable(){return-.5<=this.r&&this.r<255.5&&-.5<=this.g&&this.g<255.5&&-.5<=this.b&&this.b<255.5&&0<=this.opacity&&this.opacity<=1},hex:Mo,formatHex:Mo,formatHex8:pu,formatRgb:Io,toString:Io}));function Mo(){return`#${de(this.r)}${de(this.g)}${de(this.b)}`}function pu(){return`#${de(this.r)}${de(this.g)}${de(this.b)}${de((isNaN(this.opacity)?1:this.opacity)*255)}`}function Io(){const t=Ki(this.opacity);return`${t===1?"rgb(":"rgba("}${ge(this.r)}, ${ge(this.g)}, ${ge(this.b)}${t===1?")":`, ${t})`}`}function Ki(t){return isNaN(t)?1:Math.max(0,Math.min(1,t))}function ge(t){return Math.max(0,Math.min(255,Math.round(t)||0))}function de(t){return t=ge(t),(t<16?"0":"")+t.toString(16)}function $o(t,e,i,r){return r<=0?t=e=i=NaN:i<=0||i>=1?t=e=NaN:e<=0&&(t=NaN),new Ft(t,e,i,r)}function na(t){if(t instanceof Ft)return new Ft(t.h,t.s,t.l,t.opacity);if(t instanceof Ti||(t=di(t)),!t)return new Ft;if(t instanceof Ft)return t;t=t.rgb();var e=t.r/255,i=t.g/255,r=t.b/255,n=Math.min(e,i,r),o=Math.max(e,i,r),s=NaN,a=o-n,l=(o+n)/2;return a?(e===o?s=(i-r)/a+(i0&&l<1?0:s,new Ft(s,a,l,t.opacity)}function gu(t,e,i,r){return arguments.length===1?na(t):new Ft(t,e,i,r??1)}function Ft(t,e,i,r){this.h=+t,this.s=+e,this.l=+i,this.opacity=+r}Bn(Ft,gu,ra(Ti,{brighter(t){return t=t==null?Xi:Math.pow(Xi,t),new Ft(this.h,this.s,this.l*t,this.opacity)},darker(t){return t=t==null?ui:Math.pow(ui,t),new Ft(this.h,this.s,this.l*t,this.opacity)},rgb(){var t=this.h%360+(this.h<0)*360,e=isNaN(t)||isNaN(this.s)?0:this.s,i=this.l,r=i+(i<.5?i:1-i)*e,n=2*i-r;return new gt(zr(t>=240?t-240:t+120,n,r),zr(t,n,r),zr(t<120?t+240:t-120,n,r),this.opacity)},clamp(){return new Ft(Do(this.h),Mi(this.s),Mi(this.l),Ki(this.opacity))},displayable(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl(){const t=Ki(this.opacity);return`${t===1?"hsl(":"hsla("}${Do(this.h)}, ${Mi(this.s)*100}%, ${Mi(this.l)*100}%${t===1?")":`, ${t})`}`}}));function Do(t){return t=(t||0)%360,t<0?t+360:t}function Mi(t){return Math.max(0,Math.min(1,t||0))}function zr(t,e,i){return(t<60?e+(i-e)*t/60:t<180?i:t<240?e+(i-e)*(240-t)/60:e)*255}const An=t=>()=>t;function oa(t,e){return function(i){return t+i*e}}function mu(t,e,i){return t=Math.pow(t,i),e=Math.pow(e,i)-t,i=1/i,function(r){return Math.pow(t+r*e,i)}}function bb(t,e){var i=e-t;return i?oa(t,i>180||i<-180?i-360*Math.round(i/360):i):An(isNaN(t)?e:t)}function _u(t){return(t=+t)==1?sa:function(e,i){return i-e?mu(e,i,t):An(isNaN(e)?i:e)}}function sa(t,e){var i=e-t;return i?oa(t,i):An(isNaN(t)?e:t)}const No=function t(e){var i=_u(e);function r(n,o){var s=i((n=on(n)).r,(o=on(o)).r),a=i(n.g,o.g),l=i(n.b,o.b),h=sa(n.opacity,o.opacity);return function(u){return n.r=s(u),n.g=a(u),n.b=l(u),n.opacity=h(u),n+""}}return r.gamma=t,r}(1);function ne(t,e){return t=+t,e=+e,function(i){return t*(1-i)+e*i}}var sn=/[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,Wr=new RegExp(sn.source,"g");function yu(t){return function(){return t}}function Cu(t){return function(e){return t(e)+""}}function xu(t,e){var i=sn.lastIndex=Wr.lastIndex=0,r,n,o,s=-1,a=[],l=[];for(t=t+"",e=e+"";(r=sn.exec(t))&&(n=Wr.exec(e));)(o=n.index)>i&&(o=e.slice(i,o),a[s]?a[s]+=o:a[++s]=o),(r=r[0])===(n=n[0])?a[s]?a[s]+=n:a[++s]=n:(a[++s]=null,l.push({i:s,x:ne(r,n)})),i=Wr.lastIndex;return i180?u+=360:u-h>180&&(h+=360),c.push({i:f.push(n(f)+"rotate(",null,r)-2,x:ne(h,u)})):u&&f.push(n(f)+"rotate("+u+r)}function a(h,u,f,c){h!==u?c.push({i:f.push(n(f)+"skewX(",null,r)-2,x:ne(h,u)}):u&&f.push(n(f)+"skewX("+u+r)}function l(h,u,f,c,p,_){if(h!==f||u!==c){var b=p.push(n(p)+"scale(",null,",",null,")");_.push({i:b-4,x:ne(h,f)},{i:b-2,x:ne(u,c)})}else(f!==1||c!==1)&&p.push(n(p)+"scale("+f+","+c+")")}return function(h,u){var f=[],c=[];return h=t(h),u=t(u),o(h.translateX,h.translateY,u.translateX,u.translateY,f,c),s(h.rotate,u.rotate,f,c),a(h.skewX,u.skewX,f,c),l(h.scaleX,h.scaleY,u.scaleX,u.scaleY,f,c),h=u=null,function(p){for(var _=-1,b=c.length,k;++_=0&&t._call.call(void 0,e),t=t._next;--Ie}function Po(){_e=(Ji=pi.now())+_r,Ie=ei=0;try{wu()}finally{Ie=0,Au(),_e=0}}function Bu(){var t=pi.now(),e=t-Ji;e>ha&&(_r-=e,Ji=t)}function Au(){for(var t,e=Zi,i,r=1/0;e;)e._call?(r>e._time&&(r=e._time),t=e,e=e._next):(i=e._next,e._next=null,e=t?t._next=i:Zi=i);ii=t,ln(r)}function ln(t){if(!Ie){ei&&(ei=clearTimeout(ei));var e=t-_e;e>24?(t<1/0&&(ei=setTimeout(Po,t-pi.now()-_r)),Ge&&(Ge=clearInterval(Ge))):(Ge||(Ji=pi.now(),Ge=setInterval(Bu,ha)),Ie=1,ca(Po))}}function qo(t,e,i){var r=new Qi;return e=e==null?0:+e,r.restart(n=>{r.stop(),t(n+e)},e,i),r}var Lu=js("start","end","cancel","interrupt"),Fu=[],fa=0,zo=1,hn=2,qi=3,Wo=4,cn=5,zi=6;function yr(t,e,i,r,n,o){var s=t.__transition;if(!s)t.__transition={};else if(i in s)return;Eu(t,i,{name:e,index:r,group:n,on:Lu,tween:Fu,time:o.time,delay:o.delay,duration:o.duration,ease:o.ease,timer:null,state:fa})}function Fn(t,e){var i=Mt(t,e);if(i.state>fa)throw new Error("too late; already scheduled");return i}function zt(t,e){var i=Mt(t,e);if(i.state>qi)throw new Error("too late; already running");return i}function Mt(t,e){var i=t.__transition;if(!i||!(i=i[e]))throw new Error("transition not found");return i}function Eu(t,e,i){var r=t.__transition,n;r[e]=i,i.timer=ua(o,0,i.time);function o(h){i.state=zo,i.timer.restart(s,i.delay,i.time),i.delay<=h&&s(h-i.delay)}function s(h){var u,f,c,p;if(i.state!==zo)return l();for(u in r)if(p=r[u],p.name===i.name){if(p.state===qi)return qo(s);p.state===Wo?(p.state=zi,p.timer.stop(),p.on.call("interrupt",t,t.__data__,p.index,p.group),delete r[u]):+uhn&&r.state=0&&(e=e.slice(0,i)),!e||e==="start"})}function hf(t,e,i){var r,n,o=lf(e)?Fn:zt;return function(){var s=o(this,t),a=s.on;a!==r&&(n=(r=a).copy()).on(e,i),s.on=n}}function cf(t,e){var i=this._id;return arguments.length<2?Mt(this.node(),i).on.on(t):this.each(hf(i,t,e))}function uf(t){return function(){var e=this.parentNode;for(var i in this.__transition)if(+i!==t)return;e&&e.removeChild(this)}}function ff(){return this.on("end.remove",uf(this._id))}function df(t){var e=this._name,i=this._id;typeof t!="function"&&(t=Sn(t));for(var r=this._groups,n=r.length,o=new Array(n),s=0;s1?0:t<-1?On:Math.acos(t)}function Eb(t){return t>=1?jo:t<=-1?-jo:Math.asin(t)}function ma(t){this._context=t}ma.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._point=0},lineEnd:function(){(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1,this._line?this._context.lineTo(t,e):this._context.moveTo(t,e);break;case 1:this._point=2;default:this._context.lineTo(t,e);break}}};function Rf(t){return new ma(t)}class _a{constructor(e,i){this._context=e,this._x=i}areaStart(){this._line=0}areaEnd(){this._line=NaN}lineStart(){this._point=0}lineEnd(){(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line}point(e,i){switch(e=+e,i=+i,this._point){case 0:{this._point=1,this._line?this._context.lineTo(e,i):this._context.moveTo(e,i);break}case 1:this._point=2;default:{this._x?this._context.bezierCurveTo(this._x0=(this._x0+e)/2,this._y0,this._x0,i,e,i):this._context.bezierCurveTo(this._x0,this._y0=(this._y0+i)/2,e,this._y0,e,i);break}}this._x0=e,this._y0=i}}function Pf(t){return new _a(t,!0)}function qf(t){return new _a(t,!1)}function ae(){}function tr(t,e,i){t._context.bezierCurveTo((2*t._x0+t._x1)/3,(2*t._y0+t._y1)/3,(t._x0+2*t._x1)/3,(t._y0+2*t._y1)/3,(t._x0+4*t._x1+e)/6,(t._y0+4*t._y1+i)/6)}function Cr(t){this._context=t}Cr.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=NaN,this._point=0},lineEnd:function(){switch(this._point){case 3:tr(this,this._x1,this._y1);case 2:this._context.lineTo(this._x1,this._y1);break}(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1,this._line?this._context.lineTo(t,e):this._context.moveTo(t,e);break;case 1:this._point=2;break;case 2:this._point=3,this._context.lineTo((5*this._x0+this._x1)/6,(5*this._y0+this._y1)/6);default:tr(this,t,e);break}this._x0=this._x1,this._x1=t,this._y0=this._y1,this._y1=e}};function zf(t){return new Cr(t)}function ya(t){this._context=t}ya.prototype={areaStart:ae,areaEnd:ae,lineStart:function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._y0=this._y1=this._y2=this._y3=this._y4=NaN,this._point=0},lineEnd:function(){switch(this._point){case 1:{this._context.moveTo(this._x2,this._y2),this._context.closePath();break}case 2:{this._context.moveTo((this._x2+2*this._x3)/3,(this._y2+2*this._y3)/3),this._context.lineTo((this._x3+2*this._x2)/3,(this._y3+2*this._y2)/3),this._context.closePath();break}case 3:{this.point(this._x2,this._y2),this.point(this._x3,this._y3),this.point(this._x4,this._y4);break}}},point:function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1,this._x2=t,this._y2=e;break;case 1:this._point=2,this._x3=t,this._y3=e;break;case 2:this._point=3,this._x4=t,this._y4=e,this._context.moveTo((this._x0+4*this._x1+t)/6,(this._y0+4*this._y1+e)/6);break;default:tr(this,t,e);break}this._x0=this._x1,this._x1=t,this._y0=this._y1,this._y1=e}};function Wf(t){return new ya(t)}function Ca(t){this._context=t}Ca.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=NaN,this._point=0},lineEnd:function(){(this._line||this._line!==0&&this._point===3)&&this._context.closePath(),this._line=1-this._line},point:function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3;var i=(this._x0+4*this._x1+t)/6,r=(this._y0+4*this._y1+e)/6;this._line?this._context.lineTo(i,r):this._context.moveTo(i,r);break;case 3:this._point=4;default:tr(this,t,e);break}this._x0=this._x1,this._x1=t,this._y0=this._y1,this._y1=e}};function Hf(t){return new Ca(t)}function xa(t,e){this._basis=new Cr(t),this._beta=e}xa.prototype={lineStart:function(){this._x=[],this._y=[],this._basis.lineStart()},lineEnd:function(){var t=this._x,e=this._y,i=t.length-1;if(i>0)for(var r=t[0],n=e[0],o=t[i]-r,s=e[i]-n,a=-1,l;++a<=i;)l=a/i,this._basis.point(this._beta*t[a]+(1-this._beta)*(r+l*o),this._beta*e[a]+(1-this._beta)*(n+l*s));this._x=this._y=null,this._basis.lineEnd()},point:function(t,e){this._x.push(+t),this._y.push(+e)}};const jf=function t(e){function i(r){return e===1?new Cr(r):new xa(r,e)}return i.beta=function(r){return t(+r)},i}(.85);function er(t,e,i){t._context.bezierCurveTo(t._x1+t._k*(t._x2-t._x0),t._y1+t._k*(t._y2-t._y0),t._x2+t._k*(t._x1-e),t._y2+t._k*(t._y1-i),t._x2,t._y2)}function Mn(t,e){this._context=t,this._k=(1-e)/6}Mn.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._point=0},lineEnd:function(){switch(this._point){case 2:this._context.lineTo(this._x2,this._y2);break;case 3:er(this,this._x1,this._y1);break}(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1,this._line?this._context.lineTo(t,e):this._context.moveTo(t,e);break;case 1:this._point=2,this._x1=t,this._y1=e;break;case 2:this._point=3;default:er(this,t,e);break}this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=e}};const Uf=function t(e){function i(r){return new Mn(r,e)}return i.tension=function(r){return t(+r)},i}(0);function In(t,e){this._context=t,this._k=(1-e)/6}In.prototype={areaStart:ae,areaEnd:ae,lineStart:function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._x5=this._y0=this._y1=this._y2=this._y3=this._y4=this._y5=NaN,this._point=0},lineEnd:function(){switch(this._point){case 1:{this._context.moveTo(this._x3,this._y3),this._context.closePath();break}case 2:{this._context.lineTo(this._x3,this._y3),this._context.closePath();break}case 3:{this.point(this._x3,this._y3),this.point(this._x4,this._y4),this.point(this._x5,this._y5);break}}},point:function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1,this._x3=t,this._y3=e;break;case 1:this._point=2,this._context.moveTo(this._x4=t,this._y4=e);break;case 2:this._point=3,this._x5=t,this._y5=e;break;default:er(this,t,e);break}this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=e}};const Yf=function t(e){function i(r){return new In(r,e)}return i.tension=function(r){return t(+r)},i}(0);function $n(t,e){this._context=t,this._k=(1-e)/6}$n.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._point=0},lineEnd:function(){(this._line||this._line!==0&&this._point===3)&&this._context.closePath(),this._line=1-this._line},point:function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3,this._line?this._context.lineTo(this._x2,this._y2):this._context.moveTo(this._x2,this._y2);break;case 3:this._point=4;default:er(this,t,e);break}this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=e}};const Vf=function t(e){function i(r){return new $n(r,e)}return i.tension=function(r){return t(+r)},i}(0);function Dn(t,e,i){var r=t._x1,n=t._y1,o=t._x2,s=t._y2;if(t._l01_a>Ho){var a=2*t._l01_2a+3*t._l01_a*t._l12_a+t._l12_2a,l=3*t._l01_a*(t._l01_a+t._l12_a);r=(r*a-t._x0*t._l12_2a+t._x2*t._l01_2a)/l,n=(n*a-t._y0*t._l12_2a+t._y2*t._l01_2a)/l}if(t._l23_a>Ho){var h=2*t._l23_2a+3*t._l23_a*t._l12_a+t._l12_2a,u=3*t._l23_a*(t._l23_a+t._l12_a);o=(o*h+t._x1*t._l23_2a-e*t._l12_2a)/u,s=(s*h+t._y1*t._l23_2a-i*t._l12_2a)/u}t._context.bezierCurveTo(r,n,o,s,t._x2,t._y2)}function ba(t,e){this._context=t,this._alpha=e}ba.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._l01_a=this._l12_a=this._l23_a=this._l01_2a=this._l12_2a=this._l23_2a=this._point=0},lineEnd:function(){switch(this._point){case 2:this._context.lineTo(this._x2,this._y2);break;case 3:this.point(this._x2,this._y2);break}(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(t,e){if(t=+t,e=+e,this._point){var i=this._x2-t,r=this._y2-e;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(i*i+r*r,this._alpha))}switch(this._point){case 0:this._point=1,this._line?this._context.lineTo(t,e):this._context.moveTo(t,e);break;case 1:this._point=2;break;case 2:this._point=3;default:Dn(this,t,e);break}this._l01_a=this._l12_a,this._l12_a=this._l23_a,this._l01_2a=this._l12_2a,this._l12_2a=this._l23_2a,this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=e}};const Gf=function t(e){function i(r){return e?new ba(r,e):new Mn(r,0)}return i.alpha=function(r){return t(+r)},i}(.5);function Ta(t,e){this._context=t,this._alpha=e}Ta.prototype={areaStart:ae,areaEnd:ae,lineStart:function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._x5=this._y0=this._y1=this._y2=this._y3=this._y4=this._y5=NaN,this._l01_a=this._l12_a=this._l23_a=this._l01_2a=this._l12_2a=this._l23_2a=this._point=0},lineEnd:function(){switch(this._point){case 1:{this._context.moveTo(this._x3,this._y3),this._context.closePath();break}case 2:{this._context.lineTo(this._x3,this._y3),this._context.closePath();break}case 3:{this.point(this._x3,this._y3),this.point(this._x4,this._y4),this.point(this._x5,this._y5);break}}},point:function(t,e){if(t=+t,e=+e,this._point){var i=this._x2-t,r=this._y2-e;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(i*i+r*r,this._alpha))}switch(this._point){case 0:this._point=1,this._x3=t,this._y3=e;break;case 1:this._point=2,this._context.moveTo(this._x4=t,this._y4=e);break;case 2:this._point=3,this._x5=t,this._y5=e;break;default:Dn(this,t,e);break}this._l01_a=this._l12_a,this._l12_a=this._l23_a,this._l01_2a=this._l12_2a,this._l12_2a=this._l23_2a,this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=e}};const Xf=function t(e){function i(r){return e?new Ta(r,e):new In(r,0)}return i.alpha=function(r){return t(+r)},i}(.5);function va(t,e){this._context=t,this._alpha=e}va.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._l01_a=this._l12_a=this._l23_a=this._l01_2a=this._l12_2a=this._l23_2a=this._point=0},lineEnd:function(){(this._line||this._line!==0&&this._point===3)&&this._context.closePath(),this._line=1-this._line},point:function(t,e){if(t=+t,e=+e,this._point){var i=this._x2-t,r=this._y2-e;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(i*i+r*r,this._alpha))}switch(this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3,this._line?this._context.lineTo(this._x2,this._y2):this._context.moveTo(this._x2,this._y2);break;case 3:this._point=4;default:Dn(this,t,e);break}this._l01_a=this._l12_a,this._l12_a=this._l23_a,this._l01_2a=this._l12_2a,this._l12_2a=this._l23_2a,this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=e}};const Kf=function t(e){function i(r){return e?new va(r,e):new $n(r,0)}return i.alpha=function(r){return t(+r)},i}(.5);function ka(t){this._context=t}ka.prototype={areaStart:ae,areaEnd:ae,lineStart:function(){this._point=0},lineEnd:function(){this._point&&this._context.closePath()},point:function(t,e){t=+t,e=+e,this._point?this._context.lineTo(t,e):(this._point=1,this._context.moveTo(t,e))}};function Zf(t){return new ka(t)}function Uo(t){return t<0?-1:1}function Yo(t,e,i){var r=t._x1-t._x0,n=e-t._x1,o=(t._y1-t._y0)/(r||n<0&&-0),s=(i-t._y1)/(n||r<0&&-0),a=(o*n+s*r)/(r+n);return(Uo(o)+Uo(s))*Math.min(Math.abs(o),Math.abs(s),.5*Math.abs(a))||0}function Vo(t,e){var i=t._x1-t._x0;return i?(3*(t._y1-t._y0)/i-e)/2:e}function Hr(t,e,i){var r=t._x0,n=t._y0,o=t._x1,s=t._y1,a=(o-r)/3;t._context.bezierCurveTo(r+a,n+a*e,o-a,s-a*i,o,s)}function ir(t){this._context=t}ir.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=this._t0=NaN,this._point=0},lineEnd:function(){switch(this._point){case 2:this._context.lineTo(this._x1,this._y1);break;case 3:Hr(this,this._t0,Vo(this,this._t0));break}(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(t,e){var i=NaN;if(t=+t,e=+e,!(t===this._x1&&e===this._y1)){switch(this._point){case 0:this._point=1,this._line?this._context.lineTo(t,e):this._context.moveTo(t,e);break;case 1:this._point=2;break;case 2:this._point=3,Hr(this,Vo(this,i=Yo(this,t,e)),i);break;default:Hr(this,this._t0,i=Yo(this,t,e));break}this._x0=this._x1,this._x1=t,this._y0=this._y1,this._y1=e,this._t0=i}}};function Sa(t){this._context=new wa(t)}(Sa.prototype=Object.create(ir.prototype)).point=function(t,e){ir.prototype.point.call(this,e,t)};function wa(t){this._context=t}wa.prototype={moveTo:function(t,e){this._context.moveTo(e,t)},closePath:function(){this._context.closePath()},lineTo:function(t,e){this._context.lineTo(e,t)},bezierCurveTo:function(t,e,i,r,n,o){this._context.bezierCurveTo(e,t,r,i,o,n)}};function Jf(t){return new ir(t)}function Qf(t){return new Sa(t)}function Ba(t){this._context=t}Ba.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x=[],this._y=[]},lineEnd:function(){var t=this._x,e=this._y,i=t.length;if(i)if(this._line?this._context.lineTo(t[0],e[0]):this._context.moveTo(t[0],e[0]),i===2)this._context.lineTo(t[1],e[1]);else for(var r=Go(t),n=Go(e),o=0,s=1;s=0;--e)n[e]=(s[e]-n[e+1])/o[e];for(o[i-1]=(t[i]+n[i-1])/2,e=0;e=0&&(this._t=1-this._t,this._line=1-this._line)},point:function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1,this._line?this._context.lineTo(t,e):this._context.moveTo(t,e);break;case 1:this._point=2;default:{if(this._t<=0)this._context.lineTo(this._x,e),this._context.lineTo(t,e);else{var i=this._x*(1-this._t)+t*this._t;this._context.lineTo(i,this._y),this._context.lineTo(i,e)}break}}this._x=t,this._y=e}};function ed(t){return new xr(t,.5)}function id(t){return new xr(t,0)}function rd(t){return new xr(t,1)}function ri(t,e,i){this.k=t,this.x=e,this.y=i}ri.prototype={constructor:ri,scale:function(t){return t===1?this:new ri(this.k*t,this.x,this.y)},translate:function(t,e){return t===0&e===0?this:new ri(this.k,this.x+this.k*t,this.y+this.k*e)},apply:function(t){return[t[0]*this.k+this.x,t[1]*this.k+this.y]},applyX:function(t){return t*this.k+this.x},applyY:function(t){return t*this.k+this.y},invert:function(t){return[(t[0]-this.x)/this.k,(t[1]-this.y)/this.k]},invertX:function(t){return(t-this.x)/this.k},invertY:function(t){return(t-this.y)/this.k},rescaleX:function(t){return t.copy().domain(t.range().map(this.invertX,this).map(t.invert,t))},rescaleY:function(t){return t.copy().domain(t.range().map(this.invertY,this).map(t.invert,t))},toString:function(){return"translate("+this.x+","+this.y+") scale("+this.k+")"}};ri.prototype;/*! @license DOMPurify 3.1.6 | (c) Cure53 and other contributors | Released under the Apache license 2.0 and Mozilla Public License 2.0 | github.com/cure53/DOMPurify/blob/3.1.6/LICENSE */const{entries:Aa,setPrototypeOf:Xo,isFrozen:nd,getPrototypeOf:od,getOwnPropertyDescriptor:sd}=Object;let{freeze:ft,seal:vt,create:La}=Object,{apply:un,construct:fn}=typeof Reflect<"u"&&Reflect;ft||(ft=function(e){return e});vt||(vt=function(e){return e});un||(un=function(e,i,r){return e.apply(i,r)});fn||(fn=function(e,i){return new e(...i)});const $i=yt(Array.prototype.forEach),Ko=yt(Array.prototype.pop),Xe=yt(Array.prototype.push),Wi=yt(String.prototype.toLowerCase),jr=yt(String.prototype.toString),Zo=yt(String.prototype.match),Ke=yt(String.prototype.replace),ad=yt(String.prototype.indexOf),ld=yt(String.prototype.trim),Lt=yt(Object.prototype.hasOwnProperty),ht=yt(RegExp.prototype.test),Ze=hd(TypeError);function yt(t){return function(e){for(var i=arguments.length,r=new Array(i>1?i-1:0),n=1;n2&&arguments[2]!==void 0?arguments[2]:Wi;Xo&&Xo(t,null);let r=e.length;for(;r--;){let n=e[r];if(typeof n=="string"){const o=i(n);o!==n&&(nd(e)||(e[r]=o),n=o)}t[n]=!0}return t}function cd(t){for(let e=0;e/gm),gd=vt(/\${[\w\W]*}/gm),md=vt(/^data-[\-\w.\u00B7-\uFFFF]/),_d=vt(/^aria-[\-\w]+$/),Fa=vt(/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|sms|cid|xmpp):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i),yd=vt(/^(?:\w+script|data):/i),Cd=vt(/[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205F\u3000]/g),Ea=vt(/^html$/i),xd=vt(/^[a-z][.\w]*(-[.\w]+)+$/i);var is=Object.freeze({__proto__:null,MUSTACHE_EXPR:dd,ERB_EXPR:pd,TMPLIT_EXPR:gd,DATA_ATTR:md,ARIA_ATTR:_d,IS_ALLOWED_URI:Fa,IS_SCRIPT_OR_DATA:yd,ATTR_WHITESPACE:Cd,DOCTYPE_NAME:Ea,CUSTOM_ELEMENT:xd});const Qe={element:1,attribute:2,text:3,cdataSection:4,entityReference:5,entityNode:6,progressingInstruction:7,comment:8,document:9,documentType:10,documentFragment:11,notation:12},bd=function(){return typeof window>"u"?null:window},Td=function(e,i){if(typeof e!="object"||typeof e.createPolicy!="function")return null;let r=null;const n="data-tt-policy-suffix";i&&i.hasAttribute(n)&&(r=i.getAttribute(n));const o="dompurify"+(r?"#"+r:"");try{return e.createPolicy(o,{createHTML(s){return s},createScriptURL(s){return s}})}catch{return console.warn("TrustedTypes policy "+o+" could not be created."),null}};function Oa(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:bd();const e=B=>Oa(B);if(e.version="3.1.6",e.removed=[],!t||!t.document||t.document.nodeType!==Qe.document)return e.isSupported=!1,e;let{document:i}=t;const r=i,n=r.currentScript,{DocumentFragment:o,HTMLTemplateElement:s,Node:a,Element:l,NodeFilter:h,NamedNodeMap:u=t.NamedNodeMap||t.MozNamedAttrMap,HTMLFormElement:f,DOMParser:c,trustedTypes:p}=t,_=l.prototype,b=Je(_,"cloneNode"),k=Je(_,"remove"),P=Je(_,"nextSibling"),v=Je(_,"childNodes"),U=Je(_,"parentNode");if(typeof s=="function"){const B=i.createElement("template");B.content&&B.content.ownerDocument&&(i=B.content.ownerDocument)}let N,j="";const{implementation:G,createNodeIterator:W,createDocumentFragment:Jt,getElementsByTagName:Qt}=i,{importNode:Z}=r;let R={};e.isSupported=typeof Aa=="function"&&typeof U=="function"&&G&&G.createHTMLDocument!==void 0;const{MUSTACHE_EXPR:St,ERB_EXPR:te,TMPLIT_EXPR:M,DATA_ATTR:T,ARIA_ATTR:y,IS_SCRIPT_OR_DATA:w,ATTR_WHITESPACE:x,CUSTOM_ELEMENT:F}=is;let{IS_ALLOWED_URI:D}=is,$=null;const X=z({},[...Jo,...Ur,...Yr,...Vr,...Qo]);let q=null;const tt=z({},[...ts,...Gr,...es,...Di]);let H=Object.seal(La(null,{tagNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},attributeNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},allowCustomizedBuiltInElements:{writable:!0,configurable:!1,enumerable:!0,value:!1}})),Ct=null,wt=null,ee=!0,Bt=!0,it=!1,At=!0,xt=!1,ie=!0,ce=!1,Ir=!1,$r=!1,ve=!1,Bi=!1,Ai=!1,oo=!0,so=!1;const ch="user-content-";let Dr=!0,Ue=!1,ke={},Se=null;const ao=z({},["annotation-xml","audio","colgroup","desc","foreignobject","head","iframe","math","mi","mn","mo","ms","mtext","noembed","noframes","noscript","plaintext","script","style","svg","template","thead","title","video","xmp"]);let lo=null;const ho=z({},["audio","video","img","source","image","track"]);let Nr=null;const co=z({},["alt","class","for","id","label","name","pattern","placeholder","role","summary","title","value","style","xmlns"]),Li="http://www.w3.org/1998/Math/MathML",Fi="http://www.w3.org/2000/svg",Ht="http://www.w3.org/1999/xhtml";let we=Ht,Rr=!1,Pr=null;const uh=z({},[Li,Fi,Ht],jr);let Ye=null;const fh=["application/xhtml+xml","text/html"],dh="text/html";let et=null,Be=null;const ph=i.createElement("form"),uo=function(d){return d instanceof RegExp||d instanceof Function},qr=function(){let d=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};if(!(Be&&Be===d)){if((!d||typeof d!="object")&&(d={}),d=ue(d),Ye=fh.indexOf(d.PARSER_MEDIA_TYPE)===-1?dh:d.PARSER_MEDIA_TYPE,et=Ye==="application/xhtml+xml"?jr:Wi,$=Lt(d,"ALLOWED_TAGS")?z({},d.ALLOWED_TAGS,et):X,q=Lt(d,"ALLOWED_ATTR")?z({},d.ALLOWED_ATTR,et):tt,Pr=Lt(d,"ALLOWED_NAMESPACES")?z({},d.ALLOWED_NAMESPACES,jr):uh,Nr=Lt(d,"ADD_URI_SAFE_ATTR")?z(ue(co),d.ADD_URI_SAFE_ATTR,et):co,lo=Lt(d,"ADD_DATA_URI_TAGS")?z(ue(ho),d.ADD_DATA_URI_TAGS,et):ho,Se=Lt(d,"FORBID_CONTENTS")?z({},d.FORBID_CONTENTS,et):ao,Ct=Lt(d,"FORBID_TAGS")?z({},d.FORBID_TAGS,et):{},wt=Lt(d,"FORBID_ATTR")?z({},d.FORBID_ATTR,et):{},ke=Lt(d,"USE_PROFILES")?d.USE_PROFILES:!1,ee=d.ALLOW_ARIA_ATTR!==!1,Bt=d.ALLOW_DATA_ATTR!==!1,it=d.ALLOW_UNKNOWN_PROTOCOLS||!1,At=d.ALLOW_SELF_CLOSE_IN_ATTR!==!1,xt=d.SAFE_FOR_TEMPLATES||!1,ie=d.SAFE_FOR_XML!==!1,ce=d.WHOLE_DOCUMENT||!1,ve=d.RETURN_DOM||!1,Bi=d.RETURN_DOM_FRAGMENT||!1,Ai=d.RETURN_TRUSTED_TYPE||!1,$r=d.FORCE_BODY||!1,oo=d.SANITIZE_DOM!==!1,so=d.SANITIZE_NAMED_PROPS||!1,Dr=d.KEEP_CONTENT!==!1,Ue=d.IN_PLACE||!1,D=d.ALLOWED_URI_REGEXP||Fa,we=d.NAMESPACE||Ht,H=d.CUSTOM_ELEMENT_HANDLING||{},d.CUSTOM_ELEMENT_HANDLING&&uo(d.CUSTOM_ELEMENT_HANDLING.tagNameCheck)&&(H.tagNameCheck=d.CUSTOM_ELEMENT_HANDLING.tagNameCheck),d.CUSTOM_ELEMENT_HANDLING&&uo(d.CUSTOM_ELEMENT_HANDLING.attributeNameCheck)&&(H.attributeNameCheck=d.CUSTOM_ELEMENT_HANDLING.attributeNameCheck),d.CUSTOM_ELEMENT_HANDLING&&typeof d.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements=="boolean"&&(H.allowCustomizedBuiltInElements=d.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements),xt&&(Bt=!1),Bi&&(ve=!0),ke&&($=z({},Qo),q=[],ke.html===!0&&(z($,Jo),z(q,ts)),ke.svg===!0&&(z($,Ur),z(q,Gr),z(q,Di)),ke.svgFilters===!0&&(z($,Yr),z(q,Gr),z(q,Di)),ke.mathMl===!0&&(z($,Vr),z(q,es),z(q,Di))),d.ADD_TAGS&&($===X&&($=ue($)),z($,d.ADD_TAGS,et)),d.ADD_ATTR&&(q===tt&&(q=ue(q)),z(q,d.ADD_ATTR,et)),d.ADD_URI_SAFE_ATTR&&z(Nr,d.ADD_URI_SAFE_ATTR,et),d.FORBID_CONTENTS&&(Se===ao&&(Se=ue(Se)),z(Se,d.FORBID_CONTENTS,et)),Dr&&($["#text"]=!0),ce&&z($,["html","head","body"]),$.table&&(z($,["tbody"]),delete Ct.tbody),d.TRUSTED_TYPES_POLICY){if(typeof d.TRUSTED_TYPES_POLICY.createHTML!="function")throw Ze('TRUSTED_TYPES_POLICY configuration option must provide a "createHTML" hook.');if(typeof d.TRUSTED_TYPES_POLICY.createScriptURL!="function")throw Ze('TRUSTED_TYPES_POLICY configuration option must provide a "createScriptURL" hook.');N=d.TRUSTED_TYPES_POLICY,j=N.createHTML("")}else N===void 0&&(N=Td(p,n)),N!==null&&typeof j=="string"&&(j=N.createHTML(""));ft&&ft(d),Be=d}},fo=z({},["mi","mo","mn","ms","mtext"]),po=z({},["foreignobject","annotation-xml"]),gh=z({},["title","style","font","a","script"]),go=z({},[...Ur,...Yr,...ud]),mo=z({},[...Vr,...fd]),mh=function(d){let m=U(d);(!m||!m.tagName)&&(m={namespaceURI:we,tagName:"template"});const S=Wi(d.tagName),Y=Wi(m.tagName);return Pr[d.namespaceURI]?d.namespaceURI===Fi?m.namespaceURI===Ht?S==="svg":m.namespaceURI===Li?S==="svg"&&(Y==="annotation-xml"||fo[Y]):!!go[S]:d.namespaceURI===Li?m.namespaceURI===Ht?S==="math":m.namespaceURI===Fi?S==="math"&&po[Y]:!!mo[S]:d.namespaceURI===Ht?m.namespaceURI===Fi&&!po[Y]||m.namespaceURI===Li&&!fo[Y]?!1:!mo[S]&&(gh[S]||!go[S]):!!(Ye==="application/xhtml+xml"&&Pr[d.namespaceURI]):!1},It=function(d){Xe(e.removed,{element:d});try{U(d).removeChild(d)}catch{k(d)}},Ei=function(d,m){try{Xe(e.removed,{attribute:m.getAttributeNode(d),from:m})}catch{Xe(e.removed,{attribute:null,from:m})}if(m.removeAttribute(d),d==="is"&&!q[d])if(ve||Bi)try{It(m)}catch{}else try{m.setAttribute(d,"")}catch{}},_o=function(d){let m=null,S=null;if($r)d=""+d;else{const rt=Zo(d,/^[\r\n\t ]+/);S=rt&&rt[0]}Ye==="application/xhtml+xml"&&we===Ht&&(d=''+d+"");const Y=N?N.createHTML(d):d;if(we===Ht)try{m=new c().parseFromString(Y,Ye)}catch{}if(!m||!m.documentElement){m=G.createDocument(we,"template",null);try{m.documentElement.innerHTML=Rr?j:Y}catch{}}const nt=m.body||m.documentElement;return d&&S&&nt.insertBefore(i.createTextNode(S),nt.childNodes[0]||null),we===Ht?Qt.call(m,ce?"html":"body")[0]:ce?m.documentElement:nt},yo=function(d){return W.call(d.ownerDocument||d,d,h.SHOW_ELEMENT|h.SHOW_COMMENT|h.SHOW_TEXT|h.SHOW_PROCESSING_INSTRUCTION|h.SHOW_CDATA_SECTION,null)},Co=function(d){return d instanceof f&&(typeof d.nodeName!="string"||typeof d.textContent!="string"||typeof d.removeChild!="function"||!(d.attributes instanceof u)||typeof d.removeAttribute!="function"||typeof d.setAttribute!="function"||typeof d.namespaceURI!="string"||typeof d.insertBefore!="function"||typeof d.hasChildNodes!="function")},xo=function(d){return typeof a=="function"&&d instanceof a},jt=function(d,m,S){R[d]&&$i(R[d],Y=>{Y.call(e,m,S,Be)})},bo=function(d){let m=null;if(jt("beforeSanitizeElements",d,null),Co(d))return It(d),!0;const S=et(d.nodeName);if(jt("uponSanitizeElement",d,{tagName:S,allowedTags:$}),d.hasChildNodes()&&!xo(d.firstElementChild)&&ht(/<[/\w]/g,d.innerHTML)&&ht(/<[/\w]/g,d.textContent)||d.nodeType===Qe.progressingInstruction||ie&&d.nodeType===Qe.comment&&ht(/<[/\w]/g,d.data))return It(d),!0;if(!$[S]||Ct[S]){if(!Ct[S]&&vo(S)&&(H.tagNameCheck instanceof RegExp&&ht(H.tagNameCheck,S)||H.tagNameCheck instanceof Function&&H.tagNameCheck(S)))return!1;if(Dr&&!Se[S]){const Y=U(d)||d.parentNode,nt=v(d)||d.childNodes;if(nt&&Y){const rt=nt.length;for(let dt=rt-1;dt>=0;--dt){const $t=b(nt[dt],!0);$t.__removalCount=(d.__removalCount||0)+1,Y.insertBefore($t,P(d))}}}return It(d),!0}return d instanceof l&&!mh(d)||(S==="noscript"||S==="noembed"||S==="noframes")&&ht(/<\/no(script|embed|frames)/i,d.innerHTML)?(It(d),!0):(xt&&d.nodeType===Qe.text&&(m=d.textContent,$i([St,te,M],Y=>{m=Ke(m,Y," ")}),d.textContent!==m&&(Xe(e.removed,{element:d.cloneNode()}),d.textContent=m)),jt("afterSanitizeElements",d,null),!1)},To=function(d,m,S){if(oo&&(m==="id"||m==="name")&&(S in i||S in ph))return!1;if(!(Bt&&!wt[m]&&ht(T,m))){if(!(ee&&ht(y,m))){if(!q[m]||wt[m]){if(!(vo(d)&&(H.tagNameCheck instanceof RegExp&&ht(H.tagNameCheck,d)||H.tagNameCheck instanceof Function&&H.tagNameCheck(d))&&(H.attributeNameCheck instanceof RegExp&&ht(H.attributeNameCheck,m)||H.attributeNameCheck instanceof Function&&H.attributeNameCheck(m))||m==="is"&&H.allowCustomizedBuiltInElements&&(H.tagNameCheck instanceof RegExp&&ht(H.tagNameCheck,S)||H.tagNameCheck instanceof Function&&H.tagNameCheck(S))))return!1}else if(!Nr[m]){if(!ht(D,Ke(S,x,""))){if(!((m==="src"||m==="xlink:href"||m==="href")&&d!=="script"&&ad(S,"data:")===0&&lo[d])){if(!(it&&!ht(w,Ke(S,x,"")))){if(S)return!1}}}}}}return!0},vo=function(d){return d!=="annotation-xml"&&Zo(d,F)},ko=function(d){jt("beforeSanitizeAttributes",d,null);const{attributes:m}=d;if(!m)return;const S={attrName:"",attrValue:"",keepAttr:!0,allowedAttributes:q};let Y=m.length;for(;Y--;){const nt=m[Y],{name:rt,namespaceURI:dt,value:$t}=nt,Ve=et(rt);let lt=rt==="value"?$t:ld($t);if(S.attrName=Ve,S.attrValue=lt,S.keepAttr=!0,S.forceKeepAttr=void 0,jt("uponSanitizeAttribute",d,S),lt=S.attrValue,ie&&ht(/((--!?|])>)|<\/(style|title)/i,lt)){Ei(rt,d);continue}if(S.forceKeepAttr||(Ei(rt,d),!S.keepAttr))continue;if(!At&&ht(/\/>/i,lt)){Ei(rt,d);continue}xt&&$i([St,te,M],wo=>{lt=Ke(lt,wo," ")});const So=et(d.nodeName);if(To(So,Ve,lt)){if(so&&(Ve==="id"||Ve==="name")&&(Ei(rt,d),lt=ch+lt),N&&typeof p=="object"&&typeof p.getAttributeType=="function"&&!dt)switch(p.getAttributeType(So,Ve)){case"TrustedHTML":{lt=N.createHTML(lt);break}case"TrustedScriptURL":{lt=N.createScriptURL(lt);break}}try{dt?d.setAttributeNS(dt,rt,lt):d.setAttribute(rt,lt),Co(d)?It(d):Ko(e.removed)}catch{}}}jt("afterSanitizeAttributes",d,null)},_h=function B(d){let m=null;const S=yo(d);for(jt("beforeSanitizeShadowDOM",d,null);m=S.nextNode();)jt("uponSanitizeShadowNode",m,null),!bo(m)&&(m.content instanceof o&&B(m.content),ko(m));jt("afterSanitizeShadowDOM",d,null)};return e.sanitize=function(B){let d=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},m=null,S=null,Y=null,nt=null;if(Rr=!B,Rr&&(B=""),typeof B!="string"&&!xo(B))if(typeof B.toString=="function"){if(B=B.toString(),typeof B!="string")throw Ze("dirty is not a string, aborting")}else throw Ze("toString is not a function");if(!e.isSupported)return B;if(Ir||qr(d),e.removed=[],typeof B=="string"&&(Ue=!1),Ue){if(B.nodeName){const $t=et(B.nodeName);if(!$[$t]||Ct[$t])throw Ze("root node is forbidden and cannot be sanitized in-place")}}else if(B instanceof a)m=_o(""),S=m.ownerDocument.importNode(B,!0),S.nodeType===Qe.element&&S.nodeName==="BODY"||S.nodeName==="HTML"?m=S:m.appendChild(S);else{if(!ve&&!xt&&!ce&&B.indexOf("<")===-1)return N&&Ai?N.createHTML(B):B;if(m=_o(B),!m)return ve?null:Ai?j:""}m&&$r&&It(m.firstChild);const rt=yo(Ue?B:m);for(;Y=rt.nextNode();)bo(Y)||(Y.content instanceof o&&_h(Y.content),ko(Y));if(Ue)return B;if(ve){if(Bi)for(nt=Jt.call(m.ownerDocument);m.firstChild;)nt.appendChild(m.firstChild);else nt=m;return(q.shadowroot||q.shadowrootmode)&&(nt=Z.call(r,nt,!0)),nt}let dt=ce?m.outerHTML:m.innerHTML;return ce&&$["!doctype"]&&m.ownerDocument&&m.ownerDocument.doctype&&m.ownerDocument.doctype.name&&ht(Ea,m.ownerDocument.doctype.name)&&(dt=" +`+dt),xt&&$i([St,te,M],$t=>{dt=Ke(dt,$t," ")}),N&&Ai?N.createHTML(dt):dt},e.setConfig=function(){let B=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};qr(B),Ir=!0},e.clearConfig=function(){Be=null,Ir=!1},e.isValidAttribute=function(B,d,m){Be||qr({});const S=et(B),Y=et(d);return To(S,Y,m)},e.addHook=function(B,d){typeof d=="function"&&(R[B]=R[B]||[],Xe(R[B],d))},e.removeHook=function(B){if(R[B])return Ko(R[B])},e.removeHooks=function(B){R[B]&&(R[B]=[])},e.removeAllHooks=function(){R={}},e}var $e=Oa();const Hi={min:{r:0,g:0,b:0,s:0,l:0,a:0},max:{r:255,g:255,b:255,h:360,s:100,l:100,a:1},clamp:{r:t=>t>=255?255:t<0?0:t,g:t=>t>=255?255:t<0?0:t,b:t=>t>=255?255:t<0?0:t,h:t=>t%360,s:t=>t>=100?100:t<0?0:t,l:t=>t>=100?100:t<0?0:t,a:t=>t>=1?1:t<0?0:t},toLinear:t=>{const e=t/255;return t>.03928?Math.pow((e+.055)/1.055,2.4):e/12.92},hue2rgb:(t,e,i)=>(i<0&&(i+=1),i>1&&(i-=1),i<1/6?t+(e-t)*6*i:i<1/2?e:i<2/3?t+(e-t)*(2/3-i)*6:t),hsl2rgb:({h:t,s:e,l:i},r)=>{if(!e)return i*2.55;t/=360,e/=100,i/=100;const n=i<.5?i*(1+e):i+e-i*e,o=2*i-n;switch(r){case"r":return Hi.hue2rgb(o,n,t+1/3)*255;case"g":return Hi.hue2rgb(o,n,t)*255;case"b":return Hi.hue2rgb(o,n,t-1/3)*255}},rgb2hsl:({r:t,g:e,b:i},r)=>{t/=255,e/=255,i/=255;const n=Math.max(t,e,i),o=Math.min(t,e,i),s=(n+o)/2;if(r==="l")return s*100;if(n===o)return 0;const a=n-o,l=s>.5?a/(2-n-o):a/(n+o);if(r==="s")return l*100;switch(n){case t:return((e-i)/a+(ee>i?Math.min(e,Math.max(i,t)):Math.min(i,Math.max(e,t)),round:t=>Math.round(t*1e10)/1e10},kd={dec2hex:t=>{const e=Math.round(t).toString(16);return e.length>1?e:`0${e}`}},I={channel:Hi,lang:vd,unit:kd},re={};for(let t=0;t<=255;t++)re[t]=I.unit.dec2hex(t);const ot={ALL:0,RGB:1,HSL:2};class Sd{constructor(){this.type=ot.ALL}get(){return this.type}set(e){if(this.type&&this.type!==e)throw new Error("Cannot change both RGB and HSL channels at the same time");this.type=e}reset(){this.type=ot.ALL}is(e){return this.type===e}}class wd{constructor(e,i){this.color=i,this.changed=!1,this.data=e,this.type=new Sd}set(e,i){return this.color=i,this.changed=!1,this.data=e,this.type.type=ot.ALL,this}_ensureHSL(){const e=this.data,{h:i,s:r,l:n}=e;i===void 0&&(e.h=I.channel.rgb2hsl(e,"h")),r===void 0&&(e.s=I.channel.rgb2hsl(e,"s")),n===void 0&&(e.l=I.channel.rgb2hsl(e,"l"))}_ensureRGB(){const e=this.data,{r:i,g:r,b:n}=e;i===void 0&&(e.r=I.channel.hsl2rgb(e,"r")),r===void 0&&(e.g=I.channel.hsl2rgb(e,"g")),n===void 0&&(e.b=I.channel.hsl2rgb(e,"b"))}get r(){const e=this.data,i=e.r;return!this.type.is(ot.HSL)&&i!==void 0?i:(this._ensureHSL(),I.channel.hsl2rgb(e,"r"))}get g(){const e=this.data,i=e.g;return!this.type.is(ot.HSL)&&i!==void 0?i:(this._ensureHSL(),I.channel.hsl2rgb(e,"g"))}get b(){const e=this.data,i=e.b;return!this.type.is(ot.HSL)&&i!==void 0?i:(this._ensureHSL(),I.channel.hsl2rgb(e,"b"))}get h(){const e=this.data,i=e.h;return!this.type.is(ot.RGB)&&i!==void 0?i:(this._ensureRGB(),I.channel.rgb2hsl(e,"h"))}get s(){const e=this.data,i=e.s;return!this.type.is(ot.RGB)&&i!==void 0?i:(this._ensureRGB(),I.channel.rgb2hsl(e,"s"))}get l(){const e=this.data,i=e.l;return!this.type.is(ot.RGB)&&i!==void 0?i:(this._ensureRGB(),I.channel.rgb2hsl(e,"l"))}get a(){return this.data.a}set r(e){this.type.set(ot.RGB),this.changed=!0,this.data.r=e}set g(e){this.type.set(ot.RGB),this.changed=!0,this.data.g=e}set b(e){this.type.set(ot.RGB),this.changed=!0,this.data.b=e}set h(e){this.type.set(ot.HSL),this.changed=!0,this.data.h=e}set s(e){this.type.set(ot.HSL),this.changed=!0,this.data.s=e}set l(e){this.type.set(ot.HSL),this.changed=!0,this.data.l=e}set a(e){this.changed=!0,this.data.a=e}}const br=new wd({r:0,g:0,b:0,a:0},"transparent"),Oe={re:/^#((?:[a-f0-9]{2}){2,4}|[a-f0-9]{3})$/i,parse:t=>{if(t.charCodeAt(0)!==35)return;const e=t.match(Oe.re);if(!e)return;const i=e[1],r=parseInt(i,16),n=i.length,o=n%4===0,s=n>4,a=s?1:17,l=s?8:4,h=o?0:-1,u=s?255:15;return br.set({r:(r>>l*(h+3)&u)*a,g:(r>>l*(h+2)&u)*a,b:(r>>l*(h+1)&u)*a,a:o?(r&u)*a/255:1},t)},stringify:t=>{const{r:e,g:i,b:r,a:n}=t;return n<1?`#${re[Math.round(e)]}${re[Math.round(i)]}${re[Math.round(r)]}${re[Math.round(n*255)]}`:`#${re[Math.round(e)]}${re[Math.round(i)]}${re[Math.round(r)]}`}},pe={re:/^hsla?\(\s*?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e-?\d+)?(?:deg|grad|rad|turn)?)\s*?(?:,|\s)\s*?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e-?\d+)?%)\s*?(?:,|\s)\s*?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e-?\d+)?%)(?:\s*?(?:,|\/)\s*?\+?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e-?\d+)?(%)?))?\s*?\)$/i,hueRe:/^(.+?)(deg|grad|rad|turn)$/i,_hue2deg:t=>{const e=t.match(pe.hueRe);if(e){const[,i,r]=e;switch(r){case"grad":return I.channel.clamp.h(parseFloat(i)*.9);case"rad":return I.channel.clamp.h(parseFloat(i)*180/Math.PI);case"turn":return I.channel.clamp.h(parseFloat(i)*360)}}return I.channel.clamp.h(parseFloat(t))},parse:t=>{const e=t.charCodeAt(0);if(e!==104&&e!==72)return;const i=t.match(pe.re);if(!i)return;const[,r,n,o,s,a]=i;return br.set({h:pe._hue2deg(r),s:I.channel.clamp.s(parseFloat(n)),l:I.channel.clamp.l(parseFloat(o)),a:s?I.channel.clamp.a(a?parseFloat(s)/100:parseFloat(s)):1},t)},stringify:t=>{const{h:e,s:i,l:r,a:n}=t;return n<1?`hsla(${I.lang.round(e)}, ${I.lang.round(i)}%, ${I.lang.round(r)}%, ${n})`:`hsl(${I.lang.round(e)}, ${I.lang.round(i)}%, ${I.lang.round(r)}%)`}},oi={colors:{aliceblue:"#f0f8ff",antiquewhite:"#faebd7",aqua:"#00ffff",aquamarine:"#7fffd4",azure:"#f0ffff",beige:"#f5f5dc",bisque:"#ffe4c4",black:"#000000",blanchedalmond:"#ffebcd",blue:"#0000ff",blueviolet:"#8a2be2",brown:"#a52a2a",burlywood:"#deb887",cadetblue:"#5f9ea0",chartreuse:"#7fff00",chocolate:"#d2691e",coral:"#ff7f50",cornflowerblue:"#6495ed",cornsilk:"#fff8dc",crimson:"#dc143c",cyanaqua:"#00ffff",darkblue:"#00008b",darkcyan:"#008b8b",darkgoldenrod:"#b8860b",darkgray:"#a9a9a9",darkgreen:"#006400",darkgrey:"#a9a9a9",darkkhaki:"#bdb76b",darkmagenta:"#8b008b",darkolivegreen:"#556b2f",darkorange:"#ff8c00",darkorchid:"#9932cc",darkred:"#8b0000",darksalmon:"#e9967a",darkseagreen:"#8fbc8f",darkslateblue:"#483d8b",darkslategray:"#2f4f4f",darkslategrey:"#2f4f4f",darkturquoise:"#00ced1",darkviolet:"#9400d3",deeppink:"#ff1493",deepskyblue:"#00bfff",dimgray:"#696969",dimgrey:"#696969",dodgerblue:"#1e90ff",firebrick:"#b22222",floralwhite:"#fffaf0",forestgreen:"#228b22",fuchsia:"#ff00ff",gainsboro:"#dcdcdc",ghostwhite:"#f8f8ff",gold:"#ffd700",goldenrod:"#daa520",gray:"#808080",green:"#008000",greenyellow:"#adff2f",grey:"#808080",honeydew:"#f0fff0",hotpink:"#ff69b4",indianred:"#cd5c5c",indigo:"#4b0082",ivory:"#fffff0",khaki:"#f0e68c",lavender:"#e6e6fa",lavenderblush:"#fff0f5",lawngreen:"#7cfc00",lemonchiffon:"#fffacd",lightblue:"#add8e6",lightcoral:"#f08080",lightcyan:"#e0ffff",lightgoldenrodyellow:"#fafad2",lightgray:"#d3d3d3",lightgreen:"#90ee90",lightgrey:"#d3d3d3",lightpink:"#ffb6c1",lightsalmon:"#ffa07a",lightseagreen:"#20b2aa",lightskyblue:"#87cefa",lightslategray:"#778899",lightslategrey:"#778899",lightsteelblue:"#b0c4de",lightyellow:"#ffffe0",lime:"#00ff00",limegreen:"#32cd32",linen:"#faf0e6",magenta:"#ff00ff",maroon:"#800000",mediumaquamarine:"#66cdaa",mediumblue:"#0000cd",mediumorchid:"#ba55d3",mediumpurple:"#9370db",mediumseagreen:"#3cb371",mediumslateblue:"#7b68ee",mediumspringgreen:"#00fa9a",mediumturquoise:"#48d1cc",mediumvioletred:"#c71585",midnightblue:"#191970",mintcream:"#f5fffa",mistyrose:"#ffe4e1",moccasin:"#ffe4b5",navajowhite:"#ffdead",navy:"#000080",oldlace:"#fdf5e6",olive:"#808000",olivedrab:"#6b8e23",orange:"#ffa500",orangered:"#ff4500",orchid:"#da70d6",palegoldenrod:"#eee8aa",palegreen:"#98fb98",paleturquoise:"#afeeee",palevioletred:"#db7093",papayawhip:"#ffefd5",peachpuff:"#ffdab9",peru:"#cd853f",pink:"#ffc0cb",plum:"#dda0dd",powderblue:"#b0e0e6",purple:"#800080",rebeccapurple:"#663399",red:"#ff0000",rosybrown:"#bc8f8f",royalblue:"#4169e1",saddlebrown:"#8b4513",salmon:"#fa8072",sandybrown:"#f4a460",seagreen:"#2e8b57",seashell:"#fff5ee",sienna:"#a0522d",silver:"#c0c0c0",skyblue:"#87ceeb",slateblue:"#6a5acd",slategray:"#708090",slategrey:"#708090",snow:"#fffafa",springgreen:"#00ff7f",tan:"#d2b48c",teal:"#008080",thistle:"#d8bfd8",transparent:"#00000000",turquoise:"#40e0d0",violet:"#ee82ee",wheat:"#f5deb3",white:"#ffffff",whitesmoke:"#f5f5f5",yellow:"#ffff00",yellowgreen:"#9acd32"},parse:t=>{t=t.toLowerCase();const e=oi.colors[t];if(e)return Oe.parse(e)},stringify:t=>{const e=Oe.stringify(t);for(const i in oi.colors)if(oi.colors[i]===e)return i}},ni={re:/^rgba?\(\s*?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e\d+)?(%?))\s*?(?:,|\s)\s*?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e\d+)?(%?))\s*?(?:,|\s)\s*?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e\d+)?(%?))(?:\s*?(?:,|\/)\s*?\+?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e\d+)?(%?)))?\s*?\)$/i,parse:t=>{const e=t.charCodeAt(0);if(e!==114&&e!==82)return;const i=t.match(ni.re);if(!i)return;const[,r,n,o,s,a,l,h,u]=i;return br.set({r:I.channel.clamp.r(n?parseFloat(r)*2.55:parseFloat(r)),g:I.channel.clamp.g(s?parseFloat(o)*2.55:parseFloat(o)),b:I.channel.clamp.b(l?parseFloat(a)*2.55:parseFloat(a)),a:h?I.channel.clamp.a(u?parseFloat(h)/100:parseFloat(h)):1},t)},stringify:t=>{const{r:e,g:i,b:r,a:n}=t;return n<1?`rgba(${I.lang.round(e)}, ${I.lang.round(i)}, ${I.lang.round(r)}, ${I.lang.round(n)})`:`rgb(${I.lang.round(e)}, ${I.lang.round(i)}, ${I.lang.round(r)})`}},Pt={format:{keyword:oi,hex:Oe,rgb:ni,rgba:ni,hsl:pe,hsla:pe},parse:t=>{if(typeof t!="string")return t;const e=Oe.parse(t)||ni.parse(t)||pe.parse(t)||oi.parse(t);if(e)return e;throw new Error(`Unsupported color format: "${t}"`)},stringify:t=>!t.changed&&t.color?t.color:t.type.is(ot.HSL)||t.data.r===void 0?pe.stringify(t):t.a<1||!Number.isInteger(t.r)||!Number.isInteger(t.g)||!Number.isInteger(t.b)?ni.stringify(t):Oe.stringify(t)},Ma=(t,e)=>{const i=Pt.parse(t);for(const r in e)i[r]=I.channel.clamp[r](e[r]);return Pt.stringify(i)},si=(t,e,i=0,r=1)=>{if(typeof t!="number")return Ma(t,{a:e});const n=br.set({r:I.channel.clamp.r(t),g:I.channel.clamp.g(e),b:I.channel.clamp.b(i),a:I.channel.clamp.a(r)});return Pt.stringify(n)},Bd=t=>{const{r:e,g:i,b:r}=Pt.parse(t),n=.2126*I.channel.toLinear(e)+.7152*I.channel.toLinear(i)+.0722*I.channel.toLinear(r);return I.lang.round(n)},Ad=t=>Bd(t)>=.5,vi=t=>!Ad(t),Ia=(t,e,i)=>{const r=Pt.parse(t),n=r[e],o=I.channel.clamp[e](n+i);return n!==o&&(r[e]=o),Pt.stringify(r)},A=(t,e)=>Ia(t,"l",e),O=(t,e)=>Ia(t,"l",-e),g=(t,e)=>{const i=Pt.parse(t),r={};for(const n in e)e[n]&&(r[n]=i[n]+e[n]);return Ma(t,r)},Ld=(t,e,i=50)=>{const{r,g:n,b:o,a:s}=Pt.parse(t),{r:a,g:l,b:h,a:u}=Pt.parse(e),f=i/100,c=f*2-1,p=s-u,b=((c*p===-1?c:(c+p)/(1+c*p))+1)/2,k=1-b,P=r*b+a*k,v=n*b+l*k,U=o*b+h*k,N=s*f+u*(1-f);return si(P,v,U,N)},C=(t,e=100)=>{const i=Pt.parse(t);return i.r=255-i.r,i.g=255-i.g,i.b=255-i.b,Ld(i,t,e)};var $a=typeof global=="object"&&global&&global.Object===Object&&global,Fd=typeof self=="object"&&self&&self.Object===Object&&self,Wt=$a||Fd||Function("return this")(),rr=Wt.Symbol,Da=Object.prototype,Ed=Da.hasOwnProperty,Od=Da.toString,ti=rr?rr.toStringTag:void 0;function Md(t){var e=Ed.call(t,ti),i=t[ti];try{t[ti]=void 0;var r=!0}catch{}var n=Od.call(t);return r&&(e?t[ti]=i:delete t[ti]),n}var Id=Object.prototype,$d=Id.toString;function Dd(t){return $d.call(t)}var Nd="[object Null]",Rd="[object Undefined]",rs=rr?rr.toStringTag:void 0;function We(t){return t==null?t===void 0?Rd:Nd:rs&&rs in Object(t)?Md(t):Dd(t)}function xe(t){var e=typeof t;return t!=null&&(e=="object"||e=="function")}var Pd="[object AsyncFunction]",qd="[object Function]",zd="[object GeneratorFunction]",Wd="[object Proxy]";function Nn(t){if(!xe(t))return!1;var e=We(t);return e==qd||e==zd||e==Pd||e==Wd}var Xr=Wt["__core-js_shared__"],ns=function(){var t=/[^.]+$/.exec(Xr&&Xr.keys&&Xr.keys.IE_PROTO||"");return t?"Symbol(src)_1."+t:""}();function Hd(t){return!!ns&&ns in t}var jd=Function.prototype,Ud=jd.toString;function be(t){if(t!=null){try{return Ud.call(t)}catch{}try{return t+""}catch{}}return""}var Yd=/[\\^$.*+?()[\]{}|]/g,Vd=/^\[object .+?Constructor\]$/,Gd=Function.prototype,Xd=Object.prototype,Kd=Gd.toString,Zd=Xd.hasOwnProperty,Jd=RegExp("^"+Kd.call(Zd).replace(Yd,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function Qd(t){if(!xe(t)||Hd(t))return!1;var e=Nn(t)?Jd:Vd;return e.test(be(t))}function tp(t,e){return t?.[e]}function Te(t,e){var i=tp(t,e);return Qd(i)?i:void 0}var gi=Te(Object,"create");function ep(){this.__data__=gi?gi(null):{},this.size=0}function ip(t){var e=this.has(t)&&delete this.__data__[t];return this.size-=e?1:0,e}var rp="__lodash_hash_undefined__",np=Object.prototype,op=np.hasOwnProperty;function sp(t){var e=this.__data__;if(gi){var i=e[t];return i===rp?void 0:i}return op.call(e,t)?e[t]:void 0}var ap=Object.prototype,lp=ap.hasOwnProperty;function hp(t){var e=this.__data__;return gi?e[t]!==void 0:lp.call(e,t)}var cp="__lodash_hash_undefined__";function up(t,e){var i=this.__data__;return this.size+=this.has(t)?0:1,i[t]=gi&&e===void 0?cp:e,this}function ye(t){var e=-1,i=t==null?0:t.length;for(this.clear();++e-1}function yp(t,e){var i=this.__data__,r=vr(i,t);return r<0?(++this.size,i.push([t,e])):i[r][1]=e,this}function Zt(t){var e=-1,i=t==null?0:t.length;for(this.clear();++e-1&&t%1==0&&t<=Up}function wr(t){return t!=null&&za(t.length)&&!Nn(t)}function Yp(t){return Si(t)&&wr(t)}function Vp(){return!1}var Wa=typeof exports=="object"&&exports&&!exports.nodeType&&exports,us=Wa&&typeof module=="object"&&module&&!module.nodeType&&module,Gp=us&&us.exports===Wa,fs=Gp?Wt.Buffer:void 0,Xp=fs?fs.isBuffer:void 0,Pn=Xp||Vp,Kp="[object Object]",Zp=Function.prototype,Jp=Object.prototype,Ha=Zp.toString,Qp=Jp.hasOwnProperty,tg=Ha.call(Object);function eg(t){if(!Si(t)||We(t)!=Kp)return!1;var e=Pa(t);if(e===null)return!0;var i=Qp.call(e,"constructor")&&e.constructor;return typeof i=="function"&&i instanceof i&&Ha.call(i)==tg}var ig="[object Arguments]",rg="[object Array]",ng="[object Boolean]",og="[object Date]",sg="[object Error]",ag="[object Function]",lg="[object Map]",hg="[object Number]",cg="[object Object]",ug="[object RegExp]",fg="[object Set]",dg="[object String]",pg="[object WeakMap]",gg="[object ArrayBuffer]",mg="[object DataView]",_g="[object Float32Array]",yg="[object Float64Array]",Cg="[object Int8Array]",xg="[object Int16Array]",bg="[object Int32Array]",Tg="[object Uint8Array]",vg="[object Uint8ClampedArray]",kg="[object Uint16Array]",Sg="[object Uint32Array]",V={};V[_g]=V[yg]=V[Cg]=V[xg]=V[bg]=V[Tg]=V[vg]=V[kg]=V[Sg]=!0;V[ig]=V[rg]=V[gg]=V[ng]=V[mg]=V[og]=V[sg]=V[ag]=V[lg]=V[hg]=V[cg]=V[ug]=V[fg]=V[dg]=V[pg]=!1;function wg(t){return Si(t)&&za(t.length)&&!!V[We(t)]}function Bg(t){return function(e){return t(e)}}var ja=typeof exports=="object"&&exports&&!exports.nodeType&&exports,ai=ja&&typeof module=="object"&&module&&!module.nodeType&&module,Ag=ai&&ai.exports===ja,Kr=Ag&&$a.process,ds=function(){try{var t=ai&&ai.require&&ai.require("util").types;return t||Kr&&Kr.binding&&Kr.binding("util")}catch{}}(),ps=ds&&ds.isTypedArray,qn=ps?Bg(ps):wg;function pn(t,e){if(!(e==="constructor"&&typeof t[e]=="function")&&e!="__proto__")return t[e]}var Lg=Object.prototype,Fg=Lg.hasOwnProperty;function Eg(t,e,i){var r=t[e];(!(Fg.call(t,e)&&Tr(r,i))||i===void 0&&!(e in t))&&Rn(t,e,i)}function Og(t,e,i,r){var n=!i;i||(i={});for(var o=-1,s=e.length;++o-1&&t%1==0&&t0){if(++e>=Xg)return arguments[0]}else e=0;return t.apply(void 0,arguments)}}var Qg=Jg(Gg);function tm(t,e){return Qg(Yg(t,e,Ga),t+"")}function em(t,e,i){if(!xe(i))return!1;var r=typeof e;return(r=="number"?wr(i)&&Ua(e,i.length):r=="string"&&e in i)?Tr(i[e],t):!1}function im(t){return tm(function(e,i){var r=-1,n=i.length,o=n>1?i[n-1]:void 0,s=n>2?i[2]:void 0;for(o=t.length>3&&typeof o=="function"?(n--,o):void 0,s&&em(i[0],i[1],s)&&(o=n<3?void 0:o,n=1),e=Object(e);++r0?_i(je,--kt):0,Ne--,J===10&&(Ne=1,Br--),J}function Et(){return J=kt2||yi(J)>3?"":" "}function pm(t,e){for(;--e&&Et()&&!(J<48||J>102||J>57&&J<65||J>70&&J<97););return Ar(t,Ui()+(e<6&&oe()==32&&Et()==32))}function gn(t){for(;Et();)switch(J){case t:return kt;case 34:case 39:t!==34&&t!==39&&gn(J);break;case 40:t===41&&gn(t);break;case 92:Et();break}return kt}function gm(t,e){for(;Et()&&t+J!==57;)if(t+J===84&&oe()===47)break;return"/*"+Ar(e,kt-1)+"*"+zn(t===47?t:Et())}function mm(t){for(;!yi(oe());)Et();return Ar(t,kt)}function _m(t){return fm(Yi("",null,null,null,[""],t=um(t),0,[0],t))}function Yi(t,e,i,r,n,o,s,a,l){for(var h=0,u=0,f=s,c=0,p=0,_=0,b=1,k=1,P=1,v=0,U="",N=n,j=o,G=r,W=U;k;)switch(_=v,v=Et()){case 40:if(_!=108&&_i(W,f-1)==58){am(W+=ji(Zr(v),"&","&\f"),"&\f",Ja(h?a[h-1]:0))!=-1&&(P=-1);break}case 34:case 39:case 91:W+=Zr(v);break;case 9:case 10:case 13:case 32:W+=dm(_);break;case 92:W+=pm(Ui()-1,7);continue;case 47:switch(oe()){case 42:case 47:Ni(ym(gm(Et(),Ui()),e,i,l),l),(yi(_||1)==5||yi(oe()||1)==5)&&Dt(W)&&De(W,-1,void 0)!==" "&&(W+=" ");break;default:W+="/"}break;case 123*b:a[h++]=Dt(W)*P;case 125*b:case 59:case 0:switch(v){case 0:case 125:k=0;case 59+u:P==-1&&(W=ji(W,/\f/g,"")),p>0&&(Dt(W)-f||b===0&&_===47)&&Ni(p>32?_s(W+";",r,i,f-1,l):_s(ji(W," ","")+";",r,i,f-2,l),l);break;case 59:W+=";";default:if(Ni(G=ms(W,e,i,h,u,n,a,U,N=[],j=[],f,o),o),v===123)if(u===0)Yi(W,e,G,G,N,o,f,a,j);else switch(c===99&&_i(W,3)===110?100:c){case 100:case 108:case 109:case 115:Yi(t,G,G,r&&Ni(ms(t,G,G,0,0,n,a,U,n,N=[],f,j),j),n,j,f,a,r?N:j);break;default:Yi(W,G,G,G,[""],j,0,a,j)}}h=u=p=0,b=P=1,U=W="",f=s;break;case 58:f=1+Dt(W),p=_;default:if(b<1){if(v==123)--b;else if(v==125&&b++==0&&cm()==125)continue}switch(W+=zn(v),v*b){case 38:P=u>0?1:(W+="\f",-1);break;case 44:a[h++]=(Dt(W)-1)*P,P=1;break;case 64:oe()===45&&(W+=Zr(Et())),c=oe(),u=f=Dt(U=W+=mm(Ui())),v++;break;case 45:_===45&&Dt(W)==2&&(b=0)}}return o}function ms(t,e,i,r,n,o,s,a,l,h,u,f){for(var c=n-1,p=n===0?o:[""],_=lm(p),b=0,k=0,P=0;b0?p[v]+" "+U:ji(U,/&\f/g,p[v])))&&(l[P++]=N);return Wn(t,e,i,n===0?Ka:a,l,h,u,f)}function ym(t,e,i,r){return Wn(t,e,i,Xa,zn(hm()),De(t,2,-2),0,r)}function _s(t,e,i,r,n){return Wn(t,e,i,Za,De(t,0,r),De(t,r+1,-1),r,n)}function mn(t,e){for(var i="",r=0;r{},debug:(...t)=>{},info:(...t)=>{},warn:(...t)=>{},error:(...t)=>{},fatal:(...t)=>{}},Hn=function(t="fatal"){let e=Yt.fatal;typeof t=="string"?(t=t.toLowerCase(),t in Yt&&(e=Yt[t])):typeof t=="number"&&(e=t),E.trace=()=>{},E.debug=()=>{},E.info=()=>{},E.warn=()=>{},E.error=()=>{},E.fatal=()=>{},e<=Yt.fatal&&(E.fatal=console.error?console.error.bind(console,bt("FATAL"),"color: orange"):console.log.bind(console,"\x1B[35m",bt("FATAL"))),e<=Yt.error&&(E.error=console.error?console.error.bind(console,bt("ERROR"),"color: orange"):console.log.bind(console,"\x1B[31m",bt("ERROR"))),e<=Yt.warn&&(E.warn=console.warn?console.warn.bind(console,bt("WARN"),"color: orange"):console.log.bind(console,"\x1B[33m",bt("WARN"))),e<=Yt.info&&(E.info=console.info?console.info.bind(console,bt("INFO"),"color: lightblue"):console.log.bind(console,"\x1B[34m",bt("INFO"))),e<=Yt.debug&&(E.debug=console.debug?console.debug.bind(console,bt("DEBUG"),"color: lightgreen"):console.log.bind(console,"\x1B[32m",bt("DEBUG"))),e<=Yt.trace&&(E.trace=console.debug?console.debug.bind(console,bt("TRACE"),"color: lightgreen"):console.log.bind(console,"\x1B[32m",bt("TRACE")))},bt=t=>`%c${Th().format("ss.SSS")} : ${t} : `,wi=//gi,Im=t=>t?il(t).replace(/\\n/g,"#br#").split("#br#"):[""],$m=(()=>{let t=!1;return()=>{t||(Dm(),t=!0)}})();function Dm(){const t="data-temp-href-target";$e.addHook("beforeSanitizeAttributes",e=>{e.tagName==="A"&&e.hasAttribute("target")&&e.setAttribute(t,e.getAttribute("target")||"")}),$e.addHook("afterSanitizeAttributes",e=>{e.tagName==="A"&&e.hasAttribute(t)&&(e.setAttribute("target",e.getAttribute(t)||""),e.removeAttribute(t),e.getAttribute("target")==="_blank"&&e.setAttribute("rel","noopener"))})}const el=t=>($m(),$e.sanitize(t)),vs=(t,e)=>{var i;if(((i=e.flowchart)==null?void 0:i.htmlLabels)!==!1){const r=e.securityLevel;r==="antiscript"||r==="strict"?t=el(t):r!=="loose"&&(t=il(t),t=t.replace(//g,">"),t=t.replace(/=/g,"="),t=qm(t))}return t},Ci=(t,e)=>t&&(e.dompurifyConfig?t=$e.sanitize(vs(t,e),e.dompurifyConfig).toString():t=$e.sanitize(vs(t,e),{FORBID_TAGS:["style"]}).toString(),t),Nm=(t,e)=>typeof t=="string"?Ci(t,e):t.flat().map(i=>Ci(i,e)),Rm=t=>wi.test(t),Pm=t=>t.split(wi),qm=t=>t.replace(/#br#/g,"
    "),il=t=>t.replace(wi,"#br#"),zm=t=>{let e="";return t&&(e=window.location.protocol+"//"+window.location.host+window.location.pathname+window.location.search,e=e.replaceAll(/\(/g,"\\("),e=e.replaceAll(/\)/g,"\\)")),e},rl=t=>!(t===!1||["false","null","0"].includes(String(t).trim().toLowerCase())),Wm=function(...t){const e=t.filter(i=>!isNaN(i));return Math.max(...e)},Hm=function(...t){const e=t.filter(i=>!isNaN(i));return Math.min(...e)},Ob=function(t){const e=t.split(/(,)/),i=[];for(let r=0;r0&&r+1Math.max(0,t.split(e).length-1),jm=(t,e)=>{const i=bn(t,"~"),r=bn(e,"~");return i===1&&r===1},Um=t=>{const e=bn(t,"~");let i=!1;if(e<=1)return t;e%2!==0&&t.startsWith("~")&&(t=t.substring(1),i=!0);const r=[...t];let n=r.indexOf("~"),o=r.lastIndexOf("~");for(;n!==-1&&o!==-1&&n!==o;)r[n]="<",r[o]=">",n=r.indexOf("~"),o=r.lastIndexOf("~");return i&&r.unshift("~"),r.join("")},ks=()=>window.MathMLElement!==void 0,Tn=/\$\$(.*)\$\$/g,Ss=t=>{var e;return(((e=t.match(Tn))==null?void 0:e.length)??0)>0},Mb=async(t,e)=>{t=await Ym(t,e);const i=document.createElement("div");i.innerHTML=t,i.id="katex-temp",i.style.visibility="hidden",i.style.position="absolute",i.style.top="0";const r=document.querySelector("body");r?.insertAdjacentElement("beforeend",i);const n={width:i.clientWidth,height:i.clientHeight};return i.remove(),n},Ym=async(t,e)=>{if(!Ss(t))return t;if(!ks()&&!e.legacyMathML)return t.replace(Tn,"MathML is unsupported in this environment.");const{default:i}=await K(async()=>{const{default:r}=await import("./katex-cqFQqex1.js");return{default:r}},[]);return t.split(wi).map(r=>Ss(r)?` +
    + ${r} +
    + `:`
    ${r}
    `).join("").replace(Tn,(r,n)=>i.renderToString(n,{throwOnError:!0,displayMode:!0,output:ks()?"mathml":"htmlAndMathml"}).replace(/\n/g," ").replace(//g,""))},jn={getRows:Im,sanitizeText:Ci,sanitizeTextOrArray:Nm,hasBreaks:Rm,splitBreaks:Pm,lineBreakRegex:wi,removeScript:el,getUrl:zm,evaluate:rl,getMax:Wm,getMin:Hm},ut=(t,e)=>e?g(t,{s:-40,l:10}):g(t,{s:-40,l:-10}),Lr="#ffffff",Fr="#f2f2f2";let Vm=class{constructor(){this.background="#f4f4f4",this.primaryColor="#fff4dd",this.noteBkgColor="#fff5ad",this.noteTextColor="#333",this.THEME_COLOR_LIMIT=12,this.fontFamily='"trebuchet ms", verdana, arial, sans-serif',this.fontSize="16px"}updateColors(){var e,i,r,n,o,s,a,l,h,u,f;if(this.primaryTextColor=this.primaryTextColor||(this.darkMode?"#eee":"#333"),this.secondaryColor=this.secondaryColor||g(this.primaryColor,{h:-120}),this.tertiaryColor=this.tertiaryColor||g(this.primaryColor,{h:180,l:5}),this.primaryBorderColor=this.primaryBorderColor||ut(this.primaryColor,this.darkMode),this.secondaryBorderColor=this.secondaryBorderColor||ut(this.secondaryColor,this.darkMode),this.tertiaryBorderColor=this.tertiaryBorderColor||ut(this.tertiaryColor,this.darkMode),this.noteBorderColor=this.noteBorderColor||ut(this.noteBkgColor,this.darkMode),this.noteBkgColor=this.noteBkgColor||"#fff5ad",this.noteTextColor=this.noteTextColor||"#333",this.secondaryTextColor=this.secondaryTextColor||C(this.secondaryColor),this.tertiaryTextColor=this.tertiaryTextColor||C(this.tertiaryColor),this.lineColor=this.lineColor||C(this.background),this.arrowheadColor=this.arrowheadColor||C(this.background),this.textColor=this.textColor||this.primaryTextColor,this.border2=this.border2||this.tertiaryBorderColor,this.nodeBkg=this.nodeBkg||this.primaryColor,this.mainBkg=this.mainBkg||this.primaryColor,this.nodeBorder=this.nodeBorder||this.primaryBorderColor,this.clusterBkg=this.clusterBkg||this.tertiaryColor,this.clusterBorder=this.clusterBorder||this.tertiaryBorderColor,this.defaultLinkColor=this.defaultLinkColor||this.lineColor,this.titleColor=this.titleColor||this.tertiaryTextColor,this.edgeLabelBackground=this.edgeLabelBackground||(this.darkMode?O(this.secondaryColor,30):this.secondaryColor),this.nodeTextColor=this.nodeTextColor||this.primaryTextColor,this.actorBorder=this.actorBorder||this.primaryBorderColor,this.actorBkg=this.actorBkg||this.mainBkg,this.actorTextColor=this.actorTextColor||this.primaryTextColor,this.actorLineColor=this.actorLineColor||"grey",this.labelBoxBkgColor=this.labelBoxBkgColor||this.actorBkg,this.signalColor=this.signalColor||this.textColor,this.signalTextColor=this.signalTextColor||this.textColor,this.labelBoxBorderColor=this.labelBoxBorderColor||this.actorBorder,this.labelTextColor=this.labelTextColor||this.actorTextColor,this.loopTextColor=this.loopTextColor||this.actorTextColor,this.activationBorderColor=this.activationBorderColor||O(this.secondaryColor,10),this.activationBkgColor=this.activationBkgColor||this.secondaryColor,this.sequenceNumberColor=this.sequenceNumberColor||C(this.lineColor),this.sectionBkgColor=this.sectionBkgColor||this.tertiaryColor,this.altSectionBkgColor=this.altSectionBkgColor||"white",this.sectionBkgColor=this.sectionBkgColor||this.secondaryColor,this.sectionBkgColor2=this.sectionBkgColor2||this.primaryColor,this.excludeBkgColor=this.excludeBkgColor||"#eeeeee",this.taskBorderColor=this.taskBorderColor||this.primaryBorderColor,this.taskBkgColor=this.taskBkgColor||this.primaryColor,this.activeTaskBorderColor=this.activeTaskBorderColor||this.primaryColor,this.activeTaskBkgColor=this.activeTaskBkgColor||A(this.primaryColor,23),this.gridColor=this.gridColor||"lightgrey",this.doneTaskBkgColor=this.doneTaskBkgColor||"lightgrey",this.doneTaskBorderColor=this.doneTaskBorderColor||"grey",this.critBorderColor=this.critBorderColor||"#ff8888",this.critBkgColor=this.critBkgColor||"red",this.todayLineColor=this.todayLineColor||"red",this.taskTextColor=this.taskTextColor||this.textColor,this.taskTextOutsideColor=this.taskTextOutsideColor||this.textColor,this.taskTextLightColor=this.taskTextLightColor||this.textColor,this.taskTextColor=this.taskTextColor||this.primaryTextColor,this.taskTextDarkColor=this.taskTextDarkColor||this.textColor,this.taskTextClickableColor=this.taskTextClickableColor||"#003163",this.personBorder=this.personBorder||this.primaryBorderColor,this.personBkg=this.personBkg||this.mainBkg,this.transitionColor=this.transitionColor||this.lineColor,this.transitionLabelColor=this.transitionLabelColor||this.textColor,this.stateLabelColor=this.stateLabelColor||this.stateBkg||this.primaryTextColor,this.stateBkg=this.stateBkg||this.mainBkg,this.labelBackgroundColor=this.labelBackgroundColor||this.stateBkg,this.compositeBackground=this.compositeBackground||this.background||this.tertiaryColor,this.altBackground=this.altBackground||this.tertiaryColor,this.compositeTitleBackground=this.compositeTitleBackground||this.mainBkg,this.compositeBorder=this.compositeBorder||this.nodeBorder,this.innerEndBackground=this.nodeBorder,this.errorBkgColor=this.errorBkgColor||this.tertiaryColor,this.errorTextColor=this.errorTextColor||this.tertiaryTextColor,this.transitionColor=this.transitionColor||this.lineColor,this.specialStateColor=this.lineColor,this.cScale0=this.cScale0||this.primaryColor,this.cScale1=this.cScale1||this.secondaryColor,this.cScale2=this.cScale2||this.tertiaryColor,this.cScale3=this.cScale3||g(this.primaryColor,{h:30}),this.cScale4=this.cScale4||g(this.primaryColor,{h:60}),this.cScale5=this.cScale5||g(this.primaryColor,{h:90}),this.cScale6=this.cScale6||g(this.primaryColor,{h:120}),this.cScale7=this.cScale7||g(this.primaryColor,{h:150}),this.cScale8=this.cScale8||g(this.primaryColor,{h:210,l:150}),this.cScale9=this.cScale9||g(this.primaryColor,{h:270}),this.cScale10=this.cScale10||g(this.primaryColor,{h:300}),this.cScale11=this.cScale11||g(this.primaryColor,{h:330}),this.darkMode)for(let p=0;p{this[r]=e[r]}),this.updateColors(),i.forEach(r=>{this[r]=e[r]})}};const Gm=t=>{const e=new Vm;return e.calculate(t),e};let Xm=class{constructor(){this.background="#333",this.primaryColor="#1f2020",this.secondaryColor=A(this.primaryColor,16),this.tertiaryColor=g(this.primaryColor,{h:-160}),this.primaryBorderColor=C(this.background),this.secondaryBorderColor=ut(this.secondaryColor,this.darkMode),this.tertiaryBorderColor=ut(this.tertiaryColor,this.darkMode),this.primaryTextColor=C(this.primaryColor),this.secondaryTextColor=C(this.secondaryColor),this.tertiaryTextColor=C(this.tertiaryColor),this.lineColor=C(this.background),this.textColor=C(this.background),this.mainBkg="#1f2020",this.secondBkg="calculated",this.mainContrastColor="lightgrey",this.darkTextColor=A(C("#323D47"),10),this.lineColor="calculated",this.border1="#81B1DB",this.border2=si(255,255,255,.25),this.arrowheadColor="calculated",this.fontFamily='"trebuchet ms", verdana, arial, sans-serif',this.fontSize="16px",this.labelBackground="#181818",this.textColor="#ccc",this.THEME_COLOR_LIMIT=12,this.nodeBkg="calculated",this.nodeBorder="calculated",this.clusterBkg="calculated",this.clusterBorder="calculated",this.defaultLinkColor="calculated",this.titleColor="#F9FFFE",this.edgeLabelBackground="calculated",this.actorBorder="calculated",this.actorBkg="calculated",this.actorTextColor="calculated",this.actorLineColor="calculated",this.signalColor="calculated",this.signalTextColor="calculated",this.labelBoxBkgColor="calculated",this.labelBoxBorderColor="calculated",this.labelTextColor="calculated",this.loopTextColor="calculated",this.noteBorderColor="calculated",this.noteBkgColor="#fff5ad",this.noteTextColor="calculated",this.activationBorderColor="calculated",this.activationBkgColor="calculated",this.sequenceNumberColor="black",this.sectionBkgColor=O("#EAE8D9",30),this.altSectionBkgColor="calculated",this.sectionBkgColor2="#EAE8D9",this.excludeBkgColor=O(this.sectionBkgColor,10),this.taskBorderColor=si(255,255,255,70),this.taskBkgColor="calculated",this.taskTextColor="calculated",this.taskTextLightColor="calculated",this.taskTextOutsideColor="calculated",this.taskTextClickableColor="#003163",this.activeTaskBorderColor=si(255,255,255,50),this.activeTaskBkgColor="#81B1DB",this.gridColor="calculated",this.doneTaskBkgColor="calculated",this.doneTaskBorderColor="grey",this.critBorderColor="#E83737",this.critBkgColor="#E83737",this.taskTextDarkColor="calculated",this.todayLineColor="#DB5757",this.personBorder=this.primaryBorderColor,this.personBkg=this.mainBkg,this.labelColor="calculated",this.errorBkgColor="#a44141",this.errorTextColor="#ddd"}updateColors(){var e,i,r,n,o,s,a,l,h,u,f;this.secondBkg=A(this.mainBkg,16),this.lineColor=this.mainContrastColor,this.arrowheadColor=this.mainContrastColor,this.nodeBkg=this.mainBkg,this.nodeBorder=this.border1,this.clusterBkg=this.secondBkg,this.clusterBorder=this.border2,this.defaultLinkColor=this.lineColor,this.edgeLabelBackground=A(this.labelBackground,25),this.actorBorder=this.border1,this.actorBkg=this.mainBkg,this.actorTextColor=this.mainContrastColor,this.actorLineColor=this.mainContrastColor,this.signalColor=this.mainContrastColor,this.signalTextColor=this.mainContrastColor,this.labelBoxBkgColor=this.actorBkg,this.labelBoxBorderColor=this.actorBorder,this.labelTextColor=this.mainContrastColor,this.loopTextColor=this.mainContrastColor,this.noteBorderColor=this.secondaryBorderColor,this.noteBkgColor=this.secondBkg,this.noteTextColor=this.secondaryTextColor,this.activationBorderColor=this.border1,this.activationBkgColor=this.secondBkg,this.altSectionBkgColor=this.background,this.taskBkgColor=A(this.mainBkg,23),this.taskTextColor=this.darkTextColor,this.taskTextLightColor=this.mainContrastColor,this.taskTextOutsideColor=this.taskTextLightColor,this.gridColor=this.mainContrastColor,this.doneTaskBkgColor=this.mainContrastColor,this.taskTextDarkColor=this.darkTextColor,this.transitionColor=this.transitionColor||this.lineColor,this.transitionLabelColor=this.transitionLabelColor||this.textColor,this.stateLabelColor=this.stateLabelColor||this.stateBkg||this.primaryTextColor,this.stateBkg=this.stateBkg||this.mainBkg,this.labelBackgroundColor=this.labelBackgroundColor||this.stateBkg,this.compositeBackground=this.compositeBackground||this.background||this.tertiaryColor,this.altBackground=this.altBackground||"#555",this.compositeTitleBackground=this.compositeTitleBackground||this.mainBkg,this.compositeBorder=this.compositeBorder||this.nodeBorder,this.innerEndBackground=this.primaryBorderColor,this.specialStateColor="#f4f4f4",this.errorBkgColor=this.errorBkgColor||this.tertiaryColor,this.errorTextColor=this.errorTextColor||this.tertiaryTextColor,this.fillType0=this.primaryColor,this.fillType1=this.secondaryColor,this.fillType2=g(this.primaryColor,{h:64}),this.fillType3=g(this.secondaryColor,{h:64}),this.fillType4=g(this.primaryColor,{h:-64}),this.fillType5=g(this.secondaryColor,{h:-64}),this.fillType6=g(this.primaryColor,{h:128}),this.fillType7=g(this.secondaryColor,{h:128}),this.cScale1=this.cScale1||"#0b0000",this.cScale2=this.cScale2||"#4d1037",this.cScale3=this.cScale3||"#3f5258",this.cScale4=this.cScale4||"#4f2f1b",this.cScale5=this.cScale5||"#6e0a0a",this.cScale6=this.cScale6||"#3b0048",this.cScale7=this.cScale7||"#995a01",this.cScale8=this.cScale8||"#154706",this.cScale9=this.cScale9||"#161722",this.cScale10=this.cScale10||"#00296f",this.cScale11=this.cScale11||"#01629c",this.cScale12=this.cScale12||"#010029",this.cScale0=this.cScale0||this.primaryColor,this.cScale1=this.cScale1||this.secondaryColor,this.cScale2=this.cScale2||this.tertiaryColor,this.cScale3=this.cScale3||g(this.primaryColor,{h:30}),this.cScale4=this.cScale4||g(this.primaryColor,{h:60}),this.cScale5=this.cScale5||g(this.primaryColor,{h:90}),this.cScale6=this.cScale6||g(this.primaryColor,{h:120}),this.cScale7=this.cScale7||g(this.primaryColor,{h:150}),this.cScale8=this.cScale8||g(this.primaryColor,{h:210}),this.cScale9=this.cScale9||g(this.primaryColor,{h:270}),this.cScale10=this.cScale10||g(this.primaryColor,{h:300}),this.cScale11=this.cScale11||g(this.primaryColor,{h:330});for(let c=0;c{this[r]=e[r]}),this.updateColors(),i.forEach(r=>{this[r]=e[r]})}};const Km=t=>{const e=new Xm;return e.calculate(t),e};let Zm=class{constructor(){this.background="#f4f4f4",this.primaryColor="#ECECFF",this.secondaryColor=g(this.primaryColor,{h:120}),this.secondaryColor="#ffffde",this.tertiaryColor=g(this.primaryColor,{h:-160}),this.primaryBorderColor=ut(this.primaryColor,this.darkMode),this.secondaryBorderColor=ut(this.secondaryColor,this.darkMode),this.tertiaryBorderColor=ut(this.tertiaryColor,this.darkMode),this.primaryTextColor=C(this.primaryColor),this.secondaryTextColor=C(this.secondaryColor),this.tertiaryTextColor=C(this.tertiaryColor),this.lineColor=C(this.background),this.textColor=C(this.background),this.background="white",this.mainBkg="#ECECFF",this.secondBkg="#ffffde",this.lineColor="#333333",this.border1="#9370DB",this.border2="#aaaa33",this.arrowheadColor="#333333",this.fontFamily='"trebuchet ms", verdana, arial, sans-serif',this.fontSize="16px",this.labelBackground="#e8e8e8",this.textColor="#333",this.THEME_COLOR_LIMIT=12,this.nodeBkg="calculated",this.nodeBorder="calculated",this.clusterBkg="calculated",this.clusterBorder="calculated",this.defaultLinkColor="calculated",this.titleColor="calculated",this.edgeLabelBackground="calculated",this.actorBorder="calculated",this.actorBkg="calculated",this.actorTextColor="black",this.actorLineColor="grey",this.signalColor="calculated",this.signalTextColor="calculated",this.labelBoxBkgColor="calculated",this.labelBoxBorderColor="calculated",this.labelTextColor="calculated",this.loopTextColor="calculated",this.noteBorderColor="calculated",this.noteBkgColor="#fff5ad",this.noteTextColor="calculated",this.activationBorderColor="#666",this.activationBkgColor="#f4f4f4",this.sequenceNumberColor="white",this.sectionBkgColor="calculated",this.altSectionBkgColor="calculated",this.sectionBkgColor2="calculated",this.excludeBkgColor="#eeeeee",this.taskBorderColor="calculated",this.taskBkgColor="calculated",this.taskTextLightColor="calculated",this.taskTextColor=this.taskTextLightColor,this.taskTextDarkColor="calculated",this.taskTextOutsideColor=this.taskTextDarkColor,this.taskTextClickableColor="calculated",this.activeTaskBorderColor="calculated",this.activeTaskBkgColor="calculated",this.gridColor="calculated",this.doneTaskBkgColor="calculated",this.doneTaskBorderColor="calculated",this.critBorderColor="calculated",this.critBkgColor="calculated",this.todayLineColor="calculated",this.sectionBkgColor=si(102,102,255,.49),this.altSectionBkgColor="white",this.sectionBkgColor2="#fff400",this.taskBorderColor="#534fbc",this.taskBkgColor="#8a90dd",this.taskTextLightColor="white",this.taskTextColor="calculated",this.taskTextDarkColor="black",this.taskTextOutsideColor="calculated",this.taskTextClickableColor="#003163",this.activeTaskBorderColor="#534fbc",this.activeTaskBkgColor="#bfc7ff",this.gridColor="lightgrey",this.doneTaskBkgColor="lightgrey",this.doneTaskBorderColor="grey",this.critBorderColor="#ff8888",this.critBkgColor="red",this.todayLineColor="red",this.personBorder=this.primaryBorderColor,this.personBkg=this.mainBkg,this.labelColor="black",this.errorBkgColor="#552222",this.errorTextColor="#552222",this.updateColors()}updateColors(){var e,i,r,n,o,s,a,l,h,u,f;this.cScale0=this.cScale0||this.primaryColor,this.cScale1=this.cScale1||this.secondaryColor,this.cScale2=this.cScale2||this.tertiaryColor,this.cScale3=this.cScale3||g(this.primaryColor,{h:30}),this.cScale4=this.cScale4||g(this.primaryColor,{h:60}),this.cScale5=this.cScale5||g(this.primaryColor,{h:90}),this.cScale6=this.cScale6||g(this.primaryColor,{h:120}),this.cScale7=this.cScale7||g(this.primaryColor,{h:150}),this.cScale8=this.cScale8||g(this.primaryColor,{h:210}),this.cScale9=this.cScale9||g(this.primaryColor,{h:270}),this.cScale10=this.cScale10||g(this.primaryColor,{h:300}),this.cScale11=this.cScale11||g(this.primaryColor,{h:330}),this.cScalePeer1=this.cScalePeer1||O(this.secondaryColor,45),this.cScalePeer2=this.cScalePeer2||O(this.tertiaryColor,40);for(let c=0;c{this[r]=e[r]}),this.updateColors(),i.forEach(r=>{this[r]=e[r]})}};const Jm=t=>{const e=new Zm;return e.calculate(t),e};let Qm=class{constructor(){this.background="#f4f4f4",this.primaryColor="#cde498",this.secondaryColor="#cdffb2",this.background="white",this.mainBkg="#cde498",this.secondBkg="#cdffb2",this.lineColor="green",this.border1="#13540c",this.border2="#6eaa49",this.arrowheadColor="green",this.fontFamily='"trebuchet ms", verdana, arial, sans-serif',this.fontSize="16px",this.tertiaryColor=A("#cde498",10),this.primaryBorderColor=ut(this.primaryColor,this.darkMode),this.secondaryBorderColor=ut(this.secondaryColor,this.darkMode),this.tertiaryBorderColor=ut(this.tertiaryColor,this.darkMode),this.primaryTextColor=C(this.primaryColor),this.secondaryTextColor=C(this.secondaryColor),this.tertiaryTextColor=C(this.primaryColor),this.lineColor=C(this.background),this.textColor=C(this.background),this.THEME_COLOR_LIMIT=12,this.nodeBkg="calculated",this.nodeBorder="calculated",this.clusterBkg="calculated",this.clusterBorder="calculated",this.defaultLinkColor="calculated",this.titleColor="#333",this.edgeLabelBackground="#e8e8e8",this.actorBorder="calculated",this.actorBkg="calculated",this.actorTextColor="black",this.actorLineColor="grey",this.signalColor="#333",this.signalTextColor="#333",this.labelBoxBkgColor="calculated",this.labelBoxBorderColor="#326932",this.labelTextColor="calculated",this.loopTextColor="calculated",this.noteBorderColor="calculated",this.noteBkgColor="#fff5ad",this.noteTextColor="calculated",this.activationBorderColor="#666",this.activationBkgColor="#f4f4f4",this.sequenceNumberColor="white",this.sectionBkgColor="#6eaa49",this.altSectionBkgColor="white",this.sectionBkgColor2="#6eaa49",this.excludeBkgColor="#eeeeee",this.taskBorderColor="calculated",this.taskBkgColor="#487e3a",this.taskTextLightColor="white",this.taskTextColor="calculated",this.taskTextDarkColor="black",this.taskTextOutsideColor="calculated",this.taskTextClickableColor="#003163",this.activeTaskBorderColor="calculated",this.activeTaskBkgColor="calculated",this.gridColor="lightgrey",this.doneTaskBkgColor="lightgrey",this.doneTaskBorderColor="grey",this.critBorderColor="#ff8888",this.critBkgColor="red",this.todayLineColor="red",this.personBorder=this.primaryBorderColor,this.personBkg=this.mainBkg,this.labelColor="black",this.errorBkgColor="#552222",this.errorTextColor="#552222"}updateColors(){var e,i,r,n,o,s,a,l,h,u,f;this.actorBorder=O(this.mainBkg,20),this.actorBkg=this.mainBkg,this.labelBoxBkgColor=this.actorBkg,this.labelTextColor=this.actorTextColor,this.loopTextColor=this.actorTextColor,this.noteBorderColor=this.border2,this.noteTextColor=this.actorTextColor,this.cScale0=this.cScale0||this.primaryColor,this.cScale1=this.cScale1||this.secondaryColor,this.cScale2=this.cScale2||this.tertiaryColor,this.cScale3=this.cScale3||g(this.primaryColor,{h:30}),this.cScale4=this.cScale4||g(this.primaryColor,{h:60}),this.cScale5=this.cScale5||g(this.primaryColor,{h:90}),this.cScale6=this.cScale6||g(this.primaryColor,{h:120}),this.cScale7=this.cScale7||g(this.primaryColor,{h:150}),this.cScale8=this.cScale8||g(this.primaryColor,{h:210}),this.cScale9=this.cScale9||g(this.primaryColor,{h:270}),this.cScale10=this.cScale10||g(this.primaryColor,{h:300}),this.cScale11=this.cScale11||g(this.primaryColor,{h:330}),this.cScalePeer1=this.cScalePeer1||O(this.secondaryColor,45),this.cScalePeer2=this.cScalePeer2||O(this.tertiaryColor,40);for(let c=0;c{this[r]=e[r]}),this.updateColors(),i.forEach(r=>{this[r]=e[r]})}};const t0=t=>{const e=new Qm;return e.calculate(t),e};class e0{constructor(){this.primaryColor="#eee",this.contrast="#707070",this.secondaryColor=A(this.contrast,55),this.background="#ffffff",this.tertiaryColor=g(this.primaryColor,{h:-160}),this.primaryBorderColor=ut(this.primaryColor,this.darkMode),this.secondaryBorderColor=ut(this.secondaryColor,this.darkMode),this.tertiaryBorderColor=ut(this.tertiaryColor,this.darkMode),this.primaryTextColor=C(this.primaryColor),this.secondaryTextColor=C(this.secondaryColor),this.tertiaryTextColor=C(this.tertiaryColor),this.lineColor=C(this.background),this.textColor=C(this.background),this.mainBkg="#eee",this.secondBkg="calculated",this.lineColor="#666",this.border1="#999",this.border2="calculated",this.note="#ffa",this.text="#333",this.critical="#d42",this.done="#bbb",this.arrowheadColor="#333333",this.fontFamily='"trebuchet ms", verdana, arial, sans-serif',this.fontSize="16px",this.THEME_COLOR_LIMIT=12,this.nodeBkg="calculated",this.nodeBorder="calculated",this.clusterBkg="calculated",this.clusterBorder="calculated",this.defaultLinkColor="calculated",this.titleColor="calculated",this.edgeLabelBackground="white",this.actorBorder="calculated",this.actorBkg="calculated",this.actorTextColor="calculated",this.actorLineColor="calculated",this.signalColor="calculated",this.signalTextColor="calculated",this.labelBoxBkgColor="calculated",this.labelBoxBorderColor="calculated",this.labelTextColor="calculated",this.loopTextColor="calculated",this.noteBorderColor="calculated",this.noteBkgColor="calculated",this.noteTextColor="calculated",this.activationBorderColor="#666",this.activationBkgColor="#f4f4f4",this.sequenceNumberColor="white",this.sectionBkgColor="calculated",this.altSectionBkgColor="white",this.sectionBkgColor2="calculated",this.excludeBkgColor="#eeeeee",this.taskBorderColor="calculated",this.taskBkgColor="calculated",this.taskTextLightColor="white",this.taskTextColor="calculated",this.taskTextDarkColor="calculated",this.taskTextOutsideColor="calculated",this.taskTextClickableColor="#003163",this.activeTaskBorderColor="calculated",this.activeTaskBkgColor="calculated",this.gridColor="calculated",this.doneTaskBkgColor="calculated",this.doneTaskBorderColor="calculated",this.critBkgColor="calculated",this.critBorderColor="calculated",this.todayLineColor="calculated",this.personBorder=this.primaryBorderColor,this.personBkg=this.mainBkg,this.labelColor="black",this.errorBkgColor="#552222",this.errorTextColor="#552222"}updateColors(){var e,i,r,n,o,s,a,l,h,u,f;this.secondBkg=A(this.contrast,55),this.border2=this.contrast,this.actorBorder=A(this.border1,23),this.actorBkg=this.mainBkg,this.actorTextColor=this.text,this.actorLineColor=this.lineColor,this.signalColor=this.text,this.signalTextColor=this.text,this.labelBoxBkgColor=this.actorBkg,this.labelBoxBorderColor=this.actorBorder,this.labelTextColor=this.text,this.loopTextColor=this.text,this.noteBorderColor="#999",this.noteBkgColor="#666",this.noteTextColor="#fff",this.cScale0=this.cScale0||"#555",this.cScale1=this.cScale1||"#F4F4F4",this.cScale2=this.cScale2||"#555",this.cScale3=this.cScale3||"#BBB",this.cScale4=this.cScale4||"#777",this.cScale5=this.cScale5||"#999",this.cScale6=this.cScale6||"#DDD",this.cScale7=this.cScale7||"#FFF",this.cScale8=this.cScale8||"#DDD",this.cScale9=this.cScale9||"#BBB",this.cScale10=this.cScale10||"#999",this.cScale11=this.cScale11||"#777";for(let c=0;c{this[r]=e[r]}),this.updateColors(),i.forEach(r=>{this[r]=e[r]})}}const i0=t=>{const e=new e0;return e.calculate(t),e},Xt={base:{getThemeVariables:Gm},dark:{getThemeVariables:Km},default:{getThemeVariables:Jm},forest:{getThemeVariables:t0},neutral:{getThemeVariables:i0}},Vt={flowchart:{useMaxWidth:!0,titleTopMargin:25,subGraphTitleMargin:{top:0,bottom:0},diagramPadding:8,htmlLabels:!0,nodeSpacing:50,rankSpacing:50,curve:"basis",padding:15,defaultRenderer:"dagre-wrapper",wrappingWidth:200},sequence:{useMaxWidth:!0,hideUnusedParticipants:!1,activationWidth:10,diagramMarginX:50,diagramMarginY:10,actorMargin:50,width:150,height:65,boxMargin:10,boxTextMargin:5,noteMargin:10,messageMargin:35,messageAlign:"center",mirrorActors:!0,forceMenus:!1,bottomMarginAdj:1,rightAngles:!1,showSequenceNumbers:!1,actorFontSize:14,actorFontFamily:'"Open Sans", sans-serif',actorFontWeight:400,noteFontSize:14,noteFontFamily:'"trebuchet ms", verdana, arial, sans-serif',noteFontWeight:400,noteAlign:"center",messageFontSize:16,messageFontFamily:'"trebuchet ms", verdana, arial, sans-serif',messageFontWeight:400,wrap:!1,wrapPadding:10,labelBoxWidth:50,labelBoxHeight:20},gantt:{useMaxWidth:!0,titleTopMargin:25,barHeight:20,barGap:4,topPadding:50,rightPadding:75,leftPadding:75,gridLineStartPadding:35,fontSize:11,sectionFontSize:11,numberSectionStyles:4,axisFormat:"%Y-%m-%d",topAxis:!1,displayMode:"",weekday:"sunday"},journey:{useMaxWidth:!0,diagramMarginX:50,diagramMarginY:10,leftMargin:150,width:150,height:50,boxMargin:10,boxTextMargin:5,noteMargin:10,messageMargin:35,messageAlign:"center",bottomMarginAdj:1,rightAngles:!1,taskFontSize:14,taskFontFamily:'"Open Sans", sans-serif',taskMargin:50,activationWidth:10,textPlacement:"fo",actorColours:["#8FBC8F","#7CFC00","#00FFFF","#20B2AA","#B0E0E6","#FFFFE0"],sectionFills:["#191970","#8B008B","#4B0082","#2F4F4F","#800000","#8B4513","#00008B"],sectionColours:["#fff"]},class:{useMaxWidth:!0,titleTopMargin:25,arrowMarkerAbsolute:!1,dividerMargin:10,padding:5,textHeight:10,defaultRenderer:"dagre-wrapper",htmlLabels:!1},state:{useMaxWidth:!0,titleTopMargin:25,dividerMargin:10,sizeUnit:5,padding:8,textHeight:10,titleShift:-15,noteMargin:10,forkWidth:70,forkHeight:7,miniPadding:2,fontSizeFactor:5.02,fontSize:24,labelHeight:16,edgeLengthFactor:"20",compositTitleSize:35,radius:5,defaultRenderer:"dagre-wrapper"},er:{useMaxWidth:!0,titleTopMargin:25,diagramPadding:20,layoutDirection:"TB",minEntityWidth:100,minEntityHeight:75,entityPadding:15,stroke:"gray",fill:"honeydew",fontSize:12},pie:{useMaxWidth:!0,textPosition:.75},quadrantChart:{useMaxWidth:!0,chartWidth:500,chartHeight:500,titleFontSize:20,titlePadding:10,quadrantPadding:5,xAxisLabelPadding:5,yAxisLabelPadding:5,xAxisLabelFontSize:16,yAxisLabelFontSize:16,quadrantLabelFontSize:16,quadrantTextTopPadding:5,pointTextPadding:5,pointLabelFontSize:12,pointRadius:5,xAxisPosition:"top",yAxisPosition:"left",quadrantInternalBorderStrokeWidth:1,quadrantExternalBorderStrokeWidth:2},xyChart:{useMaxWidth:!0,width:700,height:500,titleFontSize:20,titlePadding:10,showTitle:!0,xAxis:{$ref:"#/$defs/XYChartAxisConfig",showLabel:!0,labelFontSize:14,labelPadding:5,showTitle:!0,titleFontSize:16,titlePadding:5,showTick:!0,tickLength:5,tickWidth:2,showAxisLine:!0,axisLineWidth:2},yAxis:{$ref:"#/$defs/XYChartAxisConfig",showLabel:!0,labelFontSize:14,labelPadding:5,showTitle:!0,titleFontSize:16,titlePadding:5,showTick:!0,tickLength:5,tickWidth:2,showAxisLine:!0,axisLineWidth:2},chartOrientation:"vertical",plotReservedSpacePercent:50},requirement:{useMaxWidth:!0,rect_fill:"#f9f9f9",text_color:"#333",rect_border_size:"0.5px",rect_border_color:"#bbb",rect_min_width:200,rect_min_height:200,fontSize:14,rect_padding:10,line_height:20},mindmap:{useMaxWidth:!0,padding:10,maxNodeWidth:200},timeline:{useMaxWidth:!0,diagramMarginX:50,diagramMarginY:10,leftMargin:150,width:150,height:50,boxMargin:10,boxTextMargin:5,noteMargin:10,messageMargin:35,messageAlign:"center",bottomMarginAdj:1,rightAngles:!1,taskFontSize:14,taskFontFamily:'"Open Sans", sans-serif',taskMargin:50,activationWidth:10,textPlacement:"fo",actorColours:["#8FBC8F","#7CFC00","#00FFFF","#20B2AA","#B0E0E6","#FFFFE0"],sectionFills:["#191970","#8B008B","#4B0082","#2F4F4F","#800000","#8B4513","#00008B"],sectionColours:["#fff"],disableMulticolor:!1},gitGraph:{useMaxWidth:!0,titleTopMargin:25,diagramPadding:8,nodeLabel:{width:75,height:100,x:-25,y:0},mainBranchName:"main",mainBranchOrder:0,showCommitLabel:!0,showBranches:!0,rotateCommitLabel:!0,parallelCommits:!1,arrowMarkerAbsolute:!1},c4:{useMaxWidth:!0,diagramMarginX:50,diagramMarginY:10,c4ShapeMargin:50,c4ShapePadding:20,width:216,height:60,boxMargin:10,c4ShapeInRow:4,nextLinePaddingX:0,c4BoundaryInRow:2,personFontSize:14,personFontFamily:'"Open Sans", sans-serif',personFontWeight:"normal",external_personFontSize:14,external_personFontFamily:'"Open Sans", sans-serif',external_personFontWeight:"normal",systemFontSize:14,systemFontFamily:'"Open Sans", sans-serif',systemFontWeight:"normal",external_systemFontSize:14,external_systemFontFamily:'"Open Sans", sans-serif',external_systemFontWeight:"normal",system_dbFontSize:14,system_dbFontFamily:'"Open Sans", sans-serif',system_dbFontWeight:"normal",external_system_dbFontSize:14,external_system_dbFontFamily:'"Open Sans", sans-serif',external_system_dbFontWeight:"normal",system_queueFontSize:14,system_queueFontFamily:'"Open Sans", sans-serif',system_queueFontWeight:"normal",external_system_queueFontSize:14,external_system_queueFontFamily:'"Open Sans", sans-serif',external_system_queueFontWeight:"normal",boundaryFontSize:14,boundaryFontFamily:'"Open Sans", sans-serif',boundaryFontWeight:"normal",messageFontSize:12,messageFontFamily:'"Open Sans", sans-serif',messageFontWeight:"normal",containerFontSize:14,containerFontFamily:'"Open Sans", sans-serif',containerFontWeight:"normal",external_containerFontSize:14,external_containerFontFamily:'"Open Sans", sans-serif',external_containerFontWeight:"normal",container_dbFontSize:14,container_dbFontFamily:'"Open Sans", sans-serif',container_dbFontWeight:"normal",external_container_dbFontSize:14,external_container_dbFontFamily:'"Open Sans", sans-serif',external_container_dbFontWeight:"normal",container_queueFontSize:14,container_queueFontFamily:'"Open Sans", sans-serif',container_queueFontWeight:"normal",external_container_queueFontSize:14,external_container_queueFontFamily:'"Open Sans", sans-serif',external_container_queueFontWeight:"normal",componentFontSize:14,componentFontFamily:'"Open Sans", sans-serif',componentFontWeight:"normal",external_componentFontSize:14,external_componentFontFamily:'"Open Sans", sans-serif',external_componentFontWeight:"normal",component_dbFontSize:14,component_dbFontFamily:'"Open Sans", sans-serif',component_dbFontWeight:"normal",external_component_dbFontSize:14,external_component_dbFontFamily:'"Open Sans", sans-serif',external_component_dbFontWeight:"normal",component_queueFontSize:14,component_queueFontFamily:'"Open Sans", sans-serif',component_queueFontWeight:"normal",external_component_queueFontSize:14,external_component_queueFontFamily:'"Open Sans", sans-serif',external_component_queueFontWeight:"normal",wrap:!0,wrapPadding:10,person_bg_color:"#08427B",person_border_color:"#073B6F",external_person_bg_color:"#686868",external_person_border_color:"#8A8A8A",system_bg_color:"#1168BD",system_border_color:"#3C7FC0",system_db_bg_color:"#1168BD",system_db_border_color:"#3C7FC0",system_queue_bg_color:"#1168BD",system_queue_border_color:"#3C7FC0",external_system_bg_color:"#999999",external_system_border_color:"#8A8A8A",external_system_db_bg_color:"#999999",external_system_db_border_color:"#8A8A8A",external_system_queue_bg_color:"#999999",external_system_queue_border_color:"#8A8A8A",container_bg_color:"#438DD5",container_border_color:"#3C7FC0",container_db_bg_color:"#438DD5",container_db_border_color:"#3C7FC0",container_queue_bg_color:"#438DD5",container_queue_border_color:"#3C7FC0",external_container_bg_color:"#B3B3B3",external_container_border_color:"#A6A6A6",external_container_db_bg_color:"#B3B3B3",external_container_db_border_color:"#A6A6A6",external_container_queue_bg_color:"#B3B3B3",external_container_queue_border_color:"#A6A6A6",component_bg_color:"#85BBF0",component_border_color:"#78A8D8",component_db_bg_color:"#85BBF0",component_db_border_color:"#78A8D8",component_queue_bg_color:"#85BBF0",component_queue_border_color:"#78A8D8",external_component_bg_color:"#CCCCCC",external_component_border_color:"#BFBFBF",external_component_db_bg_color:"#CCCCCC",external_component_db_border_color:"#BFBFBF",external_component_queue_bg_color:"#CCCCCC",external_component_queue_border_color:"#BFBFBF"},sankey:{useMaxWidth:!0,width:600,height:400,linkColor:"gradient",nodeAlignment:"justify",showValues:!0,prefix:"",suffix:""},block:{useMaxWidth:!0,padding:8},theme:"default",maxTextSize:5e4,maxEdges:500,darkMode:!1,fontFamily:'"trebuchet ms", verdana, arial, sans-serif;',logLevel:5,securityLevel:"strict",startOnLoad:!0,arrowMarkerAbsolute:!1,secure:["secure","securityLevel","startOnLoad","maxTextSize","maxEdges"],legacyMathML:!1,deterministicIds:!1,fontSize:16},nl={...Vt,deterministicIDSeed:void 0,themeCSS:void 0,themeVariables:Xt.default.getThemeVariables(),sequence:{...Vt.sequence,messageFont:function(){return{fontFamily:this.messageFontFamily,fontSize:this.messageFontSize,fontWeight:this.messageFontWeight}},noteFont:function(){return{fontFamily:this.noteFontFamily,fontSize:this.noteFontSize,fontWeight:this.noteFontWeight}},actorFont:function(){return{fontFamily:this.actorFontFamily,fontSize:this.actorFontSize,fontWeight:this.actorFontWeight}}},gantt:{...Vt.gantt,tickInterval:void 0,useWidth:void 0},c4:{...Vt.c4,useWidth:void 0,personFont:function(){return{fontFamily:this.personFontFamily,fontSize:this.personFontSize,fontWeight:this.personFontWeight}},external_personFont:function(){return{fontFamily:this.external_personFontFamily,fontSize:this.external_personFontSize,fontWeight:this.external_personFontWeight}},systemFont:function(){return{fontFamily:this.systemFontFamily,fontSize:this.systemFontSize,fontWeight:this.systemFontWeight}},external_systemFont:function(){return{fontFamily:this.external_systemFontFamily,fontSize:this.external_systemFontSize,fontWeight:this.external_systemFontWeight}},system_dbFont:function(){return{fontFamily:this.system_dbFontFamily,fontSize:this.system_dbFontSize,fontWeight:this.system_dbFontWeight}},external_system_dbFont:function(){return{fontFamily:this.external_system_dbFontFamily,fontSize:this.external_system_dbFontSize,fontWeight:this.external_system_dbFontWeight}},system_queueFont:function(){return{fontFamily:this.system_queueFontFamily,fontSize:this.system_queueFontSize,fontWeight:this.system_queueFontWeight}},external_system_queueFont:function(){return{fontFamily:this.external_system_queueFontFamily,fontSize:this.external_system_queueFontSize,fontWeight:this.external_system_queueFontWeight}},containerFont:function(){return{fontFamily:this.containerFontFamily,fontSize:this.containerFontSize,fontWeight:this.containerFontWeight}},external_containerFont:function(){return{fontFamily:this.external_containerFontFamily,fontSize:this.external_containerFontSize,fontWeight:this.external_containerFontWeight}},container_dbFont:function(){return{fontFamily:this.container_dbFontFamily,fontSize:this.container_dbFontSize,fontWeight:this.container_dbFontWeight}},external_container_dbFont:function(){return{fontFamily:this.external_container_dbFontFamily,fontSize:this.external_container_dbFontSize,fontWeight:this.external_container_dbFontWeight}},container_queueFont:function(){return{fontFamily:this.container_queueFontFamily,fontSize:this.container_queueFontSize,fontWeight:this.container_queueFontWeight}},external_container_queueFont:function(){return{fontFamily:this.external_container_queueFontFamily,fontSize:this.external_container_queueFontSize,fontWeight:this.external_container_queueFontWeight}},componentFont:function(){return{fontFamily:this.componentFontFamily,fontSize:this.componentFontSize,fontWeight:this.componentFontWeight}},external_componentFont:function(){return{fontFamily:this.external_componentFontFamily,fontSize:this.external_componentFontSize,fontWeight:this.external_componentFontWeight}},component_dbFont:function(){return{fontFamily:this.component_dbFontFamily,fontSize:this.component_dbFontSize,fontWeight:this.component_dbFontWeight}},external_component_dbFont:function(){return{fontFamily:this.external_component_dbFontFamily,fontSize:this.external_component_dbFontSize,fontWeight:this.external_component_dbFontWeight}},component_queueFont:function(){return{fontFamily:this.component_queueFontFamily,fontSize:this.component_queueFontSize,fontWeight:this.component_queueFontWeight}},external_component_queueFont:function(){return{fontFamily:this.external_component_queueFontFamily,fontSize:this.external_component_queueFontSize,fontWeight:this.external_component_queueFontWeight}},boundaryFont:function(){return{fontFamily:this.boundaryFontFamily,fontSize:this.boundaryFontSize,fontWeight:this.boundaryFontWeight}},messageFont:function(){return{fontFamily:this.messageFontFamily,fontSize:this.messageFontSize,fontWeight:this.messageFontWeight}}},pie:{...Vt.pie,useWidth:984},xyChart:{...Vt.xyChart,useWidth:void 0},requirement:{...Vt.requirement,useWidth:void 0},gitGraph:{...Vt.gitGraph,useMaxWidth:!1},sankey:{...Vt.sankey,useMaxWidth:!1}},ol=(t,e="")=>Object.keys(t).reduce((i,r)=>Array.isArray(t[r])?i:typeof t[r]=="object"&&t[r]!==null?[...i,e+r,...ol(t[r],"")]:[...i,e+r],[]),r0=new Set(ol(nl,"")),n0=nl,ar=t=>{if(E.debug("sanitizeDirective called with",t),!(typeof t!="object"||t==null)){if(Array.isArray(t)){t.forEach(e=>ar(e));return}for(const e of Object.keys(t)){if(E.debug("Checking key",e),e.startsWith("__")||e.includes("proto")||e.includes("constr")||!r0.has(e)||t[e]==null){E.debug("sanitize deleting key: ",e),delete t[e];continue}if(typeof t[e]=="object"){E.debug("sanitizing object",e),ar(t[e]);continue}const i=["themeCSS","fontFamily","altFontFamily"];for(const r of i)e.includes(r)&&(E.debug("sanitizing css option",e),t[e]=o0(t[e]))}if(t.themeVariables)for(const e of Object.keys(t.themeVariables)){const i=t.themeVariables[e];i?.match&&!i.match(/^[\d "#%(),.;A-Za-z]+$/)&&(t.themeVariables[e]="")}E.debug("After sanitization",t)}},o0=t=>{let e=0,i=0;for(const r of t){if(e{for(const{id:e,detector:i,loader:r}of t)hl(e,i,r)},hl=(t,e,i)=>{Re[t]?E.error(`Detector with key ${t} already exists`):Re[t]={detector:e,loader:i},E.debug(`Detector with key ${t} added${i?" with loader":""}`)},a0=t=>Re[t].loader,vn=(t,e,{depth:i=2,clobber:r=!1}={})=>{const n={depth:i,clobber:r};return Array.isArray(e)&&!Array.isArray(t)?(e.forEach(o=>vn(t,o,n)),t):Array.isArray(e)&&Array.isArray(t)?(e.forEach(o=>{t.includes(o)||t.push(o)}),t):t===void 0||i<=0?t!=null&&typeof t=="object"&&typeof e=="object"?Object.assign(t,e):e:(e!==void 0&&typeof t=="object"&&typeof e=="object"&&Object.keys(e).forEach(o=>{typeof e[o]=="object"&&(t[o]===void 0||typeof t[o]=="object")?(t[o]===void 0&&(t[o]=Array.isArray(e[o])?[]:{}),t[o]=vn(t[o],e[o],{depth:i-1,clobber:r})):(r||typeof t[o]!="object"&&typeof e[o]!="object")&&(t[o]=e[o])}),t)},st=vn,l0="​",h0={curveBasis:zf,curveBasisClosed:Wf,curveBasisOpen:Hf,curveBumpX:Pf,curveBumpY:qf,curveBundle:jf,curveCardinalClosed:Yf,curveCardinalOpen:Vf,curveCardinal:Uf,curveCatmullRomClosed:Xf,curveCatmullRomOpen:Kf,curveCatmullRom:Gf,curveLinear:Rf,curveLinearClosed:Zf,curveMonotoneX:Jf,curveMonotoneY:Qf,curveNatural:td,curveStep:ed,curveStepAfter:rd,curveStepBefore:id},c0=/\s*(?:(\w+)(?=:):|(\w+))\s*(?:(\w+)|((?:(?!}%{2}).|\r?\n)*))?\s*(?:}%{2})?/gi,u0=function(t,e){const i=cl(t,/(?:init\b)|(?:initialize\b)/);let r={};if(Array.isArray(i)){const s=i.map(a=>a.args);ar(s),r=st(r,[...s])}else r=i.args;if(!r)return;let n=Er(t,e);const o="config";return r[o]!==void 0&&(n==="flowchart-v2"&&(n="flowchart"),r[n]=r[o],delete r[o]),r},cl=function(t,e=null){try{const i=new RegExp(`[%]{2}(?![{]${c0.source})(?=[}][%]{2}).* +`,"ig");t=t.trim().replace(i,"").replace(/'/gm,'"'),E.debug(`Detecting diagram directive${e!==null?" type:"+e:""} based on the text:${t}`);let r;const n=[];for(;(r=li.exec(t))!==null;)if(r.index===li.lastIndex&&li.lastIndex++,r&&!e||e&&r[1]&&r[1].match(e)||e&&r[2]&&r[2].match(e)){const o=r[1]?r[1]:r[2],s=r[3]?r[3].trim():r[4]?JSON.parse(r[4].trim()):null;n.push({type:o,args:s})}return n.length===0?{type:t,args:null}:n.length===1?n[0]:n}catch(i){return E.error(`ERROR: ${i.message} - Unable to parse directive type: '${e}' based on the text: '${t}'`),{type:void 0,args:null}}},f0=function(t){return t.replace(li,"")},d0=function(t,e){for(const[i,r]of e.entries())if(r.match(t))return i;return-1};function p0(t,e){if(!t)return e;const i=`curve${t.charAt(0).toUpperCase()+t.slice(1)}`;return h0[i]??e}function g0(t,e){const i=t.trim();if(i)return e.securityLevel!=="loose"?Hs.sanitizeUrl(i):i}const m0=(t,...e)=>{const i=t.split("."),r=i.length-1,n=i[r];let o=window;for(let s=0;s{i+=ul(n,e),e=n});const r=i/2;return Un(t,r)}function y0(t){return t.length===1?t[0]:_0(t)}const ws=(t,e=2)=>{const i=Math.pow(10,e);return Math.round(t*i)/i},Un=(t,e)=>{let i,r=e;for(const n of t){if(i){const o=ul(n,i);if(o=1)return{x:n.x,y:n.y};if(s>0&&s<1)return{x:ws((1-s)*i.x+s*n.x,5),y:ws((1-s)*i.y+s*n.y,5)}}}i=n}throw new Error("Could not find a suitable point for the given distance")},C0=(t,e,i)=>{E.info(`our points ${JSON.stringify(e)}`),e[0]!==i&&(e=e.reverse());const n=Un(e,25),o=t?10:5,s=Math.atan2(e[0].y-n.y,e[0].x-n.x),a={x:0,y:0};return a.x=Math.sin(s)*o+(e[0].x+n.x)/2,a.y=-Math.cos(s)*o+(e[0].y+n.y)/2,a};function x0(t,e,i){const r=structuredClone(i);E.info("our points",r),e!=="start_left"&&e!=="start_right"&&r.reverse();const n=25+t,o=Un(r,n),s=10+t*.5,a=Math.atan2(r[0].y-o.y,r[0].x-o.x),l={x:0,y:0};return e==="start_left"?(l.x=Math.sin(a+Math.PI)*s+(r[0].x+o.x)/2,l.y=-Math.cos(a+Math.PI)*s+(r[0].y+o.y)/2):e==="end_right"?(l.x=Math.sin(a-Math.PI)*s+(r[0].x+o.x)/2-5,l.y=-Math.cos(a-Math.PI)*s+(r[0].y+o.y)/2-5):e==="end_left"?(l.x=Math.sin(a)*s+(r[0].x+o.x)/2-5,l.y=-Math.cos(a)*s+(r[0].y+o.y)/2-5):(l.x=Math.sin(a)*s+(r[0].x+o.x)/2,l.y=-Math.cos(a)*s+(r[0].y+o.y)/2),l}function b0(t){let e="",i="";for(const r of t)r!==void 0&&(r.startsWith("color:")||r.startsWith("text-align:")?i=i+r+";":e=e+r+";");return{style:e,labelStyle:i}}let Bs=0;const T0=()=>(Bs++,"id-"+Math.random().toString(36).substr(2,12)+"-"+Bs);function v0(t){let e="";const i="0123456789abcdef",r=i.length;for(let n=0;nv0(t.length),S0=function(){return{x:0,y:0,fill:void 0,anchor:"start",style:"#666",width:100,height:100,textMargin:0,rx:0,ry:0,valign:void 0,text:""}},w0=function(t,e){const i=e.text.replace(jn.lineBreakRegex," "),[,r]=Vn(e.fontSize),n=t.append("text");n.attr("x",e.x),n.attr("y",e.y),n.style("text-anchor",e.anchor),n.style("font-family",e.fontFamily),n.style("font-size",r),n.style("font-weight",e.fontWeight),n.attr("fill",e.fill),e.class!==void 0&&n.attr("class",e.class);const o=n.append("tspan");return o.attr("x",e.x+e.textMargin*2),o.attr("fill",e.fill),o.text(i),n},B0=ki((t,e,i)=>{if(!t||(i=Object.assign({fontSize:12,fontWeight:400,fontFamily:"Arial",joinWith:"
    "},i),jn.lineBreakRegex.test(t)))return t;const r=t.split(" "),n=[];let o="";return r.forEach((s,a)=>{const l=lr(`${s} `,i),h=lr(o,i);if(l>e){const{hyphenatedStrings:c,remainingWord:p}=A0(s,e,"-",i);n.push(o,...c),o=p}else h+l>=e?(n.push(o),o=s):o=[o,s].filter(Boolean).join(" ");a+1===r.length&&n.push(o)}),n.filter(s=>s!=="").join(i.joinWith)},(t,e,i)=>`${t}${e}${i.fontSize}${i.fontWeight}${i.fontFamily}${i.joinWith}`),A0=ki((t,e,i="-",r)=>{r=Object.assign({fontSize:12,fontWeight:400,fontFamily:"Arial",margin:0},r);const n=[...t],o=[];let s="";return n.forEach((a,l)=>{const h=`${s}${a}`;if(lr(h,r)>=e){const f=l+1,c=n.length===f,p=`${h}${i}`;o.push(c?h:p),s=""}else s=h}),{hyphenatedStrings:o,remainingWord:s}},(t,e,i="-",r)=>`${t}${e}${i}${r.fontSize}${r.fontWeight}${r.fontFamily}`);function L0(t,e){return Yn(t,e).height}function lr(t,e){return Yn(t,e).width}const Yn=ki((t,e)=>{const{fontSize:i=12,fontFamily:r="Arial",fontWeight:n=400}=e;if(!t)return{width:0,height:0};const[,o]=Vn(i),s=["sans-serif",r],a=t.split(jn.lineBreakRegex),l=[],h=Tt("body");if(!h.remove)return{width:0,height:0,lineHeight:0};const u=h.append("svg");for(const c of s){let p=0;const _={width:0,height:0,lineHeight:0};for(const b of a){const k=S0();k.text=b||l0;const P=w0(u,k).style("font-size",o).style("font-weight",n).style("font-family",c),v=(P._groups||P)[0][0].getBBox();if(v.width===0&&v.height===0)throw new Error("svg element not in render tree");_.width=Math.round(Math.max(_.width,v.width)),p=Math.round(v.height),_.height+=p,_.lineHeight=Math.round(Math.max(_.lineHeight,p))}l.push(_)}u.remove();const f=isNaN(l[1].height)||isNaN(l[1].width)||isNaN(l[1].lineHeight)||l[0].height>l[1].height&&l[0].width>l[1].width&&l[0].lineHeight>l[1].lineHeight?0:1;return l[f]},(t,e)=>`${t}${e.fontSize}${e.fontWeight}${e.fontFamily}`);class F0{constructor(e=!1,i){this.count=0,this.count=i?i.length:0,this.next=e?()=>this.count++:()=>Date.now()}}let Ri;const E0=function(t){return Ri=Ri||document.createElement("div"),t=escape(t).replace(/%26/g,"&").replace(/%23/g,"#").replace(/%3B/g,";"),Ri.innerHTML=t,unescape(Ri.textContent)};function fl(t){return"str"in t}const O0=(t,e,i,r)=>{var n;if(!r)return;const o=(n=t.node())==null?void 0:n.getBBox();o&&t.append("text").text(r).attr("x",o.x+o.width/2).attr("y",-i).attr("class",e)},Vn=t=>{if(typeof t=="number")return[t,t+"px"];const e=parseInt(t??"",10);return Number.isNaN(e)?[void 0,void 0]:t===String(e)?[e,t+"px"]:[e,t]};function dl(t,e){return rm({},t,e)}const hi={assignWithDepth:st,wrapLabel:B0,calculateTextHeight:L0,calculateTextWidth:lr,calculateTextDimensions:Yn,cleanAndMerge:dl,detectInit:u0,detectDirective:cl,isSubstringInArray:d0,interpolateToCurve:p0,calcLabelPosition:y0,calcCardinalityPosition:C0,calcTerminalLabelPosition:x0,formatUrl:g0,getStylesFromArray:b0,generateId:T0,random:k0,runFunc:m0,entityDecode:E0,insertTitle:O0,parseFontSize:Vn,InitIDGenerator:F0},M0=function(t){let e=t;return e=e.replace(/style.*:\S*#.*;/g,function(i){return i.substring(0,i.length-1)}),e=e.replace(/classDef.*:\S*#.*;/g,function(i){return i.substring(0,i.length-1)}),e=e.replace(/#\w+;/g,function(i){const r=i.substring(1,i.length-1);return/^\+?\d+$/.test(r)?"fl°°"+r+"¶ß":"fl°"+r+"¶ß"}),e},I0=function(t){return t.replace(/fl°°/g,"&#").replace(/fl°/g,"&").replace(/¶ß/g,";")},As="10.9.3",Pe=Object.freeze(n0);let pt=st({},Pe),pl,qe=[],ci=st({},Pe);const Or=(t,e)=>{let i=st({},t),r={};for(const n of e)_l(n),r=st(r,n);if(i=st(i,r),r.theme&&r.theme in Xt){const n=st({},pl),o=st(n.themeVariables||{},r.themeVariables);i.theme&&i.theme in Xt&&(i.themeVariables=Xt[i.theme].getThemeVariables(o))}return ci=i,yl(ci),ci},$0=t=>(pt=st({},Pe),pt=st(pt,t),t.theme&&Xt[t.theme]&&(pt.themeVariables=Xt[t.theme].getThemeVariables(t.themeVariables)),Or(pt,qe),pt),D0=t=>{pl=st({},t)},N0=t=>(pt=st(pt,t),Or(pt,qe),pt),gl=()=>st({},pt),ml=t=>(yl(t),st(ci,t),qt()),qt=()=>st({},ci),_l=t=>{t&&(["secure",...pt.secure??[]].forEach(e=>{Object.hasOwn(t,e)&&(E.debug(`Denied attempt to modify a secure key ${e}`,t[e]),delete t[e])}),Object.keys(t).forEach(e=>{e.startsWith("__")&&delete t[e]}),Object.keys(t).forEach(e=>{typeof t[e]=="string"&&(t[e].includes("<")||t[e].includes(">")||t[e].includes("url(data:"))&&delete t[e],typeof t[e]=="object"&&_l(t[e])}))},R0=t=>{ar(t),t.fontFamily&&(!t.themeVariables||!t.themeVariables.fontFamily)&&(t.themeVariables={fontFamily:t.fontFamily}),qe.push(t),Or(pt,qe)},hr=(t=pt)=>{qe=[],Or(t,qe)},P0={LAZY_LOAD_DEPRECATED:"The configuration options lazyLoadedDiagrams and loadExternalDiagramsAtStartup are deprecated. Please use registerExternalDiagrams instead."},Ls={},q0=t=>{Ls[t]||(E.warn(P0[t]),Ls[t]=!0)},yl=t=>{t&&(t.lazyLoadedDiagrams||t.loadExternalDiagramsAtStartup)&&q0("LAZY_LOAD_DEPRECATED")},Cl="c4",z0=t=>/^\s*C4Context|C4Container|C4Component|C4Dynamic|C4Deployment/.test(t),W0=async()=>{const{diagram:t}=await K(async()=>{const{diagram:e}=await import("./c4Diagram-3d4e48cf-DdPIZlGU.js");return{diagram:e}},__vite__mapDeps([0,1,2,3]));return{id:Cl,diagram:t}},H0={id:Cl,detector:z0,loader:W0},j0=H0,xl="flowchart",U0=(t,e)=>{var i,r;return((i=e?.flowchart)==null?void 0:i.defaultRenderer)==="dagre-wrapper"||((r=e?.flowchart)==null?void 0:r.defaultRenderer)==="elk"?!1:/^\s*graph/.test(t)},Y0=async()=>{const{diagram:t}=await K(async()=>{const{diagram:e}=await import("./flowDiagram-66a62f08-Dx8iOe0_.js");return{diagram:e}},__vite__mapDeps([4,5,6,7,8,9,10,11,12,13,14,15,16,2,3]));return{id:xl,diagram:t}},V0={id:xl,detector:U0,loader:Y0},G0=V0,bl="flowchart-v2",X0=(t,e)=>{var i,r,n;return((i=e?.flowchart)==null?void 0:i.defaultRenderer)==="dagre-d3"||((r=e?.flowchart)==null?void 0:r.defaultRenderer)==="elk"?!1:/^\s*graph/.test(t)&&((n=e?.flowchart)==null?void 0:n.defaultRenderer)==="dagre-wrapper"?!0:/^\s*flowchart/.test(t)},K0=async()=>{const{diagram:t}=await K(async()=>{const{diagram:e}=await import("./flowDiagram-v2-96b9c2cf-CxrnYKIo.js");return{diagram:e}},__vite__mapDeps([17,5,8,6,9,7,10,11,12,13,14,15,16,2,3]));return{id:bl,diagram:t}},Z0={id:bl,detector:X0,loader:K0},J0=Z0,Tl="er",Q0=t=>/^\s*erDiagram/.test(t),t_=async()=>{const{diagram:t}=await K(async()=>{const{diagram:e}=await import("./erDiagram-9861fffd-IEVO5HKD.js");return{diagram:e}},__vite__mapDeps([18,6,7,13,14,15,2,3]));return{id:Tl,diagram:t}},e_={id:Tl,detector:Q0,loader:t_},i_=e_,vl="gitGraph",r_=t=>/^\s*gitGraph/.test(t),n_=async()=>{const{diagram:t}=await K(async()=>{const{diagram:e}=await import("./gitGraphDiagram-72cf32ee-WEL1-h6_.js");return{diagram:e}},__vite__mapDeps([19,2,3]));return{id:vl,diagram:t}},o_={id:vl,detector:r_,loader:n_},s_=o_,kl="gantt",a_=t=>/^\s*gantt/.test(t),l_=async()=>{const{diagram:t}=await K(async()=>{const{diagram:e}=await import("./ganttDiagram-c361ad54-DAUMiWli.js");return{diagram:e}},__vite__mapDeps([20,2,3,21,22]));return{id:kl,diagram:t}},h_={id:kl,detector:a_,loader:l_},c_=h_,Sl="info",u_=t=>/^\s*info/.test(t),f_=async()=>{const{diagram:t}=await K(async()=>{const{diagram:e}=await import("./infoDiagram-f8f76790-DDADd7By.js");return{diagram:e}},__vite__mapDeps([23,2,3]));return{id:Sl,diagram:t}},d_={id:Sl,detector:u_,loader:f_},wl="pie",p_=t=>/^\s*pie/.test(t),g_=async()=>{const{diagram:t}=await K(async()=>{const{diagram:e}=await import("./pieDiagram-8a3498a8-DxB0-Bo0.js");return{diagram:e}},__vite__mapDeps([24,25,15,26,22,14,2,3]));return{id:wl,diagram:t}},m_={id:wl,detector:p_,loader:g_},Bl="quadrantChart",__=t=>/^\s*quadrantChart/.test(t),y_=async()=>{const{diagram:t}=await K(async()=>{const{diagram:e}=await import("./quadrantDiagram-120e2f19-DXc7CzOL.js");return{diagram:e}},__vite__mapDeps([27,21,22,2,3]));return{id:Bl,diagram:t}},C_={id:Bl,detector:__,loader:y_},x_=C_,Al="xychart",b_=t=>/^\s*xychart-beta/.test(t),T_=async()=>{const{diagram:t}=await K(async()=>{const{diagram:e}=await import("./xychartDiagram-e933f94c-DcDvCfus.js");return{diagram:e}},__vite__mapDeps([28,12,22,26,21,13,14,15,2,3]));return{id:Al,diagram:t}},v_={id:Al,detector:b_,loader:T_},k_=v_,Ll="requirement",S_=t=>/^\s*requirement(Diagram)?/.test(t),w_=async()=>{const{diagram:t}=await K(async()=>{const{diagram:e}=await import("./requirementDiagram-deff3bca-DtT00n4w.js");return{diagram:e}},__vite__mapDeps([29,6,7,13,14,15,2,3]));return{id:Ll,diagram:t}},B_={id:Ll,detector:S_,loader:w_},A_=B_,Fl="sequence",L_=t=>/^\s*sequenceDiagram/.test(t),F_=async()=>{const{diagram:t}=await K(async()=>{const{diagram:e}=await import("./sequenceDiagram-704730f1-Bf_KtpsE.js");return{diagram:e}},__vite__mapDeps([30,1,2,3]));return{id:Fl,diagram:t}},E_={id:Fl,detector:L_,loader:F_},O_=E_,El="class",M_=(t,e)=>{var i;return((i=e?.class)==null?void 0:i.defaultRenderer)==="dagre-wrapper"?!1:/^\s*classDiagram/.test(t)},I_=async()=>{const{diagram:t}=await K(async()=>{const{diagram:e}=await import("./classDiagram-70f12bd4-CxVN6dqg.js");return{diagram:e}},__vite__mapDeps([31,32,6,7,13,14,15,2,3]));return{id:El,diagram:t}},$_={id:El,detector:M_,loader:I_},D_=$_,Ol="classDiagram",N_=(t,e)=>{var i;return/^\s*classDiagram/.test(t)&&((i=e?.class)==null?void 0:i.defaultRenderer)==="dagre-wrapper"?!0:/^\s*classDiagram-v2/.test(t)},R_=async()=>{const{diagram:t}=await K(async()=>{const{diagram:e}=await import("./classDiagram-v2-f2320105-sxYuC2Nh.js");return{diagram:e}},__vite__mapDeps([33,32,6,9,7,10,11,12,13,14,15,2,3]));return{id:Ol,diagram:t}},P_={id:Ol,detector:N_,loader:R_},q_=P_,Ml="state",z_=(t,e)=>{var i;return((i=e?.state)==null?void 0:i.defaultRenderer)==="dagre-wrapper"?!1:/^\s*stateDiagram/.test(t)},W_=async()=>{const{diagram:t}=await K(async()=>{const{diagram:e}=await import("./stateDiagram-587899a1-0572nodG.js");return{diagram:e}},__vite__mapDeps([34,35,6,7,13,14,15,2,3]));return{id:Ml,diagram:t}},H_={id:Ml,detector:z_,loader:W_},j_=H_,Il="stateDiagram",U_=(t,e)=>{var i;return!!(/^\s*stateDiagram-v2/.test(t)||/^\s*stateDiagram/.test(t)&&((i=e?.state)==null?void 0:i.defaultRenderer)==="dagre-wrapper")},Y_=async()=>{const{diagram:t}=await K(async()=>{const{diagram:e}=await import("./stateDiagram-v2-d93cdb3a-Bk-Y7fy9.js");return{diagram:e}},__vite__mapDeps([36,35,6,9,7,10,11,12,13,14,15,2,3]));return{id:Il,diagram:t}},V_={id:Il,detector:U_,loader:Y_},G_=V_,$l="journey",X_=t=>/^\s*journey/.test(t),K_=async()=>{const{diagram:t}=await K(async()=>{const{diagram:e}=await import("./journeyDiagram-49397b02-DyGjNBW-.js");return{diagram:e}},__vite__mapDeps([37,1,25,15,2,3]));return{id:$l,diagram:t}},Z_={id:$l,detector:X_,loader:K_},J_=Z_,Q_=function(t,e){for(let i of e)t.attr(i[0],i[1])},ty=function(t,e,i){let r=new Map;return i?(r.set("width","100%"),r.set("style",`max-width: ${e}px;`)):(r.set("height",t),r.set("width",e)),r},Dl=function(t,e,i,r){const n=ty(e,i,r);Q_(t,n)},ey=function(t,e,i,r){const n=e.node().getBBox(),o=n.width,s=n.height;E.info(`SVG bounds: ${o}x${s}`,n);let a=0,l=0;E.info(`Graph bounds: ${a}x${l}`,t),a=o+i*2,l=s+i*2,E.info(`Calculated bounds: ${a}x${l}`),Dl(e,l,a,r);const h=`${n.x-i} ${n.y-i} ${n.width+2*i} ${n.height+2*i}`;e.attr("viewBox",h)},Vi={},iy=(t,e,i)=>{let r="";return t in Vi&&Vi[t]?r=Vi[t](i):E.warn(`No theme found for ${t}`),` & { + font-family: ${i.fontFamily}; + font-size: ${i.fontSize}; + fill: ${i.textColor} + } + + /* Classes common for multiple diagrams */ + + & .error-icon { + fill: ${i.errorBkgColor}; + } + & .error-text { + fill: ${i.errorTextColor}; + stroke: ${i.errorTextColor}; + } + + & .edge-thickness-normal { + stroke-width: 2px; + } + & .edge-thickness-thick { + stroke-width: 3.5px + } + & .edge-pattern-solid { + stroke-dasharray: 0; + } + + & .edge-pattern-dashed{ + stroke-dasharray: 3; + } + .edge-pattern-dotted { + stroke-dasharray: 2; + } + + & .marker { + fill: ${i.lineColor}; + stroke: ${i.lineColor}; + } + & .marker.cross { + stroke: ${i.lineColor}; + } + + & svg { + font-family: ${i.fontFamily}; + font-size: ${i.fontSize}; + } + + ${r} + + ${e} +`},ry=(t,e)=>{e!==void 0&&(Vi[t]=e)},ny=iy;let Gn="",Xn="",Kn="";const Zn=t=>Ci(t,qt()),oy=()=>{Gn="",Kn="",Xn=""},sy=t=>{Gn=Zn(t).replace(/^\s+/g,"")},ay=()=>Gn,ly=t=>{Kn=Zn(t).replace(/\n\s+/g,` +`)},hy=()=>Kn,cy=t=>{Xn=Zn(t)},uy=()=>Xn,fy=Object.freeze(Object.defineProperty({__proto__:null,clear:oy,getAccDescription:hy,getAccTitle:ay,getDiagramTitle:uy,setAccDescription:ly,setAccTitle:sy,setDiagramTitle:cy},Symbol.toStringTag,{value:"Module"})),dy=E,py=Hn,Jn=qt,Rb=ml,Pb=Pe,gy=t=>Ci(t,Jn()),my=ey,_y=()=>fy,cr={},ur=(t,e,i)=>{var r;if(cr[t])throw new Error(`Diagram ${t} already registered.`);cr[t]=e,i&&hl(t,i),ry(t,e.styles),(r=e.injectUtils)==null||r.call(e,dy,py,Jn,gy,my,_y(),()=>{})},Qn=t=>{if(t in cr)return cr[t];throw new yy(t)};class yy extends Error{constructor(e){super(`Diagram ${e} not found.`)}}const Cy=t=>{var e;const{securityLevel:i}=Jn();let r=Tt("body");if(i==="sandbox"){const s=((e=Tt(`#i${t}`).node())==null?void 0:e.contentDocument)??document;r=Tt(s.body)}return r.select(`#${t}`)},xy=(t,e,i)=>{E.debug(`rendering svg for syntax error +`);const r=Cy(e),n=r.append("g");r.attr("viewBox","0 0 2412 512"),Dl(r,100,512,!0),n.append("path").attr("class","error-icon").attr("d","m411.313,123.313c6.25-6.25 6.25-16.375 0-22.625s-16.375-6.25-22.625,0l-32,32-9.375,9.375-20.688-20.688c-12.484-12.5-32.766-12.5-45.25,0l-16,16c-1.261,1.261-2.304,2.648-3.31,4.051-21.739-8.561-45.324-13.426-70.065-13.426-105.867,0-192,86.133-192,192s86.133,192 192,192 192-86.133 192-192c0-24.741-4.864-48.327-13.426-70.065 1.402-1.007 2.79-2.049 4.051-3.31l16-16c12.5-12.492 12.5-32.758 0-45.25l-20.688-20.688 9.375-9.375 32.001-31.999zm-219.313,100.687c-52.938,0-96,43.063-96,96 0,8.836-7.164,16-16,16s-16-7.164-16-16c0-70.578 57.422-128 128-128 8.836,0 16,7.164 16,16s-7.164,16-16,16z"),n.append("path").attr("class","error-icon").attr("d","m459.02,148.98c-6.25-6.25-16.375-6.25-22.625,0s-6.25,16.375 0,22.625l16,16c3.125,3.125 7.219,4.688 11.313,4.688 4.094,0 8.188-1.563 11.313-4.688 6.25-6.25 6.25-16.375 0-22.625l-16.001-16z"),n.append("path").attr("class","error-icon").attr("d","m340.395,75.605c3.125,3.125 7.219,4.688 11.313,4.688 4.094,0 8.188-1.563 11.313-4.688 6.25-6.25 6.25-16.375 0-22.625l-16-16c-6.25-6.25-16.375-6.25-22.625,0s-6.25,16.375 0,22.625l15.999,16z"),n.append("path").attr("class","error-icon").attr("d","m400,64c8.844,0 16-7.164 16-16v-32c0-8.836-7.156-16-16-16-8.844,0-16,7.164-16,16v32c0,8.836 7.156,16 16,16z"),n.append("path").attr("class","error-icon").attr("d","m496,96.586h-32c-8.844,0-16,7.164-16,16 0,8.836 7.156,16 16,16h32c8.844,0 16-7.164 16-16 0-8.836-7.156-16-16-16z"),n.append("path").attr("class","error-icon").attr("d","m436.98,75.605c3.125,3.125 7.219,4.688 11.313,4.688 4.094,0 8.188-1.563 11.313-4.688l32-32c6.25-6.25 6.25-16.375 0-22.625s-16.375-6.25-22.625,0l-32,32c-6.251,6.25-6.251,16.375-0.001,22.625z"),n.append("text").attr("class","error-text").attr("x",1440).attr("y",250).attr("font-size","150px").style("text-anchor","middle").text("Syntax error in text"),n.append("text").attr("class","error-text").attr("x",1250).attr("y",400).attr("font-size","100px").style("text-anchor","middle").text(`mermaid version ${i}`)},Nl={draw:xy},by=Nl,Ty={db:{},renderer:Nl,parser:{parser:{yy:{}},parse:()=>{}}},vy=Ty,Rl="flowchart-elk",ky=(t,e)=>{var i;return!!(/^\s*flowchart-elk/.test(t)||/^\s*flowchart|graph/.test(t)&&((i=e?.flowchart)==null?void 0:i.defaultRenderer)==="elk")},Sy=async()=>{const{diagram:t}=await K(async()=>{const{diagram:e}=await import("./flowchart-elk-definition-4a651766-BEXfWFi4.js");return{diagram:e}},__vite__mapDeps([38,5,11,12,13,14,15,2,3]));return{id:Rl,diagram:t}},wy={id:Rl,detector:ky,loader:Sy},By=wy,Pl="timeline",Ay=t=>/^\s*timeline/.test(t),Ly=async()=>{const{diagram:t}=await K(async()=>{const{diagram:e}=await import("./timeline-definition-85554ec2-CU0quQnj.js");return{diagram:e}},__vite__mapDeps([39,25,15,2,3]));return{id:Pl,diagram:t}},Fy={id:Pl,detector:Ay,loader:Ly},Ey=Fy,ql="mindmap",Oy=t=>/^\s*mindmap/.test(t),My=async()=>{const{diagram:t}=await K(async()=>{const{diagram:e}=await import("./mindmap-definition-fc14e90a-OwahSOpH.js");return{diagram:e}},__vite__mapDeps([40,2,3,12]));return{id:ql,diagram:t}},Iy={id:ql,detector:Oy,loader:My},$y=Iy,zl="sankey",Dy=t=>/^\s*sankey-beta/.test(t),Ny=async()=>{const{diagram:t}=await K(async()=>{const{diagram:e}=await import("./sankeyDiagram-04a897e0-KBmVLHBz.js");return{diagram:e}},__vite__mapDeps([41,26,22,42,2,3]));return{id:zl,diagram:t}},Ry={id:zl,detector:Dy,loader:Ny},Py=Ry,Wl="block",qy=t=>/^\s*block-beta/.test(t),zy=async()=>{const{diagram:t}=await K(async()=>{const{diagram:e}=await import("./blockDiagram-38ab4fdb-PSSimswN.js");return{diagram:e}},__vite__mapDeps([43,10,6,11,12,13,14,15,26,22,16,42,2,3]));return{id:Wl,diagram:t}},Wy={id:Wl,detector:qy,loader:zy},Hy=Wy;let Fs=!1;const to=()=>{Fs||(Fs=!0,ur("error",vy,t=>t.toLowerCase().trim()==="error"),ur("---",{db:{clear:()=>{}},styles:{},renderer:{draw:()=>{}},parser:{parser:{yy:{}},parse:()=>{throw new Error("Diagrams beginning with --- are not valid. If you were trying to use a YAML front-matter, please ensure that you've correctly opened and closed the YAML front-matter with un-indented `---` blocks")}},init:()=>null},t=>t.toLowerCase().trimStart().startsWith("---")),ll(j0,q_,D_,i_,c_,d_,m_,A_,O_,By,J0,G0,$y,Ey,s_,G_,j_,J_,x_,Py,k_,Hy))};class Hl{constructor(e,i={}){this.text=e,this.metadata=i,this.type="graph",this.text=M0(e),this.text+=` +`;const r=qt();try{this.type=Er(e,r)}catch(o){this.type="error",this.detectError=o}const n=Qn(this.type);E.debug("Type "+this.type),this.db=n.db,this.renderer=n.renderer,this.parser=n.parser,this.parser.parser.yy=this.db,this.init=n.init,this.parse()}parse(){var e,i,r,n,o;if(this.detectError)throw this.detectError;(i=(e=this.db).clear)==null||i.call(e);const s=qt();(r=this.init)==null||r.call(this,s),this.metadata.title&&((o=(n=this.db).setDiagramTitle)==null||o.call(n,this.metadata.title)),this.parser.parse(this.text)}async render(e,i){await this.renderer.draw(this.text,e,i,this)}getParser(){return this.parser}getType(){return this.type}}const jy=async(t,e={})=>{const i=Er(t,qt());try{Qn(i)}catch{const n=a0(i);if(!n)throw new al(`Diagram ${i} not found.`);const{id:o,diagram:s}=await n();ur(o,s)}return new Hl(t,e)};let Es=[];const Uy=()=>{Es.forEach(t=>{t()}),Es=[]},Yy="graphics-document document";function Vy(t,e){t.attr("role",Yy),e!==""&&t.attr("aria-roledescription",e)}function Gy(t,e,i,r){if(t.insert!==void 0){if(i){const n=`chart-desc-${r}`;t.attr("aria-describedby",n),t.insert("desc",":first-child").attr("id",n).text(i)}if(e){const n=`chart-title-${r}`;t.attr("aria-labelledby",n),t.insert("title",":first-child").attr("id",n).text(e)}}}const Xy=t=>t.replace(/^\s*%%(?!{)[^\n]+\n?/gm,"").trimStart();/*! js-yaml 4.1.0 https://github.com/nodeca/js-yaml @license MIT */function jl(t){return typeof t>"u"||t===null}function Ky(t){return typeof t=="object"&&t!==null}function Zy(t){return Array.isArray(t)?t:jl(t)?[]:[t]}function Jy(t,e){var i,r,n,o;if(e)for(o=Object.keys(e),i=0,r=o.length;ia&&(o=" ... ",e=r-a+o.length),i-r>a&&(s=" ...",i=r+a-s.length),{str:o+t.slice(e,i).replace(/\t/g,"→")+s,pos:r-e+o.length}}function tn(t,e){return ct.repeat(" ",e-t.length)+t}function aC(t,e){if(e=Object.create(e||null),!t.buffer)return null;e.maxLength||(e.maxLength=79),typeof e.indent!="number"&&(e.indent=1),typeof e.linesBefore!="number"&&(e.linesBefore=3),typeof e.linesAfter!="number"&&(e.linesAfter=2);for(var i=/\r?\n|\r|\0/g,r=[0],n=[],o,s=-1;o=i.exec(t.buffer);)n.push(o.index),r.push(o.index+o[0].length),t.position<=o.index&&s<0&&(s=r.length-2);s<0&&(s=r.length-1);var a="",l,h,u=Math.min(t.line+e.linesAfter,n.length).toString().length,f=e.maxLength-(e.indent+u+3);for(l=1;l<=e.linesBefore&&!(s-l<0);l++)h=Qr(t.buffer,r[s-l],n[s-l],t.position-(r[s]-r[s-l]),f),a=ct.repeat(" ",e.indent)+tn((t.line-l+1).toString(),u)+" | "+h.str+` +`+a;for(h=Qr(t.buffer,r[s],n[s],t.position,f),a+=ct.repeat(" ",e.indent)+tn((t.line+1).toString(),u)+" | "+h.str+` +`,a+=ct.repeat("-",e.indent+u+3+h.pos)+`^ +`,l=1;l<=e.linesAfter&&!(s+l>=n.length);l++)h=Qr(t.buffer,r[s+l],n[s+l],t.position-(r[s]-r[s+l]),f),a+=ct.repeat(" ",e.indent)+tn((t.line+l+1).toString(),u)+" | "+h.str+` +`;return a.replace(/\n$/,"")}var lC=aC,hC=["kind","multi","resolve","construct","instanceOf","predicate","represent","representName","defaultStyle","styleAliases"],cC=["scalar","sequence","mapping"];function uC(t){var e={};return t!==null&&Object.keys(t).forEach(function(i){t[i].forEach(function(r){e[String(r)]=i})}),e}function fC(t,e){if(e=e||{},Object.keys(e).forEach(function(i){if(hC.indexOf(i)===-1)throw new Gt('Unknown option "'+i+'" is met in definition of "'+t+'" YAML type.')}),this.options=e,this.tag=t,this.kind=e.kind||null,this.resolve=e.resolve||function(){return!0},this.construct=e.construct||function(i){return i},this.instanceOf=e.instanceOf||null,this.predicate=e.predicate||null,this.represent=e.represent||null,this.representName=e.representName||null,this.defaultStyle=e.defaultStyle||null,this.multi=e.multi||!1,this.styleAliases=uC(e.styleAliases||null),cC.indexOf(this.kind)===-1)throw new Gt('Unknown kind "'+this.kind+'" is specified for "'+t+'" YAML type.')}var at=fC;function Os(t,e){var i=[];return t[e].forEach(function(r){var n=i.length;i.forEach(function(o,s){o.tag===r.tag&&o.kind===r.kind&&o.multi===r.multi&&(n=s)}),i[n]=r}),i}function dC(){var t={scalar:{},sequence:{},mapping:{},fallback:{},multi:{scalar:[],sequence:[],mapping:[],fallback:[]}},e,i;function r(n){n.multi?(t.multi[n.kind].push(n),t.multi.fallback.push(n)):t[n.kind][n.tag]=t.fallback[n.tag]=n}for(e=0,i=arguments.length;e=0?"0b"+t.toString(2):"-0b"+t.toString(2).slice(1)},octal:function(t){return t>=0?"0o"+t.toString(8):"-0o"+t.toString(8).slice(1)},decimal:function(t){return t.toString(10)},hexadecimal:function(t){return t>=0?"0x"+t.toString(16).toUpperCase():"-0x"+t.toString(16).toUpperCase().slice(1)}},defaultStyle:"decimal",styleAliases:{binary:[2,"bin"],octal:[8,"oct"],decimal:[10,"dec"],hexadecimal:[16,"hex"]}}),IC=new RegExp("^(?:[-+]?(?:[0-9][0-9_]*)(?:\\.[0-9_]*)?(?:[eE][-+]?[0-9]+)?|\\.[0-9_]+(?:[eE][-+]?[0-9]+)?|[-+]?\\.(?:inf|Inf|INF)|\\.(?:nan|NaN|NAN))$");function $C(t){return!(t===null||!IC.test(t)||t[t.length-1]==="_")}function DC(t){var e,i;return e=t.replace(/_/g,"").toLowerCase(),i=e[0]==="-"?-1:1,"+-".indexOf(e[0])>=0&&(e=e.slice(1)),e===".inf"?i===1?Number.POSITIVE_INFINITY:Number.NEGATIVE_INFINITY:e===".nan"?NaN:i*parseFloat(e,10)}var NC=/^[-+]?[0-9]+e/;function RC(t,e){var i;if(isNaN(t))switch(e){case"lowercase":return".nan";case"uppercase":return".NAN";case"camelcase":return".NaN"}else if(Number.POSITIVE_INFINITY===t)switch(e){case"lowercase":return".inf";case"uppercase":return".INF";case"camelcase":return".Inf"}else if(Number.NEGATIVE_INFINITY===t)switch(e){case"lowercase":return"-.inf";case"uppercase":return"-.INF";case"camelcase":return"-.Inf"}else if(ct.isNegativeZero(t))return"-0.0";return i=t.toString(10),NC.test(i)?i.replace("e",".e"):i}function PC(t){return Object.prototype.toString.call(t)==="[object Number]"&&(t%1!==0||ct.isNegativeZero(t))}var qC=new at("tag:yaml.org,2002:float",{kind:"scalar",resolve:$C,construct:DC,predicate:PC,represent:RC,defaultStyle:"lowercase"}),Yl=yC.extend({implicit:[TC,wC,MC,qC]}),zC=Yl,Vl=new RegExp("^([0-9][0-9][0-9][0-9])-([0-9][0-9])-([0-9][0-9])$"),Gl=new RegExp("^([0-9][0-9][0-9][0-9])-([0-9][0-9]?)-([0-9][0-9]?)(?:[Tt]|[ \\t]+)([0-9][0-9]?):([0-9][0-9]):([0-9][0-9])(?:\\.([0-9]*))?(?:[ \\t]*(Z|([-+])([0-9][0-9]?)(?::([0-9][0-9]))?))?$");function WC(t){return t===null?!1:Vl.exec(t)!==null||Gl.exec(t)!==null}function HC(t){var e,i,r,n,o,s,a,l=0,h=null,u,f,c;if(e=Vl.exec(t),e===null&&(e=Gl.exec(t)),e===null)throw new Error("Date resolve error");if(i=+e[1],r=+e[2]-1,n=+e[3],!e[4])return new Date(Date.UTC(i,r,n));if(o=+e[4],s=+e[5],a=+e[6],e[7]){for(l=e[7].slice(0,3);l.length<3;)l+="0";l=+l}return e[9]&&(u=+e[10],f=+(e[11]||0),h=(u*60+f)*6e4,e[9]==="-"&&(h=-h)),c=new Date(Date.UTC(i,r,n,o,s,a,l)),h&&c.setTime(c.getTime()-h),c}function jC(t){return t.toISOString()}var UC=new at("tag:yaml.org,2002:timestamp",{kind:"scalar",resolve:WC,construct:HC,instanceOf:Date,represent:jC});function YC(t){return t==="<<"||t===null}var VC=new at("tag:yaml.org,2002:merge",{kind:"scalar",resolve:YC}),eo=`ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/= +\r`;function GC(t){if(t===null)return!1;var e,i,r=0,n=t.length,o=eo;for(i=0;i64)){if(e<0)return!1;r+=6}return r%8===0}function XC(t){var e,i,r=t.replace(/[\r\n=]/g,""),n=r.length,o=eo,s=0,a=[];for(e=0;e>16&255),a.push(s>>8&255),a.push(s&255)),s=s<<6|o.indexOf(r.charAt(e));return i=n%4*6,i===0?(a.push(s>>16&255),a.push(s>>8&255),a.push(s&255)):i===18?(a.push(s>>10&255),a.push(s>>2&255)):i===12&&a.push(s>>4&255),new Uint8Array(a)}function KC(t){var e="",i=0,r,n,o=t.length,s=eo;for(r=0;r>18&63],e+=s[i>>12&63],e+=s[i>>6&63],e+=s[i&63]),i=(i<<8)+t[r];return n=o%3,n===0?(e+=s[i>>18&63],e+=s[i>>12&63],e+=s[i>>6&63],e+=s[i&63]):n===2?(e+=s[i>>10&63],e+=s[i>>4&63],e+=s[i<<2&63],e+=s[64]):n===1&&(e+=s[i>>2&63],e+=s[i<<4&63],e+=s[64],e+=s[64]),e}function ZC(t){return Object.prototype.toString.call(t)==="[object Uint8Array]"}var JC=new at("tag:yaml.org,2002:binary",{kind:"scalar",resolve:GC,construct:XC,predicate:ZC,represent:KC}),QC=Object.prototype.hasOwnProperty,tx=Object.prototype.toString;function ex(t){if(t===null)return!0;var e=[],i,r,n,o,s,a=t;for(i=0,r=a.length;i>10)+55296,(t-65536&1023)+56320)}var Ql=new Array(256),th=new Array(256);for(var Ae=0;Ae<256;Ae++)Ql[Ae]=$s(Ae)?1:0,th[Ae]=$s(Ae);function bx(t,e){this.input=t,this.filename=e.filename||null,this.schema=e.schema||fx,this.onWarning=e.onWarning||null,this.legacy=e.legacy||!1,this.json=e.json||!1,this.listener=e.listener||null,this.implicitTypes=this.schema.compiledImplicit,this.typeMap=this.schema.compiledTypeMap,this.length=t.length,this.position=0,this.line=0,this.lineStart=0,this.lineIndent=0,this.firstTabInLine=-1,this.documents=[]}function eh(t,e){var i={name:t.filename,buffer:t.input.slice(0,-1),position:t.position,line:t.line,column:t.position-t.lineStart};return i.snippet=lC(i),new Gt(e,i)}function L(t,e){throw eh(t,e)}function pr(t,e){t.onWarning&&t.onWarning.call(null,eh(t,e))}var Ds={YAML:function(e,i,r){var n,o,s;e.version!==null&&L(e,"duplication of %YAML directive"),r.length!==1&&L(e,"YAML directive accepts exactly one argument"),n=/^([0-9]+)\.([0-9]+)$/.exec(r[0]),n===null&&L(e,"ill-formed argument of the YAML directive"),o=parseInt(n[1],10),s=parseInt(n[2],10),o!==1&&L(e,"unacceptable YAML version of the document"),e.version=r[0],e.checkLineBreaks=s<2,s!==1&&s!==2&&pr(e,"unsupported YAML version of the document")},TAG:function(e,i,r){var n,o;r.length!==2&&L(e,"TAG directive accepts exactly two arguments"),n=r[0],o=r[1],Zl.test(n)||L(e,"ill-formed tag handle (first argument) of the TAG directive"),le.call(e.tagMap,n)&&L(e,'there is a previously declared suffix for "'+n+'" tag handle'),Jl.test(o)||L(e,"ill-formed tag prefix (second argument) of the TAG directive");try{o=decodeURIComponent(o)}catch{L(e,"tag prefix is malformed: "+o)}e.tagMap[n]=o}};function se(t,e,i,r){var n,o,s,a;if(e1&&(t.result+=ct.repeat(` +`,e-1))}function Tx(t,e,i){var r,n,o,s,a,l,h,u,f=t.kind,c=t.result,p;if(p=t.input.charCodeAt(t.position),mt(p)||Le(p)||p===35||p===38||p===42||p===33||p===124||p===62||p===39||p===34||p===37||p===64||p===96||(p===63||p===45)&&(n=t.input.charCodeAt(t.position+1),mt(n)||i&&Le(n)))return!1;for(t.kind="scalar",t.result="",o=s=t.position,a=!1;p!==0;){if(p===58){if(n=t.input.charCodeAt(t.position+1),mt(n)||i&&Le(n))break}else if(p===35){if(r=t.input.charCodeAt(t.position-1),mt(r))break}else{if(t.position===t.lineStart&&Mr(t)||i&&Le(p))break;if(Rt(p))if(l=t.line,h=t.lineStart,u=t.lineIndent,Q(t,!1,-1),t.lineIndent>=e){a=!0,p=t.input.charCodeAt(t.position);continue}else{t.position=s,t.line=l,t.lineStart=h,t.lineIndent=u;break}}a&&(se(t,o,s,!1),ro(t,t.line-l),o=s=t.position,a=!1),me(p)||(s=t.position+1),p=t.input.charCodeAt(++t.position)}return se(t,o,s,!1),t.result?!0:(t.kind=f,t.result=c,!1)}function vx(t,e){var i,r,n;if(i=t.input.charCodeAt(t.position),i!==39)return!1;for(t.kind="scalar",t.result="",t.position++,r=n=t.position;(i=t.input.charCodeAt(t.position))!==0;)if(i===39)if(se(t,r,t.position,!0),i=t.input.charCodeAt(++t.position),i===39)r=t.position,t.position++,n=t.position;else return!0;else Rt(i)?(se(t,r,n,!0),ro(t,Q(t,!1,e)),r=n=t.position):t.position===t.lineStart&&Mr(t)?L(t,"unexpected end of the document within a single quoted scalar"):(t.position++,n=t.position);L(t,"unexpected end of the stream within a single quoted scalar")}function kx(t,e){var i,r,n,o,s,a;if(a=t.input.charCodeAt(t.position),a!==34)return!1;for(t.kind="scalar",t.result="",t.position++,i=r=t.position;(a=t.input.charCodeAt(t.position))!==0;){if(a===34)return se(t,i,t.position,!0),t.position++,!0;if(a===92){if(se(t,i,t.position,!0),a=t.input.charCodeAt(++t.position),Rt(a))Q(t,!1,e);else if(a<256&&Ql[a])t.result+=th[a],t.position++;else if((s=yx(a))>0){for(n=s,o=0;n>0;n--)a=t.input.charCodeAt(++t.position),(s=_x(a))>=0?o=(o<<4)+s:L(t,"expected hexadecimal character");t.result+=xx(o),t.position++}else L(t,"unknown escape sequence");i=r=t.position}else Rt(a)?(se(t,i,r,!0),ro(t,Q(t,!1,e)),i=r=t.position):t.position===t.lineStart&&Mr(t)?L(t,"unexpected end of the document within a double quoted scalar"):(t.position++,r=t.position)}L(t,"unexpected end of the stream within a double quoted scalar")}function Sx(t,e){var i=!0,r,n,o,s=t.tag,a,l=t.anchor,h,u,f,c,p,_=Object.create(null),b,k,P,v;if(v=t.input.charCodeAt(t.position),v===91)u=93,p=!1,a=[];else if(v===123)u=125,p=!0,a={};else return!1;for(t.anchor!==null&&(t.anchorMap[t.anchor]=a),v=t.input.charCodeAt(++t.position);v!==0;){if(Q(t,!0,e),v=t.input.charCodeAt(t.position),v===u)return t.position++,t.tag=s,t.anchor=l,t.kind=p?"mapping":"sequence",t.result=a,!0;i?v===44&&L(t,"expected the node content, but found ','"):L(t,"missed comma between flow collection entries"),k=b=P=null,f=c=!1,v===63&&(h=t.input.charCodeAt(t.position+1),mt(h)&&(f=c=!0,t.position++,Q(t,!0,e))),r=t.line,n=t.lineStart,o=t.position,ze(t,e,fr,!1,!0),k=t.tag,b=t.result,Q(t,!0,e),v=t.input.charCodeAt(t.position),(c||t.line===r)&&v===58&&(f=!0,v=t.input.charCodeAt(++t.position),Q(t,!0,e),ze(t,e,fr,!1,!0),P=t.result),p?Fe(t,a,_,k,b,P,r,n,o):f?a.push(Fe(t,null,_,k,b,P,r,n,o)):a.push(b),Q(t,!0,e),v=t.input.charCodeAt(t.position),v===44?(i=!0,v=t.input.charCodeAt(++t.position)):i=!1}L(t,"unexpected end of the stream within a flow collection")}function wx(t,e){var i,r,n=en,o=!1,s=!1,a=e,l=0,h=!1,u,f;if(f=t.input.charCodeAt(t.position),f===124)r=!1;else if(f===62)r=!0;else return!1;for(t.kind="scalar",t.result="";f!==0;)if(f=t.input.charCodeAt(++t.position),f===43||f===45)en===n?n=f===43?Ms:dx:L(t,"repeat of a chomping mode identifier");else if((u=Cx(f))>=0)u===0?L(t,"bad explicit indentation width of a block scalar; it cannot be less than one"):s?L(t,"repeat of an indentation width identifier"):(a=e+u-1,s=!0);else break;if(me(f)){do f=t.input.charCodeAt(++t.position);while(me(f));if(f===35)do f=t.input.charCodeAt(++t.position);while(!Rt(f)&&f!==0)}for(;f!==0;){for(io(t),t.lineIndent=0,f=t.input.charCodeAt(t.position);(!s||t.lineIndenta&&(a=t.lineIndent),Rt(f)){l++;continue}if(t.lineIndente)&&l!==0)L(t,"bad indentation of a sequence entry");else if(t.lineIndente)&&(k&&(s=t.line,a=t.lineStart,l=t.position),ze(t,e,dr,!0,n)&&(k?_=t.result:b=t.result),k||(Fe(t,f,c,p,_,b,s,a,l),p=_=b=null),Q(t,!0,-1),v=t.input.charCodeAt(t.position)),(t.line===o||t.lineIndent>e)&&v!==0)L(t,"bad indentation of a mapping entry");else if(t.lineIndente?l=1:t.lineIndent===e?l=0:t.lineIndente?l=1:t.lineIndent===e?l=0:t.lineIndent tag; it should be "scalar", not "'+t.kind+'"'),f=0,c=t.implicitTypes.length;f"),t.result!==null&&_.kind!==t.kind&&L(t,"unacceptable node kind for !<"+t.tag+'> tag; it should be "'+_.kind+'", not "'+t.kind+'"'),_.resolve(t.result,t.tag)?(t.result=_.construct(t.result,t.tag),t.anchor!==null&&(t.anchorMap[t.anchor]=t.result)):L(t,"cannot resolve a node with !<"+t.tag+"> explicit tag")}return t.listener!==null&&t.listener("close",t),t.tag!==null||t.anchor!==null||u}function Ex(t){var e=t.position,i,r,n,o=!1,s;for(t.version=null,t.checkLineBreaks=t.legacy,t.tagMap=Object.create(null),t.anchorMap=Object.create(null);(s=t.input.charCodeAt(t.position))!==0&&(Q(t,!0,-1),s=t.input.charCodeAt(t.position),!(t.lineIndent>0||s!==37));){for(o=!0,s=t.input.charCodeAt(++t.position),i=t.position;s!==0&&!mt(s);)s=t.input.charCodeAt(++t.position);for(r=t.input.slice(i,t.position),n=[],r.length<1&&L(t,"directive name must not be less than one character in length");s!==0;){for(;me(s);)s=t.input.charCodeAt(++t.position);if(s===35){do s=t.input.charCodeAt(++t.position);while(s!==0&&!Rt(s));break}if(Rt(s))break;for(i=t.position;s!==0&&!mt(s);)s=t.input.charCodeAt(++t.position);n.push(t.input.slice(i,t.position))}s!==0&&io(t),le.call(Ds,r)?Ds[r](t,r,n):pr(t,'unknown document directive "'+r+'"')}if(Q(t,!0,-1),t.lineIndent===0&&t.input.charCodeAt(t.position)===45&&t.input.charCodeAt(t.position+1)===45&&t.input.charCodeAt(t.position+2)===45?(t.position+=3,Q(t,!0,-1)):o&&L(t,"directives end mark is expected"),ze(t,t.lineIndent-1,dr,!1,!0),Q(t,!0,-1),t.checkLineBreaks&&gx.test(t.input.slice(e,t.position))&&pr(t,"non-ASCII line breaks are interpreted as content"),t.documents.push(t.result),t.position===t.lineStart&&Mr(t)){t.input.charCodeAt(t.position)===46&&(t.position+=3,Q(t,!0,-1));return}if(t.position"u"&&(i=e,e=null);var r=ih(t,i);if(typeof e!="function")return r;for(var n=0,o=r.length;nt.replace(/\r\n?/g,` +`).replace(/<(\w+)([^>]*)>/g,(e,i,r)=>"<"+i+r.replace(/="([^"]*)"/g,"='$1'")+">"),zx=t=>{const{text:e,metadata:i}=Px(t),{displayMode:r,title:n,config:o={}}=i;return r&&(o.gantt||(o.gantt={}),o.gantt.displayMode=r),{title:n,config:o,text:e}},Wx=t=>{const e=hi.detectInit(t)??{},i=hi.detectDirective(t,"wrap");return Array.isArray(i)?e.wrap=i.some(({type:r})=>{}):i?.type==="wrap"&&(e.wrap=!0),{text:f0(t),directive:e}};function rh(t){const e=qx(t),i=zx(e),r=Wx(i.text),n=dl(i.config,r.directive);return t=Xy(r.text),{code:t,title:i.title,config:n}}const Hx=5e4,jx="graph TB;a[Maximum text size in diagram exceeded];style a fill:#faa",Ux="sandbox",Yx="loose",Vx="http://www.w3.org/2000/svg",Gx="http://www.w3.org/1999/xlink",Xx="http://www.w3.org/1999/xhtml",Kx="100%",Zx="100%",Jx="border:0;margin:0;",Qx="margin:0",tb="allow-top-navigation-by-user-activation allow-popups",eb='The "iframe" tag is not supported by your browser.',ib=["foreignobject"],rb=["dominant-baseline"];function nh(t){const e=rh(t);return hr(),R0(e.config??{}),e}async function nb(t,e){to(),t=nh(t).code;try{await no(t)}catch(i){if(e?.suppressErrors)return!1;throw i}return!0}const Ps=(t,e,i=[])=>` +.${t} ${e} { ${i.join(" !important; ")} !important; }`,ob=(t,e={})=>{var i;let r="";if(t.themeCSS!==void 0&&(r+=` +${t.themeCSS}`),t.fontFamily!==void 0&&(r+=` +:root { --mermaid-font-family: ${t.fontFamily}}`),t.altFontFamily!==void 0&&(r+=` +:root { --mermaid-alt-font-family: ${t.altFontFamily}}`),!Jr(e)){const a=t.htmlLabels||((i=t.flowchart)==null?void 0:i.htmlLabels)?["> *","span"]:["rect","polygon","ellipse","circle","path"];for(const l in e){const h=e[l];Jr(h.styles)||a.forEach(u=>{r+=Ps(h.id,u,h.styles)}),Jr(h.textStyles)||(r+=Ps(h.id,"tspan",h.textStyles))}}return r},sb=(t,e,i,r)=>{const n=ob(t,i),o=ny(e,n,t.themeVariables);return mn(_m(`${r}{${o}}`),Cm)},ab=(t="",e,i)=>{let r=t;return!i&&!e&&(r=r.replace(/marker-end="url\([\d+./:=?A-Za-z-]*?#/g,'marker-end="url(#')),r=I0(r),r=r.replace(/
    /g,"
    "),r},lb=(t="",e)=>{var i,r;const n=(r=(i=e?.viewBox)==null?void 0:i.baseVal)!=null&&r.height?e.viewBox.baseVal.height+"px":Zx,o=btoa(''+t+"");return``},qs=(t,e,i,r,n)=>{const o=t.append("div");o.attr("id",i),r&&o.attr("style",r);const s=o.append("svg").attr("id",e).attr("width","100%").attr("xmlns",Vx);return n&&s.attr("xmlns:xlink",n),s.append("g"),t};function zs(t,e){return t.append("iframe").attr("id",e).attr("style","width: 100%; height: 100%;").attr("sandbox","")}const hb=(t,e,i,r)=>{var n,o,s;(n=t.getElementById(e))==null||n.remove(),(o=t.getElementById(i))==null||o.remove(),(s=t.getElementById(r))==null||s.remove()},cb=async function(t,e,i){var r,n,o,s,a,l;to();const h=nh(e);e=h.code;const u=qt();E.debug(u),e.length>(u?.maxTextSize??Hx)&&(e=jx);const f="#"+t,c="i"+t,p="#"+c,_="d"+t,b="#"+_;let k=Tt("body");const P=u.securityLevel===Ux,v=u.securityLevel===Yx,U=u.fontFamily;if(i!==void 0){if(i&&(i.innerHTML=""),P){const F=zs(Tt(i),c);k=Tt(F.nodes()[0].contentDocument.body),k.node().style.margin=0}else k=Tt(i);qs(k,t,_,`font-family: ${U}`,Gx)}else{if(hb(document,t,_,c),P){const F=zs(Tt("body"),c);k=Tt(F.nodes()[0].contentDocument.body),k.node().style.margin=0}else k=Tt("body");qs(k,t,_)}let N,j;try{N=await no(e,{title:h.title})}catch(F){N=new Hl("error"),j=F}const G=k.select(b).node(),W=N.type,Jt=G.firstChild,Qt=Jt.firstChild,Z=(n=(r=N.renderer).getClasses)==null?void 0:n.call(r,e,N),R=sb(u,W,Z,f),St=document.createElement("style");St.innerHTML=R,Jt.insertBefore(St,Qt);try{await N.renderer.draw(e,t,As,N)}catch(F){throw by.draw(e,t,As),F}const te=k.select(`${b} svg`),M=(s=(o=N.db).getAccTitle)==null?void 0:s.call(o),T=(l=(a=N.db).getAccDescription)==null?void 0:l.call(a);fb(W,te,M,T),k.select(`[id="${t}"]`).selectAll("foreignobject > *").attr("xmlns",Xx);let y=k.select(b).node().innerHTML;if(E.debug("config.arrowMarkerAbsolute",u.arrowMarkerAbsolute),y=ab(y,P,rl(u.arrowMarkerAbsolute)),P){const F=k.select(b+" svg").node();y=lb(y,F)}else v||(y=$e.sanitize(y,{ADD_TAGS:ib,ADD_ATTR:rb}));if(Uy(),j)throw j;const x=Tt(P?p:b).node();return x&&"remove"in x&&x.remove(),{svg:y,bindFunctions:N.db.bindFunctions}};function ub(t={}){var e;t?.fontFamily&&!((e=t.themeVariables)!=null&&e.fontFamily)&&(t.themeVariables||(t.themeVariables={}),t.themeVariables.fontFamily=t.fontFamily),D0(t),t?.theme&&t.theme in Xt?t.themeVariables=Xt[t.theme].getThemeVariables(t.themeVariables):t&&(t.themeVariables=Xt.default.getThemeVariables(t.themeVariables));const i=typeof t=="object"?$0(t):gl();Hn(i.logLevel),to()}const no=(t,e={})=>{const{code:i}=rh(t);return jy(i,e)};function fb(t,e,i,r){Vy(e,t),Gy(e,i,r,e.attr("id"))}const Ce=Object.freeze({render:cb,parse:nb,getDiagramFromText:no,initialize:ub,getConfig:qt,setConfig:ml,getSiteConfig:gl,updateSiteConfig:N0,reset:()=>{hr()},globalReset:()=>{hr(Pe)},defaultConfig:Pe});Hn(qt().logLevel);hr(qt());const db=async()=>{E.debug("Loading registered diagrams");const e=(await Promise.allSettled(Object.entries(Re).map(async([i,{detector:r,loader:n}])=>{if(n)try{Qn(i)}catch{try{const{diagram:s,id:a}=await n();ur(a,s,r)}catch(s){throw E.error(`Failed to load external diagram with key ${i}. Removing from detectors.`),delete Re[i],s}}}))).filter(i=>i.status==="rejected");if(e.length>0){E.error(`Failed to load ${e.length} external diagrams`);for(const i of e)E.error(i);throw new Error(`Failed to load ${e.length} external diagrams`)}},pb=(t,e,i)=>{E.warn(t),fl(t)?(i&&i(t.str,t.hash),e.push({...t,message:t.str,error:t})):(i&&i(t),t instanceof Error&&e.push({str:t.message,message:t.message,hash:t.name,error:t}))},oh=async function(t={querySelector:".mermaid"}){try{await gb(t)}catch(e){if(fl(e)&&E.error(e.str),Ot.parseError&&Ot.parseError(e),!t.suppressErrors)throw E.error("Use the suppressErrors option to suppress these errors"),e}},gb=async function({postRenderCallback:t,querySelector:e,nodes:i}={querySelector:".mermaid"}){const r=Ce.getConfig();E.debug(`${t?"":"No "}Callback function found`);let n;if(i)n=i;else if(e)n=document.querySelectorAll(e);else throw new Error("Nodes and querySelector are both undefined");E.debug(`Found ${n.length} diagrams`),r?.startOnLoad!==void 0&&(E.debug("Start On Load: "+r?.startOnLoad),Ce.updateSiteConfig({startOnLoad:r?.startOnLoad}));const o=new hi.InitIDGenerator(r.deterministicIds,r.deterministicIDSeed);let s;const a=[];for(const l of Array.from(n)){E.info("Rendering diagram: "+l.id);/*! Check if previously processed */if(l.getAttribute("data-processed"))continue;l.setAttribute("data-processed","true");const h=`mermaid-${o.next()}`;s=l.innerHTML,s=xh(hi.entityDecode(s)).trim().replace(//gi,"
    ");const u=hi.detectInit(s);u&&E.debug("Detected early reinit: ",u);try{const{svg:f,bindFunctions:c}=await hh(h,s,l);l.innerHTML=f,t&&await t(h),c&&c(l)}catch(f){pb(f,a,Ot.parseError)}}if(a.length>0)throw a[0]},sh=function(t){Ce.initialize(t)},mb=async function(t,e,i){E.warn("mermaid.init is deprecated. Please use run instead."),t&&sh(t);const r={postRenderCallback:i,querySelector:".mermaid"};typeof e=="string"?r.querySelector=e:e&&(e instanceof HTMLElement?r.nodes=[e]:r.nodes=e),await oh(r)},_b=async(t,{lazyLoad:e=!0}={})=>{ll(...t),e===!1&&await db()},ah=function(){if(Ot.startOnLoad){const{startOnLoad:t}=Ce.getConfig();t&&Ot.run().catch(e=>E.error("Mermaid failed to initialize",e))}};if(typeof document<"u"){/*! + * Wait for document loaded before starting the execution + */window.addEventListener("load",ah,!1)}const yb=function(t){Ot.parseError=t},gr=[];let rn=!1;const lh=async()=>{if(!rn){for(rn=!0;gr.length>0;){const t=gr.shift();if(t)try{await t()}catch(e){E.error("Error executing queue",e)}}rn=!1}},Cb=async(t,e)=>new Promise((i,r)=>{const n=()=>new Promise((o,s)=>{Ce.parse(t,e).then(a=>{o(a),i(a)},a=>{var l;E.error("Error parsing",a),(l=Ot.parseError)==null||l.call(Ot,a),s(a),r(a)})});gr.push(n),lh().catch(r)}),hh=(t,e,i)=>new Promise((r,n)=>{const o=()=>new Promise((s,a)=>{Ce.render(t,e,i).then(l=>{s(l),r(l)},l=>{var h;E.error("Error parsing",l),(h=Ot.parseError)==null||h.call(Ot,l),a(l),n(l)})});gr.push(o),lh().catch(n)}),Ot={startOnLoad:!0,mermaidAPI:Ce,parse:Cb,render:hh,init:mb,run:oh,registerExternalDiagrams:_b,initialize:sh,parseError:void 0,contentLoaded:ah,setParseErrorHandler:yb,detectType:Er},qb=Object.freeze(Object.defineProperty({__proto__:null,default:Ot},Symbol.toStringTag,{value:"Module"}));export{ls as $,oy as A,Si as B,We as C,sr as D,wr as E,Rg as F,vm as G,ki as H,or as I,Og as J,Ya as K,Pa as L,Dp as M,Np as N,fe as O,ds as P,Bg as Q,xe as R,rr as S,Rp as T,Pn as U,$p as V,zp as W,He as X,Eg as Y,he as Z,Tr as _,hy as a,Mb as a$,qn as a0,za as a1,Ua as a2,Ga as a3,Mp as a4,Cn as a5,tm as a6,Yp as a7,Vg as a8,Nn as a9,bb as aA,Th as aB,An as aC,ne as aD,di as aE,No as aF,xu as aG,Cy as aH,Lb as aI,n0 as aJ,dl as aK,Vn as aL,On as aM,kb as aN,Bb as aO,jo as aP,Ho as aQ,Ab as aR,wb as aS,Tb as aT,vb as aU,Eb as aV,Fb as aW,Sb as aX,Jm as aY,qt as aZ,Ss as a_,Jr as aa,_t as ab,ia as ac,Fh as ad,eg as ae,si as af,Qg as ag,Yg as ah,em as ai,Rn as aj,rm as ak,I as al,Pt as am,I0 as an,zf as ao,xh as ap,Rb as aq,Ob as ar,my as as,k0 as at,Bn as au,ra as av,gt as aw,Ti as ax,du as ay,sa as az,ly as b,l0 as b0,T0 as b1,fy as b2,vi as b3,A as b4,O as b5,qb as b6,Jn as c,Ci as d,st as e,lr as f,ay as g,Tt as h,Dl as i,jn as j,L0 as k,E as l,Hs as m,wi as n,Rf as o,b0 as p,rl as q,Ym as r,sy as s,p0 as t,ey as u,Pb as v,B0 as w,cy as x,uy as y,hi as z}; diff --git a/assets/meta.service-T2YaP4d8.js b/assets/meta.service-T2YaP4d8.js new file mode 100644 index 00000000..6359a856 --- /dev/null +++ b/assets/meta.service-T2YaP4d8.js @@ -0,0 +1 @@ +import{j as r,aL as s,aM as n,aN as m,P as h,l as p,aO as c}from"./index-Be9IN4QR.js";const a=class a{constructor(){this.dom=r(s),this.meta=r(n),this.title=r(m),this.platformId=r(h),this.isBrowser=!1,this.isBrowser=p(this.platformId)}createCanonicalURL(t){if(this.isBrowser){const e=t===void 0?this.dom.URL:t;let i=document.querySelector('link[rel="canonical"]');i||(i=this.dom.createElement("link"),i.setAttribute("rel","canonical"),this.dom.head.appendChild(i)),i.setAttribute("href",e)}}createMetaDataForPost(t,e){this.removeAllKnownTags(),this.setTitle(e.attributes.title),this.setDescription(e.attributes.description),this.createCanonicalURL(e.attributes.publishedAt?.url),this.createTwitterCardForBlogPost(e),this.createOpenGraphProfileForBlogPost(t,e)}setTitle(t){this.title.setTitle(`k9n.dev | ${t}`)}setDescription(t){this.meta.updateTag({name:"description",content:t})}createTwitterCardForBlogPost(t){this.meta.updateTag({name:"twitter:card",content:"summary"}),this.meta.updateTag({name:"twitter:site",content:"@d_koppenhagen"}),this.meta.updateTag({name:"twitter:creator",content:"@d_koppenhagen"}),this.meta.updateTag({name:"twitter:title",content:t.attributes.title}),this.meta.updateTag({name:"twitter:description",content:t.attributes.description}),this.meta.updateTag({name:"twitter:image",content:`https://k9n.dev/${t.attributes.thumbnail.header}`})}createOpenGraphProfileForBlogPost(t,e){this.meta.updateTag({property:"og:title",content:e.attributes.title}),this.meta.updateTag({property:"og:description",content:e.attributes.description}),this.meta.updateTag({name:"og:image",content:`https://k9n.dev/${e.attributes.thumbnail.header}`}),this.meta.updateTag({name:"og:url",content:`https://k9n.dev/${t}/${e.slug}`})}removeAllKnownTags(){this.meta.removeTag("property='og:title'"),this.meta.removeTag("name='twitter:title'"),this.meta.removeTag("name='description'"),this.meta.removeTag("property='og:description'"),this.meta.removeTag("name='twitter:description'"),this.meta.removeTag("property='og:image'"),this.meta.removeTag("property='og:image:width'"),this.meta.removeTag("property='og:image:height'"),this.meta.removeTag("name='twitter:image'"),this.meta.removeTag("name='twitter:card'"),this.meta.removeTag("name='twitter:site'"),this.meta.removeTag("property='og:url'"),this.meta.removeTag("property='og:locale'"),this.meta.removeTag("property='og:type'"),this.meta.removeTag("property='fb:app_id'")}};a.ɵfac=function(e){return new(e||a)},a.ɵprov=c({token:a,factory:a.ɵfac,providedIn:"root"});let o=a;export{o as M}; diff --git a/assets/mindmap-definition-fc14e90a-OwahSOpH.js b/assets/mindmap-definition-fc14e90a-OwahSOpH.js new file mode 100644 index 00000000..ee4b40a4 --- /dev/null +++ b/assets/mindmap-definition-fc14e90a-OwahSOpH.js @@ -0,0 +1,110 @@ +import{l as xr,c as vi,aH as il,u as sl,aJ as tn,d as rn,h as ol,b3 as ul,b4 as ll,b5 as fl,aL as hl}from"./mermaid.core-B_tqKmhs.js";import{c as di,g as cl}from"./index-Be9IN4QR.js";import{c as vl}from"./createText-2e5e7dd3-CtNqJc9Q.js";function qe(t){"@babel/helpers - typeof";return qe=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},qe(t)}function gi(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function dl(t,e){for(var r=0;rt.length)&&(e=t.length);for(var r=0,a=new Array(e);r=t.length?{done:!0}:{done:!1,value:t[a++]}},e:function(u){throw u},f:n}}throw new TypeError(`Invalid attempt to iterate non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}var s=!0,i=!1,o;return{s:function(){r=r.call(t)},n:function(){var u=r.next();return s=u.done,u},e:function(u){i=!0,o=u},f:function(){try{!s&&r.return!=null&&r.return()}finally{if(i)throw o}}}}var _e=typeof window>"u"?null:window,Hi=_e?_e.navigator:null;_e&&_e.document;var ml=qe(""),lo=qe({}),bl=qe(function(){}),El=typeof HTMLElement>"u"?"undefined":qe(HTMLElement),Ta=function(e){return e&&e.instanceString&&Ve(e.instanceString)?e.instanceString():null},ve=function(e){return e!=null&&qe(e)==ml},Ve=function(e){return e!=null&&qe(e)===bl},ke=function(e){return!mt(e)&&(Array.isArray?Array.isArray(e):e!=null&&e instanceof Array)},De=function(e){return e!=null&&qe(e)===lo&&!ke(e)&&e.constructor===Object},wl=function(e){return e!=null&&qe(e)===lo},ne=function(e){return e!=null&&qe(e)===qe(1)&&!isNaN(e)},xl=function(e){return ne(e)&&Math.floor(e)===e},an=function(e){if(El!=="undefined")return e!=null&&e instanceof HTMLElement},mt=function(e){return Ca(e)||fo(e)},Ca=function(e){return Ta(e)==="collection"&&e._private.single},fo=function(e){return Ta(e)==="collection"&&!e._private.single},yi=function(e){return Ta(e)==="core"},ho=function(e){return Ta(e)==="stylesheet"},Tl=function(e){return Ta(e)==="event"},tr=function(e){return e==null?!0:!!(e===""||e.match(/^\s+$/))},Cl=function(e){return typeof HTMLElement>"u"?!1:e instanceof HTMLElement},Dl=function(e){return De(e)&&ne(e.x1)&&ne(e.x2)&&ne(e.y1)&&ne(e.y2)},Sl=function(e){return wl(e)&&Ve(e.then)},Ll=function(){return Hi&&Hi.userAgent.match(/msie|trident|edge/i)},ca=function(e,r){r||(r=function(){if(arguments.length===1)return arguments[0];if(arguments.length===0)return"undefined";for(var s=[],i=0;ir?1:0},kl=function(e,r){return-1*vo(e,r)},pe=Object.assign!=null?Object.assign.bind(Object):function(t){for(var e=arguments,r=1;r1&&(p-=1),p<1/6?v+(g-v)*6*p:p<1/2?g:p<2/3?v+(g-v)*(2/3-p)*6:v}var h=new RegExp("^"+Nl+"$").exec(e);if(h){if(a=parseInt(h[1]),a<0?a=(360- -1*a%360)%360:a>360&&(a=a%360),a/=360,n=parseFloat(h[2]),n<0||n>100||(n=n/100,s=parseFloat(h[3]),s<0||s>100)||(s=s/100,i=h[4],i!==void 0&&(i=parseFloat(i),i<0||i>1)))return;if(n===0)o=u=l=Math.round(s*255);else{var d=s<.5?s*(1+n):s+n-s*n,c=2*s-d;o=Math.round(255*f(c,d,a+1/3)),u=Math.round(255*f(c,d,a)),l=Math.round(255*f(c,d,a-1/3))}r=[o,u,l,i]}return r},Fl=function(e){var r,a=new RegExp("^"+Al+"$").exec(e);if(a){r=[];for(var n=[],s=1;s<=3;s++){var i=a[s];if(i[i.length-1]==="%"&&(n[s]=!0),i=parseFloat(i),n[s]&&(i=i/100*255),i<0||i>255)return;r.push(Math.floor(i))}var o=n[1]||n[2]||n[3],u=n[1]&&n[2]&&n[3];if(o&&!u)return;var l=a[4];if(l!==void 0){if(l=parseFloat(l),l<0||l>1)return;r.push(l)}}return r},Gl=function(e){return Vl[e.toLowerCase()]},zl=function(e){return(ke(e)?e:null)||Gl(e)||Pl(e)||Fl(e)||Bl(e)},Vl={transparent:[0,0,0,0],aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],grey:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],purple:[128,0,128],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,50]},go=function(e){for(var r=e.map,a=e.keys,n=a.length,s=0;s=e||E<0||h&&w>=s}function y(){var S=Pn();if(p(S))return b(S);o=setTimeout(y,g(S))}function b(S){return o=void 0,d&&a?c(S):(a=n=void 0,i)}function m(){o!==void 0&&clearTimeout(o),l=0,a=u=n=o=void 0}function T(){return o===void 0?i:b(Pn())}function C(){var S=Pn(),E=p(S);if(a=arguments,n=this,u=S,E){if(o===void 0)return v(u);if(h)return clearTimeout(o),o=setTimeout(y,e),c(u)}return o===void 0&&(o=setTimeout(y,e)),i}return C.cancel=m,C.flush=T,C}var yn=Df,Bn=_e?_e.performance:null,bo=Bn&&Bn.now?function(){return Bn.now()}:function(){return Date.now()},Sf=function(){if(_e){if(_e.requestAnimationFrame)return function(t){_e.requestAnimationFrame(t)};if(_e.mozRequestAnimationFrame)return function(t){_e.mozRequestAnimationFrame(t)};if(_e.webkitRequestAnimationFrame)return function(t){_e.webkitRequestAnimationFrame(t)};if(_e.msRequestAnimationFrame)return function(t){_e.msRequestAnimationFrame(t)}}return function(t){t&&setTimeout(function(){t(bo())},1e3/60)}}(),nn=function(e){return Sf(e)},_t=bo,Mr=9261,Eo=65599,sa=5381,wo=function(e){for(var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:Mr,a=r,n;n=e.next(),!n.done;)a=a*Eo+n.value|0;return a},va=function(e){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:Mr;return r*Eo+e|0},da=function(e){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:sa;return(r<<5)+r+e|0},Lf=function(e,r){return e*2097152+r},Kt=function(e){return e[0]*2097152+e[1]},ka=function(e,r){return[va(e[0],r[0]),da(e[1],r[1])]},Af=function(e,r){var a={value:0,done:!1},n=0,s=e.length,i={next:function(){return n=0;n--)e[n]===r&&e.splice(n,1)},wi=function(e){e.splice(0,e.length)},Pf=function(e,r){for(var a=0;a"u"?"undefined":qe(Set))!==Ff?Set:Gf,mn=function(e,r){var a=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0;if(e===void 0||r===void 0||!yi(e)){Ue("An element must have a core reference and parameters set");return}var n=r.group;if(n==null&&(r.data&&r.data.source!=null&&r.data.target!=null?n="edges":n="nodes"),n!=="nodes"&&n!=="edges"){Ue("An element must be of type `nodes` or `edges`; you specified `"+n+"`");return}this.length=1,this[0]=this;var s=this._private={cy:e,single:!0,data:r.data||{},position:r.position||{x:0,y:0},autoWidth:void 0,autoHeight:void 0,autoPadding:void 0,compoundBoundsClean:!1,listeners:[],group:n,style:{},rstyle:{},styleCxts:[],styleKeys:{},removed:!0,selected:!!r.selected,selectable:r.selectable===void 0?!0:!!r.selectable,locked:!!r.locked,grabbed:!1,grabbable:r.grabbable===void 0?!0:!!r.grabbable,pannable:r.pannable===void 0?n==="edges":!!r.pannable,active:!1,classes:new $r,animation:{current:[],queue:[]},rscratch:{},scratch:r.scratch||{},edges:[],children:[],parent:r.parent&&r.parent.isNode()?r.parent:null,traversalCache:{},backgrounding:!1,bbCache:null,bbCacheShift:{x:0,y:0},bodyBounds:null,overlayBounds:null,labelBounds:{all:null,source:null,target:null,main:null},arrowBounds:{source:null,target:null,"mid-source":null,"mid-target":null}};if(s.position.x==null&&(s.position.x=0),s.position.y==null&&(s.position.y=0),r.renderedPosition){var i=r.renderedPosition,o=e.pan(),u=e.zoom();s.position={x:(i.x-o.x)/u,y:(i.y-o.y)/u}}var l=[];ke(r.classes)?l=r.classes:ve(r.classes)&&(l=r.classes.split(/\s+/));for(var f=0,h=l.length;fb?1:0},f=function(y,b,m,T,C){var S;if(m==null&&(m=0),C==null&&(C=a),m<0)throw new Error("lo must be non-negative");for(T==null&&(T=y.length);mD;0<=D?x++:x--)w.push(x);return w}.apply(this).reverse(),E=[],T=0,C=S.length;TL;0<=L?++w:--w)A.push(i(y,m));return A},g=function(y,b,m,T){var C,S,E;for(T==null&&(T=a),C=y[m];m>b;){if(E=m-1>>1,S=y[E],T(C,S)<0){y[m]=S,m=E;continue}break}return y[m]=C},p=function(y,b,m){var T,C,S,E,w;for(m==null&&(m=a),C=y.length,w=b,S=y[b],T=2*b+1;T0;){var S=b.pop(),E=p(S),w=S.id();if(d[w]=E,E!==1/0)for(var x=S.neighborhood().intersect(v),D=0;D0)for(k.unshift(P);h[z];){var F=h[z];k.unshift(F.edge),k.unshift(F.node),B=F.node,z=B.id()}return o.spawn(k)}}}},$f={kruskal:function(e){e=e||function(m){return 1};for(var r=this.byGroup(),a=r.nodes,n=r.edges,s=a.length,i=new Array(s),o=a,u=function(T){for(var C=0;C0;){if(C(),E++,T===f){for(var w=[],x=s,D=f,L=y[D];w.unshift(x),L!=null&&w.unshift(L),x=p[D],x!=null;)D=x.id(),L=y[D];return{found:!0,distance:h[T],path:this.spawn(w),steps:E}}c[T]=!0;for(var A=m._private.edges,N=0;NL&&(v[D]=L,b[D]=x,m[D]=C),!s){var A=x*f+w;!s&&v[A]>L&&(v[A]=L,b[A]=w,m[A]=C)}}}for(var N=0;N1&&arguments[1]!==void 0?arguments[1]:i,Me=m(oe),Te=[],we=Me;;){if(we==null)return r.spawn();var Ie=b(we),xe=Ie.edge,Ae=Ie.pred;if(Te.unshift(we[0]),we.same(de)&&Te.length>0)break;xe!=null&&Te.unshift(xe),we=Ae}return u.spawn(Te)},S=0;S=0;f--){var h=l[f],d=h[1],c=h[2];(r[d]===o&&r[c]===u||r[d]===u&&r[c]===o)&&l.splice(f,1)}for(var v=0;vn;){var s=Math.floor(Math.random()*r.length);r=Zf(s,e,r),a--}return r},Qf={kargerStein:function(){var e=this,r=this.byGroup(),a=r.nodes,n=r.edges;n.unmergeBy(function(k){return k.isLoop()});var s=a.length,i=n.length,o=Math.ceil(Math.pow(Math.log(s)/Math.LN2,2)),u=Math.floor(s/Kf);if(s<2){Ue("At least 2 nodes are required for Karger-Stein algorithm");return}for(var l=[],f=0;f1&&arguments[1]!==void 0?arguments[1]:0,a=arguments.length>2&&arguments[2]!==void 0?arguments[2]:e.length,n=1/0,s=r;s1&&arguments[1]!==void 0?arguments[1]:0,a=arguments.length>2&&arguments[2]!==void 0?arguments[2]:e.length,n=-1/0,s=r;s1&&arguments[1]!==void 0?arguments[1]:0,a=arguments.length>2&&arguments[2]!==void 0?arguments[2]:e.length,n=0,s=0,i=r;i1&&arguments[1]!==void 0?arguments[1]:0,a=arguments.length>2&&arguments[2]!==void 0?arguments[2]:e.length,n=arguments.length>3&&arguments[3]!==void 0?arguments[3]:!0,s=arguments.length>4&&arguments[4]!==void 0?arguments[4]:!0,i=arguments.length>5&&arguments[5]!==void 0?arguments[5]:!0;n?e=e.slice(r,a):(a0&&e.splice(0,r));for(var o=0,u=e.length-1;u>=0;u--){var l=e[u];i?isFinite(l)||(e[u]=-1/0,o++):e.splice(u,1)}s&&e.sort(function(d,c){return d-c});var f=e.length,h=Math.floor(f/2);return f%2!==0?e[h+1+o]:(e[h-1+o]+e[h+o])/2},ah=function(e){return Math.PI*e/180},Pa=function(e,r){return Math.atan2(r,e)-Math.PI/2},xi=Math.log2||function(t){return Math.log(t)/Math.log(2)},Ao=function(e){return e>0?1:e<0?-1:0},yr=function(e,r){return Math.sqrt(fr(e,r))},fr=function(e,r){var a=r.x-e.x,n=r.y-e.y;return a*a+n*n},nh=function(e){for(var r=e.length,a=0,n=0;n=e.x1&&e.y2>=e.y1)return{x1:e.x1,y1:e.y1,x2:e.x2,y2:e.y2,w:e.x2-e.x1,h:e.y2-e.y1};if(e.w!=null&&e.h!=null&&e.w>=0&&e.h>=0)return{x1:e.x1,y1:e.y1,x2:e.x1+e.w,y2:e.y1+e.h,w:e.w,h:e.h}}},sh=function(e){return{x1:e.x1,x2:e.x2,w:e.w,y1:e.y1,y2:e.y2,h:e.h}},oh=function(e){e.x1=1/0,e.y1=1/0,e.x2=-1/0,e.y2=-1/0,e.w=0,e.h=0},uh=function(e,r,a){return{x1:e.x1+r,x2:e.x2+r,y1:e.y1+a,y2:e.y2+a,w:e.w,h:e.h}},Oo=function(e,r){e.x1=Math.min(e.x1,r.x1),e.x2=Math.max(e.x2,r.x2),e.w=e.x2-e.x1,e.y1=Math.min(e.y1,r.y1),e.y2=Math.max(e.y2,r.y2),e.h=e.y2-e.y1},lh=function(e,r,a){e.x1=Math.min(e.x1,r),e.x2=Math.max(e.x2,r),e.w=e.x2-e.x1,e.y1=Math.min(e.y1,a),e.y2=Math.max(e.y2,a),e.h=e.y2-e.y1},Xa=function(e){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0;return e.x1-=r,e.x2+=r,e.y1-=r,e.y2+=r,e.w=e.x2-e.x1,e.h=e.y2-e.y1,e},qa=function(e){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:[0],a,n,s,i;if(r.length===1)a=n=s=i=r[0];else if(r.length===2)a=s=r[0],i=n=r[1];else if(r.length===4){var o=St(r,4);a=o[0],n=o[1],s=o[2],i=o[3]}return e.x1-=i,e.x2+=n,e.y1-=a,e.y2+=s,e.w=e.x2-e.x1,e.h=e.y2-e.y1,e},ji=function(e,r){e.x1=r.x1,e.y1=r.y1,e.x2=r.x2,e.y2=r.y2,e.w=e.x2-e.x1,e.h=e.y2-e.y1},Ti=function(e,r){return!(e.x1>r.x2||r.x1>e.x2||e.x2r.y2||r.y1>e.y2)},zr=function(e,r,a){return e.x1<=r&&r<=e.x2&&e.y1<=a&&a<=e.y2},fh=function(e,r){return zr(e,r.x,r.y)},No=function(e,r){return zr(e,r.x1,r.y1)&&zr(e,r.x2,r.y2)},Mo=function(e,r,a,n,s,i,o){var u=arguments.length>7&&arguments[7]!==void 0?arguments[7]:"auto",l=u==="auto"?mr(s,i):u,f=s/2,h=i/2;l=Math.min(l,f,h);var d=l!==f,c=l!==h,v;if(d){var g=a-f+l-o,p=n-h-o,y=a+f-l+o,b=p;if(v=Jt(e,r,a,n,g,p,y,b,!1),v.length>0)return v}if(c){var m=a+f+o,T=n-h+l-o,C=m,S=n+h-l+o;if(v=Jt(e,r,a,n,m,T,C,S,!1),v.length>0)return v}if(d){var E=a-f+l-o,w=n+h+o,x=a+f-l+o,D=w;if(v=Jt(e,r,a,n,E,w,x,D,!1),v.length>0)return v}if(c){var L=a-f-o,A=n-h+l-o,N=L,O=n+h-l+o;if(v=Jt(e,r,a,n,L,A,N,O,!1),v.length>0)return v}var I;{var R=a-f+l,P=n-h+l;if(I=oa(e,r,a,n,R,P,l+o),I.length>0&&I[0]<=R&&I[1]<=P)return[I[0],I[1]]}{var k=a+f-l,B=n-h+l;if(I=oa(e,r,a,n,k,B,l+o),I.length>0&&I[0]>=k&&I[1]<=B)return[I[0],I[1]]}{var z=a+f-l,F=n+h-l;if(I=oa(e,r,a,n,z,F,l+o),I.length>0&&I[0]>=z&&I[1]>=F)return[I[0],I[1]]}{var G=a-f+l,H=n+h-l;if(I=oa(e,r,a,n,G,H,l+o),I.length>0&&I[0]<=G&&I[1]>=H)return[I[0],I[1]]}return[]},hh=function(e,r,a,n,s,i,o){var u=o,l=Math.min(a,s),f=Math.max(a,s),h=Math.min(n,i),d=Math.max(n,i);return l-u<=e&&e<=f+u&&h-u<=r&&r<=d+u},ch=function(e,r,a,n,s,i,o,u,l){var f={x1:Math.min(a,o,s)-l,x2:Math.max(a,o,s)+l,y1:Math.min(n,u,i)-l,y2:Math.max(n,u,i)+l};return!(ef.x2||rf.y2)},vh=function(e,r,a,n){a-=n;var s=r*r-4*e*a;if(s<0)return[];var i=Math.sqrt(s),o=2*e,u=(-r+i)/o,l=(-r-i)/o;return[u,l]},dh=function(e,r,a,n,s){var i=1e-5;e===0&&(e=i),r/=e,a/=e,n/=e;var o,u,l,f,h,d,c,v;if(u=(3*a-r*r)/9,l=-(27*n)+r*(9*a-2*(r*r)),l/=54,o=u*u*u+l*l,s[1]=0,c=r/3,o>0){h=l+Math.sqrt(o),h=h<0?-Math.pow(-h,1/3):Math.pow(h,1/3),d=l-Math.sqrt(o),d=d<0?-Math.pow(-d,1/3):Math.pow(d,1/3),s[0]=-c+h+d,c+=(h+d)/2,s[4]=s[2]=-c,c=Math.sqrt(3)*(-d+h)/2,s[3]=c,s[5]=-c;return}if(s[5]=s[3]=0,o===0){v=l<0?-Math.pow(-l,1/3):Math.pow(l,1/3),s[0]=-c+2*v,s[4]=s[2]=-(v+c);return}u=-u,f=u*u*u,f=Math.acos(l/Math.sqrt(f)),v=2*Math.sqrt(u),s[0]=-c+v*Math.cos(f/3),s[2]=-c+v*Math.cos((f+2*Math.PI)/3),s[4]=-c+v*Math.cos((f+4*Math.PI)/3)},gh=function(e,r,a,n,s,i,o,u){var l=1*a*a-4*a*s+2*a*o+4*s*s-4*s*o+o*o+n*n-4*n*i+2*n*u+4*i*i-4*i*u+u*u,f=1*9*a*s-3*a*a-3*a*o-6*s*s+3*s*o+9*n*i-3*n*n-3*n*u-6*i*i+3*i*u,h=1*3*a*a-6*a*s+a*o-a*e+2*s*s+2*s*e-o*e+3*n*n-6*n*i+n*u-n*r+2*i*i+2*i*r-u*r,d=1*a*s-a*a+a*e-s*e+n*i-n*n+n*r-i*r,c=[];dh(l,f,h,d,c);for(var v=1e-7,g=[],p=0;p<6;p+=2)Math.abs(c[p+1])=0&&c[p]<=1&&g.push(c[p]);g.push(1),g.push(0);for(var y=-1,b,m,T,C=0;C=0?Tl?(e-s)*(e-s)+(r-i)*(r-i):f-d},dt=function(e,r,a){for(var n,s,i,o,u,l=0,f=0;f=e&&e>=i||n<=e&&e<=i)u=(e-n)/(i-n)*(o-s)+s,u>r&&l++;else continue;return l%2!==0},Ht=function(e,r,a,n,s,i,o,u,l){var f=new Array(a.length),h;u[0]!=null?(h=Math.atan(u[1]/u[0]),u[0]<0?h=h+Math.PI/2:h=-h-Math.PI/2):h=u;for(var d=Math.cos(-h),c=Math.sin(-h),v=0;v0){var p=un(f,-l);g=on(p)}else g=f;return dt(e,r,g)},yh=function(e,r,a,n,s,i,o,u){for(var l=new Array(a.length*2),f=0;f=0&&p<=1&&b.push(p),y>=0&&y<=1&&b.push(y),b.length===0)return[];var m=b[0]*u[0]+e,T=b[0]*u[1]+r;if(b.length>1){if(b[0]==b[1])return[m,T];var C=b[1]*u[0]+e,S=b[1]*u[1]+r;return[m,T,C,S]}else return[m,T]},Gn=function(e,r,a){return r<=e&&e<=a||a<=e&&e<=r?e:e<=r&&r<=a||a<=r&&r<=e?r:a},Jt=function(e,r,a,n,s,i,o,u,l){var f=e-s,h=a-e,d=o-s,c=r-i,v=n-r,g=u-i,p=d*c-g*f,y=h*c-v*f,b=g*h-d*v;if(b!==0){var m=p/b,T=y/b,C=.001,S=0-C,E=1+C;return S<=m&&m<=E&&S<=T&&T<=E?[e+m*h,r+m*v]:l?[e+m*h,r+m*v]:[]}else return p===0||y===0?Gn(e,a,o)===o?[o,u]:Gn(e,a,s)===s?[s,i]:Gn(s,o,a)===a?[a,n]:[]:[]},ya=function(e,r,a,n,s,i,o,u){var l=[],f,h=new Array(a.length),d=!0;i==null&&(d=!1);var c;if(d){for(var v=0;v0){var g=un(h,-u);c=on(g)}else c=h}else c=a;for(var p,y,b,m,T=0;T2){for(var v=[f[0],f[1]],g=Math.pow(v[0]-e,2)+Math.pow(v[1]-r,2),p=1;pf&&(f=T)},get:function(m){return l[m]}},d=0;d0?R=I.edgesTo(O)[0]:R=O.edgesTo(I)[0];var P=n(R);O=O.id(),w[O]>w[A]+P&&(w[O]=w[A]+P,x.nodes.indexOf(O)<0?x.push(O):x.updateItem(O),E[O]=0,S[O]=[]),w[O]==w[A]+P&&(E[O]=E[O]+E[A],S[O].push(A))}else for(var k=0;k0;){for(var G=C.pop(),H=0;H0&&o.push(a[u]);o.length!==0&&s.push(n.collection(o))}return s},Rh=function(e,r){for(var a=0;a5&&arguments[5]!==void 0?arguments[5]:Bh,o=n,u,l,f=0;f=2?ta(e,r,a,0,ns,Fh):ta(e,r,a,0,as)},squaredEuclidean:function(e,r,a){return ta(e,r,a,0,ns)},manhattan:function(e,r,a){return ta(e,r,a,0,as)},max:function(e,r,a){return ta(e,r,a,-1/0,Gh)}};Vr["squared-euclidean"]=Vr.squaredEuclidean;Vr.squaredeuclidean=Vr.squaredEuclidean;function En(t,e,r,a,n,s){var i;return Ve(t)?i=t:i=Vr[t]||Vr.euclidean,e===0&&Ve(t)?i(n,s):i(e,r,a,n,s)}var zh=rt({k:2,m:2,sensitivityThreshold:1e-4,distance:"euclidean",maxIterations:10,attributes:[],testMode:!1,testCentroids:null}),Di=function(e){return zh(e)},ln=function(e,r,a,n,s){var i=s!=="kMedoids",o=i?function(h){return a[h]}:function(h){return n[h](a)},u=function(d){return n[d](r)},l=a,f=r;return En(e,n.length,o,u,l,f)},zn=function(e,r,a){for(var n=a.length,s=new Array(n),i=new Array(n),o=new Array(r),u=null,l=0;la)return!1}return!0},$h=function(e,r,a){for(var n=0;no&&(o=r[l][f],u=f);s[u].push(e[l])}for(var h=0;h=s.threshold||s.mode==="dendrogram"&&e.length===1)return!1;var v=r[i],g=r[n[i]],p;s.mode==="dendrogram"?p={left:v,right:g,key:v.key}:p={value:v.value.concat(g.value),key:v.key},e[v.index]=p,e.splice(g.index,1),r[v.key]=p;for(var y=0;ya[g.key][b.key]&&(u=a[g.key][b.key])):s.linkage==="max"?(u=a[v.key][b.key],a[v.key][b.key]0&&n.push(s);return n},fs=function(e,r,a){for(var n=[],s=0;so&&(i=l,o=r[s*e+l])}i>0&&n.push(i)}for(var f=0;fl&&(u=f,l=h)}a[s]=i[u]}return n=fs(e,r,a),n},hs=function(e){for(var r=this.cy(),a=this.nodes(),n=rc(e),s={},i=0;i=L?(A=L,L=O,N=I):O>A&&(A=O);for(var R=0;R0?1:0;E[x%n.minIterations*o+G]=H,F+=H}if(F>0&&(x>=n.minIterations-1||x==n.maxIterations-1)){for(var _=0,W=0;W1||S>1)&&(o=!0),h[m]=[],b.outgoers().forEach(function(w){w.isEdge()&&h[m].push(w.id())})}else d[m]=[void 0,b.target().id()]}):i.forEach(function(b){var m=b.id();if(b.isNode()){var T=b.degree(!0);T%2&&(u?l?o=!0:l=m:u=m),h[m]=[],b.connectedEdges().forEach(function(C){return h[m].push(C.id())})}else d[m]=[b.source().id(),b.target().id()]});var c={found:!1,trail:void 0};if(o)return c;if(l&&u)if(s){if(f&&l!=f)return c;f=l}else{if(f&&l!=f&&u!=f)return c;f||(f=l)}else f||(f=i[0].id());var v=function(m){for(var T=m,C=[m],S,E,w;h[T].length;)S=h[T].shift(),E=d[S][0],w=d[S][1],T!=w?(h[w]=h[w].filter(function(x){return x!=S}),T=w):!s&&T!=E&&(h[E]=h[E].filter(function(x){return x!=S}),T=E),C.unshift(S),C.unshift(T);return C},g=[],p=[];for(p=v(f);p.length!=1;)h[p[0]].length==0?(g.unshift(i.getElementById(p.shift())),g.unshift(i.getElementById(p.shift()))):p=v(p.shift()).concat(p);g.unshift(i.getElementById(p.shift()));for(var y in h)if(h[y].length)return c;return c.found=!0,c.trail=this.spawn(g,!0),c}},Ga=function(){var e=this,r={},a=0,n=0,s=[],i=[],o={},u=function(d,c){for(var v=i.length-1,g=[],p=e.spawn();i[v].x!=d||i[v].y!=c;)g.push(i.pop().edge),v--;g.push(i.pop().edge),g.forEach(function(y){var b=y.connectedNodes().intersection(e);p.merge(y),b.forEach(function(m){var T=m.id(),C=m.connectedEdges().intersection(e);p.merge(m),r[T].cutVertex?p.merge(C.filter(function(S){return S.isLoop()})):p.merge(C)})}),s.push(p)},l=function h(d,c,v){d===v&&(n+=1),r[c]={id:a,low:a++,cutVertex:!1};var g=e.getElementById(c).connectedEdges().intersection(e);if(g.size()===0)s.push(e.spawn(e.getElementById(c)));else{var p,y,b,m;g.forEach(function(T){p=T.source().id(),y=T.target().id(),b=p===c?y:p,b!==v&&(m=T.id(),o[m]||(o[m]=!0,i.push({x:c,y:b,edge:T})),b in r?r[c].low=Math.min(r[c].low,r[b].id):(h(d,b,c),r[c].low=Math.min(r[c].low,r[b].low),r[c].id<=r[b].low&&(r[c].cutVertex=!0,u(c,b))))})}};e.forEach(function(h){if(h.isNode()){var d=h.id();d in r||(n=0,l(d,d),r[d].cutVertex=n>1)}});var f=Object.keys(r).filter(function(h){return r[h].cutVertex}).map(function(h){return e.getElementById(h)});return{cut:e.spawn(f),components:s}},fc={hopcroftTarjanBiconnected:Ga,htbc:Ga,htb:Ga,hopcroftTarjanBiconnectedComponents:Ga},za=function(){var e=this,r={},a=0,n=[],s=[],i=e.spawn(e),o=function u(l){s.push(l),r[l]={index:a,low:a++,explored:!1};var f=e.getElementById(l).connectedEdges().intersection(e);if(f.forEach(function(g){var p=g.target().id();p!==l&&(p in r||u(p),r[p].explored||(r[l].low=Math.min(r[l].low,r[p].low)))}),r[l].index===r[l].low){for(var h=e.spawn();;){var d=s.pop();if(h.merge(e.getElementById(d)),r[d].low=r[l].index,r[d].explored=!0,d===l)break}var c=h.edgesWith(h),v=h.merge(c);n.push(v),i=i.difference(v)}};return e.forEach(function(u){if(u.isNode()){var l=u.id();l in r||o(l)}}),{cut:i,components:n}},hc={tarjanStronglyConnected:za,tsc:za,tscc:za,tarjanStronglyConnectedComponents:za},Go={};[ga,Uf,$f,_f,Xf,Wf,Qf,xh,Pr,Br,Jn,Ph,Wh,ec,oc,lc,fc,hc].forEach(function(t){pe(Go,t)});/*! +Embeddable Minimum Strictly-Compliant Promises/A+ 1.1.1 Thenable +Copyright (c) 2013-2014 Ralf S. Engelschall (http://engelschall.com) +Licensed under The MIT License (http://opensource.org/licenses/MIT) +*/var zo=0,Vo=1,Uo=2,Xt=function t(e){if(!(this instanceof t))return new t(e);this.id="Thenable/1.0.7",this.state=zo,this.fulfillValue=void 0,this.rejectReason=void 0,this.onFulfilled=[],this.onRejected=[],this.proxy={then:this.then.bind(this)},typeof e=="function"&&e.call(this,this.fulfill.bind(this),this.reject.bind(this))};Xt.prototype={fulfill:function(e){return cs(this,Vo,"fulfillValue",e)},reject:function(e){return cs(this,Uo,"rejectReason",e)},then:function(e,r){var a=this,n=new Xt;return a.onFulfilled.push(ds(e,n,"fulfill")),a.onRejected.push(ds(r,n,"reject")),$o(a),n.proxy}};var cs=function(e,r,a,n){return e.state===zo&&(e.state=r,e[a]=n,$o(e)),e},$o=function(e){e.state===Vo?vs(e,"onFulfilled",e.fulfillValue):e.state===Uo&&vs(e,"onRejected",e.rejectReason)},vs=function(e,r,a){if(e[r].length!==0){var n=e[r];e[r]=[];var s=function(){for(var o=0;o0}},clearQueue:function(){return function(){var r=this,a=r.length!==void 0,n=a?r:[r],s=this._private.cy||this;if(!s.styleEnabled())return this;for(var i=0;i-1}var mv=yv;function bv(t,e){var r=this.__data__,a=xn(r,t);return a<0?(++this.size,r.push([t,e])):r[a][1]=e,this}var Ev=bv;function Hr(t){var e=-1,r=t==null?0:t.length;for(this.clear();++e-1&&t%1==0&&t0&&this.spawn(n).updateStyle().emit("class"),r},addClass:function(e){return this.toggleClass(e,!0)},hasClass:function(e){var r=this[0];return r!=null&&r._private.classes.has(e)},toggleClass:function(e,r){ke(e)||(e=e.match(/\S+/g)||[]);for(var a=this,n=r===void 0,s=[],i=0,o=a.length;i0&&this.spawn(s).updateStyle().emit("class"),a},removeClass:function(e){return this.toggleClass(e,!1)},flashClass:function(e,r){var a=this;if(r==null)r=250;else if(r===0)return a;return a.addClass(e),setTimeout(function(){a.removeClass(e)},r),a}};Wa.className=Wa.classNames=Wa.classes;var Ce={metaChar:"[\\!\\\"\\#\\$\\%\\&\\'\\(\\)\\*\\+\\,\\.\\/\\:\\;\\<\\=\\>\\?\\@\\[\\]\\^\\`\\{\\|\\}\\~]",comparatorOp:"=|\\!=|>|>=|<|<=|\\$=|\\^=|\\*=",boolOp:"\\?|\\!|\\^",string:`"(?:\\\\"|[^"])*"|'(?:\\\\'|[^'])*'`,number:Xe,meta:"degree|indegree|outdegree",separator:"\\s*,\\s*",descendant:"\\s+",child:"\\s+>\\s+",subject:"\\$",group:"node|edge|\\*",directedEdge:"\\s+->\\s+",undirectedEdge:"\\s+<->\\s+"};Ce.variable="(?:[\\w-.]|(?:\\\\"+Ce.metaChar+"))+";Ce.className="(?:[\\w-]|(?:\\\\"+Ce.metaChar+"))+";Ce.value=Ce.string+"|"+Ce.number;Ce.id=Ce.variable;(function(){var t,e,r;for(t=Ce.comparatorOp.split("|"),r=0;r=0)&&e!=="="&&(Ce.comparatorOp+="|\\!"+e)})();var Re=function(){return{checks:[]}},ue={GROUP:0,COLLECTION:1,FILTER:2,DATA_COMPARE:3,DATA_EXIST:4,DATA_BOOL:5,META_COMPARE:6,STATE:7,ID:8,CLASS:9,UNDIRECTED_EDGE:10,DIRECTED_EDGE:11,NODE_SOURCE:12,NODE_TARGET:13,NODE_NEIGHBOR:14,CHILD:15,DESCENDANT:16,PARENT:17,ANCESTOR:18,COMPOUND_SPLIT:19,TRUE:20},ei=[{selector:":selected",matches:function(e){return e.selected()}},{selector:":unselected",matches:function(e){return!e.selected()}},{selector:":selectable",matches:function(e){return e.selectable()}},{selector:":unselectable",matches:function(e){return!e.selectable()}},{selector:":locked",matches:function(e){return e.locked()}},{selector:":unlocked",matches:function(e){return!e.locked()}},{selector:":visible",matches:function(e){return e.visible()}},{selector:":hidden",matches:function(e){return!e.visible()}},{selector:":transparent",matches:function(e){return e.transparent()}},{selector:":grabbed",matches:function(e){return e.grabbed()}},{selector:":free",matches:function(e){return!e.grabbed()}},{selector:":removed",matches:function(e){return e.removed()}},{selector:":inside",matches:function(e){return!e.removed()}},{selector:":grabbable",matches:function(e){return e.grabbable()}},{selector:":ungrabbable",matches:function(e){return!e.grabbable()}},{selector:":animated",matches:function(e){return e.animated()}},{selector:":unanimated",matches:function(e){return!e.animated()}},{selector:":parent",matches:function(e){return e.isParent()}},{selector:":childless",matches:function(e){return e.isChildless()}},{selector:":child",matches:function(e){return e.isChild()}},{selector:":orphan",matches:function(e){return e.isOrphan()}},{selector:":nonorphan",matches:function(e){return e.isChild()}},{selector:":compound",matches:function(e){return e.isNode()?e.isParent():e.source().isParent()||e.target().isParent()}},{selector:":loop",matches:function(e){return e.isLoop()}},{selector:":simple",matches:function(e){return e.isSimple()}},{selector:":active",matches:function(e){return e.active()}},{selector:":inactive",matches:function(e){return!e.active()}},{selector:":backgrounding",matches:function(e){return e.backgrounding()}},{selector:":nonbackgrounding",matches:function(e){return!e.backgrounding()}}].sort(function(t,e){return kl(t.selector,e.selector)}),Cd=function(){for(var t={},e,r=0;r0&&f.edgeCount>0)return Ne("The selector `"+e+"` is invalid because it uses both a compound selector and an edge selector"),!1;if(f.edgeCount>1)return Ne("The selector `"+e+"` is invalid because it uses multiple edge selectors"),!1;f.edgeCount===1&&Ne("The selector `"+e+"` is deprecated. Edge selectors do not take effect on changes to source and target nodes after an edge is added, for performance reasons. Use a class or data selector on edges instead, updating the class or data of an edge when your app detects a change in source or target nodes.")}return!0},Nd=function(){if(this.toStringCache!=null)return this.toStringCache;for(var e=function(f){return f??""},r=function(f){return ve(f)?'"'+f+'"':e(f)},a=function(f){return" "+f+" "},n=function(f,h){var d=f.type,c=f.value;switch(d){case ue.GROUP:{var v=e(c);return v.substring(0,v.length-1)}case ue.DATA_COMPARE:{var g=f.field,p=f.operator;return"["+g+a(e(p))+r(c)+"]"}case ue.DATA_BOOL:{var y=f.operator,b=f.field;return"["+e(y)+b+"]"}case ue.DATA_EXIST:{var m=f.field;return"["+m+"]"}case ue.META_COMPARE:{var T=f.operator,C=f.field;return"[["+C+a(e(T))+r(c)+"]]"}case ue.STATE:return c;case ue.ID:return"#"+c;case ue.CLASS:return"."+c;case ue.PARENT:case ue.CHILD:return s(f.parent,h)+a(">")+s(f.child,h);case ue.ANCESTOR:case ue.DESCENDANT:return s(f.ancestor,h)+" "+s(f.descendant,h);case ue.COMPOUND_SPLIT:{var S=s(f.left,h),E=s(f.subject,h),w=s(f.right,h);return S+(S.length>0?" ":"")+E+w}case ue.TRUE:return""}},s=function(f,h){return f.checks.reduce(function(d,c,v){return d+(h===f&&v===0?"$":"")+n(c,h)},"")},i="",o=0;o1&&o=0&&(r=r.replace("!",""),h=!0),r.indexOf("@")>=0&&(r=r.replace("@",""),f=!0),(s||o||f)&&(u=!s&&!i?"":""+e,l=""+a),f&&(e=u=u.toLowerCase(),a=l=l.toLowerCase()),r){case"*=":n=u.indexOf(l)>=0;break;case"$=":n=u.indexOf(l,u.length-l.length)>=0;break;case"^=":n=u.indexOf(l)===0;break;case"=":n=e===a;break;case">":d=!0,n=e>a;break;case">=":d=!0,n=e>=a;break;case"<":d=!0,n=e0;){var f=n.shift();e(f),s.add(f.id()),o&&a(n,s,f)}return t}function Qo(t,e,r){if(r.isParent())for(var a=r._private.children,n=0;n1&&arguments[1]!==void 0?arguments[1]:!0;return Ni(this,t,e,Qo)};function Jo(t,e,r){if(r.isChild()){var a=r._private.parent;e.has(a.id())||t.push(a)}}Ur.forEachUp=function(t){var e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0;return Ni(this,t,e,Jo)};function Gd(t,e,r){Jo(t,e,r),Qo(t,e,r)}Ur.forEachUpAndDown=function(t){var e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0;return Ni(this,t,e,Gd)};Ur.ancestors=Ur.parents;var ba,jo;ba=jo={data:Oe.data({field:"data",bindingEvent:"data",allowBinding:!0,allowSetting:!0,settingEvent:"data",settingTriggersEvent:!0,triggerFnName:"trigger",allowGetting:!0,immutableKeys:{id:!0,source:!0,target:!0,parent:!0},updateStyle:!0}),removeData:Oe.removeData({field:"data",event:"data",triggerFnName:"trigger",triggerEvent:!0,immutableKeys:{id:!0,source:!0,target:!0,parent:!0},updateStyle:!0}),scratch:Oe.data({field:"scratch",bindingEvent:"scratch",allowBinding:!0,allowSetting:!0,settingEvent:"scratch",settingTriggersEvent:!0,triggerFnName:"trigger",allowGetting:!0,updateStyle:!0}),removeScratch:Oe.removeData({field:"scratch",event:"scratch",triggerFnName:"trigger",triggerEvent:!0,updateStyle:!0}),rscratch:Oe.data({field:"rscratch",allowBinding:!1,allowSetting:!0,settingTriggersEvent:!1,allowGetting:!0}),removeRscratch:Oe.removeData({field:"rscratch",triggerEvent:!1}),id:function(){var e=this[0];if(e)return e._private.data.id}};ba.attr=ba.data;ba.removeAttr=ba.removeData;var zd=jo,Cn={};function Un(t){return function(e){var r=this;if(e===void 0&&(e=!0),r.length!==0)if(r.isNode()&&!r.removed()){for(var a=0,n=r[0],s=n._private.edges,i=0;ie}),minIndegree:Sr("indegree",function(t,e){return te}),minOutdegree:Sr("outdegree",function(t,e){return te})});pe(Cn,{totalDegree:function(e){for(var r=0,a=this.nodes(),n=0;n0,d=h;h&&(f=f[0]);var c=d?f.position():{x:0,y:0};r!==void 0?l.position(e,r+c[e]):s!==void 0&&l.position({x:s.x+c.x,y:s.y+c.y})}else{var v=a.position(),g=o?a.parent():null,p=g&&g.length>0,y=p;p&&(g=g[0]);var b=y?g.position():{x:0,y:0};return s={x:v.x-b.x,y:v.y-b.y},e===void 0?s:s[e]}else if(!i)return;return this}};Ot.modelPosition=Ot.point=Ot.position;Ot.modelPositions=Ot.points=Ot.positions;Ot.renderedPoint=Ot.renderedPosition;Ot.relativePoint=Ot.relativePosition;var Vd=eu,Fr,or;Fr=or={};or.renderedBoundingBox=function(t){var e=this.boundingBox(t),r=this.cy(),a=r.zoom(),n=r.pan(),s=e.x1*a+n.x,i=e.x2*a+n.x,o=e.y1*a+n.y,u=e.y2*a+n.y;return{x1:s,x2:i,y1:o,y2:u,w:i-s,h:u-o}};or.dirtyCompoundBoundsCache=function(){var t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!1,e=this.cy();return!e.styleEnabled()||!e.hasCompoundNodes()?this:(this.forEachUp(function(r){if(r.isParent()){var a=r._private;a.compoundBoundsClean=!1,a.bbCache=null,t||r.emitAndNotify("bounds")}}),this)};or.updateCompoundBounds=function(){var t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!1,e=this.cy();if(!e.styleEnabled()||!e.hasCompoundNodes())return this;if(!t&&e.batching())return this;function r(i){if(!i.isParent())return;var o=i._private,u=i.children(),l=i.pstyle("compound-sizing-wrt-labels").value==="include",f={width:{val:i.pstyle("min-width").pfValue,left:i.pstyle("min-width-bias-left"),right:i.pstyle("min-width-bias-right")},height:{val:i.pstyle("min-height").pfValue,top:i.pstyle("min-height-bias-top"),bottom:i.pstyle("min-height-bias-bottom")}},h=u.boundingBox({includeLabels:l,includeOverlays:!1,useCache:!1}),d=o.position;(h.w===0||h.h===0)&&(h={w:i.pstyle("width").pfValue,h:i.pstyle("height").pfValue},h.x1=d.x-h.w/2,h.x2=d.x+h.w/2,h.y1=d.y-h.h/2,h.y2=d.y+h.h/2);function c(x,D,L){var A=0,N=0,O=D+L;return x>0&&O>0&&(A=D/O*x,N=L/O*x),{biasDiff:A,biasComplementDiff:N}}function v(x,D,L,A){if(L.units==="%")switch(A){case"width":return x>0?L.pfValue*x:0;case"height":return D>0?L.pfValue*D:0;case"average":return x>0&&D>0?L.pfValue*(x+D)/2:0;case"min":return x>0&&D>0?x>D?L.pfValue*D:L.pfValue*x:0;case"max":return x>0&&D>0?x>D?L.pfValue*x:L.pfValue*D:0;default:return 0}else return L.units==="px"?L.pfValue:0}var g=f.width.left.value;f.width.left.units==="px"&&f.width.val>0&&(g=g*100/f.width.val);var p=f.width.right.value;f.width.right.units==="px"&&f.width.val>0&&(p=p*100/f.width.val);var y=f.height.top.value;f.height.top.units==="px"&&f.height.val>0&&(y=y*100/f.height.val);var b=f.height.bottom.value;f.height.bottom.units==="px"&&f.height.val>0&&(b=b*100/f.height.val);var m=c(f.width.val-h.w,g,p),T=m.biasDiff,C=m.biasComplementDiff,S=c(f.height.val-h.h,y,b),E=S.biasDiff,w=S.biasComplementDiff;o.autoPadding=v(h.w,h.h,i.pstyle("padding"),i.pstyle("padding-relative-to").value),o.autoWidth=Math.max(h.w,f.width.val),d.x=(-T+h.x1+h.x2+C)/2,o.autoHeight=Math.max(h.h,f.height.val),d.y=(-E+h.y1+h.y2+w)/2}for(var a=0;ae.x2?n:e.x2,e.y1=ae.y2?s:e.y2,e.w=e.x2-e.x1,e.h=e.y2-e.y1)},hr=function(e,r){return r==null?e:Lt(e,r.x1,r.y1,r.x2,r.y2)},ra=function(e,r,a){return At(e,r,a)},Va=function(e,r,a){if(!r.cy().headless()){var n=r._private,s=n.rstyle,i=s.arrowWidth/2,o=r.pstyle(a+"-arrow-shape").value,u,l;if(o!=="none"){a==="source"?(u=s.srcX,l=s.srcY):a==="target"?(u=s.tgtX,l=s.tgtY):(u=s.midX,l=s.midY);var f=n.arrowBounds=n.arrowBounds||{},h=f[a]=f[a]||{};h.x1=u-i,h.y1=l-i,h.x2=u+i,h.y2=l+i,h.w=h.x2-h.x1,h.h=h.y2-h.y1,Xa(h,1),Lt(e,h.x1,h.y1,h.x2,h.y2)}}},$n=function(e,r,a){if(!r.cy().headless()){var n;a?n=a+"-":n="";var s=r._private,i=s.rstyle,o=r.pstyle(n+"label").strValue;if(o){var u=r.pstyle("text-halign"),l=r.pstyle("text-valign"),f=ra(i,"labelWidth",a),h=ra(i,"labelHeight",a),d=ra(i,"labelX",a),c=ra(i,"labelY",a),v=r.pstyle(n+"text-margin-x").pfValue,g=r.pstyle(n+"text-margin-y").pfValue,p=r.isEdge(),y=r.pstyle(n+"text-rotation"),b=r.pstyle("text-outline-width").pfValue,m=r.pstyle("text-border-width").pfValue,T=m/2,C=r.pstyle("text-background-padding").pfValue,S=2,E=h,w=f,x=w/2,D=E/2,L,A,N,O;if(p)L=d-x,A=d+x,N=c-D,O=c+D;else{switch(u.value){case"left":L=d-w,A=d;break;case"center":L=d-x,A=d+x;break;case"right":L=d,A=d+w;break}switch(l.value){case"top":N=c-E,O=c;break;case"center":N=c-D,O=c+D;break;case"bottom":N=c,O=c+E;break}}var I=v-Math.max(b,T)-C-S,R=v+Math.max(b,T)+C+S,P=g-Math.max(b,T)-C-S,k=g+Math.max(b,T)+C+S;L+=I,A+=R,N+=P,O+=k;var B=a||"main",z=s.labelBounds,F=z[B]=z[B]||{};F.x1=L,F.y1=N,F.x2=A,F.y2=O,F.w=A-L,F.h=O-N,F.leftPad=I,F.rightPad=R,F.topPad=P,F.botPad=k;var G=p&&y.strValue==="autorotate",H=y.pfValue!=null&&y.pfValue!==0;if(G||H){var _=G?ra(s.rstyle,"labelAngle",a):y.pfValue,W=Math.cos(_),K=Math.sin(_),j=(L+A)/2,q=(N+O)/2;if(!p){switch(u.value){case"left":j=A;break;case"right":j=L;break}switch(l.value){case"top":q=O;break;case"bottom":q=N;break}}var V=function(le,oe){return le=le-j,oe=oe-q,{x:le*W-oe*K+j,y:le*K+oe*W+q}},X=V(L,N),Z=V(L,O),re=V(A,N),ce=V(A,O);L=Math.min(X.x,Z.x,re.x,ce.x),A=Math.max(X.x,Z.x,re.x,ce.x),N=Math.min(X.y,Z.y,re.y,ce.y),O=Math.max(X.y,Z.y,re.y,ce.y)}var te=B+"Rot",ae=z[te]=z[te]||{};ae.x1=L,ae.y1=N,ae.x2=A,ae.y2=O,ae.w=A-L,ae.h=O-N,Lt(e,L,N,A,O),Lt(s.labelBounds.all,L,N,A,O)}return e}},Ud=function(e,r){if(!r.cy().headless()){var a=r.pstyle("outline-opacity").value,n=r.pstyle("outline-width").value;if(a>0&&n>0){var s=r.pstyle("outline-offset").value,i=r.pstyle("shape").value,o=n+s,u=(e.w+o*2)/e.w,l=(e.h+o*2)/e.h,f=0,h=0;["diamond","pentagon","round-triangle"].includes(i)?(u=(e.w+o*2.4)/e.w,h=-o/3.6):["concave-hexagon","rhomboid","right-rhomboid"].includes(i)?u=(e.w+o*2.4)/e.w:i==="star"?(u=(e.w+o*2.8)/e.w,l=(e.h+o*2.6)/e.h,h=-o/3.8):i==="triangle"?(u=(e.w+o*2.8)/e.w,l=(e.h+o*2.4)/e.h,h=-o/1.4):i==="vee"&&(u=(e.w+o*4.4)/e.w,l=(e.h+o*3.8)/e.h,h=-o*.5);var d=e.h*l-e.h,c=e.w*u-e.w;if(qa(e,[Math.ceil(d/2),Math.ceil(c/2)]),f!=0||h!==0){var v=uh(e,f,h);Oo(e,v)}}}},$d=function(e,r){var a=e._private.cy,n=a.styleEnabled(),s=a.headless(),i=gt(),o=e._private,u=e.isNode(),l=e.isEdge(),f,h,d,c,v,g,p=o.rstyle,y=u&&n?e.pstyle("bounds-expansion").pfValue:[0],b=function(fe){return fe.pstyle("display").value!=="none"},m=!n||b(e)&&(!l||b(e.source())&&b(e.target()));if(m){var T=0,C=0;n&&r.includeOverlays&&(T=e.pstyle("overlay-opacity").value,T!==0&&(C=e.pstyle("overlay-padding").value));var S=0,E=0;n&&r.includeUnderlays&&(S=e.pstyle("underlay-opacity").value,S!==0&&(E=e.pstyle("underlay-padding").value));var w=Math.max(C,E),x=0,D=0;if(n&&(x=e.pstyle("width").pfValue,D=x/2),u&&r.includeNodes){var L=e.position();v=L.x,g=L.y;var A=e.outerWidth(),N=A/2,O=e.outerHeight(),I=O/2;f=v-N,h=v+N,d=g-I,c=g+I,Lt(i,f,d,h,c),n&&r.includeOutlines&&Ud(i,e)}else if(l&&r.includeEdges)if(n&&!s){var R=e.pstyle("curve-style").strValue;if(f=Math.min(p.srcX,p.midX,p.tgtX),h=Math.max(p.srcX,p.midX,p.tgtX),d=Math.min(p.srcY,p.midY,p.tgtY),c=Math.max(p.srcY,p.midY,p.tgtY),f-=D,h+=D,d-=D,c+=D,Lt(i,f,d,h,c),R==="haystack"){var P=p.haystackPts;if(P&&P.length===2){if(f=P[0].x,d=P[0].y,h=P[1].x,c=P[1].y,f>h){var k=f;f=h,h=k}if(d>c){var B=d;d=c,c=B}Lt(i,f-D,d-D,h+D,c+D)}}else if(R==="bezier"||R==="unbundled-bezier"||R.endsWith("segments")||R.endsWith("taxi")){var z;switch(R){case"bezier":case"unbundled-bezier":z=p.bezierPts;break;case"segments":case"taxi":case"round-segments":case"round-taxi":z=p.linePts;break}if(z!=null)for(var F=0;Fh){var j=f;f=h,h=j}if(d>c){var q=d;d=c,c=q}f-=D,h+=D,d-=D,c+=D,Lt(i,f,d,h,c)}if(n&&r.includeEdges&&l&&(Va(i,e,"mid-source"),Va(i,e,"mid-target"),Va(i,e,"source"),Va(i,e,"target")),n){var V=e.pstyle("ghost").value==="yes";if(V){var X=e.pstyle("ghost-offset-x").pfValue,Z=e.pstyle("ghost-offset-y").pfValue;Lt(i,i.x1+X,i.y1+Z,i.x2+X,i.y2+Z)}}var re=o.bodyBounds=o.bodyBounds||{};ji(re,i),qa(re,y),Xa(re,1),n&&(f=i.x1,h=i.x2,d=i.y1,c=i.y2,Lt(i,f-w,d-w,h+w,c+w));var ce=o.overlayBounds=o.overlayBounds||{};ji(ce,i),qa(ce,y),Xa(ce,1);var te=o.labelBounds=o.labelBounds||{};te.all!=null?oh(te.all):te.all=gt(),n&&r.includeLabels&&(r.includeMainLabels&&$n(i,e,null),l&&(r.includeSourceLabels&&$n(i,e,"source"),r.includeTargetLabels&&$n(i,e,"target")))}return i.x1=xt(i.x1),i.y1=xt(i.y1),i.x2=xt(i.x2),i.y2=xt(i.y2),i.w=xt(i.x2-i.x1),i.h=xt(i.y2-i.y1),i.w>0&&i.h>0&&m&&(qa(i,y),Xa(i,1)),i},ru=function(e){var r=0,a=function(i){return(i?1:0)<0&&arguments[0]!==void 0?arguments[0]:ag,e=arguments.length>1?arguments[1]:void 0,r=0;r=0;o--)i(o);return this};ir.removeAllListeners=function(){return this.removeListener("*")};ir.emit=ir.trigger=function(t,e,r){var a=this.listeners,n=a.length;return this.emitting++,ke(e)||(e=[e]),ng(this,function(s,i){r!=null&&(a=[{event:i.event,type:i.type,namespace:i.namespace,callback:r}],n=a.length);for(var o=function(f){var h=a[f];if(h.type===i.type&&(!h.namespace||h.namespace===i.namespace||h.namespace===rg)&&s.eventMatches(s.context,h,i)){var d=[i];e!=null&&Pf(d,e),s.beforeEmit(s.context,h,i),h.conf&&h.conf.one&&(s.listeners=s.listeners.filter(function(g){return g!==h}));var c=s.callbackContext(s.context,h,i),v=h.callback.apply(c,d);s.afterEmit(s.context,h,i),v===!1&&(i.stopPropagation(),i.preventDefault())}},u=0;u1&&!i){var o=this.length-1,u=this[o],l=u._private.data.id;this[o]=void 0,this[e]=u,s.set(l,{ele:u,index:e})}return this.length--,this},unmergeOne:function(e){e=e[0];var r=this._private,a=e._private.data.id,n=r.map,s=n.get(a);if(!s)return this;var i=s.index;return this.unmergeAt(i),this},unmerge:function(e){var r=this._private.cy;if(!e)return this;if(e&&ve(e)){var a=e;e=r.mutableElements().filter(a)}for(var n=0;n=0;r--){var a=this[r];e(a)&&this.unmergeAt(r)}return this},map:function(e,r){for(var a=[],n=this,s=0;sa&&(a=u,n=o)}return{value:a,ele:n}},min:function(e,r){for(var a=1/0,n,s=this,i=0;i=0&&s"u"?"undefined":qe(Symbol))!=e&&qe(Symbol.iterator)!=e;r&&(fn[Symbol.iterator]=function(){var a=this,n={value:void 0,done:!1},s=0,i=this.length;return so({next:function(){return s1&&arguments[1]!==void 0?arguments[1]:!0,a=this[0],n=a.cy();if(n.styleEnabled()&&a){this.cleanStyle();var s=a._private.style[e];return s??(r?n.style().getDefaultProperty(e):null)}},numericStyle:function(e){var r=this[0];if(r.cy().styleEnabled()&&r){var a=r.pstyle(e);return a.pfValue!==void 0?a.pfValue:a.value}},numericStyleUnits:function(e){var r=this[0];if(r.cy().styleEnabled()&&r)return r.pstyle(e).units},renderedStyle:function(e){var r=this.cy();if(!r.styleEnabled())return this;var a=this[0];if(a)return r.style().getRenderedStyle(a,e)},style:function(e,r){var a=this.cy();if(!a.styleEnabled())return this;var n=!1,s=a.style();if(De(e)){var i=e;s.applyBypass(this,i,n),this.emitAndNotify("style")}else if(ve(e))if(r===void 0){var o=this[0];return o?s.getStylePropertyValue(o,e):void 0}else s.applyBypass(this,e,r,n),this.emitAndNotify("style");else if(e===void 0){var u=this[0];return u?s.getRawStyle(u):void 0}return this},removeStyle:function(e){var r=this.cy();if(!r.styleEnabled())return this;var a=!1,n=r.style(),s=this;if(e===void 0)for(var i=0;i0&&e.push(f[0]),e.push(o[0])}return this.spawn(e,!0).filter(t)},"neighborhood"),closedNeighborhood:function(e){return this.neighborhood().add(this).filter(e)},openNeighborhood:function(e){return this.neighborhood(e)}});st.neighbourhood=st.neighborhood;st.closedNeighbourhood=st.closedNeighborhood;st.openNeighbourhood=st.openNeighborhood;pe(st,{source:Tt(function(e){var r=this[0],a;return r&&(a=r._private.source||r.cy().collection()),a&&e?a.filter(e):a},"source"),target:Tt(function(e){var r=this[0],a;return r&&(a=r._private.target||r.cy().collection()),a&&e?a.filter(e):a},"target"),sources:Ms({attr:"source"}),targets:Ms({attr:"target"})});function Ms(t){return function(r){for(var a=[],n=0;n0);return i},component:function(){var e=this[0];return e.cy().mutableElements().components(e)[0]}});st.componentsOf=st.components;var tt=function(e,r){var a=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!1,n=arguments.length>3&&arguments[3]!==void 0?arguments[3]:!1;if(e===void 0){Ue("A collection must have a reference to the core");return}var s=new Ft,i=!1;if(!r)r=[];else if(r.length>0&&De(r[0])&&!Ca(r[0])){i=!0;for(var o=[],u=new $r,l=0,f=r.length;l0&&arguments[0]!==void 0?arguments[0]:!0,e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0,r=this,a=r.cy(),n=a._private,s=[],i=[],o,u=0,l=r.length;u0){for(var B=o.length===r.length?r:new tt(a,o),z=0;z0&&arguments[0]!==void 0?arguments[0]:!0,e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0,r=this,a=[],n={},s=r._private.cy;function i(O){for(var I=O._private.edges,R=0;R0&&(t?L.emitAndNotify("remove"):e&&L.emit("remove"));for(var A=0;A0?A=O:L=O;while(Math.abs(N)>i&&++I=s?b(D,I):R===0?I:T(D,L,L+l)}var S=!1;function E(){S=!0,(t!==e||r!==a)&&m()}var w=function(L){return S||E(),t===e&&r===a?L:L===0?0:L===1?1:p(C(L),e,a)};w.getControlPoints=function(){return[{x:t,y:e},{x:r,y:a}]};var x="generateBezier("+[t,e,r,a]+")";return w.toString=function(){return x},w}/*! Runge-Kutta spring physics function generator. Adapted from Framer.js, copyright Koen Bok. MIT License: http://en.wikipedia.org/wiki/MIT_License */var gg=function(){function t(a){return-a.tension*a.x-a.friction*a.v}function e(a,n,s){var i={x:a.x+s.dx*n,v:a.v+s.dv*n,tension:a.tension,friction:a.friction};return{dx:i.v,dv:t(i)}}function r(a,n){var s={dx:a.v,dv:t(a)},i=e(a,n*.5,s),o=e(a,n*.5,i),u=e(a,n,o),l=1/6*(s.dx+2*(i.dx+o.dx)+u.dx),f=1/6*(s.dv+2*(i.dv+o.dv)+u.dv);return a.x=a.x+l*n,a.v=a.v+f*n,a}return function a(n,s,i){var o={x:-1,v:0,tension:null,friction:null},u=[0],l=0,f=1/1e4,h=16/1e3,d,c,v;for(n=parseFloat(n)||500,s=parseFloat(s)||20,i=i||null,o.tension=n,o.friction=s,d=i!==null,d?(l=a(n,s),c=l/i*h):c=h;v=r(v||o,c),u.push(1+v.x),l+=16,Math.abs(v.x)>f&&Math.abs(v.v)>f;);return d?function(g){return u[g*(u.length-1)|0]}:l}}(),Be=function(e,r,a,n){var s=dg(e,r,a,n);return function(i,o,u){return i+(o-i)*s(u)}},Za={linear:function(e,r,a){return e+(r-e)*a},ease:Be(.25,.1,.25,1),"ease-in":Be(.42,0,1,1),"ease-out":Be(0,0,.58,1),"ease-in-out":Be(.42,0,.58,1),"ease-in-sine":Be(.47,0,.745,.715),"ease-out-sine":Be(.39,.575,.565,1),"ease-in-out-sine":Be(.445,.05,.55,.95),"ease-in-quad":Be(.55,.085,.68,.53),"ease-out-quad":Be(.25,.46,.45,.94),"ease-in-out-quad":Be(.455,.03,.515,.955),"ease-in-cubic":Be(.55,.055,.675,.19),"ease-out-cubic":Be(.215,.61,.355,1),"ease-in-out-cubic":Be(.645,.045,.355,1),"ease-in-quart":Be(.895,.03,.685,.22),"ease-out-quart":Be(.165,.84,.44,1),"ease-in-out-quart":Be(.77,0,.175,1),"ease-in-quint":Be(.755,.05,.855,.06),"ease-out-quint":Be(.23,1,.32,1),"ease-in-out-quint":Be(.86,0,.07,1),"ease-in-expo":Be(.95,.05,.795,.035),"ease-out-expo":Be(.19,1,.22,1),"ease-in-out-expo":Be(1,0,0,1),"ease-in-circ":Be(.6,.04,.98,.335),"ease-out-circ":Be(.075,.82,.165,1),"ease-in-out-circ":Be(.785,.135,.15,.86),spring:function(e,r,a){if(a===0)return Za.linear;var n=gg(e,r,a);return function(s,i,o){return s+(i-s)*n(o)}},"cubic-bezier":Be};function ks(t,e,r,a,n){if(a===1||e===r)return r;var s=n(e,r,a);return t==null||((t.roundValue||t.color)&&(s=Math.round(s)),t.min!==void 0&&(s=Math.max(s,t.min)),t.max!==void 0&&(s=Math.min(s,t.max))),s}function Ps(t,e){return t.pfValue!=null||t.value!=null?t.pfValue!=null&&(e==null||e.type.units!=="%")?t.pfValue:t.value:t}function Lr(t,e,r,a,n){var s=n!=null?n.type:null;r<0?r=0:r>1&&(r=1);var i=Ps(t,n),o=Ps(e,n);if(ne(i)&&ne(o))return ks(s,i,o,r,a);if(ke(i)&&ke(o)){for(var u=[],l=0;l0?(c==="spring"&&v.push(i.duration),i.easingImpl=Za[c].apply(null,v)):i.easingImpl=Za[c]}var g=i.easingImpl,p;if(i.duration===0?p=1:p=(r-u)/i.duration,i.applying&&(p=i.progress),p<0?p=0:p>1&&(p=1),i.delay==null){var y=i.startPosition,b=i.position;if(b&&n&&!t.locked()){var m={};na(y.x,b.x)&&(m.x=Lr(y.x,b.x,p,g)),na(y.y,b.y)&&(m.y=Lr(y.y,b.y,p,g)),t.position(m)}var T=i.startPan,C=i.pan,S=s.pan,E=C!=null&&a;E&&(na(T.x,C.x)&&(S.x=Lr(T.x,C.x,p,g)),na(T.y,C.y)&&(S.y=Lr(T.y,C.y,p,g)),t.emit("pan"));var w=i.startZoom,x=i.zoom,D=x!=null&&a;D&&(na(w,x)&&(s.zoom=pa(s.minZoom,Lr(w,x,p,g),s.maxZoom)),t.emit("zoom")),(E||D)&&t.emit("viewport");var L=i.style;if(L&&L.length>0&&n){for(var A=0;A=0;E--){var w=S[E];w()}S.splice(0,S.length)},b=c.length-1;b>=0;b--){var m=c[b],T=m._private;if(T.stopped){c.splice(b,1),T.hooked=!1,T.playing=!1,T.started=!1,y(T.frames);continue}!T.playing&&!T.applying||(T.playing&&T.applying&&(T.applying=!1),T.started||yg(f,m,t),pg(f,m,t,h),T.applying&&(T.applying=!1),y(T.frames),T.step!=null&&T.step(t),m.completed()&&(c.splice(b,1),T.hooked=!1,T.playing=!1,T.started=!1,y(T.completes)),g=!0)}return!h&&c.length===0&&v.length===0&&a.push(f),g}for(var s=!1,i=0;i0?e.notify("draw",r):e.notify("draw")),r.unmerge(a),e.emit("step")}var mg={animate:Oe.animate(),animation:Oe.animation(),animated:Oe.animated(),clearQueue:Oe.clearQueue(),delay:Oe.delay(),delayAnimation:Oe.delayAnimation(),stop:Oe.stop(),addToAnimationPool:function(e){var r=this;r.styleEnabled()&&r._private.aniEles.merge(e)},stopAnimationLoop:function(){this._private.animationsRunning=!1},startAnimationLoop:function(){var e=this;if(e._private.animationsRunning=!0,!e.styleEnabled())return;function r(){e._private.animationsRunning&&nn(function(s){Bs(s,e),r()})}var a=e.renderer();a&&a.beforeRender?a.beforeRender(function(s,i){Bs(i,e)},a.beforeRenderPriorities.animations):r()}},bg={qualifierCompare:function(e,r){return e==null||r==null?e==null&&r==null:e.sameText(r)},eventMatches:function(e,r,a){var n=r.qualifier;return n!=null?e!==a.target&&Ca(a.target)&&n.matches(a.target):!0},addEventFields:function(e,r){r.cy=e,r.target=e},callbackContext:function(e,r,a){return r.qualifier!=null?a.target:e}},Ya=function(e){return ve(e)?new ar(e):e},vu={createEmitter:function(){var e=this._private;return e.emitter||(e.emitter=new Dn(bg,this)),this},emitter:function(){return this._private.emitter},on:function(e,r,a){return this.emitter().on(e,Ya(r),a),this},removeListener:function(e,r,a){return this.emitter().removeListener(e,Ya(r),a),this},removeAllListeners:function(){return this.emitter().removeAllListeners(),this},one:function(e,r,a){return this.emitter().one(e,Ya(r),a),this},once:function(e,r,a){return this.emitter().one(e,Ya(r),a),this},emit:function(e,r){return this.emitter().emit(e,r),this},emitAndNotify:function(e,r){return this.emit(e),this.notify(e,r),this}};Oe.eventAliasesOn(vu);var ri={png:function(e){var r=this._private.renderer;return e=e||{},r.png(e)},jpg:function(e){var r=this._private.renderer;return e=e||{},e.bg=e.bg||"#fff",r.jpg(e)}};ri.jpeg=ri.jpg;var Qa={layout:function(e){var r=this;if(e==null){Ue("Layout options must be specified to make a layout");return}if(e.name==null){Ue("A `name` must be specified to make a layout");return}var a=e.name,n=r.extension("layout",a);if(n==null){Ue("No such layout `"+a+"` found. Did you forget to import it and `cytoscape.use()` it?");return}var s;ve(e.eles)?s=r.$(e.eles):s=e.eles!=null?e.eles:r.$();var i=new n(pe({},e,{cy:r,eles:s}));return i}};Qa.createLayout=Qa.makeLayout=Qa.layout;var Eg={notify:function(e,r){var a=this._private;if(this.batching()){a.batchNotifications=a.batchNotifications||{};var n=a.batchNotifications[e]=a.batchNotifications[e]||this.collection();r!=null&&n.merge(r);return}if(a.notificationsEnabled){var s=this.renderer();this.destroyed()||!s||s.notify(e,r)}},notifications:function(e){var r=this._private;return e===void 0?r.notificationsEnabled:(r.notificationsEnabled=!!e,this)},noNotifications:function(e){this.notifications(!1),e(),this.notifications(!0)},batching:function(){return this._private.batchCount>0},startBatch:function(){var e=this._private;return e.batchCount==null&&(e.batchCount=0),e.batchCount===0&&(e.batchStyleEles=this.collection(),e.batchNotifications={}),e.batchCount++,this},endBatch:function(){var e=this._private;if(e.batchCount===0)return this;if(e.batchCount--,e.batchCount===0){e.batchStyleEles.updateStyle();var r=this.renderer();Object.keys(e.batchNotifications).forEach(function(a){var n=e.batchNotifications[a];n.empty()?r.notify(a):r.notify(a,n)})}return this},batch:function(e){return this.startBatch(),e(),this.endBatch(),this},batchData:function(e){var r=this;return this.batch(function(){for(var a=Object.keys(e),n=0;n0;)r.removeChild(r.childNodes[0]);e._private.renderer=null,e.mutableElements().forEach(function(a){var n=a._private;n.rscratch={},n.rstyle={},n.animation.current=[],n.animation.queue=[]})},onRender:function(e){return this.on("render",e)},offRender:function(e){return this.off("render",e)}};ai.invalidateDimensions=ai.resize;var Ja={collection:function(e,r){return ve(e)?this.$(e):mt(e)?e.collection():ke(e)?(r||(r={}),new tt(this,e,r.unique,r.removed)):new tt(this)},nodes:function(e){var r=this.$(function(a){return a.isNode()});return e?r.filter(e):r},edges:function(e){var r=this.$(function(a){return a.isEdge()});return e?r.filter(e):r},$:function(e){var r=this._private.elements;return e?r.filter(e):r.spawnSelf()},mutableElements:function(){return this._private.elements}};Ja.elements=Ja.filter=Ja.$;var ut={},fa="t",xg="f";ut.apply=function(t){for(var e=this,r=e._private,a=r.cy,n=a.collection(),s=0;s0;if(d||h&&c){var v=void 0;d&&c||d?v=l.properties:c&&(v=l.mappedProperties);for(var g=0;g1&&(T=1),o.color){var S=a.valueMin[0],E=a.valueMax[0],w=a.valueMin[1],x=a.valueMax[1],D=a.valueMin[2],L=a.valueMax[2],A=a.valueMin[3]==null?1:a.valueMin[3],N=a.valueMax[3]==null?1:a.valueMax[3],O=[Math.round(S+(E-S)*T),Math.round(w+(x-w)*T),Math.round(D+(L-D)*T),Math.round(A+(N-A)*T)];s={bypass:a.bypass,name:a.name,value:O,strValue:"rgb("+O[0]+", "+O[1]+", "+O[2]+")"}}else if(o.number){var I=a.valueMin+(a.valueMax-a.valueMin)*T;s=this.parse(a.name,I,a.bypass,d)}else return!1;if(!s)return g(),!1;s.mapping=a,a=s;break}case i.data:{for(var R=a.field.split("."),P=h.data,k=0;k0&&s>0){for(var o={},u=!1,l=0;l0?t.delayAnimation(i).play().promise().then(m):m()}).then(function(){return t.animation({style:o,duration:s,easing:t.pstyle("transition-timing-function").value,queue:!1}).play().promise()}).then(function(){r.removeBypasses(t,n),t.emitAndNotify("style"),a.transitioning=!1})}else a.transitioning&&(this.removeBypasses(t,n),t.emitAndNotify("style"),a.transitioning=!1)};ut.checkTrigger=function(t,e,r,a,n,s){var i=this.properties[e],o=n(i);o!=null&&o(r,a)&&s(i)};ut.checkZOrderTrigger=function(t,e,r,a){var n=this;this.checkTrigger(t,e,r,a,function(s){return s.triggersZOrder},function(){n._private.cy.notify("zorder",t)})};ut.checkBoundsTrigger=function(t,e,r,a){this.checkTrigger(t,e,r,a,function(n){return n.triggersBounds},function(n){t.dirtyCompoundBoundsCache(),t.dirtyBoundingBoxCache(),n.triggersBoundsOfParallelBeziers&&e==="curve-style"&&(r==="bezier"||a==="bezier")&&t.parallelEdges().forEach(function(s){s.dirtyBoundingBoxCache()}),n.triggersBoundsOfConnectedEdges&&e==="display"&&(r==="none"||a==="none")&&t.connectedEdges().forEach(function(s){s.dirtyBoundingBoxCache()})})};ut.checkTriggers=function(t,e,r,a){t.dirtyStyleCache(),this.checkZOrderTrigger(t,e,r,a),this.checkBoundsTrigger(t,e,r,a)};var Aa={};Aa.applyBypass=function(t,e,r,a){var n=this,s=[],i=!0;if(e==="*"||e==="**"){if(r!==void 0)for(var o=0;on.length?a=a.substr(n.length):a=""}function u(){s.length>i.length?s=s.substr(i.length):s=""}for(;;){var l=a.match(/^\s*$/);if(l)break;var f=a.match(/^\s*((?:.|\s)+?)\s*\{((?:.|\s)+?)\}/);if(!f){Ne("Halting stylesheet parsing: String stylesheet contains more to parse but no selector and block found in: "+a);break}n=f[0];var h=f[1];if(h!=="core"){var d=new ar(h);if(d.invalid){Ne("Skipping parsing of block: Invalid selector found in string stylesheet: "+h),o();continue}}var c=f[2],v=!1;s=c;for(var g=[];;){var p=s.match(/^\s*$/);if(p)break;var y=s.match(/^\s*(.+?)\s*:\s*(.+?)(?:\s*;|\s*$)/);if(!y){Ne("Skipping parsing of block: Invalid formatting of style property and value definitions found in:"+c),v=!0;break}i=y[0];var b=y[1],m=y[2],T=e.properties[b];if(!T){Ne("Skipping property: Invalid property name in: "+i),u();continue}var C=r.parse(b,m);if(!C){Ne("Skipping property: Invalid property definition in: "+i),u();continue}g.push({name:b,val:m}),u()}if(v){o();break}r.selector(h);for(var S=0;S=7&&e[0]==="d"&&(f=new RegExp(o.data.regex).exec(e))){if(r)return!1;var d=o.data;return{name:t,value:f,strValue:""+e,mapped:d,field:f[1],bypass:r}}else if(e.length>=10&&e[0]==="m"&&(h=new RegExp(o.mapData.regex).exec(e))){if(r||l.multiple)return!1;var c=o.mapData;if(!(l.color||l.number))return!1;var v=this.parse(t,h[4]);if(!v||v.mapped)return!1;var g=this.parse(t,h[5]);if(!g||g.mapped)return!1;if(v.pfValue===g.pfValue||v.strValue===g.strValue)return Ne("`"+t+": "+e+"` is not a valid mapper because the output range is zero; converting to `"+t+": "+v.strValue+"`"),this.parse(t,v.strValue);if(l.color){var p=v.value,y=g.value,b=p[0]===y[0]&&p[1]===y[1]&&p[2]===y[2]&&(p[3]===y[3]||(p[3]==null||p[3]===1)&&(y[3]==null||y[3]===1));if(b)return!1}return{name:t,value:h,strValue:""+e,mapped:c,field:h[1],fieldMin:parseFloat(h[2]),fieldMax:parseFloat(h[3]),valueMin:v.value,valueMax:g.value,bypass:r}}}if(l.multiple&&a!=="multiple"){var m;if(u?m=e.split(/\s+/):ke(e)?m=e:m=[e],l.evenMultiple&&m.length%2!==0)return null;for(var T=[],C=[],S=[],E="",w=!1,x=0;x0?" ":"")+D.strValue}return l.validate&&!l.validate(T,C)?null:l.singleEnum&&w?T.length===1&&ve(T[0])?{name:t,value:T[0],strValue:T[0],bypass:r}:null:{name:t,value:T,pfValue:S,strValue:E,bypass:r,units:C}}var L=function(){for(var V=0;Vl.max||l.strictMax&&e===l.max))return null;var R={name:t,value:e,strValue:""+e+(A||""),units:A,bypass:r};return l.unitless||A!=="px"&&A!=="em"?R.pfValue=e:R.pfValue=A==="px"||!A?e:this.getEmSizeInPixels()*e,(A==="ms"||A==="s")&&(R.pfValue=A==="ms"?e:1e3*e),(A==="deg"||A==="rad")&&(R.pfValue=A==="rad"?e:ah(e)),A==="%"&&(R.pfValue=e/100),R}else if(l.propList){var P=[],k=""+e;if(k!=="none"){for(var B=k.split(/\s*,\s*|\s+/),z=0;z0&&o>0&&!isNaN(a.w)&&!isNaN(a.h)&&a.w>0&&a.h>0){u=Math.min((i-2*r)/a.w,(o-2*r)/a.h),u=u>this._private.maxZoom?this._private.maxZoom:u,u=u=a.minZoom&&(a.maxZoom=r),this},minZoom:function(e){return e===void 0?this._private.minZoom:this.zoomRange({min:e})},maxZoom:function(e){return e===void 0?this._private.maxZoom:this.zoomRange({max:e})},getZoomedViewport:function(e){var r=this._private,a=r.pan,n=r.zoom,s,i,o=!1;if(r.zoomingEnabled||(o=!0),ne(e)?i=e:De(e)&&(i=e.level,e.position!=null?s=bn(e.position,n,a):e.renderedPosition!=null&&(s=e.renderedPosition),s!=null&&!r.panningEnabled&&(o=!0)),i=i>r.maxZoom?r.maxZoom:i,i=ir.maxZoom||!r.zoomingEnabled?i=!0:(r.zoom=u,s.push("zoom"))}if(n&&(!i||!e.cancelOnFailedZoom)&&r.panningEnabled){var l=e.pan;ne(l.x)&&(r.pan.x=l.x,o=!1),ne(l.y)&&(r.pan.y=l.y,o=!1),o||s.push("pan")}return s.length>0&&(s.push("viewport"),this.emit(s.join(" ")),this.notify("viewport")),this},center:function(e){var r=this.getCenterPan(e);return r&&(this._private.pan=r,this.emit("pan viewport"),this.notify("viewport")),this},getCenterPan:function(e,r){if(this._private.panningEnabled){if(ve(e)){var a=e;e=this.mutableElements().filter(a)}else mt(e)||(e=this.mutableElements());if(e.length!==0){var n=e.boundingBox(),s=this.width(),i=this.height();r=r===void 0?this._private.zoom:r;var o={x:(s-r*(n.x1+n.x2))/2,y:(i-r*(n.y1+n.y2))/2};return o}}},reset:function(){return!this._private.panningEnabled||!this._private.zoomingEnabled?this:(this.viewport({pan:{x:0,y:0},zoom:1}),this)},invalidateSize:function(){this._private.sizeCache=null},size:function(){var e=this._private,r=e.container,a=this;return e.sizeCache=e.sizeCache||(r?function(){var n=a.window().getComputedStyle(r),s=function(o){return parseFloat(n.getPropertyValue(o))};return{width:r.clientWidth-s("padding-left")-s("padding-right"),height:r.clientHeight-s("padding-top")-s("padding-bottom")}}():{width:1,height:1})},width:function(){return this.size().width},height:function(){return this.size().height},extent:function(){var e=this._private.pan,r=this._private.zoom,a=this.renderedExtent(),n={x1:(a.x1-e.x)/r,x2:(a.x2-e.x)/r,y1:(a.y1-e.y)/r,y2:(a.y2-e.y)/r};return n.w=n.x2-n.x1,n.h=n.y2-n.y1,n},renderedExtent:function(){var e=this.width(),r=this.height();return{x1:0,y1:0,x2:e,y2:r,w:e,h:r}},multiClickDebounceTime:function(e){if(e)this._private.multiClickDebounceTime=e;else return this._private.multiClickDebounceTime;return this}};Er.centre=Er.center;Er.autolockNodes=Er.autolock;Er.autoungrabifyNodes=Er.autoungrabify;var wa={data:Oe.data({field:"data",bindingEvent:"data",allowBinding:!0,allowSetting:!0,settingEvent:"data",settingTriggersEvent:!0,triggerFnName:"trigger",allowGetting:!0,updateStyle:!0}),removeData:Oe.removeData({field:"data",event:"data",triggerFnName:"trigger",triggerEvent:!0,updateStyle:!0}),scratch:Oe.data({field:"scratch",bindingEvent:"scratch",allowBinding:!0,allowSetting:!0,settingEvent:"scratch",settingTriggersEvent:!0,triggerFnName:"trigger",allowGetting:!0,updateStyle:!0}),removeScratch:Oe.removeData({field:"scratch",event:"scratch",triggerFnName:"trigger",triggerEvent:!0,updateStyle:!0})};wa.attr=wa.data;wa.removeAttr=wa.removeData;var xa=function(e){var r=this;e=pe({},e);var a=e.container;a&&!an(a)&&an(a[0])&&(a=a[0]);var n=a?a._cyreg:null;n=n||{},n&&n.cy&&(n.cy.destroy(),n={});var s=n.readies=n.readies||[];a&&(a._cyreg=n),n.cy=r;var i=_e!==void 0&&a!==void 0&&!e.headless,o=e;o.layout=pe({name:i?"grid":"null"},o.layout),o.renderer=pe({name:i?"canvas":"null"},o.renderer);var u=function(v,g,p){return g!==void 0?g:p!==void 0?p:v},l=this._private={container:a,ready:!1,options:o,elements:new tt(this),listeners:[],aniEles:new tt(this),data:o.data||{},scratch:{},layout:null,renderer:null,destroyed:!1,notificationsEnabled:!0,minZoom:1e-50,maxZoom:1e50,zoomingEnabled:u(!0,o.zoomingEnabled),userZoomingEnabled:u(!0,o.userZoomingEnabled),panningEnabled:u(!0,o.panningEnabled),userPanningEnabled:u(!0,o.userPanningEnabled),boxSelectionEnabled:u(!0,o.boxSelectionEnabled),autolock:u(!1,o.autolock,o.autolockNodes),autoungrabify:u(!1,o.autoungrabify,o.autoungrabifyNodes),autounselectify:u(!1,o.autounselectify),styleEnabled:o.styleEnabled===void 0?i:o.styleEnabled,zoom:ne(o.zoom)?o.zoom:1,pan:{x:De(o.pan)&&ne(o.pan.x)?o.pan.x:0,y:De(o.pan)&&ne(o.pan.y)?o.pan.y:0},animation:{current:[],queue:[]},hasCompoundNodes:!1,multiClickDebounceTime:u(250,o.multiClickDebounceTime)};this.createEmitter(),this.selectionType(o.selectionType),this.zoomRange({min:o.minZoom,max:o.maxZoom});var f=function(v,g){var p=v.some(Sl);if(p)return Yr.all(v).then(g);g(v)};l.styleEnabled&&r.setStyle([]);var h=pe({},o,o.renderer);r.initRenderer(h);var d=function(v,g,p){r.notifications(!1);var y=r.mutableElements();y.length>0&&y.remove(),v!=null&&(De(v)||ke(v))&&r.add(v),r.one("layoutready",function(m){r.notifications(!0),r.emit(m),r.one("load",g),r.emitAndNotify("load")}).one("layoutstop",function(){r.one("done",p),r.emit("done")});var b=pe({},r._private.options.layout);b.eles=r.elements(),r.layout(b).run()};f([o.style,o.elements],function(c){var v=c[0],g=c[1];l.styleEnabled&&r.style().append(v),d(g,function(){r.startAnimationLoop(),l.ready=!0,Ve(o.ready)&&r.on("ready",o.ready);for(var p=0;p0,u=gt(e.boundingBox?e.boundingBox:{x1:0,y1:0,w:r.width(),h:r.height()}),l;if(mt(e.roots))l=e.roots;else if(ke(e.roots)){for(var f=[],h=0;h0;){var I=O(),R=D(I,A);if(R)I.outgoers().filter(function(te){return te.isNode()&&a.has(te)}).forEach(N);else if(R===null){Ne("Detected double maximal shift for node `"+I.id()+"`. Bailing maximal adjustment due to cycle. Use `options.maximal: true` only on DAGs.");break}}}x();var P=0;if(e.avoidOverlap)for(var k=0;k0&&y[0].length<=3?we/2:0),Ae=2*Math.PI/y[le].length*oe;return le===0&&y[0].length===1&&(xe=1),{x:Z.x+xe*Math.cos(Ae),y:Z.y+xe*Math.sin(Ae)}}else{var Ie={x:Z.x+(oe+1-(de+1)/2)*Me,y:(le+1)*Te};return Ie}};return a.nodes().layoutPositions(this,e,ce),this};var Lg={fit:!0,padding:30,boundingBox:void 0,avoidOverlap:!0,nodeDimensionsIncludeLabels:!1,spacingFactor:void 0,radius:void 0,startAngle:3/2*Math.PI,sweep:void 0,clockwise:!0,sort:void 0,animate:!1,animationDuration:500,animationEasing:void 0,animateFilter:function(e,r){return!0},ready:void 0,stop:void 0,transform:function(e,r){return r}};function gu(t){this.options=pe({},Lg,t)}gu.prototype.run=function(){var t=this.options,e=t,r=t.cy,a=e.eles,n=e.counterclockwise!==void 0?!e.counterclockwise:e.clockwise,s=a.nodes().not(":parent");e.sort&&(s=s.sort(e.sort));for(var i=gt(e.boundingBox?e.boundingBox:{x1:0,y1:0,w:r.width(),h:r.height()}),o={x:i.x1+i.w/2,y:i.y1+i.h/2},u=e.sweep===void 0?2*Math.PI-2*Math.PI/s.length:e.sweep,l=u/Math.max(1,s.length-1),f,h=0,d=0;d1&&e.avoidOverlap){h*=1.75;var y=Math.cos(l)-Math.cos(0),b=Math.sin(l)-Math.sin(0),m=Math.sqrt(h*h/(y*y+b*b));f=Math.max(m,f)}var T=function(S,E){var w=e.startAngle+E*l*(n?1:-1),x=f*Math.cos(w),D=f*Math.sin(w),L={x:o.x+x,y:o.y+D};return L};return a.nodes().layoutPositions(this,e,T),this};var Ag={fit:!0,padding:30,startAngle:3/2*Math.PI,sweep:void 0,clockwise:!0,equidistant:!1,minNodeSpacing:10,boundingBox:void 0,avoidOverlap:!0,nodeDimensionsIncludeLabels:!1,height:void 0,width:void 0,spacingFactor:void 0,concentric:function(e){return e.degree()},levelWidth:function(e){return e.maxDegree()/4},animate:!1,animationDuration:500,animationEasing:void 0,animateFilter:function(e,r){return!0},ready:void 0,stop:void 0,transform:function(e,r){return r}};function pu(t){this.options=pe({},Ag,t)}pu.prototype.run=function(){for(var t=this.options,e=t,r=e.counterclockwise!==void 0?!e.counterclockwise:e.clockwise,a=t.cy,n=e.eles,s=n.nodes().not(":parent"),i=gt(e.boundingBox?e.boundingBox:{x1:0,y1:0,w:a.width(),h:a.height()}),o={x:i.x1+i.w/2,y:i.y1+i.h/2},u=[],l=0,f=0;f0){var C=Math.abs(b[0].value-T.value);C>=p&&(b=[],y.push(b))}b.push(T)}var S=l+e.minNodeSpacing;if(!e.avoidOverlap){var E=y.length>0&&y[0].length>1,w=Math.min(i.w,i.h)/2-S,x=w/(y.length+E?1:0);S=Math.min(S,x)}for(var D=0,L=0;L1&&e.avoidOverlap){var I=Math.cos(O)-Math.cos(0),R=Math.sin(O)-Math.sin(0),P=Math.sqrt(S*S/(I*I+R*R));D=Math.max(P,D)}A.r=D,D+=S}if(e.equidistant){for(var k=0,B=0,z=0;z=t.numIter||(Bg(a,t),a.temperature=a.temperature*t.coolingFactor,a.temperature=t.animationThreshold&&s(),nn(h)}};f()}else{for(;l;)l=i(u),u++;zs(a,t),o()}return this};Nn.prototype.stop=function(){return this.stopped=!0,this.thread&&this.thread.stop(),this.emit("layoutstop"),this};Nn.prototype.destroy=function(){return this.thread&&this.thread.stop(),this};var Ng=function(e,r,a){for(var n=a.eles.edges(),s=a.eles.nodes(),i=gt(a.boundingBox?a.boundingBox:{x1:0,y1:0,w:e.width(),h:e.height()}),o={isCompound:e.hasCompoundNodes(),layoutNodes:[],idToIndex:{},nodeSize:s.size(),graphSet:[],indexToGraph:[],layoutEdges:[],edgeSize:n.size(),temperature:a.initialTemp,clientWidth:i.w,clientHeight:i.h,boundingBox:i},u=a.eles.components(),l={},f=0;f0){o.graphSet.push(w);for(var f=0;fn.count?0:n.graph},Ig=function t(e,r,a,n){var s=n.graphSet[a];if(-10)var h=n.nodeOverlap*f,d=Math.sqrt(o*o+u*u),c=h*o/d,v=h*u/d;else var g=cn(e,o,u),p=cn(r,-1*o,-1*u),y=p.x-g.x,b=p.y-g.y,m=y*y+b*b,d=Math.sqrt(m),h=(e.nodeRepulsion+r.nodeRepulsion)/m,c=h*y/d,v=h*b/d;e.isLocked||(e.offsetX-=c,e.offsetY-=v),r.isLocked||(r.offsetX+=c,r.offsetY+=v)}},zg=function(e,r,a,n){if(a>0)var s=e.maxX-r.minX;else var s=r.maxX-e.minX;if(n>0)var i=e.maxY-r.minY;else var i=r.maxY-e.minY;return s>=0&&i>=0?Math.sqrt(s*s+i*i):0},cn=function(e,r,a){var n=e.positionX,s=e.positionY,i=e.height||1,o=e.width||1,u=a/r,l=i/o,f={};return r===0&&0a?(f.x=n,f.y=s+i/2,f):0r&&-1*l<=u&&u<=l?(f.x=n-o/2,f.y=s-o*a/2/r,f):0=l)?(f.x=n+i*r/2/a,f.y=s+i/2,f):(0>a&&(u<=-1*l||u>=l)&&(f.x=n-i*r/2/a,f.y=s-i/2),f)},Vg=function(e,r){for(var a=0;aa){var p=r.gravity*c/g,y=r.gravity*v/g;d.offsetX+=p,d.offsetY+=y}}}}},$g=function(e,r){var a=[],n=0,s=-1;for(a.push.apply(a,e.graphSet[0]),s+=e.graphSet[0].length;n<=s;){var i=a[n++],o=e.idToIndex[i],u=e.layoutNodes[o],l=u.children;if(0a)var s={x:a*e/n,y:a*r/n};else var s={x:e,y:r};return s},Hg=function t(e,r){var a=e.parentId;if(a!=null){var n=r.layoutNodes[r.idToIndex[a]],s=!1;if((n.maxX==null||e.maxX+n.padRight>n.maxX)&&(n.maxX=e.maxX+n.padRight,s=!0),(n.minX==null||e.minX-n.padLeftn.maxY)&&(n.maxY=e.maxY+n.padBottom,s=!0),(n.minY==null||e.minY-n.padTopy&&(v+=p+r.componentSpacing,c=0,g=0,p=0)}}},Xg={fit:!0,padding:30,boundingBox:void 0,avoidOverlap:!0,avoidOverlapPadding:10,nodeDimensionsIncludeLabels:!1,spacingFactor:void 0,condense:!1,rows:void 0,cols:void 0,position:function(e){},sort:void 0,animate:!1,animationDuration:500,animationEasing:void 0,animateFilter:function(e,r){return!0},ready:void 0,stop:void 0,transform:function(e,r){return r}};function mu(t){this.options=pe({},Xg,t)}mu.prototype.run=function(){var t=this.options,e=t,r=t.cy,a=e.eles,n=a.nodes().not(":parent");e.sort&&(n=n.sort(e.sort));var s=gt(e.boundingBox?e.boundingBox:{x1:0,y1:0,w:r.width(),h:r.height()});if(s.h===0||s.w===0)a.nodes().layoutPositions(this,e,function(H){return{x:s.x1,y:s.y1}});else{var i=n.size(),o=Math.sqrt(i*s.h/s.w),u=Math.round(o),l=Math.round(s.w/s.h*o),f=function(_){if(_==null)return Math.min(u,l);var W=Math.min(u,l);W==u?u=_:l=_},h=function(_){if(_==null)return Math.max(u,l);var W=Math.max(u,l);W==u?u=_:l=_},d=e.rows,c=e.cols!=null?e.cols:e.columns;if(d!=null&&c!=null)u=d,l=c;else if(d!=null&&c==null)u=d,l=Math.ceil(i/u);else if(d==null&&c!=null)l=c,u=Math.ceil(i/l);else if(l*u>i){var v=f(),g=h();(v-1)*g>=i?f(v-1):(g-1)*v>=i&&h(g-1)}else for(;l*u=i?h(y+1):f(p+1)}var b=s.w/l,m=s.h/u;if(e.condense&&(b=0,m=0),e.avoidOverlap)for(var T=0;T=l&&(I=0,O++)},P={},k=0;k(I=ph(t,e,R[P],R[P+1],R[P+2],R[P+3])))return p(E,I),!0}else if(x.edgeType==="bezier"||x.edgeType==="multibezier"||x.edgeType==="self"||x.edgeType==="compound"){for(var R=x.allpts,P=0;P+5(I=gh(t,e,R[P],R[P+1],R[P+2],R[P+3],R[P+4],R[P+5])))return p(E,I),!0}for(var k=k||w.source,B=B||w.target,z=n.getArrowWidth(D,L),F=[{name:"source",x:x.arrowStartX,y:x.arrowStartY,angle:x.srcArrowAngle},{name:"target",x:x.arrowEndX,y:x.arrowEndY,angle:x.tgtArrowAngle},{name:"mid-source",x:x.midX,y:x.midY,angle:x.midsrcArrowAngle},{name:"mid-target",x:x.midX,y:x.midY,angle:x.midtgtArrowAngle}],P=0;P0&&(y(k),y(B))}function m(E,w,x){return At(E,w,x)}function T(E,w){var x=E._private,D=d,L;w?L=w+"-":L="",E.boundingBox();var A=x.labelBounds[w||"main"],N=E.pstyle(L+"label").value,O=E.pstyle("text-events").strValue==="yes";if(!(!O||!N)){var I=m(x.rscratch,"labelX",w),R=m(x.rscratch,"labelY",w),P=m(x.rscratch,"labelAngle",w),k=E.pstyle(L+"text-margin-x").pfValue,B=E.pstyle(L+"text-margin-y").pfValue,z=A.x1-D-k,F=A.x2+D-k,G=A.y1-D-B,H=A.y2+D-B;if(P){var _=Math.cos(P),W=Math.sin(P),K=function(ce,te){return ce=ce-I,te=te-R,{x:ce*_-te*W+I,y:ce*W+te*_+R}},j=K(z,G),q=K(z,H),V=K(F,G),X=K(F,H),Z=[j.x+k,j.y+B,V.x+k,V.y+B,X.x+k,X.y+B,q.x+k,q.y+B];if(dt(t,e,Z))return p(E),!0}else if(zr(A,t,e))return p(E),!0}}for(var C=i.length-1;C>=0;C--){var S=i[C];S.isNode()?y(S)||T(S):b(S)||T(S)||T(S,"source")||T(S,"target")}return o};Tr.getAllInBox=function(t,e,r,a){var n=this.getCachedZSortedEles().interactive,s=[],i=Math.min(t,r),o=Math.max(t,r),u=Math.min(e,a),l=Math.max(e,a);t=i,r=o,e=u,a=l;for(var f=gt({x1:t,y1:e,x2:r,y2:a}),h=0;h0?-(Math.PI-e.ang):Math.PI+e.ang},Jg=function(e,r,a,n,s){if(e!==_s?Hs(r,e,Pt):Qg(wt,Pt),Hs(r,a,wt),$s=Pt.nx*wt.ny-Pt.ny*wt.nx,Ys=Pt.nx*wt.nx-Pt.ny*-wt.ny,Yt=Math.asin(Math.max(-1,Math.min(1,$s))),Math.abs(Yt)<1e-6){ni=r.x,ii=r.y,cr=Or=0;return}vr=1,ja=!1,Ys<0?Yt<0?Yt=Math.PI+Yt:(Yt=Math.PI-Yt,vr=-1,ja=!0):Yt>0&&(vr=-1,ja=!0),r.radius!==void 0?Or=r.radius:Or=n,lr=Yt/2,_a=Math.min(Pt.len/2,wt.len/2),s?(kt=Math.abs(Math.cos(lr)*Or/Math.sin(lr)),kt>_a?(kt=_a,cr=Math.abs(kt*Math.sin(lr)/Math.cos(lr))):cr=Or):(kt=Math.min(_a,Or),cr=Math.abs(kt*Math.sin(lr)/Math.cos(lr))),si=r.x+wt.nx*kt,oi=r.y+wt.ny*kt,ni=si-wt.ny*cr*vr,ii=oi+wt.nx*cr*vr,xu=r.x+Pt.nx*kt,Tu=r.y+Pt.ny*kt,_s=r};function Cu(t,e){e.radius===0?t.lineTo(e.cx,e.cy):t.arc(e.cx,e.cy,e.radius,e.startAngle,e.endAngle,e.counterClockwise)}function Bi(t,e,r,a){var n=arguments.length>4&&arguments[4]!==void 0?arguments[4]:!0;return a===0||e.radius===0?{cx:e.x,cy:e.y,radius:0,startX:e.x,startY:e.y,stopX:e.x,stopY:e.y,startAngle:void 0,endAngle:void 0,counterClockwise:void 0}:(Jg(t,e,r,a,n),{cx:ni,cy:ii,radius:cr,startX:xu,startY:Tu,stopX:si,stopY:oi,startAngle:Pt.ang+Math.PI/2*vr,endAngle:wt.ang-Math.PI/2*vr,counterClockwise:ja})}var lt={};lt.findMidptPtsEtc=function(t,e){var r=e.posPts,a=e.intersectionPts,n=e.vectorNormInverse,s,i=t.pstyle("source-endpoint"),o=t.pstyle("target-endpoint"),u=i.units!=null&&o.units!=null,l=function(C,S,E,w){var x=w-S,D=E-C,L=Math.sqrt(D*D+x*x);return{x:-x/L,y:D/L}},f=t.pstyle("edge-distances").value;switch(f){case"node-position":s=r;break;case"intersection":s=a;break;case"endpoints":{if(u){var h=this.manualEndptToPx(t.source()[0],i),d=St(h,2),c=d[0],v=d[1],g=this.manualEndptToPx(t.target()[0],o),p=St(g,2),y=p[0],b=p[1],m={x1:c,y1:v,x2:y,y2:b};n=l(c,v,y,b),s=m}else Ne("Edge ".concat(t.id()," has edge-distances:endpoints specified without manual endpoints specified via source-endpoint and target-endpoint. Falling back on edge-distances:intersection (default).")),s=a;break}}return{midptPts:s,vectorNormInverse:n}};lt.findHaystackPoints=function(t){for(var e=0;e0?Math.max(J-se,0):Math.min(J+se,0)},N=A(D,w),O=A(L,x),I=!1;b===l?y=Math.abs(N)>Math.abs(O)?n:a:b===u||b===o?(y=a,I=!0):(b===s||b===i)&&(y=n,I=!0);var R=y===a,P=R?O:N,k=R?L:D,B=Ao(k),z=!1;!(I&&(T||S))&&(b===o&&k<0||b===u&&k>0||b===s&&k>0||b===i&&k<0)&&(B*=-1,P=B*Math.abs(P),z=!0);var F;if(T){var G=C<0?1+C:C;F=G*P}else{var H=C<0?P:0;F=H+C*B}var _=function(J){return Math.abs(J)=Math.abs(P)},W=_(F),K=_(Math.abs(P)-Math.abs(F)),j=W||K;if(j&&!z)if(R){var q=Math.abs(k)<=d/2,V=Math.abs(D)<=c/2;if(q){var X=(f.x1+f.x2)/2,Z=f.y1,re=f.y2;r.segpts=[X,Z,X,re]}else if(V){var ce=(f.y1+f.y2)/2,te=f.x1,ae=f.x2;r.segpts=[te,ce,ae,ce]}else r.segpts=[f.x1,f.y2]}else{var fe=Math.abs(k)<=h/2,le=Math.abs(L)<=v/2;if(fe){var oe=(f.y1+f.y2)/2,de=f.x1,Me=f.x2;r.segpts=[de,oe,Me,oe]}else if(le){var Te=(f.x1+f.x2)/2,we=f.y1,Ie=f.y2;r.segpts=[Te,we,Te,Ie]}else r.segpts=[f.x2,f.y1]}else if(R){var xe=f.y1+F+(p?d/2*B:0),Ae=f.x1,ee=f.x2;r.segpts=[Ae,xe,ee,xe]}else{var M=f.x1+F+(p?h/2*B:0),$=f.y1,Q=f.y2;r.segpts=[M,$,M,Q]}if(r.isRound){var U=t.pstyle("taxi-radius").value,Y=t.pstyle("radius-type").value[0]==="arc-radius";r.radii=new Array(r.segpts.length/2).fill(U),r.isArcRadius=new Array(r.segpts.length/2).fill(Y)}};lt.tryToCorrectInvalidPoints=function(t,e){var r=t._private.rscratch;if(r.edgeType==="bezier"){var a=e.srcPos,n=e.tgtPos,s=e.srcW,i=e.srcH,o=e.tgtW,u=e.tgtH,l=e.srcShape,f=e.tgtShape,h=e.srcCornerRadius,d=e.tgtCornerRadius,c=e.srcRs,v=e.tgtRs,g=!ne(r.startX)||!ne(r.startY),p=!ne(r.arrowStartX)||!ne(r.arrowStartY),y=!ne(r.endX)||!ne(r.endY),b=!ne(r.arrowEndX)||!ne(r.arrowEndY),m=3,T=this.getArrowWidth(t.pstyle("width").pfValue,t.pstyle("arrow-scale").value)*this.arrowShapeWidth,C=m*T,S=yr({x:r.ctrlpts[0],y:r.ctrlpts[1]},{x:r.startX,y:r.startY}),E=SO.poolIndex()){var I=N;N=O,O=I}var R=x.srcPos=N.position(),P=x.tgtPos=O.position(),k=x.srcW=N.outerWidth(),B=x.srcH=N.outerHeight(),z=x.tgtW=O.outerWidth(),F=x.tgtH=O.outerHeight(),G=x.srcShape=r.nodeShapes[e.getNodeShape(N)],H=x.tgtShape=r.nodeShapes[e.getNodeShape(O)],_=x.srcCornerRadius=N.pstyle("corner-radius").value==="auto"?"auto":N.pstyle("corner-radius").pfValue,W=x.tgtCornerRadius=O.pstyle("corner-radius").value==="auto"?"auto":O.pstyle("corner-radius").pfValue,K=x.tgtRs=O._private.rscratch,j=x.srcRs=N._private.rscratch;x.dirCounts={north:0,west:0,south:0,east:0,northwest:0,southwest:0,northeast:0,southeast:0};for(var q=0;q0){var re=s,ce=fr(re,Ir(r)),te=fr(re,Ir(Z)),ae=ce;if(te2){var fe=fr(re,{x:Z[2],y:Z[3]});fe0){var Q=i,U=fr(Q,Ir(r)),Y=fr(Q,Ir($)),ie=U;if(Y2){var J=fr(Q,{x:$[2],y:$[3]});J=v||E){p={cp:T,segment:S};break}}if(p)break}var w=p.cp,x=p.segment,D=(v-y)/x.length,L=x.t1-x.t0,A=c?x.t0+L*D:x.t1-L*D;A=pa(0,A,1),e=kr(w.p0,w.p1,w.p2,A),d=ep(w.p0,w.p1,w.p2,A);break}case"straight":case"segments":case"haystack":{for(var N=0,O,I,R,P,k=a.allpts.length,B=0;B+3=v));B+=2);var z=v-I,F=z/O;F=pa(0,F,1),e=ih(R,P,F),d=Lu(R,P);break}}i("labelX",h,e.x),i("labelY",h,e.y),i("labelAutoAngle",h,d)}};l("source"),l("target"),this.applyLabelDimensions(t)}};zt.applyLabelDimensions=function(t){this.applyPrefixedLabelDimensions(t),t.isEdge()&&(this.applyPrefixedLabelDimensions(t,"source"),this.applyPrefixedLabelDimensions(t,"target"))};zt.applyPrefixedLabelDimensions=function(t,e){var r=t._private,a=this.getLabelText(t,e),n=this.calculateLabelDimensions(t,a),s=t.pstyle("line-height").pfValue,i=t.pstyle("text-wrap").strValue,o=At(r.rscratch,"labelWrapCachedLines",e)||[],u=i!=="wrap"?1:Math.max(o.length,1),l=n.height/u,f=l*s,h=n.width,d=n.height+(u-1)*(s-1)*l;Qt(r.rstyle,"labelWidth",e,h),Qt(r.rscratch,"labelWidth",e,h),Qt(r.rstyle,"labelHeight",e,d),Qt(r.rscratch,"labelHeight",e,d),Qt(r.rscratch,"labelLineHeight",e,f)};zt.getLabelText=function(t,e){var r=t._private,a=e?e+"-":"",n=t.pstyle(a+"label").strValue,s=t.pstyle("text-transform").value,i=function(H,_){return _?(Qt(r.rscratch,H,e,_),_):At(r.rscratch,H,e)};if(!n)return"";s=="none"||(s=="uppercase"?n=n.toUpperCase():s=="lowercase"&&(n=n.toLowerCase()));var o=t.pstyle("text-wrap").value;if(o==="wrap"){var u=i("labelKey");if(u!=null&&i("labelWrapKey")===u)return i("labelWrapCachedText");for(var l="​",f=n.split(` +`),h=t.pstyle("text-max-width").pfValue,d=t.pstyle("text-overflow-wrap").value,c=d==="anywhere",v=[],g=/[\s\u200b]+|$/g,p=0;ph){var C=y.matchAll(g),S="",E=0,w=uo(C),x;try{for(w.s();!(x=w.n()).done;){var D=x.value,L=D[0],A=y.substring(E,D.index);E=D.index+L.length;var N=S.length===0?A:S+A+L,O=this.calculateLabelDimensions(t,N),I=O.width;I<=h?S+=A+L:(S&&v.push(S),S=A+L)}}catch(G){w.e(G)}finally{w.f()}S.match(/^[\s\u200b]+$/)||v.push(S)}else v.push(y)}i("labelWrapCachedLines",v),n=i("labelWrapCachedText",v.join(` +`)),i("labelWrapKey",u)}else if(o==="ellipsis"){var R=t.pstyle("text-max-width").pfValue,P="",k="…",B=!1;if(this.calculateLabelDimensions(t,n).widthR)break;P+=n[z],z===n.length-1&&(B=!0)}return B||(P+=k),P}return n};zt.getLabelJustification=function(t){var e=t.pstyle("text-justification").strValue,r=t.pstyle("text-halign").strValue;if(e==="auto")if(t.isNode())switch(r){case"left":return"right";case"right":return"left";default:return"center"}else return"center";else return e};zt.calculateLabelDimensions=function(t,e){var r=this,a=r.cy.window(),n=a.document,s=pr(e,t._private.labelDimsKey),i=r.labelDimCache||(r.labelDimCache=[]),o=i[s];if(o!=null)return o;var u=0,l=t.pstyle("font-style").strValue,f=t.pstyle("font-size").pfValue,h=t.pstyle("font-family").strValue,d=t.pstyle("font-weight").strValue,c=this.labelCalcCanvas,v=this.labelCalcCanvasContext;if(!c){c=this.labelCalcCanvas=n.createElement("canvas"),v=this.labelCalcCanvasContext=c.getContext("2d");var g=c.style;g.position="absolute",g.left="-9999px",g.top="-9999px",g.zIndex="-1",g.visibility="hidden",g.pointerEvents="none"}v.font="".concat(l," ").concat(d," ").concat(f,"px ").concat(h);for(var p=0,y=0,b=e.split(` +`),m=0;m1&&arguments[1]!==void 0?arguments[1]:!0;if(e.merge(i),o)for(var u=0;u=t.desktopTapThreshold2}var ft=s(M);ze&&(t.hoverData.tapholdCancelled=!0);var ht=function(){var Rt=t.hoverData.dragDelta=t.hoverData.dragDelta||[];Rt.length===0?(Rt.push(ye[0]),Rt.push(ye[1])):(Rt[0]+=ye[0],Rt[1]+=ye[1])};Q=!0,n(he,["mousemove","vmousemove","tapdrag"],M,{x:J[0],y:J[1]});var Mt=function(){t.data.bgActivePosistion=void 0,t.hoverData.selecting||U.emit({originalEvent:M,type:"boxstart",position:{x:J[0],y:J[1]}}),Ee[4]=1,t.hoverData.selecting=!0,t.redrawHint("select",!0),t.redraw()};if(t.hoverData.which===3){if(ze){var Et={originalEvent:M,type:"cxtdrag",position:{x:J[0],y:J[1]}};be?be.emit(Et):U.emit(Et),t.hoverData.cxtDragged=!0,(!t.hoverData.cxtOver||he!==t.hoverData.cxtOver)&&(t.hoverData.cxtOver&&t.hoverData.cxtOver.emit({originalEvent:M,type:"cxtdragout",position:{x:J[0],y:J[1]}}),t.hoverData.cxtOver=he,he&&he.emit({originalEvent:M,type:"cxtdragover",position:{x:J[0],y:J[1]}}))}}else if(t.hoverData.dragging){if(Q=!0,U.panningEnabled()&&U.userPanningEnabled()){var It;if(t.hoverData.justStartedPan){var Ut=t.hoverData.mdownPos;It={x:(J[0]-Ut[0])*Y,y:(J[1]-Ut[1])*Y},t.hoverData.justStartedPan=!1}else It={x:ye[0]*Y,y:ye[1]*Y};U.panBy(It),U.emit("dragpan"),t.hoverData.dragged=!0}J=t.projectIntoViewport(M.clientX,M.clientY)}else if(Ee[4]==1&&(be==null||be.pannable())){if(ze){if(!t.hoverData.dragging&&U.boxSelectionEnabled()&&(ft||!U.panningEnabled()||!U.userPanningEnabled()))Mt();else if(!t.hoverData.selecting&&U.panningEnabled()&&U.userPanningEnabled()){var $t=i(be,t.hoverData.downs);$t&&(t.hoverData.dragging=!0,t.hoverData.justStartedPan=!0,Ee[4]=0,t.data.bgActivePosistion=Ir(se),t.redrawHint("select",!0),t.redraw())}be&&be.pannable()&&be.active()&&be.unactivate()}}else{if(be&&be.pannable()&&be.active()&&be.unactivate(),(!be||!be.grabbed())&&he!=me&&(me&&n(me,["mouseout","tapdragout"],M,{x:J[0],y:J[1]}),he&&n(he,["mouseover","tapdragover"],M,{x:J[0],y:J[1]}),t.hoverData.last=he),be)if(ze){if(U.boxSelectionEnabled()&&ft)be&&be.grabbed()&&(y(Pe),be.emit("freeon"),Pe.emit("free"),t.dragData.didDrag&&(be.emit("dragfreeon"),Pe.emit("dragfree"))),Mt();else if(be&&be.grabbed()&&t.nodeIsDraggable(be)){var nt=!t.dragData.didDrag;nt&&t.redrawHint("eles",!0),t.dragData.didDrag=!0,t.hoverData.draggingEles||g(Pe,{inDragLayer:!0});var Qe={x:0,y:0};if(ne(ye[0])&&ne(ye[1])&&(Qe.x+=ye[0],Qe.y+=ye[1],nt)){var vt=t.hoverData.dragDelta;vt&&ne(vt[0])&&ne(vt[1])&&(Qe.x+=vt[0],Qe.y+=vt[1])}t.hoverData.draggingEles=!0,Pe.silentShift(Qe).emit("position drag"),t.redrawHint("drag",!0),t.redraw()}}else ht();Q=!0}if(Ee[2]=J[0],Ee[3]=J[1],Q)return M.stopPropagation&&M.stopPropagation(),M.preventDefault&&M.preventDefault(),!1}},!1);var A,N,O;t.registerBinding(e,"mouseup",function(M){if(!(t.hoverData.which===1&&M.which!==1&&t.hoverData.capture)){var $=t.hoverData.capture;if($){t.hoverData.capture=!1;var Q=t.cy,U=t.projectIntoViewport(M.clientX,M.clientY),Y=t.selection,ie=t.findNearestElement(U[0],U[1],!0,!1),J=t.dragData.possibleDragElements,se=t.hoverData.down,ge=s(M);if(t.data.bgActivePosistion&&(t.redrawHint("select",!0),t.redraw()),t.hoverData.tapholdCancelled=!0,t.data.bgActivePosistion=void 0,se&&se.unactivate(),t.hoverData.which===3){var Ee={originalEvent:M,type:"cxttapend",position:{x:U[0],y:U[1]}};if(se?se.emit(Ee):Q.emit(Ee),!t.hoverData.cxtDragged){var he={originalEvent:M,type:"cxttap",position:{x:U[0],y:U[1]}};se?se.emit(he):Q.emit(he)}t.hoverData.cxtDragged=!1,t.hoverData.which=null}else if(t.hoverData.which===1){if(n(ie,["mouseup","tapend","vmouseup"],M,{x:U[0],y:U[1]}),!t.dragData.didDrag&&!t.hoverData.dragged&&!t.hoverData.selecting&&!t.hoverData.isOverThresholdDrag&&(n(se,["click","tap","vclick"],M,{x:U[0],y:U[1]}),N=!1,M.timeStamp-O<=Q.multiClickDebounceTime()?(A&&clearTimeout(A),N=!0,O=null,n(se,["dblclick","dbltap","vdblclick"],M,{x:U[0],y:U[1]})):(A=setTimeout(function(){N||n(se,["oneclick","onetap","voneclick"],M,{x:U[0],y:U[1]})},Q.multiClickDebounceTime()),O=M.timeStamp)),se==null&&!t.dragData.didDrag&&!t.hoverData.selecting&&!t.hoverData.dragged&&!s(M)&&(Q.$(r).unselect(["tapunselect"]),J.length>0&&t.redrawHint("eles",!0),t.dragData.possibleDragElements=J=Q.collection()),ie==se&&!t.dragData.didDrag&&!t.hoverData.selecting&&ie!=null&&ie._private.selectable&&(t.hoverData.dragging||(Q.selectionType()==="additive"||ge?ie.selected()?ie.unselect(["tapunselect"]):ie.select(["tapselect"]):ge||(Q.$(r).unmerge(ie).unselect(["tapunselect"]),ie.select(["tapselect"]))),t.redrawHint("eles",!0)),t.hoverData.selecting){var me=Q.collection(t.getAllInBox(Y[0],Y[1],Y[2],Y[3]));t.redrawHint("select",!0),me.length>0&&t.redrawHint("eles",!0),Q.emit({type:"boxend",originalEvent:M,position:{x:U[0],y:U[1]}});var be=function(ze){return ze.selectable()&&!ze.selected()};Q.selectionType()==="additive"||ge||Q.$(r).unmerge(me).unselect(),me.emit("box").stdFilter(be).select().emit("boxselect"),t.redraw()}if(t.hoverData.dragging&&(t.hoverData.dragging=!1,t.redrawHint("select",!0),t.redrawHint("eles",!0),t.redraw()),!Y[4]){t.redrawHint("drag",!0),t.redrawHint("eles",!0);var ye=se&&se.grabbed();y(J),ye&&(se.emit("freeon"),J.emit("free"),t.dragData.didDrag&&(se.emit("dragfreeon"),J.emit("dragfree")))}}Y[4]=0,t.hoverData.down=null,t.hoverData.cxtStarted=!1,t.hoverData.draggingEles=!1,t.hoverData.selecting=!1,t.hoverData.isOverThresholdDrag=!1,t.dragData.didDrag=!1,t.hoverData.dragged=!1,t.hoverData.dragDelta=[],t.hoverData.mdownPos=null,t.hoverData.mdownGPos=null,t.hoverData.which=null}}},!1);var I=function(M){if(!t.scrollingPage){var $=t.cy,Q=$.zoom(),U=$.pan(),Y=t.projectIntoViewport(M.clientX,M.clientY),ie=[Y[0]*Q+U.x,Y[1]*Q+U.y];if(t.hoverData.draggingEles||t.hoverData.dragging||t.hoverData.cxtStarted||x()){M.preventDefault();return}if($.panningEnabled()&&$.userPanningEnabled()&&$.zoomingEnabled()&&$.userZoomingEnabled()){M.preventDefault(),t.data.wheelZooming=!0,clearTimeout(t.data.wheelTimeout),t.data.wheelTimeout=setTimeout(function(){t.data.wheelZooming=!1,t.redrawHint("eles",!0),t.redraw()},150);var J;M.deltaY!=null?J=M.deltaY/-250:M.wheelDeltaY!=null?J=M.wheelDeltaY/1e3:J=M.wheelDelta/1e3,J=J*t.wheelSensitivity;var se=M.deltaMode===1;se&&(J*=33);var ge=$.zoom()*Math.pow(10,J);M.type==="gesturechange"&&(ge=t.gestureStartZoom*M.scale),$.zoom({level:ge,renderedPosition:{x:ie[0],y:ie[1]}}),$.emit(M.type==="gesturechange"?"pinchzoom":"scrollzoom")}}};t.registerBinding(t.container,"wheel",I,!0),t.registerBinding(e,"scroll",function(M){t.scrollingPage=!0,clearTimeout(t.scrollingPageTimeout),t.scrollingPageTimeout=setTimeout(function(){t.scrollingPage=!1},250)},!0),t.registerBinding(t.container,"gesturestart",function(M){t.gestureStartZoom=t.cy.zoom(),t.hasTouchStarted||M.preventDefault()},!0),t.registerBinding(t.container,"gesturechange",function(ee){t.hasTouchStarted||I(ee)},!0),t.registerBinding(t.container,"mouseout",function(M){var $=t.projectIntoViewport(M.clientX,M.clientY);t.cy.emit({originalEvent:M,type:"mouseout",position:{x:$[0],y:$[1]}})},!1),t.registerBinding(t.container,"mouseover",function(M){var $=t.projectIntoViewport(M.clientX,M.clientY);t.cy.emit({originalEvent:M,type:"mouseover",position:{x:$[0],y:$[1]}})},!1);var R,P,k,B,z,F,G,H,_,W,K,j,q,V=function(M,$,Q,U){return Math.sqrt((Q-M)*(Q-M)+(U-$)*(U-$))},X=function(M,$,Q,U){return(Q-M)*(Q-M)+(U-$)*(U-$)},Z;t.registerBinding(t.container,"touchstart",Z=function(M){if(t.hasTouchStarted=!0,!!D(M)){m(),t.touchData.capture=!0,t.data.bgActivePosistion=void 0;var $=t.cy,Q=t.touchData.now,U=t.touchData.earlier;if(M.touches[0]){var Y=t.projectIntoViewport(M.touches[0].clientX,M.touches[0].clientY);Q[0]=Y[0],Q[1]=Y[1]}if(M.touches[1]){var Y=t.projectIntoViewport(M.touches[1].clientX,M.touches[1].clientY);Q[2]=Y[0],Q[3]=Y[1]}if(M.touches[2]){var Y=t.projectIntoViewport(M.touches[2].clientX,M.touches[2].clientY);Q[4]=Y[0],Q[5]=Y[1]}if(M.touches[1]){t.touchData.singleTouchMoved=!0,y(t.dragData.touchDragEles);var ie=t.findContainerClientCoords();_=ie[0],W=ie[1],K=ie[2],j=ie[3],R=M.touches[0].clientX-_,P=M.touches[0].clientY-W,k=M.touches[1].clientX-_,B=M.touches[1].clientY-W,q=0<=R&&R<=K&&0<=k&&k<=K&&0<=P&&P<=j&&0<=B&&B<=j;var J=$.pan(),se=$.zoom();z=V(R,P,k,B),F=X(R,P,k,B),G=[(R+k)/2,(P+B)/2],H=[(G[0]-J.x)/se,(G[1]-J.y)/se];var ge=200,Ee=ge*ge;if(F=1){for(var yt=t.touchData.startPosition=[null,null,null,null,null,null],Ye=0;Ye=t.touchTapThreshold2}if($&&t.touchData.cxt){M.preventDefault();var yt=M.touches[0].clientX-_,Ye=M.touches[0].clientY-W,Ke=M.touches[1].clientX-_,Ze=M.touches[1].clientY-W,ft=X(yt,Ye,Ke,Ze),ht=ft/F,Mt=150,Et=Mt*Mt,It=1.5,Ut=It*It;if(ht>=Ut||ft>=Et){t.touchData.cxt=!1,t.data.bgActivePosistion=void 0,t.redrawHint("select",!0);var $t={originalEvent:M,type:"cxttapend",position:{x:Y[0],y:Y[1]}};t.touchData.start?(t.touchData.start.unactivate().emit($t),t.touchData.start=null):U.emit($t)}}if($&&t.touchData.cxt){var $t={originalEvent:M,type:"cxtdrag",position:{x:Y[0],y:Y[1]}};t.data.bgActivePosistion=void 0,t.redrawHint("select",!0),t.touchData.start?t.touchData.start.emit($t):U.emit($t),t.touchData.start&&(t.touchData.start._private.grabbed=!1),t.touchData.cxtDragged=!0;var nt=t.findNearestElement(Y[0],Y[1],!0,!0);(!t.touchData.cxtOver||nt!==t.touchData.cxtOver)&&(t.touchData.cxtOver&&t.touchData.cxtOver.emit({originalEvent:M,type:"cxtdragout",position:{x:Y[0],y:Y[1]}}),t.touchData.cxtOver=nt,nt&&nt.emit({originalEvent:M,type:"cxtdragover",position:{x:Y[0],y:Y[1]}}))}else if($&&M.touches[2]&&U.boxSelectionEnabled())M.preventDefault(),t.data.bgActivePosistion=void 0,this.lastThreeTouch=+new Date,t.touchData.selecting||U.emit({originalEvent:M,type:"boxstart",position:{x:Y[0],y:Y[1]}}),t.touchData.selecting=!0,t.touchData.didSelect=!0,Q[4]=1,!Q||Q.length===0||Q[0]===void 0?(Q[0]=(Y[0]+Y[2]+Y[4])/3,Q[1]=(Y[1]+Y[3]+Y[5])/3,Q[2]=(Y[0]+Y[2]+Y[4])/3+1,Q[3]=(Y[1]+Y[3]+Y[5])/3+1):(Q[2]=(Y[0]+Y[2]+Y[4])/3,Q[3]=(Y[1]+Y[3]+Y[5])/3),t.redrawHint("select",!0),t.redraw();else if($&&M.touches[1]&&!t.touchData.didSelect&&U.zoomingEnabled()&&U.panningEnabled()&&U.userZoomingEnabled()&&U.userPanningEnabled()){M.preventDefault(),t.data.bgActivePosistion=void 0,t.redrawHint("select",!0);var Qe=t.dragData.touchDragEles;if(Qe){t.redrawHint("drag",!0);for(var vt=0;vt0&&!t.hoverData.draggingEles&&!t.swipePanning&&t.data.bgActivePosistion!=null&&(t.data.bgActivePosistion=void 0,t.redrawHint("select",!0),t.redraw())}},!1);var ce;t.registerBinding(e,"touchcancel",ce=function(M){var $=t.touchData.start;t.touchData.capture=!1,$&&$.unactivate()});var te,ae,fe,le;if(t.registerBinding(e,"touchend",te=function(M){var $=t.touchData.start,Q=t.touchData.capture;if(Q)M.touches.length===0&&(t.touchData.capture=!1),M.preventDefault();else return;var U=t.selection;t.swipePanning=!1,t.hoverData.draggingEles=!1;var Y=t.cy,ie=Y.zoom(),J=t.touchData.now,se=t.touchData.earlier;if(M.touches[0]){var ge=t.projectIntoViewport(M.touches[0].clientX,M.touches[0].clientY);J[0]=ge[0],J[1]=ge[1]}if(M.touches[1]){var ge=t.projectIntoViewport(M.touches[1].clientX,M.touches[1].clientY);J[2]=ge[0],J[3]=ge[1]}if(M.touches[2]){var ge=t.projectIntoViewport(M.touches[2].clientX,M.touches[2].clientY);J[4]=ge[0],J[5]=ge[1]}$&&$.unactivate();var Ee;if(t.touchData.cxt){if(Ee={originalEvent:M,type:"cxttapend",position:{x:J[0],y:J[1]}},$?$.emit(Ee):Y.emit(Ee),!t.touchData.cxtDragged){var he={originalEvent:M,type:"cxttap",position:{x:J[0],y:J[1]}};$?$.emit(he):Y.emit(he)}t.touchData.start&&(t.touchData.start._private.grabbed=!1),t.touchData.cxt=!1,t.touchData.start=null,t.redraw();return}if(!M.touches[2]&&Y.boxSelectionEnabled()&&t.touchData.selecting){t.touchData.selecting=!1;var me=Y.collection(t.getAllInBox(U[0],U[1],U[2],U[3]));U[0]=void 0,U[1]=void 0,U[2]=void 0,U[3]=void 0,U[4]=0,t.redrawHint("select",!0),Y.emit({type:"boxend",originalEvent:M,position:{x:J[0],y:J[1]}});var be=function(Et){return Et.selectable()&&!Et.selected()};me.emit("box").stdFilter(be).select().emit("boxselect"),me.nonempty()&&t.redrawHint("eles",!0),t.redraw()}if($?.unactivate(),M.touches[2])t.data.bgActivePosistion=void 0,t.redrawHint("select",!0);else if(!M.touches[1]){if(!M.touches[0]){if(!M.touches[0]){t.data.bgActivePosistion=void 0,t.redrawHint("select",!0);var ye=t.dragData.touchDragEles;if($!=null){var Pe=$._private.grabbed;y(ye),t.redrawHint("drag",!0),t.redrawHint("eles",!0),Pe&&($.emit("freeon"),ye.emit("free"),t.dragData.didDrag&&($.emit("dragfreeon"),ye.emit("dragfree"))),n($,["touchend","tapend","vmouseup","tapdragout"],M,{x:J[0],y:J[1]}),$.unactivate(),t.touchData.start=null}else{var ze=t.findNearestElement(J[0],J[1],!0,!0);n(ze,["touchend","tapend","vmouseup","tapdragout"],M,{x:J[0],y:J[1]})}var pt=t.touchData.startPosition[0]-J[0],yt=pt*pt,Ye=t.touchData.startPosition[1]-J[1],Ke=Ye*Ye,Ze=yt+Ke,ft=Ze*ie*ie;t.touchData.singleTouchMoved||($||Y.$(":selected").unselect(["tapunselect"]),n($,["tap","vclick"],M,{x:J[0],y:J[1]}),ae=!1,M.timeStamp-le<=Y.multiClickDebounceTime()?(fe&&clearTimeout(fe),ae=!0,le=null,n($,["dbltap","vdblclick"],M,{x:J[0],y:J[1]})):(fe=setTimeout(function(){ae||n($,["onetap","voneclick"],M,{x:J[0],y:J[1]})},Y.multiClickDebounceTime()),le=M.timeStamp)),$!=null&&!t.dragData.didDrag&&$._private.selectable&&ft"u"){var oe=[],de=function(M){return{clientX:M.clientX,clientY:M.clientY,force:1,identifier:M.pointerId,pageX:M.pageX,pageY:M.pageY,radiusX:M.width/2,radiusY:M.height/2,screenX:M.screenX,screenY:M.screenY,target:M.target}},Me=function(M){return{event:M,touch:de(M)}},Te=function(M){oe.push(Me(M))},we=function(M){for(var $=0;$0)return G[0]}return null},v=Object.keys(d),g=0;g0?c:Mo(s,i,e,r,a,n,o,u)},checkPoint:function(e,r,a,n,s,i,o,u){u=u==="auto"?mr(n,s):u;var l=2*u;if(Ht(e,r,this.points,i,o,n,s-l,[0,-1],a)||Ht(e,r,this.points,i,o,n-l,s,[0,-1],a))return!0;var f=n/2+2*a,h=s/2+2*a,d=[i-f,o-h,i-f,o,i+f,o,i+f,o-h];return!!(dt(e,r,d)||dr(e,r,l,l,i+n/2-u,o+s/2-u,a)||dr(e,r,l,l,i-n/2+u,o+s/2-u,a))}}};qt.registerNodeShapes=function(){var t=this.nodeShapes={},e=this;this.generateEllipse(),this.generatePolygon("triangle",ct(3,0)),this.generateRoundPolygon("round-triangle",ct(3,0)),this.generatePolygon("rectangle",ct(4,0)),t.square=t.rectangle,this.generateRoundRectangle(),this.generateCutRectangle(),this.generateBarrel(),this.generateBottomRoundrectangle();{var r=[0,1,1,0,0,-1,-1,0];this.generatePolygon("diamond",r),this.generateRoundPolygon("round-diamond",r)}this.generatePolygon("pentagon",ct(5,0)),this.generateRoundPolygon("round-pentagon",ct(5,0)),this.generatePolygon("hexagon",ct(6,0)),this.generateRoundPolygon("round-hexagon",ct(6,0)),this.generatePolygon("heptagon",ct(7,0)),this.generateRoundPolygon("round-heptagon",ct(7,0)),this.generatePolygon("octagon",ct(8,0)),this.generateRoundPolygon("round-octagon",ct(8,0));var a=new Array(20);{var n=Zn(5,0),s=Zn(5,Math.PI/5),i=.5*(3-Math.sqrt(5));i*=1.57;for(var o=0;o=e.deqFastCost*T)break}else if(l){if(b>=e.deqCost*c||b>=e.deqAvgCost*d)break}else if(m>=e.deqNoDrawCost*Hn)break;var C=e.deq(a,p,g);if(C.length>0)for(var S=0;S0&&(e.onDeqd(a,v),!l&&e.shouldRedraw(a,v,p,g)&&s())},o=e.priority||Ei;n.beforeRender(i,o(a))}}}},rp=function(){function t(e){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:sn;gi(this,t),this.idsByKey=new Ft,this.keyForId=new Ft,this.cachesByLvl=new Ft,this.lvls=[],this.getKey=e,this.doesEleInvalidateKey=r}return pi(t,[{key:"getIdsFor",value:function(r){r==null&&Ue("Can not get id list for null key");var a=this.idsByKey,n=this.idsByKey.get(r);return n||(n=new $r,a.set(r,n)),n}},{key:"addIdForKey",value:function(r,a){r!=null&&this.getIdsFor(r).add(a)}},{key:"deleteIdForKey",value:function(r,a){r!=null&&this.getIdsFor(r).delete(a)}},{key:"getNumberOfIdsForKey",value:function(r){return r==null?0:this.getIdsFor(r).size}},{key:"updateKeyMappingFor",value:function(r){var a=r.id(),n=this.keyForId.get(a),s=this.getKey(r);this.deleteIdForKey(n,a),this.addIdForKey(s,a),this.keyForId.set(a,s)}},{key:"deleteKeyMappingFor",value:function(r){var a=r.id(),n=this.keyForId.get(a);this.deleteIdForKey(n,a),this.keyForId.delete(a)}},{key:"keyHasChangedFor",value:function(r){var a=r.id(),n=this.keyForId.get(a),s=this.getKey(r);return n!==s}},{key:"isInvalid",value:function(r){return this.keyHasChangedFor(r)||this.doesEleInvalidateKey(r)}},{key:"getCachesAt",value:function(r){var a=this.cachesByLvl,n=this.lvls,s=a.get(r);return s||(s=new Ft,a.set(r,s),n.push(r)),s}},{key:"getCache",value:function(r,a){return this.getCachesAt(a).get(r)}},{key:"get",value:function(r,a){var n=this.getKey(r),s=this.getCache(n,a);return s!=null&&this.updateKeyMappingFor(r),s}},{key:"getForCachedKey",value:function(r,a){var n=this.keyForId.get(r.id()),s=this.getCache(n,a);return s}},{key:"hasCache",value:function(r,a){return this.getCachesAt(a).has(r)}},{key:"has",value:function(r,a){var n=this.getKey(r);return this.hasCache(n,a)}},{key:"setCache",value:function(r,a,n){n.key=r,this.getCachesAt(a).set(r,n)}},{key:"set",value:function(r,a,n){var s=this.getKey(r);this.setCache(s,a,n),this.updateKeyMappingFor(r)}},{key:"deleteCache",value:function(r,a){this.getCachesAt(a).delete(r)}},{key:"delete",value:function(r,a){var n=this.getKey(r);this.deleteCache(n,a)}},{key:"invalidateKey",value:function(r){var a=this;this.lvls.forEach(function(n){return a.deleteCache(r,n)})}},{key:"invalidate",value:function(r){var a=r.id(),n=this.keyForId.get(a);this.deleteKeyMappingFor(r);var s=this.doesEleInvalidateKey(r);return s&&this.invalidateKey(n),s||this.getNumberOfIdsForKey(n)===0}}]),t}(),Ks=25,Ha=50,en=-4,ui=3,ap=7.99,np=8,ip=1024,sp=1024,op=1024,up=.2,lp=.8,fp=10,hp=.15,cp=.1,vp=.9,dp=.9,gp=100,pp=1,Rr={dequeue:"dequeue",downscale:"downscale",highQuality:"highQuality"},yp=rt({getKey:null,doesEleInvalidateKey:sn,drawElement:null,getBoundingBox:null,getRotationPoint:null,getRotationOffset:null,isVisible:To,allowEdgeTxrCaching:!0,allowParentTxrCaching:!0}),la=function(e,r){var a=this;a.renderer=e,a.onDequeues=[];var n=yp(r);pe(a,n),a.lookup=new rp(n.getKey,n.doesEleInvalidateKey),a.setupDequeueing()},We=la.prototype;We.reasons=Rr;We.getTextureQueue=function(t){var e=this;return e.eleImgCaches=e.eleImgCaches||{},e.eleImgCaches[t]=e.eleImgCaches[t]||[]};We.getRetiredTextureQueue=function(t){var e=this,r=e.eleImgCaches.retired=e.eleImgCaches.retired||{},a=r[t]=r[t]||[];return a};We.getElementQueue=function(){var t=this,e=t.eleCacheQueue=t.eleCacheQueue||new Sa(function(r,a){return a.reqs-r.reqs});return e};We.getElementKeyToQueue=function(){var t=this,e=t.eleKeyToCacheQueue=t.eleKeyToCacheQueue||{};return e};We.getElement=function(t,e,r,a,n){var s=this,i=this.renderer,o=i.cy.zoom(),u=this.lookup;if(!e||e.w===0||e.h===0||isNaN(e.w)||isNaN(e.h)||!t.visible()||t.removed()||!s.allowEdgeTxrCaching&&t.isEdge()||!s.allowParentTxrCaching&&t.isParent())return null;if(a==null&&(a=Math.ceil(xi(o*r))),a=ap||a>ui)return null;var l=Math.pow(2,a),f=e.h*l,h=e.w*l,d=i.eleTextBiggerThanMin(t,l);if(!this.isVisible(t,d))return null;var c=u.get(t,a);if(c&&c.invalidated&&(c.invalidated=!1,c.texture.invalidatedWidth-=c.width),c)return c;var v;if(f<=Ks?v=Ks:f<=Ha?v=Ha:v=Math.ceil(f/Ha)*Ha,f>op||h>sp)return null;var g=s.getTextureQueue(v),p=g[g.length-2],y=function(){return s.recycleTexture(v,h)||s.addTexture(v,h)};p||(p=g[g.length-1]),p||(p=y()),p.width-p.usedWidtha;L--)x=s.getElement(t,e,r,L,Rr.downscale);D()}else return s.queueElement(t,S.level-1),S;else{var A;if(!m&&!T&&!C)for(var N=a-1;N>=en;N--){var O=u.get(t,N);if(O){A=O;break}}if(b(A))return s.queueElement(t,a),A;p.context.translate(p.usedWidth,0),p.context.scale(l,l),this.drawElement(p.context,t,e,d,!1),p.context.scale(1/l,1/l),p.context.translate(-p.usedWidth,0)}return c={x:p.usedWidth,texture:p,level:a,scale:l,width:h,height:f,scaledLabelShown:d},p.usedWidth+=Math.ceil(h+np),p.eleCaches.push(c),u.set(t,a,c),s.checkTextureFullness(p),c};We.invalidateElements=function(t){for(var e=0;e=up*t.width&&this.retireTexture(t)};We.checkTextureFullness=function(t){var e=this,r=e.getTextureQueue(t.height);t.usedWidth/t.width>lp&&t.fullnessChecks>=fp?rr(r,t):t.fullnessChecks++};We.retireTexture=function(t){var e=this,r=t.height,a=e.getTextureQueue(r),n=this.lookup;rr(a,t),t.retired=!0;for(var s=t.eleCaches,i=0;i=e)return i.retired=!1,i.usedWidth=0,i.invalidatedWidth=0,i.fullnessChecks=0,wi(i.eleCaches),i.context.setTransform(1,0,0,1,0,0),i.context.clearRect(0,0,i.width,i.height),rr(n,i),a.push(i),i}};We.queueElement=function(t,e){var r=this,a=r.getElementQueue(),n=r.getElementKeyToQueue(),s=this.getKey(t),i=n[s];if(i)i.level=Math.max(i.level,e),i.eles.merge(t),i.reqs++,a.updateItem(i);else{var o={eles:t.spawn().merge(t),level:e,reqs:1,key:s};a.push(o),n[s]=o}};We.dequeue=function(t){for(var e=this,r=e.getElementQueue(),a=e.getElementKeyToQueue(),n=[],s=e.lookup,i=0;i0;i++){var o=r.pop(),u=o.key,l=o.eles[0],f=s.hasCache(l,o.level);if(a[u]=null,f)continue;n.push(o);var h=e.getBoundingBox(l);e.getElement(l,h,t,o.level,Rr.dequeue)}return n};We.removeFromQueue=function(t){var e=this,r=e.getElementQueue(),a=e.getElementKeyToQueue(),n=this.getKey(t),s=a[n];s!=null&&(s.eles.length===1?(s.reqs=bi,r.updateItem(s),r.pop(),a[n]=null):s.eles.unmerge(t))};We.onDequeue=function(t){this.onDequeues.push(t)};We.offDequeue=function(t){rr(this.onDequeues,t)};We.setupDequeueing=Iu.setupDequeueing({deqRedrawThreshold:gp,deqCost:hp,deqAvgCost:cp,deqNoDrawCost:vp,deqFastCost:dp,deq:function(e,r,a){return e.dequeue(r,a)},onDeqd:function(e,r){for(var a=0;a=bp||r>dn)return null}a.validateLayersElesOrdering(r,t);var u=a.layersByLevel,l=Math.pow(2,r),f=u[r]=u[r]||[],h,d=a.levelIsComplete(r,t),c,v=function(){var D=function(I){if(a.validateLayersElesOrdering(I,t),a.levelIsComplete(I,t))return c=u[I],!0},L=function(I){if(!c)for(var R=r+I;ha<=R&&R<=dn&&!D(R);R+=I);};L(1),L(-1);for(var A=f.length-1;A>=0;A--){var N=f[A];N.invalid&&rr(f,N)}};if(!d)v();else return f;var g=function(){if(!h){h=gt();for(var D=0;DQs||N>Qs)return null;var O=A*N;if(O>Lp)return null;var I=a.makeLayer(h,r);if(L!=null){var R=f.indexOf(L)+1;f.splice(R,0,I)}else(D.insert===void 0||D.insert)&&f.unshift(I);return I};if(a.skipping&&!o)return null;for(var y=null,b=t.length/mp,m=!o,T=0;T=b||!No(y.bb,C.boundingBox()))&&(y=p({insert:!0,after:y}),!y))return null;c||m?a.queueLayer(y,C):a.drawEleInLayer(y,C,r,e),y.eles.push(C),E[r]=y}return c||(m?null:f)};at.getEleLevelForLayerLevel=function(t,e){return t};at.drawEleInLayer=function(t,e,r,a){var n=this,s=this.renderer,i=t.context,o=e.boundingBox();o.w===0||o.h===0||!e.visible()||(r=n.getEleLevelForLayerLevel(r,a),s.setImgSmoothing(i,!1),s.drawCachedElement(i,e,null,null,r,Ap),s.setImgSmoothing(i,!0))};at.levelIsComplete=function(t,e){var r=this,a=r.layersByLevel[t];if(!a||a.length===0)return!1;for(var n=0,s=0;s0||i.invalid)return!1;n+=i.eles.length}return n===e.length};at.validateLayersElesOrdering=function(t,e){var r=this.layersByLevel[t];if(r)for(var a=0;a0){e=!0;break}}return e};at.invalidateElements=function(t){var e=this;t.length!==0&&(e.lastInvalidationTime=_t(),!(t.length===0||!e.haveLayers())&&e.updateElementsInLayers(t,function(a,n,s){e.invalidateLayer(a)}))};at.invalidateLayer=function(t){if(this.lastInvalidationTime=_t(),!t.invalid){var e=t.level,r=t.eles,a=this.layersByLevel[e];rr(a,t),t.elesQueue=[],t.invalid=!0,t.replacement&&(t.replacement.invalid=!0);for(var n=0;n3&&arguments[3]!==void 0?arguments[3]:!0,n=arguments.length>4&&arguments[4]!==void 0?arguments[4]:!0,s=arguments.length>5&&arguments[5]!==void 0?arguments[5]:!0,i=this,o=e._private.rscratch;if(!(s&&!e.visible())&&!(o.badLine||o.allpts==null||isNaN(o.allpts[0]))){var u;r&&(u=r,t.translate(-u.x1,-u.y1));var l=s?e.pstyle("opacity").value:1,f=s?e.pstyle("line-opacity").value:1,h=e.pstyle("curve-style").value,d=e.pstyle("line-style").value,c=e.pstyle("width").pfValue,v=e.pstyle("line-cap").value,g=e.pstyle("line-outline-width").value,p=e.pstyle("line-outline-color").value,y=l*f,b=l*f,m=function(){var I=arguments.length>0&&arguments[0]!==void 0?arguments[0]:y;h==="straight-triangle"?(i.eleStrokeStyle(t,e,I),i.drawEdgeTrianglePath(e,t,o.allpts)):(t.lineWidth=c,t.lineCap=v,i.eleStrokeStyle(t,e,I),i.drawEdgePath(e,t,o.allpts,d),t.lineCap="butt")},T=function(){var I=arguments.length>0&&arguments[0]!==void 0?arguments[0]:y;if(t.lineWidth=c+g,t.lineCap=v,g>0)i.colorStrokeStyle(t,p[0],p[1],p[2],I);else{t.lineCap="butt";return}h==="straight-triangle"?i.drawEdgeTrianglePath(e,t,o.allpts):(i.drawEdgePath(e,t,o.allpts,d),t.lineCap="butt")},C=function(){n&&i.drawEdgeOverlay(t,e)},S=function(){n&&i.drawEdgeUnderlay(t,e)},E=function(){var I=arguments.length>0&&arguments[0]!==void 0?arguments[0]:b;i.drawArrowheads(t,e,I)},w=function(){i.drawElementText(t,e,null,a)};t.lineJoin="round";var x=e.pstyle("ghost").value==="yes";if(x){var D=e.pstyle("ghost-offset-x").pfValue,L=e.pstyle("ghost-offset-y").pfValue,A=e.pstyle("ghost-opacity").value,N=y*A;t.translate(D,L),m(N),E(N),t.translate(-D,-L)}else T();S(),m(),E(),C(),w(),r&&t.translate(u.x1,u.y1)}};var Pu=function(e){if(!["overlay","underlay"].includes(e))throw new Error("Invalid state");return function(r,a){if(a.visible()){var n=a.pstyle("".concat(e,"-opacity")).value;if(n!==0){var s=this,i=s.usePaths(),o=a._private.rscratch,u=a.pstyle("".concat(e,"-padding")).pfValue,l=2*u,f=a.pstyle("".concat(e,"-color")).value;r.lineWidth=l,o.edgeType==="self"&&!i?r.lineCap="butt":r.lineCap="round",s.colorStrokeStyle(r,f[0],f[1],f[2],n),s.drawEdgePath(a,r,o.allpts,"solid")}}}};Wt.drawEdgeOverlay=Pu("overlay");Wt.drawEdgeUnderlay=Pu("underlay");Wt.drawEdgePath=function(t,e,r,a){var n=t._private.rscratch,s=e,i,o=!1,u=this.usePaths(),l=t.pstyle("line-dash-pattern").pfValue,f=t.pstyle("line-dash-offset").pfValue;if(u){var h=r.join("$"),d=n.pathCacheKey&&n.pathCacheKey===h;d?(i=e=n.pathCache,o=!0):(i=e=new Path2D,n.pathCacheKey=h,n.pathCache=i)}if(s.setLineDash)switch(a){case"dotted":s.setLineDash([1,1]);break;case"dashed":s.setLineDash(l),s.lineDashOffset=f;break;case"solid":s.setLineDash([]);break}if(!o&&!n.badLine)switch(e.beginPath&&e.beginPath(),e.moveTo(r[0],r[1]),n.edgeType){case"bezier":case"self":case"compound":case"multibezier":for(var c=2;c+35&&arguments[5]!==void 0?arguments[5]:!0,i=this;if(a==null){if(s&&!i.eleTextBiggerThanMin(e))return}else if(a===!1)return;if(e.isNode()){var o=e.pstyle("label");if(!o||!o.value)return;var u=i.getLabelJustification(e);t.textAlign=u,t.textBaseline="bottom"}else{var l=e.element()._private.rscratch.badLine,f=e.pstyle("label"),h=e.pstyle("source-label"),d=e.pstyle("target-label");if(l||(!f||!f.value)&&(!h||!h.value)&&(!d||!d.value))return;t.textAlign="center",t.textBaseline="bottom"}var c=!r,v;r&&(v=r,t.translate(-v.x1,-v.y1)),n==null?(i.drawText(t,e,null,c,s),e.isEdge()&&(i.drawText(t,e,"source",c,s),i.drawText(t,e,"target",c,s))):i.drawText(t,e,n,c,s),r&&t.translate(v.x1,v.y1)};Cr.getFontCache=function(t){var e;this.fontCaches=this.fontCaches||[];for(var r=0;r2&&arguments[2]!==void 0?arguments[2]:!0,a=e.pstyle("font-style").strValue,n=e.pstyle("font-size").pfValue+"px",s=e.pstyle("font-family").strValue,i=e.pstyle("font-weight").strValue,o=r?e.effectiveOpacity()*e.pstyle("text-opacity").value:1,u=e.pstyle("text-outline-opacity").value*o,l=e.pstyle("color").value,f=e.pstyle("text-outline-color").value;t.font=a+" "+i+" "+n+" "+s,t.lineJoin="round",this.colorFillStyle(t,l[0],l[1],l[2],o),this.colorStrokeStyle(t,f[0],f[1],f[2],u)};function qn(t,e,r,a,n){var s=arguments.length>5&&arguments[5]!==void 0?arguments[5]:5,i=arguments.length>6?arguments[6]:void 0;t.beginPath(),t.moveTo(e+s,r),t.lineTo(e+a-s,r),t.quadraticCurveTo(e+a,r,e+a,r+s),t.lineTo(e+a,r+n-s),t.quadraticCurveTo(e+a,r+n,e+a-s,r+n),t.lineTo(e+s,r+n),t.quadraticCurveTo(e,r+n,e,r+n-s),t.lineTo(e,r+s),t.quadraticCurveTo(e,r,e+s,r),t.closePath(),i?t.stroke():t.fill()}Cr.getTextAngle=function(t,e){var r,a=t._private,n=a.rscratch,s=e?e+"-":"",i=t.pstyle(s+"text-rotation"),o=At(n,"labelAngle",e);return i.strValue==="autorotate"?r=t.isEdge()?o:0:i.strValue==="none"?r=0:r=i.pfValue,r};Cr.drawText=function(t,e,r){var a=arguments.length>3&&arguments[3]!==void 0?arguments[3]:!0,n=arguments.length>4&&arguments[4]!==void 0?arguments[4]:!0,s=e._private,i=s.rscratch,o=n?e.effectiveOpacity():1;if(!(n&&(o===0||e.pstyle("text-opacity").value===0))){r==="main"&&(r=null);var u=At(i,"labelX",r),l=At(i,"labelY",r),f,h,d=this.getLabelText(e,r);if(d!=null&&d!==""&&!isNaN(u)&&!isNaN(l)){this.setupTextStyle(t,e,n);var c=r?r+"-":"",v=At(i,"labelWidth",r),g=At(i,"labelHeight",r),p=e.pstyle(c+"text-margin-x").pfValue,y=e.pstyle(c+"text-margin-y").pfValue,b=e.isEdge(),m=e.pstyle("text-halign").value,T=e.pstyle("text-valign").value;b&&(m="center",T="center"),u+=p,l+=y;var C;switch(a?C=this.getTextAngle(e,r):C=0,C!==0&&(f=u,h=l,t.translate(f,h),t.rotate(C),u=0,l=0),T){case"top":break;case"center":l+=g/2;break;case"bottom":l+=g;break}var S=e.pstyle("text-background-opacity").value,E=e.pstyle("text-border-opacity").value,w=e.pstyle("text-border-width").pfValue,x=e.pstyle("text-background-padding").pfValue,D=e.pstyle("text-background-shape").strValue,L=D.indexOf("round")===0,A=2;if(S>0||w>0&&E>0){var N=u-x;switch(m){case"left":N-=v;break;case"center":N-=v/2;break}var O=l-g-x,I=v+2*x,R=g+2*x;if(S>0){var P=t.fillStyle,k=e.pstyle("text-background-color").value;t.fillStyle="rgba("+k[0]+","+k[1]+","+k[2]+","+S*o+")",L?qn(t,N,O,I,R,A):t.fillRect(N,O,I,R),t.fillStyle=P}if(w>0&&E>0){var B=t.strokeStyle,z=t.lineWidth,F=e.pstyle("text-border-color").value,G=e.pstyle("text-border-style").value;if(t.strokeStyle="rgba("+F[0]+","+F[1]+","+F[2]+","+E*o+")",t.lineWidth=w,t.setLineDash)switch(G){case"dotted":t.setLineDash([1,1]);break;case"dashed":t.setLineDash([4,2]);break;case"double":t.lineWidth=w/4,t.setLineDash([]);break;case"solid":t.setLineDash([]);break}if(L?qn(t,N,O,I,R,A,"stroke"):t.strokeRect(N,O,I,R),G==="double"){var H=w/2;L?qn(t,N+H,O+H,I-H*2,R-H*2,A,"stroke"):t.strokeRect(N+H,O+H,I-H*2,R-H*2)}t.setLineDash&&t.setLineDash([]),t.lineWidth=z,t.strokeStyle=B}}var _=2*e.pstyle("text-outline-width").pfValue;if(_>0&&(t.lineWidth=_),e.pstyle("text-wrap").value==="wrap"){var W=At(i,"labelWrapCachedLines",r),K=At(i,"labelLineHeight",r),j=v/2,q=this.getLabelJustification(e);switch(q==="auto"||(m==="left"?q==="left"?u+=-v:q==="center"&&(u+=-j):m==="center"?q==="left"?u+=-j:q==="right"&&(u+=j):m==="right"&&(q==="center"?u+=j:q==="right"&&(u+=v))),T){case"top":l-=(W.length-1)*K;break;case"center":case"bottom":l-=(W.length-1)*K;break}for(var V=0;V0&&t.strokeText(W[V],u,l),t.fillText(W[V],u,l),l+=K}else _>0&&t.strokeText(d,u,l),t.fillText(d,u,l);C!==0&&(t.rotate(-C),t.translate(-f,-h))}}};var Qr={};Qr.drawNode=function(t,e,r){var a=arguments.length>3&&arguments[3]!==void 0?arguments[3]:!0,n=arguments.length>4&&arguments[4]!==void 0?arguments[4]:!0,s=arguments.length>5&&arguments[5]!==void 0?arguments[5]:!0,i=this,o,u,l=e._private,f=l.rscratch,h=e.position();if(!(!ne(h.x)||!ne(h.y))&&!(s&&!e.visible())){var d=s?e.effectiveOpacity():1,c=i.usePaths(),v,g=!1,p=e.padding();o=e.width()+2*p,u=e.height()+2*p;var y;r&&(y=r,t.translate(-y.x1,-y.y1));for(var b=e.pstyle("background-image"),m=b.value,T=new Array(m.length),C=new Array(m.length),S=0,E=0;E0&&arguments[0]!==void 0?arguments[0]:N;i.eleFillStyle(t,e,U)},V=function(){var U=arguments.length>0&&arguments[0]!==void 0?arguments[0]:F;i.colorStrokeStyle(t,O[0],O[1],O[2],U)},X=function(){var U=arguments.length>0&&arguments[0]!==void 0?arguments[0]:W;i.colorStrokeStyle(t,H[0],H[1],H[2],U)},Z=function(U,Y,ie,J){var se=i.nodePathCache=i.nodePathCache||[],ge=xo(ie==="polygon"?ie+","+J.join(","):ie,""+Y,""+U,""+j),Ee=se[ge],he,me=!1;return Ee!=null?(he=Ee,me=!0,f.pathCache=he):(he=new Path2D,se[ge]=f.pathCache=he),{path:he,cacheHit:me}},re=e.pstyle("shape").strValue,ce=e.pstyle("shape-polygon-points").pfValue;if(c){t.translate(h.x,h.y);var te=Z(o,u,re,ce);v=te.path,g=te.cacheHit}var ae=function(){if(!g){var U=h;c&&(U={x:0,y:0}),i.nodeShapes[i.getNodeShape(e)].draw(v||t,U.x,U.y,o,u,j,f)}c?t.fill(v):t.fill()},fe=function(){for(var U=arguments.length>0&&arguments[0]!==void 0?arguments[0]:d,Y=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0,ie=l.backgrounding,J=0,se=0;se0&&arguments[0]!==void 0?arguments[0]:!1,Y=arguments.length>1&&arguments[1]!==void 0?arguments[1]:d;i.hasPie(e)&&(i.drawPie(t,e,Y),U&&(c||i.nodeShapes[i.getNodeShape(e)].draw(t,h.x,h.y,o,u,j,f)))},oe=function(){var U=arguments.length>0&&arguments[0]!==void 0?arguments[0]:d,Y=(L>0?L:-L)*U,ie=L>0?0:255;L!==0&&(i.colorFillStyle(t,ie,ie,ie,Y),c?t.fill(v):t.fill())},de=function(){if(A>0){if(t.lineWidth=A,t.lineCap=P,t.lineJoin=R,t.setLineDash)switch(I){case"dotted":t.setLineDash([1,1]);break;case"dashed":t.setLineDash(B),t.lineDashOffset=z;break;case"solid":case"double":t.setLineDash([]);break}if(k!=="center"){if(t.save(),t.lineWidth*=2,k==="inside")c?t.clip(v):t.clip();else{var U=new Path2D;U.rect(-o/2-A,-u/2-A,o+2*A,u+2*A),U.addPath(v),t.clip(U,"evenodd")}c?t.stroke(v):t.stroke(),t.restore()}else c?t.stroke(v):t.stroke();if(I==="double"){t.lineWidth=A/3;var Y=t.globalCompositeOperation;t.globalCompositeOperation="destination-out",c?t.stroke(v):t.stroke(),t.globalCompositeOperation=Y}t.setLineDash&&t.setLineDash([])}},Me=function(){if(G>0){if(t.lineWidth=G,t.lineCap="butt",t.setLineDash)switch(_){case"dotted":t.setLineDash([1,1]);break;case"dashed":t.setLineDash([4,2]);break;case"solid":case"double":t.setLineDash([]);break}var U=h;c&&(U={x:0,y:0});var Y=i.getNodeShape(e),ie=A;k==="inside"&&(ie=0),k==="outside"&&(ie*=2);var J=(o+ie+(G+K))/o,se=(u+ie+(G+K))/u,ge=o*J,Ee=u*se,he=i.nodeShapes[Y].points,me;if(c){var be=Z(ge,Ee,Y,he);me=be.path}if(Y==="ellipse")i.drawEllipsePath(me||t,U.x,U.y,ge,Ee);else if(["round-diamond","round-heptagon","round-hexagon","round-octagon","round-pentagon","round-polygon","round-triangle","round-tag"].includes(Y)){var ye=0,Pe=0,ze=0;Y==="round-diamond"?ye=(ie+K+G)*1.4:Y==="round-heptagon"?(ye=(ie+K+G)*1.075,ze=-(ie/2+K+G)/35):Y==="round-hexagon"?ye=(ie+K+G)*1.12:Y==="round-pentagon"?(ye=(ie+K+G)*1.13,ze=-(ie/2+K+G)/15):Y==="round-tag"?(ye=(ie+K+G)*1.12,Pe=(ie/2+G+K)*.07):Y==="round-triangle"&&(ye=(ie+K+G)*(Math.PI/2),ze=-(ie+K/2+G)/Math.PI),ye!==0&&(J=(o+ye)/o,ge=o*J,["round-hexagon","round-tag"].includes(Y)||(se=(u+ye)/u,Ee=u*se)),j=j==="auto"?Ro(ge,Ee):j;for(var pt=ge/2,yt=Ee/2,Ye=j+(ie+G+K)/2,Ke=new Array(he.length/2),Ze=new Array(he.length/2),ft=0;ft0){if(n=n||a.position(),s==null||i==null){var c=a.padding();s=a.width()+2*c,i=a.height()+2*c}o.colorFillStyle(r,f[0],f[1],f[2],l),o.nodeShapes[h].draw(r,n.x,n.y,s+u*2,i+u*2,d),r.fill()}}}};Qr.drawNodeOverlay=Bu("overlay");Qr.drawNodeUnderlay=Bu("underlay");Qr.hasPie=function(t){return t=t[0],t._private.hasPie};Qr.drawPie=function(t,e,r,a){e=e[0],a=a||e.position();var n=e.cy().style(),s=e.pstyle("pie-size"),i=a.x,o=a.y,u=e.width(),l=e.height(),f=Math.min(u,l)/2,h=0,d=this.usePaths();d&&(i=0,o=0),s.units==="%"?f=f*s.pfValue:s.pfValue!==void 0&&(f=s.pfValue/2);for(var c=1;c<=n.pieBackgroundN;c++){var v=e.pstyle("pie-"+c+"-background-size").value,g=e.pstyle("pie-"+c+"-background-color").value,p=e.pstyle("pie-"+c+"-background-opacity").value*r,y=v/100;y+h>1&&(y=1-h);var b=1.5*Math.PI+2*Math.PI*h,m=2*Math.PI*y,T=b+m;v===0||h>=1||h+y>1||(t.beginPath(),t.moveTo(i,o),t.arc(i,o,f,b,T),t.closePath(),this.colorFillStyle(t,g[0],g[1],g[2],p),t.fill(),h+=y)}};var bt={},zp=100;bt.getPixelRatio=function(){var t=this.data.contexts[0];if(this.forcedPixelRatio!=null)return this.forcedPixelRatio;var e=this.cy.window(),r=t.backingStorePixelRatio||t.webkitBackingStorePixelRatio||t.mozBackingStorePixelRatio||t.msBackingStorePixelRatio||t.oBackingStorePixelRatio||t.backingStorePixelRatio||1;return(e.devicePixelRatio||1)/r};bt.paintCache=function(t){for(var e=this.paintCaches=this.paintCaches||[],r=!0,a,n=0;ni.minMbLowQualFrames&&(i.motionBlurPxRatio=i.mbPxRBlurry)),i.clearingMotionBlur&&(i.motionBlurPxRatio=1),i.textureDrawLastFrame&&!h&&(f[i.NODE]=!0,f[i.SELECT_BOX]=!0);var b=u.style(),m=u.zoom(),T=n!==void 0?n:m,C=u.pan(),S={x:C.x,y:C.y},E={zoom:m,pan:{x:C.x,y:C.y}},w=i.prevViewport,x=w===void 0||E.zoom!==w.zoom||E.pan.x!==w.pan.x||E.pan.y!==w.pan.y;!x&&!(g&&!v)&&(i.motionBlurPxRatio=1),s&&(S=s),T*=o,S.x*=o,S.y*=o;var D=i.getCachedZSortedEles();function L(te,ae,fe,le,oe){var de=te.globalCompositeOperation;te.globalCompositeOperation="destination-out",i.colorFillStyle(te,255,255,255,i.motionBlurTransparency),te.fillRect(ae,fe,le,oe),te.globalCompositeOperation=de}function A(te,ae){var fe,le,oe,de;!i.clearingMotionBlur&&(te===l.bufferContexts[i.MOTIONBLUR_BUFFER_NODE]||te===l.bufferContexts[i.MOTIONBLUR_BUFFER_DRAG])?(fe={x:C.x*c,y:C.y*c},le=m*c,oe=i.canvasWidth*c,de=i.canvasHeight*c):(fe=S,le=T,oe=i.canvasWidth,de=i.canvasHeight),te.setTransform(1,0,0,1,0,0),ae==="motionBlur"?L(te,0,0,oe,de):!e&&(ae===void 0||ae)&&te.clearRect(0,0,oe,de),r||(te.translate(fe.x,fe.y),te.scale(le,le)),s&&te.translate(s.x,s.y),n&&te.scale(n,n)}if(h||(i.textureDrawLastFrame=!1),h){if(i.textureDrawLastFrame=!0,!i.textureCache){i.textureCache={},i.textureCache.bb=u.mutableElements().boundingBox(),i.textureCache.texture=i.data.bufferCanvases[i.TEXTURE_BUFFER];var N=i.data.bufferContexts[i.TEXTURE_BUFFER];N.setTransform(1,0,0,1,0,0),N.clearRect(0,0,i.canvasWidth*i.textureMult,i.canvasHeight*i.textureMult),i.render({forcedContext:N,drawOnlyNodeLayer:!0,forcedPxRatio:o*i.textureMult});var E=i.textureCache.viewport={zoom:u.zoom(),pan:u.pan(),width:i.canvasWidth,height:i.canvasHeight};E.mpan={x:(0-E.pan.x)/E.zoom,y:(0-E.pan.y)/E.zoom}}f[i.DRAG]=!1,f[i.NODE]=!1;var O=l.contexts[i.NODE],I=i.textureCache.texture,E=i.textureCache.viewport;O.setTransform(1,0,0,1,0,0),d?L(O,0,0,E.width,E.height):O.clearRect(0,0,E.width,E.height);var R=b.core("outside-texture-bg-color").value,P=b.core("outside-texture-bg-opacity").value;i.colorFillStyle(O,R[0],R[1],R[2],P),O.fillRect(0,0,E.width,E.height);var m=u.zoom();A(O,!1),O.clearRect(E.mpan.x,E.mpan.y,E.width/E.zoom/o,E.height/E.zoom/o),O.drawImage(I,E.mpan.x,E.mpan.y,E.width/E.zoom/o,E.height/E.zoom/o)}else i.textureOnViewport&&!e&&(i.textureCache=null);var k=u.extent(),B=i.pinching||i.hoverData.dragging||i.swipePanning||i.data.wheelZooming||i.hoverData.draggingEles||i.cy.animated(),z=i.hideEdgesOnViewport&&B,F=[];if(F[i.NODE]=!f[i.NODE]&&d&&!i.clearedForMotionBlur[i.NODE]||i.clearingMotionBlur,F[i.NODE]&&(i.clearedForMotionBlur[i.NODE]=!0),F[i.DRAG]=!f[i.DRAG]&&d&&!i.clearedForMotionBlur[i.DRAG]||i.clearingMotionBlur,F[i.DRAG]&&(i.clearedForMotionBlur[i.DRAG]=!0),f[i.NODE]||r||a||F[i.NODE]){var G=d&&!F[i.NODE]&&c!==1,O=e||(G?i.data.bufferContexts[i.MOTIONBLUR_BUFFER_NODE]:l.contexts[i.NODE]),H=d&&!G?"motionBlur":void 0;A(O,H),z?i.drawCachedNodes(O,D.nondrag,o,k):i.drawLayeredElements(O,D.nondrag,o,k),i.debug&&i.drawDebugPoints(O,D.nondrag),!r&&!d&&(f[i.NODE]=!1)}if(!a&&(f[i.DRAG]||r||F[i.DRAG])){var G=d&&!F[i.DRAG]&&c!==1,O=e||(G?i.data.bufferContexts[i.MOTIONBLUR_BUFFER_DRAG]:l.contexts[i.DRAG]);A(O,d&&!G?"motionBlur":void 0),z?i.drawCachedNodes(O,D.drag,o,k):i.drawCachedElements(O,D.drag,o,k),i.debug&&i.drawDebugPoints(O,D.drag),!r&&!d&&(f[i.DRAG]=!1)}if(i.showFps||!a&&f[i.SELECT_BOX]&&!r){var O=e||l.contexts[i.SELECT_BOX];if(A(O),i.selection[4]==1&&(i.hoverData.selecting||i.touchData.selecting)){var m=i.cy.zoom(),_=b.core("selection-box-border-width").value/m;O.lineWidth=_,O.fillStyle="rgba("+b.core("selection-box-color").value[0]+","+b.core("selection-box-color").value[1]+","+b.core("selection-box-color").value[2]+","+b.core("selection-box-opacity").value+")",O.fillRect(i.selection[0],i.selection[1],i.selection[2]-i.selection[0],i.selection[3]-i.selection[1]),_>0&&(O.strokeStyle="rgba("+b.core("selection-box-border-color").value[0]+","+b.core("selection-box-border-color").value[1]+","+b.core("selection-box-border-color").value[2]+","+b.core("selection-box-opacity").value+")",O.strokeRect(i.selection[0],i.selection[1],i.selection[2]-i.selection[0],i.selection[3]-i.selection[1]))}if(l.bgActivePosistion&&!i.hoverData.selecting){var m=i.cy.zoom(),W=l.bgActivePosistion;O.fillStyle="rgba("+b.core("active-bg-color").value[0]+","+b.core("active-bg-color").value[1]+","+b.core("active-bg-color").value[2]+","+b.core("active-bg-opacity").value+")",O.beginPath(),O.arc(W.x,W.y,b.core("active-bg-size").pfValue/m,0,2*Math.PI),O.fill()}var K=i.lastRedrawTime;if(i.showFps&&K){K=Math.round(K);var j=Math.round(1e3/K);O.setTransform(1,0,0,1,0,0),O.fillStyle="rgba(255, 0, 0, 0.75)",O.strokeStyle="rgba(255, 0, 0, 0.75)",O.lineWidth=1,O.fillText("1 frame = "+K+" ms = "+j+" fps",0,20);var q=60;O.strokeRect(0,30,250,20),O.fillRect(0,30,250*Math.min(j/q,1),20)}r||(f[i.SELECT_BOX]=!1)}if(d&&c!==1){var V=l.contexts[i.NODE],X=i.data.bufferCanvases[i.MOTIONBLUR_BUFFER_NODE],Z=l.contexts[i.DRAG],re=i.data.bufferCanvases[i.MOTIONBLUR_BUFFER_DRAG],ce=function(ae,fe,le){ae.setTransform(1,0,0,1,0,0),le||!y?ae.clearRect(0,0,i.canvasWidth,i.canvasHeight):L(ae,0,0,i.canvasWidth,i.canvasHeight);var oe=c;ae.drawImage(fe,0,0,i.canvasWidth*oe,i.canvasHeight*oe,0,0,i.canvasWidth,i.canvasHeight)};(f[i.NODE]||F[i.NODE])&&(ce(V,X,F[i.NODE]),f[i.NODE]=!1),(f[i.DRAG]||F[i.DRAG])&&(ce(Z,re,F[i.DRAG]),f[i.DRAG]=!1)}i.prevViewport=E,i.clearingMotionBlur&&(i.clearingMotionBlur=!1,i.motionBlurCleared=!0,i.motionBlur=!0),d&&(i.motionBlurTimeout=setTimeout(function(){i.motionBlurTimeout=null,i.clearedForMotionBlur[i.NODE]=!1,i.clearedForMotionBlur[i.DRAG]=!1,i.motionBlur=!1,i.clearingMotionBlur=!h,i.mbFrames=0,f[i.NODE]=!0,f[i.DRAG]=!0,i.redraw()},zp)),e||u.emit("render")};var ur={};ur.drawPolygonPath=function(t,e,r,a,n,s){var i=a/2,o=n/2;t.beginPath&&t.beginPath(),t.moveTo(e+i*s[0],r+o*s[1]);for(var u=1;u0&&i>0){c.clearRect(0,0,s,i),c.globalCompositeOperation="source-over";var v=this.getCachedZSortedEles();if(t.full)c.translate(-a.x1*l,-a.y1*l),c.scale(l,l),this.drawElements(c,v),c.scale(1/l,1/l),c.translate(a.x1*l,a.y1*l);else{var g=e.pan(),p={x:g.x*l,y:g.y*l};l*=e.zoom(),c.translate(p.x,p.y),c.scale(l,l),this.drawElements(c,v),c.scale(1/l,1/l),c.translate(-p.x,-p.y)}t.bg&&(c.globalCompositeOperation="destination-over",c.fillStyle=t.bg,c.rect(0,0,s,i),c.fill())}return d};function Vp(t,e){for(var r=atob(t),a=new ArrayBuffer(r.length),n=new Uint8Array(a),s=0;s"u"?"undefined":qe(OffscreenCanvas))!=="undefined")r=new OffscreenCanvas(t,e);else{var a=this.cy.window(),n=a.document;r=n.createElement("canvas"),r.width=t,r.height=e}return r};[ku,Vt,Wt,Gi,Cr,Qr,bt,ur,Ma,zu].forEach(function(t){pe(Se,t)});var Yp=[{name:"null",impl:wu},{name:"base",impl:Mu},{name:"canvas",impl:Up}],_p=[{type:"layout",extensions:Zg},{type:"renderer",extensions:Yp}],Uu={},$u={};function Yu(t,e,r){var a=r,n=function(w){Ne("Can not register `"+e+"` for `"+t+"` since `"+w+"` already exists in the prototype and can not be overridden")};if(t==="core"){if(xa.prototype[e])return n(e);xa.prototype[e]=r}else if(t==="collection"){if(tt.prototype[e])return n(e);tt.prototype[e]=r}else if(t==="layout"){for(var s=function(w){this.options=w,r.call(this,w),De(this._private)||(this._private={}),this._private.cy=w.cy,this._private.listeners=[],this.createEmitter()},i=s.prototype=Object.create(r.prototype),o=[],u=0;uv&&(this.rect.x-=(this.labelWidth-v)/2,this.setWidth(this.labelWidth)),this.labelHeight>g&&(this.labelPos=="center"?this.rect.y-=(this.labelHeight-g)/2:this.labelPos=="top"&&(this.rect.y-=this.labelHeight-g),this.setHeight(this.labelHeight))}}},h.prototype.getInclusionTreeDepth=function(){if(this.inclusionTreeDepth==i.MAX_VALUE)throw"assert failed";return this.inclusionTreeDepth},h.prototype.transform=function(c){var v=this.rect.x;v>u.WORLD_BOUNDARY?v=u.WORLD_BOUNDARY:v<-u.WORLD_BOUNDARY&&(v=-u.WORLD_BOUNDARY);var g=this.rect.y;g>u.WORLD_BOUNDARY?g=u.WORLD_BOUNDARY:g<-u.WORLD_BOUNDARY&&(g=-u.WORLD_BOUNDARY);var p=new f(v,g),y=c.inverseTransformPoint(p);this.setLocation(y.x,y.y)},h.prototype.getLeft=function(){return this.rect.x},h.prototype.getRight=function(){return this.rect.x+this.rect.width},h.prototype.getTop=function(){return this.rect.y},h.prototype.getBottom=function(){return this.rect.y+this.rect.height},h.prototype.getParent=function(){return this.owner==null?null:this.owner.getParent()},r.exports=h},function(r,a,n){function s(i,o){i==null&&o==null?(this.x=0,this.y=0):(this.x=i,this.y=o)}s.prototype.getX=function(){return this.x},s.prototype.getY=function(){return this.y},s.prototype.setX=function(i){this.x=i},s.prototype.setY=function(i){this.y=i},s.prototype.getDifference=function(i){return new DimensionD(this.x-i.x,this.y-i.y)},s.prototype.getCopy=function(){return new s(this.x,this.y)},s.prototype.translate=function(i){return this.x+=i.width,this.y+=i.height,this},r.exports=s},function(r,a,n){var s=n(2),i=n(10),o=n(0),u=n(6),l=n(3),f=n(1),h=n(13),d=n(12),c=n(11);function v(p,y,b){s.call(this,b),this.estimatedSize=i.MIN_VALUE,this.margin=o.DEFAULT_GRAPH_MARGIN,this.edges=[],this.nodes=[],this.isConnected=!1,this.parent=p,y!=null&&y instanceof u?this.graphManager=y:y!=null&&y instanceof Layout&&(this.graphManager=y.graphManager)}v.prototype=Object.create(s.prototype);for(var g in s)v[g]=s[g];v.prototype.getNodes=function(){return this.nodes},v.prototype.getEdges=function(){return this.edges},v.prototype.getGraphManager=function(){return this.graphManager},v.prototype.getParent=function(){return this.parent},v.prototype.getLeft=function(){return this.left},v.prototype.getRight=function(){return this.right},v.prototype.getTop=function(){return this.top},v.prototype.getBottom=function(){return this.bottom},v.prototype.isConnected=function(){return this.isConnected},v.prototype.add=function(p,y,b){if(y==null&&b==null){var m=p;if(this.graphManager==null)throw"Graph has no graph mgr!";if(this.getNodes().indexOf(m)>-1)throw"Node already in graph!";return m.owner=this,this.getNodes().push(m),m}else{var T=p;if(!(this.getNodes().indexOf(y)>-1&&this.getNodes().indexOf(b)>-1))throw"Source or target not in graph!";if(!(y.owner==b.owner&&y.owner==this))throw"Both owners must be this graph!";return y.owner!=b.owner?null:(T.source=y,T.target=b,T.isInterGraph=!1,this.getEdges().push(T),y.edges.push(T),b!=y&&b.edges.push(T),T)}},v.prototype.remove=function(p){var y=p;if(p instanceof l){if(y==null)throw"Node is null!";if(!(y.owner!=null&&y.owner==this))throw"Owner graph is invalid!";if(this.graphManager==null)throw"Owner graph manager is invalid!";for(var b=y.edges.slice(),m,T=b.length,C=0;C-1&&w>-1))throw"Source and/or target doesn't know this edge!";m.source.edges.splice(E,1),m.target!=m.source&&m.target.edges.splice(w,1);var S=m.source.owner.getEdges().indexOf(m);if(S==-1)throw"Not in owner's edge list!";m.source.owner.getEdges().splice(S,1)}},v.prototype.updateLeftTop=function(){for(var p=i.MAX_VALUE,y=i.MAX_VALUE,b,m,T,C=this.getNodes(),S=C.length,E=0;Eb&&(p=b),y>m&&(y=m)}return p==i.MAX_VALUE?null:(C[0].getParent().paddingLeft!=null?T=C[0].getParent().paddingLeft:T=this.margin,this.left=y-T,this.top=p-T,new d(this.left,this.top))},v.prototype.updateBounds=function(p){for(var y=i.MAX_VALUE,b=-i.MAX_VALUE,m=i.MAX_VALUE,T=-i.MAX_VALUE,C,S,E,w,x,D=this.nodes,L=D.length,A=0;AC&&(y=C),bE&&(m=E),TC&&(y=C),bE&&(m=E),T=this.nodes.length){var L=0;b.forEach(function(A){A.owner==p&&L++}),L==this.nodes.length&&(this.isConnected=!0)}},r.exports=v},function(r,a,n){var s,i=n(1);function o(u){s=n(5),this.layout=u,this.graphs=[],this.edges=[]}o.prototype.addRoot=function(){var u=this.layout.newGraph(),l=this.layout.newNode(null),f=this.add(u,l);return this.setRootGraph(f),this.rootGraph},o.prototype.add=function(u,l,f,h,d){if(f==null&&h==null&&d==null){if(u==null)throw"Graph is null!";if(l==null)throw"Parent node is null!";if(this.graphs.indexOf(u)>-1)throw"Graph already in this graph mgr!";if(this.graphs.push(u),u.parent!=null)throw"Already has a parent!";if(l.child!=null)throw"Already has a child!";return u.parent=l,l.child=u,u}else{d=f,h=l,f=u;var c=h.getOwner(),v=d.getOwner();if(!(c!=null&&c.getGraphManager()==this))throw"Source not in this graph mgr!";if(!(v!=null&&v.getGraphManager()==this))throw"Target not in this graph mgr!";if(c==v)return f.isInterGraph=!1,c.add(f,h,d);if(f.isInterGraph=!0,f.source=h,f.target=d,this.edges.indexOf(f)>-1)throw"Edge already in inter-graph edge list!";if(this.edges.push(f),!(f.source!=null&&f.target!=null))throw"Edge source and/or target is null!";if(!(f.source.edges.indexOf(f)==-1&&f.target.edges.indexOf(f)==-1))throw"Edge already in source and/or target incidency list!";return f.source.edges.push(f),f.target.edges.push(f),f}},o.prototype.remove=function(u){if(u instanceof s){var l=u;if(l.getGraphManager()!=this)throw"Graph not in this graph mgr";if(!(l==this.rootGraph||l.parent!=null&&l.parent.graphManager==this))throw"Invalid parent node!";var f=[];f=f.concat(l.getEdges());for(var h,d=f.length,c=0;c=u.getRight()?l[0]+=Math.min(u.getX()-o.getX(),o.getRight()-u.getRight()):u.getX()<=o.getX()&&u.getRight()>=o.getRight()&&(l[0]+=Math.min(o.getX()-u.getX(),u.getRight()-o.getRight())),o.getY()<=u.getY()&&o.getBottom()>=u.getBottom()?l[1]+=Math.min(u.getY()-o.getY(),o.getBottom()-u.getBottom()):u.getY()<=o.getY()&&u.getBottom()>=o.getBottom()&&(l[1]+=Math.min(o.getY()-u.getY(),u.getBottom()-o.getBottom()));var d=Math.abs((u.getCenterY()-o.getCenterY())/(u.getCenterX()-o.getCenterX()));u.getCenterY()===o.getCenterY()&&u.getCenterX()===o.getCenterX()&&(d=1);var c=d*l[0],v=l[1]/d;l[0]c)return l[0]=f,l[1]=g,l[2]=d,l[3]=D,!1;if(hd)return l[0]=v,l[1]=h,l[2]=w,l[3]=c,!1;if(fd?(l[0]=y,l[1]=b,O=!0):(l[0]=p,l[1]=g,O=!0):R===k&&(f>d?(l[0]=v,l[1]=g,O=!0):(l[0]=m,l[1]=b,O=!0)),-P===k?d>f?(l[2]=x,l[3]=D,I=!0):(l[2]=w,l[3]=E,I=!0):P===k&&(d>f?(l[2]=S,l[3]=E,I=!0):(l[2]=L,l[3]=D,I=!0)),O&&I)return!1;if(f>d?h>c?(B=this.getCardinalDirection(R,k,4),z=this.getCardinalDirection(P,k,2)):(B=this.getCardinalDirection(-R,k,3),z=this.getCardinalDirection(-P,k,1)):h>c?(B=this.getCardinalDirection(-R,k,1),z=this.getCardinalDirection(-P,k,3)):(B=this.getCardinalDirection(R,k,2),z=this.getCardinalDirection(P,k,4)),!O)switch(B){case 1:G=g,F=f+-C/k,l[0]=F,l[1]=G;break;case 2:F=m,G=h+T*k,l[0]=F,l[1]=G;break;case 3:G=b,F=f+C/k,l[0]=F,l[1]=G;break;case 4:F=y,G=h+-T*k,l[0]=F,l[1]=G;break}if(!I)switch(z){case 1:_=E,H=d+-N/k,l[2]=H,l[3]=_;break;case 2:H=L,_=c+A*k,l[2]=H,l[3]=_;break;case 3:_=D,H=d+N/k,l[2]=H,l[3]=_;break;case 4:H=x,_=c+-A*k,l[2]=H,l[3]=_;break}}return!1},i.getCardinalDirection=function(o,u,l){return o>u?l:1+l%4},i.getIntersection=function(o,u,l,f){if(f==null)return this.getIntersection2(o,u,l);var h=o.x,d=o.y,c=u.x,v=u.y,g=l.x,p=l.y,y=f.x,b=f.y,m=void 0,T=void 0,C=void 0,S=void 0,E=void 0,w=void 0,x=void 0,D=void 0,L=void 0;return C=v-d,E=h-c,x=c*d-h*v,S=b-p,w=g-y,D=y*p-g*b,L=C*w-S*E,L===0?null:(m=(E*D-w*x)/L,T=(S*x-C*D)/L,new s(m,T))},i.angleOfVector=function(o,u,l,f){var h=void 0;return o!==l?(h=Math.atan((f-u)/(l-o)),l0?1:i<0?-1:0},s.floor=function(i){return i<0?Math.ceil(i):Math.floor(i)},s.ceil=function(i){return i<0?Math.floor(i):Math.ceil(i)},r.exports=s},function(r,a,n){function s(){}s.MAX_VALUE=2147483647,s.MIN_VALUE=-2147483648,r.exports=s},function(r,a,n){var s=function(){function h(d,c){for(var v=0;v"u"?"undefined":s(o);return o==null||u!="object"&&u!="function"},r.exports=i},function(r,a,n){function s(g){if(Array.isArray(g)){for(var p=0,y=Array(g.length);p0&&p;){for(C.push(E[0]);C.length>0&&p;){var w=C[0];C.splice(0,1),T.add(w);for(var x=w.getEdges(),m=0;m-1&&E.splice(N,1)}T=new Set,S=new Map}}return g},v.prototype.createDummyNodesForBendpoints=function(g){for(var p=[],y=g.source,b=this.graphManager.calcLowestCommonAncestor(g.source,g.target),m=0;m0){for(var b=this.edgeToDummyNodes.get(y),m=0;m=0&&p.splice(D,1);var L=S.getNeighborsList();L.forEach(function(O){if(y.indexOf(O)<0){var I=b.get(O),R=I-1;R==1&&w.push(O),b.set(O,R)}})}y=y.concat(w),(p.length==1||p.length==2)&&(m=!0,T=p[0])}return T},v.prototype.setGraphManager=function(g){this.graphManager=g},r.exports=v},function(r,a,n){function s(){}s.seed=1,s.x=0,s.nextDouble=function(){return s.x=Math.sin(s.seed++)*1e4,s.x-Math.floor(s.x)},r.exports=s},function(r,a,n){var s=n(4);function i(o,u){this.lworldOrgX=0,this.lworldOrgY=0,this.ldeviceOrgX=0,this.ldeviceOrgY=0,this.lworldExtX=1,this.lworldExtY=1,this.ldeviceExtX=1,this.ldeviceExtY=1}i.prototype.getWorldOrgX=function(){return this.lworldOrgX},i.prototype.setWorldOrgX=function(o){this.lworldOrgX=o},i.prototype.getWorldOrgY=function(){return this.lworldOrgY},i.prototype.setWorldOrgY=function(o){this.lworldOrgY=o},i.prototype.getWorldExtX=function(){return this.lworldExtX},i.prototype.setWorldExtX=function(o){this.lworldExtX=o},i.prototype.getWorldExtY=function(){return this.lworldExtY},i.prototype.setWorldExtY=function(o){this.lworldExtY=o},i.prototype.getDeviceOrgX=function(){return this.ldeviceOrgX},i.prototype.setDeviceOrgX=function(o){this.ldeviceOrgX=o},i.prototype.getDeviceOrgY=function(){return this.ldeviceOrgY},i.prototype.setDeviceOrgY=function(o){this.ldeviceOrgY=o},i.prototype.getDeviceExtX=function(){return this.ldeviceExtX},i.prototype.setDeviceExtX=function(o){this.ldeviceExtX=o},i.prototype.getDeviceExtY=function(){return this.ldeviceExtY},i.prototype.setDeviceExtY=function(o){this.ldeviceExtY=o},i.prototype.transformX=function(o){var u=0,l=this.lworldExtX;return l!=0&&(u=this.ldeviceOrgX+(o-this.lworldOrgX)*this.ldeviceExtX/l),u},i.prototype.transformY=function(o){var u=0,l=this.lworldExtY;return l!=0&&(u=this.ldeviceOrgY+(o-this.lworldOrgY)*this.ldeviceExtY/l),u},i.prototype.inverseTransformX=function(o){var u=0,l=this.ldeviceExtX;return l!=0&&(u=this.lworldOrgX+(o-this.ldeviceOrgX)*this.lworldExtX/l),u},i.prototype.inverseTransformY=function(o){var u=0,l=this.ldeviceExtY;return l!=0&&(u=this.lworldOrgY+(o-this.ldeviceOrgY)*this.lworldExtY/l),u},i.prototype.inverseTransformPoint=function(o){var u=new s(this.inverseTransformX(o.x),this.inverseTransformY(o.y));return u},r.exports=i},function(r,a,n){function s(c){if(Array.isArray(c)){for(var v=0,g=Array(c.length);vo.ADAPTATION_LOWER_NODE_LIMIT&&(this.coolingFactor=Math.max(this.coolingFactor*o.COOLING_ADAPTATION_FACTOR,this.coolingFactor-(c-o.ADAPTATION_LOWER_NODE_LIMIT)/(o.ADAPTATION_UPPER_NODE_LIMIT-o.ADAPTATION_LOWER_NODE_LIMIT)*this.coolingFactor*(1-o.COOLING_ADAPTATION_FACTOR))),this.maxNodeDisplacement=o.MAX_NODE_DISPLACEMENT_INCREMENTAL):(c>o.ADAPTATION_LOWER_NODE_LIMIT?this.coolingFactor=Math.max(o.COOLING_ADAPTATION_FACTOR,1-(c-o.ADAPTATION_LOWER_NODE_LIMIT)/(o.ADAPTATION_UPPER_NODE_LIMIT-o.ADAPTATION_LOWER_NODE_LIMIT)*(1-o.COOLING_ADAPTATION_FACTOR)):this.coolingFactor=1,this.initialCoolingFactor=this.coolingFactor,this.maxNodeDisplacement=o.MAX_NODE_DISPLACEMENT),this.maxIterations=Math.max(this.getAllNodes().length*5,this.maxIterations),this.totalDisplacementThreshold=this.displacementThresholdPerNode*this.getAllNodes().length,this.repulsionRange=this.calcRepulsionRange()},h.prototype.calcSpringForces=function(){for(var c=this.getAllEdges(),v,g=0;g0&&arguments[0]!==void 0?arguments[0]:!0,v=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1,g,p,y,b,m=this.getAllNodes(),T;if(this.useFRGridVariant)for(this.totalIterations%o.GRID_CALCULATION_CHECK_PERIOD==1&&c&&this.updateGrid(),T=new Set,g=0;gC||T>C)&&(c.gravitationForceX=-this.gravityConstant*y,c.gravitationForceY=-this.gravityConstant*b)):(C=v.getEstimatedSize()*this.compoundGravityRangeFactor,(m>C||T>C)&&(c.gravitationForceX=-this.gravityConstant*y*this.compoundGravityConstant,c.gravitationForceY=-this.gravityConstant*b*this.compoundGravityConstant))},h.prototype.isConverged=function(){var c,v=!1;return this.totalIterations>this.maxIterations/3&&(v=Math.abs(this.totalDisplacement-this.oldTotalDisplacement)<2),c=this.totalDisplacement=m.length||C>=m[0].length)){for(var S=0;Sh}}]),l}();r.exports=u},function(r,a,n){var s=function(){function u(l,f){for(var h=0;h2&&arguments[2]!==void 0?arguments[2]:1,d=arguments.length>3&&arguments[3]!==void 0?arguments[3]:-1,c=arguments.length>4&&arguments[4]!==void 0?arguments[4]:-1;i(this,u),this.sequence1=l,this.sequence2=f,this.match_score=h,this.mismatch_penalty=d,this.gap_penalty=c,this.iMax=l.length+1,this.jMax=f.length+1,this.grid=new Array(this.iMax);for(var v=0;v=0;l--){var f=this.listeners[l];f.event===o&&f.callback===u&&this.listeners.splice(l,1)}},i.emit=function(o,u){for(var l=0;lf.coolingFactor*f.maxNodeDisplacement&&(this.displacementX=f.coolingFactor*f.maxNodeDisplacement*o.sign(this.displacementX)),Math.abs(this.displacementY)>f.coolingFactor*f.maxNodeDisplacement&&(this.displacementY=f.coolingFactor*f.maxNodeDisplacement*o.sign(this.displacementY)),this.child==null?this.moveBy(this.displacementX,this.displacementY):this.child.getNodes().length==0?this.moveBy(this.displacementX,this.displacementY):this.propogateDisplacementToChildren(this.displacementX,this.displacementY),f.totalDisplacement+=Math.abs(this.displacementX)+Math.abs(this.displacementY),this.springForceX=0,this.springForceY=0,this.repulsionForceX=0,this.repulsionForceY=0,this.gravitationForceX=0,this.gravitationForceY=0,this.displacementX=0,this.displacementY=0},u.prototype.propogateDisplacementToChildren=function(f,h){for(var d=this.getChild().getNodes(),c,v=0;v0)this.positionNodesRadially(E);else{this.reduceTrees(),this.graphManager.resetAllNodesToApplyGravitation();var w=new Set(this.getAllNodes()),x=this.nodesWithGravity.filter(function(D){return w.has(D)});this.graphManager.setAllNodesToApplyGravitation(x),this.positionNodesRandomly()}}return this.initSpringEmbedder(),this.runSpringEmbedder(),!0},C.prototype.tick=function(){if(this.totalIterations++,this.totalIterations===this.maxIterations&&!this.isTreeGrowing&&!this.isGrowthFinished)if(this.prunedNodesAll.length>0)this.isTreeGrowing=!0;else return!0;if(this.totalIterations%d.CONVERGENCE_CHECK_PERIOD==0&&!this.isTreeGrowing&&!this.isGrowthFinished){if(this.isConverged())if(this.prunedNodesAll.length>0)this.isTreeGrowing=!0;else return!0;this.coolingCycle++,this.layoutQuality==0?this.coolingAdjuster=this.coolingCycle:this.layoutQuality==1&&(this.coolingAdjuster=this.coolingCycle/3),this.coolingFactor=Math.max(this.initialCoolingFactor-Math.pow(this.coolingCycle,Math.log(100*(this.initialCoolingFactor-this.finalTemperature))/Math.log(this.maxCoolingCycle))/100*this.coolingAdjuster,this.finalTemperature),this.animationPeriod=Math.ceil(this.initialAnimationPeriod*Math.sqrt(this.coolingFactor))}if(this.isTreeGrowing){if(this.growTreeIterations%10==0)if(this.prunedNodesAll.length>0){this.graphManager.updateBounds(),this.updateGrid(),this.growTree(this.prunedNodesAll),this.graphManager.resetAllNodesToApplyGravitation();var E=new Set(this.getAllNodes()),w=this.nodesWithGravity.filter(function(L){return E.has(L)});this.graphManager.setAllNodesToApplyGravitation(w),this.graphManager.updateBounds(),this.updateGrid(),this.coolingFactor=d.DEFAULT_COOLING_FACTOR_INCREMENTAL}else this.isTreeGrowing=!1,this.isGrowthFinished=!0;this.growTreeIterations++}if(this.isGrowthFinished){if(this.isConverged())return!0;this.afterGrowthIterations%10==0&&(this.graphManager.updateBounds(),this.updateGrid()),this.coolingFactor=d.DEFAULT_COOLING_FACTOR_INCREMENTAL*((100-this.afterGrowthIterations)/100),this.afterGrowthIterations++}var x=!this.isTreeGrowing&&!this.isGrowthFinished,D=this.growTreeIterations%10==1&&this.isTreeGrowing||this.afterGrowthIterations%10==1&&this.isGrowthFinished;return this.totalDisplacement=0,this.graphManager.updateBounds(),this.calcSpringForces(),this.calcRepulsionForces(x,D),this.calcGravitationalForces(),this.moveNodes(),this.animate(),!1},C.prototype.getPositionsData=function(){for(var E=this.graphManager.getAllNodes(),w={},x=0;x1){var O;for(O=0;OD&&(D=Math.floor(N.y)),A=Math.floor(N.x+h.DEFAULT_COMPONENT_SEPERATION)}this.transform(new g(c.WORLD_CENTER_X-N.x/2,c.WORLD_CENTER_Y-N.y/2))},C.radialLayout=function(E,w,x){var D=Math.max(this.maxDiagonalInTree(E),h.DEFAULT_RADIAL_SEPARATION);C.branchRadialLayout(w,null,0,359,0,D);var L=m.calculateBounds(E),A=new T;A.setDeviceOrgX(L.getMinX()),A.setDeviceOrgY(L.getMinY()),A.setWorldOrgX(x.x),A.setWorldOrgY(x.y);for(var N=0;N1;){var _=H[0];H.splice(0,1);var W=k.indexOf(_);W>=0&&k.splice(W,1),F--,B--}w!=null?G=(k.indexOf(H[0])+1)%F:G=0;for(var K=Math.abs(D-x)/B,j=G;z!=B;j=++j%F){var q=k[j].getOtherEnd(E);if(q!=w){var V=(x+z*K)%360,X=(V+K)%360;C.branchRadialLayout(q,E,V,X,L+A,A),z++}}},C.maxDiagonalInTree=function(E){for(var w=y.MIN_VALUE,x=0;xw&&(w=L)}return w},C.prototype.calcRepulsionRange=function(){return 2*(this.level+1)*this.idealEdgeLength},C.prototype.groupZeroDegreeMembers=function(){var E=this,w={};this.memberGroups={},this.idToDummyNode={};for(var x=[],D=this.graphManager.getAllNodes(),L=0;L"u"&&(w[O]=[]),w[O]=w[O].concat(A)}Object.keys(w).forEach(function(I){if(w[I].length>1){var R="DummyCompound_"+I;E.memberGroups[R]=w[I];var P=w[I][0].getParent(),k=new l(E.graphManager);k.id=R,k.paddingLeft=P.paddingLeft||0,k.paddingRight=P.paddingRight||0,k.paddingBottom=P.paddingBottom||0,k.paddingTop=P.paddingTop||0,E.idToDummyNode[R]=k;var B=E.getGraphManager().add(E.newGraph(),k),z=P.getChild();z.add(k);for(var F=0;F=0;E--){var w=this.compoundOrder[E],x=w.id,D=w.paddingLeft,L=w.paddingTop;this.adjustLocations(this.tiledMemberPack[x],w.rect.x,w.rect.y,D,L)}},C.prototype.repopulateZeroDegreeMembers=function(){var E=this,w=this.tiledZeroDegreePack;Object.keys(w).forEach(function(x){var D=E.idToDummyNode[x],L=D.paddingLeft,A=D.paddingTop;E.adjustLocations(w[x],D.rect.x,D.rect.y,L,A)})},C.prototype.getToBeTiled=function(E){var w=E.id;if(this.toBeTiled[w]!=null)return this.toBeTiled[w];var x=E.getChild();if(x==null)return this.toBeTiled[w]=!1,!1;for(var D=x.getNodes(),L=0;L0)return this.toBeTiled[w]=!1,!1;if(A.getChild()==null){this.toBeTiled[A.id]=!1;continue}if(!this.getToBeTiled(A))return this.toBeTiled[w]=!1,!1}return this.toBeTiled[w]=!0,!0},C.prototype.getNodeDegree=function(E){E.id;for(var w=E.getEdges(),x=0,D=0;DI&&(I=P.rect.height)}x+=I+E.verticalPadding}},C.prototype.tileCompoundMembers=function(E,w){var x=this;this.tiledMemberPack=[],Object.keys(E).forEach(function(D){var L=w[D];x.tiledMemberPack[D]=x.tileNodes(E[D],L.paddingLeft+L.paddingRight),L.rect.width=x.tiledMemberPack[D].width,L.rect.height=x.tiledMemberPack[D].height})},C.prototype.tileNodes=function(E,w){var x=h.TILING_PADDING_VERTICAL,D=h.TILING_PADDING_HORIZONTAL,L={rows:[],rowWidth:[],rowHeight:[],width:0,height:w,verticalPadding:x,horizontalPadding:D};E.sort(function(O,I){return O.rect.width*O.rect.height>I.rect.width*I.rect.height?-1:O.rect.width*O.rect.height0&&(N+=E.horizontalPadding),E.rowWidth[x]=N,E.width0&&(O+=E.verticalPadding);var I=0;O>E.rowHeight[x]&&(I=E.rowHeight[x],E.rowHeight[x]=O,I=E.rowHeight[x]-I),E.height+=I,E.rows[x].push(w)},C.prototype.getShortestRowIndex=function(E){for(var w=-1,x=Number.MAX_VALUE,D=0;Dx&&(w=D,x=E.rowWidth[D]);return w},C.prototype.canAddHorizontal=function(E,w,x){var D=this.getShortestRowIndex(E);if(D<0)return!0;var L=E.rowWidth[D];if(L+E.horizontalPadding+w<=E.width)return!0;var A=0;E.rowHeight[D]0&&(A=x+E.verticalPadding-E.rowHeight[D]);var N;E.width-L>=w+E.horizontalPadding?N=(E.height+A)/(L+w+E.horizontalPadding):N=(E.height+A)/E.width,A=x+E.verticalPadding;var O;return E.widthA&&w!=x){D.splice(-1,1),E.rows[x].push(L),E.rowWidth[w]=E.rowWidth[w]-A,E.rowWidth[x]=E.rowWidth[x]+A,E.width=E.rowWidth[instance.getLongestRowIndex(E)];for(var N=Number.MIN_VALUE,O=0;ON&&(N=D[O].height);w>0&&(N+=E.verticalPadding);var I=E.rowHeight[w]+E.rowHeight[x];E.rowHeight[w]=N,E.rowHeight[x]0)for(var z=L;z<=A;z++)B[0]+=this.grid[z][N-1].length+this.grid[z][N].length-1;if(A0)for(var z=N;z<=O;z++)B[3]+=this.grid[L-1][z].length+this.grid[L][z].length-1;for(var F=y.MAX_VALUE,G,H,_=0;_0){var O;O=T.getGraphManager().add(T.newGraph(),x),this.processChildrenList(O,w,T)}}},g.prototype.stop=function(){return this.stopped=!0,this};var y=function(m){m("layout","cose-bilkent",g)};typeof cytoscape<"u"&&y(cytoscape),a.exports=y}])})})(Xu);var Zp=Xu.exports;const Qp=cl(Zp);var ci=function(){var t=function(T,C,S,E){for(S=S||{},E=T.length;E--;S[T[E]]=C);return S},e=[1,4],r=[1,13],a=[1,12],n=[1,15],s=[1,16],i=[1,20],o=[1,19],u=[6,7,8],l=[1,26],f=[1,24],h=[1,25],d=[6,7,11],c=[1,6,13,15,16,19,22],v=[1,33],g=[1,34],p=[1,6,7,11,13,15,16,19,22],y={trace:function(){},yy:{},symbols_:{error:2,start:3,mindMap:4,spaceLines:5,SPACELINE:6,NL:7,MINDMAP:8,document:9,stop:10,EOF:11,statement:12,SPACELIST:13,node:14,ICON:15,CLASS:16,nodeWithId:17,nodeWithoutId:18,NODE_DSTART:19,NODE_DESCR:20,NODE_DEND:21,NODE_ID:22,$accept:0,$end:1},terminals_:{2:"error",6:"SPACELINE",7:"NL",8:"MINDMAP",11:"EOF",13:"SPACELIST",15:"ICON",16:"CLASS",19:"NODE_DSTART",20:"NODE_DESCR",21:"NODE_DEND",22:"NODE_ID"},productions_:[0,[3,1],[3,2],[5,1],[5,2],[5,2],[4,2],[4,3],[10,1],[10,1],[10,1],[10,2],[10,2],[9,3],[9,2],[12,2],[12,2],[12,2],[12,1],[12,1],[12,1],[12,1],[12,1],[14,1],[14,1],[18,3],[17,1],[17,4]],performAction:function(C,S,E,w,x,D,L){var A=D.length-1;switch(x){case 6:case 7:return w;case 8:w.getLogger().trace("Stop NL ");break;case 9:w.getLogger().trace("Stop EOF ");break;case 11:w.getLogger().trace("Stop NL2 ");break;case 12:w.getLogger().trace("Stop EOF2 ");break;case 15:w.getLogger().info("Node: ",D[A].id),w.addNode(D[A-1].length,D[A].id,D[A].descr,D[A].type);break;case 16:w.getLogger().trace("Icon: ",D[A]),w.decorateNode({icon:D[A]});break;case 17:case 21:w.decorateNode({class:D[A]});break;case 18:w.getLogger().trace("SPACELIST");break;case 19:w.getLogger().trace("Node: ",D[A].id),w.addNode(0,D[A].id,D[A].descr,D[A].type);break;case 20:w.decorateNode({icon:D[A]});break;case 25:w.getLogger().trace("node found ..",D[A-2]),this.$={id:D[A-1],descr:D[A-1],type:w.getType(D[A-2],D[A])};break;case 26:this.$={id:D[A],descr:D[A],type:w.nodeType.DEFAULT};break;case 27:w.getLogger().trace("node found ..",D[A-3]),this.$={id:D[A-3],descr:D[A-1],type:w.getType(D[A-2],D[A])};break}},table:[{3:1,4:2,5:3,6:[1,5],8:e},{1:[3]},{1:[2,1]},{4:6,6:[1,7],7:[1,8],8:e},{6:r,7:[1,10],9:9,12:11,13:a,14:14,15:n,16:s,17:17,18:18,19:i,22:o},t(u,[2,3]),{1:[2,2]},t(u,[2,4]),t(u,[2,5]),{1:[2,6],6:r,12:21,13:a,14:14,15:n,16:s,17:17,18:18,19:i,22:o},{6:r,9:22,12:11,13:a,14:14,15:n,16:s,17:17,18:18,19:i,22:o},{6:l,7:f,10:23,11:h},t(d,[2,22],{17:17,18:18,14:27,15:[1,28],16:[1,29],19:i,22:o}),t(d,[2,18]),t(d,[2,19]),t(d,[2,20]),t(d,[2,21]),t(d,[2,23]),t(d,[2,24]),t(d,[2,26],{19:[1,30]}),{20:[1,31]},{6:l,7:f,10:32,11:h},{1:[2,7],6:r,12:21,13:a,14:14,15:n,16:s,17:17,18:18,19:i,22:o},t(c,[2,14],{7:v,11:g}),t(p,[2,8]),t(p,[2,9]),t(p,[2,10]),t(d,[2,15]),t(d,[2,16]),t(d,[2,17]),{20:[1,35]},{21:[1,36]},t(c,[2,13],{7:v,11:g}),t(p,[2,11]),t(p,[2,12]),{21:[1,37]},t(d,[2,25]),t(d,[2,27])],defaultActions:{2:[2,1],6:[2,2]},parseError:function(C,S){if(S.recoverable)this.trace(C);else{var E=new Error(C);throw E.hash=S,E}},parse:function(C){var S=this,E=[0],w=[],x=[null],D=[],L=this.table,A="",N=0,O=0,I=2,R=1,P=D.slice.call(arguments,1),k=Object.create(this.lexer),B={yy:{}};for(var z in this.yy)Object.prototype.hasOwnProperty.call(this.yy,z)&&(B.yy[z]=this.yy[z]);k.setInput(C,B.yy),B.yy.lexer=k,B.yy.parser=this,typeof k.yylloc>"u"&&(k.yylloc={});var F=k.yylloc;D.push(F);var G=k.options&&k.options.ranges;typeof B.yy.parseError=="function"?this.parseError=B.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function H(){var te;return te=w.pop()||k.lex()||R,typeof te!="number"&&(te instanceof Array&&(w=te,te=w.pop()),te=S.symbols_[te]||te),te}for(var _,W,K,j,q={},V,X,Z,re;;){if(W=E[E.length-1],this.defaultActions[W]?K=this.defaultActions[W]:((_===null||typeof _>"u")&&(_=H()),K=L[W]&&L[W][_]),typeof K>"u"||!K.length||!K[0]){var ce="";re=[];for(V in L[W])this.terminals_[V]&&V>I&&re.push("'"+this.terminals_[V]+"'");k.showPosition?ce="Parse error on line "+(N+1)+`: +`+k.showPosition()+` +Expecting `+re.join(", ")+", got '"+(this.terminals_[_]||_)+"'":ce="Parse error on line "+(N+1)+": Unexpected "+(_==R?"end of input":"'"+(this.terminals_[_]||_)+"'"),this.parseError(ce,{text:k.match,token:this.terminals_[_]||_,line:k.yylineno,loc:F,expected:re})}if(K[0]instanceof Array&&K.length>1)throw new Error("Parse Error: multiple actions possible at state: "+W+", token: "+_);switch(K[0]){case 1:E.push(_),x.push(k.yytext),D.push(k.yylloc),E.push(K[1]),_=null,O=k.yyleng,A=k.yytext,N=k.yylineno,F=k.yylloc;break;case 2:if(X=this.productions_[K[1]][1],q.$=x[x.length-X],q._$={first_line:D[D.length-(X||1)].first_line,last_line:D[D.length-1].last_line,first_column:D[D.length-(X||1)].first_column,last_column:D[D.length-1].last_column},G&&(q._$.range=[D[D.length-(X||1)].range[0],D[D.length-1].range[1]]),j=this.performAction.apply(q,[A,O,N,B.yy,K[1],x,D].concat(P)),typeof j<"u")return j;X&&(E=E.slice(0,-1*X*2),x=x.slice(0,-1*X),D=D.slice(0,-1*X)),E.push(this.productions_[K[1]][0]),x.push(q.$),D.push(q._$),Z=L[E[E.length-2]][E[E.length-1]],E.push(Z);break;case 3:return!0}}return!0}},b=function(){var T={EOF:1,parseError:function(S,E){if(this.yy.parser)this.yy.parser.parseError(S,E);else throw new Error(S)},setInput:function(C,S){return this.yy=S||this.yy||{},this._input=C,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var C=this._input[0];this.yytext+=C,this.yyleng++,this.offset++,this.match+=C,this.matched+=C;var S=C.match(/(?:\r\n?|\n).*/g);return S?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),C},unput:function(C){var S=C.length,E=C.split(/(?:\r\n?|\n)/g);this._input=C+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-S),this.offset-=S;var w=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),E.length-1&&(this.yylineno-=E.length-1);var x=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:E?(E.length===w.length?this.yylloc.first_column:0)+w[w.length-E.length].length-E[0].length:this.yylloc.first_column-S},this.options.ranges&&(this.yylloc.range=[x[0],x[0]+this.yyleng-S]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true). +`+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},less:function(C){this.unput(this.match.slice(C))},pastInput:function(){var C=this.matched.substr(0,this.matched.length-this.match.length);return(C.length>20?"...":"")+C.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var C=this.match;return C.length<20&&(C+=this._input.substr(0,20-C.length)),(C.substr(0,20)+(C.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var C=this.pastInput(),S=new Array(C.length+1).join("-");return C+this.upcomingInput()+` +`+S+"^"},test_match:function(C,S){var E,w,x;if(this.options.backtrack_lexer&&(x={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(x.yylloc.range=this.yylloc.range.slice(0))),w=C[0].match(/(?:\r\n?|\n).*/g),w&&(this.yylineno+=w.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:w?w[w.length-1].length-w[w.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+C[0].length},this.yytext+=C[0],this.match+=C[0],this.matches=C,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(C[0].length),this.matched+=C[0],E=this.performAction.call(this,this.yy,this,S,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),E)return E;if(this._backtrack){for(var D in x)this[D]=x[D];return!1}return!1},next:function(){if(this.done)return this.EOF;this._input||(this.done=!0);var C,S,E,w;this._more||(this.yytext="",this.match="");for(var x=this._currentRules(),D=0;DS[0].length)){if(S=E,w=D,this.options.backtrack_lexer){if(C=this.test_match(E,x[D]),C!==!1)return C;if(this._backtrack){S=!1;continue}else return!1}else if(!this.options.flex)break}return S?(C=this.test_match(S,x[w]),C!==!1?C:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text. +`+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var S=this.next();return S||this.lex()},begin:function(S){this.conditionStack.push(S)},popState:function(){var S=this.conditionStack.length-1;return S>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(S){return S=this.conditionStack.length-1-Math.abs(S||0),S>=0?this.conditionStack[S]:"INITIAL"},pushState:function(S){this.begin(S)},stateStackSize:function(){return this.conditionStack.length},options:{"case-insensitive":!0},performAction:function(S,E,w,x){switch(w){case 0:return S.getLogger().trace("Found comment",E.yytext),6;case 1:return 8;case 2:this.begin("CLASS");break;case 3:return this.popState(),16;case 4:this.popState();break;case 5:S.getLogger().trace("Begin icon"),this.begin("ICON");break;case 6:return S.getLogger().trace("SPACELINE"),6;case 7:return 7;case 8:return 15;case 9:S.getLogger().trace("end icon"),this.popState();break;case 10:return S.getLogger().trace("Exploding node"),this.begin("NODE"),19;case 11:return S.getLogger().trace("Cloud"),this.begin("NODE"),19;case 12:return S.getLogger().trace("Explosion Bang"),this.begin("NODE"),19;case 13:return S.getLogger().trace("Cloud Bang"),this.begin("NODE"),19;case 14:return this.begin("NODE"),19;case 15:return this.begin("NODE"),19;case 16:return this.begin("NODE"),19;case 17:return this.begin("NODE"),19;case 18:return 13;case 19:return 22;case 20:return 11;case 21:this.begin("NSTR2");break;case 22:return"NODE_DESCR";case 23:this.popState();break;case 24:S.getLogger().trace("Starting NSTR"),this.begin("NSTR");break;case 25:return S.getLogger().trace("description:",E.yytext),"NODE_DESCR";case 26:this.popState();break;case 27:return this.popState(),S.getLogger().trace("node end ))"),"NODE_DEND";case 28:return this.popState(),S.getLogger().trace("node end )"),"NODE_DEND";case 29:return this.popState(),S.getLogger().trace("node end ...",E.yytext),"NODE_DEND";case 30:return this.popState(),S.getLogger().trace("node end (("),"NODE_DEND";case 31:return this.popState(),S.getLogger().trace("node end (-"),"NODE_DEND";case 32:return this.popState(),S.getLogger().trace("node end (-"),"NODE_DEND";case 33:return this.popState(),S.getLogger().trace("node end (("),"NODE_DEND";case 34:return this.popState(),S.getLogger().trace("node end (("),"NODE_DEND";case 35:return S.getLogger().trace("Long description:",E.yytext),20;case 36:return S.getLogger().trace("Long description:",E.yytext),20}},rules:[/^(?:\s*%%.*)/i,/^(?:mindmap\b)/i,/^(?::::)/i,/^(?:.+)/i,/^(?:\n)/i,/^(?:::icon\()/i,/^(?:[\s]+[\n])/i,/^(?:[\n]+)/i,/^(?:[^\)]+)/i,/^(?:\))/i,/^(?:-\))/i,/^(?:\(-)/i,/^(?:\)\))/i,/^(?:\))/i,/^(?:\(\()/i,/^(?:\{\{)/i,/^(?:\()/i,/^(?:\[)/i,/^(?:[\s]+)/i,/^(?:[^\(\[\n\)\{\}]+)/i,/^(?:$)/i,/^(?:["][`])/i,/^(?:[^`"]+)/i,/^(?:[`]["])/i,/^(?:["])/i,/^(?:[^"]+)/i,/^(?:["])/i,/^(?:[\)]\))/i,/^(?:[\)])/i,/^(?:[\]])/i,/^(?:\}\})/i,/^(?:\(-)/i,/^(?:-\))/i,/^(?:\(\()/i,/^(?:\()/i,/^(?:[^\)\]\(\}]+)/i,/^(?:.+(?!\(\())/i],conditions:{CLASS:{rules:[3,4],inclusive:!1},ICON:{rules:[8,9],inclusive:!1},NSTR2:{rules:[22,23],inclusive:!1},NSTR:{rules:[25,26],inclusive:!1},NODE:{rules:[21,24,27,28,29,30,31,32,33,34,35,36],inclusive:!1},INITIAL:{rules:[0,1,2,5,6,7,10,11,12,13,14,15,16,17,18,19,20],inclusive:!0}}};return T}();y.lexer=b;function m(){this.yy={}}return m.prototype=y,y.Parser=m,new m}();ci.parser=ci;const Jp=ci;let Nt=[],qu=0,zi={};const jp=()=>{Nt=[],qu=0,zi={}},ey=function(t){for(let e=Nt.length-1;e>=0;e--)if(Nt[e].levelNt.length>0?Nt[0]:null,ry=(t,e,r,a)=>{var n,s;xr.info("addNode",t,e,r,a);const i=vi();let o=((n=i.mindmap)==null?void 0:n.padding)??tn.mindmap.padding;switch(a){case He.ROUNDED_RECT:case He.RECT:case He.HEXAGON:o*=2}const u={id:qu++,nodeId:rn(e,i),level:t,descr:rn(r,i),type:a,children:[],width:((s=i.mindmap)==null?void 0:s.maxNodeWidth)??tn.mindmap.maxNodeWidth,padding:o},l=ey(t);if(l)l.children.push(u),Nt.push(u);else if(Nt.length===0)Nt.push(u);else throw new Error('There can be only one root. No parent could be found for ("'+u.descr+'")')},He={DEFAULT:0,NO_BORDER:0,ROUNDED_RECT:1,RECT:2,CIRCLE:3,CLOUD:4,BANG:5,HEXAGON:6},ay=(t,e)=>{switch(xr.debug("In get type",t,e),t){case"[":return He.RECT;case"(":return e===")"?He.ROUNDED_RECT:He.CLOUD;case"((":return He.CIRCLE;case")":return He.CLOUD;case"))":return He.BANG;case"{{":return He.HEXAGON;default:return He.DEFAULT}},ny=(t,e)=>{zi[t]=e},iy=t=>{if(!t)return;const e=vi(),r=Nt[Nt.length-1];t.icon&&(r.icon=rn(t.icon,e)),t.class&&(r.class=rn(t.class,e))},sy=t=>{switch(t){case He.DEFAULT:return"no-border";case He.RECT:return"rect";case He.ROUNDED_RECT:return"rounded-rect";case He.CIRCLE:return"circle";case He.CLOUD:return"cloud";case He.BANG:return"bang";case He.HEXAGON:return"hexgon";default:return"no-border"}},oy=()=>xr,uy=t=>zi[t],ly={clear:jp,addNode:ry,getMindmap:ty,nodeType:He,getType:ay,setElementForId:ny,decorateNode:iy,type2Str:sy,getLogger:oy,getElementById:uy},fy=ly,hy=12,cy=function(t,e,r,a){e.append("path").attr("id","node-"+r.id).attr("class","node-bkg node-"+t.type2Str(r.type)).attr("d",`M0 ${r.height-5} v${-r.height+2*5} q0,-5 5,-5 h${r.width-2*5} q5,0 5,5 v${r.height-5} H0 Z`),e.append("line").attr("class","node-line-"+a).attr("x1",0).attr("y1",r.height).attr("x2",r.width).attr("y2",r.height)},vy=function(t,e,r){e.append("rect").attr("id","node-"+r.id).attr("class","node-bkg node-"+t.type2Str(r.type)).attr("height",r.height).attr("width",r.width)},dy=function(t,e,r){const a=r.width,n=r.height,s=.15*a,i=.25*a,o=.35*a,u=.2*a;e.append("path").attr("id","node-"+r.id).attr("class","node-bkg node-"+t.type2Str(r.type)).attr("d",`M0 0 a${s},${s} 0 0,1 ${a*.25},${-1*a*.1} + a${o},${o} 1 0,1 ${a*.4},${-1*a*.1} + a${i},${i} 1 0,1 ${a*.35},${1*a*.2} + + a${s},${s} 1 0,1 ${a*.15},${1*n*.35} + a${u},${u} 1 0,1 ${-1*a*.15},${1*n*.65} + + a${i},${s} 1 0,1 ${-1*a*.25},${a*.15} + a${o},${o} 1 0,1 ${-1*a*.5},0 + a${s},${s} 1 0,1 ${-1*a*.25},${-1*a*.15} + + a${s},${s} 1 0,1 ${-1*a*.1},${-1*n*.35} + a${u},${u} 1 0,1 ${a*.1},${-1*n*.65} + + H0 V0 Z`)},gy=function(t,e,r){const a=r.width,n=r.height,s=.15*a;e.append("path").attr("id","node-"+r.id).attr("class","node-bkg node-"+t.type2Str(r.type)).attr("d",`M0 0 a${s},${s} 1 0,0 ${a*.25},${-1*n*.1} + a${s},${s} 1 0,0 ${a*.25},0 + a${s},${s} 1 0,0 ${a*.25},0 + a${s},${s} 1 0,0 ${a*.25},${1*n*.1} + + a${s},${s} 1 0,0 ${a*.15},${1*n*.33} + a${s*.8},${s*.8} 1 0,0 0,${1*n*.34} + a${s},${s} 1 0,0 ${-1*a*.15},${1*n*.33} + + a${s},${s} 1 0,0 ${-1*a*.25},${n*.15} + a${s},${s} 1 0,0 ${-1*a*.25},0 + a${s},${s} 1 0,0 ${-1*a*.25},0 + a${s},${s} 1 0,0 ${-1*a*.25},${-1*n*.15} + + a${s},${s} 1 0,0 ${-1*a*.1},${-1*n*.33} + a${s*.8},${s*.8} 1 0,0 0,${-1*n*.34} + a${s},${s} 1 0,0 ${a*.1},${-1*n*.33} + + H0 V0 Z`)},py=function(t,e,r){e.append("circle").attr("id","node-"+r.id).attr("class","node-bkg node-"+t.type2Str(r.type)).attr("r",r.width/2)};function yy(t,e,r,a,n){return t.insert("polygon",":first-child").attr("points",a.map(function(s){return s.x+","+s.y}).join(" ")).attr("transform","translate("+(n.width-e)/2+", "+r+")")}const my=function(t,e,r){const a=r.height,s=a/4,i=r.width-r.padding+2*s,o=[{x:s,y:0},{x:i-s,y:0},{x:i,y:-a/2},{x:i-s,y:-a},{x:s,y:-a},{x:0,y:-a/2}];yy(e,i,a,o,r)},by=function(t,e,r){e.append("rect").attr("id","node-"+r.id).attr("class","node-bkg node-"+t.type2Str(r.type)).attr("height",r.height).attr("rx",r.padding).attr("ry",r.padding).attr("width",r.width)},Ey=function(t,e,r,a,n){const s=n.htmlLabels,i=a%(hy-1),o=e.append("g");r.section=i;let u="section-"+i;i<0&&(u+=" section-root"),o.attr("class",(r.class?r.class+" ":"")+"mindmap-node "+u);const l=o.append("g"),f=o.append("g"),h=r.descr.replace(/()/g,` +`);vl(f,h,{useHtmlLabels:s,width:r.width,classes:"mindmap-node-label"}),s||f.attr("dy","1em").attr("alignment-baseline","middle").attr("dominant-baseline","middle").attr("text-anchor","middle");const d=f.node().getBBox(),[c]=hl(n.fontSize);if(r.height=d.height+c*1.1*.5+r.padding,r.width=d.width+2*r.padding,r.icon)if(r.type===t.nodeType.CIRCLE)r.height+=50,r.width+=50,o.append("foreignObject").attr("height","50px").attr("width",r.width).attr("style","text-align: center;").append("div").attr("class","icon-container").append("i").attr("class","node-icon-"+i+" "+r.icon),f.attr("transform","translate("+r.width/2+", "+(r.height/2-1.5*r.padding)+")");else{r.width+=50;const v=r.height;r.height=Math.max(v,60);const g=Math.abs(r.height-v);o.append("foreignObject").attr("width","60px").attr("height",r.height).attr("style","text-align: center;margin-top:"+g/2+"px;").append("div").attr("class","icon-container").append("i").attr("class","node-icon-"+i+" "+r.icon),f.attr("transform","translate("+(25+r.width/2)+", "+(g/2+r.padding/2)+")")}else if(s){const v=(r.width-d.width)/2,g=(r.height-d.height)/2;f.attr("transform","translate("+v+", "+g+")")}else{const v=r.width/2,g=r.padding/2;f.attr("transform","translate("+v+", "+g+")")}switch(r.type){case t.nodeType.DEFAULT:cy(t,l,r,i);break;case t.nodeType.ROUNDED_RECT:by(t,l,r);break;case t.nodeType.RECT:vy(t,l,r);break;case t.nodeType.CIRCLE:l.attr("transform","translate("+r.width/2+", "+ +r.height/2+")"),py(t,l,r);break;case t.nodeType.CLOUD:dy(t,l,r);break;case t.nodeType.BANG:gy(t,l,r);break;case t.nodeType.HEXAGON:my(t,l,r);break}return t.setElementForId(r.id,o),r.height},wy=function(t,e){const r=t.getElementById(e.id),a=e.x||0,n=e.y||0;r.attr("transform","translate("+a+","+n+")")};sr.use(Qp);function Wu(t,e,r,a,n){Ey(t,e,r,a,n),r.children&&r.children.forEach((s,i)=>{Wu(t,e,s,a<0?i:a,n)})}function xy(t,e){e.edges().map((r,a)=>{const n=r.data();if(r[0]._private.bodyBounds){const s=r[0]._private.rscratch;xr.trace("Edge: ",a,n),t.insert("path").attr("d",`M ${s.startX},${s.startY} L ${s.midX},${s.midY} L${s.endX},${s.endY} `).attr("class","edge section-edge-"+n.section+" edge-depth-"+n.depth)}})}function Ku(t,e,r,a){e.add({group:"nodes",data:{id:t.id.toString(),labelText:t.descr,height:t.height,width:t.width,level:a,nodeId:t.id,padding:t.padding,type:t.type},position:{x:t.x,y:t.y}}),t.children&&t.children.forEach(n=>{Ku(n,e,r,a+1),e.add({group:"edges",data:{id:`${t.id}_${n.id}`,source:t.id,target:n.id,depth:a,section:n.section}})})}function Ty(t,e){return new Promise(r=>{const a=ol("body").append("div").attr("id","cy").attr("style","display:none"),n=sr({container:document.getElementById("cy"),style:[{selector:"edge",style:{"curve-style":"bezier"}}]});a.remove(),Ku(t,n,e,0),n.nodes().forEach(function(s){s.layoutDimensions=()=>{const i=s.data();return{w:i.width,h:i.height}}}),n.layout({name:"cose-bilkent",quality:"proof",styleEnabled:!1,animate:!1}).run(),n.ready(s=>{xr.info("Ready",s),r(n)})})}function Cy(t,e){e.nodes().map((r,a)=>{const n=r.data();n.x=r.position().x,n.y=r.position().y,wy(t,n);const s=t.getElementById(n.nodeId);xr.info("Id:",a,"Position: (",r.position().x,", ",r.position().y,")",n),s.attr("transform",`translate(${r.position().x-n.width/2}, ${r.position().y-n.height/2})`),s.attr("attr",`apa-${a})`)})}const Dy=async(t,e,r,a)=>{var n,s;xr.debug(`Rendering mindmap diagram +`+t);const i=a.db,o=i.getMindmap();if(!o)return;const u=vi();u.htmlLabels=!1;const l=il(e),f=l.append("g");f.attr("class","mindmap-edges");const h=l.append("g");h.attr("class","mindmap-nodes"),Wu(i,h,o,-1,u);const d=await Ty(o,u);xy(f,d),Cy(i,d),sl(void 0,l,((n=u.mindmap)==null?void 0:n.padding)??tn.mindmap.padding,((s=u.mindmap)==null?void 0:s.useMaxWidth)??tn.mindmap.useMaxWidth)},Sy={draw:Dy},Ly=t=>{let e="";for(let r=0;r` + .edge { + stroke-width: 3; + } + ${Ly(t)} + .section-root rect, .section-root path, .section-root circle, .section-root polygon { + fill: ${t.git0}; + } + .section-root text { + fill: ${t.gitBranchLabel0}; + } + .icon-container { + height:100%; + display: flex; + justify-content: center; + align-items: center; + } + .edge { + fill: none; + } + .mindmap-node-label { + dy: 1em; + alignment-baseline: middle; + text-anchor: middle; + dominant-baseline: middle; + text-align: center; + } +`,Oy=Ay,Ry={db:fy,renderer:Sy,parser:Jp,styles:Oy};export{Ry as diagram}; diff --git a/assets/ordinal-Cboi1Yqb.js b/assets/ordinal-Cboi1Yqb.js new file mode 100644 index 00000000..de7dd9ea --- /dev/null +++ b/assets/ordinal-Cboi1Yqb.js @@ -0,0 +1 @@ +import{i as a}from"./init-Gi6I4Gst.js";class o extends Map{constructor(n,t=g){if(super(),Object.defineProperties(this,{_intern:{value:new Map},_key:{value:t}}),n!=null)for(const[r,s]of n)this.set(r,s)}get(n){return super.get(c(this,n))}has(n){return super.has(c(this,n))}set(n,t){return super.set(l(this,n),t)}delete(n){return super.delete(p(this,n))}}function c({_intern:e,_key:n},t){const r=n(t);return e.has(r)?e.get(r):t}function l({_intern:e,_key:n},t){const r=n(t);return e.has(r)?e.get(r):(e.set(r,t),t)}function p({_intern:e,_key:n},t){const r=n(t);return e.has(r)&&(t=e.get(r),e.delete(r)),t}function g(e){return e!==null&&typeof e=="object"?e.valueOf():e}const f=Symbol("implicit");function h(){var e=new o,n=[],t=[],r=f;function s(u){let i=e.get(u);if(i===void 0){if(r!==f)return r;e.set(u,i=n.push(u)-1)}return t[i%t.length]}return s.domain=function(u){if(!arguments.length)return n.slice();n=[],e=new o;for(const i of u)e.has(i)||e.set(i,n.push(i)-1);return s},s.range=function(u){return arguments.length?(t=Array.from(u),s):t.slice()},s.unknown=function(u){return arguments.length?(r=u,s):r},s.copy=function(){return h(n,t).unknown(r)},a.apply(s,arguments),s}export{h as o}; diff --git a/assets/path-CbwjOpE9.js b/assets/path-CbwjOpE9.js new file mode 100644 index 00000000..f55758f4 --- /dev/null +++ b/assets/path-CbwjOpE9.js @@ -0,0 +1 @@ +const c=Math.PI,x=2*c,u=1e-6,m=x-u;function E(e){this._+=e[0];for(let t=1,h=e.length;t=0))throw new Error(`invalid digits: ${e}`);if(t>15)return E;const h=10**t;return function(i){this._+=i[0];for(let s=1,n=i.length;su)if(!(Math.abs(o*p-l*_)>u)||!n)this._append`L${this._x1=t},${this._y1=h}`;else{let d=i-$,f=s-r,y=p*p+l*l,T=d*d+f*f,g=Math.sqrt(y),v=Math.sqrt(a),w=n*Math.tan((c-Math.acos((y+a-T)/(2*g*v)))/2),M=w/v,b=w/g;Math.abs(M-1)>u&&this._append`L${t+M*_},${h+M*o}`,this._append`A${n},${n},0,0,${+(o*d>_*f)},${this._x1=t+b*p},${this._y1=h+b*l}`}}arc(t,h,i,s,n,$){if(t=+t,h=+h,i=+i,$=!!$,i<0)throw new Error(`negative radius: ${i}`);let r=i*Math.cos(s),p=i*Math.sin(s),l=t+r,_=h+p,o=1^$,a=$?s-n:n-s;this._x1===null?this._append`M${l},${_}`:(Math.abs(this._x1-l)>u||Math.abs(this._y1-_)>u)&&this._append`L${l},${_}`,i&&(a<0&&(a=a%x+x),a>m?this._append`A${i},${i},0,1,${o},${t-r},${h-p}A${i},${i},0,1,${o},${this._x1=l},${this._y1=_}`:a>u&&this._append`A${i},${i},0,${+(a>=c)},${o},${this._x1=t+i*Math.cos(n)},${this._y1=h+i*Math.sin(n)}`)}rect(t,h,i,s){this._append`M${this._x0=this._x1=+t},${this._y0=this._y1=+h}h${i=+i}v${+s}h${-i}Z`}toString(){return this._}}function P(e){return function(){return e}}function q(e){let t=3;return e.digits=function(h){if(!arguments.length)return t;if(h==null)t=null;else{const i=Math.floor(h);if(!(i>=0))throw new RangeError(`invalid digits: ${h}`);t=i}return e},()=>new L(t)}export{P as c,q as w}; diff --git a/assets/pieDiagram-8a3498a8-DxB0-Bo0.js b/assets/pieDiagram-8a3498a8-DxB0-Bo0.js new file mode 100644 index 00000000..0a5d9174 --- /dev/null +++ b/assets/pieDiagram-8a3498a8-DxB0-Bo0.js @@ -0,0 +1,35 @@ +import{aI as Z,aJ as at,x as lt,y as ot,s as ct,g as ht,b as ut,a as yt,A as ft,d as pt,c as et,l as it,aK as gt,aH as dt,aL as mt,i as _t}from"./mermaid.core-B_tqKmhs.js";import{a as tt}from"./arc-DLmlFMgC.js";import{o as xt}from"./ordinal-Cboi1Yqb.js";import{a as kt}from"./array-BKyUJesY.js";import{c as F}from"./path-CbwjOpE9.js";import"./index-Be9IN4QR.js";import"./init-Gi6I4Gst.js";function vt(e,u){return ue?1:u>=e?0:NaN}function bt(e){return e}function St(){var e=bt,u=vt,$=null,p=F(0),g=F(Z),A=F(0);function y(a){var l,d=(a=kt(a)).length,m,I,T=0,_=new Array(d),v=new Array(d),c=+p.apply(this,arguments),E=Math.min(Z,Math.max(-Z,g.apply(this,arguments)-c)),O,w=Math.min(Math.abs(E)/d,A.apply(this,arguments)),b=w*(E<0?-1:1),t;for(l=0;l0&&(T+=t);for(u!=null?_.sort(function(i,n){return u(v[i],v[n])}):$!=null&&_.sort(function(i,n){return $(a[i],a[n])}),l=0,I=T?(E-d*b)/T:0;l0?t*I:0)+b,v[m]={data:a[m],index:l,value:t,startAngle:c,endAngle:O,padAngle:w};return v}return y.value=function(a){return arguments.length?(e=typeof a=="function"?a:F(+a),y):e},y.sortValues=function(a){return arguments.length?(u=a,$=null,y):u},y.sort=function(a){return arguments.length?($=a,u=null,y):$},y.startAngle=function(a){return arguments.length?(p=typeof a=="function"?a:F(+a),y):p},y.endAngle=function(a){return arguments.length?(g=typeof a=="function"?a:F(+a),y):g},y.padAngle=function(a){return arguments.length?(A=typeof a=="function"?a:F(+a),y):A},y}var q=function(){var e=function(b,t,i,n){for(i=i||{},n=b.length;n--;i[b[n]]=t);return i},u=[1,3],$=[1,4],p=[1,5],g=[1,6],A=[1,10,12,14,16,18,19,20,21,22],y=[2,4],a=[1,5,10,12,14,16,18,19,20,21,22],l=[20,21,22],d=[2,7],m=[1,12],I=[1,13],T=[1,14],_=[1,15],v=[1,16],c=[1,17],E={trace:function(){},yy:{},symbols_:{error:2,start:3,eol:4,PIE:5,document:6,showData:7,line:8,statement:9,txt:10,value:11,title:12,title_value:13,acc_title:14,acc_title_value:15,acc_descr:16,acc_descr_value:17,acc_descr_multiline_value:18,section:19,NEWLINE:20,";":21,EOF:22,$accept:0,$end:1},terminals_:{2:"error",5:"PIE",7:"showData",10:"txt",11:"value",12:"title",13:"title_value",14:"acc_title",15:"acc_title_value",16:"acc_descr",17:"acc_descr_value",18:"acc_descr_multiline_value",19:"section",20:"NEWLINE",21:";",22:"EOF"},productions_:[0,[3,2],[3,2],[3,3],[6,0],[6,2],[8,2],[9,0],[9,2],[9,2],[9,2],[9,2],[9,1],[9,1],[4,1],[4,1],[4,1]],performAction:function(t,i,n,r,o,s,P){var x=s.length-1;switch(o){case 3:r.setShowData(!0);break;case 6:this.$=s[x-1];break;case 8:r.addSection(s[x-1],r.cleanupValue(s[x]));break;case 9:this.$=s[x].trim(),r.setDiagramTitle(this.$);break;case 10:this.$=s[x].trim(),r.setAccTitle(this.$);break;case 11:case 12:this.$=s[x].trim(),r.setAccDescription(this.$);break;case 13:r.addSection(s[x].substr(8)),this.$=s[x].substr(8);break}},table:[{3:1,4:2,5:u,20:$,21:p,22:g},{1:[3]},{3:7,4:2,5:u,20:$,21:p,22:g},e(A,y,{6:8,7:[1,9]}),e(a,[2,14]),e(a,[2,15]),e(a,[2,16]),{1:[2,1]},e(l,d,{8:10,9:11,1:[2,2],10:m,12:I,14:T,16:_,18:v,19:c}),e(A,y,{6:18}),e(A,[2,5]),{4:19,20:$,21:p,22:g},{11:[1,20]},{13:[1,21]},{15:[1,22]},{17:[1,23]},e(l,[2,12]),e(l,[2,13]),e(l,d,{8:10,9:11,1:[2,3],10:m,12:I,14:T,16:_,18:v,19:c}),e(A,[2,6]),e(l,[2,8]),e(l,[2,9]),e(l,[2,10]),e(l,[2,11])],defaultActions:{7:[2,1]},parseError:function(t,i){if(i.recoverable)this.trace(t);else{var n=new Error(t);throw n.hash=i,n}},parse:function(t){var i=this,n=[0],r=[],o=[null],s=[],P=this.table,x="",f=0,V=0,R=2,M=1,B=s.slice.call(arguments,1),h=Object.create(this.lexer),L={yy:{}};for(var Y in this.yy)Object.prototype.hasOwnProperty.call(this.yy,Y)&&(L.yy[Y]=this.yy[Y]);h.setInput(t,L.yy),L.yy.lexer=h,L.yy.parser=this,typeof h.yylloc>"u"&&(h.yylloc={});var H=h.yylloc;s.push(H);var st=h.options&&h.options.ranges;typeof L.yy.parseError=="function"?this.parseError=L.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function rt(){var C;return C=r.pop()||h.lex()||M,typeof C!="number"&&(C instanceof Array&&(r=C,C=r.pop()),C=i.symbols_[C]||C),C}for(var k,N,S,J,z={},j,D,X,W;;){if(N=n[n.length-1],this.defaultActions[N]?S=this.defaultActions[N]:((k===null||typeof k>"u")&&(k=rt()),S=P[N]&&P[N][k]),typeof S>"u"||!S.length||!S[0]){var K="";W=[];for(j in P[N])this.terminals_[j]&&j>R&&W.push("'"+this.terminals_[j]+"'");h.showPosition?K="Parse error on line "+(f+1)+`: +`+h.showPosition()+` +Expecting `+W.join(", ")+", got '"+(this.terminals_[k]||k)+"'":K="Parse error on line "+(f+1)+": Unexpected "+(k==M?"end of input":"'"+(this.terminals_[k]||k)+"'"),this.parseError(K,{text:h.match,token:this.terminals_[k]||k,line:h.yylineno,loc:H,expected:W})}if(S[0]instanceof Array&&S.length>1)throw new Error("Parse Error: multiple actions possible at state: "+N+", token: "+k);switch(S[0]){case 1:n.push(k),o.push(h.yytext),s.push(h.yylloc),n.push(S[1]),k=null,V=h.yyleng,x=h.yytext,f=h.yylineno,H=h.yylloc;break;case 2:if(D=this.productions_[S[1]][1],z.$=o[o.length-D],z._$={first_line:s[s.length-(D||1)].first_line,last_line:s[s.length-1].last_line,first_column:s[s.length-(D||1)].first_column,last_column:s[s.length-1].last_column},st&&(z._$.range=[s[s.length-(D||1)].range[0],s[s.length-1].range[1]]),J=this.performAction.apply(z,[x,V,f,L.yy,S[1],o,s].concat(B)),typeof J<"u")return J;D&&(n=n.slice(0,-1*D*2),o=o.slice(0,-1*D),s=s.slice(0,-1*D)),n.push(this.productions_[S[1]][0]),o.push(z.$),s.push(z._$),X=P[n[n.length-2]][n[n.length-1]],n.push(X);break;case 3:return!0}}return!0}},O=function(){var b={EOF:1,parseError:function(i,n){if(this.yy.parser)this.yy.parser.parseError(i,n);else throw new Error(i)},setInput:function(t,i){return this.yy=i||this.yy||{},this._input=t,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var t=this._input[0];this.yytext+=t,this.yyleng++,this.offset++,this.match+=t,this.matched+=t;var i=t.match(/(?:\r\n?|\n).*/g);return i?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),t},unput:function(t){var i=t.length,n=t.split(/(?:\r\n?|\n)/g);this._input=t+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-i),this.offset-=i;var r=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),n.length-1&&(this.yylineno-=n.length-1);var o=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:n?(n.length===r.length?this.yylloc.first_column:0)+r[r.length-n.length].length-n[0].length:this.yylloc.first_column-i},this.options.ranges&&(this.yylloc.range=[o[0],o[0]+this.yyleng-i]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true). +`+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},less:function(t){this.unput(this.match.slice(t))},pastInput:function(){var t=this.matched.substr(0,this.matched.length-this.match.length);return(t.length>20?"...":"")+t.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var t=this.match;return t.length<20&&(t+=this._input.substr(0,20-t.length)),(t.substr(0,20)+(t.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var t=this.pastInput(),i=new Array(t.length+1).join("-");return t+this.upcomingInput()+` +`+i+"^"},test_match:function(t,i){var n,r,o;if(this.options.backtrack_lexer&&(o={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(o.yylloc.range=this.yylloc.range.slice(0))),r=t[0].match(/(?:\r\n?|\n).*/g),r&&(this.yylineno+=r.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:r?r[r.length-1].length-r[r.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+t[0].length},this.yytext+=t[0],this.match+=t[0],this.matches=t,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(t[0].length),this.matched+=t[0],n=this.performAction.call(this,this.yy,this,i,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),n)return n;if(this._backtrack){for(var s in o)this[s]=o[s];return!1}return!1},next:function(){if(this.done)return this.EOF;this._input||(this.done=!0);var t,i,n,r;this._more||(this.yytext="",this.match="");for(var o=this._currentRules(),s=0;si[0].length)){if(i=n,r=s,this.options.backtrack_lexer){if(t=this.test_match(n,o[s]),t!==!1)return t;if(this._backtrack){i=!1;continue}else return!1}else if(!this.options.flex)break}return i?(t=this.test_match(i,o[r]),t!==!1?t:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text. +`+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var i=this.next();return i||this.lex()},begin:function(i){this.conditionStack.push(i)},popState:function(){var i=this.conditionStack.length-1;return i>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(i){return i=this.conditionStack.length-1-Math.abs(i||0),i>=0?this.conditionStack[i]:"INITIAL"},pushState:function(i){this.begin(i)},stateStackSize:function(){return this.conditionStack.length},options:{"case-insensitive":!0},performAction:function(i,n,r,o){switch(r){case 0:break;case 1:break;case 2:return 20;case 3:break;case 4:break;case 5:return this.begin("title"),12;case 6:return this.popState(),"title_value";case 7:return this.begin("acc_title"),14;case 8:return this.popState(),"acc_title_value";case 9:return this.begin("acc_descr"),16;case 10:return this.popState(),"acc_descr_value";case 11:this.begin("acc_descr_multiline");break;case 12:this.popState();break;case 13:return"acc_descr_multiline_value";case 14:this.begin("string");break;case 15:this.popState();break;case 16:return"txt";case 17:return 5;case 18:return 7;case 19:return"value";case 20:return 22}},rules:[/^(?:%%(?!\{)[^\n]*)/i,/^(?:[^\}]%%[^\n]*)/i,/^(?:[\n\r]+)/i,/^(?:%%[^\n]*)/i,/^(?:[\s]+)/i,/^(?:title\b)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accTitle\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*\{\s*)/i,/^(?:[\}])/i,/^(?:[^\}]*)/i,/^(?:["])/i,/^(?:["])/i,/^(?:[^"]*)/i,/^(?:pie\b)/i,/^(?:showData\b)/i,/^(?::[\s]*[\d]+(?:\.[\d]+)?)/i,/^(?:$)/i],conditions:{acc_descr_multiline:{rules:[12,13],inclusive:!1},acc_descr:{rules:[10],inclusive:!1},acc_title:{rules:[8],inclusive:!1},title:{rules:[6],inclusive:!1},string:{rules:[15,16],inclusive:!1},INITIAL:{rules:[0,1,2,3,4,5,7,9,11,14,17,18,19,20],inclusive:!0}}};return b}();E.lexer=O;function w(){this.yy={}}return w.prototype=E,E.Parser=w,new w}();q.parser=q;const $t=q,nt=at.pie,G={sections:{},showData:!1,config:nt};let U=G.sections,Q=G.showData;const At=structuredClone(nt),Et=()=>structuredClone(At),wt=()=>{U=structuredClone(G.sections),Q=G.showData,ft()},Tt=(e,u)=>{e=pt(e,et()),U[e]===void 0&&(U[e]=u,it.debug(`added new section: ${e}, with value: ${u}`))},It=()=>U,Dt=e=>(e.substring(0,1)===":"&&(e=e.substring(1).trim()),Number(e.trim())),Ct=e=>{Q=e},Ot=()=>Q,Pt={getConfig:Et,clear:wt,setDiagramTitle:lt,getDiagramTitle:ot,setAccTitle:ct,getAccTitle:ht,setAccDescription:ut,getAccDescription:yt,addSection:Tt,getSections:It,cleanupValue:Dt,setShowData:Ct,getShowData:Ot},Vt=e=>` + .pieCircle{ + stroke: ${e.pieStrokeColor}; + stroke-width : ${e.pieStrokeWidth}; + opacity : ${e.pieOpacity}; + } + .pieOuterCircle{ + stroke: ${e.pieOuterStrokeColor}; + stroke-width: ${e.pieOuterStrokeWidth}; + fill: none; + } + .pieTitleText { + text-anchor: middle; + font-size: ${e.pieTitleTextSize}; + fill: ${e.pieTitleTextColor}; + font-family: ${e.fontFamily}; + } + .slice { + font-family: ${e.fontFamily}; + fill: ${e.pieSectionTextColor}; + font-size:${e.pieSectionTextSize}; + // fill: white; + } + .legend text { + fill: ${e.pieLegendTextColor}; + font-family: ${e.fontFamily}; + font-size: ${e.pieLegendTextSize}; + } +`,Lt=Vt,Nt=e=>{const u=Object.entries(e).map(p=>({label:p[0],value:p[1]})).sort((p,g)=>g.value-p.value);return St().value(p=>p.value)(u)},Ft=(e,u,$,p)=>{it.debug(`rendering pie chart +`+e);const g=p.db,A=et(),y=gt(g.getConfig(),A.pie),a=40,l=18,d=4,m=450,I=m,T=dt(u),_=T.append("g"),v=g.getSections();_.attr("transform","translate("+I/2+","+m/2+")");const{themeVariables:c}=A;let[E]=mt(c.pieOuterStrokeWidth);E??(E=2);const O=y.textPosition,w=Math.min(I,m)/2-a,b=tt().innerRadius(0).outerRadius(w),t=tt().innerRadius(w*O).outerRadius(w*O);_.append("circle").attr("cx",0).attr("cy",0).attr("r",w+E/2).attr("class","pieOuterCircle");const i=Nt(v),n=[c.pie1,c.pie2,c.pie3,c.pie4,c.pie5,c.pie6,c.pie7,c.pie8,c.pie9,c.pie10,c.pie11,c.pie12],r=xt(n);_.selectAll("mySlices").data(i).enter().append("path").attr("d",b).attr("fill",f=>r(f.data.label)).attr("class","pieCircle");let o=0;Object.keys(v).forEach(f=>{o+=v[f]}),_.selectAll("mySlices").data(i).enter().append("text").text(f=>(f.data.value/o*100).toFixed(0)+"%").attr("transform",f=>"translate("+t.centroid(f)+")").style("text-anchor","middle").attr("class","slice"),_.append("text").text(g.getDiagramTitle()).attr("x",0).attr("y",-(m-50)/2).attr("class","pieTitleText");const s=_.selectAll(".legend").data(r.domain()).enter().append("g").attr("class","legend").attr("transform",(f,V)=>{const R=l+d,M=R*r.domain().length/2,B=12*l,h=V*R-M;return"translate("+B+","+h+")"});s.append("rect").attr("width",l).attr("height",l).style("fill",r).style("stroke",r),s.data(i).append("text").attr("x",l+d).attr("y",l-d).text(f=>{const{label:V,value:R}=f.data;return g.getShowData()?`${V} [${R}]`:V});const P=Math.max(...s.selectAll("text").nodes().map(f=>f?.getBoundingClientRect().width??0)),x=I+a+l+d+P;T.attr("viewBox",`0 0 ${x} ${m}`),_t(T,m,x,y.useMaxWidth)},Rt={draw:Ft},Yt={parser:$t,db:Pt,renderer:Rt,styles:Lt};export{Yt as diagram}; diff --git a/assets/preview.component-4NcaEiV0.js b/assets/preview.component-4NcaEiV0.js new file mode 100644 index 00000000..6fceef09 --- /dev/null +++ b/assets/preview.component-4NcaEiV0.js @@ -0,0 +1,92 @@ +import{a3 as u,ɵ as w,w as g,x as m,a4 as P,a as s,e as C,b as d,d as c,G as r,y as a,I as l,a5 as h,W as O,V as b,M as k,v as M,a6 as y,Q as v,T,a7 as L}from"./index-Be9IN4QR.js";function A(n,e){if(n&1&&(s(0,"a",5),d(1,"Weiterlesen..."),c()),n&2){const t=r(),i=r();l("href",i.externalUrl,h)("lang",t.attributes.language||"de")}}function F(n,e){if(n&1&&(s(0,"a",6),d(1,"Weiterlesen..."),c()),n&2){const t=r(),i=r();l("lang",t.attributes.language||"de")("routerLink",i.routeToPost)}}function j(n,e){if(n&1&&C(0,"img",8),n&2){const t=r(2);l("src",t.attributes.publishedAt.logo,h)}}function z(n,e){if(n&1&&d(0),n&2){const t=r(2);b(" Original veröffentlicht auf ",t.attributes.publishedAt.name," ")}}function E(n,e){if(n&1&&(s(0,"a",7),g(1,j,1,1,"img",8)(2,z,1,1),c()),n&2){const t=r();l("href",t.attributes.publishedAt.url,h)("lang",t.attributes.language||"de")("title","Original veröffentlicht auf "+t.attributes.publishedAt.name),k("aria-label","Original veröffentlicht auf "+t.attributes.publishedAt.name),a(),m(t.attributes.publishedAt.logo?1:2)}}function I(n,e){if(n&1&&(s(0,"article"),C(1,"img",0),s(2,"div",1)(3,"h3",2),d(4),c()(),s(5,"div",3)(6,"p"),d(7),c()(),s(8,"div",4),g(9,A,2,2,"a",5)(10,F,2,2,"a",6)(11,E,3,5,"a",7),c()()),n&2){const t=e,i=r();a(),l("src",t.attributes.thumbnail.card||t.attributes.thumbnail.header,h),a(3),O(t.attributes.title),a(),l("lang",t.attributes.language||"de"),a(2),b(" ",t.attributes.description," "),a(2),m(i.externalUrl?9:10),a(2),m(t.attributes.publishedAt&&t.attributes.publishedAt.name&&t.attributes.publishedAt.url?11:-1)}}const p=class p{constructor(){this.post=u.required()}get routeToPost(){const e=this.post()?.filename?.match(/\/([^/]+)\/([^/.]+)\.md$/);let t=[];if(e&&e.length===3){const[,i,o]=e;t=["/",i,o]}return t}get externalUrl(){const e=this.post()?.attributes?.publishedAt;return e&&e.linkExternal&&e.url?e.url:void 0}};p.ɵfac=function(t){return new(t||p)},p.ɵcmp=w({type:p,selectors:[["dk-card"]],inputs:{post:[1,"post"]},decls:1,vars:1,consts:[["alt","",1,"card-image",3,"src"],[1,"card-header"],[1,"major"],[1,"card-content",3,"lang"],[1,"card-footer"],["target","_blank",1,"special","read-on",3,"href","lang"],[1,"special","read-on",3,"lang","routerLink"],["target","_blank",1,"published-at-link",3,"href","lang","title"],["alt","",1,"published-at-logo",3,"src"]],template:function(t,i){if(t&1&&g(0,I,12,6,"article"),t&2){let o;m((o=i.post())?0:-1,o)}},dependencies:[P],styles:[`article[_ngcontent-%COMP%] { + display: flex; + flex-direction: column; + justify-content: space-between; + height: 100%; + margin: 0; + padding: 0; +} +article[_ngcontent-%COMP%]:focus-within { + outline: 2px solid #5e7959; + outline-offset: 1px; +} +img.card-image[_ngcontent-%COMP%] { + height: 180px; + object-fit: cover; +} +.card-header[_ngcontent-%COMP%] { + margin: 1.5rem 1.5rem 0; +} +.card-header[_ngcontent-%COMP%] .major[_ngcontent-%COMP%] { + min-height: 100px; +} +.card-content[_ngcontent-%COMP%] { + align-self: flex-start; + margin: 0 1.5rem; +} +.card-footer[_ngcontent-%COMP%] { + margin: 1.5rem 1.5rem 0; + display: flex; + justify-content: space-between; + flex-wrap: nowrap; +} +.card-footer[_ngcontent-%COMP%] .read-on[_ngcontent-%COMP%] { + white-space: nowrap; + margin-right: 10px; +} +.card-footer[_ngcontent-%COMP%] .published-at-link[_ngcontent-%COMP%] { + text-decoration: none; + border: none; + float: right; + width: 150px; +} +.card-footer[_ngcontent-%COMP%] .published-at-link[_ngcontent-%COMP%] > img.published-at-logo[_ngcontent-%COMP%] { + float: right; + max-height: 50px; +} + + +@media screen and (max-width: 980px) { + img.card-image[_ngcontent-%COMP%] { + height: 150px; + } + .read-on[_ngcontent-%COMP%] { + font-size: 0.7em !important; + } +} +@media screen and (max-width: 800px) { + .read-on[_ngcontent-%COMP%] { + font-size: 0.6em !important; + } +} +@media screen and (max-width: 736px) { + img.card-image[_ngcontent-%COMP%] { + height: 120px; + } + .read-on[_ngcontent-%COMP%] { + visibility: hidden; + } + .read-on[_ngcontent-%COMP%]::before { + visibility: visible; + } +}`]});let f=p;const U=(n,e)=>e.slug,$=n=>["/",n];function q(n,e){if(n&1&&C(0,"dk-card",2),n&2){const t=e.$implicit;l("post",t)}}function W(n,e){if(n&1&&v(0,q,1,1,"dk-card",2,U),n&2){const t=r();T(t.reducedPostList)}}function D(n,e){n&1&&d(0," Es wurden keine passenden Einträge gefunden. ")}function R(n,e){if(n&1&&(s(0,"ul",1)(1,"li")(2,"a",3),d(3),c()()()),n&2){const t=r();a(2),l("routerLink",L(2,$,t.content())),a(),b("Alle anzeigen (",t.postsFiltered.length,")")}}const _=class _{constructor(){this.content=u.required(),this.posts=u.required(),this.keyword=u(""),this.search=u(""),this.max=u(),this.postsFiltered=[],this.reducedPostList=[]}updatePosts(){this.postsFiltered=(this.posts()||[]).filter(e=>{const t=this.content();return t?e.filename.includes(`/${t}/`):!0}).filter(e=>e.attributes.published!==!1).filter(e=>{const t=this.keyword();return t?!!e.attributes.keywords?.includes(t):!0}).filter(e=>{const t=this.search().toLowerCase();return t?e.attributes.keywords?.includes(this.search())||e.attributes.title.toLowerCase().includes(t)||e.attributes.description.toLowerCase().includes(t)||e.attributes.author.name.toLowerCase().includes(t)||e.attributes.author.mail.toLowerCase().includes(t):!0}).sort((e,t)=>{const i=+new Date(e.attributes.created),o=+new Date(t.attributes.created);return i-o}).reverse(),this.reducedPostList=this.postsFiltered.slice(0,this.max())}ngOnInit(){this.updatePosts()}ngOnChanges(){this.updatePosts()}};_.ɵfac=function(t){return new(t||_)},_.ɵcmp=w({type:_,selectors:[["dk-preview"]],inputs:{content:[1,"content"],posts:[1,"posts"],keyword:[1,"keyword"],search:[1,"search"],max:[1,"max"]},features:[M],decls:5,vars:2,consts:[[1,"features"],[1,"actions"],[3,"post"],[1,"button",3,"routerLink"]],template:function(t,i){if(t&1&&(s(0,"section",0),g(1,W,2,0)(2,D,1,0),c(),y(3),g(4,R,4,4,"ul",1)),t&2){a(),m(i.reducedPostList.length?1:2);const o=i.max();a(3),m(o&&o"u"&&(E.yylloc={});var ut=E.yylloc;a.push(ut);var Ft=E.options&&E.options.ranges;typeof J.yy.parseError=="function"?this.parseError=J.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function Pt(){var j;return j=o.pop()||E.lex()||Tt,typeof j!="number"&&(j instanceof Array&&(o=j,j=o.pop()),j=r.symbols_[j]||j),j}for(var W,Z,H,xt,tt={},rt,$,_t,lt;;){if(Z=l[l.length-1],this.defaultActions[Z]?H=this.defaultActions[Z]:((W===null||typeof W>"u")&&(W=Pt()),H=et[Z]&&et[Z][W]),typeof H>"u"||!H.length||!H[0]){var ft="";lt=[];for(rt in et[Z])this.terminals_[rt]&&rt>St&<.push("'"+this.terminals_[rt]+"'");E.showPosition?ft="Parse error on line "+(st+1)+`: +`+E.showPosition()+` +Expecting `+lt.join(", ")+", got '"+(this.terminals_[W]||W)+"'":ft="Parse error on line "+(st+1)+": Unexpected "+(W==Tt?"end of input":"'"+(this.terminals_[W]||W)+"'"),this.parseError(ft,{text:E.match,token:this.terminals_[W]||W,line:E.yylineno,loc:ut,expected:lt})}if(H[0]instanceof Array&&H.length>1)throw new Error("Parse Error: multiple actions possible at state: "+Z+", token: "+W);switch(H[0]){case 1:l.push(W),q.push(E.yytext),a.push(E.yylloc),l.push(H[1]),W=null,qt=E.yyleng,u=E.yytext,st=E.yylineno,ut=E.yylloc;break;case 2:if($=this.productions_[H[1]][1],tt.$=q[q.length-$],tt._$={first_line:a[a.length-($||1)].first_line,last_line:a[a.length-1].last_line,first_column:a[a.length-($||1)].first_column,last_column:a[a.length-1].last_column},Ft&&(tt._$.range=[a[a.length-($||1)].range[0],a[a.length-1].range[1]]),xt=this.performAction.apply(tt,[u,qt,st,J.yy,H[1],q,a].concat(kt)),typeof xt<"u")return xt;$&&(l=l.slice(0,-1*$*2),q=q.slice(0,-1*$),a=a.slice(0,-1*$)),l.push(this.productions_[H[1]][0]),q.push(tt.$),a.push(tt._$),_t=et[l[l.length-2]][l[l.length-1]],l.push(_t);break;case 3:return!0}}return!0}},At=function(){var K={EOF:1,parseError:function(r,l){if(this.yy.parser)this.yy.parser.parseError(r,l);else throw new Error(r)},setInput:function(n,r){return this.yy=r||this.yy||{},this._input=n,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var n=this._input[0];this.yytext+=n,this.yyleng++,this.offset++,this.match+=n,this.matched+=n;var r=n.match(/(?:\r\n?|\n).*/g);return r?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),n},unput:function(n){var r=n.length,l=n.split(/(?:\r\n?|\n)/g);this._input=n+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-r),this.offset-=r;var o=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),l.length-1&&(this.yylineno-=l.length-1);var q=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:l?(l.length===o.length?this.yylloc.first_column:0)+o[o.length-l.length].length-l[0].length:this.yylloc.first_column-r},this.options.ranges&&(this.yylloc.range=[q[0],q[0]+this.yyleng-r]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true). +`+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},less:function(n){this.unput(this.match.slice(n))},pastInput:function(){var n=this.matched.substr(0,this.matched.length-this.match.length);return(n.length>20?"...":"")+n.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var n=this.match;return n.length<20&&(n+=this._input.substr(0,20-n.length)),(n.substr(0,20)+(n.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var n=this.pastInput(),r=new Array(n.length+1).join("-");return n+this.upcomingInput()+` +`+r+"^"},test_match:function(n,r){var l,o,q;if(this.options.backtrack_lexer&&(q={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(q.yylloc.range=this.yylloc.range.slice(0))),o=n[0].match(/(?:\r\n?|\n).*/g),o&&(this.yylineno+=o.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:o?o[o.length-1].length-o[o.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+n[0].length},this.yytext+=n[0],this.match+=n[0],this.matches=n,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(n[0].length),this.matched+=n[0],l=this.performAction.call(this,this.yy,this,r,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),l)return l;if(this._backtrack){for(var a in q)this[a]=q[a];return!1}return!1},next:function(){if(this.done)return this.EOF;this._input||(this.done=!0);var n,r,l,o;this._more||(this.yytext="",this.match="");for(var q=this._currentRules(),a=0;ar[0].length)){if(r=l,o=a,this.options.backtrack_lexer){if(n=this.test_match(l,q[a]),n!==!1)return n;if(this._backtrack){r=!1;continue}else return!1}else if(!this.options.flex)break}return r?(n=this.test_match(r,q[o]),n!==!1?n:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text. +`+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var r=this.next();return r||this.lex()},begin:function(r){this.conditionStack.push(r)},popState:function(){var r=this.conditionStack.length-1;return r>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(r){return r=this.conditionStack.length-1-Math.abs(r||0),r>=0?this.conditionStack[r]:"INITIAL"},pushState:function(r){this.begin(r)},stateStackSize:function(){return this.conditionStack.length},options:{"case-insensitive":!0},performAction:function(r,l,o,q){switch(o){case 0:break;case 1:break;case 2:return 32;case 3:break;case 4:return this.begin("title"),13;case 5:return this.popState(),"title_value";case 6:return this.begin("acc_title"),15;case 7:return this.popState(),"acc_title_value";case 8:return this.begin("acc_descr"),17;case 9:return this.popState(),"acc_descr_value";case 10:this.begin("acc_descr_multiline");break;case 11:this.popState();break;case 12:return"acc_descr_multiline_value";case 13:return 25;case 14:return 27;case 15:return 26;case 16:return 28;case 17:return 29;case 18:return 30;case 19:return 31;case 20:this.begin("md_string");break;case 21:return"MD_STR";case 22:this.popState();break;case 23:this.begin("string");break;case 24:this.popState();break;case 25:return"STR";case 26:return this.begin("point_start"),22;case 27:return this.begin("point_x"),23;case 28:this.popState();break;case 29:this.popState(),this.begin("point_y");break;case 30:return this.popState(),24;case 31:return 6;case 32:return 43;case 33:return"COLON";case 34:return 45;case 35:return 44;case 36:return 46;case 37:return 46;case 38:return 47;case 39:return 49;case 40:return 50;case 41:return 48;case 42:return 41;case 43:return 51;case 44:return 42;case 45:return 5;case 46:return 33;case 47:return 40;case 48:return 34}},rules:[/^(?:%%(?!\{)[^\n]*)/i,/^(?:[^\}]%%[^\n]*)/i,/^(?:[\n\r]+)/i,/^(?:%%[^\n]*)/i,/^(?:title\b)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accTitle\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*\{\s*)/i,/^(?:[\}])/i,/^(?:[^\}]*)/i,/^(?: *x-axis *)/i,/^(?: *y-axis *)/i,/^(?: *--+> *)/i,/^(?: *quadrant-1 *)/i,/^(?: *quadrant-2 *)/i,/^(?: *quadrant-3 *)/i,/^(?: *quadrant-4 *)/i,/^(?:["][`])/i,/^(?:[^`"]+)/i,/^(?:[`]["])/i,/^(?:["])/i,/^(?:["])/i,/^(?:[^"]*)/i,/^(?:\s*:\s*\[\s*)/i,/^(?:(1)|(0(.\d+)?))/i,/^(?:\s*\] *)/i,/^(?:\s*,\s*)/i,/^(?:(1)|(0(.\d+)?))/i,/^(?: *quadrantChart *)/i,/^(?:[A-Za-z]+)/i,/^(?::)/i,/^(?:\+)/i,/^(?:,)/i,/^(?:=)/i,/^(?:=)/i,/^(?:\*)/i,/^(?:#)/i,/^(?:[\_])/i,/^(?:\.)/i,/^(?:&)/i,/^(?:-)/i,/^(?:[0-9]+)/i,/^(?:\s)/i,/^(?:;)/i,/^(?:[!"#$%&'*+,-.`?\\_/])/i,/^(?:$)/i],conditions:{point_y:{rules:[30],inclusive:!1},point_x:{rules:[29],inclusive:!1},point_start:{rules:[27,28],inclusive:!1},acc_descr_multiline:{rules:[11,12],inclusive:!1},acc_descr:{rules:[9],inclusive:!1},acc_title:{rules:[7],inclusive:!1},title:{rules:[5],inclusive:!1},md_string:{rules:[21,22],inclusive:!1},string:{rules:[24,25],inclusive:!1},INITIAL:{rules:[0,1,2,3,4,6,8,10,13,14,15,16,17,18,19,20,23,26,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48],inclusive:!0}}};return K}();ht.lexer=At;function ct(){this.yy={}}return ct.prototype=ht,ht.Parser=ct,new ct}();pt.parser=pt;const Rt=pt,R=vt();class Vt{constructor(){this.config=this.getDefaultConfig(),this.themeConfig=this.getDefaultThemeConfig(),this.data=this.getDefaultData()}getDefaultData(){return{titleText:"",quadrant1Text:"",quadrant2Text:"",quadrant3Text:"",quadrant4Text:"",xAxisLeftText:"",xAxisRightText:"",yAxisBottomText:"",yAxisTopText:"",points:[]}}getDefaultConfig(){var s,h,x,f,d,c,g,i,y,p,B,N,V,I,b,M,X,C;return{showXAxis:!0,showYAxis:!0,showTitle:!0,chartHeight:((s=D.quadrantChart)==null?void 0:s.chartWidth)||500,chartWidth:((h=D.quadrantChart)==null?void 0:h.chartHeight)||500,titlePadding:((x=D.quadrantChart)==null?void 0:x.titlePadding)||10,titleFontSize:((f=D.quadrantChart)==null?void 0:f.titleFontSize)||20,quadrantPadding:((d=D.quadrantChart)==null?void 0:d.quadrantPadding)||5,xAxisLabelPadding:((c=D.quadrantChart)==null?void 0:c.xAxisLabelPadding)||5,yAxisLabelPadding:((g=D.quadrantChart)==null?void 0:g.yAxisLabelPadding)||5,xAxisLabelFontSize:((i=D.quadrantChart)==null?void 0:i.xAxisLabelFontSize)||16,yAxisLabelFontSize:((y=D.quadrantChart)==null?void 0:y.yAxisLabelFontSize)||16,quadrantLabelFontSize:((p=D.quadrantChart)==null?void 0:p.quadrantLabelFontSize)||16,quadrantTextTopPadding:((B=D.quadrantChart)==null?void 0:B.quadrantTextTopPadding)||5,pointTextPadding:((N=D.quadrantChart)==null?void 0:N.pointTextPadding)||5,pointLabelFontSize:((V=D.quadrantChart)==null?void 0:V.pointLabelFontSize)||12,pointRadius:((I=D.quadrantChart)==null?void 0:I.pointRadius)||5,xAxisPosition:((b=D.quadrantChart)==null?void 0:b.xAxisPosition)||"top",yAxisPosition:((M=D.quadrantChart)==null?void 0:M.yAxisPosition)||"left",quadrantInternalBorderStrokeWidth:((X=D.quadrantChart)==null?void 0:X.quadrantInternalBorderStrokeWidth)||1,quadrantExternalBorderStrokeWidth:((C=D.quadrantChart)==null?void 0:C.quadrantExternalBorderStrokeWidth)||2}}getDefaultThemeConfig(){return{quadrant1Fill:R.quadrant1Fill,quadrant2Fill:R.quadrant2Fill,quadrant3Fill:R.quadrant3Fill,quadrant4Fill:R.quadrant4Fill,quadrant1TextFill:R.quadrant1TextFill,quadrant2TextFill:R.quadrant2TextFill,quadrant3TextFill:R.quadrant3TextFill,quadrant4TextFill:R.quadrant4TextFill,quadrantPointFill:R.quadrantPointFill,quadrantPointTextFill:R.quadrantPointTextFill,quadrantXAxisTextFill:R.quadrantXAxisTextFill,quadrantYAxisTextFill:R.quadrantYAxisTextFill,quadrantTitleFill:R.quadrantTitleFill,quadrantInternalBorderStrokeFill:R.quadrantInternalBorderStrokeFill,quadrantExternalBorderStrokeFill:R.quadrantExternalBorderStrokeFill}}clear(){this.config=this.getDefaultConfig(),this.themeConfig=this.getDefaultThemeConfig(),this.data=this.getDefaultData(),ot.info("clear called")}setData(s){this.data={...this.data,...s}}addPoints(s){this.data.points=[...s,...this.data.points]}setConfig(s){ot.trace("setConfig called with: ",s),this.config={...this.config,...s}}setThemeConfig(s){ot.trace("setThemeConfig called with: ",s),this.themeConfig={...this.themeConfig,...s}}calculateSpace(s,h,x,f){const d=this.config.xAxisLabelPadding*2+this.config.xAxisLabelFontSize,c={top:s==="top"&&h?d:0,bottom:s==="bottom"&&h?d:0},g=this.config.yAxisLabelPadding*2+this.config.yAxisLabelFontSize,i={left:this.config.yAxisPosition==="left"&&x?g:0,right:this.config.yAxisPosition==="right"&&x?g:0},y=this.config.titleFontSize+this.config.titlePadding*2,p={top:f?y:0},B=this.config.quadrantPadding+i.left,N=this.config.quadrantPadding+c.top+p.top,V=this.config.chartWidth-this.config.quadrantPadding*2-i.left-i.right,I=this.config.chartHeight-this.config.quadrantPadding*2-c.top-c.bottom-p.top,b=V/2,M=I/2;return{xAxisSpace:c,yAxisSpace:i,titleSpace:p,quadrantSpace:{quadrantLeft:B,quadrantTop:N,quadrantWidth:V,quadrantHalfWidth:b,quadrantHeight:I,quadrantHalfHeight:M}}}getAxisLabels(s,h,x,f){const{quadrantSpace:d,titleSpace:c}=f,{quadrantHalfHeight:g,quadrantHeight:i,quadrantLeft:y,quadrantHalfWidth:p,quadrantTop:B,quadrantWidth:N}=d,V=!!this.data.xAxisRightText,I=!!this.data.yAxisTopText,b=[];return this.data.xAxisLeftText&&h&&b.push({text:this.data.xAxisLeftText,fill:this.themeConfig.quadrantXAxisTextFill,x:y+(V?p/2:0),y:s==="top"?this.config.xAxisLabelPadding+c.top:this.config.xAxisLabelPadding+B+i+this.config.quadrantPadding,fontSize:this.config.xAxisLabelFontSize,verticalPos:V?"center":"left",horizontalPos:"top",rotation:0}),this.data.xAxisRightText&&h&&b.push({text:this.data.xAxisRightText,fill:this.themeConfig.quadrantXAxisTextFill,x:y+p+(V?p/2:0),y:s==="top"?this.config.xAxisLabelPadding+c.top:this.config.xAxisLabelPadding+B+i+this.config.quadrantPadding,fontSize:this.config.xAxisLabelFontSize,verticalPos:V?"center":"left",horizontalPos:"top",rotation:0}),this.data.yAxisBottomText&&x&&b.push({text:this.data.yAxisBottomText,fill:this.themeConfig.quadrantYAxisTextFill,x:this.config.yAxisPosition==="left"?this.config.yAxisLabelPadding:this.config.yAxisLabelPadding+y+N+this.config.quadrantPadding,y:B+i-(I?g/2:0),fontSize:this.config.yAxisLabelFontSize,verticalPos:I?"center":"left",horizontalPos:"top",rotation:-90}),this.data.yAxisTopText&&x&&b.push({text:this.data.yAxisTopText,fill:this.themeConfig.quadrantYAxisTextFill,x:this.config.yAxisPosition==="left"?this.config.yAxisLabelPadding:this.config.yAxisLabelPadding+y+N+this.config.quadrantPadding,y:B+g-(I?g/2:0),fontSize:this.config.yAxisLabelFontSize,verticalPos:I?"center":"left",horizontalPos:"top",rotation:-90}),b}getQuadrants(s){const{quadrantSpace:h}=s,{quadrantHalfHeight:x,quadrantLeft:f,quadrantHalfWidth:d,quadrantTop:c}=h,g=[{text:{text:this.data.quadrant1Text,fill:this.themeConfig.quadrant1TextFill,x:0,y:0,fontSize:this.config.quadrantLabelFontSize,verticalPos:"center",horizontalPos:"middle",rotation:0},x:f+d,y:c,width:d,height:x,fill:this.themeConfig.quadrant1Fill},{text:{text:this.data.quadrant2Text,fill:this.themeConfig.quadrant2TextFill,x:0,y:0,fontSize:this.config.quadrantLabelFontSize,verticalPos:"center",horizontalPos:"middle",rotation:0},x:f,y:c,width:d,height:x,fill:this.themeConfig.quadrant2Fill},{text:{text:this.data.quadrant3Text,fill:this.themeConfig.quadrant3TextFill,x:0,y:0,fontSize:this.config.quadrantLabelFontSize,verticalPos:"center",horizontalPos:"middle",rotation:0},x:f,y:c+x,width:d,height:x,fill:this.themeConfig.quadrant3Fill},{text:{text:this.data.quadrant4Text,fill:this.themeConfig.quadrant4TextFill,x:0,y:0,fontSize:this.config.quadrantLabelFontSize,verticalPos:"center",horizontalPos:"middle",rotation:0},x:f+d,y:c+x,width:d,height:x,fill:this.themeConfig.quadrant4Fill}];for(const i of g)i.text.x=i.x+i.width/2,this.data.points.length===0?(i.text.y=i.y+i.height/2,i.text.horizontalPos="middle"):(i.text.y=i.y+this.config.quadrantTextTopPadding,i.text.horizontalPos="top");return g}getQuadrantPoints(s){const{quadrantSpace:h}=s,{quadrantHeight:x,quadrantLeft:f,quadrantTop:d,quadrantWidth:c}=h,g=mt().domain([0,1]).range([f,c+f]),i=mt().domain([0,1]).range([x+d,d]);return this.data.points.map(p=>({x:g(p.x),y:i(p.y),fill:this.themeConfig.quadrantPointFill,radius:this.config.pointRadius,text:{text:p.text,fill:this.themeConfig.quadrantPointTextFill,x:g(p.x),y:i(p.y)+this.config.pointTextPadding,verticalPos:"center",horizontalPos:"top",fontSize:this.config.pointLabelFontSize,rotation:0}}))}getBorders(s){const h=this.config.quadrantExternalBorderStrokeWidth/2,{quadrantSpace:x}=s,{quadrantHalfHeight:f,quadrantHeight:d,quadrantLeft:c,quadrantHalfWidth:g,quadrantTop:i,quadrantWidth:y}=x;return[{strokeFill:this.themeConfig.quadrantExternalBorderStrokeFill,strokeWidth:this.config.quadrantExternalBorderStrokeWidth,x1:c-h,y1:i,x2:c+y+h,y2:i},{strokeFill:this.themeConfig.quadrantExternalBorderStrokeFill,strokeWidth:this.config.quadrantExternalBorderStrokeWidth,x1:c+y,y1:i+h,x2:c+y,y2:i+d-h},{strokeFill:this.themeConfig.quadrantExternalBorderStrokeFill,strokeWidth:this.config.quadrantExternalBorderStrokeWidth,x1:c-h,y1:i+d,x2:c+y+h,y2:i+d},{strokeFill:this.themeConfig.quadrantExternalBorderStrokeFill,strokeWidth:this.config.quadrantExternalBorderStrokeWidth,x1:c,y1:i+h,x2:c,y2:i+d-h},{strokeFill:this.themeConfig.quadrantInternalBorderStrokeFill,strokeWidth:this.config.quadrantInternalBorderStrokeWidth,x1:c+g,y1:i+h,x2:c+g,y2:i+d-h},{strokeFill:this.themeConfig.quadrantInternalBorderStrokeFill,strokeWidth:this.config.quadrantInternalBorderStrokeWidth,x1:c+h,y1:i+f,x2:c+y-h,y2:i+f}]}getTitle(s){if(s)return{text:this.data.titleText,fill:this.themeConfig.quadrantTitleFill,fontSize:this.config.titleFontSize,horizontalPos:"top",verticalPos:"center",rotation:0,y:this.config.titlePadding,x:this.config.chartWidth/2}}build(){const s=this.config.showXAxis&&!!(this.data.xAxisLeftText||this.data.xAxisRightText),h=this.config.showYAxis&&!!(this.data.yAxisTopText||this.data.yAxisBottomText),x=this.config.showTitle&&!!this.data.titleText,f=this.data.points.length>0?"bottom":this.config.xAxisPosition,d=this.calculateSpace(f,s,h,x);return{points:this.getQuadrantPoints(d),quadrants:this.getQuadrants(d),axisLabels:this.getAxisLabels(f,s,h,d),borderLines:this.getBorders(d),title:this.getTitle(x)}}}const Wt=yt();function G(e){return wt(e.trim(),Wt)}const w=new Vt;function Nt(e){w.setData({quadrant1Text:G(e.text)})}function Ut(e){w.setData({quadrant2Text:G(e.text)})}function Qt(e){w.setData({quadrant3Text:G(e.text)})}function Ht(e){w.setData({quadrant4Text:G(e.text)})}function Mt(e){w.setData({xAxisLeftText:G(e.text)})}function Xt(e){w.setData({xAxisRightText:G(e.text)})}function Ot(e){w.setData({yAxisTopText:G(e.text)})}function Yt(e){w.setData({yAxisBottomText:G(e.text)})}function $t(e,s,h){w.addPoints([{x:s,y:h,text:G(e.text)}])}function jt(e){w.setConfig({chartWidth:e})}function Gt(e){w.setConfig({chartHeight:e})}function Kt(){const e=yt(),{themeVariables:s,quadrantChart:h}=e;return h&&w.setConfig(h),w.setThemeConfig({quadrant1Fill:s.quadrant1Fill,quadrant2Fill:s.quadrant2Fill,quadrant3Fill:s.quadrant3Fill,quadrant4Fill:s.quadrant4Fill,quadrant1TextFill:s.quadrant1TextFill,quadrant2TextFill:s.quadrant2TextFill,quadrant3TextFill:s.quadrant3TextFill,quadrant4TextFill:s.quadrant4TextFill,quadrantPointFill:s.quadrantPointFill,quadrantPointTextFill:s.quadrantPointTextFill,quadrantXAxisTextFill:s.quadrantXAxisTextFill,quadrantYAxisTextFill:s.quadrantYAxisTextFill,quadrantExternalBorderStrokeFill:s.quadrantExternalBorderStrokeFill,quadrantInternalBorderStrokeFill:s.quadrantInternalBorderStrokeFill,quadrantTitleFill:s.quadrantTitleFill}),w.setData({titleText:bt()}),w.build()}const Jt=function(){w.clear(),It()},Zt={setWidth:jt,setHeight:Gt,setQuadrant1Text:Nt,setQuadrant2Text:Ut,setQuadrant3Text:Qt,setQuadrant4Text:Ht,setXAxisLeftText:Mt,setXAxisRightText:Xt,setYAxisTopText:Ot,setYAxisBottomText:Yt,addPoint:$t,getQuadrantData:Kt,clear:Jt,setAccTitle:Lt,getAccTitle:Ct,setDiagramTitle:zt,getDiagramTitle:bt,getAccDescription:Et,setAccDescription:Dt},te=(e,s,h,x)=>{var f,d,c;function g(t){return t==="top"?"hanging":"middle"}function i(t){return t==="left"?"start":"middle"}function y(t){return`translate(${t.x}, ${t.y}) rotate(${t.rotation||0})`}const p=yt();ot.debug(`Rendering quadrant chart +`+e);const B=p.securityLevel;let N;B==="sandbox"&&(N=gt("#i"+s));const I=(B==="sandbox"?gt(N.nodes()[0].contentDocument.body):gt("body")).select(`[id="${s}"]`),b=I.append("g").attr("class","main"),M=((f=p.quadrantChart)==null?void 0:f.chartWidth)||500,X=((d=p.quadrantChart)==null?void 0:d.chartHeight)||500;Bt(I,X,M,((c=p.quadrantChart)==null?void 0:c.useMaxWidth)||!0),I.attr("viewBox","0 0 "+M+" "+X),x.db.setHeight(X),x.db.setWidth(M);const C=x.db.getQuadrantData(),it=b.append("g").attr("class","quadrants"),at=b.append("g").attr("class","border"),nt=b.append("g").attr("class","data-points"),U=b.append("g").attr("class","labels"),Q=b.append("g").attr("class","title");C.title&&Q.append("text").attr("x",0).attr("y",0).attr("fill",C.title.fill).attr("font-size",C.title.fontSize).attr("dominant-baseline",g(C.title.horizontalPos)).attr("text-anchor",i(C.title.verticalPos)).attr("transform",y(C.title)).text(C.title.text),C.borderLines&&at.selectAll("line").data(C.borderLines).enter().append("line").attr("x1",t=>t.x1).attr("y1",t=>t.y1).attr("x2",t=>t.x2).attr("y2",t=>t.y2).style("stroke",t=>t.strokeFill).style("stroke-width",t=>t.strokeWidth);const T=it.selectAll("g.quadrant").data(C.quadrants).enter().append("g").attr("class","quadrant");T.append("rect").attr("x",t=>t.x).attr("y",t=>t.y).attr("width",t=>t.width).attr("height",t=>t.height).attr("fill",t=>t.fill),T.append("text").attr("x",0).attr("y",0).attr("fill",t=>t.text.fill).attr("font-size",t=>t.text.fontSize).attr("dominant-baseline",t=>g(t.text.horizontalPos)).attr("text-anchor",t=>i(t.text.verticalPos)).attr("transform",t=>y(t.text)).text(t=>t.text.text),U.selectAll("g.label").data(C.axisLabels).enter().append("g").attr("class","label").append("text").attr("x",0).attr("y",0).text(t=>t.text).attr("fill",t=>t.fill).attr("font-size",t=>t.fontSize).attr("dominant-baseline",t=>g(t.horizontalPos)).attr("text-anchor",t=>i(t.verticalPos)).attr("transform",t=>y(t));const _=nt.selectAll("g.data-point").data(C.points).enter().append("g").attr("class","data-point");_.append("circle").attr("cx",t=>t.x).attr("cy",t=>t.y).attr("r",t=>t.radius).attr("fill",t=>t.fill),_.append("text").attr("x",0).attr("y",0).text(t=>t.text.text).attr("fill",t=>t.text.fill).attr("font-size",t=>t.text.fontSize).attr("dominant-baseline",t=>g(t.text.horizontalPos)).attr("text-anchor",t=>i(t.text.verticalPos)).attr("transform",t=>y(t.text))},ee={draw:te},re={parser:Rt,db:Zt,renderer:ee,styles:()=>""};export{re as diagram}; diff --git a/assets/recruitment.page-UzsIfMQg.js b/assets/recruitment.page-UzsIfMQg.js new file mode 100644 index 00000000..3cfa2ca6 --- /dev/null +++ b/assets/recruitment.page-UzsIfMQg.js @@ -0,0 +1,3 @@ +import{ɵ as s,a as t,b as e,d as o}from"./index-Be9IN4QR.js";const a=class a{};a.ɵfac=function(n){return new(n||a)},a.ɵcmp=s({type:a,selectors:[["ng-component"]],decls:66,vars:0,consts:[[1,"wrapper","alt"],[1,"inner"],[1,"major"]],template:function(n,l){n&1&&(t(0,"section",0)(1,"div",1)(2,"h2",2),e(3,"Dear Recruiter, Talent Scout, Others,"),o(),t(4,"p"),e(5," Thanks for reaching out. I'm always interested in hearing about what new and exciting opportunities are out there. As a software engineer I'm sure you can imagine that I get a very high volume of recruiters reaching out via Mail, on LinkedIn, XING, etc. It is a wonderful position of privilege to be in and I'm thankful for it. "),o(),t(6,"p"),e(7," It does however mean that I don't have the time to hop on a call with everyone who reaches out. A lot of the time, incoming messages represent a very poor fit indeed. "),o(),t(8,"p"),e(9," That being said, I want to filter out early matching job opportunities from spam or unqualified messages. In order to do so, please read and verify, you can positively check the following requirements with this ones, the position you/your client is offering: "),o(),t(10,"ul")(11,"li"),e(12," The position is really related to "),t(13,"b"),e(14,"JavaScript/TypeScript"),o(),e(15," and "),t(16,"b"),e(17,"frontend or fullstack development/-architecture"),o()(),t(18,"li")(19,"b"),e(20,"Flexible Working Hours"),o(),e(21," are obviously"),o(),t(22,"li"),e(23,"At least "),t(24,"b"),e(25,"30 days"),o(),e(26," of annual "),t(27,"b"),e(28,"vacation"),o()(),t(29,"li")(30,"b"),e(31,"100% remote job"),o(),e(32," or a position based in "),t(33,"b"),e(34,"Berlin"),o(),e(35," with flexibility to work for at least 2 days a week from home "),o(),t(36,"li"),e(37,"An annual salary of "),t(38,"b"),e(39,"EUR 95.000"),o(),e(40," or more"),o(),t(41,"li"),e(42," At least "),t(43,"b"),e(44,"EUR 2000 annual training budget"),o(),e(45," (visiting conferences, joining Events, on-site/remote trainings) "),o(),t(46,"li"),e(47," low hierarchies in a "),t(48,"b"),e(49,"healthy and balanced"),o(),e(50," working atmosphere "),o(),t(51,"li"),e(52,"No connection to the defense industry"),o(),t(53,"li"),e(54,"A permanent employment contract"),o()(),t(55,"p"),e(56," If "),t(57,"b"),e(58,"all or at least 90% of this requirements"),o(),e(59," from myself listed above will match with the offer you have, you can contact me again. Furthermore I would ask you to send along the company name, a job description and, total compensation details for the role you're reaching out. "),o(),t(60,"p"),e(61," While I very much appreciate the fact that exceptionally talented and engaged recruiters reach out consistently, sorting serious and high quality opportunities from spam would be a full time job without an autoresponder. "),o(),t(62,"p"),e(63,"Thanks for your understanding."),o(),t(64,"p"),e(65,"Best regards, Danny"),o()()())},styles:[`.wrapper[_ngcontent-%COMP%] { + margin-top: 0; + }`]});let i=a;export{i as default}; diff --git a/assets/requirementDiagram-deff3bca-DtT00n4w.js b/assets/requirementDiagram-deff3bca-DtT00n4w.js new file mode 100644 index 00000000..a0f158fa --- /dev/null +++ b/assets/requirementDiagram-deff3bca-DtT00n4w.js @@ -0,0 +1,52 @@ +import{c as Te,s as Ce,g as Fe,b as Me,a as De,l as Ne,A as Pe,h as oe,i as Ye,j as ke}from"./mermaid.core-B_tqKmhs.js";import{G as Ue}from"./graph-Es7S6dYR.js";import{l as Be}from"./layout-Cjy8fVPY.js";import{l as Qe}from"./line-CC-POSaO.js";import"./index-Be9IN4QR.js";import"./array-BKyUJesY.js";import"./path-CbwjOpE9.js";var ce=function(){var e=function(V,i,n,a){for(n=n||{},a=V.length;a--;n[V[a]]=i);return n},t=[1,3],l=[1,4],c=[1,5],u=[1,6],d=[5,6,8,9,11,13,31,32,33,34,35,36,44,62,63],p=[1,18],h=[2,7],o=[1,22],g=[1,23],R=[1,24],A=[1,25],T=[1,26],N=[1,27],v=[1,20],k=[1,28],x=[1,29],F=[62,63],de=[5,8,9,11,13,31,32,33,34,35,36,44,51,53,62,63],pe=[1,47],fe=[1,48],ye=[1,49],_e=[1,50],ge=[1,51],Ee=[1,52],Re=[1,53],O=[53,54],M=[1,64],D=[1,60],P=[1,61],Y=[1,62],U=[1,63],B=[1,65],j=[1,69],z=[1,70],X=[1,67],J=[1,68],m=[5,8,9,11,13,31,32,33,34,35,36,44,62,63],ie={trace:function(){},yy:{},symbols_:{error:2,start:3,directive:4,NEWLINE:5,RD:6,diagram:7,EOF:8,acc_title:9,acc_title_value:10,acc_descr:11,acc_descr_value:12,acc_descr_multiline_value:13,requirementDef:14,elementDef:15,relationshipDef:16,requirementType:17,requirementName:18,STRUCT_START:19,requirementBody:20,ID:21,COLONSEP:22,id:23,TEXT:24,text:25,RISK:26,riskLevel:27,VERIFYMTHD:28,verifyType:29,STRUCT_STOP:30,REQUIREMENT:31,FUNCTIONAL_REQUIREMENT:32,INTERFACE_REQUIREMENT:33,PERFORMANCE_REQUIREMENT:34,PHYSICAL_REQUIREMENT:35,DESIGN_CONSTRAINT:36,LOW_RISK:37,MED_RISK:38,HIGH_RISK:39,VERIFY_ANALYSIS:40,VERIFY_DEMONSTRATION:41,VERIFY_INSPECTION:42,VERIFY_TEST:43,ELEMENT:44,elementName:45,elementBody:46,TYPE:47,type:48,DOCREF:49,ref:50,END_ARROW_L:51,relationship:52,LINE:53,END_ARROW_R:54,CONTAINS:55,COPIES:56,DERIVES:57,SATISFIES:58,VERIFIES:59,REFINES:60,TRACES:61,unqString:62,qString:63,$accept:0,$end:1},terminals_:{2:"error",5:"NEWLINE",6:"RD",8:"EOF",9:"acc_title",10:"acc_title_value",11:"acc_descr",12:"acc_descr_value",13:"acc_descr_multiline_value",19:"STRUCT_START",21:"ID",22:"COLONSEP",24:"TEXT",26:"RISK",28:"VERIFYMTHD",30:"STRUCT_STOP",31:"REQUIREMENT",32:"FUNCTIONAL_REQUIREMENT",33:"INTERFACE_REQUIREMENT",34:"PERFORMANCE_REQUIREMENT",35:"PHYSICAL_REQUIREMENT",36:"DESIGN_CONSTRAINT",37:"LOW_RISK",38:"MED_RISK",39:"HIGH_RISK",40:"VERIFY_ANALYSIS",41:"VERIFY_DEMONSTRATION",42:"VERIFY_INSPECTION",43:"VERIFY_TEST",44:"ELEMENT",47:"TYPE",49:"DOCREF",51:"END_ARROW_L",53:"LINE",54:"END_ARROW_R",55:"CONTAINS",56:"COPIES",57:"DERIVES",58:"SATISFIES",59:"VERIFIES",60:"REFINES",61:"TRACES",62:"unqString",63:"qString"},productions_:[0,[3,3],[3,2],[3,4],[4,2],[4,2],[4,1],[7,0],[7,2],[7,2],[7,2],[7,2],[7,2],[14,5],[20,5],[20,5],[20,5],[20,5],[20,2],[20,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[27,1],[27,1],[27,1],[29,1],[29,1],[29,1],[29,1],[15,5],[46,5],[46,5],[46,2],[46,1],[16,5],[16,5],[52,1],[52,1],[52,1],[52,1],[52,1],[52,1],[52,1],[18,1],[18,1],[23,1],[23,1],[25,1],[25,1],[45,1],[45,1],[48,1],[48,1],[50,1],[50,1]],performAction:function(i,n,a,r,f,s,W){var _=s.length-1;switch(f){case 4:this.$=s[_].trim(),r.setAccTitle(this.$);break;case 5:case 6:this.$=s[_].trim(),r.setAccDescription(this.$);break;case 7:this.$=[];break;case 13:r.addRequirement(s[_-3],s[_-4]);break;case 14:r.setNewReqId(s[_-2]);break;case 15:r.setNewReqText(s[_-2]);break;case 16:r.setNewReqRisk(s[_-2]);break;case 17:r.setNewReqVerifyMethod(s[_-2]);break;case 20:this.$=r.RequirementType.REQUIREMENT;break;case 21:this.$=r.RequirementType.FUNCTIONAL_REQUIREMENT;break;case 22:this.$=r.RequirementType.INTERFACE_REQUIREMENT;break;case 23:this.$=r.RequirementType.PERFORMANCE_REQUIREMENT;break;case 24:this.$=r.RequirementType.PHYSICAL_REQUIREMENT;break;case 25:this.$=r.RequirementType.DESIGN_CONSTRAINT;break;case 26:this.$=r.RiskLevel.LOW_RISK;break;case 27:this.$=r.RiskLevel.MED_RISK;break;case 28:this.$=r.RiskLevel.HIGH_RISK;break;case 29:this.$=r.VerifyType.VERIFY_ANALYSIS;break;case 30:this.$=r.VerifyType.VERIFY_DEMONSTRATION;break;case 31:this.$=r.VerifyType.VERIFY_INSPECTION;break;case 32:this.$=r.VerifyType.VERIFY_TEST;break;case 33:r.addElement(s[_-3]);break;case 34:r.setNewElementType(s[_-2]);break;case 35:r.setNewElementDocRef(s[_-2]);break;case 38:r.addRelationship(s[_-2],s[_],s[_-4]);break;case 39:r.addRelationship(s[_-2],s[_-4],s[_]);break;case 40:this.$=r.Relationships.CONTAINS;break;case 41:this.$=r.Relationships.COPIES;break;case 42:this.$=r.Relationships.DERIVES;break;case 43:this.$=r.Relationships.SATISFIES;break;case 44:this.$=r.Relationships.VERIFIES;break;case 45:this.$=r.Relationships.REFINES;break;case 46:this.$=r.Relationships.TRACES;break}},table:[{3:1,4:2,6:t,9:l,11:c,13:u},{1:[3]},{3:8,4:2,5:[1,7],6:t,9:l,11:c,13:u},{5:[1,9]},{10:[1,10]},{12:[1,11]},e(d,[2,6]),{3:12,4:2,6:t,9:l,11:c,13:u},{1:[2,2]},{4:17,5:p,7:13,8:h,9:l,11:c,13:u,14:14,15:15,16:16,17:19,23:21,31:o,32:g,33:R,34:A,35:T,36:N,44:v,62:k,63:x},e(d,[2,4]),e(d,[2,5]),{1:[2,1]},{8:[1,30]},{4:17,5:p,7:31,8:h,9:l,11:c,13:u,14:14,15:15,16:16,17:19,23:21,31:o,32:g,33:R,34:A,35:T,36:N,44:v,62:k,63:x},{4:17,5:p,7:32,8:h,9:l,11:c,13:u,14:14,15:15,16:16,17:19,23:21,31:o,32:g,33:R,34:A,35:T,36:N,44:v,62:k,63:x},{4:17,5:p,7:33,8:h,9:l,11:c,13:u,14:14,15:15,16:16,17:19,23:21,31:o,32:g,33:R,34:A,35:T,36:N,44:v,62:k,63:x},{4:17,5:p,7:34,8:h,9:l,11:c,13:u,14:14,15:15,16:16,17:19,23:21,31:o,32:g,33:R,34:A,35:T,36:N,44:v,62:k,63:x},{4:17,5:p,7:35,8:h,9:l,11:c,13:u,14:14,15:15,16:16,17:19,23:21,31:o,32:g,33:R,34:A,35:T,36:N,44:v,62:k,63:x},{18:36,62:[1,37],63:[1,38]},{45:39,62:[1,40],63:[1,41]},{51:[1,42],53:[1,43]},e(F,[2,20]),e(F,[2,21]),e(F,[2,22]),e(F,[2,23]),e(F,[2,24]),e(F,[2,25]),e(de,[2,49]),e(de,[2,50]),{1:[2,3]},{8:[2,8]},{8:[2,9]},{8:[2,10]},{8:[2,11]},{8:[2,12]},{19:[1,44]},{19:[2,47]},{19:[2,48]},{19:[1,45]},{19:[2,53]},{19:[2,54]},{52:46,55:pe,56:fe,57:ye,58:_e,59:ge,60:Ee,61:Re},{52:54,55:pe,56:fe,57:ye,58:_e,59:ge,60:Ee,61:Re},{5:[1,55]},{5:[1,56]},{53:[1,57]},e(O,[2,40]),e(O,[2,41]),e(O,[2,42]),e(O,[2,43]),e(O,[2,44]),e(O,[2,45]),e(O,[2,46]),{54:[1,58]},{5:M,20:59,21:D,24:P,26:Y,28:U,30:B},{5:j,30:z,46:66,47:X,49:J},{23:71,62:k,63:x},{23:72,62:k,63:x},e(m,[2,13]),{22:[1,73]},{22:[1,74]},{22:[1,75]},{22:[1,76]},{5:M,20:77,21:D,24:P,26:Y,28:U,30:B},e(m,[2,19]),e(m,[2,33]),{22:[1,78]},{22:[1,79]},{5:j,30:z,46:80,47:X,49:J},e(m,[2,37]),e(m,[2,38]),e(m,[2,39]),{23:81,62:k,63:x},{25:82,62:[1,83],63:[1,84]},{27:85,37:[1,86],38:[1,87],39:[1,88]},{29:89,40:[1,90],41:[1,91],42:[1,92],43:[1,93]},e(m,[2,18]),{48:94,62:[1,95],63:[1,96]},{50:97,62:[1,98],63:[1,99]},e(m,[2,36]),{5:[1,100]},{5:[1,101]},{5:[2,51]},{5:[2,52]},{5:[1,102]},{5:[2,26]},{5:[2,27]},{5:[2,28]},{5:[1,103]},{5:[2,29]},{5:[2,30]},{5:[2,31]},{5:[2,32]},{5:[1,104]},{5:[2,55]},{5:[2,56]},{5:[1,105]},{5:[2,57]},{5:[2,58]},{5:M,20:106,21:D,24:P,26:Y,28:U,30:B},{5:M,20:107,21:D,24:P,26:Y,28:U,30:B},{5:M,20:108,21:D,24:P,26:Y,28:U,30:B},{5:M,20:109,21:D,24:P,26:Y,28:U,30:B},{5:j,30:z,46:110,47:X,49:J},{5:j,30:z,46:111,47:X,49:J},e(m,[2,14]),e(m,[2,15]),e(m,[2,16]),e(m,[2,17]),e(m,[2,34]),e(m,[2,35])],defaultActions:{8:[2,2],12:[2,1],30:[2,3],31:[2,8],32:[2,9],33:[2,10],34:[2,11],35:[2,12],37:[2,47],38:[2,48],40:[2,53],41:[2,54],83:[2,51],84:[2,52],86:[2,26],87:[2,27],88:[2,28],90:[2,29],91:[2,30],92:[2,31],93:[2,32],95:[2,55],96:[2,56],98:[2,57],99:[2,58]},parseError:function(i,n){if(n.recoverable)this.trace(i);else{var a=new Error(i);throw a.hash=n,a}},parse:function(i){var n=this,a=[0],r=[],f=[null],s=[],W=this.table,_="",Z=0,me=0,Ve=2,Ie=1,qe=s.slice.call(arguments,1),E=Object.create(this.lexer),L={yy:{}};for(var ne in this.yy)Object.prototype.hasOwnProperty.call(this.yy,ne)&&(L.yy[ne]=this.yy[ne]);E.setInput(i,L.yy),L.yy.lexer=E,L.yy.parser=this,typeof E.yylloc>"u"&&(E.yylloc={});var se=E.yylloc;s.push(se);var Oe=E.options&&E.options.ranges;typeof L.yy.parseError=="function"?this.parseError=L.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function Le(){var $;return $=r.pop()||E.lex()||Ie,typeof $!="number"&&($ instanceof Array&&(r=$,$=r.pop()),$=n.symbols_[$]||$),$}for(var I,C,S,ae,Q={},ee,w,be,te;;){if(C=a[a.length-1],this.defaultActions[C]?S=this.defaultActions[C]:((I===null||typeof I>"u")&&(I=Le()),S=W[C]&&W[C][I]),typeof S>"u"||!S.length||!S[0]){var le="";te=[];for(ee in W[C])this.terminals_[ee]&&ee>Ve&&te.push("'"+this.terminals_[ee]+"'");E.showPosition?le="Parse error on line "+(Z+1)+`: +`+E.showPosition()+` +Expecting `+te.join(", ")+", got '"+(this.terminals_[I]||I)+"'":le="Parse error on line "+(Z+1)+": Unexpected "+(I==Ie?"end of input":"'"+(this.terminals_[I]||I)+"'"),this.parseError(le,{text:E.match,token:this.terminals_[I]||I,line:E.yylineno,loc:se,expected:te})}if(S[0]instanceof Array&&S.length>1)throw new Error("Parse Error: multiple actions possible at state: "+C+", token: "+I);switch(S[0]){case 1:a.push(I),f.push(E.yytext),s.push(E.yylloc),a.push(S[1]),I=null,me=E.yyleng,_=E.yytext,Z=E.yylineno,se=E.yylloc;break;case 2:if(w=this.productions_[S[1]][1],Q.$=f[f.length-w],Q._$={first_line:s[s.length-(w||1)].first_line,last_line:s[s.length-1].last_line,first_column:s[s.length-(w||1)].first_column,last_column:s[s.length-1].last_column},Oe&&(Q._$.range=[s[s.length-(w||1)].range[0],s[s.length-1].range[1]]),ae=this.performAction.apply(Q,[_,me,Z,L.yy,S[1],f,s].concat(qe)),typeof ae<"u")return ae;w&&(a=a.slice(0,-1*w*2),f=f.slice(0,-1*w),s=s.slice(0,-1*w)),a.push(this.productions_[S[1]][0]),f.push(Q.$),s.push(Q._$),be=W[a[a.length-2]][a[a.length-1]],a.push(be);break;case 3:return!0}}return!0}},$e=function(){var V={EOF:1,parseError:function(n,a){if(this.yy.parser)this.yy.parser.parseError(n,a);else throw new Error(n)},setInput:function(i,n){return this.yy=n||this.yy||{},this._input=i,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var i=this._input[0];this.yytext+=i,this.yyleng++,this.offset++,this.match+=i,this.matched+=i;var n=i.match(/(?:\r\n?|\n).*/g);return n?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),i},unput:function(i){var n=i.length,a=i.split(/(?:\r\n?|\n)/g);this._input=i+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-n),this.offset-=n;var r=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),a.length-1&&(this.yylineno-=a.length-1);var f=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:a?(a.length===r.length?this.yylloc.first_column:0)+r[r.length-a.length].length-a[0].length:this.yylloc.first_column-n},this.options.ranges&&(this.yylloc.range=[f[0],f[0]+this.yyleng-n]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true). +`+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},less:function(i){this.unput(this.match.slice(i))},pastInput:function(){var i=this.matched.substr(0,this.matched.length-this.match.length);return(i.length>20?"...":"")+i.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var i=this.match;return i.length<20&&(i+=this._input.substr(0,20-i.length)),(i.substr(0,20)+(i.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var i=this.pastInput(),n=new Array(i.length+1).join("-");return i+this.upcomingInput()+` +`+n+"^"},test_match:function(i,n){var a,r,f;if(this.options.backtrack_lexer&&(f={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(f.yylloc.range=this.yylloc.range.slice(0))),r=i[0].match(/(?:\r\n?|\n).*/g),r&&(this.yylineno+=r.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:r?r[r.length-1].length-r[r.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+i[0].length},this.yytext+=i[0],this.match+=i[0],this.matches=i,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(i[0].length),this.matched+=i[0],a=this.performAction.call(this,this.yy,this,n,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),a)return a;if(this._backtrack){for(var s in f)this[s]=f[s];return!1}return!1},next:function(){if(this.done)return this.EOF;this._input||(this.done=!0);var i,n,a,r;this._more||(this.yytext="",this.match="");for(var f=this._currentRules(),s=0;sn[0].length)){if(n=a,r=s,this.options.backtrack_lexer){if(i=this.test_match(a,f[s]),i!==!1)return i;if(this._backtrack){n=!1;continue}else return!1}else if(!this.options.flex)break}return n?(i=this.test_match(n,f[r]),i!==!1?i:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text. +`+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var n=this.next();return n||this.lex()},begin:function(n){this.conditionStack.push(n)},popState:function(){var n=this.conditionStack.length-1;return n>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(n){return n=this.conditionStack.length-1-Math.abs(n||0),n>=0?this.conditionStack[n]:"INITIAL"},pushState:function(n){this.begin(n)},stateStackSize:function(){return this.conditionStack.length},options:{"case-insensitive":!0},performAction:function(n,a,r,f){switch(r){case 0:return"title";case 1:return this.begin("acc_title"),9;case 2:return this.popState(),"acc_title_value";case 3:return this.begin("acc_descr"),11;case 4:return this.popState(),"acc_descr_value";case 5:this.begin("acc_descr_multiline");break;case 6:this.popState();break;case 7:return"acc_descr_multiline_value";case 8:return 5;case 9:break;case 10:break;case 11:break;case 12:return 8;case 13:return 6;case 14:return 19;case 15:return 30;case 16:return 22;case 17:return 21;case 18:return 24;case 19:return 26;case 20:return 28;case 21:return 31;case 22:return 32;case 23:return 33;case 24:return 34;case 25:return 35;case 26:return 36;case 27:return 37;case 28:return 38;case 29:return 39;case 30:return 40;case 31:return 41;case 32:return 42;case 33:return 43;case 34:return 44;case 35:return 55;case 36:return 56;case 37:return 57;case 38:return 58;case 39:return 59;case 40:return 60;case 41:return 61;case 42:return 47;case 43:return 49;case 44:return 51;case 45:return 54;case 46:return 53;case 47:this.begin("string");break;case 48:this.popState();break;case 49:return"qString";case 50:return a.yytext=a.yytext.trim(),62}},rules:[/^(?:title\s[^#\n;]+)/i,/^(?:accTitle\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*\{\s*)/i,/^(?:[\}])/i,/^(?:[^\}]*)/i,/^(?:(\r?\n)+)/i,/^(?:\s+)/i,/^(?:#[^\n]*)/i,/^(?:%[^\n]*)/i,/^(?:$)/i,/^(?:requirementDiagram\b)/i,/^(?:\{)/i,/^(?:\})/i,/^(?::)/i,/^(?:id\b)/i,/^(?:text\b)/i,/^(?:risk\b)/i,/^(?:verifyMethod\b)/i,/^(?:requirement\b)/i,/^(?:functionalRequirement\b)/i,/^(?:interfaceRequirement\b)/i,/^(?:performanceRequirement\b)/i,/^(?:physicalRequirement\b)/i,/^(?:designConstraint\b)/i,/^(?:low\b)/i,/^(?:medium\b)/i,/^(?:high\b)/i,/^(?:analysis\b)/i,/^(?:demonstration\b)/i,/^(?:inspection\b)/i,/^(?:test\b)/i,/^(?:element\b)/i,/^(?:contains\b)/i,/^(?:copies\b)/i,/^(?:derives\b)/i,/^(?:satisfies\b)/i,/^(?:verifies\b)/i,/^(?:refines\b)/i,/^(?:traces\b)/i,/^(?:type\b)/i,/^(?:docref\b)/i,/^(?:<-)/i,/^(?:->)/i,/^(?:-)/i,/^(?:["])/i,/^(?:["])/i,/^(?:[^"]*)/i,/^(?:[\w][^\r\n\{\<\>\-\=]*)/i],conditions:{acc_descr_multiline:{rules:[6,7],inclusive:!1},acc_descr:{rules:[4],inclusive:!1},acc_title:{rules:[2],inclusive:!1},unqString:{rules:[],inclusive:!1},token:{rules:[],inclusive:!1},string:{rules:[48,49],inclusive:!1},INITIAL:{rules:[0,1,3,5,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,50],inclusive:!0}}};return V}();ie.lexer=$e;function re(){this.yy={}}return re.prototype=ie,ie.Parser=re,new re}();ce.parser=ce;const He=ce;let ue=[],b={},K={},q={},G={};const We={REQUIREMENT:"Requirement",FUNCTIONAL_REQUIREMENT:"Functional Requirement",INTERFACE_REQUIREMENT:"Interface Requirement",PERFORMANCE_REQUIREMENT:"Performance Requirement",PHYSICAL_REQUIREMENT:"Physical Requirement",DESIGN_CONSTRAINT:"Design Constraint"},Ke={LOW_RISK:"Low",MED_RISK:"Medium",HIGH_RISK:"High"},Ge={VERIFY_ANALYSIS:"Analysis",VERIFY_DEMONSTRATION:"Demonstration",VERIFY_INSPECTION:"Inspection",VERIFY_TEST:"Test"},je={CONTAINS:"contains",COPIES:"copies",DERIVES:"derives",SATISFIES:"satisfies",VERIFIES:"verifies",REFINES:"refines",TRACES:"traces"},ze=(e,t)=>(K[e]===void 0&&(K[e]={name:e,type:t,id:b.id,text:b.text,risk:b.risk,verifyMethod:b.verifyMethod}),b={},K[e]),Xe=()=>K,Je=e=>{b!==void 0&&(b.id=e)},Ze=e=>{b!==void 0&&(b.text=e)},et=e=>{b!==void 0&&(b.risk=e)},tt=e=>{b!==void 0&&(b.verifyMethod=e)},it=e=>(G[e]===void 0&&(G[e]={name:e,type:q.type,docRef:q.docRef},Ne.info("Added new requirement: ",e)),q={},G[e]),rt=()=>G,nt=e=>{q!==void 0&&(q.type=e)},st=e=>{q!==void 0&&(q.docRef=e)},at=(e,t,l)=>{ue.push({type:e,src:t,dst:l})},lt=()=>ue,ot=()=>{ue=[],b={},K={},q={},G={},Pe()},ct={RequirementType:We,RiskLevel:Ke,VerifyType:Ge,Relationships:je,getConfig:()=>Te().req,addRequirement:ze,getRequirements:Xe,setNewReqId:Je,setNewReqText:Ze,setNewReqRisk:et,setNewReqVerifyMethod:tt,setAccTitle:Ce,getAccTitle:Fe,setAccDescription:Me,getAccDescription:De,addElement:it,getElements:rt,setNewElementType:nt,setNewElementDocRef:st,addRelationship:at,getRelationships:lt,clear:ot},ht=e=>` + + marker { + fill: ${e.relationColor}; + stroke: ${e.relationColor}; + } + + marker.cross { + stroke: ${e.lineColor}; + } + + svg { + font-family: ${e.fontFamily}; + font-size: ${e.fontSize}; + } + + .reqBox { + fill: ${e.requirementBackground}; + fill-opacity: 1.0; + stroke: ${e.requirementBorderColor}; + stroke-width: ${e.requirementBorderSize}; + } + + .reqTitle, .reqLabel{ + fill: ${e.requirementTextColor}; + } + .reqLabelBox { + fill: ${e.relationLabelBackground}; + fill-opacity: 1.0; + } + + .req-title-line { + stroke: ${e.requirementBorderColor}; + stroke-width: ${e.requirementBorderSize}; + } + .relationshipLine { + stroke: ${e.relationColor}; + stroke-width: 1; + } + .relationshipLabel { + fill: ${e.relationLabelColor}; + } + +`,ut=ht,he={CONTAINS:"contains",ARROW:"arrow"},dt=(e,t)=>{let l=e.append("defs").append("marker").attr("id",he.CONTAINS+"_line_ending").attr("refX",0).attr("refY",t.line_height/2).attr("markerWidth",t.line_height).attr("markerHeight",t.line_height).attr("orient","auto").append("g");l.append("circle").attr("cx",t.line_height/2).attr("cy",t.line_height/2).attr("r",t.line_height/2).attr("fill","none"),l.append("line").attr("x1",0).attr("x2",t.line_height).attr("y1",t.line_height/2).attr("y2",t.line_height/2).attr("stroke-width",1),l.append("line").attr("y1",0).attr("y2",t.line_height).attr("x1",t.line_height/2).attr("x2",t.line_height/2).attr("stroke-width",1),e.append("defs").append("marker").attr("id",he.ARROW+"_line_ending").attr("refX",t.line_height).attr("refY",.5*t.line_height).attr("markerWidth",t.line_height).attr("markerHeight",t.line_height).attr("orient","auto").append("path").attr("d",`M0,0 + L${t.line_height},${t.line_height/2} + M${t.line_height},${t.line_height/2} + L0,${t.line_height}`).attr("stroke-width",1)},xe={ReqMarkers:he,insertLineEndings:dt};let y={},Se=0;const Ae=(e,t)=>e.insert("rect","#"+t).attr("class","req reqBox").attr("x",0).attr("y",0).attr("width",y.rect_min_width+"px").attr("height",y.rect_min_height+"px"),ve=(e,t,l)=>{let c=y.rect_min_width/2,u=e.append("text").attr("class","req reqLabel reqTitle").attr("id",t).attr("x",c).attr("y",y.rect_padding).attr("dominant-baseline","hanging"),d=0;l.forEach(g=>{d==0?u.append("tspan").attr("text-anchor","middle").attr("x",y.rect_min_width/2).attr("dy",0).text(g):u.append("tspan").attr("text-anchor","middle").attr("x",y.rect_min_width/2).attr("dy",y.line_height*.75).text(g),d++});let p=1.5*y.rect_padding,h=d*y.line_height*.75,o=p+h;return e.append("line").attr("class","req-title-line").attr("x1","0").attr("x2",y.rect_min_width).attr("y1",o).attr("y2",o),{titleNode:u,y:o}},we=(e,t,l,c)=>{let u=e.append("text").attr("class","req reqLabel").attr("id",t).attr("x",y.rect_padding).attr("y",c).attr("dominant-baseline","hanging"),d=0;const p=30;let h=[];return l.forEach(o=>{let g=o.length;for(;g>p&&d<3;){let R=o.substring(0,p);o=o.substring(p,o.length),g=o.length,h[h.length]=R,d++}if(d==3){let R=h[h.length-1];h[h.length-1]=R.substring(0,R.length-4)+"..."}else h[h.length]=o;d=0}),h.forEach(o=>{u.append("tspan").attr("x",y.rect_padding).attr("dy",y.line_height).text(o)}),u},pt=(e,t,l,c)=>{const u=t.node().getTotalLength(),d=t.node().getPointAtLength(u*.5),p="rel"+Se;Se++;const o=e.append("text").attr("class","req relationshipLabel").attr("id",p).attr("x",d.x).attr("y",d.y).attr("text-anchor","middle").attr("dominant-baseline","middle").text(c).node().getBBox();e.insert("rect","#"+p).attr("class","req reqLabelBox").attr("x",d.x-o.width/2).attr("y",d.y-o.height/2).attr("width",o.width).attr("height",o.height).attr("fill","white").attr("fill-opacity","85%")},ft=function(e,t,l,c,u){const d=l.edge(H(t.src),H(t.dst)),p=Qe().x(function(o){return o.x}).y(function(o){return o.y}),h=e.insert("path","#"+c).attr("class","er relationshipLine").attr("d",p(d.points)).attr("fill","none");t.type==u.db.Relationships.CONTAINS?h.attr("marker-start","url("+ke.getUrl(y.arrowMarkerAbsolute)+"#"+t.type+"_line_ending)"):(h.attr("stroke-dasharray","10,7"),h.attr("marker-end","url("+ke.getUrl(y.arrowMarkerAbsolute)+"#"+xe.ReqMarkers.ARROW+"_line_ending)")),pt(e,h,y,`<<${t.type}>>`)},yt=(e,t,l)=>{Object.keys(e).forEach(c=>{let u=e[c];c=H(c),Ne.info("Added new requirement: ",c);const d=l.append("g").attr("id",c),p="req-"+c,h=Ae(d,p);let o=ve(d,c+"_title",[`<<${u.type}>>`,`${u.name}`]);we(d,c+"_body",[`Id: ${u.id}`,`Text: ${u.text}`,`Risk: ${u.risk}`,`Verification: ${u.verifyMethod}`],o.y);const g=h.node().getBBox();t.setNode(c,{width:g.width,height:g.height,shape:"rect",id:c})})},_t=(e,t,l)=>{Object.keys(e).forEach(c=>{let u=e[c];const d=H(c),p=l.append("g").attr("id",d),h="element-"+d,o=Ae(p,h);let g=ve(p,h+"_title",["<>",`${c}`]);we(p,h+"_body",[`Type: ${u.type||"Not Specified"}`,`Doc Ref: ${u.docRef||"None"}`],g.y);const R=o.node().getBBox();t.setNode(d,{width:R.width,height:R.height,shape:"rect",id:d})})},gt=(e,t)=>(e.forEach(function(l){let c=H(l.src),u=H(l.dst);t.setEdge(c,u,{relationship:l})}),e),Et=function(e,t){t.nodes().forEach(function(l){l!==void 0&&t.node(l)!==void 0&&(e.select("#"+l),e.select("#"+l).attr("transform","translate("+(t.node(l).x-t.node(l).width/2)+","+(t.node(l).y-t.node(l).height/2)+" )"))})},H=e=>e.replace(/\s/g,"").replace(/\./g,"_"),Rt=(e,t,l,c)=>{y=Te().requirement;const u=y.securityLevel;let d;u==="sandbox"&&(d=oe("#i"+t));const h=(u==="sandbox"?oe(d.nodes()[0].contentDocument.body):oe("body")).select(`[id='${t}']`);xe.insertLineEndings(h,y);const o=new Ue({multigraph:!1,compound:!1,directed:!0}).setGraph({rankdir:y.layoutDirection,marginx:20,marginy:20,nodesep:100,edgesep:100,ranksep:100}).setDefaultEdgeLabel(function(){return{}});let g=c.db.getRequirements(),R=c.db.getElements(),A=c.db.getRelationships();yt(g,o,h),_t(R,o,h),gt(A,o),Be(o),Et(h,o),A.forEach(function(x){ft(h,x,o,t,c)});const T=y.rect_padding,N=h.node().getBBox(),v=N.width+T*2,k=N.height+T*2;Ye(h,k,v,y.useMaxWidth),h.attr("viewBox",`${N.x-T} ${N.y-T} ${v} ${k}`)},mt={draw:Rt},At={parser:He,db:ct,renderer:mt,styles:ut};export{At as diagram}; diff --git a/assets/sankeyDiagram-04a897e0-KBmVLHBz.js b/assets/sankeyDiagram-04a897e0-KBmVLHBz.js new file mode 100644 index 00000000..457798dc --- /dev/null +++ b/assets/sankeyDiagram-04a897e0-KBmVLHBz.js @@ -0,0 +1,8 @@ +import{c as rt,g as mt,s as kt,a as _t,b as xt,y as vt,x as bt,A as wt,j as St,v as Lt,h as G,u as Et}from"./mermaid.core-B_tqKmhs.js";import{o as At}from"./ordinal-Cboi1Yqb.js";import{s as Tt}from"./Tableau10-B-NsZVaP.js";import"./index-Be9IN4QR.js";import"./init-Gi6I4Gst.js";function ot(t,n){let s;if(n===void 0)for(const a of t)a!=null&&(s=a)&&(s=a);else{let a=-1;for(let u of t)(u=n(u,++a,t))!=null&&(s=u)&&(s=u)}return s}function yt(t,n){let s;if(n===void 0)for(const a of t)a!=null&&(s>a||s===void 0&&a>=a)&&(s=a);else{let a=-1;for(let u of t)(u=n(u,++a,t))!=null&&(s>u||s===void 0&&u>=u)&&(s=u)}return s}function Z(t,n){let s=0;if(n===void 0)for(let a of t)(a=+a)&&(s+=a);else{let a=-1;for(let u of t)(u=+n(u,++a,t))&&(s+=u)}return s}function Mt(t){return t.target.depth}function Nt(t){return t.depth}function Pt(t,n){return n-1-t.height}function dt(t,n){return t.sourceLinks.length?t.depth:n-1}function Ct(t){return t.targetLinks.length?t.depth:t.sourceLinks.length?yt(t.sourceLinks,Mt)-1:0}function Y(t){return function(){return t}}function lt(t,n){return H(t.source,n.source)||t.index-n.index}function at(t,n){return H(t.target,n.target)||t.index-n.index}function H(t,n){return t.y0-n.y0}function J(t){return t.value}function It(t){return t.index}function $t(t){return t.nodes}function Ot(t){return t.links}function ct(t,n){const s=t.get(n);if(!s)throw new Error("missing: "+n);return s}function ut({nodes:t}){for(const n of t){let s=n.y0,a=s;for(const u of n.sourceLinks)u.y0=s+u.width/2,s+=u.width;for(const u of n.targetLinks)u.y1=a+u.width/2,a+=u.width}}function jt(){let t=0,n=0,s=1,a=1,u=24,_=8,g,p=It,i=dt,o,c,m=$t,b=Ot,y=6;function x(){const e={nodes:m.apply(null,arguments),links:b.apply(null,arguments)};return E(e),L(e),A(e),N(e),S(e),ut(e),e}x.update=function(e){return ut(e),e},x.nodeId=function(e){return arguments.length?(p=typeof e=="function"?e:Y(e),x):p},x.nodeAlign=function(e){return arguments.length?(i=typeof e=="function"?e:Y(e),x):i},x.nodeSort=function(e){return arguments.length?(o=e,x):o},x.nodeWidth=function(e){return arguments.length?(u=+e,x):u},x.nodePadding=function(e){return arguments.length?(_=g=+e,x):_},x.nodes=function(e){return arguments.length?(m=typeof e=="function"?e:Y(e),x):m},x.links=function(e){return arguments.length?(b=typeof e=="function"?e:Y(e),x):b},x.linkSort=function(e){return arguments.length?(c=e,x):c},x.size=function(e){return arguments.length?(t=n=0,s=+e[0],a=+e[1],x):[s-t,a-n]},x.extent=function(e){return arguments.length?(t=+e[0][0],s=+e[1][0],n=+e[0][1],a=+e[1][1],x):[[t,n],[s,a]]},x.iterations=function(e){return arguments.length?(y=+e,x):y};function E({nodes:e,links:f}){for(const[h,r]of e.entries())r.index=h,r.sourceLinks=[],r.targetLinks=[];const l=new Map(e.map((h,r)=>[p(h,r,e),h]));for(const[h,r]of f.entries()){r.index=h;let{source:k,target:v}=r;typeof k!="object"&&(k=r.source=ct(l,k)),typeof v!="object"&&(v=r.target=ct(l,v)),k.sourceLinks.push(r),v.targetLinks.push(r)}if(c!=null)for(const{sourceLinks:h,targetLinks:r}of e)h.sort(c),r.sort(c)}function L({nodes:e}){for(const f of e)f.value=f.fixedValue===void 0?Math.max(Z(f.sourceLinks,J),Z(f.targetLinks,J)):f.fixedValue}function A({nodes:e}){const f=e.length;let l=new Set(e),h=new Set,r=0;for(;l.size;){for(const k of l){k.depth=r;for(const{target:v}of k.sourceLinks)h.add(v)}if(++r>f)throw new Error("circular link");l=h,h=new Set}}function N({nodes:e}){const f=e.length;let l=new Set(e),h=new Set,r=0;for(;l.size;){for(const k of l){k.height=r;for(const{source:v}of k.targetLinks)h.add(v)}if(++r>f)throw new Error("circular link");l=h,h=new Set}}function I({nodes:e}){const f=ot(e,r=>r.depth)+1,l=(s-t-u)/(f-1),h=new Array(f);for(const r of e){const k=Math.max(0,Math.min(f-1,Math.floor(i.call(null,r,f))));r.layer=k,r.x0=t+k*l,r.x1=r.x0+u,h[k]?h[k].push(r):h[k]=[r]}if(o)for(const r of h)r.sort(o);return h}function j(e){const f=yt(e,l=>(a-n-(l.length-1)*g)/Z(l,J));for(const l of e){let h=n;for(const r of l){r.y0=h,r.y1=h+r.value*f,h=r.y1+g;for(const k of r.sourceLinks)k.width=k.value*f}h=(a-h+g)/(l.length+1);for(let r=0;rl.length)-1)),j(f);for(let l=0;l0))continue;let U=(R/z-v.y0)*f;v.y0+=U,v.y1+=U,w(v)}o===void 0&&k.sort(H),P(k,l)}}function O(e,f,l){for(let h=e.length,r=h-2;r>=0;--r){const k=e[r];for(const v of k){let R=0,z=0;for(const{target:W,value:K}of v.sourceLinks){let F=K*(W.layer-v.layer);R+=V(v,W)*F,z+=F}if(!(z>0))continue;let U=(R/z-v.y0)*f;v.y0+=U,v.y1+=U,w(v)}o===void 0&&k.sort(H),P(k,l)}}function P(e,f){const l=e.length>>1,h=e[l];d(e,h.y0-g,l-1,f),C(e,h.y1+g,l+1,f),d(e,a,e.length-1,f),C(e,n,0,f)}function C(e,f,l,h){for(;l1e-6&&(r.y0+=k,r.y1+=k),f=r.y1+g}}function d(e,f,l,h){for(;l>=0;--l){const r=e[l],k=(r.y1-f)*h;k>1e-6&&(r.y0-=k,r.y1-=k),f=r.y0-g}}function w({sourceLinks:e,targetLinks:f}){if(c===void 0){for(const{source:{sourceLinks:l}}of f)l.sort(at);for(const{target:{targetLinks:l}}of e)l.sort(lt)}}function $(e){if(c===void 0)for(const{sourceLinks:f,targetLinks:l}of e)f.sort(at),l.sort(lt)}function T(e,f){let l=e.y0-(e.sourceLinks.length-1)*g/2;for(const{target:h,width:r}of e.sourceLinks){if(h===f)break;l+=r+g}for(const{source:h,width:r}of f.targetLinks){if(h===e)break;l-=r}return l}function V(e,f){let l=f.y0-(f.targetLinks.length-1)*g/2;for(const{source:h,width:r}of f.targetLinks){if(h===e)break;l+=r+g}for(const{target:h,width:r}of e.sourceLinks){if(h===f)break;l-=r}return l}return x}var tt=Math.PI,et=2*tt,D=1e-6,zt=et-D;function nt(){this._x0=this._y0=this._x1=this._y1=null,this._=""}function gt(){return new nt}nt.prototype=gt.prototype={constructor:nt,moveTo:function(t,n){this._+="M"+(this._x0=this._x1=+t)+","+(this._y0=this._y1=+n)},closePath:function(){this._x1!==null&&(this._x1=this._x0,this._y1=this._y0,this._+="Z")},lineTo:function(t,n){this._+="L"+(this._x1=+t)+","+(this._y1=+n)},quadraticCurveTo:function(t,n,s,a){this._+="Q"+ +t+","+ +n+","+(this._x1=+s)+","+(this._y1=+a)},bezierCurveTo:function(t,n,s,a,u,_){this._+="C"+ +t+","+ +n+","+ +s+","+ +a+","+(this._x1=+u)+","+(this._y1=+_)},arcTo:function(t,n,s,a,u){t=+t,n=+n,s=+s,a=+a,u=+u;var _=this._x1,g=this._y1,p=s-t,i=a-n,o=_-t,c=g-n,m=o*o+c*c;if(u<0)throw new Error("negative radius: "+u);if(this._x1===null)this._+="M"+(this._x1=t)+","+(this._y1=n);else if(m>D)if(!(Math.abs(c*p-i*o)>D)||!u)this._+="L"+(this._x1=t)+","+(this._y1=n);else{var b=s-_,y=a-g,x=p*p+i*i,E=b*b+y*y,L=Math.sqrt(x),A=Math.sqrt(m),N=u*Math.tan((tt-Math.acos((x+m-E)/(2*L*A)))/2),I=N/A,j=N/L;Math.abs(I-1)>D&&(this._+="L"+(t+I*o)+","+(n+I*c)),this._+="A"+u+","+u+",0,0,"+ +(c*b>o*y)+","+(this._x1=t+j*p)+","+(this._y1=n+j*i)}},arc:function(t,n,s,a,u,_){t=+t,n=+n,s=+s,_=!!_;var g=s*Math.cos(a),p=s*Math.sin(a),i=t+g,o=n+p,c=1^_,m=_?a-u:u-a;if(s<0)throw new Error("negative radius: "+s);this._x1===null?this._+="M"+i+","+o:(Math.abs(this._x1-i)>D||Math.abs(this._y1-o)>D)&&(this._+="L"+i+","+o),s&&(m<0&&(m=m%et+et),m>zt?this._+="A"+s+","+s+",0,1,"+c+","+(t-g)+","+(n-p)+"A"+s+","+s+",0,1,"+c+","+(this._x1=i)+","+(this._y1=o):m>D&&(this._+="A"+s+","+s+",0,"+ +(m>=tt)+","+c+","+(this._x1=t+s*Math.cos(u))+","+(this._y1=n+s*Math.sin(u))))},rect:function(t,n,s,a){this._+="M"+(this._x0=this._x1=+t)+","+(this._y0=this._y1=+n)+"h"+ +s+"v"+ +a+"h"+-s+"Z"},toString:function(){return this._}};function ht(t){return function(){return t}}function Dt(t){return t[0]}function Bt(t){return t[1]}var Vt=Array.prototype.slice;function Rt(t){return t.source}function Ut(t){return t.target}function Wt(t){var n=Rt,s=Ut,a=Dt,u=Bt,_=null;function g(){var p,i=Vt.call(arguments),o=n.apply(this,i),c=s.apply(this,i);if(_||(_=p=gt()),t(_,+a.apply(this,(i[0]=o,i)),+u.apply(this,i),+a.apply(this,(i[0]=c,i)),+u.apply(this,i)),p)return _=null,p+""||null}return g.source=function(p){return arguments.length?(n=p,g):n},g.target=function(p){return arguments.length?(s=p,g):s},g.x=function(p){return arguments.length?(a=typeof p=="function"?p:ht(+p),g):a},g.y=function(p){return arguments.length?(u=typeof p=="function"?p:ht(+p),g):u},g.context=function(p){return arguments.length?(_=p??null,g):_},g}function Ft(t,n,s,a,u){t.moveTo(n,s),t.bezierCurveTo(n=(n+a)/2,s,n,u,a,u)}function Gt(){return Wt(Ft)}function Yt(t){return[t.source.x1,t.y0]}function Ht(t){return[t.target.x0,t.y1]}function Xt(){return Gt().source(Yt).target(Ht)}var it=function(){var t=function(p,i,o,c){for(o=o||{},c=p.length;c--;o[p[c]]=i);return o},n=[1,9],s=[1,10],a=[1,5,10,12],u={trace:function(){},yy:{},symbols_:{error:2,start:3,SANKEY:4,NEWLINE:5,csv:6,opt_eof:7,record:8,csv_tail:9,EOF:10,"field[source]":11,COMMA:12,"field[target]":13,"field[value]":14,field:15,escaped:16,non_escaped:17,DQUOTE:18,ESCAPED_TEXT:19,NON_ESCAPED_TEXT:20,$accept:0,$end:1},terminals_:{2:"error",4:"SANKEY",5:"NEWLINE",10:"EOF",11:"field[source]",12:"COMMA",13:"field[target]",14:"field[value]",18:"DQUOTE",19:"ESCAPED_TEXT",20:"NON_ESCAPED_TEXT"},productions_:[0,[3,4],[6,2],[9,2],[9,0],[7,1],[7,0],[8,5],[15,1],[15,1],[16,3],[17,1]],performAction:function(i,o,c,m,b,y,x){var E=y.length-1;switch(b){case 7:const L=m.findOrCreateNode(y[E-4].trim().replaceAll('""','"')),A=m.findOrCreateNode(y[E-2].trim().replaceAll('""','"')),N=parseFloat(y[E].trim());m.addLink(L,A,N);break;case 8:case 9:case 11:this.$=y[E];break;case 10:this.$=y[E-1];break}},table:[{3:1,4:[1,2]},{1:[3]},{5:[1,3]},{6:4,8:5,15:6,16:7,17:8,18:n,20:s},{1:[2,6],7:11,10:[1,12]},t(s,[2,4],{9:13,5:[1,14]}),{12:[1,15]},t(a,[2,8]),t(a,[2,9]),{19:[1,16]},t(a,[2,11]),{1:[2,1]},{1:[2,5]},t(s,[2,2]),{6:17,8:5,15:6,16:7,17:8,18:n,20:s},{15:18,16:7,17:8,18:n,20:s},{18:[1,19]},t(s,[2,3]),{12:[1,20]},t(a,[2,10]),{15:21,16:7,17:8,18:n,20:s},t([1,5,10],[2,7])],defaultActions:{11:[2,1],12:[2,5]},parseError:function(i,o){if(o.recoverable)this.trace(i);else{var c=new Error(i);throw c.hash=o,c}},parse:function(i){var o=this,c=[0],m=[],b=[null],y=[],x=this.table,E="",L=0,A=0,N=2,I=1,j=y.slice.call(arguments,1),S=Object.create(this.lexer),M={yy:{}};for(var O in this.yy)Object.prototype.hasOwnProperty.call(this.yy,O)&&(M.yy[O]=this.yy[O]);S.setInput(i,M.yy),M.yy.lexer=S,M.yy.parser=this,typeof S.yylloc>"u"&&(S.yylloc={});var P=S.yylloc;y.push(P);var C=S.options&&S.options.ranges;typeof M.yy.parseError=="function"?this.parseError=M.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function d(){var v;return v=m.pop()||S.lex()||I,typeof v!="number"&&(v instanceof Array&&(m=v,v=m.pop()),v=o.symbols_[v]||v),v}for(var w,$,T,V,e={},f,l,h,r;;){if($=c[c.length-1],this.defaultActions[$]?T=this.defaultActions[$]:((w===null||typeof w>"u")&&(w=d()),T=x[$]&&x[$][w]),typeof T>"u"||!T.length||!T[0]){var k="";r=[];for(f in x[$])this.terminals_[f]&&f>N&&r.push("'"+this.terminals_[f]+"'");S.showPosition?k="Parse error on line "+(L+1)+`: +`+S.showPosition()+` +Expecting `+r.join(", ")+", got '"+(this.terminals_[w]||w)+"'":k="Parse error on line "+(L+1)+": Unexpected "+(w==I?"end of input":"'"+(this.terminals_[w]||w)+"'"),this.parseError(k,{text:S.match,token:this.terminals_[w]||w,line:S.yylineno,loc:P,expected:r})}if(T[0]instanceof Array&&T.length>1)throw new Error("Parse Error: multiple actions possible at state: "+$+", token: "+w);switch(T[0]){case 1:c.push(w),b.push(S.yytext),y.push(S.yylloc),c.push(T[1]),w=null,A=S.yyleng,E=S.yytext,L=S.yylineno,P=S.yylloc;break;case 2:if(l=this.productions_[T[1]][1],e.$=b[b.length-l],e._$={first_line:y[y.length-(l||1)].first_line,last_line:y[y.length-1].last_line,first_column:y[y.length-(l||1)].first_column,last_column:y[y.length-1].last_column},C&&(e._$.range=[y[y.length-(l||1)].range[0],y[y.length-1].range[1]]),V=this.performAction.apply(e,[E,A,L,M.yy,T[1],b,y].concat(j)),typeof V<"u")return V;l&&(c=c.slice(0,-1*l*2),b=b.slice(0,-1*l),y=y.slice(0,-1*l)),c.push(this.productions_[T[1]][0]),b.push(e.$),y.push(e._$),h=x[c[c.length-2]][c[c.length-1]],c.push(h);break;case 3:return!0}}return!0}},_=function(){var p={EOF:1,parseError:function(o,c){if(this.yy.parser)this.yy.parser.parseError(o,c);else throw new Error(o)},setInput:function(i,o){return this.yy=o||this.yy||{},this._input=i,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var i=this._input[0];this.yytext+=i,this.yyleng++,this.offset++,this.match+=i,this.matched+=i;var o=i.match(/(?:\r\n?|\n).*/g);return o?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),i},unput:function(i){var o=i.length,c=i.split(/(?:\r\n?|\n)/g);this._input=i+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-o),this.offset-=o;var m=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),c.length-1&&(this.yylineno-=c.length-1);var b=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:c?(c.length===m.length?this.yylloc.first_column:0)+m[m.length-c.length].length-c[0].length:this.yylloc.first_column-o},this.options.ranges&&(this.yylloc.range=[b[0],b[0]+this.yyleng-o]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true). +`+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},less:function(i){this.unput(this.match.slice(i))},pastInput:function(){var i=this.matched.substr(0,this.matched.length-this.match.length);return(i.length>20?"...":"")+i.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var i=this.match;return i.length<20&&(i+=this._input.substr(0,20-i.length)),(i.substr(0,20)+(i.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var i=this.pastInput(),o=new Array(i.length+1).join("-");return i+this.upcomingInput()+` +`+o+"^"},test_match:function(i,o){var c,m,b;if(this.options.backtrack_lexer&&(b={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(b.yylloc.range=this.yylloc.range.slice(0))),m=i[0].match(/(?:\r\n?|\n).*/g),m&&(this.yylineno+=m.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:m?m[m.length-1].length-m[m.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+i[0].length},this.yytext+=i[0],this.match+=i[0],this.matches=i,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(i[0].length),this.matched+=i[0],c=this.performAction.call(this,this.yy,this,o,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),c)return c;if(this._backtrack){for(var y in b)this[y]=b[y];return!1}return!1},next:function(){if(this.done)return this.EOF;this._input||(this.done=!0);var i,o,c,m;this._more||(this.yytext="",this.match="");for(var b=this._currentRules(),y=0;yo[0].length)){if(o=c,m=y,this.options.backtrack_lexer){if(i=this.test_match(c,b[y]),i!==!1)return i;if(this._backtrack){o=!1;continue}else return!1}else if(!this.options.flex)break}return o?(i=this.test_match(o,b[m]),i!==!1?i:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text. +`+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var o=this.next();return o||this.lex()},begin:function(o){this.conditionStack.push(o)},popState:function(){var o=this.conditionStack.length-1;return o>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(o){return o=this.conditionStack.length-1-Math.abs(o||0),o>=0?this.conditionStack[o]:"INITIAL"},pushState:function(o){this.begin(o)},stateStackSize:function(){return this.conditionStack.length},options:{"case-insensitive":!0},performAction:function(o,c,m,b){switch(m){case 0:return this.pushState("csv"),4;case 1:return 10;case 2:return 5;case 3:return 12;case 4:return this.pushState("escaped_text"),18;case 5:return 20;case 6:return this.popState("escaped_text"),18;case 7:return 19}},rules:[/^(?:sankey-beta\b)/i,/^(?:$)/i,/^(?:((\u000D\u000A)|(\u000A)))/i,/^(?:(\u002C))/i,/^(?:(\u0022))/i,/^(?:([\u0020-\u0021\u0023-\u002B\u002D-\u007E])*)/i,/^(?:(\u0022)(?!(\u0022)))/i,/^(?:(([\u0020-\u0021\u0023-\u002B\u002D-\u007E])|(\u002C)|(\u000D)|(\u000A)|(\u0022)(\u0022))*)/i],conditions:{csv:{rules:[1,2,3,4,5,6,7],inclusive:!1},escaped_text:{rules:[6,7],inclusive:!1},INITIAL:{rules:[0,1,2,3,4,5,6,7],inclusive:!0}}};return p}();u.lexer=_;function g(){this.yy={}}return g.prototype=u,u.Parser=g,new g}();it.parser=it;const X=it;let q=[],Q=[],B={};const qt=()=>{q=[],Q=[],B={},wt()};class Qt{constructor(n,s,a=0){this.source=n,this.target=s,this.value=a}}const Kt=(t,n,s)=>{q.push(new Qt(t,n,s))};class Zt{constructor(n){this.ID=n}}const Jt=t=>(t=St.sanitizeText(t,rt()),B[t]||(B[t]=new Zt(t),Q.push(B[t])),B[t]),te=()=>Q,ee=()=>q,ne=()=>({nodes:Q.map(t=>({id:t.ID})),links:q.map(t=>({source:t.source.ID,target:t.target.ID,value:t.value}))}),ie={nodesMap:B,getConfig:()=>rt().sankey,getNodes:te,getLinks:ee,getGraph:ne,addLink:Kt,findOrCreateNode:Jt,getAccTitle:mt,setAccTitle:kt,getAccDescription:_t,setAccDescription:xt,getDiagramTitle:vt,setDiagramTitle:bt,clear:qt},pt=class st{static next(n){return new st(n+ ++st.count)}constructor(n){this.id=n,this.href=`#${n}`}toString(){return"url("+this.href+")"}};pt.count=0;let ft=pt;const se={left:Nt,right:Pt,center:Ct,justify:dt},re=function(t,n,s,a){const{securityLevel:u,sankey:_}=rt(),g=Lt.sankey;let p;u==="sandbox"&&(p=G("#i"+n));const i=u==="sandbox"?G(p.nodes()[0].contentDocument.body):G("body"),o=u==="sandbox"?i.select(`[id="${n}"]`):G(`[id="${n}"]`),c=_?.width??g.width,m=_?.height??g.width,b=_?.useMaxWidth??g.useMaxWidth,y=_?.nodeAlignment??g.nodeAlignment,x=_?.prefix??g.prefix,E=_?.suffix??g.suffix,L=_?.showValues??g.showValues,A=a.db.getGraph(),N=se[y];jt().nodeId(d=>d.id).nodeWidth(10).nodePadding(10+(L?15:0)).nodeAlign(N).extent([[0,0],[c,m]])(A);const S=At(Tt);o.append("g").attr("class","nodes").selectAll(".node").data(A.nodes).join("g").attr("class","node").attr("id",d=>(d.uid=ft.next("node-")).id).attr("transform",function(d){return"translate("+d.x0+","+d.y0+")"}).attr("x",d=>d.x0).attr("y",d=>d.y0).append("rect").attr("height",d=>d.y1-d.y0).attr("width",d=>d.x1-d.x0).attr("fill",d=>S(d.id));const M=({id:d,value:w})=>L?`${d} +${x}${Math.round(w*100)/100}${E}`:d;o.append("g").attr("class","node-labels").attr("font-family","sans-serif").attr("font-size",14).selectAll("text").data(A.nodes).join("text").attr("x",d=>d.x0(d.y1+d.y0)/2).attr("dy",`${L?"0":"0.35"}em`).attr("text-anchor",d=>d.x0(w.uid=ft.next("linearGradient-")).id).attr("gradientUnits","userSpaceOnUse").attr("x1",w=>w.source.x1).attr("x2",w=>w.target.x0);d.append("stop").attr("offset","0%").attr("stop-color",w=>S(w.source.id)),d.append("stop").attr("offset","100%").attr("stop-color",w=>S(w.target.id))}let C;switch(P){case"gradient":C=d=>d.uid;break;case"source":C=d=>S(d.source.id);break;case"target":C=d=>S(d.target.id);break;default:C=P}O.append("path").attr("d",Xt()).attr("stroke",C).attr("stroke-width",d=>Math.max(1,d.width)),Et(void 0,o,0,b)},oe={draw:re},le=t=>t.replaceAll(/^[^\S\n\r]+|[^\S\n\r]+$/g,"").replaceAll(/([\n\r])+/g,` +`).trim(),ae=X.parse.bind(X);X.parse=t=>ae(le(t));const de={parser:X,db:ie,renderer:oe};export{de as diagram}; diff --git a/assets/sequenceDiagram-704730f1-Bf_KtpsE.js b/assets/sequenceDiagram-704730f1-Bf_KtpsE.js new file mode 100644 index 00000000..b1e2857b --- /dev/null +++ b/assets/sequenceDiagram-704730f1-Bf_KtpsE.js @@ -0,0 +1,122 @@ +import{g as we,y as ve,x as _e,c as st,s as $t,b as ke,a as Pe,A as Le,l as X,d as At,j as v,e as Ie,h as Lt,i as Ae,z as B,a_ as nt,a$ as wt,m as te,r as ee,aZ as Bt,aL as se,b0 as Ne}from"./mermaid.core-B_tqKmhs.js";import{d as Se,a as Me,g as Nt,b as zt,c as Re,e as Ce}from"./svgDrawCommon-08f97a94-Dr3rJKJn.js";import"./index-Be9IN4QR.js";var Yt=function(){var t=function(dt,w,k,L){for(k=k||{},L=dt.length;L--;k[dt[L]]=w);return k},e=[1,2],c=[1,3],s=[1,4],i=[2,4],a=[1,9],o=[1,11],l=[1,13],p=[1,14],r=[1,16],x=[1,17],T=[1,18],u=[1,24],g=[1,25],m=[1,26],_=[1,27],I=[1,28],V=[1,29],S=[1,30],O=[1,31],R=[1,32],q=[1,33],z=[1,34],J=[1,35],$=[1,36],H=[1,37],U=[1,38],F=[1,39],W=[1,41],Z=[1,42],K=[1,43],Q=[1,44],tt=[1,45],N=[1,46],y=[1,4,5,13,14,16,18,21,23,29,30,31,33,35,36,37,38,39,41,43,44,46,47,48,49,50,52,53,54,59,60,61,62,70],P=[4,5,16,50,52,53],j=[4,5,13,14,16,18,21,23,29,30,31,33,35,36,37,38,39,41,43,44,46,50,52,53,54,59,60,61,62,70],rt=[4,5,13,14,16,18,21,23,29,30,31,33,35,36,37,38,39,41,43,44,46,49,50,52,53,54,59,60,61,62,70],A=[4,5,13,14,16,18,21,23,29,30,31,33,35,36,37,38,39,41,43,44,46,48,50,52,53,54,59,60,61,62,70],Gt=[4,5,13,14,16,18,21,23,29,30,31,33,35,36,37,38,39,41,43,44,46,47,50,52,53,54,59,60,61,62,70],ht=[68,69,70],ot=[1,120],Mt={trace:function(){},yy:{},symbols_:{error:2,start:3,SPACE:4,NEWLINE:5,SD:6,document:7,line:8,statement:9,box_section:10,box_line:11,participant_statement:12,create:13,box:14,restOfLine:15,end:16,signal:17,autonumber:18,NUM:19,off:20,activate:21,actor:22,deactivate:23,note_statement:24,links_statement:25,link_statement:26,properties_statement:27,details_statement:28,title:29,legacy_title:30,acc_title:31,acc_title_value:32,acc_descr:33,acc_descr_value:34,acc_descr_multiline_value:35,loop:36,rect:37,opt:38,alt:39,else_sections:40,par:41,par_sections:42,par_over:43,critical:44,option_sections:45,break:46,option:47,and:48,else:49,participant:50,AS:51,participant_actor:52,destroy:53,note:54,placement:55,text2:56,over:57,actor_pair:58,links:59,link:60,properties:61,details:62,spaceList:63,",":64,left_of:65,right_of:66,signaltype:67,"+":68,"-":69,ACTOR:70,SOLID_OPEN_ARROW:71,DOTTED_OPEN_ARROW:72,SOLID_ARROW:73,DOTTED_ARROW:74,SOLID_CROSS:75,DOTTED_CROSS:76,SOLID_POINT:77,DOTTED_POINT:78,TXT:79,$accept:0,$end:1},terminals_:{2:"error",4:"SPACE",5:"NEWLINE",6:"SD",13:"create",14:"box",15:"restOfLine",16:"end",18:"autonumber",19:"NUM",20:"off",21:"activate",23:"deactivate",29:"title",30:"legacy_title",31:"acc_title",32:"acc_title_value",33:"acc_descr",34:"acc_descr_value",35:"acc_descr_multiline_value",36:"loop",37:"rect",38:"opt",39:"alt",41:"par",43:"par_over",44:"critical",46:"break",47:"option",48:"and",49:"else",50:"participant",51:"AS",52:"participant_actor",53:"destroy",54:"note",57:"over",59:"links",60:"link",61:"properties",62:"details",64:",",65:"left_of",66:"right_of",68:"+",69:"-",70:"ACTOR",71:"SOLID_OPEN_ARROW",72:"DOTTED_OPEN_ARROW",73:"SOLID_ARROW",74:"DOTTED_ARROW",75:"SOLID_CROSS",76:"DOTTED_CROSS",77:"SOLID_POINT",78:"DOTTED_POINT",79:"TXT"},productions_:[0,[3,2],[3,2],[3,2],[7,0],[7,2],[8,2],[8,1],[8,1],[10,0],[10,2],[11,2],[11,1],[11,1],[9,1],[9,2],[9,4],[9,2],[9,4],[9,3],[9,3],[9,2],[9,3],[9,3],[9,2],[9,2],[9,2],[9,2],[9,2],[9,1],[9,1],[9,2],[9,2],[9,1],[9,4],[9,4],[9,4],[9,4],[9,4],[9,4],[9,4],[9,4],[45,1],[45,4],[42,1],[42,4],[40,1],[40,4],[12,5],[12,3],[12,5],[12,3],[12,3],[24,4],[24,4],[25,3],[26,3],[27,3],[28,3],[63,2],[63,1],[58,3],[58,1],[55,1],[55,1],[17,5],[17,5],[17,4],[22,1],[67,1],[67,1],[67,1],[67,1],[67,1],[67,1],[67,1],[67,1],[56,1]],performAction:function(w,k,L,b,M,h,Et){var d=h.length-1;switch(M){case 3:return b.apply(h[d]),h[d];case 4:case 9:this.$=[];break;case 5:case 10:h[d-1].push(h[d]),this.$=h[d-1];break;case 6:case 7:case 11:case 12:this.$=h[d];break;case 8:case 13:this.$=[];break;case 15:h[d].type="createParticipant",this.$=h[d];break;case 16:h[d-1].unshift({type:"boxStart",boxData:b.parseBoxData(h[d-2])}),h[d-1].push({type:"boxEnd",boxText:h[d-2]}),this.$=h[d-1];break;case 18:this.$={type:"sequenceIndex",sequenceIndex:Number(h[d-2]),sequenceIndexStep:Number(h[d-1]),sequenceVisible:!0,signalType:b.LINETYPE.AUTONUMBER};break;case 19:this.$={type:"sequenceIndex",sequenceIndex:Number(h[d-1]),sequenceIndexStep:1,sequenceVisible:!0,signalType:b.LINETYPE.AUTONUMBER};break;case 20:this.$={type:"sequenceIndex",sequenceVisible:!1,signalType:b.LINETYPE.AUTONUMBER};break;case 21:this.$={type:"sequenceIndex",sequenceVisible:!0,signalType:b.LINETYPE.AUTONUMBER};break;case 22:this.$={type:"activeStart",signalType:b.LINETYPE.ACTIVE_START,actor:h[d-1]};break;case 23:this.$={type:"activeEnd",signalType:b.LINETYPE.ACTIVE_END,actor:h[d-1]};break;case 29:b.setDiagramTitle(h[d].substring(6)),this.$=h[d].substring(6);break;case 30:b.setDiagramTitle(h[d].substring(7)),this.$=h[d].substring(7);break;case 31:this.$=h[d].trim(),b.setAccTitle(this.$);break;case 32:case 33:this.$=h[d].trim(),b.setAccDescription(this.$);break;case 34:h[d-1].unshift({type:"loopStart",loopText:b.parseMessage(h[d-2]),signalType:b.LINETYPE.LOOP_START}),h[d-1].push({type:"loopEnd",loopText:h[d-2],signalType:b.LINETYPE.LOOP_END}),this.$=h[d-1];break;case 35:h[d-1].unshift({type:"rectStart",color:b.parseMessage(h[d-2]),signalType:b.LINETYPE.RECT_START}),h[d-1].push({type:"rectEnd",color:b.parseMessage(h[d-2]),signalType:b.LINETYPE.RECT_END}),this.$=h[d-1];break;case 36:h[d-1].unshift({type:"optStart",optText:b.parseMessage(h[d-2]),signalType:b.LINETYPE.OPT_START}),h[d-1].push({type:"optEnd",optText:b.parseMessage(h[d-2]),signalType:b.LINETYPE.OPT_END}),this.$=h[d-1];break;case 37:h[d-1].unshift({type:"altStart",altText:b.parseMessage(h[d-2]),signalType:b.LINETYPE.ALT_START}),h[d-1].push({type:"altEnd",signalType:b.LINETYPE.ALT_END}),this.$=h[d-1];break;case 38:h[d-1].unshift({type:"parStart",parText:b.parseMessage(h[d-2]),signalType:b.LINETYPE.PAR_START}),h[d-1].push({type:"parEnd",signalType:b.LINETYPE.PAR_END}),this.$=h[d-1];break;case 39:h[d-1].unshift({type:"parStart",parText:b.parseMessage(h[d-2]),signalType:b.LINETYPE.PAR_OVER_START}),h[d-1].push({type:"parEnd",signalType:b.LINETYPE.PAR_END}),this.$=h[d-1];break;case 40:h[d-1].unshift({type:"criticalStart",criticalText:b.parseMessage(h[d-2]),signalType:b.LINETYPE.CRITICAL_START}),h[d-1].push({type:"criticalEnd",signalType:b.LINETYPE.CRITICAL_END}),this.$=h[d-1];break;case 41:h[d-1].unshift({type:"breakStart",breakText:b.parseMessage(h[d-2]),signalType:b.LINETYPE.BREAK_START}),h[d-1].push({type:"breakEnd",optText:b.parseMessage(h[d-2]),signalType:b.LINETYPE.BREAK_END}),this.$=h[d-1];break;case 43:this.$=h[d-3].concat([{type:"option",optionText:b.parseMessage(h[d-1]),signalType:b.LINETYPE.CRITICAL_OPTION},h[d]]);break;case 45:this.$=h[d-3].concat([{type:"and",parText:b.parseMessage(h[d-1]),signalType:b.LINETYPE.PAR_AND},h[d]]);break;case 47:this.$=h[d-3].concat([{type:"else",altText:b.parseMessage(h[d-1]),signalType:b.LINETYPE.ALT_ELSE},h[d]]);break;case 48:h[d-3].draw="participant",h[d-3].type="addParticipant",h[d-3].description=b.parseMessage(h[d-1]),this.$=h[d-3];break;case 49:h[d-1].draw="participant",h[d-1].type="addParticipant",this.$=h[d-1];break;case 50:h[d-3].draw="actor",h[d-3].type="addParticipant",h[d-3].description=b.parseMessage(h[d-1]),this.$=h[d-3];break;case 51:h[d-1].draw="actor",h[d-1].type="addParticipant",this.$=h[d-1];break;case 52:h[d-1].type="destroyParticipant",this.$=h[d-1];break;case 53:this.$=[h[d-1],{type:"addNote",placement:h[d-2],actor:h[d-1].actor,text:h[d]}];break;case 54:h[d-2]=[].concat(h[d-1],h[d-1]).slice(0,2),h[d-2][0]=h[d-2][0].actor,h[d-2][1]=h[d-2][1].actor,this.$=[h[d-1],{type:"addNote",placement:b.PLACEMENT.OVER,actor:h[d-2].slice(0,2),text:h[d]}];break;case 55:this.$=[h[d-1],{type:"addLinks",actor:h[d-1].actor,text:h[d]}];break;case 56:this.$=[h[d-1],{type:"addALink",actor:h[d-1].actor,text:h[d]}];break;case 57:this.$=[h[d-1],{type:"addProperties",actor:h[d-1].actor,text:h[d]}];break;case 58:this.$=[h[d-1],{type:"addDetails",actor:h[d-1].actor,text:h[d]}];break;case 61:this.$=[h[d-2],h[d]];break;case 62:this.$=h[d];break;case 63:this.$=b.PLACEMENT.LEFTOF;break;case 64:this.$=b.PLACEMENT.RIGHTOF;break;case 65:this.$=[h[d-4],h[d-1],{type:"addMessage",from:h[d-4].actor,to:h[d-1].actor,signalType:h[d-3],msg:h[d],activate:!0},{type:"activeStart",signalType:b.LINETYPE.ACTIVE_START,actor:h[d-1]}];break;case 66:this.$=[h[d-4],h[d-1],{type:"addMessage",from:h[d-4].actor,to:h[d-1].actor,signalType:h[d-3],msg:h[d]},{type:"activeEnd",signalType:b.LINETYPE.ACTIVE_END,actor:h[d-4]}];break;case 67:this.$=[h[d-3],h[d-1],{type:"addMessage",from:h[d-3].actor,to:h[d-1].actor,signalType:h[d-2],msg:h[d]}];break;case 68:this.$={type:"addParticipant",actor:h[d]};break;case 69:this.$=b.LINETYPE.SOLID_OPEN;break;case 70:this.$=b.LINETYPE.DOTTED_OPEN;break;case 71:this.$=b.LINETYPE.SOLID;break;case 72:this.$=b.LINETYPE.DOTTED;break;case 73:this.$=b.LINETYPE.SOLID_CROSS;break;case 74:this.$=b.LINETYPE.DOTTED_CROSS;break;case 75:this.$=b.LINETYPE.SOLID_POINT;break;case 76:this.$=b.LINETYPE.DOTTED_POINT;break;case 77:this.$=b.parseMessage(h[d].trim().substring(1));break}},table:[{3:1,4:e,5:c,6:s},{1:[3]},{3:5,4:e,5:c,6:s},{3:6,4:e,5:c,6:s},t([1,4,5,13,14,18,21,23,29,30,31,33,35,36,37,38,39,41,43,44,46,50,52,53,54,59,60,61,62,70],i,{7:7}),{1:[2,1]},{1:[2,2]},{1:[2,3],4:a,5:o,8:8,9:10,12:12,13:l,14:p,17:15,18:r,21:x,22:40,23:T,24:19,25:20,26:21,27:22,28:23,29:u,30:g,31:m,33:_,35:I,36:V,37:S,38:O,39:R,41:q,43:z,44:J,46:$,50:H,52:U,53:F,54:W,59:Z,60:K,61:Q,62:tt,70:N},t(y,[2,5]),{9:47,12:12,13:l,14:p,17:15,18:r,21:x,22:40,23:T,24:19,25:20,26:21,27:22,28:23,29:u,30:g,31:m,33:_,35:I,36:V,37:S,38:O,39:R,41:q,43:z,44:J,46:$,50:H,52:U,53:F,54:W,59:Z,60:K,61:Q,62:tt,70:N},t(y,[2,7]),t(y,[2,8]),t(y,[2,14]),{12:48,50:H,52:U,53:F},{15:[1,49]},{5:[1,50]},{5:[1,53],19:[1,51],20:[1,52]},{22:54,70:N},{22:55,70:N},{5:[1,56]},{5:[1,57]},{5:[1,58]},{5:[1,59]},{5:[1,60]},t(y,[2,29]),t(y,[2,30]),{32:[1,61]},{34:[1,62]},t(y,[2,33]),{15:[1,63]},{15:[1,64]},{15:[1,65]},{15:[1,66]},{15:[1,67]},{15:[1,68]},{15:[1,69]},{15:[1,70]},{22:71,70:N},{22:72,70:N},{22:73,70:N},{67:74,71:[1,75],72:[1,76],73:[1,77],74:[1,78],75:[1,79],76:[1,80],77:[1,81],78:[1,82]},{55:83,57:[1,84],65:[1,85],66:[1,86]},{22:87,70:N},{22:88,70:N},{22:89,70:N},{22:90,70:N},t([5,51,64,71,72,73,74,75,76,77,78,79],[2,68]),t(y,[2,6]),t(y,[2,15]),t(P,[2,9],{10:91}),t(y,[2,17]),{5:[1,93],19:[1,92]},{5:[1,94]},t(y,[2,21]),{5:[1,95]},{5:[1,96]},t(y,[2,24]),t(y,[2,25]),t(y,[2,26]),t(y,[2,27]),t(y,[2,28]),t(y,[2,31]),t(y,[2,32]),t(j,i,{7:97}),t(j,i,{7:98}),t(j,i,{7:99}),t(rt,i,{40:100,7:101}),t(A,i,{42:102,7:103}),t(A,i,{7:103,42:104}),t(Gt,i,{45:105,7:106}),t(j,i,{7:107}),{5:[1,109],51:[1,108]},{5:[1,111],51:[1,110]},{5:[1,112]},{22:115,68:[1,113],69:[1,114],70:N},t(ht,[2,69]),t(ht,[2,70]),t(ht,[2,71]),t(ht,[2,72]),t(ht,[2,73]),t(ht,[2,74]),t(ht,[2,75]),t(ht,[2,76]),{22:116,70:N},{22:118,58:117,70:N},{70:[2,63]},{70:[2,64]},{56:119,79:ot},{56:121,79:ot},{56:122,79:ot},{56:123,79:ot},{4:[1,126],5:[1,128],11:125,12:127,16:[1,124],50:H,52:U,53:F},{5:[1,129]},t(y,[2,19]),t(y,[2,20]),t(y,[2,22]),t(y,[2,23]),{4:a,5:o,8:8,9:10,12:12,13:l,14:p,16:[1,130],17:15,18:r,21:x,22:40,23:T,24:19,25:20,26:21,27:22,28:23,29:u,30:g,31:m,33:_,35:I,36:V,37:S,38:O,39:R,41:q,43:z,44:J,46:$,50:H,52:U,53:F,54:W,59:Z,60:K,61:Q,62:tt,70:N},{4:a,5:o,8:8,9:10,12:12,13:l,14:p,16:[1,131],17:15,18:r,21:x,22:40,23:T,24:19,25:20,26:21,27:22,28:23,29:u,30:g,31:m,33:_,35:I,36:V,37:S,38:O,39:R,41:q,43:z,44:J,46:$,50:H,52:U,53:F,54:W,59:Z,60:K,61:Q,62:tt,70:N},{4:a,5:o,8:8,9:10,12:12,13:l,14:p,16:[1,132],17:15,18:r,21:x,22:40,23:T,24:19,25:20,26:21,27:22,28:23,29:u,30:g,31:m,33:_,35:I,36:V,37:S,38:O,39:R,41:q,43:z,44:J,46:$,50:H,52:U,53:F,54:W,59:Z,60:K,61:Q,62:tt,70:N},{16:[1,133]},{4:a,5:o,8:8,9:10,12:12,13:l,14:p,16:[2,46],17:15,18:r,21:x,22:40,23:T,24:19,25:20,26:21,27:22,28:23,29:u,30:g,31:m,33:_,35:I,36:V,37:S,38:O,39:R,41:q,43:z,44:J,46:$,49:[1,134],50:H,52:U,53:F,54:W,59:Z,60:K,61:Q,62:tt,70:N},{16:[1,135]},{4:a,5:o,8:8,9:10,12:12,13:l,14:p,16:[2,44],17:15,18:r,21:x,22:40,23:T,24:19,25:20,26:21,27:22,28:23,29:u,30:g,31:m,33:_,35:I,36:V,37:S,38:O,39:R,41:q,43:z,44:J,46:$,48:[1,136],50:H,52:U,53:F,54:W,59:Z,60:K,61:Q,62:tt,70:N},{16:[1,137]},{16:[1,138]},{4:a,5:o,8:8,9:10,12:12,13:l,14:p,16:[2,42],17:15,18:r,21:x,22:40,23:T,24:19,25:20,26:21,27:22,28:23,29:u,30:g,31:m,33:_,35:I,36:V,37:S,38:O,39:R,41:q,43:z,44:J,46:$,47:[1,139],50:H,52:U,53:F,54:W,59:Z,60:K,61:Q,62:tt,70:N},{4:a,5:o,8:8,9:10,12:12,13:l,14:p,16:[1,140],17:15,18:r,21:x,22:40,23:T,24:19,25:20,26:21,27:22,28:23,29:u,30:g,31:m,33:_,35:I,36:V,37:S,38:O,39:R,41:q,43:z,44:J,46:$,50:H,52:U,53:F,54:W,59:Z,60:K,61:Q,62:tt,70:N},{15:[1,141]},t(y,[2,49]),{15:[1,142]},t(y,[2,51]),t(y,[2,52]),{22:143,70:N},{22:144,70:N},{56:145,79:ot},{56:146,79:ot},{56:147,79:ot},{64:[1,148],79:[2,62]},{5:[2,55]},{5:[2,77]},{5:[2,56]},{5:[2,57]},{5:[2,58]},t(y,[2,16]),t(P,[2,10]),{12:149,50:H,52:U,53:F},t(P,[2,12]),t(P,[2,13]),t(y,[2,18]),t(y,[2,34]),t(y,[2,35]),t(y,[2,36]),t(y,[2,37]),{15:[1,150]},t(y,[2,38]),{15:[1,151]},t(y,[2,39]),t(y,[2,40]),{15:[1,152]},t(y,[2,41]),{5:[1,153]},{5:[1,154]},{56:155,79:ot},{56:156,79:ot},{5:[2,67]},{5:[2,53]},{5:[2,54]},{22:157,70:N},t(P,[2,11]),t(rt,i,{7:101,40:158}),t(A,i,{7:103,42:159}),t(Gt,i,{7:106,45:160}),t(y,[2,48]),t(y,[2,50]),{5:[2,65]},{5:[2,66]},{79:[2,61]},{16:[2,47]},{16:[2,45]},{16:[2,43]}],defaultActions:{5:[2,1],6:[2,2],85:[2,63],86:[2,64],119:[2,55],120:[2,77],121:[2,56],122:[2,57],123:[2,58],145:[2,67],146:[2,53],147:[2,54],155:[2,65],156:[2,66],157:[2,61],158:[2,47],159:[2,45],160:[2,43]},parseError:function(w,k){if(k.recoverable)this.trace(w);else{var L=new Error(w);throw L.hash=k,L}},parse:function(w){var k=this,L=[0],b=[],M=[null],h=[],Et=this.table,d="",_t=0,Xt=0,Te=2,Jt=1,be=h.slice.call(arguments,1),Y=Object.create(this.lexer),pt={yy:{}};for(var Ct in this.yy)Object.prototype.hasOwnProperty.call(this.yy,Ct)&&(pt.yy[Ct]=this.yy[Ct]);Y.setInput(w,pt.yy),pt.yy.lexer=Y,pt.yy.parser=this,typeof Y.yylloc>"u"&&(Y.yylloc={});var Dt=Y.yylloc;h.push(Dt);var Ee=Y.options&&Y.options.ranges;typeof pt.yy.parseError=="function"?this.parseError=pt.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function me(){var lt;return lt=b.pop()||Y.lex()||Jt,typeof lt!="number"&&(lt instanceof Array&&(b=lt,lt=b.pop()),lt=k.symbols_[lt]||lt),lt}for(var G,ut,et,Vt,yt={},kt,ct,Zt,Pt;;){if(ut=L[L.length-1],this.defaultActions[ut]?et=this.defaultActions[ut]:((G===null||typeof G>"u")&&(G=me()),et=Et[ut]&&Et[ut][G]),typeof et>"u"||!et.length||!et[0]){var Ot="";Pt=[];for(kt in Et[ut])this.terminals_[kt]&&kt>Te&&Pt.push("'"+this.terminals_[kt]+"'");Y.showPosition?Ot="Parse error on line "+(_t+1)+`: +`+Y.showPosition()+` +Expecting `+Pt.join(", ")+", got '"+(this.terminals_[G]||G)+"'":Ot="Parse error on line "+(_t+1)+": Unexpected "+(G==Jt?"end of input":"'"+(this.terminals_[G]||G)+"'"),this.parseError(Ot,{text:Y.match,token:this.terminals_[G]||G,line:Y.yylineno,loc:Dt,expected:Pt})}if(et[0]instanceof Array&&et.length>1)throw new Error("Parse Error: multiple actions possible at state: "+ut+", token: "+G);switch(et[0]){case 1:L.push(G),M.push(Y.yytext),h.push(Y.yylloc),L.push(et[1]),G=null,Xt=Y.yyleng,d=Y.yytext,_t=Y.yylineno,Dt=Y.yylloc;break;case 2:if(ct=this.productions_[et[1]][1],yt.$=M[M.length-ct],yt._$={first_line:h[h.length-(ct||1)].first_line,last_line:h[h.length-1].last_line,first_column:h[h.length-(ct||1)].first_column,last_column:h[h.length-1].last_column},Ee&&(yt._$.range=[h[h.length-(ct||1)].range[0],h[h.length-1].range[1]]),Vt=this.performAction.apply(yt,[d,Xt,_t,pt.yy,et[1],M,h].concat(be)),typeof Vt<"u")return Vt;ct&&(L=L.slice(0,-1*ct*2),M=M.slice(0,-1*ct),h=h.slice(0,-1*ct)),L.push(this.productions_[et[1]][0]),M.push(yt.$),h.push(yt._$),Zt=Et[L[L.length-2]][L[L.length-1]],L.push(Zt);break;case 3:return!0}}return!0}},ye=function(){var dt={EOF:1,parseError:function(k,L){if(this.yy.parser)this.yy.parser.parseError(k,L);else throw new Error(k)},setInput:function(w,k){return this.yy=k||this.yy||{},this._input=w,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var w=this._input[0];this.yytext+=w,this.yyleng++,this.offset++,this.match+=w,this.matched+=w;var k=w.match(/(?:\r\n?|\n).*/g);return k?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),w},unput:function(w){var k=w.length,L=w.split(/(?:\r\n?|\n)/g);this._input=w+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-k),this.offset-=k;var b=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),L.length-1&&(this.yylineno-=L.length-1);var M=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:L?(L.length===b.length?this.yylloc.first_column:0)+b[b.length-L.length].length-L[0].length:this.yylloc.first_column-k},this.options.ranges&&(this.yylloc.range=[M[0],M[0]+this.yyleng-k]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true). +`+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},less:function(w){this.unput(this.match.slice(w))},pastInput:function(){var w=this.matched.substr(0,this.matched.length-this.match.length);return(w.length>20?"...":"")+w.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var w=this.match;return w.length<20&&(w+=this._input.substr(0,20-w.length)),(w.substr(0,20)+(w.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var w=this.pastInput(),k=new Array(w.length+1).join("-");return w+this.upcomingInput()+` +`+k+"^"},test_match:function(w,k){var L,b,M;if(this.options.backtrack_lexer&&(M={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(M.yylloc.range=this.yylloc.range.slice(0))),b=w[0].match(/(?:\r\n?|\n).*/g),b&&(this.yylineno+=b.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:b?b[b.length-1].length-b[b.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+w[0].length},this.yytext+=w[0],this.match+=w[0],this.matches=w,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(w[0].length),this.matched+=w[0],L=this.performAction.call(this,this.yy,this,k,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),L)return L;if(this._backtrack){for(var h in M)this[h]=M[h];return!1}return!1},next:function(){if(this.done)return this.EOF;this._input||(this.done=!0);var w,k,L,b;this._more||(this.yytext="",this.match="");for(var M=this._currentRules(),h=0;hk[0].length)){if(k=L,b=h,this.options.backtrack_lexer){if(w=this.test_match(L,M[h]),w!==!1)return w;if(this._backtrack){k=!1;continue}else return!1}else if(!this.options.flex)break}return k?(w=this.test_match(k,M[b]),w!==!1?w:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text. +`+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var k=this.next();return k||this.lex()},begin:function(k){this.conditionStack.push(k)},popState:function(){var k=this.conditionStack.length-1;return k>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(k){return k=this.conditionStack.length-1-Math.abs(k||0),k>=0?this.conditionStack[k]:"INITIAL"},pushState:function(k){this.begin(k)},stateStackSize:function(){return this.conditionStack.length},options:{"case-insensitive":!0},performAction:function(k,L,b,M){switch(b){case 0:return 5;case 1:break;case 2:break;case 3:break;case 4:break;case 5:break;case 6:return 19;case 7:return this.begin("LINE"),14;case 8:return this.begin("ID"),50;case 9:return this.begin("ID"),52;case 10:return 13;case 11:return this.begin("ID"),53;case 12:return L.yytext=L.yytext.trim(),this.begin("ALIAS"),70;case 13:return this.popState(),this.popState(),this.begin("LINE"),51;case 14:return this.popState(),this.popState(),5;case 15:return this.begin("LINE"),36;case 16:return this.begin("LINE"),37;case 17:return this.begin("LINE"),38;case 18:return this.begin("LINE"),39;case 19:return this.begin("LINE"),49;case 20:return this.begin("LINE"),41;case 21:return this.begin("LINE"),43;case 22:return this.begin("LINE"),48;case 23:return this.begin("LINE"),44;case 24:return this.begin("LINE"),47;case 25:return this.begin("LINE"),46;case 26:return this.popState(),15;case 27:return 16;case 28:return 65;case 29:return 66;case 30:return 59;case 31:return 60;case 32:return 61;case 33:return 62;case 34:return 57;case 35:return 54;case 36:return this.begin("ID"),21;case 37:return this.begin("ID"),23;case 38:return 29;case 39:return 30;case 40:return this.begin("acc_title"),31;case 41:return this.popState(),"acc_title_value";case 42:return this.begin("acc_descr"),33;case 43:return this.popState(),"acc_descr_value";case 44:this.begin("acc_descr_multiline");break;case 45:this.popState();break;case 46:return"acc_descr_multiline_value";case 47:return 6;case 48:return 18;case 49:return 20;case 50:return 64;case 51:return 5;case 52:return L.yytext=L.yytext.trim(),70;case 53:return 73;case 54:return 74;case 55:return 71;case 56:return 72;case 57:return 75;case 58:return 76;case 59:return 77;case 60:return 78;case 61:return 79;case 62:return 68;case 63:return 69;case 64:return 5;case 65:return"INVALID"}},rules:[/^(?:[\n]+)/i,/^(?:\s+)/i,/^(?:((?!\n)\s)+)/i,/^(?:#[^\n]*)/i,/^(?:%(?!\{)[^\n]*)/i,/^(?:[^\}]%%[^\n]*)/i,/^(?:[0-9]+(?=[ \n]+))/i,/^(?:box\b)/i,/^(?:participant\b)/i,/^(?:actor\b)/i,/^(?:create\b)/i,/^(?:destroy\b)/i,/^(?:[^\->:\n,;]+?([\-]*[^\->:\n,;]+?)*?(?=((?!\n)\s)+as(?!\n)\s|[#\n;]|$))/i,/^(?:as\b)/i,/^(?:(?:))/i,/^(?:loop\b)/i,/^(?:rect\b)/i,/^(?:opt\b)/i,/^(?:alt\b)/i,/^(?:else\b)/i,/^(?:par\b)/i,/^(?:par_over\b)/i,/^(?:and\b)/i,/^(?:critical\b)/i,/^(?:option\b)/i,/^(?:break\b)/i,/^(?:(?:[:]?(?:no)?wrap)?[^#\n;]*)/i,/^(?:end\b)/i,/^(?:left of\b)/i,/^(?:right of\b)/i,/^(?:links\b)/i,/^(?:link\b)/i,/^(?:properties\b)/i,/^(?:details\b)/i,/^(?:over\b)/i,/^(?:note\b)/i,/^(?:activate\b)/i,/^(?:deactivate\b)/i,/^(?:title\s[^#\n;]+)/i,/^(?:title:\s[^#\n;]+)/i,/^(?:accTitle\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*\{\s*)/i,/^(?:[\}])/i,/^(?:[^\}]*)/i,/^(?:sequenceDiagram\b)/i,/^(?:autonumber\b)/i,/^(?:off\b)/i,/^(?:,)/i,/^(?:;)/i,/^(?:[^\+\->:\n,;]+((?!(-x|--x|-\)|--\)))[\-]*[^\+\->:\n,;]+)*)/i,/^(?:->>)/i,/^(?:-->>)/i,/^(?:->)/i,/^(?:-->)/i,/^(?:-[x])/i,/^(?:--[x])/i,/^(?:-[\)])/i,/^(?:--[\)])/i,/^(?::(?:(?:no)?wrap)?[^#\n;]+)/i,/^(?:\+)/i,/^(?:-)/i,/^(?:$)/i,/^(?:.)/i],conditions:{acc_descr_multiline:{rules:[45,46],inclusive:!1},acc_descr:{rules:[43],inclusive:!1},acc_title:{rules:[41],inclusive:!1},ID:{rules:[2,3,12],inclusive:!1},ALIAS:{rules:[2,3,13,14],inclusive:!1},LINE:{rules:[2,3,26],inclusive:!1},INITIAL:{rules:[0,1,3,4,5,6,7,8,9,10,11,15,16,17,18,19,20,21,22,23,24,25,27,28,29,30,31,32,33,34,35,36,37,38,39,40,42,44,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65],inclusive:!0}}};return dt}();Mt.lexer=ye;function Rt(){this.yy={}}return Rt.prototype=Mt,Mt.Parser=Rt,new Rt}();Yt.parser=Yt;const De=Yt;class Ve{constructor(e){this.init=e,this.records=this.init()}reset(){this.records=this.init()}}const E=new Ve(()=>({prevActor:void 0,actors:{},createdActors:{},destroyedActors:{},boxes:[],messages:[],notes:[],sequenceNumbersEnabled:!1,wrapEnabled:void 0,currentBox:void 0,lastCreated:void 0,lastDestroyed:void 0})),Oe=function(t){E.records.boxes.push({name:t.text,wrap:t.wrap===void 0&>()||!!t.wrap,fill:t.color,actorKeys:[]}),E.records.currentBox=E.records.boxes.slice(-1)[0]},Ft=function(t,e,c,s){let i=E.records.currentBox;const a=E.records.actors[t];if(a){if(E.records.currentBox&&a.box&&E.records.currentBox!==a.box)throw new Error("A same participant should only be defined in one Box: "+a.name+" can't be in '"+a.box.name+"' and in '"+E.records.currentBox.name+"' at the same time.");if(i=a.box?a.box:E.records.currentBox,a.box=i,a&&e===a.name&&c==null)return}(c==null||c.text==null)&&(c={text:e,wrap:null,type:s}),(s==null||c.text==null)&&(c={text:e,wrap:null,type:s}),E.records.actors[t]={box:i,name:e,description:c.text,wrap:c.wrap===void 0&>()||!!c.wrap,prevActor:E.records.prevActor,links:{},properties:{},actorCnt:null,rectData:null,type:s||"participant"},E.records.prevActor&&E.records.actors[E.records.prevActor]&&(E.records.actors[E.records.prevActor].nextActor=t),E.records.currentBox&&E.records.currentBox.actorKeys.push(t),E.records.prevActor=t},Be=t=>{let e,c=0;for(e=0;e>-",token:"->>-",line:"1",loc:{first_line:1,last_line:1,first_column:1,last_column:1},expected:["'ACTIVE_PARTICIPANT'"]},o}return E.records.messages.push({from:t,to:e,message:c.text,wrap:c.wrap===void 0&>()||!!c.wrap,type:s,activate:i}),!0},Fe=function(){return E.records.boxes.length>0},We=function(){return E.records.boxes.some(t=>t.name)},qe=function(){return E.records.messages},ze=function(){return E.records.boxes},He=function(){return E.records.actors},Ue=function(){return E.records.createdActors},Ke=function(){return E.records.destroyedActors},vt=function(t){return E.records.actors[t]},Ge=function(){return Object.keys(E.records.actors)},Xe=function(){E.records.sequenceNumbersEnabled=!0},Je=function(){E.records.sequenceNumbersEnabled=!1},Ze=()=>E.records.sequenceNumbersEnabled,Qe=function(t){E.records.wrapEnabled=t},gt=()=>E.records.wrapEnabled!==void 0?E.records.wrapEnabled:st().sequence.wrap,je=function(){E.reset(),Le()},$e=function(t){const e=t.trim(),c={text:e.replace(/^:?(?:no)?wrap:/,"").trim(),wrap:e.match(/^:?wrap:/)!==null?!0:e.match(/^:?nowrap:/)!==null?!1:void 0};return X.debug("parseMessage:",c),c},t0=function(t){const e=t.match(/^((?:rgba?|hsla?)\s*\(.*\)|\w*)(.*)$/);let c=e!=null&&e[1]?e[1].trim():"transparent",s=e!=null&&e[2]?e[2].trim():void 0;if(window&&window.CSS)window.CSS.supports("color",c)||(c="transparent",s=t.trim());else{const i=new Option().style;i.color=c,i.color!==c&&(c="transparent",s=t.trim())}return{color:c,text:s!==void 0?At(s.replace(/^:?(?:no)?wrap:/,""),st()):void 0,wrap:s!==void 0?s.match(/^:?wrap:/)!==null?!0:s.match(/^:?nowrap:/)!==null?!1:void 0:void 0}},mt={SOLID:0,DOTTED:1,NOTE:2,SOLID_CROSS:3,DOTTED_CROSS:4,SOLID_OPEN:5,DOTTED_OPEN:6,LOOP_START:10,LOOP_END:11,ALT_START:12,ALT_ELSE:13,ALT_END:14,OPT_START:15,OPT_END:16,ACTIVE_START:17,ACTIVE_END:18,PAR_START:19,PAR_AND:20,PAR_END:21,RECT_START:22,RECT_END:23,SOLID_POINT:24,DOTTED_POINT:25,AUTONUMBER:26,CRITICAL_START:27,CRITICAL_OPTION:28,CRITICAL_END:29,BREAK_START:30,BREAK_END:31,PAR_OVER_START:32},e0={FILLED:0,OPEN:1},s0={LEFTOF:0,RIGHTOF:1,OVER:2},re=function(t,e,c){const s={actor:t,placement:e,message:c.text,wrap:c.wrap===void 0&>()||!!c.wrap},i=[].concat(t,t);E.records.notes.push(s),E.records.messages.push({from:i[0],to:i[1],message:c.text,wrap:c.wrap===void 0&>()||!!c.wrap,type:mt.NOTE,placement:e})},ie=function(t,e){const c=vt(t);try{let s=At(e.text,st());s=s.replace(/&/g,"&"),s=s.replace(/=/g,"=");const i=JSON.parse(s);Ht(c,i)}catch(s){X.error("error while parsing actor link text",s)}},r0=function(t,e){const c=vt(t);try{const o={};let l=At(e.text,st());var s=l.indexOf("@");l=l.replace(/&/g,"&"),l=l.replace(/=/g,"=");var i=l.slice(0,s-1).trim(),a=l.slice(s+1).trim();o[i]=a,Ht(c,o)}catch(o){X.error("error while parsing actor link text",o)}};function Ht(t,e){if(t.links==null)t.links=e;else for(let c in e)t.links[c]=e[c]}const ae=function(t,e){const c=vt(t);try{let s=At(e.text,st());const i=JSON.parse(s);ne(c,i)}catch(s){X.error("error while parsing actor properties text",s)}};function ne(t,e){if(t.properties==null)t.properties=e;else for(let c in e)t.properties[c]=e[c]}function i0(){E.records.currentBox=void 0}const oe=function(t,e){const c=vt(t),s=document.getElementById(e.text);try{const i=s.innerHTML,a=JSON.parse(i);a.properties&&ne(c,a.properties),a.links&&Ht(c,a.links)}catch(i){X.error("error while parsing actor details text",i)}},a0=function(t,e){if(t!==void 0&&t.properties!==void 0)return t.properties[e]},ce=function(t){if(Array.isArray(t))t.forEach(function(e){ce(e)});else switch(t.type){case"sequenceIndex":E.records.messages.push({from:void 0,to:void 0,message:{start:t.sequenceIndex,step:t.sequenceIndexStep,visible:t.sequenceVisible},wrap:!1,type:t.signalType});break;case"addParticipant":Ft(t.actor,t.actor,t.description,t.draw);break;case"createParticipant":if(E.records.actors[t.actor])throw new Error("It is not possible to have actors with the same id, even if one is destroyed before the next is created. Use 'AS' aliases to simulate the behavior");E.records.lastCreated=t.actor,Ft(t.actor,t.actor,t.description,t.draw),E.records.createdActors[t.actor]=E.records.messages.length;break;case"destroyParticipant":E.records.lastDestroyed=t.actor,E.records.destroyedActors[t.actor]=E.records.messages.length;break;case"activeStart":C(t.actor,void 0,void 0,t.signalType);break;case"activeEnd":C(t.actor,void 0,void 0,t.signalType);break;case"addNote":re(t.actor,t.placement,t.text);break;case"addLinks":ie(t.actor,t.text);break;case"addALink":r0(t.actor,t.text);break;case"addProperties":ae(t.actor,t.text);break;case"addDetails":oe(t.actor,t.text);break;case"addMessage":if(E.records.lastCreated){if(t.to!==E.records.lastCreated)throw new Error("The created participant "+E.records.lastCreated+" does not have an associated creating message after its declaration. Please check the sequence diagram.");E.records.lastCreated=void 0}else if(E.records.lastDestroyed){if(t.to!==E.records.lastDestroyed&&t.from!==E.records.lastDestroyed)throw new Error("The destroyed participant "+E.records.lastDestroyed+" does not have an associated destroying message after its declaration. Please check the sequence diagram.");E.records.lastDestroyed=void 0}C(t.from,t.to,t.msg,t.signalType,t.activate);break;case"boxStart":Oe(t.boxData);break;case"boxEnd":i0();break;case"loopStart":C(void 0,void 0,t.loopText,t.signalType);break;case"loopEnd":C(void 0,void 0,void 0,t.signalType);break;case"rectStart":C(void 0,void 0,t.color,t.signalType);break;case"rectEnd":C(void 0,void 0,void 0,t.signalType);break;case"optStart":C(void 0,void 0,t.optText,t.signalType);break;case"optEnd":C(void 0,void 0,void 0,t.signalType);break;case"altStart":C(void 0,void 0,t.altText,t.signalType);break;case"else":C(void 0,void 0,t.altText,t.signalType);break;case"altEnd":C(void 0,void 0,void 0,t.signalType);break;case"setAccTitle":$t(t.text);break;case"parStart":C(void 0,void 0,t.parText,t.signalType);break;case"and":C(void 0,void 0,t.parText,t.signalType);break;case"parEnd":C(void 0,void 0,void 0,t.signalType);break;case"criticalStart":C(void 0,void 0,t.criticalText,t.signalType);break;case"option":C(void 0,void 0,t.optionText,t.signalType);break;case"criticalEnd":C(void 0,void 0,void 0,t.signalType);break;case"breakStart":C(void 0,void 0,t.breakText,t.signalType);break;case"breakEnd":C(void 0,void 0,void 0,t.signalType);break}},Qt={addActor:Ft,addMessage:Ye,addSignal:C,addLinks:ie,addDetails:oe,addProperties:ae,autoWrap:gt,setWrap:Qe,enableSequenceNumbers:Xe,disableSequenceNumbers:Je,showSequenceNumbers:Ze,getMessages:qe,getActors:He,getCreatedActors:Ue,getDestroyedActors:Ke,getActor:vt,getActorKeys:Ge,getActorProperty:a0,getAccTitle:we,getBoxes:ze,getDiagramTitle:ve,setDiagramTitle:_e,getConfig:()=>st().sequence,clear:je,parseMessage:$e,parseBoxData:t0,LINETYPE:mt,ARROWTYPE:e0,PLACEMENT:s0,addNote:re,setAccTitle:$t,apply:ce,setAccDescription:ke,getAccDescription:Pe,hasAtLeastOneBox:Fe,hasAtLeastOneBoxWithTitle:We},n0=t=>`.actor { + stroke: ${t.actorBorder}; + fill: ${t.actorBkg}; + } + + text.actor > tspan { + fill: ${t.actorTextColor}; + stroke: none; + } + + .actor-line { + stroke: ${t.actorLineColor}; + } + + .messageLine0 { + stroke-width: 1.5; + stroke-dasharray: none; + stroke: ${t.signalColor}; + } + + .messageLine1 { + stroke-width: 1.5; + stroke-dasharray: 2, 2; + stroke: ${t.signalColor}; + } + + #arrowhead path { + fill: ${t.signalColor}; + stroke: ${t.signalColor}; + } + + .sequenceNumber { + fill: ${t.sequenceNumberColor}; + } + + #sequencenumber { + fill: ${t.signalColor}; + } + + #crosshead path { + fill: ${t.signalColor}; + stroke: ${t.signalColor}; + } + + .messageText { + fill: ${t.signalTextColor}; + stroke: none; + } + + .labelBox { + stroke: ${t.labelBoxBorderColor}; + fill: ${t.labelBoxBkgColor}; + } + + .labelText, .labelText > tspan { + fill: ${t.labelTextColor}; + stroke: none; + } + + .loopText, .loopText > tspan { + fill: ${t.loopTextColor}; + stroke: none; + } + + .loopLine { + stroke-width: 2px; + stroke-dasharray: 2, 2; + stroke: ${t.labelBoxBorderColor}; + fill: ${t.labelBoxBorderColor}; + } + + .note { + //stroke: #decc93; + stroke: ${t.noteBorderColor}; + fill: ${t.noteBkgColor}; + } + + .noteText, .noteText > tspan { + fill: ${t.noteTextColor}; + stroke: none; + } + + .activation0 { + fill: ${t.activationBkgColor}; + stroke: ${t.activationBorderColor}; + } + + .activation1 { + fill: ${t.activationBkgColor}; + stroke: ${t.activationBorderColor}; + } + + .activation2 { + fill: ${t.activationBkgColor}; + stroke: ${t.activationBorderColor}; + } + + .actorPopupMenu { + position: absolute; + } + + .actorPopupMenuPanel { + position: absolute; + fill: ${t.actorBkg}; + box-shadow: 0px 8px 16px 0px rgba(0,0,0,0.2); + filter: drop-shadow(3px 5px 2px rgb(0 0 0 / 0.4)); +} + .actor-man line { + stroke: ${t.actorBorder}; + fill: ${t.actorBkg}; + } + .actor-man circle, line { + stroke: ${t.actorBorder}; + fill: ${t.actorBkg}; + stroke-width: 2px; + } +`,o0=n0,ft=18*2,le="actor-top",he="actor-bottom",Ut=function(t,e){return Se(t,e)},c0=function(t,e,c,s,i){if(e.links===void 0||e.links===null||Object.keys(e.links).length===0)return{height:0,width:0};const a=e.links,o=e.actorCnt,l=e.rectData;var p="none";i&&(p="block !important");const r=t.append("g");r.attr("id","actor"+o+"_popup"),r.attr("class","actorPopupMenu"),r.attr("display",p);var x="";l.class!==void 0&&(x=" "+l.class);let T=l.width>c?l.width:c;const u=r.append("rect");if(u.attr("class","actorPopupMenuPanel"+x),u.attr("x",l.x),u.attr("y",l.height),u.attr("fill",l.fill),u.attr("stroke",l.stroke),u.attr("width",T),u.attr("height",l.height),u.attr("rx",l.rx),u.attr("ry",l.ry),a!=null){var g=20;for(let I in a){var m=r.append("a"),_=te.sanitizeUrl(a[I]);m.attr("xlink:href",_),m.attr("target","_blank"),k0(s)(I,m,l.x+10,l.height+g,T,20,{class:"actor"},s),g+=30}}return u.attr("height",g),{height:l.height+g,width:T}},l0=function(t){return"var pu = document.getElementById('"+t+"'); if (pu != null) { pu.style.display = pu.style.display == 'block' ? 'none' : 'block'; }"},It=async function(t,e,c=null){let s=t.append("foreignObject");const i=await ee(e.text,Bt()),o=s.append("xhtml:div").attr("style","width: fit-content;").attr("xmlns","http://www.w3.org/1999/xhtml").html(i).node().getBoundingClientRect();if(s.attr("height",Math.round(o.height)).attr("width",Math.round(o.width)),e.class==="noteText"){const l=t.node().firstChild;l.setAttribute("height",o.height+2*e.textMargin);const p=l.getBBox();s.attr("x",Math.round(p.x+p.width/2-o.width/2)).attr("y",Math.round(p.y+p.height/2-o.height/2))}else if(c){let{startx:l,stopx:p,starty:r}=c;if(l>p){const x=l;l=p,p=x}s.attr("x",Math.round(l+Math.abs(l-p)/2-o.width/2)),e.class==="loopText"?s.attr("y",Math.round(r)):s.attr("y",Math.round(r-o.height))}return[s]},bt=function(t,e){let c=0,s=0;const i=e.text.split(v.lineBreakRegex),[a,o]=se(e.fontSize);let l=[],p=0,r=()=>e.y;if(e.valign!==void 0&&e.textMargin!==void 0&&e.textMargin>0)switch(e.valign){case"top":case"start":r=()=>Math.round(e.y+e.textMargin);break;case"middle":case"center":r=()=>Math.round(e.y+(c+s+e.textMargin)/2);break;case"bottom":case"end":r=()=>Math.round(e.y+(c+s+2*e.textMargin)-e.textMargin);break}if(e.anchor!==void 0&&e.textMargin!==void 0&&e.width!==void 0)switch(e.anchor){case"left":case"start":e.x=Math.round(e.x+e.textMargin),e.anchor="start",e.dominantBaseline="middle",e.alignmentBaseline="middle";break;case"middle":case"center":e.x=Math.round(e.x+e.width/2),e.anchor="middle",e.dominantBaseline="middle",e.alignmentBaseline="middle";break;case"right":case"end":e.x=Math.round(e.x+e.width-e.textMargin),e.anchor="end",e.dominantBaseline="middle",e.alignmentBaseline="middle";break}for(let[x,T]of i.entries()){e.textMargin!==void 0&&e.textMargin===0&&a!==void 0&&(p=x*a);const u=t.append("text");u.attr("x",e.x),u.attr("y",r()),e.anchor!==void 0&&u.attr("text-anchor",e.anchor).attr("dominant-baseline",e.dominantBaseline).attr("alignment-baseline",e.alignmentBaseline),e.fontFamily!==void 0&&u.style("font-family",e.fontFamily),o!==void 0&&u.style("font-size",o),e.fontWeight!==void 0&&u.style("font-weight",e.fontWeight),e.fill!==void 0&&u.attr("fill",e.fill),e.class!==void 0&&u.attr("class",e.class),e.dy!==void 0?u.attr("dy",e.dy):p!==0&&u.attr("dy",p);const g=T||Ne;if(e.tspan){const m=u.append("tspan");m.attr("x",e.x),e.fill!==void 0&&m.attr("fill",e.fill),m.text(g)}else u.text(g);e.valign!==void 0&&e.textMargin!==void 0&&e.textMargin>0&&(s+=(u._groups||u)[0][0].getBBox().height,c=s),l.push(u)}return l},de=function(t,e){function c(i,a,o,l,p){return i+","+a+" "+(i+o)+","+a+" "+(i+o)+","+(a+l-p)+" "+(i+o-p*1.2)+","+(a+l)+" "+i+","+(a+l)}const s=t.append("polygon");return s.attr("points",c(e.x,e.y,e.width,e.height,7)),s.attr("class","labelBox"),e.y=e.y+e.height/2,bt(t,e),s};let at=-1;const pe=(t,e,c,s)=>{t.select&&c.forEach(i=>{const a=e[i],o=t.select("#actor"+a.actorCnt);!s.mirrorActors&&a.stopy?o.attr("y2",a.stopy+a.height/2):s.mirrorActors&&o.attr("y2",a.stopy)})},h0=async function(t,e,c,s){const i=s?e.stopy:e.starty,a=e.x+e.width/2,o=i+5,l=t.append("g").lower();var p=l;s||(at++,Object.keys(e.links||{}).length&&!c.forceMenus&&p.attr("onclick",l0(`actor${at}_popup`)).attr("cursor","pointer"),p.append("line").attr("id","actor"+at).attr("x1",a).attr("y1",o).attr("x2",a).attr("y2",2e3).attr("class","actor-line").attr("class","200").attr("stroke-width","0.5px").attr("stroke","#999"),p=l.append("g"),e.actorCnt=at,e.links!=null&&p.attr("id","root-"+at));const r=Nt();var x="actor";e.properties!=null&&e.properties.class?x=e.properties.class:r.fill="#eaeaea",s?x+=` ${he}`:x+=` ${le}`,r.x=e.x,r.y=i,r.width=e.width,r.height=e.height,r.class=x,r.rx=3,r.ry=3,r.name=e.name;const T=Ut(p,r);if(e.rectData=r,e.properties!=null&&e.properties.icon){const g=e.properties.icon.trim();g.charAt(0)==="@"?Re(p,r.x+r.width-20,r.y+10,g.substr(1)):Ce(p,r.x+r.width-20,r.y+10,g)}await Kt(c,nt(e.description))(e.description,p,r.x,r.y,r.width,r.height,{class:"actor"},c);let u=e.height;if(T.node){const g=T.node().getBBox();e.height=g.height,u=g.height}return u},d0=async function(t,e,c,s){const i=s?e.stopy:e.starty,a=e.x+e.width/2,o=i+80;t.lower(),s||(at++,t.append("line").attr("id","actor"+at).attr("x1",a).attr("y1",o).attr("x2",a).attr("y2",2e3).attr("class","actor-line").attr("class","200").attr("stroke-width","0.5px").attr("stroke","#999"),e.actorCnt=at);const l=t.append("g");let p="actor-man";s?p+=` ${he}`:p+=` ${le}`,l.attr("class",p),l.attr("name",e.name);const r=Nt();r.x=e.x,r.y=i,r.fill="#eaeaea",r.width=e.width,r.height=e.height,r.class="actor",r.rx=3,r.ry=3,l.append("line").attr("id","actor-man-torso"+at).attr("x1",a).attr("y1",i+25).attr("x2",a).attr("y2",i+45),l.append("line").attr("id","actor-man-arms"+at).attr("x1",a-ft/2).attr("y1",i+33).attr("x2",a+ft/2).attr("y2",i+33),l.append("line").attr("x1",a-ft/2).attr("y1",i+60).attr("x2",a).attr("y2",i+45),l.append("line").attr("x1",a).attr("y1",i+45).attr("x2",a+ft/2-2).attr("y2",i+60);const x=l.append("circle");x.attr("cx",e.x+e.width/2),x.attr("cy",i+10),x.attr("r",15),x.attr("width",e.width),x.attr("height",e.height);const T=l.node().getBBox();return e.height=T.height,await Kt(c,nt(e.description))(e.description,l,r.x,r.y+35,r.width,r.height,{class:"actor"},c),e.height},p0=async function(t,e,c,s){switch(e.type){case"actor":return await d0(t,e,c,s);case"participant":return await h0(t,e,c,s)}},u0=async function(t,e,c){const i=t.append("g");ue(i,e),e.name&&await Kt(c)(e.name,i,e.x,e.y+(e.textMaxHeight||0)/2,e.width,0,{class:"text"},c),i.lower()},f0=function(t){return t.append("g")},g0=function(t,e,c,s,i){const a=Nt(),o=e.anchored;a.x=e.startx,a.y=e.starty,a.class="activation"+i%3,a.width=e.stopx-e.startx,a.height=c-e.starty,Ut(o,a)},x0=async function(t,e,c,s){const{boxMargin:i,boxTextMargin:a,labelBoxHeight:o,labelBoxWidth:l,messageFontFamily:p,messageFontSize:r,messageFontWeight:x}=s,T=t.append("g"),u=function(_,I,V,S){return T.append("line").attr("x1",_).attr("y1",I).attr("x2",V).attr("y2",S).attr("class","loopLine")};u(e.startx,e.starty,e.stopx,e.starty),u(e.stopx,e.starty,e.stopx,e.stopy),u(e.startx,e.stopy,e.stopx,e.stopy),u(e.startx,e.starty,e.startx,e.stopy),e.sections!==void 0&&e.sections.forEach(function(_){u(e.startx,_.y,e.stopx,_.y).style("stroke-dasharray","3, 3")});let g=zt();g.text=c,g.x=e.startx,g.y=e.starty,g.fontFamily=p,g.fontSize=r,g.fontWeight=x,g.anchor="middle",g.valign="middle",g.tspan=!1,g.width=l||50,g.height=o||20,g.textMargin=a,g.class="labelText",de(T,g),g=fe(),g.text=e.title,g.x=e.startx+l/2+(e.stopx-e.startx)/2,g.y=e.starty+i+a,g.anchor="middle",g.valign="middle",g.textMargin=a,g.class="loopText",g.fontFamily=p,g.fontSize=r,g.fontWeight=x,g.wrap=!0;let m=nt(g.text)?await It(T,g,e):bt(T,g);if(e.sectionTitles!==void 0){for(const[_,I]of Object.entries(e.sectionTitles))if(I.message){g.text=I.message,g.x=e.startx+(e.stopx-e.startx)/2,g.y=e.sections[_].y+i+a,g.class="loopText",g.anchor="middle",g.valign="middle",g.tspan=!1,g.fontFamily=p,g.fontSize=r,g.fontWeight=x,g.wrap=e.wrap,nt(g.text)?(e.starty=e.sections[_].y,await It(T,g,e)):bt(T,g);let V=Math.round(m.map(S=>(S._groups||S)[0][0].getBBox().height).reduce((S,O)=>S+O));e.sections[_].height+=V-(i+a)}}return e.height=Math.round(e.stopy-e.starty),T},ue=function(t,e){Me(t,e)},y0=function(t){t.append("defs").append("symbol").attr("id","database").attr("fill-rule","evenodd").attr("clip-rule","evenodd").append("path").attr("transform","scale(.5)").attr("d","M12.258.001l.256.004.255.005.253.008.251.01.249.012.247.015.246.016.242.019.241.02.239.023.236.024.233.027.231.028.229.031.225.032.223.034.22.036.217.038.214.04.211.041.208.043.205.045.201.046.198.048.194.05.191.051.187.053.183.054.18.056.175.057.172.059.168.06.163.061.16.063.155.064.15.066.074.033.073.033.071.034.07.034.069.035.068.035.067.035.066.035.064.036.064.036.062.036.06.036.06.037.058.037.058.037.055.038.055.038.053.038.052.038.051.039.05.039.048.039.047.039.045.04.044.04.043.04.041.04.04.041.039.041.037.041.036.041.034.041.033.042.032.042.03.042.029.042.027.042.026.043.024.043.023.043.021.043.02.043.018.044.017.043.015.044.013.044.012.044.011.045.009.044.007.045.006.045.004.045.002.045.001.045v17l-.001.045-.002.045-.004.045-.006.045-.007.045-.009.044-.011.045-.012.044-.013.044-.015.044-.017.043-.018.044-.02.043-.021.043-.023.043-.024.043-.026.043-.027.042-.029.042-.03.042-.032.042-.033.042-.034.041-.036.041-.037.041-.039.041-.04.041-.041.04-.043.04-.044.04-.045.04-.047.039-.048.039-.05.039-.051.039-.052.038-.053.038-.055.038-.055.038-.058.037-.058.037-.06.037-.06.036-.062.036-.064.036-.064.036-.066.035-.067.035-.068.035-.069.035-.07.034-.071.034-.073.033-.074.033-.15.066-.155.064-.16.063-.163.061-.168.06-.172.059-.175.057-.18.056-.183.054-.187.053-.191.051-.194.05-.198.048-.201.046-.205.045-.208.043-.211.041-.214.04-.217.038-.22.036-.223.034-.225.032-.229.031-.231.028-.233.027-.236.024-.239.023-.241.02-.242.019-.246.016-.247.015-.249.012-.251.01-.253.008-.255.005-.256.004-.258.001-.258-.001-.256-.004-.255-.005-.253-.008-.251-.01-.249-.012-.247-.015-.245-.016-.243-.019-.241-.02-.238-.023-.236-.024-.234-.027-.231-.028-.228-.031-.226-.032-.223-.034-.22-.036-.217-.038-.214-.04-.211-.041-.208-.043-.204-.045-.201-.046-.198-.048-.195-.05-.19-.051-.187-.053-.184-.054-.179-.056-.176-.057-.172-.059-.167-.06-.164-.061-.159-.063-.155-.064-.151-.066-.074-.033-.072-.033-.072-.034-.07-.034-.069-.035-.068-.035-.067-.035-.066-.035-.064-.036-.063-.036-.062-.036-.061-.036-.06-.037-.058-.037-.057-.037-.056-.038-.055-.038-.053-.038-.052-.038-.051-.039-.049-.039-.049-.039-.046-.039-.046-.04-.044-.04-.043-.04-.041-.04-.04-.041-.039-.041-.037-.041-.036-.041-.034-.041-.033-.042-.032-.042-.03-.042-.029-.042-.027-.042-.026-.043-.024-.043-.023-.043-.021-.043-.02-.043-.018-.044-.017-.043-.015-.044-.013-.044-.012-.044-.011-.045-.009-.044-.007-.045-.006-.045-.004-.045-.002-.045-.001-.045v-17l.001-.045.002-.045.004-.045.006-.045.007-.045.009-.044.011-.045.012-.044.013-.044.015-.044.017-.043.018-.044.02-.043.021-.043.023-.043.024-.043.026-.043.027-.042.029-.042.03-.042.032-.042.033-.042.034-.041.036-.041.037-.041.039-.041.04-.041.041-.04.043-.04.044-.04.046-.04.046-.039.049-.039.049-.039.051-.039.052-.038.053-.038.055-.038.056-.038.057-.037.058-.037.06-.037.061-.036.062-.036.063-.036.064-.036.066-.035.067-.035.068-.035.069-.035.07-.034.072-.034.072-.033.074-.033.151-.066.155-.064.159-.063.164-.061.167-.06.172-.059.176-.057.179-.056.184-.054.187-.053.19-.051.195-.05.198-.048.201-.046.204-.045.208-.043.211-.041.214-.04.217-.038.22-.036.223-.034.226-.032.228-.031.231-.028.234-.027.236-.024.238-.023.241-.02.243-.019.245-.016.247-.015.249-.012.251-.01.253-.008.255-.005.256-.004.258-.001.258.001zm-9.258 20.499v.01l.001.021.003.021.004.022.005.021.006.022.007.022.009.023.01.022.011.023.012.023.013.023.015.023.016.024.017.023.018.024.019.024.021.024.022.025.023.024.024.025.052.049.056.05.061.051.066.051.07.051.075.051.079.052.084.052.088.052.092.052.097.052.102.051.105.052.11.052.114.051.119.051.123.051.127.05.131.05.135.05.139.048.144.049.147.047.152.047.155.047.16.045.163.045.167.043.171.043.176.041.178.041.183.039.187.039.19.037.194.035.197.035.202.033.204.031.209.03.212.029.216.027.219.025.222.024.226.021.23.02.233.018.236.016.24.015.243.012.246.01.249.008.253.005.256.004.259.001.26-.001.257-.004.254-.005.25-.008.247-.011.244-.012.241-.014.237-.016.233-.018.231-.021.226-.021.224-.024.22-.026.216-.027.212-.028.21-.031.205-.031.202-.034.198-.034.194-.036.191-.037.187-.039.183-.04.179-.04.175-.042.172-.043.168-.044.163-.045.16-.046.155-.046.152-.047.148-.048.143-.049.139-.049.136-.05.131-.05.126-.05.123-.051.118-.052.114-.051.11-.052.106-.052.101-.052.096-.052.092-.052.088-.053.083-.051.079-.052.074-.052.07-.051.065-.051.06-.051.056-.05.051-.05.023-.024.023-.025.021-.024.02-.024.019-.024.018-.024.017-.024.015-.023.014-.024.013-.023.012-.023.01-.023.01-.022.008-.022.006-.022.006-.022.004-.022.004-.021.001-.021.001-.021v-4.127l-.077.055-.08.053-.083.054-.085.053-.087.052-.09.052-.093.051-.095.05-.097.05-.1.049-.102.049-.105.048-.106.047-.109.047-.111.046-.114.045-.115.045-.118.044-.12.043-.122.042-.124.042-.126.041-.128.04-.13.04-.132.038-.134.038-.135.037-.138.037-.139.035-.142.035-.143.034-.144.033-.147.032-.148.031-.15.03-.151.03-.153.029-.154.027-.156.027-.158.026-.159.025-.161.024-.162.023-.163.022-.165.021-.166.02-.167.019-.169.018-.169.017-.171.016-.173.015-.173.014-.175.013-.175.012-.177.011-.178.01-.179.008-.179.008-.181.006-.182.005-.182.004-.184.003-.184.002h-.37l-.184-.002-.184-.003-.182-.004-.182-.005-.181-.006-.179-.008-.179-.008-.178-.01-.176-.011-.176-.012-.175-.013-.173-.014-.172-.015-.171-.016-.17-.017-.169-.018-.167-.019-.166-.02-.165-.021-.163-.022-.162-.023-.161-.024-.159-.025-.157-.026-.156-.027-.155-.027-.153-.029-.151-.03-.15-.03-.148-.031-.146-.032-.145-.033-.143-.034-.141-.035-.14-.035-.137-.037-.136-.037-.134-.038-.132-.038-.13-.04-.128-.04-.126-.041-.124-.042-.122-.042-.12-.044-.117-.043-.116-.045-.113-.045-.112-.046-.109-.047-.106-.047-.105-.048-.102-.049-.1-.049-.097-.05-.095-.05-.093-.052-.09-.051-.087-.052-.085-.053-.083-.054-.08-.054-.077-.054v4.127zm0-5.654v.011l.001.021.003.021.004.021.005.022.006.022.007.022.009.022.01.022.011.023.012.023.013.023.015.024.016.023.017.024.018.024.019.024.021.024.022.024.023.025.024.024.052.05.056.05.061.05.066.051.07.051.075.052.079.051.084.052.088.052.092.052.097.052.102.052.105.052.11.051.114.051.119.052.123.05.127.051.131.05.135.049.139.049.144.048.147.048.152.047.155.046.16.045.163.045.167.044.171.042.176.042.178.04.183.04.187.038.19.037.194.036.197.034.202.033.204.032.209.03.212.028.216.027.219.025.222.024.226.022.23.02.233.018.236.016.24.014.243.012.246.01.249.008.253.006.256.003.259.001.26-.001.257-.003.254-.006.25-.008.247-.01.244-.012.241-.015.237-.016.233-.018.231-.02.226-.022.224-.024.22-.025.216-.027.212-.029.21-.03.205-.032.202-.033.198-.035.194-.036.191-.037.187-.039.183-.039.179-.041.175-.042.172-.043.168-.044.163-.045.16-.045.155-.047.152-.047.148-.048.143-.048.139-.05.136-.049.131-.05.126-.051.123-.051.118-.051.114-.052.11-.052.106-.052.101-.052.096-.052.092-.052.088-.052.083-.052.079-.052.074-.051.07-.052.065-.051.06-.05.056-.051.051-.049.023-.025.023-.024.021-.025.02-.024.019-.024.018-.024.017-.024.015-.023.014-.023.013-.024.012-.022.01-.023.01-.023.008-.022.006-.022.006-.022.004-.021.004-.022.001-.021.001-.021v-4.139l-.077.054-.08.054-.083.054-.085.052-.087.053-.09.051-.093.051-.095.051-.097.05-.1.049-.102.049-.105.048-.106.047-.109.047-.111.046-.114.045-.115.044-.118.044-.12.044-.122.042-.124.042-.126.041-.128.04-.13.039-.132.039-.134.038-.135.037-.138.036-.139.036-.142.035-.143.033-.144.033-.147.033-.148.031-.15.03-.151.03-.153.028-.154.028-.156.027-.158.026-.159.025-.161.024-.162.023-.163.022-.165.021-.166.02-.167.019-.169.018-.169.017-.171.016-.173.015-.173.014-.175.013-.175.012-.177.011-.178.009-.179.009-.179.007-.181.007-.182.005-.182.004-.184.003-.184.002h-.37l-.184-.002-.184-.003-.182-.004-.182-.005-.181-.007-.179-.007-.179-.009-.178-.009-.176-.011-.176-.012-.175-.013-.173-.014-.172-.015-.171-.016-.17-.017-.169-.018-.167-.019-.166-.02-.165-.021-.163-.022-.162-.023-.161-.024-.159-.025-.157-.026-.156-.027-.155-.028-.153-.028-.151-.03-.15-.03-.148-.031-.146-.033-.145-.033-.143-.033-.141-.035-.14-.036-.137-.036-.136-.037-.134-.038-.132-.039-.13-.039-.128-.04-.126-.041-.124-.042-.122-.043-.12-.043-.117-.044-.116-.044-.113-.046-.112-.046-.109-.046-.106-.047-.105-.048-.102-.049-.1-.049-.097-.05-.095-.051-.093-.051-.09-.051-.087-.053-.085-.052-.083-.054-.08-.054-.077-.054v4.139zm0-5.666v.011l.001.02.003.022.004.021.005.022.006.021.007.022.009.023.01.022.011.023.012.023.013.023.015.023.016.024.017.024.018.023.019.024.021.025.022.024.023.024.024.025.052.05.056.05.061.05.066.051.07.051.075.052.079.051.084.052.088.052.092.052.097.052.102.052.105.051.11.052.114.051.119.051.123.051.127.05.131.05.135.05.139.049.144.048.147.048.152.047.155.046.16.045.163.045.167.043.171.043.176.042.178.04.183.04.187.038.19.037.194.036.197.034.202.033.204.032.209.03.212.028.216.027.219.025.222.024.226.021.23.02.233.018.236.017.24.014.243.012.246.01.249.008.253.006.256.003.259.001.26-.001.257-.003.254-.006.25-.008.247-.01.244-.013.241-.014.237-.016.233-.018.231-.02.226-.022.224-.024.22-.025.216-.027.212-.029.21-.03.205-.032.202-.033.198-.035.194-.036.191-.037.187-.039.183-.039.179-.041.175-.042.172-.043.168-.044.163-.045.16-.045.155-.047.152-.047.148-.048.143-.049.139-.049.136-.049.131-.051.126-.05.123-.051.118-.052.114-.051.11-.052.106-.052.101-.052.096-.052.092-.052.088-.052.083-.052.079-.052.074-.052.07-.051.065-.051.06-.051.056-.05.051-.049.023-.025.023-.025.021-.024.02-.024.019-.024.018-.024.017-.024.015-.023.014-.024.013-.023.012-.023.01-.022.01-.023.008-.022.006-.022.006-.022.004-.022.004-.021.001-.021.001-.021v-4.153l-.077.054-.08.054-.083.053-.085.053-.087.053-.09.051-.093.051-.095.051-.097.05-.1.049-.102.048-.105.048-.106.048-.109.046-.111.046-.114.046-.115.044-.118.044-.12.043-.122.043-.124.042-.126.041-.128.04-.13.039-.132.039-.134.038-.135.037-.138.036-.139.036-.142.034-.143.034-.144.033-.147.032-.148.032-.15.03-.151.03-.153.028-.154.028-.156.027-.158.026-.159.024-.161.024-.162.023-.163.023-.165.021-.166.02-.167.019-.169.018-.169.017-.171.016-.173.015-.173.014-.175.013-.175.012-.177.01-.178.01-.179.009-.179.007-.181.006-.182.006-.182.004-.184.003-.184.001-.185.001-.185-.001-.184-.001-.184-.003-.182-.004-.182-.006-.181-.006-.179-.007-.179-.009-.178-.01-.176-.01-.176-.012-.175-.013-.173-.014-.172-.015-.171-.016-.17-.017-.169-.018-.167-.019-.166-.02-.165-.021-.163-.023-.162-.023-.161-.024-.159-.024-.157-.026-.156-.027-.155-.028-.153-.028-.151-.03-.15-.03-.148-.032-.146-.032-.145-.033-.143-.034-.141-.034-.14-.036-.137-.036-.136-.037-.134-.038-.132-.039-.13-.039-.128-.041-.126-.041-.124-.041-.122-.043-.12-.043-.117-.044-.116-.044-.113-.046-.112-.046-.109-.046-.106-.048-.105-.048-.102-.048-.1-.05-.097-.049-.095-.051-.093-.051-.09-.052-.087-.052-.085-.053-.083-.053-.08-.054-.077-.054v4.153zm8.74-8.179l-.257.004-.254.005-.25.008-.247.011-.244.012-.241.014-.237.016-.233.018-.231.021-.226.022-.224.023-.22.026-.216.027-.212.028-.21.031-.205.032-.202.033-.198.034-.194.036-.191.038-.187.038-.183.04-.179.041-.175.042-.172.043-.168.043-.163.045-.16.046-.155.046-.152.048-.148.048-.143.048-.139.049-.136.05-.131.05-.126.051-.123.051-.118.051-.114.052-.11.052-.106.052-.101.052-.096.052-.092.052-.088.052-.083.052-.079.052-.074.051-.07.052-.065.051-.06.05-.056.05-.051.05-.023.025-.023.024-.021.024-.02.025-.019.024-.018.024-.017.023-.015.024-.014.023-.013.023-.012.023-.01.023-.01.022-.008.022-.006.023-.006.021-.004.022-.004.021-.001.021-.001.021.001.021.001.021.004.021.004.022.006.021.006.023.008.022.01.022.01.023.012.023.013.023.014.023.015.024.017.023.018.024.019.024.02.025.021.024.023.024.023.025.051.05.056.05.06.05.065.051.07.052.074.051.079.052.083.052.088.052.092.052.096.052.101.052.106.052.11.052.114.052.118.051.123.051.126.051.131.05.136.05.139.049.143.048.148.048.152.048.155.046.16.046.163.045.168.043.172.043.175.042.179.041.183.04.187.038.191.038.194.036.198.034.202.033.205.032.21.031.212.028.216.027.22.026.224.023.226.022.231.021.233.018.237.016.241.014.244.012.247.011.25.008.254.005.257.004.26.001.26-.001.257-.004.254-.005.25-.008.247-.011.244-.012.241-.014.237-.016.233-.018.231-.021.226-.022.224-.023.22-.026.216-.027.212-.028.21-.031.205-.032.202-.033.198-.034.194-.036.191-.038.187-.038.183-.04.179-.041.175-.042.172-.043.168-.043.163-.045.16-.046.155-.046.152-.048.148-.048.143-.048.139-.049.136-.05.131-.05.126-.051.123-.051.118-.051.114-.052.11-.052.106-.052.101-.052.096-.052.092-.052.088-.052.083-.052.079-.052.074-.051.07-.052.065-.051.06-.05.056-.05.051-.05.023-.025.023-.024.021-.024.02-.025.019-.024.018-.024.017-.023.015-.024.014-.023.013-.023.012-.023.01-.023.01-.022.008-.022.006-.023.006-.021.004-.022.004-.021.001-.021.001-.021-.001-.021-.001-.021-.004-.021-.004-.022-.006-.021-.006-.023-.008-.022-.01-.022-.01-.023-.012-.023-.013-.023-.014-.023-.015-.024-.017-.023-.018-.024-.019-.024-.02-.025-.021-.024-.023-.024-.023-.025-.051-.05-.056-.05-.06-.05-.065-.051-.07-.052-.074-.051-.079-.052-.083-.052-.088-.052-.092-.052-.096-.052-.101-.052-.106-.052-.11-.052-.114-.052-.118-.051-.123-.051-.126-.051-.131-.05-.136-.05-.139-.049-.143-.048-.148-.048-.152-.048-.155-.046-.16-.046-.163-.045-.168-.043-.172-.043-.175-.042-.179-.041-.183-.04-.187-.038-.191-.038-.194-.036-.198-.034-.202-.033-.205-.032-.21-.031-.212-.028-.216-.027-.22-.026-.224-.023-.226-.022-.231-.021-.233-.018-.237-.016-.241-.014-.244-.012-.247-.011-.25-.008-.254-.005-.257-.004-.26-.001-.26.001z")},T0=function(t){t.append("defs").append("symbol").attr("id","computer").attr("width","24").attr("height","24").append("path").attr("transform","scale(.5)").attr("d","M2 2v13h20v-13h-20zm18 11h-16v-9h16v9zm-10.228 6l.466-1h3.524l.467 1h-4.457zm14.228 3h-24l2-6h2.104l-1.33 4h18.45l-1.297-4h2.073l2 6zm-5-10h-14v-7h14v7z")},b0=function(t){t.append("defs").append("symbol").attr("id","clock").attr("width","24").attr("height","24").append("path").attr("transform","scale(.5)").attr("d","M12 2c5.514 0 10 4.486 10 10s-4.486 10-10 10-10-4.486-10-10 4.486-10 10-10zm0-2c-6.627 0-12 5.373-12 12s5.373 12 12 12 12-5.373 12-12-5.373-12-12-12zm5.848 12.459c.202.038.202.333.001.372-1.907.361-6.045 1.111-6.547 1.111-.719 0-1.301-.582-1.301-1.301 0-.512.77-5.447 1.125-7.445.034-.192.312-.181.343.014l.985 6.238 5.394 1.011z")},E0=function(t){t.append("defs").append("marker").attr("id","arrowhead").attr("refX",7.9).attr("refY",5).attr("markerUnits","userSpaceOnUse").attr("markerWidth",12).attr("markerHeight",12).attr("orient","auto").append("path").attr("d","M 0 0 L 10 5 L 0 10 z")},m0=function(t){t.append("defs").append("marker").attr("id","filled-head").attr("refX",15.5).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L14,7 L9,1 Z")},w0=function(t){t.append("defs").append("marker").attr("id","sequencenumber").attr("refX",15).attr("refY",15).attr("markerWidth",60).attr("markerHeight",40).attr("orient","auto").append("circle").attr("cx",15).attr("cy",15).attr("r",6)},v0=function(t){t.append("defs").append("marker").attr("id","crosshead").attr("markerWidth",15).attr("markerHeight",8).attr("orient","auto").attr("refX",4).attr("refY",4.5).append("path").attr("fill","none").attr("stroke","#000000").style("stroke-dasharray","0, 0").attr("stroke-width","1pt").attr("d","M 1,2 L 6,7 M 6,2 L 1,7")},fe=function(){return{x:0,y:0,fill:void 0,anchor:void 0,style:"#666",width:void 0,height:void 0,textMargin:0,rx:0,ry:0,tspan:!0,valign:void 0}},_0=function(){return{x:0,y:0,fill:"#EDF2AE",stroke:"#666",width:100,anchor:"start",height:100,rx:0,ry:0}},Kt=function(){function t(a,o,l,p,r,x,T){const u=o.append("text").attr("x",l+r/2).attr("y",p+x/2+5).style("text-anchor","middle").text(a);i(u,T)}function e(a,o,l,p,r,x,T,u){const{actorFontSize:g,actorFontFamily:m,actorFontWeight:_}=u,[I,V]=se(g),S=a.split(v.lineBreakRegex);for(let O=0;Ot.height||0))+(this.loops.length===0?0:this.loops.map(t=>t.height||0).reduce((t,e)=>t+e))+(this.messages.length===0?0:this.messages.map(t=>t.height||0).reduce((t,e)=>t+e))+(this.notes.length===0?0:this.notes.map(t=>t.height||0).reduce((t,e)=>t+e))},clear:function(){this.actors=[],this.boxes=[],this.loops=[],this.messages=[],this.notes=[]},addBox:function(t){this.boxes.push(t)},addActor:function(t){this.actors.push(t)},addLoop:function(t){this.loops.push(t)},addMessage:function(t){this.messages.push(t)},addNote:function(t){this.notes.push(t)},lastActor:function(){return this.actors[this.actors.length-1]},lastLoop:function(){return this.loops[this.loops.length-1]},lastMessage:function(){return this.messages[this.messages.length-1]},lastNote:function(){return this.notes[this.notes.length-1]},actors:[],boxes:[],loops:[],messages:[],notes:[]},init:function(){this.sequenceItems=[],this.activations=[],this.models.clear(),this.data={startx:void 0,stopx:void 0,starty:void 0,stopy:void 0},this.verticalPos=0,xe(st())},updateVal:function(t,e,c,s){t[e]===void 0?t[e]=c:t[e]=s(c,t[e])},updateBounds:function(t,e,c,s){const i=this;let a=0;function o(l){return function(r){a++;const x=i.sequenceItems.length-a+1;i.updateVal(r,"starty",e-x*n.boxMargin,Math.min),i.updateVal(r,"stopy",s+x*n.boxMargin,Math.max),i.updateVal(f.data,"startx",t-x*n.boxMargin,Math.min),i.updateVal(f.data,"stopx",c+x*n.boxMargin,Math.max),l!=="activation"&&(i.updateVal(r,"startx",t-x*n.boxMargin,Math.min),i.updateVal(r,"stopx",c+x*n.boxMargin,Math.max),i.updateVal(f.data,"starty",e-x*n.boxMargin,Math.min),i.updateVal(f.data,"stopy",s+x*n.boxMargin,Math.max))}}this.sequenceItems.forEach(o()),this.activations.forEach(o("activation"))},insert:function(t,e,c,s){const i=v.getMin(t,c),a=v.getMax(t,c),o=v.getMin(e,s),l=v.getMax(e,s);this.updateVal(f.data,"startx",i,Math.min),this.updateVal(f.data,"starty",o,Math.min),this.updateVal(f.data,"stopx",a,Math.max),this.updateVal(f.data,"stopy",l,Math.max),this.updateBounds(i,o,a,l)},newActivation:function(t,e,c){const s=c[t.from.actor],i=St(t.from.actor).length||0,a=s.x+s.width/2+(i-1)*n.activationWidth/2;this.activations.push({startx:a,starty:this.verticalPos+2,stopx:a+n.activationWidth,stopy:void 0,actor:t.from.actor,anchored:D.anchorElement(e)})},endActivation:function(t){const e=this.activations.map(function(c){return c.actor}).lastIndexOf(t.from.actor);return this.activations.splice(e,1)[0]},createLoop:function(t={message:void 0,wrap:!1,width:void 0},e){return{startx:void 0,starty:this.verticalPos,stopx:void 0,stopy:void 0,title:t.message,wrap:t.wrap,width:t.width,height:0,fill:e}},newLoop:function(t={message:void 0,wrap:!1,width:void 0},e){this.sequenceItems.push(this.createLoop(t,e))},endLoop:function(){return this.sequenceItems.pop()},isLoopOverlap:function(){return this.sequenceItems.length?this.sequenceItems[this.sequenceItems.length-1].overlap:!1},addSectionToLoop:function(t){const e=this.sequenceItems.pop();e.sections=e.sections||[],e.sectionTitles=e.sectionTitles||[],e.sections.push({y:f.getVerticalPos(),height:0}),e.sectionTitles.push(t),this.sequenceItems.push(e)},saveVerticalPos:function(){this.isLoopOverlap()&&(this.savedVerticalPos=this.verticalPos)},resetVerticalPos:function(){this.isLoopOverlap()&&(this.verticalPos=this.savedVerticalPos)},bumpVerticalPos:function(t){this.verticalPos=this.verticalPos+t,this.data.stopy=v.getMax(this.data.stopy,this.verticalPos)},getVerticalPos:function(){return this.verticalPos},getBounds:function(){return{bounds:this.data,models:this.models}}},P0=async function(t,e){f.bumpVerticalPos(n.boxMargin),e.height=n.boxMargin,e.starty=f.getVerticalPos();const c=Nt();c.x=e.startx,c.y=e.starty,c.width=e.width||n.width,c.class="note";const s=t.append("g"),i=D.drawRect(s,c),a=zt();a.x=e.startx,a.y=e.starty,a.width=c.width,a.dy="1em",a.text=e.message,a.class="noteText",a.fontFamily=n.noteFontFamily,a.fontSize=n.noteFontSize,a.fontWeight=n.noteFontWeight,a.anchor=n.noteAlign,a.textMargin=n.noteMargin,a.valign="center";const o=nt(a.text)?await It(s,a):bt(s,a),l=Math.round(o.map(p=>(p._groups||p)[0][0].getBBox().height).reduce((p,r)=>p+r));i.attr("height",l+2*n.noteMargin),e.height+=l+2*n.noteMargin,f.bumpVerticalPos(l+2*n.noteMargin),e.stopy=e.starty+l+2*n.noteMargin,e.stopx=e.startx+c.width,f.insert(e.startx,e.starty,e.stopx,e.stopy),f.models.addNote(e)},xt=t=>({fontFamily:t.messageFontFamily,fontSize:t.messageFontSize,fontWeight:t.messageFontWeight}),Tt=t=>({fontFamily:t.noteFontFamily,fontSize:t.noteFontSize,fontWeight:t.noteFontWeight}),Wt=t=>({fontFamily:t.actorFontFamily,fontSize:t.actorFontSize,fontWeight:t.actorFontWeight});async function L0(t,e){f.bumpVerticalPos(10);const{startx:c,stopx:s,message:i}=e,a=v.splitBreaks(i).length,o=nt(i),l=o?await wt(i,st()):B.calculateTextDimensions(i,xt(n));if(!o){const T=l.height/a;e.height+=T,f.bumpVerticalPos(T)}let p,r=l.height-10;const x=l.width;if(c===s){p=f.getVerticalPos()+r,n.rightAngles||(r+=n.boxMargin,p=f.getVerticalPos()+r),r+=30;const T=v.getMax(x/2,n.width/2);f.insert(c-T,f.getVerticalPos()-10+r,s+T,f.getVerticalPos()+30+r)}else r+=n.boxMargin,p=f.getVerticalPos()+r,f.insert(c,p-10,s,p);return f.bumpVerticalPos(r),e.height+=r,e.stopy=e.starty+e.height,f.insert(e.fromBounds,e.starty,e.toBounds,e.stopy),p}const I0=async function(t,e,c,s){const{startx:i,stopx:a,starty:o,message:l,type:p,sequenceIndex:r,sequenceVisible:x}=e,T=B.calculateTextDimensions(l,xt(n)),u=zt();u.x=i,u.y=o+10,u.width=a-i,u.class="messageText",u.dy="1em",u.text=l,u.fontFamily=n.messageFontFamily,u.fontSize=n.messageFontSize,u.fontWeight=n.messageFontWeight,u.anchor=n.messageAlign,u.valign="center",u.textMargin=n.wrapPadding,u.tspan=!1,nt(u.text)?await It(t,u,{startx:i,stopx:a,starty:c}):bt(t,u);const g=T.width;let m;i===a?n.rightAngles?m=t.append("path").attr("d",`M ${i},${c} H ${i+v.getMax(n.width/2,g/2)} V ${c+25} H ${i}`):m=t.append("path").attr("d","M "+i+","+c+" C "+(i+60)+","+(c-10)+" "+(i+60)+","+(c+30)+" "+i+","+(c+20)):(m=t.append("line"),m.attr("x1",i),m.attr("y1",c),m.attr("x2",a),m.attr("y2",c)),p===s.db.LINETYPE.DOTTED||p===s.db.LINETYPE.DOTTED_CROSS||p===s.db.LINETYPE.DOTTED_POINT||p===s.db.LINETYPE.DOTTED_OPEN?(m.style("stroke-dasharray","3, 3"),m.attr("class","messageLine1")):m.attr("class","messageLine0");let _="";n.arrowMarkerAbsolute&&(_=window.location.protocol+"//"+window.location.host+window.location.pathname+window.location.search,_=_.replace(/\(/g,"\\("),_=_.replace(/\)/g,"\\)")),m.attr("stroke-width",2),m.attr("stroke","none"),m.style("fill","none"),(p===s.db.LINETYPE.SOLID||p===s.db.LINETYPE.DOTTED)&&m.attr("marker-end","url("+_+"#arrowhead)"),(p===s.db.LINETYPE.SOLID_POINT||p===s.db.LINETYPE.DOTTED_POINT)&&m.attr("marker-end","url("+_+"#filled-head)"),(p===s.db.LINETYPE.SOLID_CROSS||p===s.db.LINETYPE.DOTTED_CROSS)&&m.attr("marker-end","url("+_+"#crosshead)"),(x||n.showSequenceNumbers)&&(m.attr("marker-start","url("+_+"#sequencenumber)"),t.append("text").attr("x",i).attr("y",c+4).attr("font-family","sans-serif").attr("font-size","12px").attr("text-anchor","middle").attr("class","sequenceNumber").text(r))},A0=async function(t,e,c,s,i,a,o){let l=0,p=0,r,x=0;for(const T of s){const u=e[T],g=u.box;r&&r!=g&&(f.models.addBox(r),p+=n.boxMargin+r.margin),g&&g!=r&&(g.x=l+p,g.y=i,p+=g.margin),u.width=u.width||n.width,u.height=v.getMax(u.height||n.height,n.height),u.margin=u.margin||n.actorMargin,x=v.getMax(x,u.height),c[u.name]&&(p+=u.width/2),u.x=l+p,u.starty=f.getVerticalPos(),f.insert(u.x,i,u.x+u.width,u.height),l+=u.width+p,u.box&&(u.box.width=l+g.margin-u.box.x),p=u.margin,r=u.box,f.models.addActor(u)}r&&!o&&f.models.addBox(r),f.bumpVerticalPos(x)},qt=async function(t,e,c,s){if(s){let i=0;f.bumpVerticalPos(n.boxMargin*2);for(const a of c){const o=e[a];o.stopy||(o.stopy=f.getVerticalPos());const l=await D.drawActor(t,o,n,!0);i=v.getMax(i,l)}f.bumpVerticalPos(i+n.boxMargin)}else for(const i of c){const a=e[i];await D.drawActor(t,a,n,!1)}},ge=function(t,e,c,s){let i=0,a=0;for(const o of c){const l=e[o],p=R0(l),r=D.drawPopup(t,l,p,n,n.forceMenus,s);r.height>i&&(i=r.height),r.width+l.x>a&&(a=r.width+l.x)}return{maxHeight:i,maxWidth:a}},xe=function(t){Ie(n,t),t.fontFamily&&(n.actorFontFamily=n.noteFontFamily=n.messageFontFamily=t.fontFamily),t.fontSize&&(n.actorFontSize=n.noteFontSize=n.messageFontSize=t.fontSize),t.fontWeight&&(n.actorFontWeight=n.noteFontWeight=n.messageFontWeight=t.fontWeight)},St=function(t){return f.activations.filter(function(e){return e.actor===t})},jt=function(t,e){const c=e[t],s=St(t),i=s.reduce(function(o,l){return v.getMin(o,l.startx)},c.x+c.width/2-1),a=s.reduce(function(o,l){return v.getMax(o,l.stopx)},c.x+c.width/2+1);return[i,a]};function it(t,e,c,s,i){f.bumpVerticalPos(c);let a=s;if(e.id&&e.message&&t[e.id]){const o=t[e.id].width,l=xt(n);e.message=B.wrapLabel(`[${e.message}]`,o-2*n.wrapPadding,l),e.width=o,e.wrap=!0;const p=B.calculateTextDimensions(e.message,l),r=v.getMax(p.height,n.labelBoxHeight);a=s+r,X.debug(`${r} - ${e.message}`)}i(e),f.bumpVerticalPos(a)}function N0(t,e,c,s,i,a,o){function l(r,x){r.x{y.add(P.from),y.add(P.to)}),m=m.filter(P=>y.has(P))}await A0(r,x,T,m,0,_,!1);const R=await O0(_,x,O,s);D.insertArrowHead(r),D.insertArrowCrossHead(r),D.insertArrowFilledHead(r),D.insertSequenceNumber(r);function q(y,P){const j=f.endActivation(y);j.starty+18>P&&(j.starty=P-6,P+=12),D.drawActivation(r,j,P,n,St(y.from.actor).length),f.insert(j.startx,P-10,j.stopx,P)}let z=1,J=1;const $=[],H=[];let U=0;for(const y of _){let P,j,rt;switch(y.type){case s.db.LINETYPE.NOTE:f.resetVerticalPos(),j=y.noteModel,await P0(r,j);break;case s.db.LINETYPE.ACTIVE_START:f.newActivation(y,r,x);break;case s.db.LINETYPE.ACTIVE_END:q(y,f.getVerticalPos());break;case s.db.LINETYPE.LOOP_START:it(R,y,n.boxMargin,n.boxMargin+n.boxTextMargin,A=>f.newLoop(A));break;case s.db.LINETYPE.LOOP_END:P=f.endLoop(),await D.drawLoop(r,P,"loop",n),f.bumpVerticalPos(P.stopy-f.getVerticalPos()),f.models.addLoop(P);break;case s.db.LINETYPE.RECT_START:it(R,y,n.boxMargin,n.boxMargin,A=>f.newLoop(void 0,A.message));break;case s.db.LINETYPE.RECT_END:P=f.endLoop(),H.push(P),f.models.addLoop(P),f.bumpVerticalPos(P.stopy-f.getVerticalPos());break;case s.db.LINETYPE.OPT_START:it(R,y,n.boxMargin,n.boxMargin+n.boxTextMargin,A=>f.newLoop(A));break;case s.db.LINETYPE.OPT_END:P=f.endLoop(),await D.drawLoop(r,P,"opt",n),f.bumpVerticalPos(P.stopy-f.getVerticalPos()),f.models.addLoop(P);break;case s.db.LINETYPE.ALT_START:it(R,y,n.boxMargin,n.boxMargin+n.boxTextMargin,A=>f.newLoop(A));break;case s.db.LINETYPE.ALT_ELSE:it(R,y,n.boxMargin+n.boxTextMargin,n.boxMargin,A=>f.addSectionToLoop(A));break;case s.db.LINETYPE.ALT_END:P=f.endLoop(),await D.drawLoop(r,P,"alt",n),f.bumpVerticalPos(P.stopy-f.getVerticalPos()),f.models.addLoop(P);break;case s.db.LINETYPE.PAR_START:case s.db.LINETYPE.PAR_OVER_START:it(R,y,n.boxMargin,n.boxMargin+n.boxTextMargin,A=>f.newLoop(A)),f.saveVerticalPos();break;case s.db.LINETYPE.PAR_AND:it(R,y,n.boxMargin+n.boxTextMargin,n.boxMargin,A=>f.addSectionToLoop(A));break;case s.db.LINETYPE.PAR_END:P=f.endLoop(),await D.drawLoop(r,P,"par",n),f.bumpVerticalPos(P.stopy-f.getVerticalPos()),f.models.addLoop(P);break;case s.db.LINETYPE.AUTONUMBER:z=y.message.start||z,J=y.message.step||J,y.message.visible?s.db.enableSequenceNumbers():s.db.disableSequenceNumbers();break;case s.db.LINETYPE.CRITICAL_START:it(R,y,n.boxMargin,n.boxMargin+n.boxTextMargin,A=>f.newLoop(A));break;case s.db.LINETYPE.CRITICAL_OPTION:it(R,y,n.boxMargin+n.boxTextMargin,n.boxMargin,A=>f.addSectionToLoop(A));break;case s.db.LINETYPE.CRITICAL_END:P=f.endLoop(),await D.drawLoop(r,P,"critical",n),f.bumpVerticalPos(P.stopy-f.getVerticalPos()),f.models.addLoop(P);break;case s.db.LINETYPE.BREAK_START:it(R,y,n.boxMargin,n.boxMargin+n.boxTextMargin,A=>f.newLoop(A));break;case s.db.LINETYPE.BREAK_END:P=f.endLoop(),await D.drawLoop(r,P,"break",n),f.bumpVerticalPos(P.stopy-f.getVerticalPos()),f.models.addLoop(P);break;default:try{rt=y.msgModel,rt.starty=f.getVerticalPos(),rt.sequenceIndex=z,rt.sequenceVisible=s.db.showSequenceNumbers();const A=await L0(r,rt);N0(y,rt,A,U,x,T,u),$.push({messageModel:rt,lineStartY:A}),f.models.addMessage(rt)}catch(A){X.error("error while drawing message",A)}}[s.db.LINETYPE.SOLID_OPEN,s.db.LINETYPE.DOTTED_OPEN,s.db.LINETYPE.SOLID,s.db.LINETYPE.DOTTED,s.db.LINETYPE.SOLID_CROSS,s.db.LINETYPE.DOTTED_CROSS,s.db.LINETYPE.SOLID_POINT,s.db.LINETYPE.DOTTED_POINT].includes(y.type)&&(z=z+J),U++}X.debug("createdActors",T),X.debug("destroyedActors",u),await qt(r,x,m,!1);for(const y of $)await I0(r,y.messageModel,y.lineStartY,s);n.mirrorActors&&await qt(r,x,m,!0),H.forEach(y=>D.drawBackgroundRect(r,y)),pe(r,x,m,n);for(const y of f.models.boxes)y.height=f.getVerticalPos()-y.y,f.insert(y.x,y.y,y.x+y.width,y.height),y.startx=y.x,y.starty=y.y,y.stopx=y.startx+y.width,y.stopy=y.starty+y.height,y.stroke="rgb(0,0,0, 0.5)",await D.drawBox(r,y,n);V&&f.bumpVerticalPos(n.boxMargin);const F=ge(r,x,m,p),{bounds:W}=f.getBounds();let Z=W.stopy-W.starty;Z{const o=xt(n);let l=a.actorKeys.reduce((x,T)=>x+=t[T].width+(t[T].margin||0),0);l-=2*n.boxTextMargin,a.wrap&&(a.name=B.wrapLabel(a.name,l-2*n.wrapPadding,o));const p=B.calculateTextDimensions(a.name,o);i=v.getMax(p.height,i);const r=v.getMax(l,p.width+2*n.wrapPadding);if(a.margin=n.boxTextMargin,la.textMaxHeight=i),v.getMax(s,n.height)}const D0=async function(t,e,c){const s=e[t.from].x,i=e[t.to].x,a=t.wrap&&t.message;let o=nt(t.message)?await wt(t.message,st()):B.calculateTextDimensions(a?B.wrapLabel(t.message,n.width,Tt(n)):t.message,Tt(n));const l={width:a?n.width:v.getMax(n.width,o.width+2*n.noteMargin),height:0,startx:e[t.from].x,stopx:0,starty:0,stopy:0,message:t.message};return t.placement===c.db.PLACEMENT.RIGHTOF?(l.width=a?v.getMax(n.width,o.width):v.getMax(e[t.from].width/2+e[t.to].width/2,o.width+2*n.noteMargin),l.startx=s+(e[t.from].width+n.actorMargin)/2):t.placement===c.db.PLACEMENT.LEFTOF?(l.width=a?v.getMax(n.width,o.width+2*n.noteMargin):v.getMax(e[t.from].width/2+e[t.to].width/2,o.width+2*n.noteMargin),l.startx=s-l.width+(e[t.from].width-n.actorMargin)/2):t.to===t.from?(o=B.calculateTextDimensions(a?B.wrapLabel(t.message,v.getMax(n.width,e[t.from].width),Tt(n)):t.message,Tt(n)),l.width=a?v.getMax(n.width,e[t.from].width):v.getMax(e[t.from].width,n.width,o.width+2*n.noteMargin),l.startx=s+(e[t.from].width-l.width)/2):(l.width=Math.abs(s+e[t.from].width/2-(i+e[t.to].width/2))+n.actorMargin,l.startx=s2,T=_=>l?-_:_;t.from===t.to?r=p:(t.activate&&!x&&(r+=T(n.activationWidth/2-1)),[c.db.LINETYPE.SOLID_OPEN,c.db.LINETYPE.DOTTED_OPEN].includes(t.type)||(r+=T(3)));const u=[s,i,a,o],g=Math.abs(p-r);t.wrap&&t.message&&(t.message=B.wrapLabel(t.message,v.getMax(g+2*n.wrapPadding,n.width),xt(n)));const m=B.calculateTextDimensions(t.message,xt(n));return{width:v.getMax(t.wrap?0:m.width+2*n.wrapPadding,g+2*n.wrapPadding,n.width),height:0,startx:p,stopx:r,starty:0,stopy:0,message:t.message,type:t.type,wrap:t.wrap,fromBounds:Math.min.apply(null,u),toBounds:Math.max.apply(null,u)}},O0=async function(t,e,c,s){const i={},a=[];let o,l,p;for(const r of t){switch(r.id=B.random({length:10}),r.type){case s.db.LINETYPE.LOOP_START:case s.db.LINETYPE.ALT_START:case s.db.LINETYPE.OPT_START:case s.db.LINETYPE.PAR_START:case s.db.LINETYPE.PAR_OVER_START:case s.db.LINETYPE.CRITICAL_START:case s.db.LINETYPE.BREAK_START:a.push({id:r.id,msg:r.message,from:Number.MAX_SAFE_INTEGER,to:Number.MIN_SAFE_INTEGER,width:0});break;case s.db.LINETYPE.ALT_ELSE:case s.db.LINETYPE.PAR_AND:case s.db.LINETYPE.CRITICAL_OPTION:r.message&&(o=a.pop(),i[o.id]=o,i[r.id]=o,a.push(o));break;case s.db.LINETYPE.LOOP_END:case s.db.LINETYPE.ALT_END:case s.db.LINETYPE.OPT_END:case s.db.LINETYPE.PAR_END:case s.db.LINETYPE.CRITICAL_END:case s.db.LINETYPE.BREAK_END:o=a.pop(),i[o.id]=o;break;case s.db.LINETYPE.ACTIVE_START:{const T=e[r.from?r.from.actor:r.to.actor],u=St(r.from?r.from.actor:r.to.actor).length,g=T.x+T.width/2+(u-1)*n.activationWidth/2,m={startx:g,stopx:g+n.activationWidth,actor:r.from.actor,enabled:!0};f.activations.push(m)}break;case s.db.LINETYPE.ACTIVE_END:{const T=f.activations.map(u=>u.actor).lastIndexOf(r.from.actor);delete f.activations.splice(T,1)[0]}break}r.placement!==void 0?(l=await D0(r,e,s),r.noteModel=l,a.forEach(T=>{o=T,o.from=v.getMin(o.from,l.startx),o.to=v.getMax(o.to,l.startx+l.width),o.width=v.getMax(o.width,Math.abs(o.from-o.to))-n.labelBoxWidth})):(p=V0(r,e,s),r.msgModel=p,p.startx&&p.stopx&&a.length>0&&a.forEach(T=>{if(o=T,p.startx===p.stopx){const u=e[r.from],g=e[r.to];o.from=v.getMin(u.x-p.width/2,u.x-u.width/2,o.from),o.to=v.getMax(g.x+p.width/2,g.x+u.width/2,o.to),o.width=v.getMax(o.width,Math.abs(o.to-o.from))-n.labelBoxWidth}else o.from=v.getMin(p.startx,o.from),o.to=v.getMax(p.stopx,o.to),o.width=v.getMax(o.width,p.width)-n.labelBoxWidth}))}return f.activations=[],X.debug("Loop type widths:",i),i},B0={bounds:f,drawActors:qt,drawActorsPopup:ge,setConf:xe,draw:S0},q0={parser:De,db:Qt,renderer:B0,styles:o0,init:({wrap:t})=>{Qt.setWrap(t)}};export{q0 as diagram}; diff --git a/assets/stateDiagram-587899a1-0572nodG.js b/assets/stateDiagram-587899a1-0572nodG.js new file mode 100644 index 00000000..0643fc04 --- /dev/null +++ b/assets/stateDiagram-587899a1-0572nodG.js @@ -0,0 +1 @@ +import{p as P,d as N,s as W}from"./styles-6aaf32cf-DpMs8-PK.js";import{c as t,h as H,l as b,i as R,j as T,ao as v,z as U}from"./mermaid.core-B_tqKmhs.js";import{G as C}from"./graph-Es7S6dYR.js";import{l as F}from"./layout-Cjy8fVPY.js";import{l as $}from"./line-CC-POSaO.js";import"./index-Be9IN4QR.js";import"./array-BKyUJesY.js";import"./path-CbwjOpE9.js";const O=e=>e.append("circle").attr("class","start-state").attr("r",t().state.sizeUnit).attr("cx",t().state.padding+t().state.sizeUnit).attr("cy",t().state.padding+t().state.sizeUnit),X=e=>e.append("line").style("stroke","grey").style("stroke-dasharray","3").attr("x1",t().state.textHeight).attr("class","divider").attr("x2",t().state.textHeight*2).attr("y1",0).attr("y2",0),J=(e,i)=>{const o=e.append("text").attr("x",2*t().state.padding).attr("y",t().state.textHeight+2*t().state.padding).attr("font-size",t().state.fontSize).attr("class","state-title").text(i.id),c=o.node().getBBox();return e.insert("rect",":first-child").attr("x",t().state.padding).attr("y",t().state.padding).attr("width",c.width+2*t().state.padding).attr("height",c.height+2*t().state.padding).attr("rx",t().state.radius),o},Y=(e,i)=>{const o=function(l,m,w){const E=l.append("tspan").attr("x",2*t().state.padding).text(m);w||E.attr("dy",t().state.textHeight)},s=e.append("text").attr("x",2*t().state.padding).attr("y",t().state.textHeight+1.3*t().state.padding).attr("font-size",t().state.fontSize).attr("class","state-title").text(i.descriptions[0]).node().getBBox(),g=s.height,p=e.append("text").attr("x",t().state.padding).attr("y",g+t().state.padding*.4+t().state.dividerMargin+t().state.textHeight).attr("class","state-description");let a=!0,r=!0;i.descriptions.forEach(function(l){a||(o(p,l,r),r=!1),a=!1});const y=e.append("line").attr("x1",t().state.padding).attr("y1",t().state.padding+g+t().state.dividerMargin/2).attr("y2",t().state.padding+g+t().state.dividerMargin/2).attr("class","descr-divider"),x=p.node().getBBox(),d=Math.max(x.width,s.width);return y.attr("x2",d+3*t().state.padding),e.insert("rect",":first-child").attr("x",t().state.padding).attr("y",t().state.padding).attr("width",d+2*t().state.padding).attr("height",x.height+g+2*t().state.padding).attr("rx",t().state.radius),e},I=(e,i,o)=>{const c=t().state.padding,s=2*t().state.padding,g=e.node().getBBox(),p=g.width,a=g.x,r=e.append("text").attr("x",0).attr("y",t().state.titleShift).attr("font-size",t().state.fontSize).attr("class","state-title").text(i.id),x=r.node().getBBox().width+s;let d=Math.max(x,p);d===p&&(d=d+s);let l;const m=e.node().getBBox();i.doc,l=a-c,x>p&&(l=(p-d)/2+c),Math.abs(a-m.x)p&&(l=a-(x-p)/2);const w=1-t().state.textHeight;return e.insert("rect",":first-child").attr("x",l).attr("y",w).attr("class",o?"alt-composit":"composit").attr("width",d).attr("height",m.height+t().state.textHeight+t().state.titleShift+1).attr("rx","0"),r.attr("x",l+c),x<=p&&r.attr("x",a+(d-s)/2-x/2+c),e.insert("rect",":first-child").attr("x",l).attr("y",t().state.titleShift-t().state.textHeight-t().state.padding).attr("width",d).attr("height",t().state.textHeight*3).attr("rx",t().state.radius),e.insert("rect",":first-child").attr("x",l).attr("y",t().state.titleShift-t().state.textHeight-t().state.padding).attr("width",d).attr("height",m.height+3+2*t().state.textHeight).attr("rx",t().state.radius),e},_=e=>(e.append("circle").attr("class","end-state-outer").attr("r",t().state.sizeUnit+t().state.miniPadding).attr("cx",t().state.padding+t().state.sizeUnit+t().state.miniPadding).attr("cy",t().state.padding+t().state.sizeUnit+t().state.miniPadding),e.append("circle").attr("class","end-state-inner").attr("r",t().state.sizeUnit).attr("cx",t().state.padding+t().state.sizeUnit+2).attr("cy",t().state.padding+t().state.sizeUnit+2)),q=(e,i)=>{let o=t().state.forkWidth,c=t().state.forkHeight;if(i.parentId){let s=o;o=c,c=s}return e.append("rect").style("stroke","black").style("fill","black").attr("width",o).attr("height",c).attr("x",t().state.padding).attr("y",t().state.padding)},Z=(e,i,o,c)=>{let s=0;const g=c.append("text");g.style("text-anchor","start"),g.attr("class","noteText");let p=e.replace(/\r\n/g,"
    ");p=p.replace(/\n/g,"
    ");const a=p.split(T.lineBreakRegex);let r=1.25*t().state.noteMargin;for(const y of a){const x=y.trim();if(x.length>0){const d=g.append("tspan");if(d.text(x),r===0){const l=d.node().getBBox();r+=l.height}s+=r,d.attr("x",i+t().state.noteMargin),d.attr("y",o+s+1.25*t().state.noteMargin)}}return{textWidth:g.node().getBBox().width,textHeight:s}},j=(e,i)=>{i.attr("class","state-note");const o=i.append("rect").attr("x",0).attr("y",t().state.padding),c=i.append("g"),{textWidth:s,textHeight:g}=Z(e,0,0,c);return o.attr("height",g+2*t().state.noteMargin),o.attr("width",s+t().state.noteMargin*2),o},L=function(e,i){const o=i.id,c={id:o,label:i.id,width:0,height:0},s=e.append("g").attr("id",o).attr("class","stateGroup");i.type==="start"&&O(s),i.type==="end"&&_(s),(i.type==="fork"||i.type==="join")&&q(s,i),i.type==="note"&&j(i.note.text,s),i.type==="divider"&&X(s),i.type==="default"&&i.descriptions.length===0&&J(s,i),i.type==="default"&&i.descriptions.length>0&&Y(s,i);const g=s.node().getBBox();return c.width=g.width+2*t().state.padding,c.height=g.height+2*t().state.padding,c};let G=0;const K=function(e,i,o){const c=function(r){switch(r){case N.relationType.AGGREGATION:return"aggregation";case N.relationType.EXTENSION:return"extension";case N.relationType.COMPOSITION:return"composition";case N.relationType.DEPENDENCY:return"dependency"}};i.points=i.points.filter(r=>!Number.isNaN(r.y));const s=i.points,g=$().x(function(r){return r.x}).y(function(r){return r.y}).curve(v),p=e.append("path").attr("d",g(s)).attr("id","edge"+G).attr("class","transition");let a="";if(t().state.arrowMarkerAbsolute&&(a=window.location.protocol+"//"+window.location.host+window.location.pathname+window.location.search,a=a.replace(/\(/g,"\\("),a=a.replace(/\)/g,"\\)")),p.attr("marker-end","url("+a+"#"+c(N.relationType.DEPENDENCY)+"End)"),o.title!==void 0){const r=e.append("g").attr("class","stateLabel"),{x:y,y:x}=U.calcLabelPosition(i.points),d=T.getRows(o.title);let l=0;const m=[];let w=0,E=0;for(let u=0;u<=d.length;u++){const h=r.append("text").attr("text-anchor","middle").text(d[u]).attr("x",y).attr("y",x+l),f=h.node().getBBox();w=Math.max(w,f.width),E=Math.min(E,f.x),b.info(f.x,y,x+l),l===0&&(l=h.node().getBBox().height,b.info("Title height",l,x)),m.push(h)}let k=l*d.length;if(d.length>1){const u=(d.length-1)*l*.5;m.forEach((h,f)=>h.attr("y",x+f*l-u)),k=l*d.length}const n=r.node().getBBox();r.insert("rect",":first-child").attr("class","box").attr("x",y-w/2-t().state.padding/2).attr("y",x-k/2-t().state.padding/2-3.5).attr("width",w+t().state.padding).attr("height",k+t().state.padding),b.info(n)}G++};let B;const z={},Q=function(){},V=function(e){e.append("defs").append("marker").attr("id","dependencyEnd").attr("refX",19).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 19,7 L9,13 L14,7 L9,1 Z")},D=function(e,i,o,c){B=t().state;const s=t().securityLevel;let g;s==="sandbox"&&(g=H("#i"+i));const p=s==="sandbox"?H(g.nodes()[0].contentDocument.body):H("body"),a=s==="sandbox"?g.nodes()[0].contentDocument:document;b.debug("Rendering diagram "+e);const r=p.select(`[id='${i}']`);V(r);const y=c.db.getRootDoc();A(y,r,void 0,!1,p,a,c);const x=B.padding,d=r.node().getBBox(),l=d.width+x*2,m=d.height+x*2,w=l*1.75;R(r,m,w,B.useMaxWidth),r.attr("viewBox",`${d.x-B.padding} ${d.y-B.padding} `+l+" "+m)},tt=e=>e?e.length*B.fontSizeFactor:1,A=(e,i,o,c,s,g,p)=>{const a=new C({compound:!0,multigraph:!0});let r,y=!0;for(r=0;r{const f=h.parentElement;let S=0,M=0;f&&(f.parentElement&&(S=f.parentElement.getBBox().width),M=parseInt(f.getAttribute("data-x-shift"),10),Number.isNaN(M)&&(M=0)),h.setAttribute("x1",0-M+8),h.setAttribute("x2",S-M-8)})):b.debug("No Node "+n+": "+JSON.stringify(a.node(n)))});let E=w.getBBox();a.edges().forEach(function(n){n!==void 0&&a.edge(n)!==void 0&&(b.debug("Edge "+n.v+" -> "+n.w+": "+JSON.stringify(a.edge(n))),K(i,a.edge(n),a.edge(n).relation))}),E=w.getBBox();const k={id:o||"root",label:o||"root",width:0,height:0};return k.width=E.width+2*B.padding,k.height=E.height+2*B.padding,b.debug("Doc rendered",k,a),k},et={setConf:Q,draw:D},lt={parser:P,db:N,renderer:et,styles:W,init:e=>{e.state||(e.state={}),e.state.arrowMarkerAbsolute=e.arrowMarkerAbsolute,N.clear()}};export{lt as diagram}; diff --git a/assets/stateDiagram-v2-d93cdb3a-Bk-Y7fy9.js b/assets/stateDiagram-v2-d93cdb3a-Bk-Y7fy9.js new file mode 100644 index 00000000..6eea2675 --- /dev/null +++ b/assets/stateDiagram-v2-d93cdb3a-Bk-Y7fy9.js @@ -0,0 +1 @@ +import{p as J,d as B,s as Q,D as H,a as X,S as Z,b as F,c as I}from"./styles-6aaf32cf-DpMs8-PK.js";import{G as tt}from"./graph-Es7S6dYR.js";import{l as E,c as g,h as x,z as et,i as ot,j as w}from"./mermaid.core-B_tqKmhs.js";import{r as st}from"./index-3862675e-BNucB7R-.js";import"./layout-Cjy8fVPY.js";import"./index-Be9IN4QR.js";import"./clone-WSVs8Prh.js";import"./edges-e0da2a9e-CFrRRtuw.js";import"./createText-2e5e7dd3-CtNqJc9Q.js";import"./line-CC-POSaO.js";import"./array-BKyUJesY.js";import"./path-CbwjOpE9.js";const h="rect",C="rectWithTitle",nt="start",it="end",ct="divider",rt="roundedWithTitle",lt="note",at="noteGroup",_="statediagram",dt="state",Et=`${_}-${dt}`,U="transition",St="note",Tt="note-edge",pt=`${U} ${Tt}`,_t=`${_}-${St}`,ut="cluster",Dt=`${_}-${ut}`,bt="cluster-alt",ft=`${_}-${bt}`,V="parent",Y="note",At="state",N="----",ht=`${N}${Y}`,M=`${N}${V}`,m="fill:none",z="fill: #333",W="c",j="text",q="normal";let y={},d=0;const yt=function(t){const n=Object.keys(t);for(const e of n)t[e]},gt=function(t,n){return n.db.extract(n.db.getRootDocV2()),n.db.getClasses()};function $t(t){return t==null?"":t.classes?t.classes.join(" "):""}function R(t="",n=0,e="",i=N){const c=e!==null&&e.length>0?`${i}${e}`:"";return`${At}-${t}${c}-${n}`}const A=(t,n,e,i,c,r)=>{const o=e.id,u=$t(i[o]);if(o!=="root"){let T=h;e.start===!0&&(T=nt),e.start===!1&&(T=it),e.type!==H&&(T=e.type),y[o]||(y[o]={id:o,shape:T,description:w.sanitizeText(o,g()),classes:`${u} ${Et}`});const s=y[o];e.description&&(Array.isArray(s.description)?(s.shape=C,s.description.push(e.description)):s.description.length>0?(s.shape=C,s.description===o?s.description=[e.description]:s.description=[s.description,e.description]):(s.shape=h,s.description=e.description),s.description=w.sanitizeTextOrArray(s.description,g())),s.description.length===1&&s.shape===C&&(s.shape=h),!s.type&&e.doc&&(E.info("Setting cluster for ",o,G(e)),s.type="group",s.dir=G(e),s.shape=e.type===X?ct:rt,s.classes=s.classes+" "+Dt+" "+(r?ft:""));const p={labelStyle:"",shape:s.shape,labelText:s.description,classes:s.classes,style:"",id:o,dir:s.dir,domId:R(o,d),type:s.type,padding:15};if(p.centerLabel=!0,e.note){const l={labelStyle:"",shape:lt,labelText:e.note.text,classes:_t,style:"",id:o+ht+"-"+d,domId:R(o,d,Y),type:s.type,padding:15},a={labelStyle:"",shape:at,labelText:e.note.text,classes:s.classes,style:"",id:o+M,domId:R(o,d,V),type:"group",padding:0};d++;const D=o+M;t.setNode(D,a),t.setNode(l.id,l),t.setNode(o,p),t.setParent(o,D),t.setParent(l.id,D);let S=o,b=l.id;e.note.position==="left of"&&(S=l.id,b=o),t.setEdge(S,b,{arrowhead:"none",arrowType:"",style:m,labelStyle:"",classes:pt,arrowheadStyle:z,labelpos:W,labelType:j,thickness:q})}else t.setNode(o,p)}n&&n.id!=="root"&&(E.trace("Setting node ",o," to be child of its parent ",n.id),t.setParent(o,n.id)),e.doc&&(E.trace("Adding nodes children "),xt(t,e,e.doc,i,c,!r))},xt=(t,n,e,i,c,r)=>{E.trace("items",e),e.forEach(o=>{switch(o.stmt){case F:A(t,n,o,i,c,r);break;case H:A(t,n,o,i,c,r);break;case Z:{A(t,n,o.state1,i,c,r),A(t,n,o.state2,i,c,r);const u={id:"edge"+d,arrowhead:"normal",arrowTypeEnd:"arrow_barb",style:m,labelStyle:"",label:w.sanitizeText(o.description,g()),arrowheadStyle:z,labelpos:W,labelType:j,thickness:q,classes:U};t.setEdge(o.state1.id,o.state2.id,u,d),d++}break}})},G=(t,n=I)=>{let e=n;if(t.doc)for(let i=0;i{t.state||(t.state={}),t.state.arrowMarkerAbsolute=t.arrowMarkerAbsolute,B.clear()}};export{Vt as diagram}; diff --git a/assets/sticky-navigation.component-CKipR5YJ.js b/assets/sticky-navigation.component-CKipR5YJ.js new file mode 100644 index 00000000..749ec087 --- /dev/null +++ b/assets/sticky-navigation.component-CKipR5YJ.js @@ -0,0 +1,58 @@ +var xe=Object.defineProperty;var Ce=(d,i,s)=>i in d?xe(d,i,{enumerable:!0,configurable:!0,writable:!0,value:s}):d[i]=s;var r=(d,i,s)=>Ce(d,typeof i!="symbol"?i+"":i,s);import{af as ve,ag as ke,a3 as F,a2 as me,ɵ as W,a as C,b as I,d as g,Q as Ee,y,T as be,a4 as ae,ah as Me,I as L,a7 as De,W as Ne,ai as le,aj as w,ak as Te,al as de,j as u,am as we,an as N,ao as Ae,ap as ce,k as he,aq as q,ar as _e,S as P,B as T,as as Se,at as Oe,o as p,t as b,au as B,av as X,a9 as S,s as O,aw as f,ax as Pe,ay as R,az as Z,aA as ee,aB as ue,n as H,p as V,m as Ke,D as A,aC as pe,aD as Ie,aE as Le,q as z,u as G,f as Be,h as Re,J as Fe,E as te,aF as He,aG as Ve,M as ge,r as U,aH as ze,w as J,x as fe,U as Ue,aI as Qe,G as Q,aJ as $e,A as je,F as We,H as qe,aK as Ge,V as Je}from"./index-Be9IN4QR.js";function ne(d,i){return ve(ke(d,i,arguments.length>=2,!1,!0))}const Ye=(d,i)=>i.slug,Xe=d=>["..",d];function Ze(d,i){if(d&1&&(C(0,"li")(1,"a",3),I(2),g()()),d&2){const s=i.$implicit;y(),L("routerLink",De(3,Xe,s.slug))("lang",s.attributes.language||"de"),y(),Ne(s.attributes.title)}}const m=class m{constructor(){this.series=F.required(),this.allPosts=me()}get relatedPosts(){return this.allPosts.filter(i=>i.attributes.series&&i.attributes.series===this.series())}};m.ɵfac=function(s){return new(s||m)},m.ɵcmp=W({type:m,selectors:[["dk-series-list"]],inputs:{series:[1,"series"]},decls:6,vars:0,consts:[[1,"article-series"],[1,"sub-heading"],[1,"alt"],["routerLinkActive","current","ariaCurrentWhenActive","page",3,"routerLink","lang"]],template:function(s,l){s&1&&(C(0,"section",0)(1,"h2",1),I(2,"Artikelserie"),g(),C(3,"ol",2),Ee(4,Ze,3,5,"li",null,Ye),g()()),s&2&&(y(4),be(l.relatedPosts))},dependencies:[ae,Me],styles:[`.article-series[_ngcontent-%COMP%] li[_ngcontent-%COMP%]:has(.current:not(:hover)) { + background-color: rgb(39.2545454545, 62.3454545455, 75.0454545455); +}`]});let se=m;class et{constructor(){r(this,"dataNodes");r(this,"expansionModel",new de(!0));r(this,"trackBy");r(this,"getLevel");r(this,"isExpandable");r(this,"getChildren")}toggle(i){this.expansionModel.toggle(this._trackByValue(i))}expand(i){this.expansionModel.select(this._trackByValue(i))}collapse(i){this.expansionModel.deselect(this._trackByValue(i))}isExpanded(i){return this.expansionModel.isSelected(this._trackByValue(i))}toggleDescendants(i){this.expansionModel.isSelected(this._trackByValue(i))?this.collapseDescendants(i):this.expandDescendants(i)}collapseAll(){this.expansionModel.clear()}expandDescendants(i){let s=[i];s.push(...this.getDescendants(i)),this.expansionModel.select(...s.map(l=>this._trackByValue(l)))}collapseDescendants(i){let s=[i];s.push(...this.getDescendants(i)),this.expansionModel.deselect(...s.map(l=>this._trackByValue(l)))}_trackByValue(i){return this.trackBy?this.trackBy(i):i}}class tt extends et{constructor(s,l){super();r(this,"getChildren");r(this,"options");this.getChildren=s,this.options=l,this.options&&(this.trackBy=this.options.trackBy),this.options?.isExpandable&&(this.isExpandable=this.options.isExpandable)}expandAll(){this.expansionModel.clear();const s=this.dataNodes.reduce((l,e)=>[...l,...this.getDescendants(e),e],[]);this.expansionModel.select(...s.map(l=>this._trackByValue(l)))}getDescendants(s){const l=[];return this._getDescendants(l,s),l.splice(1)}_getDescendants(s,l){s.push(l);const e=this.getChildren(l);Array.isArray(e)?e.forEach(t=>this._getDescendants(s,t)):le(e)&&e.pipe(w(1),Te(Boolean)).subscribe(t=>{for(const n of t)this._getDescendants(s,n)})}}const ye=new Fe("CDK_TREE_NODE_OUTLET_NODE");let M=(()=>{const s=class s{constructor(){r(this,"viewContainer",u(we));r(this,"_node",u(ye,{optional:!0}))}};r(s,"ɵfac",function(t){return new(t||s)}),r(s,"ɵdir",N({type:s,selectors:[["","cdkTreeNodeOutlet",""]]}));let i=s;return i})();class nt{constructor(i){r(this,"$implicit");r(this,"level");r(this,"index");r(this,"count");this.$implicit=i}}let K=(()=>{const s=class s{constructor(){r(this,"template",u(Ae));r(this,"when")}};r(s,"ɵfac",function(t){return new(t||s)}),r(s,"ɵdir",N({type:s,selectors:[["","cdkTreeNodeDef",""]],inputs:{when:[0,"cdkTreeNodeDefWhen","when"]}}));let i=s;return i})();function ie(){return Error("Could not find a tree control, levelAccessor, or childrenAccessor for the tree.")}let D=(()=>{const s=class s{constructor(){r(this,"_differs",u(ce));r(this,"_changeDetectorRef",u(he));r(this,"_elementRef",u(q));r(this,"_dir",u(_e));r(this,"_onDestroy",new P);r(this,"_dataDiffer");r(this,"_defaultNodeDef");r(this,"_dataSubscription");r(this,"_levels",new Map);r(this,"_parents",new Map);r(this,"_ariaSets",new Map);r(this,"_dataSource");r(this,"treeControl");r(this,"levelAccessor");r(this,"childrenAccessor");r(this,"trackBy");r(this,"expansionKey");r(this,"_nodeOutlet");r(this,"_nodeDefs");r(this,"viewChange",new T({start:0,end:Number.MAX_VALUE}));r(this,"_expansionModel");r(this,"_flattenedNodes",new T([]));r(this,"_nodeType",new T(null));r(this,"_nodes",new T(new Map));r(this,"_keyManagerNodes",new T([]));r(this,"_keyManagerFactory",u(Se));r(this,"_keyManager");r(this,"_viewInit",!1)}get dataSource(){return this._dataSource}set dataSource(e){this._dataSource!==e&&this._switchDataSource(e)}ngAfterContentInit(){this._initializeKeyManager()}ngAfterContentChecked(){this._updateDefaultNodeDefinition(),this._subscribeToDataChanges()}ngOnDestroy(){this._nodeOutlet.viewContainer.clear(),this.viewChange.complete(),this._onDestroy.next(),this._onDestroy.complete(),this._dataSource&&typeof this._dataSource.disconnect=="function"&&this.dataSource.disconnect(this),this._dataSubscription&&(this._dataSubscription.unsubscribe(),this._dataSubscription=null),this._keyManager?.destroy()}ngOnInit(){this._checkTreeControlUsage(),this._initializeDataDiffer()}ngAfterViewInit(){this._viewInit=!0}_updateDefaultNodeDefinition(){const e=this._nodeDefs.filter(t=>!t.when);e.length>1,this._defaultNodeDef=e[0]}_setNodeTypeIfUnset(e){this._nodeType.value===null&&this._nodeType.next(e)}_switchDataSource(e){this._dataSource&&typeof this._dataSource.disconnect=="function"&&this.dataSource.disconnect(this),this._dataSubscription&&(this._dataSubscription.unsubscribe(),this._dataSubscription=null),e||this._nodeOutlet.viewContainer.clear(),this._dataSource=e,this._nodeDefs&&this._subscribeToDataChanges()}_getExpansionModel(){return this.treeControl?this.treeControl.expansionModel:(this._expansionModel??(this._expansionModel=new de(!0)),this._expansionModel)}_subscribeToDataChanges(){if(this._dataSubscription)return;let e;Oe(this._dataSource)?e=this._dataSource.connect(this):le(this._dataSource)?e=this._dataSource:Array.isArray(this._dataSource)&&(e=p(this._dataSource)),e&&(this._dataSubscription=this._getRenderData(e).pipe(b(this._onDestroy)).subscribe(t=>{this._renderDataChanges(t)}))}_getRenderData(e){const t=this._getExpansionModel();return B([e,this._nodeType,t.changed.pipe(X(null),S(n=>{this._emitExpansionChanges(n)}))]).pipe(O(([n,o])=>o===null?p({renderNodes:n,flattenedNodes:null,nodeType:o}):this._computeRenderingData(n,o).pipe(f(a=>({...a,nodeType:o})))))}_renderDataChanges(e){if(e.nodeType===null){this.renderNodeChanges(e.renderNodes);return}this._updateCachedData(e.flattenedNodes),this.renderNodeChanges(e.renderNodes),this._updateKeyManagerItems(e.flattenedNodes)}_emitExpansionChanges(e){if(!e)return;const t=this._nodes.value;for(const n of e.added)t.get(n)?._emitExpansionState(!0);for(const n of e.removed)t.get(n)?._emitExpansionState(!1)}_initializeKeyManager(){const e=B([this._keyManagerNodes,this._nodes]).pipe(f(([n,o])=>n.reduce((a,h)=>{const c=o.get(this._getExpansionKey(h));return c&&a.push(c),a},[]))),t={trackBy:n=>this._getExpansionKey(n.data),skipPredicate:n=>!!n.isDisabled,typeAheadDebounceInterval:!0,horizontalOrientation:this._dir.value};this._keyManager=this._keyManagerFactory(e,t)}_initializeDataDiffer(){const e=this.trackBy??((t,n)=>this._getExpansionKey(n));this._dataDiffer=this._differs.find([]).create(e)}_checkTreeControlUsage(){}renderNodeChanges(e,t=this._dataDiffer,n=this._nodeOutlet.viewContainer,o){const a=t.diff(e);!a&&!this._viewInit||(a?.forEachOperation((h,c,_)=>{if(h.previousIndex==null)this.insertNode(e[_],_,n,o);else if(_==null)n.remove(c);else{const x=n.get(c);n.move(x,_)}}),a?.forEachIdentityChange(h=>{const c=h.item;if(h.currentIndex!=null){const _=n.get(h.currentIndex);_.context.$implicit=c}}),o?this._changeDetectorRef.markForCheck():this._changeDetectorRef.detectChanges())}_getNodeDef(e,t){if(this._nodeDefs.length===1)return this._nodeDefs.first;const n=this._nodeDefs.find(o=>o.when&&o.when(t,e))||this._defaultNodeDef;return n}insertNode(e,t,n,o){const a=this._getLevelAccessor(),h=this._getNodeDef(e,t),c=this._getExpansionKey(e),_=new nt(e);o??(o=this._parents.get(c)??void 0),a?_.level=a(e):o!==void 0&&this._levels.has(this._getExpansionKey(o))?_.level=this._levels.get(this._getExpansionKey(o))+1:_.level=0,this._levels.set(c,_.level),(n||this._nodeOutlet.viewContainer).createEmbeddedView(h.template,_,t),v.mostRecentTreeNode&&(v.mostRecentTreeNode.data=e)}isExpanded(e){return!!(this.treeControl?.isExpanded(e)||this._expansionModel?.isSelected(this._getExpansionKey(e)))}toggle(e){this.treeControl?this.treeControl.toggle(e):this._expansionModel&&this._expansionModel.toggle(this._getExpansionKey(e))}expand(e){this.treeControl?this.treeControl.expand(e):this._expansionModel&&this._expansionModel.select(this._getExpansionKey(e))}collapse(e){this.treeControl?this.treeControl.collapse(e):this._expansionModel&&this._expansionModel.deselect(this._getExpansionKey(e))}toggleDescendants(e){this.treeControl?this.treeControl.toggleDescendants(e):this._expansionModel&&(this.isExpanded(e)?this.collapseDescendants(e):this.expandDescendants(e))}expandDescendants(e){if(this.treeControl)this.treeControl.expandDescendants(e);else if(this._expansionModel){const t=this._expansionModel;t.select(this._getExpansionKey(e)),this._getDescendants(e).pipe(w(1),b(this._onDestroy)).subscribe(n=>{t.select(...n.map(o=>this._getExpansionKey(o)))})}}collapseDescendants(e){if(this.treeControl)this.treeControl.collapseDescendants(e);else if(this._expansionModel){const t=this._expansionModel;t.deselect(this._getExpansionKey(e)),this._getDescendants(e).pipe(w(1),b(this._onDestroy)).subscribe(n=>{t.deselect(...n.map(o=>this._getExpansionKey(o)))})}}expandAll(){this.treeControl?this.treeControl.expandAll():this._expansionModel&&this._expansionModel.select(...this._flattenedNodes.value.map(t=>this._getExpansionKey(t)))}collapseAll(){this.treeControl?this.treeControl.collapseAll():this._expansionModel&&this._expansionModel.deselect(...this._flattenedNodes.value.map(t=>this._getExpansionKey(t)))}_getLevelAccessor(){return this.treeControl?.getLevel?.bind(this.treeControl)??this.levelAccessor}_getChildrenAccessor(){return this.treeControl?.getChildren?.bind(this.treeControl)??this.childrenAccessor}_getDirectChildren(e){const t=this._getLevelAccessor(),n=this._expansionModel??this.treeControl?.expansionModel;if(!n)return p([]);const o=this._getExpansionKey(e),a=n.changed.pipe(O(c=>c.added.includes(o)?p(!0):c.removed.includes(o)?p(!1):Pe),X(this.isExpanded(e)));if(t)return B([a,this._flattenedNodes]).pipe(f(([c,_])=>c?this._findChildrenByLevel(t,_,e,1):[]));const h=this._getChildrenAccessor();if(h)return R(h(e)??[]);throw ie()}_findChildrenByLevel(e,t,n,o){const a=this._getExpansionKey(n),h=t.findIndex(k=>this._getExpansionKey(k)===a),c=e(n),_=c+o,x=[];for(let k=h+1;kthis._getExpansionKey(o)===n)+1}_getNodeParent(e){const t=this._parents.get(this._getExpansionKey(e.data));return t&&this._nodes.value.get(this._getExpansionKey(t))}_getNodeChildren(e){return this._getDirectChildren(e.data).pipe(f(t=>t.reduce((n,o)=>{const a=this._nodes.value.get(this._getExpansionKey(o));return a&&n.push(a),n},[])))}_sendKeydownToKeyManager(e){if(e.target===this._elementRef.nativeElement)this._keyManager.onKeydown(e);else{const t=this._nodes.getValue();for(const[,n]of t)if(e.target===n._elementRef.nativeElement){this._keyManager.onKeydown(e);break}}}_getDescendants(e){if(this.treeControl)return p(this.treeControl.getDescendants(e));if(this.levelAccessor){const t=this._findChildrenByLevel(this.levelAccessor,this._flattenedNodes.value,e,1/0);return p(t)}if(this.childrenAccessor)return this._getAllChildrenRecursively(e).pipe(ne((t,n)=>(t.push(...n),t),[]));throw ie()}_getAllChildrenRecursively(e){return this.childrenAccessor?R(this.childrenAccessor(e)).pipe(w(1),O(t=>{for(const n of t)this._parents.set(this._getExpansionKey(n),e);return p(...t).pipe(Z(n=>ee(p([n]),this._getAllChildrenRecursively(n))))})):p([])}_getExpansionKey(e){return this.expansionKey?.(e)??e}_getAriaSet(e){const t=this._getExpansionKey(e),n=this._parents.get(t),o=n?this._getExpansionKey(n):null;return this._ariaSets.get(o)??[e]}_findParentForNode(e,t,n){if(!n.length)return null;const o=this._levels.get(this._getExpansionKey(e))??0;for(let a=t-1;a>=0;a--){const h=n[a];if((this._levels.get(this._getExpansionKey(h))??0){const a=this._getExpansionKey(o);this._parents.has(a)||this._parents.set(a,null),this._levels.set(a,t);const h=R(n(o));return ee(p([o]),h.pipe(w(1),S(c=>{this._ariaSets.set(a,[...c??[]]);for(const _ of c??[]){const x=this._getExpansionKey(_);this._parents.set(x,o),this._levels.set(x,t+1)}}),O(c=>c?this._flattenNestedNodesWithExpansion(c,t+1).pipe(f(_=>this.isExpanded(o)?_:[])):p([]))))}),ne((o,a)=>(o.push(...a),o),[])):p([...e])}_computeRenderingData(e,t){if(this.childrenAccessor&&t==="flat")return this._ariaSets.set(null,[...e]),this._flattenNestedNodesWithExpansion(e).pipe(f(n=>({renderNodes:n,flattenedNodes:n})));if(this.levelAccessor&&t==="nested"){const n=this.levelAccessor;return p(e.filter(o=>n(o)===0)).pipe(f(o=>({renderNodes:o,flattenedNodes:e})),S(({flattenedNodes:o})=>{this._calculateParents(o)}))}else return t==="flat"?p({renderNodes:e,flattenedNodes:e}).pipe(S(({flattenedNodes:n})=>{this._calculateParents(n)})):(this._ariaSets.set(null,[...e]),this._flattenNestedNodesWithExpansion(e).pipe(f(n=>({renderNodes:e,flattenedNodes:n}))))}_updateCachedData(e){this._flattenedNodes.next(e)}_updateKeyManagerItems(e){this._keyManagerNodes.next(e)}_calculateParents(e){const t=this._getLevelAccessor();if(t){this._parents.clear(),this._ariaSets.clear();for(let n=0;n{const s=class s{constructor(){r(this,"_elementRef",u(q));r(this,"_tree",u(D));r(this,"_tabindex",-1);r(this,"_type","flat");r(this,"isDisabled");r(this,"typeaheadLabel");r(this,"activation",new te);r(this,"expandedChange",new te);r(this,"_destroyed",new P);r(this,"_dataChanges",new P);r(this,"_inputIsExpandable",!1);r(this,"_inputIsExpanded");r(this,"_shouldFocus",!0);r(this,"_parentNodeAriaLevel");r(this,"_data");r(this,"_changeDetectorRef",u(he));s.mostRecentTreeNode=this}get role(){return"treeitem"}set role(e){}get isExpandable(){return this._isExpandable()}set isExpandable(e){this._inputIsExpandable=e,!(this.data&&!this._isExpandable||!this._inputIsExpandable)&&(this._inputIsExpanded?this.expand():this._inputIsExpanded===!1&&this.collapse())}get isExpanded(){return this._tree.isExpanded(this._data)}set isExpanded(e){this._inputIsExpanded=e,e?this.expand():this.collapse()}getLabel(){return this.typeaheadLabel||this._elementRef.nativeElement.textContent?.trim()||""}get data(){return this._data}set data(e){e!==this._data&&(this._data=e,this._dataChanges.next())}get isLeafNode(){return this._tree.treeControl?.isExpandable!==void 0&&!this._tree.treeControl.isExpandable(this._data)?!0:this._tree.treeControl?.isExpandable===void 0&&this._tree.treeControl?.getDescendants(this._data).length===0}get level(){return this._tree._getLevel(this._data)??this._parentNodeAriaLevel}_isExpandable(){return this._tree.treeControl?!this.isLeafNode:this._inputIsExpandable}_getAriaExpanded(){return this._isExpandable()?String(this.isExpanded):null}_getSetSize(){return this._tree._getSetSize(this._data)}_getPositionInSet(){return this._tree._getPositionInSet(this._data)}ngOnInit(){this._parentNodeAriaLevel=st(this._elementRef.nativeElement),this._tree._getExpansionModel().changed.pipe(f(()=>this.isExpanded),He()).subscribe(()=>this._changeDetectorRef.markForCheck()),this._tree._setNodeTypeIfUnset(this._type),this._tree._registerNode(this)}ngOnDestroy(){s.mostRecentTreeNode===this&&(s.mostRecentTreeNode=null),this._dataChanges.complete(),this._destroyed.next(),this._destroyed.complete()}getParent(){return this._tree._getNodeParent(this)??null}getChildren(){return this._tree._getNodeChildren(this)}focus(){this._tabindex=0,this._shouldFocus&&this._elementRef.nativeElement.focus(),this._changeDetectorRef.markForCheck()}unfocus(){this._tabindex=-1,this._changeDetectorRef.markForCheck()}activate(){this.isDisabled||this.activation.next(this._data)}collapse(){this.isExpandable&&this._tree.collapse(this._data)}expand(){this.isExpandable&&this._tree.expand(this._data)}makeFocusable(){this._tabindex=0,this._changeDetectorRef.markForCheck()}_focusItem(){this.isDisabled||this._tree._keyManager.focusItem(this)}_setActiveItem(){this.isDisabled||(this._shouldFocus=!1,this._tree._keyManager.focusItem(this),this._shouldFocus=!0)}_emitExpansionState(e){this.expandedChange.emit(e)}};r(s,"mostRecentTreeNode",null),r(s,"ɵfac",function(t){return new(t||s)}),r(s,"ɵdir",N({type:s,selectors:[["cdk-tree-node"]],hostAttrs:["role","treeitem",1,"cdk-tree-node"],hostVars:5,hostBindings:function(t,n){t&1&&A("click",function(){return n._setActiveItem()})("focus",function(){return n._focusItem()}),t&2&&(Ve("tabindex",n._tabindex),ge("aria-expanded",n._getAriaExpanded())("aria-level",n.level+1)("aria-posinset",n._getPositionInSet())("aria-setsize",n._getSetSize()))},inputs:{role:"role",isExpandable:[2,"isExpandable","isExpandable",U],isExpanded:"isExpanded",isDisabled:[2,"isDisabled","isDisabled",U],typeaheadLabel:[0,"cdkTreeNodeTypeaheadLabel","typeaheadLabel"]},outputs:{activation:"activation",expandedChange:"expandedChange"},exportAs:["cdkTreeNode"],features:[G]}));let i=s;return i})();function st(d){let i=d.parentElement;for(;i&&!it(i);)i=i.parentElement;return i?i.classList.contains("cdk-nested-tree-node")?z(i.getAttribute("aria-level")):0:-1}function it(d){const i=d.classList;return!!(i?.contains("cdk-nested-tree-node")||i?.contains("cdk-tree"))}let $=(()=>{const s=class s extends v{constructor(){super();r(this,"_type","nested");r(this,"_differs",u(ce));r(this,"_dataDiffer");r(this,"_children");r(this,"nodeOutlet")}ngAfterContentInit(){this._dataDiffer=this._differs.find([]).create(this._tree.trackBy),this._tree._getDirectChildren(this.data).pipe(b(this._destroyed)).subscribe(t=>this.updateChildrenNodes(t)),this.nodeOutlet.changes.pipe(b(this._destroyed)).subscribe(()=>this.updateChildrenNodes())}ngOnDestroy(){this._clear(),super.ngOnDestroy()}updateChildrenNodes(t){const n=this._getNodeOutlet();if(t&&(this._children=t),n&&this._children){const o=n.viewContainer;this._tree.renderNodeChanges(this._children,this._dataDiffer,o,this._data)}else this._dataDiffer.diff([])}_clear(){const t=this._getNodeOutlet();t&&(t.viewContainer.clear(),this._dataDiffer.diff([]))}_getNodeOutlet(){const t=this.nodeOutlet;return t&&t.find(n=>!n._node||n._node===this)}};r(s,"ɵfac",function(n){return new(n||s)}),r(s,"ɵdir",N({type:s,selectors:[["cdk-nested-tree-node"]],contentQueries:function(n,o,a){if(n&1&&ue(a,M,5),n&2){let h;H(h=V())&&(o.nodeOutlet=h)}},hostAttrs:[1,"cdk-nested-tree-node"],exportAs:["cdkNestedTreeNode"],features:[Ie([{provide:v,useExisting:s},{provide:ye,useExisting:s}]),Le]}));let i=s;return i})();const rt=/([A-Za-z%]+)$/;let j=(()=>{const s=class s{constructor(){r(this,"_treeNode",u(v));r(this,"_tree",u(D));r(this,"_element",u(q));r(this,"_dir",u(_e,{optional:!0}));r(this,"_currentPadding");r(this,"_destroyed",new P);r(this,"indentUnits","px");r(this,"_level");r(this,"_indent",40);this._setPadding(),this._dir?.change.pipe(b(this._destroyed)).subscribe(()=>this._setPadding(!0)),this._treeNode._dataChanges.subscribe(()=>this._setPadding())}get level(){return this._level}set level(e){this._setLevelInput(e)}get indent(){return this._indent}set indent(e){this._setIndentInput(e)}ngOnDestroy(){this._destroyed.next(),this._destroyed.complete()}_paddingIndent(){const e=(this._treeNode.data&&this._tree._getLevel(this._treeNode.data))??null,t=this._level==null?e:this._level;return typeof t=="number"?`${t*this._indent}${this.indentUnits}`:null}_setPadding(e=!1){const t=this._paddingIndent();if(t!==this._currentPadding||e){const n=this._element.nativeElement,o=this._dir&&this._dir.value==="rtl"?"paddingRight":"paddingLeft",a=o==="paddingLeft"?"paddingRight":"paddingLeft";n.style[o]=t||"",n.style[a]="",this._currentPadding=t}}_setLevelInput(e){this._level=isNaN(e)?null:e,this._setPadding()}_setIndentInput(e){let t=e,n="px";if(typeof e=="string"){const o=e.split(rt);t=o[0],n=o[1]||n}this.indentUnits=n,this._indent=z(t),this._setPadding()}};r(s,"ɵfac",function(t){return new(t||s)}),r(s,"ɵdir",N({type:s,selectors:[["","cdkTreeNodePadding",""]],inputs:{level:[2,"cdkTreeNodePadding","level",z],indent:[0,"cdkTreeNodePaddingIndent","indent"]},features:[G]}));let i=s;return i})(),re=(()=>{const s=class s{constructor(){r(this,"_tree",u(D));r(this,"_treeNode",u(v));r(this,"recursive",!1)}_toggle(){this.recursive?this._tree.toggleDescendants(this._treeNode.data):this._tree.toggle(this._treeNode.data),this._tree._keyManager.focusItem(this._treeNode)}};r(s,"ɵfac",function(t){return new(t||s)}),r(s,"ɵdir",N({type:s,selectors:[["","cdkTreeNodeToggle",""]],hostAttrs:["tabindex","-1"],hostBindings:function(t,n){t&1&&A("click",function(a){return n._toggle(),a.stopPropagation()})("keydown.Enter",function(a){return n._toggle(),a.preventDefault()})("keydown.Space",function(a){return n._toggle(),a.preventDefault()})},inputs:{recursive:[2,"cdkTreeNodeToggleRecursive","recursive",U]},features:[G]}));let i=s;return i})(),ot=(()=>{const s=class s{};r(s,"ɵfac",function(t){return new(t||s)}),r(s,"ɵmod",Be({type:s,imports:[$,K,j,re,D,v,M],exports:[$,K,j,re,D,v,M]})),r(s,"ɵinj",Re({}));let i=s;return i})();const at=()=>["."];function lt(d,i){d&1&&(C(0,"div",7),pe(1,8),g())}function dt(d,i){if(d&1){const s=je();C(0,"cdk-nested-tree-node",5)(1,"a",6),A("click",function(){We(s);const e=Q(2);return qe(e.toggleMenu())}),I(2),g(),J(3,lt,2,0,"div",7),g()}if(d&2){const s=i.$implicit,l=Q(2);y(),L("routerLink",Ge(4,at))("fragment",s.id),y(),Je(" ",l.getNavTextFromHeadline(s.text)," "),y(),fe(l.hasChild(s)?3:-1)}}function ct(d,i){if(d&1&&(C(0,"h2"),I(1,"Auf dieser Seite"),g(),C(2,"cdk-tree",3),J(3,dt,4,5,"cdk-nested-tree-node",4),g()),d&2){const s=Q();y(2),L("dataSource",s.dataSource)("treeControl",s.treeControl)("lang",s.contentLang()||"de")}}const E=class E{constructor(){this.content=F(),this.contentLang=F(),this.headlines=[],this.menuOpen=!1,this.treeControl=new tt(i=>i.children),this.hasChild=i=>!!i.children&&i.children.length>0}ngAfterViewChecked(){const i=$e(),s=this.convertToTree(i);this.dataSource=new ze(s)}getNavTextFromHeadline(i){return i.replace(/<[^>]*>/g,"")}convertToTree(i){const s=[],l=[];return i.forEach(e=>{const t={level:e.level,text:e.text,id:e.id};for(;l.length>0&&l[l.length-1].level>=t.level;)l.pop();l.length>0?(l[l.length-1].children||(l[l.length-1].children=[]),l[l.length-1].children?.push(t)):s.push(t),l.push(t)}),s}toggleMenu(){this.menuOpen=!this.menuOpen}};E.ɵfac=function(s){return new(s||E)},E.ɵcmp=W({type:E,selectors:[["dk-sticky-navigation"]],inputs:{content:[1,"content"],contentLang:[1,"contentLang"]},decls:4,vars:4,consts:[["role","navigation","role","navigation","aria-label","Navigation: Auf dieser Seite","tabindex","0",1,"sticky-navigation"],[1,"right-menu"],["role","button",1,"fa",3,"click","ngClass"],[3,"dataSource","treeControl","lang"],["cdkTreeNodePadding","",4,"cdkTreeNodeDef"],["cdkTreeNodePadding",""],[3,"click","routerLink","fragment"],["role","group"],["cdkTreeNodeOutlet",""]],template:function(s,l){s&1&&(C(0,"div",0)(1,"div",1)(2,"button",2),A("click",function(){return l.toggleMenu()}),g(),J(3,ct,4,3),g()()),s&2&&(y(2),L("ngClass",l.menuOpen?"opened fa-chevron-right":"closed fa-list-ol"),ge("aria-label",l.menuOpen?"Seitennavigation schließen":"Seitennavigation öffnen")("aria-expanded",l.menuOpen),y(),fe(l.menuOpen&&l.dataSource?3:-1))},dependencies:[ae,Ue,Qe,ot,$,K,j,D,M],styles:[`.sticky-navigation[_ngcontent-%COMP%] { + position: sticky; + right: 0; + top: 4rem; + font-size: 0.8em; +} +.sticky-navigation[_ngcontent-%COMP%] .right-menu[_ngcontent-%COMP%] { + max-width: 300px; + position: absolute; + right: 0.7rem; + top: 0.5rem; + color: #fdfdfd; + background-color: #2e3141; + opacity: 0.95; + margin: 0px 1px; + border-radius: 5px; + border: 0; + box-shadow: inset 0 0 0 2px rgba(255, 255, 255, 0.125); + z-index: 1; +} +.sticky-navigation[_ngcontent-%COMP%] .right-menu[_ngcontent-%COMP%] h2[_ngcontent-%COMP%] { + margin: 0.8rem 1.4rem; + text-transform: none; +} +.sticky-navigation[_ngcontent-%COMP%] .right-menu[_ngcontent-%COMP%] .cdk-tree[_ngcontent-%COMP%] { + list-style: none; + padding: 0.8rem; + padding-top: 0; + display: list-item; + font-weight: bold; +} +.sticky-navigation[_ngcontent-%COMP%] .right-menu[_ngcontent-%COMP%] .cdk-tree[_ngcontent-%COMP%] .cdk-tree-node[_ngcontent-%COMP%] { + margin-left: 0.5rem; + display: list-item; +} +.sticky-navigation[_ngcontent-%COMP%] .right-menu[_ngcontent-%COMP%] .cdk-tree[_ngcontent-%COMP%] .cdk-tree-node[_ngcontent-%COMP%] [aria-level="1"][_ngcontent-%COMP%] { + font-weight: bold; + margin-top: 0.5rem; +} +.sticky-navigation[_ngcontent-%COMP%] .right-menu[_ngcontent-%COMP%] .cdk-tree[_ngcontent-%COMP%] .cdk-tree-node[aria-level="2"][_ngcontent-%COMP%] { + font-weight: normal; + margin-left: 1rem; + list-style: circle; +} +.sticky-navigation[_ngcontent-%COMP%] .right-menu[_ngcontent-%COMP%] button[_ngcontent-%COMP%] { + min-width: 2rem; +} +.sticky-navigation[_ngcontent-%COMP%] .right-menu[_ngcontent-%COMP%] button.opened[_ngcontent-%COMP%] { + border: none; + box-shadow: none; + float: right; +} +.sticky-navigation[_ngcontent-%COMP%] .right-menu[_ngcontent-%COMP%] button.closed[_ngcontent-%COMP%]:hover, .sticky-navigation[_ngcontent-%COMP%] .right-menu[_ngcontent-%COMP%] button.closed[_ngcontent-%COMP%]:focus { + background-color: rgb(67.1351351351, 71.5135135135, 94.8648648649); + box-shadow: inset 0 0 0 2px #5e7959; +}`]});let oe=E;export{se as S,oe as a}; diff --git a/assets/styles-6aaf32cf-DpMs8-PK.js b/assets/styles-6aaf32cf-DpMs8-PK.js new file mode 100644 index 00000000..283d4c71 --- /dev/null +++ b/assets/styles-6aaf32cf-DpMs8-PK.js @@ -0,0 +1,207 @@ +import{c as Y,g as Ut,s as zt,a as Mt,b as Ht,x as Xt,y as Kt,l as D,j as ot,A as Wt,b1 as Jt}from"./mermaid.core-B_tqKmhs.js";var gt=function(){var t=function(C,r,n,i){for(n=n||{},i=C.length;i--;n[C[i]]=r);return n},s=[1,2],a=[1,3],h=[1,4],f=[2,4],d=[1,9],y=[1,11],k=[1,15],u=[1,16],E=[1,17],T=[1,18],R=[1,30],G=[1,19],j=[1,20],U=[1,21],z=[1,22],M=[1,23],H=[1,25],X=[1,26],K=[1,27],W=[1,28],J=[1,29],q=[1,32],Q=[1,33],Z=[1,34],tt=[1,35],w=[1,31],c=[1,4,5,15,16,18,20,21,23,24,25,26,27,28,32,34,36,37,41,44,45,46,47,50],et=[1,4,5,13,14,15,16,18,20,21,23,24,25,26,27,28,32,34,36,37,41,44,45,46,47,50],Dt=[4,5,15,16,18,20,21,23,24,25,26,27,28,32,34,36,37,41,44,45,46,47,50],ht={trace:function(){},yy:{},symbols_:{error:2,start:3,SPACE:4,NL:5,SD:6,document:7,line:8,statement:9,classDefStatement:10,cssClassStatement:11,idStatement:12,DESCR:13,"-->":14,HIDE_EMPTY:15,scale:16,WIDTH:17,COMPOSIT_STATE:18,STRUCT_START:19,STRUCT_STOP:20,STATE_DESCR:21,AS:22,ID:23,FORK:24,JOIN:25,CHOICE:26,CONCURRENT:27,note:28,notePosition:29,NOTE_TEXT:30,direction:31,acc_title:32,acc_title_value:33,acc_descr:34,acc_descr_value:35,acc_descr_multiline_value:36,classDef:37,CLASSDEF_ID:38,CLASSDEF_STYLEOPTS:39,DEFAULT:40,class:41,CLASSENTITY_IDS:42,STYLECLASS:43,direction_tb:44,direction_bt:45,direction_rl:46,direction_lr:47,eol:48,";":49,EDGE_STATE:50,STYLE_SEPARATOR:51,left_of:52,right_of:53,$accept:0,$end:1},terminals_:{2:"error",4:"SPACE",5:"NL",6:"SD",13:"DESCR",14:"-->",15:"HIDE_EMPTY",16:"scale",17:"WIDTH",18:"COMPOSIT_STATE",19:"STRUCT_START",20:"STRUCT_STOP",21:"STATE_DESCR",22:"AS",23:"ID",24:"FORK",25:"JOIN",26:"CHOICE",27:"CONCURRENT",28:"note",30:"NOTE_TEXT",32:"acc_title",33:"acc_title_value",34:"acc_descr",35:"acc_descr_value",36:"acc_descr_multiline_value",37:"classDef",38:"CLASSDEF_ID",39:"CLASSDEF_STYLEOPTS",40:"DEFAULT",41:"class",42:"CLASSENTITY_IDS",43:"STYLECLASS",44:"direction_tb",45:"direction_bt",46:"direction_rl",47:"direction_lr",49:";",50:"EDGE_STATE",51:"STYLE_SEPARATOR",52:"left_of",53:"right_of"},productions_:[0,[3,2],[3,2],[3,2],[7,0],[7,2],[8,2],[8,1],[8,1],[9,1],[9,1],[9,1],[9,2],[9,3],[9,4],[9,1],[9,2],[9,1],[9,4],[9,3],[9,6],[9,1],[9,1],[9,1],[9,1],[9,4],[9,4],[9,1],[9,2],[9,2],[9,1],[10,3],[10,3],[11,3],[31,1],[31,1],[31,1],[31,1],[48,1],[48,1],[12,1],[12,1],[12,3],[12,3],[29,1],[29,1]],performAction:function(r,n,i,o,p,e,$){var l=e.length-1;switch(p){case 3:return o.setRootDoc(e[l]),e[l];case 4:this.$=[];break;case 5:e[l]!="nl"&&(e[l-1].push(e[l]),this.$=e[l-1]);break;case 6:case 7:this.$=e[l];break;case 8:this.$="nl";break;case 11:this.$=e[l];break;case 12:const B=e[l-1];B.description=o.trimColon(e[l]),this.$=B;break;case 13:this.$={stmt:"relation",state1:e[l-2],state2:e[l]};break;case 14:const ft=o.trimColon(e[l]);this.$={stmt:"relation",state1:e[l-3],state2:e[l-1],description:ft};break;case 18:this.$={stmt:"state",id:e[l-3],type:"default",description:"",doc:e[l-1]};break;case 19:var A=e[l],O=e[l-2].trim();if(e[l].match(":")){var st=e[l].split(":");A=st[0],O=[O,st[1]]}this.$={stmt:"state",id:A,type:"default",description:O};break;case 20:this.$={stmt:"state",id:e[l-3],type:"default",description:e[l-5],doc:e[l-1]};break;case 21:this.$={stmt:"state",id:e[l],type:"fork"};break;case 22:this.$={stmt:"state",id:e[l],type:"join"};break;case 23:this.$={stmt:"state",id:e[l],type:"choice"};break;case 24:this.$={stmt:"state",id:o.getDividerId(),type:"divider"};break;case 25:this.$={stmt:"state",id:e[l-1].trim(),note:{position:e[l-2].trim(),text:e[l].trim()}};break;case 28:this.$=e[l].trim(),o.setAccTitle(this.$);break;case 29:case 30:this.$=e[l].trim(),o.setAccDescription(this.$);break;case 31:case 32:this.$={stmt:"classDef",id:e[l-1].trim(),classes:e[l].trim()};break;case 33:this.$={stmt:"applyClass",id:e[l-1].trim(),styleClass:e[l].trim()};break;case 34:o.setDirection("TB"),this.$={stmt:"dir",value:"TB"};break;case 35:o.setDirection("BT"),this.$={stmt:"dir",value:"BT"};break;case 36:o.setDirection("RL"),this.$={stmt:"dir",value:"RL"};break;case 37:o.setDirection("LR"),this.$={stmt:"dir",value:"LR"};break;case 40:case 41:this.$={stmt:"state",id:e[l].trim(),type:"default",description:""};break;case 42:this.$={stmt:"state",id:e[l-2].trim(),classes:[e[l].trim()],type:"default",description:""};break;case 43:this.$={stmt:"state",id:e[l-2].trim(),classes:[e[l].trim()],type:"default",description:""};break}},table:[{3:1,4:s,5:a,6:h},{1:[3]},{3:5,4:s,5:a,6:h},{3:6,4:s,5:a,6:h},t([1,4,5,15,16,18,21,23,24,25,26,27,28,32,34,36,37,41,44,45,46,47,50],f,{7:7}),{1:[2,1]},{1:[2,2]},{1:[2,3],4:d,5:y,8:8,9:10,10:12,11:13,12:14,15:k,16:u,18:E,21:T,23:R,24:G,25:j,26:U,27:z,28:M,31:24,32:H,34:X,36:K,37:W,41:J,44:q,45:Q,46:Z,47:tt,50:w},t(c,[2,5]),{9:36,10:12,11:13,12:14,15:k,16:u,18:E,21:T,23:R,24:G,25:j,26:U,27:z,28:M,31:24,32:H,34:X,36:K,37:W,41:J,44:q,45:Q,46:Z,47:tt,50:w},t(c,[2,7]),t(c,[2,8]),t(c,[2,9]),t(c,[2,10]),t(c,[2,11],{13:[1,37],14:[1,38]}),t(c,[2,15]),{17:[1,39]},t(c,[2,17],{19:[1,40]}),{22:[1,41]},t(c,[2,21]),t(c,[2,22]),t(c,[2,23]),t(c,[2,24]),{29:42,30:[1,43],52:[1,44],53:[1,45]},t(c,[2,27]),{33:[1,46]},{35:[1,47]},t(c,[2,30]),{38:[1,48],40:[1,49]},{42:[1,50]},t(et,[2,40],{51:[1,51]}),t(et,[2,41],{51:[1,52]}),t(c,[2,34]),t(c,[2,35]),t(c,[2,36]),t(c,[2,37]),t(c,[2,6]),t(c,[2,12]),{12:53,23:R,50:w},t(c,[2,16]),t(Dt,f,{7:54}),{23:[1,55]},{23:[1,56]},{22:[1,57]},{23:[2,44]},{23:[2,45]},t(c,[2,28]),t(c,[2,29]),{39:[1,58]},{39:[1,59]},{43:[1,60]},{23:[1,61]},{23:[1,62]},t(c,[2,13],{13:[1,63]}),{4:d,5:y,8:8,9:10,10:12,11:13,12:14,15:k,16:u,18:E,20:[1,64],21:T,23:R,24:G,25:j,26:U,27:z,28:M,31:24,32:H,34:X,36:K,37:W,41:J,44:q,45:Q,46:Z,47:tt,50:w},t(c,[2,19],{19:[1,65]}),{30:[1,66]},{23:[1,67]},t(c,[2,31]),t(c,[2,32]),t(c,[2,33]),t(et,[2,42]),t(et,[2,43]),t(c,[2,14]),t(c,[2,18]),t(Dt,f,{7:68}),t(c,[2,25]),t(c,[2,26]),{4:d,5:y,8:8,9:10,10:12,11:13,12:14,15:k,16:u,18:E,20:[1,69],21:T,23:R,24:G,25:j,26:U,27:z,28:M,31:24,32:H,34:X,36:K,37:W,41:J,44:q,45:Q,46:Z,47:tt,50:w},t(c,[2,20])],defaultActions:{5:[2,1],6:[2,2],44:[2,44],45:[2,45]},parseError:function(r,n){if(n.recoverable)this.trace(r);else{var i=new Error(r);throw i.hash=n,i}},parse:function(r){var n=this,i=[0],o=[],p=[null],e=[],$=this.table,l="",A=0,O=0,st=2,B=1,ft=e.slice.call(arguments,1),S=Object.create(this.lexer),v={yy:{}};for(var dt in this.yy)Object.prototype.hasOwnProperty.call(this.yy,dt)&&(v.yy[dt]=this.yy[dt]);S.setInput(r,v.yy),v.yy.lexer=S,v.yy.parser=this,typeof S.yylloc>"u"&&(S.yylloc={});var yt=S.yylloc;e.push(yt);var Gt=S.options&&S.options.ranges;typeof v.yy.parseError=="function"?this.parseError=v.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function jt(){var x;return x=o.pop()||S.lex()||B,typeof x!="number"&&(x instanceof Array&&(o=x,x=o.pop()),x=n.symbols_[x]||x),x}for(var _,L,m,pt,N={},it,b,Ct,rt;;){if(L=i[i.length-1],this.defaultActions[L]?m=this.defaultActions[L]:((_===null||typeof _>"u")&&(_=jt()),m=$[L]&&$[L][_]),typeof m>"u"||!m.length||!m[0]){var St="";rt=[];for(it in $[L])this.terminals_[it]&&it>st&&rt.push("'"+this.terminals_[it]+"'");S.showPosition?St="Parse error on line "+(A+1)+`: +`+S.showPosition()+` +Expecting `+rt.join(", ")+", got '"+(this.terminals_[_]||_)+"'":St="Parse error on line "+(A+1)+": Unexpected "+(_==B?"end of input":"'"+(this.terminals_[_]||_)+"'"),this.parseError(St,{text:S.match,token:this.terminals_[_]||_,line:S.yylineno,loc:yt,expected:rt})}if(m[0]instanceof Array&&m.length>1)throw new Error("Parse Error: multiple actions possible at state: "+L+", token: "+_);switch(m[0]){case 1:i.push(_),p.push(S.yytext),e.push(S.yylloc),i.push(m[1]),_=null,O=S.yyleng,l=S.yytext,A=S.yylineno,yt=S.yylloc;break;case 2:if(b=this.productions_[m[1]][1],N.$=p[p.length-b],N._$={first_line:e[e.length-(b||1)].first_line,last_line:e[e.length-1].last_line,first_column:e[e.length-(b||1)].first_column,last_column:e[e.length-1].last_column},Gt&&(N._$.range=[e[e.length-(b||1)].range[0],e[e.length-1].range[1]]),pt=this.performAction.apply(N,[l,O,A,v.yy,m[1],p,e].concat(ft)),typeof pt<"u")return pt;b&&(i=i.slice(0,-1*b*2),p=p.slice(0,-1*b),e=e.slice(0,-1*b)),i.push(this.productions_[m[1]][0]),p.push(N.$),e.push(N._$),Ct=$[i[i.length-2]][i[i.length-1]],i.push(Ct);break;case 3:return!0}}return!0}},Yt=function(){var C={EOF:1,parseError:function(n,i){if(this.yy.parser)this.yy.parser.parseError(n,i);else throw new Error(n)},setInput:function(r,n){return this.yy=n||this.yy||{},this._input=r,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var r=this._input[0];this.yytext+=r,this.yyleng++,this.offset++,this.match+=r,this.matched+=r;var n=r.match(/(?:\r\n?|\n).*/g);return n?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),r},unput:function(r){var n=r.length,i=r.split(/(?:\r\n?|\n)/g);this._input=r+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-n),this.offset-=n;var o=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),i.length-1&&(this.yylineno-=i.length-1);var p=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:i?(i.length===o.length?this.yylloc.first_column:0)+o[o.length-i.length].length-i[0].length:this.yylloc.first_column-n},this.options.ranges&&(this.yylloc.range=[p[0],p[0]+this.yyleng-n]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true). +`+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},less:function(r){this.unput(this.match.slice(r))},pastInput:function(){var r=this.matched.substr(0,this.matched.length-this.match.length);return(r.length>20?"...":"")+r.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var r=this.match;return r.length<20&&(r+=this._input.substr(0,20-r.length)),(r.substr(0,20)+(r.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var r=this.pastInput(),n=new Array(r.length+1).join("-");return r+this.upcomingInput()+` +`+n+"^"},test_match:function(r,n){var i,o,p;if(this.options.backtrack_lexer&&(p={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(p.yylloc.range=this.yylloc.range.slice(0))),o=r[0].match(/(?:\r\n?|\n).*/g),o&&(this.yylineno+=o.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:o?o[o.length-1].length-o[o.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+r[0].length},this.yytext+=r[0],this.match+=r[0],this.matches=r,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(r[0].length),this.matched+=r[0],i=this.performAction.call(this,this.yy,this,n,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),i)return i;if(this._backtrack){for(var e in p)this[e]=p[e];return!1}return!1},next:function(){if(this.done)return this.EOF;this._input||(this.done=!0);var r,n,i,o;this._more||(this.yytext="",this.match="");for(var p=this._currentRules(),e=0;en[0].length)){if(n=i,o=e,this.options.backtrack_lexer){if(r=this.test_match(i,p[e]),r!==!1)return r;if(this._backtrack){n=!1;continue}else return!1}else if(!this.options.flex)break}return n?(r=this.test_match(n,p[o]),r!==!1?r:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text. +`+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var n=this.next();return n||this.lex()},begin:function(n){this.conditionStack.push(n)},popState:function(){var n=this.conditionStack.length-1;return n>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(n){return n=this.conditionStack.length-1-Math.abs(n||0),n>=0?this.conditionStack[n]:"INITIAL"},pushState:function(n){this.begin(n)},stateStackSize:function(){return this.conditionStack.length},options:{"case-insensitive":!0},performAction:function(n,i,o,p){switch(o){case 0:return 40;case 1:return 44;case 2:return 45;case 3:return 46;case 4:return 47;case 5:break;case 6:break;case 7:return 5;case 8:break;case 9:break;case 10:break;case 11:break;case 12:return this.pushState("SCALE"),16;case 13:return 17;case 14:this.popState();break;case 15:return this.begin("acc_title"),32;case 16:return this.popState(),"acc_title_value";case 17:return this.begin("acc_descr"),34;case 18:return this.popState(),"acc_descr_value";case 19:this.begin("acc_descr_multiline");break;case 20:this.popState();break;case 21:return"acc_descr_multiline_value";case 22:return this.pushState("CLASSDEF"),37;case 23:return this.popState(),this.pushState("CLASSDEFID"),"DEFAULT_CLASSDEF_ID";case 24:return this.popState(),this.pushState("CLASSDEFID"),38;case 25:return this.popState(),39;case 26:return this.pushState("CLASS"),41;case 27:return this.popState(),this.pushState("CLASS_STYLE"),42;case 28:return this.popState(),43;case 29:return this.pushState("SCALE"),16;case 30:return 17;case 31:this.popState();break;case 32:this.pushState("STATE");break;case 33:return this.popState(),i.yytext=i.yytext.slice(0,-8).trim(),24;case 34:return this.popState(),i.yytext=i.yytext.slice(0,-8).trim(),25;case 35:return this.popState(),i.yytext=i.yytext.slice(0,-10).trim(),26;case 36:return this.popState(),i.yytext=i.yytext.slice(0,-8).trim(),24;case 37:return this.popState(),i.yytext=i.yytext.slice(0,-8).trim(),25;case 38:return this.popState(),i.yytext=i.yytext.slice(0,-10).trim(),26;case 39:return 44;case 40:return 45;case 41:return 46;case 42:return 47;case 43:this.pushState("STATE_STRING");break;case 44:return this.pushState("STATE_ID"),"AS";case 45:return this.popState(),"ID";case 46:this.popState();break;case 47:return"STATE_DESCR";case 48:return 18;case 49:this.popState();break;case 50:return this.popState(),this.pushState("struct"),19;case 51:break;case 52:return this.popState(),20;case 53:break;case 54:return this.begin("NOTE"),28;case 55:return this.popState(),this.pushState("NOTE_ID"),52;case 56:return this.popState(),this.pushState("NOTE_ID"),53;case 57:this.popState(),this.pushState("FLOATING_NOTE");break;case 58:return this.popState(),this.pushState("FLOATING_NOTE_ID"),"AS";case 59:break;case 60:return"NOTE_TEXT";case 61:return this.popState(),"ID";case 62:return this.popState(),this.pushState("NOTE_TEXT"),23;case 63:return this.popState(),i.yytext=i.yytext.substr(2).trim(),30;case 64:return this.popState(),i.yytext=i.yytext.slice(0,-8).trim(),30;case 65:return 6;case 66:return 6;case 67:return 15;case 68:return 50;case 69:return 23;case 70:return i.yytext=i.yytext.trim(),13;case 71:return 14;case 72:return 27;case 73:return 51;case 74:return 5;case 75:return"INVALID"}},rules:[/^(?:default\b)/i,/^(?:.*direction\s+TB[^\n]*)/i,/^(?:.*direction\s+BT[^\n]*)/i,/^(?:.*direction\s+RL[^\n]*)/i,/^(?:.*direction\s+LR[^\n]*)/i,/^(?:%%(?!\{)[^\n]*)/i,/^(?:[^\}]%%[^\n]*)/i,/^(?:[\n]+)/i,/^(?:[\s]+)/i,/^(?:((?!\n)\s)+)/i,/^(?:#[^\n]*)/i,/^(?:%[^\n]*)/i,/^(?:scale\s+)/i,/^(?:\d+)/i,/^(?:\s+width\b)/i,/^(?:accTitle\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*\{\s*)/i,/^(?:[\}])/i,/^(?:[^\}]*)/i,/^(?:classDef\s+)/i,/^(?:DEFAULT\s+)/i,/^(?:\w+\s+)/i,/^(?:[^\n]*)/i,/^(?:class\s+)/i,/^(?:(\w+)+((,\s*\w+)*))/i,/^(?:[^\n]*)/i,/^(?:scale\s+)/i,/^(?:\d+)/i,/^(?:\s+width\b)/i,/^(?:state\s+)/i,/^(?:.*<>)/i,/^(?:.*<>)/i,/^(?:.*<>)/i,/^(?:.*\[\[fork\]\])/i,/^(?:.*\[\[join\]\])/i,/^(?:.*\[\[choice\]\])/i,/^(?:.*direction\s+TB[^\n]*)/i,/^(?:.*direction\s+BT[^\n]*)/i,/^(?:.*direction\s+RL[^\n]*)/i,/^(?:.*direction\s+LR[^\n]*)/i,/^(?:["])/i,/^(?:\s*as\s+)/i,/^(?:[^\n\{]*)/i,/^(?:["])/i,/^(?:[^"]*)/i,/^(?:[^\n\s\{]+)/i,/^(?:\n)/i,/^(?:\{)/i,/^(?:%%(?!\{)[^\n]*)/i,/^(?:\})/i,/^(?:[\n])/i,/^(?:note\s+)/i,/^(?:left of\b)/i,/^(?:right of\b)/i,/^(?:")/i,/^(?:\s*as\s*)/i,/^(?:["])/i,/^(?:[^"]*)/i,/^(?:[^\n]*)/i,/^(?:\s*[^:\n\s\-]+)/i,/^(?:\s*:[^:\n;]+)/i,/^(?:[\s\S]*?end note\b)/i,/^(?:stateDiagram\s+)/i,/^(?:stateDiagram-v2\s+)/i,/^(?:hide empty description\b)/i,/^(?:\[\*\])/i,/^(?:[^:\n\s\-\{]+)/i,/^(?:\s*:[^:\n;]+)/i,/^(?:-->)/i,/^(?:--)/i,/^(?::::)/i,/^(?:$)/i,/^(?:.)/i],conditions:{LINE:{rules:[9,10],inclusive:!1},struct:{rules:[9,10,22,26,32,39,40,41,42,51,52,53,54,68,69,70,71,72],inclusive:!1},FLOATING_NOTE_ID:{rules:[61],inclusive:!1},FLOATING_NOTE:{rules:[58,59,60],inclusive:!1},NOTE_TEXT:{rules:[63,64],inclusive:!1},NOTE_ID:{rules:[62],inclusive:!1},NOTE:{rules:[55,56,57],inclusive:!1},CLASS_STYLE:{rules:[28],inclusive:!1},CLASS:{rules:[27],inclusive:!1},CLASSDEFID:{rules:[25],inclusive:!1},CLASSDEF:{rules:[23,24],inclusive:!1},acc_descr_multiline:{rules:[20,21],inclusive:!1},acc_descr:{rules:[18],inclusive:!1},acc_title:{rules:[16],inclusive:!1},SCALE:{rules:[13,14,30,31],inclusive:!1},ALIAS:{rules:[],inclusive:!1},STATE_ID:{rules:[45],inclusive:!1},STATE_STRING:{rules:[46,47],inclusive:!1},FORK_STATE:{rules:[],inclusive:!1},STATE:{rules:[9,10,33,34,35,36,37,38,43,44,48,49,50],inclusive:!1},ID:{rules:[9,10],inclusive:!1},INITIAL:{rules:[0,1,2,3,4,5,6,7,8,10,11,12,15,17,19,22,26,29,32,50,54,65,66,67,68,69,70,71,73,74,75],inclusive:!0}}};return C}();ht.lexer=Yt;function ut(){this.yy={}}return ut.prototype=ht,ht.Parser=ut,new ut}();gt.parser=gt;const De=gt,qt="LR",Ce="TB",_t="state",It="relation",Qt="classDef",Zt="applyClass",Et="default",te="divider",bt="[*]",Ot="start",Nt=bt,Rt="end",At="color",vt="fill",ee="bgFill",se=",";function wt(){return{}}let $t=qt,lt=[],P=wt();const Bt=()=>({relations:[],states:{},documents:{}});let ct={root:Bt()},g=ct.root,F=0,Lt=0;const ie={LINE:0,DOTTED_LINE:1},re={AGGREGATION:0,EXTENSION:1,COMPOSITION:2,DEPENDENCY:3},nt=t=>JSON.parse(JSON.stringify(t)),ne=t=>{D.info("Setting root doc",t),lt=t},ae=()=>lt,at=(t,s,a)=>{if(s.stmt===It)at(t,s.state1,!0),at(t,s.state2,!1);else if(s.stmt===_t&&(s.id==="[*]"?(s.id=a?t.id+"_start":t.id+"_end",s.start=a):s.id=s.id.trim()),s.doc){const h=[];let f=[],d;for(d=0;d0&&f.length>0){const y={stmt:_t,id:Jt(),type:"divider",doc:nt(f)};h.push(nt(y)),s.doc=h}s.doc.forEach(y=>at(s,y,!0))}},le=()=>(at({id:"root"},{id:"root",doc:lt},!0),{id:"root",doc:lt}),ce=t=>{let s;t.doc?s=t.doc:s=t,D.info(s),Pt(!0),D.info("Extract",s),s.forEach(a=>{switch(a.stmt){case _t:I(a.id.trim(),a.type,a.doc,a.description,a.note,a.classes,a.styles,a.textStyles);break;case It:Ft(a.state1,a.state2,a.description);break;case Qt:Vt(a.id.trim(),a.classes);break;case Zt:xt(a.id.trim(),a.styleClass);break}})},I=function(t,s=Et,a=null,h=null,f=null,d=null,y=null,k=null){const u=t?.trim();g.states[u]===void 0?(D.info("Adding state ",u,h),g.states[u]={id:u,descriptions:[],type:s,doc:a,note:f,classes:[],styles:[],textStyles:[]}):(g.states[u].doc||(g.states[u].doc=a),g.states[u].type||(g.states[u].type=s)),h&&(D.info("Setting state description",u,h),typeof h=="string"&&kt(u,h.trim()),typeof h=="object"&&h.forEach(E=>kt(u,E.trim()))),f&&(g.states[u].note=f,g.states[u].note.text=ot.sanitizeText(g.states[u].note.text,Y())),d&&(D.info("Setting state classes",u,d),(typeof d=="string"?[d]:d).forEach(T=>xt(u,T.trim()))),y&&(D.info("Setting state styles",u,y),(typeof y=="string"?[y]:y).forEach(T=>_e(u,T.trim()))),k&&(D.info("Setting state styles",u,y),(typeof k=="string"?[k]:k).forEach(T=>me(u,T.trim())))},Pt=function(t){ct={root:Bt()},g=ct.root,F=0,P=wt(),t||Wt()},V=function(t){return g.states[t]},oe=function(){return g.states},he=function(){D.info("Documents = ",ct)},ue=function(){return g.relations};function mt(t=""){let s=t;return t===bt&&(F++,s=`${Ot}${F}`),s}function Tt(t="",s=Et){return t===bt?Ot:s}function fe(t=""){let s=t;return t===Nt&&(F++,s=`${Rt}${F}`),s}function de(t="",s=Et){return t===Nt?Rt:s}function ye(t,s,a){let h=mt(t.id.trim()),f=Tt(t.id.trim(),t.type),d=mt(s.id.trim()),y=Tt(s.id.trim(),s.type);I(h,f,t.doc,t.description,t.note,t.classes,t.styles,t.textStyles),I(d,y,s.doc,s.description,s.note,s.classes,s.styles,s.textStyles),g.relations.push({id1:h,id2:d,relationTitle:ot.sanitizeText(a,Y())})}const Ft=function(t,s,a){if(typeof t=="object")ye(t,s,a);else{const h=mt(t.trim()),f=Tt(t),d=fe(s.trim()),y=de(s);I(h,f),I(d,y),g.relations.push({id1:h,id2:d,title:ot.sanitizeText(a,Y())})}},kt=function(t,s){const a=g.states[t],h=s.startsWith(":")?s.replace(":","").trim():s;a.descriptions.push(ot.sanitizeText(h,Y()))},pe=function(t){return t.substring(0,1)===":"?t.substr(2).trim():t.trim()},Se=()=>(Lt++,"divider-id-"+Lt),Vt=function(t,s=""){P[t]===void 0&&(P[t]={id:t,styles:[],textStyles:[]});const a=P[t];s?.split(se).forEach(h=>{const f=h.replace(/([^;]*);/,"$1").trim();if(h.match(At)){const y=f.replace(vt,ee).replace(At,vt);a.textStyles.push(y)}a.styles.push(f)})},ge=function(){return P},xt=function(t,s){t.split(",").forEach(function(a){let h=V(a);if(h===void 0){const f=a.trim();I(f),h=V(f)}h.classes.push(s)})},_e=function(t,s){const a=V(t);a!==void 0&&a.textStyles.push(s)},me=function(t,s){const a=V(t);a!==void 0&&a.textStyles.push(s)},Te=()=>$t,ke=t=>{$t=t},Ee=t=>t&&t[0]===":"?t.substr(1).trim():t.trim(),Ae={getConfig:()=>Y().state,addState:I,clear:Pt,getState:V,getStates:oe,getRelations:ue,getClasses:ge,getDirection:Te,addRelation:Ft,getDividerId:Se,setDirection:ke,cleanupLabel:pe,lineType:ie,relationType:re,logDocuments:he,getRootDoc:ae,setRootDoc:ne,getRootDocV2:le,extract:ce,trimColon:Ee,getAccTitle:Ut,setAccTitle:zt,getAccDescription:Mt,setAccDescription:Ht,addStyleClass:Vt,setCssClass:xt,addDescription:kt,setDiagramTitle:Xt,getDiagramTitle:Kt},be=t=>` +defs #statediagram-barbEnd { + fill: ${t.transitionColor}; + stroke: ${t.transitionColor}; + } +g.stateGroup text { + fill: ${t.nodeBorder}; + stroke: none; + font-size: 10px; +} +g.stateGroup text { + fill: ${t.textColor}; + stroke: none; + font-size: 10px; + +} +g.stateGroup .state-title { + font-weight: bolder; + fill: ${t.stateLabelColor}; +} + +g.stateGroup rect { + fill: ${t.mainBkg}; + stroke: ${t.nodeBorder}; +} + +g.stateGroup line { + stroke: ${t.lineColor}; + stroke-width: 1; +} + +.transition { + stroke: ${t.transitionColor}; + stroke-width: 1; + fill: none; +} + +.stateGroup .composit { + fill: ${t.background}; + border-bottom: 1px +} + +.stateGroup .alt-composit { + fill: #e0e0e0; + border-bottom: 1px +} + +.state-note { + stroke: ${t.noteBorderColor}; + fill: ${t.noteBkgColor}; + + text { + fill: ${t.noteTextColor}; + stroke: none; + font-size: 10px; + } +} + +.stateLabel .box { + stroke: none; + stroke-width: 0; + fill: ${t.mainBkg}; + opacity: 0.5; +} + +.edgeLabel .label rect { + fill: ${t.labelBackgroundColor}; + opacity: 0.5; +} +.edgeLabel .label text { + fill: ${t.transitionLabelColor||t.tertiaryTextColor}; +} +.label div .edgeLabel { + color: ${t.transitionLabelColor||t.tertiaryTextColor}; +} + +.stateLabel text { + fill: ${t.stateLabelColor}; + font-size: 10px; + font-weight: bold; +} + +.node circle.state-start { + fill: ${t.specialStateColor}; + stroke: ${t.specialStateColor}; +} + +.node .fork-join { + fill: ${t.specialStateColor}; + stroke: ${t.specialStateColor}; +} + +.node circle.state-end { + fill: ${t.innerEndBackground}; + stroke: ${t.background}; + stroke-width: 1.5 +} +.end-state-inner { + fill: ${t.compositeBackground||t.background}; + // stroke: ${t.background}; + stroke-width: 1.5 +} + +.node rect { + fill: ${t.stateBkg||t.mainBkg}; + stroke: ${t.stateBorder||t.nodeBorder}; + stroke-width: 1px; +} +.node polygon { + fill: ${t.mainBkg}; + stroke: ${t.stateBorder||t.nodeBorder};; + stroke-width: 1px; +} +#statediagram-barbEnd { + fill: ${t.lineColor}; +} + +.statediagram-cluster rect { + fill: ${t.compositeTitleBackground}; + stroke: ${t.stateBorder||t.nodeBorder}; + stroke-width: 1px; +} + +.cluster-label, .nodeLabel { + color: ${t.stateLabelColor}; +} + +.statediagram-cluster rect.outer { + rx: 5px; + ry: 5px; +} +.statediagram-state .divider { + stroke: ${t.stateBorder||t.nodeBorder}; +} + +.statediagram-state .title-state { + rx: 5px; + ry: 5px; +} +.statediagram-cluster.statediagram-cluster .inner { + fill: ${t.compositeBackground||t.background}; +} +.statediagram-cluster.statediagram-cluster-alt .inner { + fill: ${t.altBackground?t.altBackground:"#efefef"}; +} + +.statediagram-cluster .inner { + rx:0; + ry:0; +} + +.statediagram-state rect.basic { + rx: 5px; + ry: 5px; +} +.statediagram-state rect.divider { + stroke-dasharray: 10,10; + fill: ${t.altBackground?t.altBackground:"#efefef"}; +} + +.note-edge { + stroke-dasharray: 5; +} + +.statediagram-note rect { + fill: ${t.noteBkgColor}; + stroke: ${t.noteBorderColor}; + stroke-width: 1px; + rx: 0; + ry: 0; +} +.statediagram-note rect { + fill: ${t.noteBkgColor}; + stroke: ${t.noteBorderColor}; + stroke-width: 1px; + rx: 0; + ry: 0; +} + +.statediagram-note text { + fill: ${t.noteTextColor}; +} + +.statediagram-note .nodeLabel { + color: ${t.noteTextColor}; +} +.statediagram .edgeLabel { + color: red; // ${t.noteTextColor}; +} + +#dependencyStart, #dependencyEnd { + fill: ${t.lineColor}; + stroke: ${t.lineColor}; + stroke-width: 1; +} + +.statediagramTitleText { + text-anchor: middle; + font-size: 18px; + fill: ${t.textColor}; +} +`,ve=be;export{Et as D,It as S,te as a,_t as b,Ce as c,Ae as d,De as p,ve as s}; diff --git a/assets/styles-9a916d00-BOnhL2df.js b/assets/styles-9a916d00-BOnhL2df.js new file mode 100644 index 00000000..93da8e93 --- /dev/null +++ b/assets/styles-9a916d00-BOnhL2df.js @@ -0,0 +1,160 @@ +import{s as ut,g as rt,a as at,b as lt,c as F,x as ct,y as ot,j as v,A as ht,l as At,z as We,h as z,d as pt,ar as Re}from"./mermaid.core-B_tqKmhs.js";var Ve=function(){var e=function(x,u,a,h){for(a=a||{},h=x.length;h--;a[x[h]]=u);return a},i=[1,17],r=[1,18],l=[1,19],o=[1,39],A=[1,40],g=[1,25],D=[1,23],B=[1,24],_=[1,31],fe=[1,32],de=[1,33],Ee=[1,34],Ce=[1,35],me=[1,36],be=[1,26],ge=[1,27],ke=[1,28],Te=[1,29],d=[1,43],Fe=[1,30],E=[1,42],C=[1,44],m=[1,41],k=[1,45],ye=[1,9],c=[1,8,9],Y=[1,56],j=[1,57],Q=[1,58],X=[1,59],H=[1,60],De=[1,61],Be=[1,62],W=[1,8,9,39],Ge=[1,74],M=[1,8,9,12,13,21,37,39,42,59,60,61,62,63,64,65,70,72],q=[1,8,9,12,13,19,21,37,39,42,46,59,60,61,62,63,64,65,70,72,74,80,95,97,98],J=[13,74,80,95,97,98],G=[13,64,65,74,80,95,97,98],Ue=[13,59,60,61,62,63,74,80,95,97,98],_e=[1,93],Z=[1,110],$=[1,108],ee=[1,102],te=[1,103],se=[1,104],ie=[1,105],ne=[1,106],ue=[1,107],re=[1,109],Se=[1,8,9,37,39,42],ae=[1,8,9,21],ze=[1,8,9,78],S=[1,8,9,21,73,74,78,80,81,82,83,84,85],Ne={trace:function(){},yy:{},symbols_:{error:2,start:3,mermaidDoc:4,statements:5,graphConfig:6,CLASS_DIAGRAM:7,NEWLINE:8,EOF:9,statement:10,classLabel:11,SQS:12,STR:13,SQE:14,namespaceName:15,alphaNumToken:16,className:17,classLiteralName:18,GENERICTYPE:19,relationStatement:20,LABEL:21,namespaceStatement:22,classStatement:23,memberStatement:24,annotationStatement:25,clickStatement:26,styleStatement:27,cssClassStatement:28,noteStatement:29,direction:30,acc_title:31,acc_title_value:32,acc_descr:33,acc_descr_value:34,acc_descr_multiline_value:35,namespaceIdentifier:36,STRUCT_START:37,classStatements:38,STRUCT_STOP:39,NAMESPACE:40,classIdentifier:41,STYLE_SEPARATOR:42,members:43,CLASS:44,ANNOTATION_START:45,ANNOTATION_END:46,MEMBER:47,SEPARATOR:48,relation:49,NOTE_FOR:50,noteText:51,NOTE:52,direction_tb:53,direction_bt:54,direction_rl:55,direction_lr:56,relationType:57,lineType:58,AGGREGATION:59,EXTENSION:60,COMPOSITION:61,DEPENDENCY:62,LOLLIPOP:63,LINE:64,DOTTED_LINE:65,CALLBACK:66,LINK:67,LINK_TARGET:68,CLICK:69,CALLBACK_NAME:70,CALLBACK_ARGS:71,HREF:72,STYLE:73,ALPHA:74,stylesOpt:75,CSSCLASS:76,style:77,COMMA:78,styleComponent:79,NUM:80,COLON:81,UNIT:82,SPACE:83,BRKT:84,PCT:85,commentToken:86,textToken:87,graphCodeTokens:88,textNoTagsToken:89,TAGSTART:90,TAGEND:91,"==":92,"--":93,DEFAULT:94,MINUS:95,keywords:96,UNICODE_TEXT:97,BQUOTE_STR:98,$accept:0,$end:1},terminals_:{2:"error",7:"CLASS_DIAGRAM",8:"NEWLINE",9:"EOF",12:"SQS",13:"STR",14:"SQE",19:"GENERICTYPE",21:"LABEL",31:"acc_title",32:"acc_title_value",33:"acc_descr",34:"acc_descr_value",35:"acc_descr_multiline_value",37:"STRUCT_START",39:"STRUCT_STOP",40:"NAMESPACE",42:"STYLE_SEPARATOR",44:"CLASS",45:"ANNOTATION_START",46:"ANNOTATION_END",47:"MEMBER",48:"SEPARATOR",50:"NOTE_FOR",52:"NOTE",53:"direction_tb",54:"direction_bt",55:"direction_rl",56:"direction_lr",59:"AGGREGATION",60:"EXTENSION",61:"COMPOSITION",62:"DEPENDENCY",63:"LOLLIPOP",64:"LINE",65:"DOTTED_LINE",66:"CALLBACK",67:"LINK",68:"LINK_TARGET",69:"CLICK",70:"CALLBACK_NAME",71:"CALLBACK_ARGS",72:"HREF",73:"STYLE",74:"ALPHA",76:"CSSCLASS",78:"COMMA",80:"NUM",81:"COLON",82:"UNIT",83:"SPACE",84:"BRKT",85:"PCT",88:"graphCodeTokens",90:"TAGSTART",91:"TAGEND",92:"==",93:"--",94:"DEFAULT",95:"MINUS",96:"keywords",97:"UNICODE_TEXT",98:"BQUOTE_STR"},productions_:[0,[3,1],[3,1],[4,1],[6,4],[5,1],[5,2],[5,3],[11,3],[15,1],[15,2],[17,1],[17,1],[17,2],[17,2],[17,2],[10,1],[10,2],[10,1],[10,1],[10,1],[10,1],[10,1],[10,1],[10,1],[10,1],[10,1],[10,2],[10,2],[10,1],[22,4],[22,5],[36,2],[38,1],[38,2],[38,3],[23,1],[23,3],[23,4],[23,6],[41,2],[41,3],[25,4],[43,1],[43,2],[24,1],[24,2],[24,1],[24,1],[20,3],[20,4],[20,4],[20,5],[29,3],[29,2],[30,1],[30,1],[30,1],[30,1],[49,3],[49,2],[49,2],[49,1],[57,1],[57,1],[57,1],[57,1],[57,1],[58,1],[58,1],[26,3],[26,4],[26,3],[26,4],[26,4],[26,5],[26,3],[26,4],[26,4],[26,5],[26,4],[26,5],[26,5],[26,6],[27,3],[28,3],[75,1],[75,3],[77,1],[77,2],[79,1],[79,1],[79,1],[79,1],[79,1],[79,1],[79,1],[79,1],[79,1],[86,1],[86,1],[87,1],[87,1],[87,1],[87,1],[87,1],[87,1],[87,1],[89,1],[89,1],[89,1],[89,1],[16,1],[16,1],[16,1],[16,1],[18,1],[51,1]],performAction:function(u,a,h,n,f,t,U){var s=t.length-1;switch(f){case 8:this.$=t[s-1];break;case 9:case 11:case 12:this.$=t[s];break;case 10:case 13:this.$=t[s-1]+t[s];break;case 14:case 15:this.$=t[s-1]+"~"+t[s]+"~";break;case 16:n.addRelation(t[s]);break;case 17:t[s-1].title=n.cleanupLabel(t[s]),n.addRelation(t[s-1]);break;case 27:this.$=t[s].trim(),n.setAccTitle(this.$);break;case 28:case 29:this.$=t[s].trim(),n.setAccDescription(this.$);break;case 30:n.addClassesToNamespace(t[s-3],t[s-1]);break;case 31:n.addClassesToNamespace(t[s-4],t[s-1]);break;case 32:this.$=t[s],n.addNamespace(t[s]);break;case 33:this.$=[t[s]];break;case 34:this.$=[t[s-1]];break;case 35:t[s].unshift(t[s-2]),this.$=t[s];break;case 37:n.setCssClass(t[s-2],t[s]);break;case 38:n.addMembers(t[s-3],t[s-1]);break;case 39:n.setCssClass(t[s-5],t[s-3]),n.addMembers(t[s-5],t[s-1]);break;case 40:this.$=t[s],n.addClass(t[s]);break;case 41:this.$=t[s-1],n.addClass(t[s-1]),n.setClassLabel(t[s-1],t[s]);break;case 42:n.addAnnotation(t[s],t[s-2]);break;case 43:this.$=[t[s]];break;case 44:t[s].push(t[s-1]),this.$=t[s];break;case 45:break;case 46:n.addMember(t[s-1],n.cleanupLabel(t[s]));break;case 47:break;case 48:break;case 49:this.$={id1:t[s-2],id2:t[s],relation:t[s-1],relationTitle1:"none",relationTitle2:"none"};break;case 50:this.$={id1:t[s-3],id2:t[s],relation:t[s-1],relationTitle1:t[s-2],relationTitle2:"none"};break;case 51:this.$={id1:t[s-3],id2:t[s],relation:t[s-2],relationTitle1:"none",relationTitle2:t[s-1]};break;case 52:this.$={id1:t[s-4],id2:t[s],relation:t[s-2],relationTitle1:t[s-3],relationTitle2:t[s-1]};break;case 53:n.addNote(t[s],t[s-1]);break;case 54:n.addNote(t[s]);break;case 55:n.setDirection("TB");break;case 56:n.setDirection("BT");break;case 57:n.setDirection("RL");break;case 58:n.setDirection("LR");break;case 59:this.$={type1:t[s-2],type2:t[s],lineType:t[s-1]};break;case 60:this.$={type1:"none",type2:t[s],lineType:t[s-1]};break;case 61:this.$={type1:t[s-1],type2:"none",lineType:t[s]};break;case 62:this.$={type1:"none",type2:"none",lineType:t[s]};break;case 63:this.$=n.relationType.AGGREGATION;break;case 64:this.$=n.relationType.EXTENSION;break;case 65:this.$=n.relationType.COMPOSITION;break;case 66:this.$=n.relationType.DEPENDENCY;break;case 67:this.$=n.relationType.LOLLIPOP;break;case 68:this.$=n.lineType.LINE;break;case 69:this.$=n.lineType.DOTTED_LINE;break;case 70:case 76:this.$=t[s-2],n.setClickEvent(t[s-1],t[s]);break;case 71:case 77:this.$=t[s-3],n.setClickEvent(t[s-2],t[s-1]),n.setTooltip(t[s-2],t[s]);break;case 72:this.$=t[s-2],n.setLink(t[s-1],t[s]);break;case 73:this.$=t[s-3],n.setLink(t[s-2],t[s-1],t[s]);break;case 74:this.$=t[s-3],n.setLink(t[s-2],t[s-1]),n.setTooltip(t[s-2],t[s]);break;case 75:this.$=t[s-4],n.setLink(t[s-3],t[s-2],t[s]),n.setTooltip(t[s-3],t[s-1]);break;case 78:this.$=t[s-3],n.setClickEvent(t[s-2],t[s-1],t[s]);break;case 79:this.$=t[s-4],n.setClickEvent(t[s-3],t[s-2],t[s-1]),n.setTooltip(t[s-3],t[s]);break;case 80:this.$=t[s-3],n.setLink(t[s-2],t[s]);break;case 81:this.$=t[s-4],n.setLink(t[s-3],t[s-1],t[s]);break;case 82:this.$=t[s-4],n.setLink(t[s-3],t[s-1]),n.setTooltip(t[s-3],t[s]);break;case 83:this.$=t[s-5],n.setLink(t[s-4],t[s-2],t[s]),n.setTooltip(t[s-4],t[s-1]);break;case 84:this.$=t[s-2],n.setCssStyle(t[s-1],t[s]);break;case 85:n.setCssClass(t[s-1],t[s]);break;case 86:this.$=[t[s]];break;case 87:t[s-2].push(t[s]),this.$=t[s-2];break;case 89:this.$=t[s-1]+t[s];break}},table:[{3:1,4:2,5:3,6:4,7:[1,6],10:5,16:37,17:20,18:38,20:7,22:8,23:9,24:10,25:11,26:12,27:13,28:14,29:15,30:16,31:i,33:r,35:l,36:21,40:o,41:22,44:A,45:g,47:D,48:B,50:_,52:fe,53:de,54:Ee,55:Ce,56:me,66:be,67:ge,69:ke,73:Te,74:d,76:Fe,80:E,95:C,97:m,98:k},{1:[3]},{1:[2,1]},{1:[2,2]},{1:[2,3]},e(ye,[2,5],{8:[1,46]}),{8:[1,47]},e(c,[2,16],{21:[1,48]}),e(c,[2,18]),e(c,[2,19]),e(c,[2,20]),e(c,[2,21]),e(c,[2,22]),e(c,[2,23]),e(c,[2,24]),e(c,[2,25]),e(c,[2,26]),{32:[1,49]},{34:[1,50]},e(c,[2,29]),e(c,[2,45],{49:51,57:54,58:55,13:[1,52],21:[1,53],59:Y,60:j,61:Q,62:X,63:H,64:De,65:Be}),{37:[1,63]},e(W,[2,36],{37:[1,65],42:[1,64]}),e(c,[2,47]),e(c,[2,48]),{16:66,74:d,80:E,95:C,97:m},{16:37,17:67,18:38,74:d,80:E,95:C,97:m,98:k},{16:37,17:68,18:38,74:d,80:E,95:C,97:m,98:k},{16:37,17:69,18:38,74:d,80:E,95:C,97:m,98:k},{74:[1,70]},{13:[1,71]},{16:37,17:72,18:38,74:d,80:E,95:C,97:m,98:k},{13:Ge,51:73},e(c,[2,55]),e(c,[2,56]),e(c,[2,57]),e(c,[2,58]),e(M,[2,11],{16:37,18:38,17:75,19:[1,76],74:d,80:E,95:C,97:m,98:k}),e(M,[2,12],{19:[1,77]}),{15:78,16:79,74:d,80:E,95:C,97:m},{16:37,17:80,18:38,74:d,80:E,95:C,97:m,98:k},e(q,[2,112]),e(q,[2,113]),e(q,[2,114]),e(q,[2,115]),e([1,8,9,12,13,19,21,37,39,42,59,60,61,62,63,64,65,70,72],[2,116]),e(ye,[2,6],{10:5,20:7,22:8,23:9,24:10,25:11,26:12,27:13,28:14,29:15,30:16,17:20,36:21,41:22,16:37,18:38,5:81,31:i,33:r,35:l,40:o,44:A,45:g,47:D,48:B,50:_,52:fe,53:de,54:Ee,55:Ce,56:me,66:be,67:ge,69:ke,73:Te,74:d,76:Fe,80:E,95:C,97:m,98:k}),{5:82,10:5,16:37,17:20,18:38,20:7,22:8,23:9,24:10,25:11,26:12,27:13,28:14,29:15,30:16,31:i,33:r,35:l,36:21,40:o,41:22,44:A,45:g,47:D,48:B,50:_,52:fe,53:de,54:Ee,55:Ce,56:me,66:be,67:ge,69:ke,73:Te,74:d,76:Fe,80:E,95:C,97:m,98:k},e(c,[2,17]),e(c,[2,27]),e(c,[2,28]),{13:[1,84],16:37,17:83,18:38,74:d,80:E,95:C,97:m,98:k},{49:85,57:54,58:55,59:Y,60:j,61:Q,62:X,63:H,64:De,65:Be},e(c,[2,46]),{58:86,64:De,65:Be},e(J,[2,62],{57:87,59:Y,60:j,61:Q,62:X,63:H}),e(G,[2,63]),e(G,[2,64]),e(G,[2,65]),e(G,[2,66]),e(G,[2,67]),e(Ue,[2,68]),e(Ue,[2,69]),{8:[1,89],23:90,38:88,41:22,44:A},{16:91,74:d,80:E,95:C,97:m},{43:92,47:_e},{46:[1,94]},{13:[1,95]},{13:[1,96]},{70:[1,97],72:[1,98]},{21:Z,73:$,74:ee,75:99,77:100,79:101,80:te,81:se,82:ie,83:ne,84:ue,85:re},{74:[1,111]},{13:Ge,51:112},e(c,[2,54]),e(c,[2,117]),e(M,[2,13]),e(M,[2,14]),e(M,[2,15]),{37:[2,32]},{15:113,16:79,37:[2,9],74:d,80:E,95:C,97:m},e(Se,[2,40],{11:114,12:[1,115]}),e(ye,[2,7]),{9:[1,116]},e(ae,[2,49]),{16:37,17:117,18:38,74:d,80:E,95:C,97:m,98:k},{13:[1,119],16:37,17:118,18:38,74:d,80:E,95:C,97:m,98:k},e(J,[2,61],{57:120,59:Y,60:j,61:Q,62:X,63:H}),e(J,[2,60]),{39:[1,121]},{23:90,38:122,41:22,44:A},{8:[1,123],39:[2,33]},e(W,[2,37],{37:[1,124]}),{39:[1,125]},{39:[2,43],43:126,47:_e},{16:37,17:127,18:38,74:d,80:E,95:C,97:m,98:k},e(c,[2,70],{13:[1,128]}),e(c,[2,72],{13:[1,130],68:[1,129]}),e(c,[2,76],{13:[1,131],71:[1,132]}),{13:[1,133]},e(c,[2,84],{78:[1,134]}),e(ze,[2,86],{79:135,21:Z,73:$,74:ee,80:te,81:se,82:ie,83:ne,84:ue,85:re}),e(S,[2,88]),e(S,[2,90]),e(S,[2,91]),e(S,[2,92]),e(S,[2,93]),e(S,[2,94]),e(S,[2,95]),e(S,[2,96]),e(S,[2,97]),e(S,[2,98]),e(c,[2,85]),e(c,[2,53]),{37:[2,10]},e(Se,[2,41]),{13:[1,136]},{1:[2,4]},e(ae,[2,51]),e(ae,[2,50]),{16:37,17:137,18:38,74:d,80:E,95:C,97:m,98:k},e(J,[2,59]),e(c,[2,30]),{39:[1,138]},{23:90,38:139,39:[2,34],41:22,44:A},{43:140,47:_e},e(W,[2,38]),{39:[2,44]},e(c,[2,42]),e(c,[2,71]),e(c,[2,73]),e(c,[2,74],{68:[1,141]}),e(c,[2,77]),e(c,[2,78],{13:[1,142]}),e(c,[2,80],{13:[1,144],68:[1,143]}),{21:Z,73:$,74:ee,77:145,79:101,80:te,81:se,82:ie,83:ne,84:ue,85:re},e(S,[2,89]),{14:[1,146]},e(ae,[2,52]),e(c,[2,31]),{39:[2,35]},{39:[1,147]},e(c,[2,75]),e(c,[2,79]),e(c,[2,81]),e(c,[2,82],{68:[1,148]}),e(ze,[2,87],{79:135,21:Z,73:$,74:ee,80:te,81:se,82:ie,83:ne,84:ue,85:re}),e(Se,[2,8]),e(W,[2,39]),e(c,[2,83])],defaultActions:{2:[2,1],3:[2,2],4:[2,3],78:[2,32],113:[2,10],116:[2,4],126:[2,44],139:[2,35]},parseError:function(u,a){if(a.recoverable)this.trace(u);else{var h=new Error(u);throw h.hash=a,h}},parse:function(u){var a=this,h=[0],n=[],f=[null],t=[],U=this.table,s="",le=0,Ke=0,tt=2,Ye=1,st=t.slice.call(arguments,1),b=Object.create(this.lexer),I={yy:{}};for(var ve in this.yy)Object.prototype.hasOwnProperty.call(this.yy,ve)&&(I.yy[ve]=this.yy[ve]);b.setInput(u,I.yy),I.yy.lexer=b,I.yy.parser=this,typeof b.yylloc>"u"&&(b.yylloc={});var xe=b.yylloc;t.push(xe);var it=b.options&&b.options.ranges;typeof I.yy.parseError=="function"?this.parseError=I.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function nt(){var L;return L=n.pop()||b.lex()||Ye,typeof L!="number"&&(L instanceof Array&&(n=L,L=n.pop()),L=a.symbols_[L]||L),L}for(var T,R,y,Oe,P={},ce,N,je,oe;;){if(R=h[h.length-1],this.defaultActions[R]?y=this.defaultActions[R]:((T===null||typeof T>"u")&&(T=nt()),y=U[R]&&U[R][T]),typeof y>"u"||!y.length||!y[0]){var Ie="";oe=[];for(ce in U[R])this.terminals_[ce]&&ce>tt&&oe.push("'"+this.terminals_[ce]+"'");b.showPosition?Ie="Parse error on line "+(le+1)+`: +`+b.showPosition()+` +Expecting `+oe.join(", ")+", got '"+(this.terminals_[T]||T)+"'":Ie="Parse error on line "+(le+1)+": Unexpected "+(T==Ye?"end of input":"'"+(this.terminals_[T]||T)+"'"),this.parseError(Ie,{text:b.match,token:this.terminals_[T]||T,line:b.yylineno,loc:xe,expected:oe})}if(y[0]instanceof Array&&y.length>1)throw new Error("Parse Error: multiple actions possible at state: "+R+", token: "+T);switch(y[0]){case 1:h.push(T),f.push(b.yytext),t.push(b.yylloc),h.push(y[1]),T=null,Ke=b.yyleng,s=b.yytext,le=b.yylineno,xe=b.yylloc;break;case 2:if(N=this.productions_[y[1]][1],P.$=f[f.length-N],P._$={first_line:t[t.length-(N||1)].first_line,last_line:t[t.length-1].last_line,first_column:t[t.length-(N||1)].first_column,last_column:t[t.length-1].last_column},it&&(P._$.range=[t[t.length-(N||1)].range[0],t[t.length-1].range[1]]),Oe=this.performAction.apply(P,[s,Ke,le,I.yy,y[1],f,t].concat(st)),typeof Oe<"u")return Oe;N&&(h=h.slice(0,-1*N*2),f=f.slice(0,-1*N),t=t.slice(0,-1*N)),h.push(this.productions_[y[1]][0]),f.push(P.$),t.push(P._$),je=U[h[h.length-2]][h[h.length-1]],h.push(je);break;case 3:return!0}}return!0}},et=function(){var x={EOF:1,parseError:function(a,h){if(this.yy.parser)this.yy.parser.parseError(a,h);else throw new Error(a)},setInput:function(u,a){return this.yy=a||this.yy||{},this._input=u,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var u=this._input[0];this.yytext+=u,this.yyleng++,this.offset++,this.match+=u,this.matched+=u;var a=u.match(/(?:\r\n?|\n).*/g);return a?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),u},unput:function(u){var a=u.length,h=u.split(/(?:\r\n?|\n)/g);this._input=u+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-a),this.offset-=a;var n=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),h.length-1&&(this.yylineno-=h.length-1);var f=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:h?(h.length===n.length?this.yylloc.first_column:0)+n[n.length-h.length].length-h[0].length:this.yylloc.first_column-a},this.options.ranges&&(this.yylloc.range=[f[0],f[0]+this.yyleng-a]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true). +`+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},less:function(u){this.unput(this.match.slice(u))},pastInput:function(){var u=this.matched.substr(0,this.matched.length-this.match.length);return(u.length>20?"...":"")+u.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var u=this.match;return u.length<20&&(u+=this._input.substr(0,20-u.length)),(u.substr(0,20)+(u.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var u=this.pastInput(),a=new Array(u.length+1).join("-");return u+this.upcomingInput()+` +`+a+"^"},test_match:function(u,a){var h,n,f;if(this.options.backtrack_lexer&&(f={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(f.yylloc.range=this.yylloc.range.slice(0))),n=u[0].match(/(?:\r\n?|\n).*/g),n&&(this.yylineno+=n.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:n?n[n.length-1].length-n[n.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+u[0].length},this.yytext+=u[0],this.match+=u[0],this.matches=u,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(u[0].length),this.matched+=u[0],h=this.performAction.call(this,this.yy,this,a,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),h)return h;if(this._backtrack){for(var t in f)this[t]=f[t];return!1}return!1},next:function(){if(this.done)return this.EOF;this._input||(this.done=!0);var u,a,h,n;this._more||(this.yytext="",this.match="");for(var f=this._currentRules(),t=0;ta[0].length)){if(a=h,n=t,this.options.backtrack_lexer){if(u=this.test_match(h,f[t]),u!==!1)return u;if(this._backtrack){a=!1;continue}else return!1}else if(!this.options.flex)break}return a?(u=this.test_match(a,f[n]),u!==!1?u:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text. +`+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var a=this.next();return a||this.lex()},begin:function(a){this.conditionStack.push(a)},popState:function(){var a=this.conditionStack.length-1;return a>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(a){return a=this.conditionStack.length-1-Math.abs(a||0),a>=0?this.conditionStack[a]:"INITIAL"},pushState:function(a){this.begin(a)},stateStackSize:function(){return this.conditionStack.length},options:{},performAction:function(a,h,n,f){switch(n){case 0:return 53;case 1:return 54;case 2:return 55;case 3:return 56;case 4:break;case 5:break;case 6:return this.begin("acc_title"),31;case 7:return this.popState(),"acc_title_value";case 8:return this.begin("acc_descr"),33;case 9:return this.popState(),"acc_descr_value";case 10:this.begin("acc_descr_multiline");break;case 11:this.popState();break;case 12:return"acc_descr_multiline_value";case 13:return 8;case 14:break;case 15:return 7;case 16:return 7;case 17:return"EDGE_STATE";case 18:this.begin("callback_name");break;case 19:this.popState();break;case 20:this.popState(),this.begin("callback_args");break;case 21:return 70;case 22:this.popState();break;case 23:return 71;case 24:this.popState();break;case 25:return"STR";case 26:this.begin("string");break;case 27:return 73;case 28:return this.begin("namespace"),40;case 29:return this.popState(),8;case 30:break;case 31:return this.begin("namespace-body"),37;case 32:return this.popState(),39;case 33:return"EOF_IN_STRUCT";case 34:return 8;case 35:break;case 36:return"EDGE_STATE";case 37:return this.begin("class"),44;case 38:return this.popState(),8;case 39:break;case 40:return this.popState(),this.popState(),39;case 41:return this.begin("class-body"),37;case 42:return this.popState(),39;case 43:return"EOF_IN_STRUCT";case 44:return"EDGE_STATE";case 45:return"OPEN_IN_STRUCT";case 46:break;case 47:return"MEMBER";case 48:return 76;case 49:return 66;case 50:return 67;case 51:return 69;case 52:return 50;case 53:return 52;case 54:return 45;case 55:return 46;case 56:return 72;case 57:this.popState();break;case 58:return"GENERICTYPE";case 59:this.begin("generic");break;case 60:this.popState();break;case 61:return"BQUOTE_STR";case 62:this.begin("bqstring");break;case 63:return 68;case 64:return 68;case 65:return 68;case 66:return 68;case 67:return 60;case 68:return 60;case 69:return 62;case 70:return 62;case 71:return 61;case 72:return 59;case 73:return 63;case 74:return 64;case 75:return 65;case 76:return 21;case 77:return 42;case 78:return 95;case 79:return"DOT";case 80:return"PLUS";case 81:return 81;case 82:return 78;case 83:return 84;case 84:return 84;case 85:return 85;case 86:return"EQUALS";case 87:return"EQUALS";case 88:return 74;case 89:return 12;case 90:return 14;case 91:return"PUNCTUATION";case 92:return 80;case 93:return 97;case 94:return 83;case 95:return 83;case 96:return 9}},rules:[/^(?:.*direction\s+TB[^\n]*)/,/^(?:.*direction\s+BT[^\n]*)/,/^(?:.*direction\s+RL[^\n]*)/,/^(?:.*direction\s+LR[^\n]*)/,/^(?:%%(?!\{)*[^\n]*(\r?\n?)+)/,/^(?:%%[^\n]*(\r?\n)*)/,/^(?:accTitle\s*:\s*)/,/^(?:(?!\n||)*[^\n]*)/,/^(?:accDescr\s*:\s*)/,/^(?:(?!\n||)*[^\n]*)/,/^(?:accDescr\s*\{\s*)/,/^(?:[\}])/,/^(?:[^\}]*)/,/^(?:\s*(\r?\n)+)/,/^(?:\s+)/,/^(?:classDiagram-v2\b)/,/^(?:classDiagram\b)/,/^(?:\[\*\])/,/^(?:call[\s]+)/,/^(?:\([\s]*\))/,/^(?:\()/,/^(?:[^(]*)/,/^(?:\))/,/^(?:[^)]*)/,/^(?:["])/,/^(?:[^"]*)/,/^(?:["])/,/^(?:style\b)/,/^(?:namespace\b)/,/^(?:\s*(\r?\n)+)/,/^(?:\s+)/,/^(?:[{])/,/^(?:[}])/,/^(?:$)/,/^(?:\s*(\r?\n)+)/,/^(?:\s+)/,/^(?:\[\*\])/,/^(?:class\b)/,/^(?:\s*(\r?\n)+)/,/^(?:\s+)/,/^(?:[}])/,/^(?:[{])/,/^(?:[}])/,/^(?:$)/,/^(?:\[\*\])/,/^(?:[{])/,/^(?:[\n])/,/^(?:[^{}\n]*)/,/^(?:cssClass\b)/,/^(?:callback\b)/,/^(?:link\b)/,/^(?:click\b)/,/^(?:note for\b)/,/^(?:note\b)/,/^(?:<<)/,/^(?:>>)/,/^(?:href\b)/,/^(?:[~])/,/^(?:[^~]*)/,/^(?:~)/,/^(?:[`])/,/^(?:[^`]+)/,/^(?:[`])/,/^(?:_self\b)/,/^(?:_blank\b)/,/^(?:_parent\b)/,/^(?:_top\b)/,/^(?:\s*<\|)/,/^(?:\s*\|>)/,/^(?:\s*>)/,/^(?:\s*<)/,/^(?:\s*\*)/,/^(?:\s*o\b)/,/^(?:\s*\(\))/,/^(?:--)/,/^(?:\.\.)/,/^(?::{1}[^:\n;]+)/,/^(?::{3})/,/^(?:-)/,/^(?:\.)/,/^(?:\+)/,/^(?::)/,/^(?:,)/,/^(?:#)/,/^(?:#)/,/^(?:%)/,/^(?:=)/,/^(?:=)/,/^(?:\w+)/,/^(?:\[)/,/^(?:\])/,/^(?:[!"#$%&'*+,-.`?\\/])/,/^(?:[0-9]+)/,/^(?:[\u00AA\u00B5\u00BA\u00C0-\u00D6\u00D8-\u00F6]|[\u00F8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377]|[\u037A-\u037D\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5]|[\u03F7-\u0481\u048A-\u0527\u0531-\u0556\u0559\u0561-\u0587\u05D0-\u05EA]|[\u05F0-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE]|[\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA]|[\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u08A0]|[\u08A2-\u08AC\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0977]|[\u0979-\u097F\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2]|[\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u0A05-\u0A0A]|[\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39]|[\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8]|[\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0B05-\u0B0C]|[\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C]|[\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99]|[\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0]|[\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C33\u0C35-\u0C39\u0C3D]|[\u0C58\u0C59\u0C60\u0C61\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3]|[\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10]|[\u0D12-\u0D3A\u0D3D\u0D4E\u0D60\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1]|[\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81]|[\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3]|[\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6]|[\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A]|[\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081]|[\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D]|[\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0]|[\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310]|[\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F4\u1401-\u166C]|[\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u1700-\u170C\u170E-\u1711]|[\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7]|[\u17DC\u1820-\u1877\u1880-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191C]|[\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19C1-\u19C7\u1A00-\u1A16]|[\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF]|[\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1CE9-\u1CEC]|[\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D]|[\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D]|[\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3]|[\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F]|[\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128]|[\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2183\u2184]|[\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3]|[\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6]|[\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE]|[\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005\u3006\u3031-\u3035\u303B\u303C]|[\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D]|[\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FCC]|[\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B]|[\uA640-\uA66E\uA67F-\uA697\uA6A0-\uA6E5\uA717-\uA71F\uA722-\uA788]|[\uA78B-\uA78E\uA790-\uA793\uA7A0-\uA7AA\uA7F8-\uA801\uA803-\uA805]|[\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB]|[\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uAA00-\uAA28]|[\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA80-\uAAAF\uAAB1\uAAB5]|[\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4]|[\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E]|[\uABC0-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D]|[\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36]|[\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D]|[\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC]|[\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF]|[\uFFD2-\uFFD7\uFFDA-\uFFDC])/,/^(?:\s)/,/^(?:\s)/,/^(?:$)/],conditions:{"namespace-body":{rules:[26,32,33,34,35,36,37,48,49,50,51,52,53,54,55,56,59,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,85,86,87,88,89,90,91,92,93,94,96],inclusive:!1},namespace:{rules:[26,28,29,30,31,48,49,50,51,52,53,54,55,56,59,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,85,86,87,88,89,90,91,92,93,94,96],inclusive:!1},"class-body":{rules:[26,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,59,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,85,86,87,88,89,90,91,92,93,94,96],inclusive:!1},class:{rules:[26,38,39,40,41,48,49,50,51,52,53,54,55,56,59,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,85,86,87,88,89,90,91,92,93,94,96],inclusive:!1},acc_descr_multiline:{rules:[11,12,26,48,49,50,51,52,53,54,55,56,59,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,85,86,87,88,89,90,91,92,93,94,96],inclusive:!1},acc_descr:{rules:[9,26,48,49,50,51,52,53,54,55,56,59,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,85,86,87,88,89,90,91,92,93,94,96],inclusive:!1},acc_title:{rules:[7,26,48,49,50,51,52,53,54,55,56,59,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,85,86,87,88,89,90,91,92,93,94,96],inclusive:!1},callback_args:{rules:[22,23,26,48,49,50,51,52,53,54,55,56,59,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,85,86,87,88,89,90,91,92,93,94,96],inclusive:!1},callback_name:{rules:[19,20,21,26,48,49,50,51,52,53,54,55,56,59,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,85,86,87,88,89,90,91,92,93,94,96],inclusive:!1},href:{rules:[26,48,49,50,51,52,53,54,55,56,59,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,85,86,87,88,89,90,91,92,93,94,96],inclusive:!1},struct:{rules:[26,48,49,50,51,52,53,54,55,56,59,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,85,86,87,88,89,90,91,92,93,94,96],inclusive:!1},generic:{rules:[26,48,49,50,51,52,53,54,55,56,57,58,59,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,85,86,87,88,89,90,91,92,93,94,96],inclusive:!1},bqstring:{rules:[26,48,49,50,51,52,53,54,55,56,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,85,86,87,88,89,90,91,92,93,94,96],inclusive:!1},string:{rules:[24,25,26,48,49,50,51,52,53,54,55,56,59,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,85,86,87,88,89,90,91,92,93,94,96],inclusive:!1},INITIAL:{rules:[0,1,2,3,4,5,6,8,10,13,14,15,16,17,18,26,27,28,37,48,49,50,51,52,53,54,55,56,59,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96],inclusive:!0}}};return x}();Ne.lexer=et;function Le(){this.yy={}}return Le.prototype=Ne,Ne.Parser=Le,new Le}();Ve.parser=Ve;const zt=Ve,Qe=["#","+","~","-",""];class Xe{constructor(i,r){this.memberType=r,this.visibility="",this.classifier="";const l=pt(i,F());this.parseMember(l)}getDisplayDetails(){let i=this.visibility+Re(this.id);this.memberType==="method"&&(i+=`(${Re(this.parameters.trim())})`,this.returnType&&(i+=" : "+Re(this.returnType))),i=i.trim();const r=this.parseClassifier();return{displayText:i,cssStyle:r}}parseMember(i){let r="";if(this.memberType==="method"){const l=/([#+~-])?(.+)\((.*)\)([\s$*])?(.*)([$*])?/,o=i.match(l);if(o){const A=o[1]?o[1].trim():"";if(Qe.includes(A)&&(this.visibility=A),this.id=o[2].trim(),this.parameters=o[3]?o[3].trim():"",r=o[4]?o[4].trim():"",this.returnType=o[5]?o[5].trim():"",r===""){const g=this.returnType.substring(this.returnType.length-1);g.match(/[$*]/)&&(r=g,this.returnType=this.returnType.substring(0,this.returnType.length-1))}}}else{const l=i.length,o=i.substring(0,1),A=i.substring(l-1);Qe.includes(o)&&(this.visibility=o),A.match(/[$*]/)&&(r=A),this.id=i.substring(this.visibility===""?0:1,r===""?l:l-1)}this.classifier=r}parseClassifier(){switch(this.classifier){case"*":return"font-style:italic;";case"$":return"text-decoration:underline;";default:return""}}}const pe="classId-";let Pe=[],p={},he=[],He=0,O={},we=0,K=[];const V=e=>v.sanitizeText(e,F()),w=function(e){const i=v.sanitizeText(e,F());let r="",l=i;if(i.indexOf("~")>0){const o=i.split("~");l=V(o[0]),r=V(o[1])}return{className:l,type:r}},ft=function(e,i){const r=v.sanitizeText(e,F());i&&(i=V(i));const{className:l}=w(r);p[l].label=i},Ae=function(e){const i=v.sanitizeText(e,F()),{className:r,type:l}=w(i);if(Object.hasOwn(p,r))return;const o=v.sanitizeText(r,F());p[o]={id:o,type:l,label:o,cssClasses:[],methods:[],members:[],annotations:[],styles:[],domId:pe+o+"-"+He},He++},qe=function(e){const i=v.sanitizeText(e,F());if(i in p)return p[i].domId;throw new Error("Class not found: "+i)},dt=function(){Pe=[],p={},he=[],K=[],K.push(Ze),O={},we=0,ht()},Et=function(e){return p[e]},Ct=function(){return p},mt=function(){return Pe},bt=function(){return he},gt=function(e){At.debug("Adding relation: "+JSON.stringify(e)),Ae(e.id1),Ae(e.id2),e.id1=w(e.id1).className,e.id2=w(e.id2).className,e.relationTitle1=v.sanitizeText(e.relationTitle1.trim(),F()),e.relationTitle2=v.sanitizeText(e.relationTitle2.trim(),F()),Pe.push(e)},kt=function(e,i){const r=w(e).className;p[r].annotations.push(i)},Je=function(e,i){Ae(e);const r=w(e).className,l=p[r];if(typeof i=="string"){const o=i.trim();o.startsWith("<<")&&o.endsWith(">>")?l.annotations.push(V(o.substring(2,o.length-2))):o.indexOf(")")>0?l.methods.push(new Xe(o,"method")):o&&l.members.push(new Xe(o,"attribute"))}},Tt=function(e,i){Array.isArray(i)&&(i.reverse(),i.forEach(r=>Je(e,r)))},Ft=function(e,i){const r={id:`note${he.length}`,class:i,text:e};he.push(r)},yt=function(e){return e.startsWith(":")&&(e=e.substring(1)),V(e.trim())},Me=function(e,i){e.split(",").forEach(function(r){let l=r;r[0].match(/\d/)&&(l=pe+l),p[l]!==void 0&&p[l].cssClasses.push(i)})},Dt=function(e,i){e.split(",").forEach(function(r){i!==void 0&&(p[r].tooltip=V(i))})},Bt=function(e,i){return i?O[i].classes[e].tooltip:p[e].tooltip},_t=function(e,i,r){const l=F();e.split(",").forEach(function(o){let A=o;o[0].match(/\d/)&&(A=pe+A),p[A]!==void 0&&(p[A].link=We.formatUrl(i,l),l.securityLevel==="sandbox"?p[A].linkTarget="_top":typeof r=="string"?p[A].linkTarget=V(r):p[A].linkTarget="_blank")}),Me(e,"clickable")},St=function(e,i,r){e.split(",").forEach(function(l){Nt(l,i,r),p[l].haveCallback=!0}),Me(e,"clickable")},Nt=function(e,i,r){const l=v.sanitizeText(e,F());if(F().securityLevel!=="loose"||i===void 0)return;const A=l;if(p[A]!==void 0){const g=qe(A);let D=[];if(typeof r=="string"){D=r.split(/,(?=(?:(?:[^"]*"){2})*[^"]*$)/);for(let B=0;B")),o.classed("hover",!0)}).on("mouseout",function(){i.transition().duration(500).style("opacity",0),z(this).classed("hover",!1)})};K.push(Ze);let $e="TB";const Ot=()=>$e,It=e=>{$e=e},Rt=function(e){O[e]===void 0&&(O[e]={id:e,classes:{},children:{},domId:pe+e+"-"+we},we++)},Vt=function(e){return O[e]},wt=function(){return O},Pt=function(e,i){if(O[e]!==void 0)for(const r of i){const{className:l}=w(r);p[l].parent=e,O[e].classes[l]=p[l]}},Mt=function(e,i){const r=p[e];if(!(!i||!r))for(const l of i)l.includes(",")?r.styles.push(...l.split(",")):r.styles.push(l)},Kt={setAccTitle:ut,getAccTitle:rt,getAccDescription:at,setAccDescription:lt,getConfig:()=>F().class,addClass:Ae,bindFunctions:Lt,clear:dt,getClass:Et,getClasses:Ct,getNotes:bt,addAnnotation:kt,addNote:Ft,getRelations:mt,addRelation:gt,getDirection:Ot,setDirection:It,addMember:Je,addMembers:Tt,cleanupLabel:yt,lineType:vt,relationType:xt,setClickEvent:St,setCssClass:Me,setLink:_t,getTooltip:Bt,setTooltip:Dt,lookUpDomId:qe,setDiagramTitle:ct,getDiagramTitle:ot,setClassLabel:ft,addNamespace:Rt,addClassesToNamespace:Pt,getNamespace:Vt,getNamespaces:wt,setCssStyle:Mt},Gt=e=>`g.classGroup text { + fill: ${e.nodeBorder||e.classText}; + stroke: none; + font-family: ${e.fontFamily}; + font-size: 10px; + + .title { + font-weight: bolder; + } + +} + +.nodeLabel, .edgeLabel { + color: ${e.classText}; +} +.edgeLabel .label rect { + fill: ${e.mainBkg}; +} +.label text { + fill: ${e.classText}; +} +.edgeLabel .label span { + background: ${e.mainBkg}; +} + +.classTitle { + font-weight: bolder; +} +.node rect, + .node circle, + .node ellipse, + .node polygon, + .node path { + fill: ${e.mainBkg}; + stroke: ${e.nodeBorder}; + stroke-width: 1px; + } + + +.divider { + stroke: ${e.nodeBorder}; + stroke-width: 1; +} + +g.clickable { + cursor: pointer; +} + +g.classGroup rect { + fill: ${e.mainBkg}; + stroke: ${e.nodeBorder}; +} + +g.classGroup line { + stroke: ${e.nodeBorder}; + stroke-width: 1; +} + +.classLabel .box { + stroke: none; + stroke-width: 0; + fill: ${e.mainBkg}; + opacity: 0.5; +} + +.classLabel .label { + fill: ${e.nodeBorder}; + font-size: 10px; +} + +.relation { + stroke: ${e.lineColor}; + stroke-width: 1; + fill: none; +} + +.dashed-line{ + stroke-dasharray: 3; +} + +.dotted-line{ + stroke-dasharray: 1 2; +} + +#compositionStart, .composition { + fill: ${e.lineColor} !important; + stroke: ${e.lineColor} !important; + stroke-width: 1; +} + +#compositionEnd, .composition { + fill: ${e.lineColor} !important; + stroke: ${e.lineColor} !important; + stroke-width: 1; +} + +#dependencyStart, .dependency { + fill: ${e.lineColor} !important; + stroke: ${e.lineColor} !important; + stroke-width: 1; +} + +#dependencyStart, .dependency { + fill: ${e.lineColor} !important; + stroke: ${e.lineColor} !important; + stroke-width: 1; +} + +#extensionStart, .extension { + fill: transparent !important; + stroke: ${e.lineColor} !important; + stroke-width: 1; +} + +#extensionEnd, .extension { + fill: transparent !important; + stroke: ${e.lineColor} !important; + stroke-width: 1; +} + +#aggregationStart, .aggregation { + fill: transparent !important; + stroke: ${e.lineColor} !important; + stroke-width: 1; +} + +#aggregationEnd, .aggregation { + fill: transparent !important; + stroke: ${e.lineColor} !important; + stroke-width: 1; +} + +#lollipopStart, .lollipop { + fill: ${e.mainBkg} !important; + stroke: ${e.lineColor} !important; + stroke-width: 1; +} + +#lollipopEnd, .lollipop { + fill: ${e.mainBkg} !important; + stroke: ${e.lineColor} !important; + stroke-width: 1; +} + +.edgeTerminals { + font-size: 11px; + line-height: initial; +} + +.classTitleText { + text-anchor: middle; + font-size: 18px; + fill: ${e.textColor}; +} +`,Yt=Gt;export{Kt as d,zt as p,Yt as s}; diff --git a/assets/styles-c10674c1-B6ZOCMWN.js b/assets/styles-c10674c1-B6ZOCMWN.js new file mode 100644 index 00000000..1a3c7b09 --- /dev/null +++ b/assets/styles-c10674c1-B6ZOCMWN.js @@ -0,0 +1,116 @@ +import{G as R}from"./graph-Es7S6dYR.js";import{ab as z,ac as F,ad as j,ae as U,a9 as H,p as A,l as g,q as K,c as S,j as G,r as q,t as E,o as L,h as C,z as W,u as X,af as J}from"./mermaid.core-B_tqKmhs.js";import{r as Q}from"./index-3862675e-BNucB7R-.js";import{c as Y}from"./channel-nQRcXLRS.js";function Z(e){return typeof e=="string"?new z([document.querySelectorAll(e)],[document.documentElement]):new z([j(e)],F)}function pe(e,l){return!!e.children(l).length}function be(e){return N(e.v)+":"+N(e.w)+":"+N(e.name)}var O=/:/g;function N(e){return e?String(e).replace(O,"\\:"):""}function ee(e,l){l&&e.attr("style",l)}function fe(e,l,c){l&&e.attr("class",l).attr("class",c+" "+e.attr("class"))}function ue(e,l){var c=l.graph();if(U(c)){var a=c.transition;if(H(a))return a(e)}return e}function te(e,l){var c=e.append("foreignObject").attr("width","100000"),a=c.append("xhtml:div");a.attr("xmlns","http://www.w3.org/1999/xhtml");var i=l.label;switch(typeof i){case"function":a.insert(i);break;case"object":a.insert(function(){return i});break;default:a.html(i)}ee(a,l.labelStyle),a.style("display","inline-block"),a.style("white-space","nowrap");var d=a.node().getBoundingClientRect();return c.attr("width",d.width).attr("height",d.height),c}const P={},re=function(e){const l=Object.keys(e);for(const c of l)P[c]=e[c]},V=async function(e,l,c,a,i,d){const u=a.select(`[id="${c}"]`),n=Object.keys(e);for(const p of n){const r=e[p];let y="default";r.classes.length>0&&(y=r.classes.join(" ")),y=y+" flowchart-label";const w=A(r.styles);let t=r.text!==void 0?r.text:r.id,s;if(g.info("vertex",r,r.labelType),r.labelType==="markdown")g.info("vertex",r,r.labelType);else if(K(S().flowchart.htmlLabels))s=te(u,{label:t}).node(),s.parentNode.removeChild(s);else{const k=i.createElementNS("http://www.w3.org/2000/svg","text");k.setAttribute("style",w.labelStyle.replace("color:","fill:"));const _=t.split(G.lineBreakRegex);for(const $ of _){const v=i.createElementNS("http://www.w3.org/2000/svg","tspan");v.setAttributeNS("http://www.w3.org/XML/1998/namespace","xml:space","preserve"),v.setAttribute("dy","1em"),v.setAttribute("x","1"),v.textContent=$,k.appendChild(v)}s=k}let b=0,o="";switch(r.type){case"round":b=5,o="rect";break;case"square":o="rect";break;case"diamond":o="question";break;case"hexagon":o="hexagon";break;case"odd":o="rect_left_inv_arrow";break;case"lean_right":o="lean_right";break;case"lean_left":o="lean_left";break;case"trapezoid":o="trapezoid";break;case"inv_trapezoid":o="inv_trapezoid";break;case"odd_right":o="rect_left_inv_arrow";break;case"circle":o="circle";break;case"ellipse":o="ellipse";break;case"stadium":o="stadium";break;case"subroutine":o="subroutine";break;case"cylinder":o="cylinder";break;case"group":o="rect";break;case"doublecircle":o="doublecircle";break;default:o="rect"}const T=await q(t,S());l.setNode(r.id,{labelStyle:w.labelStyle,shape:o,labelText:T,labelType:r.labelType,rx:b,ry:b,class:y,style:w.style,id:r.id,link:r.link,linkTarget:r.linkTarget,tooltip:d.db.getTooltip(r.id)||"",domId:d.db.lookUpDomId(r.id),haveCallback:r.haveCallback,width:r.type==="group"?500:void 0,dir:r.dir,type:r.type,props:r.props,padding:S().flowchart.padding}),g.info("setNode",{labelStyle:w.labelStyle,labelType:r.labelType,shape:o,labelText:T,rx:b,ry:b,class:y,style:w.style,id:r.id,domId:d.db.lookUpDomId(r.id),width:r.type==="group"?500:void 0,type:r.type,dir:r.dir,props:r.props,padding:S().flowchart.padding})}},M=async function(e,l,c){g.info("abc78 edges = ",e);let a=0,i={},d,u;if(e.defaultStyle!==void 0){const n=A(e.defaultStyle);d=n.style,u=n.labelStyle}for(const n of e){a++;const p="L-"+n.start+"-"+n.end;i[p]===void 0?(i[p]=0,g.info("abc78 new entry",p,i[p])):(i[p]++,g.info("abc78 new entry",p,i[p]));let r=p+"-"+i[p];g.info("abc78 new link id to be used is",p,r,i[p]);const y="LS-"+n.start,w="LE-"+n.end,t={style:"",labelStyle:""};switch(t.minlen=n.length||1,n.type==="arrow_open"?t.arrowhead="none":t.arrowhead="normal",t.arrowTypeStart="arrow_open",t.arrowTypeEnd="arrow_open",n.type){case"double_arrow_cross":t.arrowTypeStart="arrow_cross";case"arrow_cross":t.arrowTypeEnd="arrow_cross";break;case"double_arrow_point":t.arrowTypeStart="arrow_point";case"arrow_point":t.arrowTypeEnd="arrow_point";break;case"double_arrow_circle":t.arrowTypeStart="arrow_circle";case"arrow_circle":t.arrowTypeEnd="arrow_circle";break}let s="",b="";switch(n.stroke){case"normal":s="fill:none;",d!==void 0&&(s=d),u!==void 0&&(b=u),t.thickness="normal",t.pattern="solid";break;case"dotted":t.thickness="normal",t.pattern="dotted",t.style="fill:none;stroke-width:2px;stroke-dasharray:3;";break;case"thick":t.thickness="thick",t.pattern="solid",t.style="stroke-width: 3.5px;fill:none;";break;case"invisible":t.thickness="invisible",t.pattern="solid",t.style="stroke-width: 0;fill:none;";break}if(n.style!==void 0){const o=A(n.style);s=o.style,b=o.labelStyle}t.style=t.style+=s,t.labelStyle=t.labelStyle+=b,n.interpolate!==void 0?t.curve=E(n.interpolate,L):e.defaultInterpolate!==void 0?t.curve=E(e.defaultInterpolate,L):t.curve=E(P.curve,L),n.text===void 0?n.style!==void 0&&(t.arrowheadStyle="fill: #333"):(t.arrowheadStyle="fill: #333",t.labelpos="c"),t.labelType=n.labelType,t.label=await q(n.text.replace(G.lineBreakRegex,` +`),S()),n.style===void 0&&(t.style=t.style||"stroke: #333; stroke-width: 1.5px;fill:none;"),t.labelStyle=t.labelStyle.replace("color:","fill:"),t.id=r,t.classes="flowchart-link "+y+" "+w,l.setEdge(n.start,n.end,t,a)}},le=function(e,l){return l.db.getClasses()},ae=async function(e,l,c,a){g.info("Drawing flowchart");let i=a.db.getDirection();i===void 0&&(i="TD");const{securityLevel:d,flowchart:u}=S(),n=u.nodeSpacing||50,p=u.rankSpacing||50;let r;d==="sandbox"&&(r=C("#i"+l));const y=d==="sandbox"?C(r.nodes()[0].contentDocument.body):C("body"),w=d==="sandbox"?r.nodes()[0].contentDocument:document,t=new R({multigraph:!0,compound:!0}).setGraph({rankdir:i,nodesep:n,ranksep:p,marginx:0,marginy:0}).setDefaultEdgeLabel(function(){return{}});let s;const b=a.db.getSubGraphs();g.info("Subgraphs - ",b);for(let f=b.length-1;f>=0;f--)s=b[f],g.info("Subgraph - ",s),a.db.addVertex(s.id,{text:s.title,type:s.labelType},"group",void 0,s.classes,s.dir);const o=a.db.getVertices(),T=a.db.getEdges();g.info("Edges",T);let k=0;for(k=b.length-1;k>=0;k--){s=b[k],Z("cluster").append("text");for(let f=0;f{const c=Y,a=c(e,"r"),i=c(e,"g"),d=c(e,"b");return J(a,i,d,l)},ne=e=>`.label { + font-family: ${e.fontFamily}; + color: ${e.nodeTextColor||e.textColor}; + } + .cluster-label text { + fill: ${e.titleColor}; + } + .cluster-label span,p { + color: ${e.titleColor}; + } + + .label text,span,p { + fill: ${e.nodeTextColor||e.textColor}; + color: ${e.nodeTextColor||e.textColor}; + } + + .node rect, + .node circle, + .node ellipse, + .node polygon, + .node path { + fill: ${e.mainBkg}; + stroke: ${e.nodeBorder}; + stroke-width: 1px; + } + .flowchart-label text { + text-anchor: middle; + } + // .flowchart-label .text-outer-tspan { + // text-anchor: middle; + // } + // .flowchart-label .text-inner-tspan { + // text-anchor: start; + // } + + .node .katex path { + fill: #000; + stroke: #000; + stroke-width: 1px; + } + + .node .label { + text-align: center; + } + .node.clickable { + cursor: pointer; + } + + .arrowheadPath { + fill: ${e.arrowheadColor}; + } + + .edgePath .path { + stroke: ${e.lineColor}; + stroke-width: 2.0px; + } + + .flowchart-link { + stroke: ${e.lineColor}; + fill: none; + } + + .edgeLabel { + background-color: ${e.edgeLabelBackground}; + rect { + opacity: 0.5; + background-color: ${e.edgeLabelBackground}; + fill: ${e.edgeLabelBackground}; + } + text-align: center; + } + + /* For html labels only */ + .labelBkg { + background-color: ${oe(e.edgeLabelBackground,.5)}; + // background-color: + } + + .cluster rect { + fill: ${e.clusterBkg}; + stroke: ${e.clusterBorder}; + stroke-width: 1px; + } + + .cluster text { + fill: ${e.titleColor}; + } + + .cluster span,p { + color: ${e.titleColor}; + } + /* .cluster div { + color: ${e.titleColor}; + } */ + + div.mermaidTooltip { + position: absolute; + text-align: center; + max-width: 200px; + padding: 2px; + font-family: ${e.fontFamily}; + font-size: 12px; + background: ${e.tertiaryColor}; + border: 1px solid ${e.border2}; + border-radius: 2px; + pointer-events: none; + z-index: 100; + } + + .flowchartTitleText { + text-anchor: middle; + font-size: 18px; + fill: ${e.textColor}; + } +`,he=ne;export{ee as a,te as b,ue as c,fe as d,be as e,we as f,he as g,pe as i,Z as s}; diff --git a/assets/svgDrawCommon-08f97a94-Dr3rJKJn.js b/assets/svgDrawCommon-08f97a94-Dr3rJKJn.js new file mode 100644 index 00000000..6796d80f --- /dev/null +++ b/assets/svgDrawCommon-08f97a94-Dr3rJKJn.js @@ -0,0 +1 @@ +import{n as o,m as i}from"./mermaid.core-B_tqKmhs.js";const l=(s,t)=>{const e=s.append("rect");if(e.attr("x",t.x),e.attr("y",t.y),e.attr("fill",t.fill),e.attr("stroke",t.stroke),e.attr("width",t.width),e.attr("height",t.height),t.name&&e.attr("name",t.name),t.rx!==void 0&&e.attr("rx",t.rx),t.ry!==void 0&&e.attr("ry",t.ry),t.attrs!==void 0)for(const r in t.attrs)e.attr(r,t.attrs[r]);return t.class!==void 0&&e.attr("class",t.class),e},x=(s,t)=>{const e={x:t.startx,y:t.starty,width:t.stopx-t.startx,height:t.stopy-t.starty,fill:t.fill,stroke:t.stroke,class:"rect"};l(s,e).lower()},d=(s,t)=>{const e=t.text.replace(o," "),r=s.append("text");r.attr("x",t.x),r.attr("y",t.y),r.attr("class","legend"),r.style("text-anchor",t.anchor),t.class!==void 0&&r.attr("class",t.class);const n=r.append("tspan");return n.attr("x",t.x+t.textMargin*2),n.text(e),r},h=(s,t,e,r)=>{const n=s.append("image");n.attr("x",t),n.attr("y",e);const a=i.sanitizeUrl(r);n.attr("xlink:href",a)},y=(s,t,e,r)=>{const n=s.append("use");n.attr("x",t),n.attr("y",e);const a=i.sanitizeUrl(r);n.attr("xlink:href",`#${a}`)},g=()=>({x:0,y:0,width:100,height:100,fill:"#EDF2AE",stroke:"#666",anchor:"start",rx:0,ry:0}),m=()=>({x:0,y:0,width:100,height:100,"text-anchor":"start",style:"#666",textMargin:0,rx:0,ry:0,tspan:!0});export{x as a,m as b,y as c,l as d,h as e,d as f,g}; diff --git a/assets/timeline-definition-85554ec2-CU0quQnj.js b/assets/timeline-definition-85554ec2-CU0quQnj.js new file mode 100644 index 00000000..bf58cc1c --- /dev/null +++ b/assets/timeline-definition-85554ec2-CU0quQnj.js @@ -0,0 +1,61 @@ +import{b2 as ft,A as gt,c as mt,l as E,h as G,u as xt,b3 as bt,b4 as _t,b5 as kt}from"./mermaid.core-B_tqKmhs.js";import{a as D}from"./arc-DLmlFMgC.js";import"./index-Be9IN4QR.js";import"./path-CbwjOpE9.js";var K=function(){var n=function(g,i,r,c){for(r=r||{},c=g.length;c--;r[g[c]]=i);return r},t=[6,8,10,11,12,14,16,17,20,21],e=[1,9],a=[1,10],s=[1,11],h=[1,12],l=[1,13],p=[1,16],y=[1,17],f={trace:function(){},yy:{},symbols_:{error:2,start:3,timeline:4,document:5,EOF:6,line:7,SPACE:8,statement:9,NEWLINE:10,title:11,acc_title:12,acc_title_value:13,acc_descr:14,acc_descr_value:15,acc_descr_multiline_value:16,section:17,period_statement:18,event_statement:19,period:20,event:21,$accept:0,$end:1},terminals_:{2:"error",4:"timeline",6:"EOF",8:"SPACE",10:"NEWLINE",11:"title",12:"acc_title",13:"acc_title_value",14:"acc_descr",15:"acc_descr_value",16:"acc_descr_multiline_value",17:"section",20:"period",21:"event"},productions_:[0,[3,3],[5,0],[5,2],[7,2],[7,1],[7,1],[7,1],[9,1],[9,2],[9,2],[9,1],[9,1],[9,1],[9,1],[18,1],[19,1]],performAction:function(i,r,c,d,u,o,$){var x=o.length-1;switch(u){case 1:return o[x-1];case 2:this.$=[];break;case 3:o[x-1].push(o[x]),this.$=o[x-1];break;case 4:case 5:this.$=o[x];break;case 6:case 7:this.$=[];break;case 8:d.getCommonDb().setDiagramTitle(o[x].substr(6)),this.$=o[x].substr(6);break;case 9:this.$=o[x].trim(),d.getCommonDb().setAccTitle(this.$);break;case 10:case 11:this.$=o[x].trim(),d.getCommonDb().setAccDescription(this.$);break;case 12:d.addSection(o[x].substr(8)),this.$=o[x].substr(8);break;case 15:d.addTask(o[x],0,""),this.$=o[x];break;case 16:d.addEvent(o[x].substr(2)),this.$=o[x];break}},table:[{3:1,4:[1,2]},{1:[3]},n(t,[2,2],{5:3}),{6:[1,4],7:5,8:[1,6],9:7,10:[1,8],11:e,12:a,14:s,16:h,17:l,18:14,19:15,20:p,21:y},n(t,[2,7],{1:[2,1]}),n(t,[2,3]),{9:18,11:e,12:a,14:s,16:h,17:l,18:14,19:15,20:p,21:y},n(t,[2,5]),n(t,[2,6]),n(t,[2,8]),{13:[1,19]},{15:[1,20]},n(t,[2,11]),n(t,[2,12]),n(t,[2,13]),n(t,[2,14]),n(t,[2,15]),n(t,[2,16]),n(t,[2,4]),n(t,[2,9]),n(t,[2,10])],defaultActions:{},parseError:function(i,r){if(r.recoverable)this.trace(i);else{var c=new Error(i);throw c.hash=r,c}},parse:function(i){var r=this,c=[0],d=[],u=[null],o=[],$=this.table,x="",T=0,W=0,C=2,A=1,B=o.slice.call(arguments,1),k=Object.create(this.lexer),w={yy:{}};for(var v in this.yy)Object.prototype.hasOwnProperty.call(this.yy,v)&&(w.yy[v]=this.yy[v]);k.setInput(i,w.yy),w.yy.lexer=k,w.yy.parser=this,typeof k.yylloc>"u"&&(k.yylloc={});var I=k.yylloc;o.push(I);var P=k.options&&k.options.ranges;typeof w.yy.parseError=="function"?this.parseError=w.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function z(){var M;return M=d.pop()||k.lex()||A,typeof M!="number"&&(M instanceof Array&&(d=M,M=d.pop()),M=r.symbols_[M]||M),M}for(var _,L,S,Z,R={},O,N,Y,j;;){if(L=c[c.length-1],this.defaultActions[L]?S=this.defaultActions[L]:((_===null||typeof _>"u")&&(_=z()),S=$[L]&&$[L][_]),typeof S>"u"||!S.length||!S[0]){var J="";j=[];for(O in $[L])this.terminals_[O]&&O>C&&j.push("'"+this.terminals_[O]+"'");k.showPosition?J="Parse error on line "+(T+1)+`: +`+k.showPosition()+` +Expecting `+j.join(", ")+", got '"+(this.terminals_[_]||_)+"'":J="Parse error on line "+(T+1)+": Unexpected "+(_==A?"end of input":"'"+(this.terminals_[_]||_)+"'"),this.parseError(J,{text:k.match,token:this.terminals_[_]||_,line:k.yylineno,loc:I,expected:j})}if(S[0]instanceof Array&&S.length>1)throw new Error("Parse Error: multiple actions possible at state: "+L+", token: "+_);switch(S[0]){case 1:c.push(_),u.push(k.yytext),o.push(k.yylloc),c.push(S[1]),_=null,W=k.yyleng,x=k.yytext,T=k.yylineno,I=k.yylloc;break;case 2:if(N=this.productions_[S[1]][1],R.$=u[u.length-N],R._$={first_line:o[o.length-(N||1)].first_line,last_line:o[o.length-1].last_line,first_column:o[o.length-(N||1)].first_column,last_column:o[o.length-1].last_column},P&&(R._$.range=[o[o.length-(N||1)].range[0],o[o.length-1].range[1]]),Z=this.performAction.apply(R,[x,W,T,w.yy,S[1],u,o].concat(B)),typeof Z<"u")return Z;N&&(c=c.slice(0,-1*N*2),u=u.slice(0,-1*N),o=o.slice(0,-1*N)),c.push(this.productions_[S[1]][0]),u.push(R.$),o.push(R._$),Y=$[c[c.length-2]][c[c.length-1]],c.push(Y);break;case 3:return!0}}return!0}},b=function(){var g={EOF:1,parseError:function(r,c){if(this.yy.parser)this.yy.parser.parseError(r,c);else throw new Error(r)},setInput:function(i,r){return this.yy=r||this.yy||{},this._input=i,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var i=this._input[0];this.yytext+=i,this.yyleng++,this.offset++,this.match+=i,this.matched+=i;var r=i.match(/(?:\r\n?|\n).*/g);return r?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),i},unput:function(i){var r=i.length,c=i.split(/(?:\r\n?|\n)/g);this._input=i+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-r),this.offset-=r;var d=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),c.length-1&&(this.yylineno-=c.length-1);var u=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:c?(c.length===d.length?this.yylloc.first_column:0)+d[d.length-c.length].length-c[0].length:this.yylloc.first_column-r},this.options.ranges&&(this.yylloc.range=[u[0],u[0]+this.yyleng-r]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true). +`+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},less:function(i){this.unput(this.match.slice(i))},pastInput:function(){var i=this.matched.substr(0,this.matched.length-this.match.length);return(i.length>20?"...":"")+i.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var i=this.match;return i.length<20&&(i+=this._input.substr(0,20-i.length)),(i.substr(0,20)+(i.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var i=this.pastInput(),r=new Array(i.length+1).join("-");return i+this.upcomingInput()+` +`+r+"^"},test_match:function(i,r){var c,d,u;if(this.options.backtrack_lexer&&(u={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(u.yylloc.range=this.yylloc.range.slice(0))),d=i[0].match(/(?:\r\n?|\n).*/g),d&&(this.yylineno+=d.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:d?d[d.length-1].length-d[d.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+i[0].length},this.yytext+=i[0],this.match+=i[0],this.matches=i,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(i[0].length),this.matched+=i[0],c=this.performAction.call(this,this.yy,this,r,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),c)return c;if(this._backtrack){for(var o in u)this[o]=u[o];return!1}return!1},next:function(){if(this.done)return this.EOF;this._input||(this.done=!0);var i,r,c,d;this._more||(this.yytext="",this.match="");for(var u=this._currentRules(),o=0;or[0].length)){if(r=c,d=o,this.options.backtrack_lexer){if(i=this.test_match(c,u[o]),i!==!1)return i;if(this._backtrack){r=!1;continue}else return!1}else if(!this.options.flex)break}return r?(i=this.test_match(r,u[d]),i!==!1?i:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text. +`+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var r=this.next();return r||this.lex()},begin:function(r){this.conditionStack.push(r)},popState:function(){var r=this.conditionStack.length-1;return r>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(r){return r=this.conditionStack.length-1-Math.abs(r||0),r>=0?this.conditionStack[r]:"INITIAL"},pushState:function(r){this.begin(r)},stateStackSize:function(){return this.conditionStack.length},options:{"case-insensitive":!0},performAction:function(r,c,d,u){switch(d){case 0:break;case 1:break;case 2:return 10;case 3:break;case 4:break;case 5:return 4;case 6:return 11;case 7:return this.begin("acc_title"),12;case 8:return this.popState(),"acc_title_value";case 9:return this.begin("acc_descr"),14;case 10:return this.popState(),"acc_descr_value";case 11:this.begin("acc_descr_multiline");break;case 12:this.popState();break;case 13:return"acc_descr_multiline_value";case 14:return 17;case 15:return 21;case 16:return 20;case 17:return 6;case 18:return"INVALID"}},rules:[/^(?:%(?!\{)[^\n]*)/i,/^(?:[^\}]%%[^\n]*)/i,/^(?:[\n]+)/i,/^(?:\s+)/i,/^(?:#[^\n]*)/i,/^(?:timeline\b)/i,/^(?:title\s[^#\n;]+)/i,/^(?:accTitle\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*\{\s*)/i,/^(?:[\}])/i,/^(?:[^\}]*)/i,/^(?:section\s[^#:\n;]+)/i,/^(?::\s[^#:\n;]+)/i,/^(?:[^#:\n;]+)/i,/^(?:$)/i,/^(?:.)/i],conditions:{acc_descr_multiline:{rules:[12,13],inclusive:!1},acc_descr:{rules:[10],inclusive:!1},acc_title:{rules:[8],inclusive:!1},INITIAL:{rules:[0,1,2,3,4,5,6,7,9,11,14,15,16,17,18],inclusive:!0}}};return g}();f.lexer=b;function m(){this.yy={}}return m.prototype=f,f.Parser=m,new m}();K.parser=K;const vt=K;let F="",st=0;const Q=[],q=[],V=[],it=()=>ft,rt=function(){Q.length=0,q.length=0,F="",V.length=0,gt()},at=function(n){F=n,Q.push(n)},lt=function(){return Q},ot=function(){let n=tt();const t=100;let e=0;for(;!n&&ee.id===st-1).events.push(n)},dt=function(n){const t={section:F,type:F,description:n,task:n,classes:[]};q.push(t)},tt=function(){const n=function(e){return V[e].processed};let t=!0;for(const[e,a]of V.entries())n(e),t=t&&a.processed;return t},wt={clear:rt,getCommonDb:it,addSection:at,getSections:lt,getTasks:ot,addTask:ct,addTaskOrg:dt,addEvent:ht},St=Object.freeze(Object.defineProperty({__proto__:null,addEvent:ht,addSection:at,addTask:ct,addTaskOrg:dt,clear:rt,default:wt,getCommonDb:it,getSections:lt,getTasks:ot},Symbol.toStringTag,{value:"Module"})),Et=12,U=function(n,t){const e=n.append("rect");return e.attr("x",t.x),e.attr("y",t.y),e.attr("fill",t.fill),e.attr("stroke",t.stroke),e.attr("width",t.width),e.attr("height",t.height),e.attr("rx",t.rx),e.attr("ry",t.ry),t.class!==void 0&&e.attr("class",t.class),e},Tt=function(n,t){const a=n.append("circle").attr("cx",t.cx).attr("cy",t.cy).attr("class","face").attr("r",15).attr("stroke-width",2).attr("overflow","visible"),s=n.append("g");s.append("circle").attr("cx",t.cx-15/3).attr("cy",t.cy-15/3).attr("r",1.5).attr("stroke-width",2).attr("fill","#666").attr("stroke","#666"),s.append("circle").attr("cx",t.cx+15/3).attr("cy",t.cy-15/3).attr("r",1.5).attr("stroke-width",2).attr("fill","#666").attr("stroke","#666");function h(y){const f=D().startAngle(Math.PI/2).endAngle(3*(Math.PI/2)).innerRadius(7.5).outerRadius(6.8181818181818175);y.append("path").attr("class","mouth").attr("d",f).attr("transform","translate("+t.cx+","+(t.cy+2)+")")}function l(y){const f=D().startAngle(3*Math.PI/2).endAngle(5*(Math.PI/2)).innerRadius(7.5).outerRadius(6.8181818181818175);y.append("path").attr("class","mouth").attr("d",f).attr("transform","translate("+t.cx+","+(t.cy+7)+")")}function p(y){y.append("line").attr("class","mouth").attr("stroke",2).attr("x1",t.cx-5).attr("y1",t.cy+7).attr("x2",t.cx+5).attr("y2",t.cy+7).attr("class","mouth").attr("stroke-width","1px").attr("stroke","#666")}return t.score>3?h(s):t.score<3?l(s):p(s),a},It=function(n,t){const e=n.append("circle");return e.attr("cx",t.cx),e.attr("cy",t.cy),e.attr("class","actor-"+t.pos),e.attr("fill",t.fill),e.attr("stroke",t.stroke),e.attr("r",t.r),e.class!==void 0&&e.attr("class",e.class),t.title!==void 0&&e.append("title").text(t.title),e},ut=function(n,t){const e=t.text.replace(//gi," "),a=n.append("text");a.attr("x",t.x),a.attr("y",t.y),a.attr("class","legend"),a.style("text-anchor",t.anchor),t.class!==void 0&&a.attr("class",t.class);const s=a.append("tspan");return s.attr("x",t.x+t.textMargin*2),s.text(e),a},$t=function(n,t){function e(s,h,l,p,y){return s+","+h+" "+(s+l)+","+h+" "+(s+l)+","+(h+p-y)+" "+(s+l-y*1.2)+","+(h+p)+" "+s+","+(h+p)}const a=n.append("polygon");a.attr("points",e(t.x,t.y,50,20,7)),a.attr("class","labelBox"),t.y=t.y+t.labelMargin,t.x=t.x+.5*t.labelMargin,ut(n,t)},Nt=function(n,t,e){const a=n.append("g"),s=X();s.x=t.x,s.y=t.y,s.fill=t.fill,s.width=e.width,s.height=e.height,s.class="journey-section section-type-"+t.num,s.rx=3,s.ry=3,U(a,s),pt(e)(t.text,a,s.x,s.y,s.width,s.height,{class:"journey-section section-type-"+t.num},e,t.colour)};let et=-1;const Mt=function(n,t,e){const a=t.x+e.width/2,s=n.append("g");et++;const h=300+5*30;s.append("line").attr("id","task"+et).attr("x1",a).attr("y1",t.y).attr("x2",a).attr("y2",h).attr("class","task-line").attr("stroke-width","1px").attr("stroke-dasharray","4 2").attr("stroke","#666"),Tt(s,{cx:a,cy:300+(5-t.score)*30,score:t.score});const l=X();l.x=t.x,l.y=t.y,l.fill=t.fill,l.width=e.width,l.height=e.height,l.class="task task-type-"+t.num,l.rx=3,l.ry=3,U(s,l),t.x+14,pt(e)(t.task,s,l.x,l.y,l.width,l.height,{class:"task"},e,t.colour)},Lt=function(n,t){U(n,{x:t.startx,y:t.starty,width:t.stopx-t.startx,height:t.stopy-t.starty,fill:t.fill,class:"rect"}).lower()},At=function(){return{x:0,y:0,fill:void 0,"text-anchor":"start",width:100,height:100,textMargin:0,rx:0,ry:0}},X=function(){return{x:0,y:0,width:100,anchor:"start",height:100,rx:0,ry:0}},pt=function(){function n(s,h,l,p,y,f,b,m){const g=h.append("text").attr("x",l+y/2).attr("y",p+f/2+5).style("font-color",m).style("text-anchor","middle").text(s);a(g,b)}function t(s,h,l,p,y,f,b,m,g){const{taskFontSize:i,taskFontFamily:r}=m,c=s.split(//gi);for(let d=0;d)/).reverse(),s,h=[],l=1.1,p=e.attr("y"),y=parseFloat(e.attr("dy")),f=e.text(null).append("tspan").attr("x",0).attr("y",p).attr("dy",y+"em");for(let b=0;bt||s==="
    ")&&(h.pop(),f.text(h.join(" ").trim()),s==="
    "?h=[""]:h=[s],f=e.append("tspan").attr("x",0).attr("y",p).attr("dy",l+"em").text(s))})}const Ht=function(n,t,e,a){const s=e%Et-1,h=n.append("g");t.section=s,h.attr("class",(t.class?t.class+" ":"")+"timeline-node "+("section-"+s));const l=h.append("g"),p=h.append("g"),f=p.append("text").text(t.descr).attr("dy","1em").attr("alignment-baseline","middle").attr("dominant-baseline","middle").attr("text-anchor","middle").call(yt,t.width).node().getBBox(),b=a.fontSize&&a.fontSize.replace?a.fontSize.replace("px",""):a.fontSize;return t.height=f.height+b*1.1*.5+t.padding,t.height=Math.max(t.height,t.maxHeight),t.width=t.width+2*t.padding,p.attr("transform","translate("+t.width/2+", "+t.padding/2+")"),zt(l,t,s),t},Ct=function(n,t,e){const a=n.append("g"),h=a.append("text").text(t.descr).attr("dy","1em").attr("alignment-baseline","middle").attr("dominant-baseline","middle").attr("text-anchor","middle").call(yt,t.width).node().getBBox(),l=e.fontSize&&e.fontSize.replace?e.fontSize.replace("px",""):e.fontSize;return a.remove(),h.height+l*1.1*.5+t.padding},zt=function(n,t,e){n.append("path").attr("id","node-"+t.id).attr("class","node-bkg node-"+t.type).attr("d",`M0 ${t.height-5} v${-t.height+2*5} q0,-5 5,-5 h${t.width-2*5} q5,0 5,5 v${t.height-5} H0 Z`),n.append("line").attr("class","node-line-"+e).attr("x1",0).attr("y1",t.height).attr("x2",t.width).attr("y2",t.height)},H={drawRect:U,drawCircle:It,drawSection:Nt,drawText:ut,drawLabel:$t,drawTask:Mt,drawBackgroundRect:Lt,getTextObj:At,getNoteRect:X,initGraphics:Pt,drawNode:Ht,getVirtualNodeHeight:Ct},Rt=function(n,t,e,a){var s,h;const l=mt(),p=l.leftMargin??50;E.debug("timeline",a.db);const y=l.securityLevel;let f;y==="sandbox"&&(f=G("#i"+t));const m=(y==="sandbox"?G(f.nodes()[0].contentDocument.body):G("body")).select("#"+t);m.append("g");const g=a.db.getTasks(),i=a.db.getCommonDb().getDiagramTitle();E.debug("task",g),H.initGraphics(m);const r=a.db.getSections();E.debug("sections",r);let c=0,d=0,u=0,o=0,$=50+p,x=50;o=50;let T=0,W=!0;r.forEach(function(w){const v={number:T,descr:w,section:T,width:150,padding:20,maxHeight:c},I=H.getVirtualNodeHeight(m,v,l);E.debug("sectionHeight before draw",I),c=Math.max(c,I+20)});let C=0,A=0;E.debug("tasks.length",g.length);for(const[w,v]of g.entries()){const I={number:w,descr:v,section:v.section,width:150,padding:20,maxHeight:d},P=H.getVirtualNodeHeight(m,I,l);E.debug("taskHeight before draw",P),d=Math.max(d,P+20),C=Math.max(C,v.events.length);let z=0;for(let _=0;_0?r.forEach(w=>{const v=g.filter(_=>_.section===w),I={number:T,descr:w,section:T,width:200*Math.max(v.length,1)-50,padding:20,maxHeight:c};E.debug("sectionNode",I);const P=m.append("g"),z=H.drawNode(P,I,T,l);E.debug("sectionNode output",z),P.attr("transform",`translate(${$}, ${o})`),x+=c+50,v.length>0&&nt(m,v,T,$,x,d,l,C,A,c,!1),$+=200*Math.max(v.length,1),x=o,T++}):(W=!1,nt(m,g,T,$,x,d,l,C,A,c,!0));const B=m.node().getBBox();E.debug("bounds",B),i&&m.append("text").text(i).attr("x",B.width/2-p).attr("font-size","4ex").attr("font-weight","bold").attr("y",20),u=W?c+d+150:d+100,m.append("g").attr("class","lineWrapper").append("line").attr("x1",p).attr("y1",u).attr("x2",B.width+3*p).attr("y2",u).attr("stroke-width",4).attr("stroke","black").attr("marker-end","url(#arrowhead)"),xt(void 0,m,((s=l.timeline)==null?void 0:s.padding)??50,((h=l.timeline)==null?void 0:h.useMaxWidth)??!1)},nt=function(n,t,e,a,s,h,l,p,y,f,b){var m;for(const g of t){const i={descr:g.task,section:e,number:e,width:150,padding:20,maxHeight:h};E.debug("taskNode",i);const r=n.append("g").attr("class","taskWrapper"),d=H.drawNode(r,i,e,l).height;if(E.debug("taskHeight after draw",d),r.attr("transform",`translate(${a}, ${s})`),h=Math.max(h,d),g.events){const u=n.append("g").attr("class","lineWrapper");let o=h;s+=100,o=o+Ft(n,g.events,e,a,s,l),s-=100,u.append("line").attr("x1",a+190/2).attr("y1",s+h).attr("x2",a+190/2).attr("y2",s+h+(b?h:f)+y+120).attr("stroke-width",2).attr("stroke","black").attr("marker-end","url(#arrowhead)").attr("stroke-dasharray","5,5")}a=a+200,b&&!((m=l.timeline)!=null&&m.disableMulticolor)&&e++}s=s-10},Ft=function(n,t,e,a,s,h){let l=0;const p=s;s=s+100;for(const y of t){const f={descr:y,section:e,number:e,width:150,padding:20,maxHeight:50};E.debug("eventNode",f);const b=n.append("g").attr("class","eventWrapper"),g=H.drawNode(b,f,e,h).height;l=l+g,b.attr("transform",`translate(${a}, ${s})`),s=s+10+g}return s=p,l},Vt={setConf:()=>{},draw:Rt},Wt=n=>{let t="";for(let e=0;e` + .edge { + stroke-width: 3; + } + ${Wt(n)} + .section-root rect, .section-root path, .section-root circle { + fill: ${n.git0}; + } + .section-root text { + fill: ${n.gitBranchLabel0}; + } + .icon-container { + height:100%; + display: flex; + justify-content: center; + align-items: center; + } + .edge { + fill: none; + } + .eventWrapper { + filter: brightness(120%); + } +`,Ot=Bt,Zt={db:St,renderer:Vt,parser:vt,styles:Ot};export{Zt as diagram}; diff --git a/assets/xychartDiagram-e933f94c-DcDvCfus.js b/assets/xychartDiagram-e933f94c-DcDvCfus.js new file mode 100644 index 00000000..4017dca4 --- /dev/null +++ b/assets/xychartDiagram-e933f94c-DcDvCfus.js @@ -0,0 +1,7 @@ +import{aY as zt,aZ as ot,aK as wt,aJ as Ft,s as Nt,g as Xt,x as Yt,y as St,a as Ht,b as $t,A as Ut,l as Ct,aH as qt,i as jt,d as Gt}from"./mermaid.core-B_tqKmhs.js";import{a as Qt}from"./createText-2e5e7dd3-CtNqJc9Q.js";import{i as Kt}from"./init-Gi6I4Gst.js";import{o as Zt}from"./ordinal-Cboi1Yqb.js";import{l as ft}from"./linear-Du8N0-WX.js";import{l as pt}from"./line-CC-POSaO.js";import"./index-Be9IN4QR.js";import"./array-BKyUJesY.js";import"./path-CbwjOpE9.js";function Jt(e,t,i){e=+e,t=+t,i=(n=arguments.length)<2?(t=e,e=0,1):n<3?1:+i;for(var s=-1,n=Math.max(0,Math.ceil((t-e)/i))|0,o=new Array(n);++s"u"&&(k.yylloc={});var tt=k.yylloc;a.push(tt);var Wt=k.options&&k.options.ranges;typeof B.yy.parseError=="function"?this.parseError=B.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function Ot(){var I;return I=g.pop()||k.lex()||xt,typeof I!="number"&&(I instanceof Array&&(g=I,I=g.pop()),I=l.symbols_[I]||I),I}for(var D,W,v,it,O={},q,M,dt,j;;){if(W=u[u.length-1],this.defaultActions[W]?v=this.defaultActions[W]:((D===null||typeof D>"u")&&(D=Ot()),v=F[W]&&F[W][D]),typeof v>"u"||!v.length||!v[0]){var et="";j=[];for(q in F[W])this.terminals_[q]&&q>Vt&&j.push("'"+this.terminals_[q]+"'");k.showPosition?et="Parse error on line "+(U+1)+`: +`+k.showPosition()+` +Expecting `+j.join(", ")+", got '"+(this.terminals_[D]||D)+"'":et="Parse error on line "+(U+1)+": Unexpected "+(D==xt?"end of input":"'"+(this.terminals_[D]||D)+"'"),this.parseError(et,{text:k.match,token:this.terminals_[D]||D,line:k.yylineno,loc:tt,expected:j})}if(v[0]instanceof Array&&v.length>1)throw new Error("Parse Error: multiple actions possible at state: "+W+", token: "+D);switch(v[0]){case 1:u.push(D),b.push(k.yytext),a.push(k.yylloc),u.push(v[1]),D=null,gt=k.yyleng,x=k.yytext,U=k.yylineno,tt=k.yylloc;break;case 2:if(M=this.productions_[v[1]][1],O.$=b[b.length-M],O._$={first_line:a[a.length-(M||1)].first_line,last_line:a[a.length-1].last_line,first_column:a[a.length-(M||1)].first_column,last_column:a[a.length-1].last_column},Wt&&(O._$.range=[a[a.length-(M||1)].range[0],a[a.length-1].range[1]]),it=this.performAction.apply(O,[x,gt,U,B.yy,v[1],b,a].concat(Bt)),typeof it<"u")return it;M&&(u=u.slice(0,-1*M*2),b=b.slice(0,-1*M),a=a.slice(0,-1*M)),u.push(this.productions_[v[1]][0]),b.push(O.$),a.push(O._$),dt=F[u[u.length-2]][u[u.length-1]],u.push(dt);break;case 3:return!0}}return!0}},It=function(){var V={EOF:1,parseError:function(l,u){if(this.yy.parser)this.yy.parser.parseError(l,u);else throw new Error(l)},setInput:function(r,l){return this.yy=l||this.yy||{},this._input=r,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var r=this._input[0];this.yytext+=r,this.yyleng++,this.offset++,this.match+=r,this.matched+=r;var l=r.match(/(?:\r\n?|\n).*/g);return l?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),r},unput:function(r){var l=r.length,u=r.split(/(?:\r\n?|\n)/g);this._input=r+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-l),this.offset-=l;var g=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),u.length-1&&(this.yylineno-=u.length-1);var b=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:u?(u.length===g.length?this.yylloc.first_column:0)+g[g.length-u.length].length-u[0].length:this.yylloc.first_column-l},this.options.ranges&&(this.yylloc.range=[b[0],b[0]+this.yyleng-l]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true). +`+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},less:function(r){this.unput(this.match.slice(r))},pastInput:function(){var r=this.matched.substr(0,this.matched.length-this.match.length);return(r.length>20?"...":"")+r.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var r=this.match;return r.length<20&&(r+=this._input.substr(0,20-r.length)),(r.substr(0,20)+(r.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var r=this.pastInput(),l=new Array(r.length+1).join("-");return r+this.upcomingInput()+` +`+l+"^"},test_match:function(r,l){var u,g,b;if(this.options.backtrack_lexer&&(b={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(b.yylloc.range=this.yylloc.range.slice(0))),g=r[0].match(/(?:\r\n?|\n).*/g),g&&(this.yylineno+=g.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:g?g[g.length-1].length-g[g.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+r[0].length},this.yytext+=r[0],this.match+=r[0],this.matches=r,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(r[0].length),this.matched+=r[0],u=this.performAction.call(this,this.yy,this,l,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),u)return u;if(this._backtrack){for(var a in b)this[a]=b[a];return!1}return!1},next:function(){if(this.done)return this.EOF;this._input||(this.done=!0);var r,l,u,g;this._more||(this.yytext="",this.match="");for(var b=this._currentRules(),a=0;al[0].length)){if(l=u,g=a,this.options.backtrack_lexer){if(r=this.test_match(u,b[a]),r!==!1)return r;if(this._backtrack){l=!1;continue}else return!1}else if(!this.options.flex)break}return l?(r=this.test_match(l,b[g]),r!==!1?r:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text. +`+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var l=this.next();return l||this.lex()},begin:function(l){this.conditionStack.push(l)},popState:function(){var l=this.conditionStack.length-1;return l>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(l){return l=this.conditionStack.length-1-Math.abs(l||0),l>=0?this.conditionStack[l]:"INITIAL"},pushState:function(l){this.begin(l)},stateStackSize:function(){return this.conditionStack.length},options:{"case-insensitive":!0},performAction:function(l,u,g,b){switch(g){case 0:break;case 1:break;case 2:return this.popState(),34;case 3:return this.popState(),34;case 4:return 34;case 5:break;case 6:return 10;case 7:return this.pushState("acc_title"),19;case 8:return this.popState(),"acc_title_value";case 9:return this.pushState("acc_descr"),21;case 10:return this.popState(),"acc_descr_value";case 11:this.pushState("acc_descr_multiline");break;case 12:this.popState();break;case 13:return"acc_descr_multiline_value";case 14:return 5;case 15:return 8;case 16:return this.pushState("axis_data"),"X_AXIS";case 17:return this.pushState("axis_data"),"Y_AXIS";case 18:return this.pushState("axis_band_data"),24;case 19:return 31;case 20:return this.pushState("data"),16;case 21:return this.pushState("data"),18;case 22:return this.pushState("data_inner"),24;case 23:return 27;case 24:return this.popState(),26;case 25:this.popState();break;case 26:this.pushState("string");break;case 27:this.popState();break;case 28:return"STR";case 29:return 24;case 30:return 26;case 31:return 43;case 32:return"COLON";case 33:return 44;case 34:return 28;case 35:return 45;case 36:return 46;case 37:return 48;case 38:return 50;case 39:return 47;case 40:return 41;case 41:return 49;case 42:return 42;case 43:break;case 44:return 35;case 45:return 36}},rules:[/^(?:%%(?!\{)[^\n]*)/i,/^(?:[^\}]%%[^\n]*)/i,/^(?:(\r?\n))/i,/^(?:(\r?\n))/i,/^(?:[\n\r]+)/i,/^(?:%%[^\n]*)/i,/^(?:title\b)/i,/^(?:accTitle\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*\{\s*)/i,/^(?:\{)/i,/^(?:[^\}]*)/i,/^(?:xychart-beta\b)/i,/^(?:(?:vertical|horizontal))/i,/^(?:x-axis\b)/i,/^(?:y-axis\b)/i,/^(?:\[)/i,/^(?:-->)/i,/^(?:line\b)/i,/^(?:bar\b)/i,/^(?:\[)/i,/^(?:[+-]?(?:\d+(?:\.\d+)?|\.\d+))/i,/^(?:\])/i,/^(?:(?:`\) \{ this\.pushState\(md_string\); \}\n\(\?:\(\?!`"\)\.\)\+ \{ return MD_STR; \}\n\(\?:`))/i,/^(?:["])/i,/^(?:["])/i,/^(?:[^"]*)/i,/^(?:\[)/i,/^(?:\])/i,/^(?:[A-Za-z]+)/i,/^(?::)/i,/^(?:\+)/i,/^(?:,)/i,/^(?:=)/i,/^(?:\*)/i,/^(?:#)/i,/^(?:[\_])/i,/^(?:\.)/i,/^(?:&)/i,/^(?:-)/i,/^(?:[0-9]+)/i,/^(?:\s+)/i,/^(?:;)/i,/^(?:$)/i],conditions:{data_inner:{rules:[0,1,4,5,6,7,9,11,14,15,16,17,20,21,23,24,25,26,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45],inclusive:!0},data:{rules:[0,1,3,4,5,6,7,9,11,14,15,16,17,20,21,22,25,26,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45],inclusive:!0},axis_band_data:{rules:[0,1,4,5,6,7,9,11,14,15,16,17,20,21,24,25,26,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45],inclusive:!0},axis_data:{rules:[0,1,2,4,5,6,7,9,11,14,15,16,17,18,19,20,21,23,25,26,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45],inclusive:!0},acc_descr_multiline:{rules:[12,13],inclusive:!1},acc_descr:{rules:[10],inclusive:!1},acc_title:{rules:[8],inclusive:!1},title:{rules:[],inclusive:!1},md_string:{rules:[],inclusive:!1},string:{rules:[27,28],inclusive:!1},INITIAL:{rules:[0,1,4,5,6,7,9,11,14,15,16,17,20,21,25,26,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45],inclusive:!0}}};return V}();K.lexer=It;function Z(){this.yy={}}return Z.prototype=K,K.Parser=Z,new Z}();nt.parser=nt;const ti=nt;function mt(e){return e.type==="bar"}function _t(e){return e.type==="band"}function N(e){return e.type==="linear"}class kt{constructor(t){this.parentGroup=t}getMaxDimension(t,i){if(!this.parentGroup)return{width:t.reduce((o,c)=>Math.max(c.length,o),0)*i,height:i};const s={width:0,height:0},n=this.parentGroup.append("g").attr("visibility","hidden").attr("font-size",i);for(const o of t){const c=Qt(n,1,o),f=c?c.width:o.length*i,d=c?c.height:i;s.width=Math.max(s.width,f),s.height=Math.max(s.height,d)}return n.remove(),s}}const yt=.7,bt=.2;class Rt{constructor(t,i,s,n){this.axisConfig=t,this.title=i,this.textDimensionCalculator=s,this.axisThemeConfig=n,this.boundingRect={x:0,y:0,width:0,height:0},this.axisPosition="left",this.showTitle=!1,this.showLabel=!1,this.showTick=!1,this.showAxisLine=!1,this.outerPadding=0,this.titleTextHeight=0,this.labelTextHeight=0,this.range=[0,10],this.boundingRect={x:0,y:0,width:0,height:0},this.axisPosition="left"}setRange(t){this.range=t,this.axisPosition==="left"||this.axisPosition==="right"?this.boundingRect.height=t[1]-t[0]:this.boundingRect.width=t[1]-t[0],this.recalculateScale()}getRange(){return[this.range[0]+this.outerPadding,this.range[1]-this.outerPadding]}setAxisPosition(t){this.axisPosition=t,this.setRange(this.range)}getTickDistance(){const t=this.getRange();return Math.abs(t[0]-t[1])/this.getTickValues().length}getAxisOuterPadding(){return this.outerPadding}getLabelDimension(){return this.textDimensionCalculator.getMaxDimension(this.getTickValues().map(t=>t.toString()),this.axisConfig.labelFontSize)}recalculateOuterPaddingToDrawBar(){yt*this.getTickDistance()>this.outerPadding*2&&(this.outerPadding=Math.floor(yt*this.getTickDistance()/2)),this.recalculateScale()}calculateSpaceIfDrawnHorizontally(t){let i=t.height;if(this.axisConfig.showAxisLine&&i>this.axisConfig.axisLineWidth&&(i-=this.axisConfig.axisLineWidth,this.showAxisLine=!0),this.axisConfig.showLabel){const s=this.getLabelDimension(),n=bt*t.width;this.outerPadding=Math.min(s.width/2,n);const o=s.height+this.axisConfig.labelPadding*2;this.labelTextHeight=s.height,o<=i&&(i-=o,this.showLabel=!0)}if(this.axisConfig.showTick&&i>=this.axisConfig.tickLength&&(this.showTick=!0,i-=this.axisConfig.tickLength),this.axisConfig.showTitle&&this.title){const s=this.textDimensionCalculator.getMaxDimension([this.title],this.axisConfig.titleFontSize),n=s.height+this.axisConfig.titlePadding*2;this.titleTextHeight=s.height,n<=i&&(i-=n,this.showTitle=!0)}this.boundingRect.width=t.width,this.boundingRect.height=t.height-i}calculateSpaceIfDrawnVertical(t){let i=t.width;if(this.axisConfig.showAxisLine&&i>this.axisConfig.axisLineWidth&&(i-=this.axisConfig.axisLineWidth,this.showAxisLine=!0),this.axisConfig.showLabel){const s=this.getLabelDimension(),n=bt*t.height;this.outerPadding=Math.min(s.height/2,n);const o=s.width+this.axisConfig.labelPadding*2;o<=i&&(i-=o,this.showLabel=!0)}if(this.axisConfig.showTick&&i>=this.axisConfig.tickLength&&(this.showTick=!0,i-=this.axisConfig.tickLength),this.axisConfig.showTitle&&this.title){const s=this.textDimensionCalculator.getMaxDimension([this.title],this.axisConfig.titleFontSize),n=s.height+this.axisConfig.titlePadding*2;this.titleTextHeight=s.height,n<=i&&(i-=n,this.showTitle=!0)}this.boundingRect.width=t.width-i,this.boundingRect.height=t.height}calculateSpace(t){return this.axisPosition==="left"||this.axisPosition==="right"?this.calculateSpaceIfDrawnVertical(t):this.calculateSpaceIfDrawnHorizontally(t),this.recalculateScale(),{width:this.boundingRect.width,height:this.boundingRect.height}}setBoundingBoxXY(t){this.boundingRect.x=t.x,this.boundingRect.y=t.y}getDrawableElementsForLeftAxis(){const t=[];if(this.showAxisLine){const i=this.boundingRect.x+this.boundingRect.width-this.axisConfig.axisLineWidth/2;t.push({type:"path",groupTexts:["left-axis","axisl-line"],data:[{path:`M ${i},${this.boundingRect.y} L ${i},${this.boundingRect.y+this.boundingRect.height} `,strokeFill:this.axisThemeConfig.axisLineColor,strokeWidth:this.axisConfig.axisLineWidth}]})}if(this.showLabel&&t.push({type:"text",groupTexts:["left-axis","label"],data:this.getTickValues().map(i=>({text:i.toString(),x:this.boundingRect.x+this.boundingRect.width-(this.showLabel?this.axisConfig.labelPadding:0)-(this.showTick?this.axisConfig.tickLength:0)-(this.showAxisLine?this.axisConfig.axisLineWidth:0),y:this.getScaleValue(i),fill:this.axisThemeConfig.labelColor,fontSize:this.axisConfig.labelFontSize,rotation:0,verticalPos:"middle",horizontalPos:"right"}))}),this.showTick){const i=this.boundingRect.x+this.boundingRect.width-(this.showAxisLine?this.axisConfig.axisLineWidth:0);t.push({type:"path",groupTexts:["left-axis","ticks"],data:this.getTickValues().map(s=>({path:`M ${i},${this.getScaleValue(s)} L ${i-this.axisConfig.tickLength},${this.getScaleValue(s)}`,strokeFill:this.axisThemeConfig.tickColor,strokeWidth:this.axisConfig.tickWidth}))})}return this.showTitle&&t.push({type:"text",groupTexts:["left-axis","title"],data:[{text:this.title,x:this.boundingRect.x+this.axisConfig.titlePadding,y:this.boundingRect.y+this.boundingRect.height/2,fill:this.axisThemeConfig.titleColor,fontSize:this.axisConfig.titleFontSize,rotation:270,verticalPos:"top",horizontalPos:"center"}]}),t}getDrawableElementsForBottomAxis(){const t=[];if(this.showAxisLine){const i=this.boundingRect.y+this.axisConfig.axisLineWidth/2;t.push({type:"path",groupTexts:["bottom-axis","axis-line"],data:[{path:`M ${this.boundingRect.x},${i} L ${this.boundingRect.x+this.boundingRect.width},${i}`,strokeFill:this.axisThemeConfig.axisLineColor,strokeWidth:this.axisConfig.axisLineWidth}]})}if(this.showLabel&&t.push({type:"text",groupTexts:["bottom-axis","label"],data:this.getTickValues().map(i=>({text:i.toString(),x:this.getScaleValue(i),y:this.boundingRect.y+this.axisConfig.labelPadding+(this.showTick?this.axisConfig.tickLength:0)+(this.showAxisLine?this.axisConfig.axisLineWidth:0),fill:this.axisThemeConfig.labelColor,fontSize:this.axisConfig.labelFontSize,rotation:0,verticalPos:"top",horizontalPos:"center"}))}),this.showTick){const i=this.boundingRect.y+(this.showAxisLine?this.axisConfig.axisLineWidth:0);t.push({type:"path",groupTexts:["bottom-axis","ticks"],data:this.getTickValues().map(s=>({path:`M ${this.getScaleValue(s)},${i} L ${this.getScaleValue(s)},${i+this.axisConfig.tickLength}`,strokeFill:this.axisThemeConfig.tickColor,strokeWidth:this.axisConfig.tickWidth}))})}return this.showTitle&&t.push({type:"text",groupTexts:["bottom-axis","title"],data:[{text:this.title,x:this.range[0]+(this.range[1]-this.range[0])/2,y:this.boundingRect.y+this.boundingRect.height-this.axisConfig.titlePadding-this.titleTextHeight,fill:this.axisThemeConfig.titleColor,fontSize:this.axisConfig.titleFontSize,rotation:0,verticalPos:"top",horizontalPos:"center"}]}),t}getDrawableElementsForTopAxis(){const t=[];if(this.showAxisLine){const i=this.boundingRect.y+this.boundingRect.height-this.axisConfig.axisLineWidth/2;t.push({type:"path",groupTexts:["top-axis","axis-line"],data:[{path:`M ${this.boundingRect.x},${i} L ${this.boundingRect.x+this.boundingRect.width},${i}`,strokeFill:this.axisThemeConfig.axisLineColor,strokeWidth:this.axisConfig.axisLineWidth}]})}if(this.showLabel&&t.push({type:"text",groupTexts:["top-axis","label"],data:this.getTickValues().map(i=>({text:i.toString(),x:this.getScaleValue(i),y:this.boundingRect.y+(this.showTitle?this.titleTextHeight+this.axisConfig.titlePadding*2:0)+this.axisConfig.labelPadding,fill:this.axisThemeConfig.labelColor,fontSize:this.axisConfig.labelFontSize,rotation:0,verticalPos:"top",horizontalPos:"center"}))}),this.showTick){const i=this.boundingRect.y;t.push({type:"path",groupTexts:["top-axis","ticks"],data:this.getTickValues().map(s=>({path:`M ${this.getScaleValue(s)},${i+this.boundingRect.height-(this.showAxisLine?this.axisConfig.axisLineWidth:0)} L ${this.getScaleValue(s)},${i+this.boundingRect.height-this.axisConfig.tickLength-(this.showAxisLine?this.axisConfig.axisLineWidth:0)}`,strokeFill:this.axisThemeConfig.tickColor,strokeWidth:this.axisConfig.tickWidth}))})}return this.showTitle&&t.push({type:"text",groupTexts:["top-axis","title"],data:[{text:this.title,x:this.boundingRect.x+this.boundingRect.width/2,y:this.boundingRect.y+this.axisConfig.titlePadding,fill:this.axisThemeConfig.titleColor,fontSize:this.axisConfig.titleFontSize,rotation:0,verticalPos:"top",horizontalPos:"center"}]}),t}getDrawableElements(){if(this.axisPosition==="left")return this.getDrawableElementsForLeftAxis();if(this.axisPosition==="right")throw Error("Drawing of right axis is not implemented");return this.axisPosition==="bottom"?this.getDrawableElementsForBottomAxis():this.axisPosition==="top"?this.getDrawableElementsForTopAxis():[]}}class ii extends Rt{constructor(t,i,s,n,o){super(t,n,o,i),this.categories=s,this.scale=st().domain(this.categories).range(this.getRange())}setRange(t){super.setRange(t)}recalculateScale(){this.scale=st().domain(this.categories).range(this.getRange()).paddingInner(1).paddingOuter(0).align(.5),Ct.trace("BandAxis axis final categories, range: ",this.categories,this.getRange())}getTickValues(){return this.categories}getScaleValue(t){return this.scale(t)||this.getRange()[0]}}class ei extends Rt{constructor(t,i,s,n,o){super(t,n,o,i),this.domain=s,this.scale=ft().domain(this.domain).range(this.getRange())}getTickValues(){return this.scale.ticks()}recalculateScale(){const t=[...this.domain];this.axisPosition==="left"&&t.reverse(),this.scale=ft().domain(t).range(this.getRange())}getScaleValue(t){return this.scale(t)}}function At(e,t,i,s){const n=new kt(s);return _t(e)?new ii(t,i,e.categories,e.title,n):new ei(t,i,[e.min,e.max],e.title,n)}class si{constructor(t,i,s,n){this.textDimensionCalculator=t,this.chartConfig=i,this.chartData=s,this.chartThemeConfig=n,this.boundingRect={x:0,y:0,width:0,height:0},this.showChartTitle=!1}setBoundingBoxXY(t){this.boundingRect.x=t.x,this.boundingRect.y=t.y}calculateSpace(t){const i=this.textDimensionCalculator.getMaxDimension([this.chartData.title],this.chartConfig.titleFontSize),s=Math.max(i.width,t.width),n=i.height+2*this.chartConfig.titlePadding;return i.width<=s&&i.height<=n&&this.chartConfig.showTitle&&this.chartData.title&&(this.boundingRect.width=s,this.boundingRect.height=n,this.showChartTitle=!0),{width:this.boundingRect.width,height:this.boundingRect.height}}getDrawableElements(){const t=[];return this.showChartTitle&&t.push({groupTexts:["chart-title"],type:"text",data:[{fontSize:this.chartConfig.titleFontSize,text:this.chartData.title,verticalPos:"middle",horizontalPos:"center",x:this.boundingRect.x+this.boundingRect.width/2,y:this.boundingRect.y+this.boundingRect.height/2,fill:this.chartThemeConfig.titleColor,rotation:0}]}),t}}function ni(e,t,i,s){const n=new kt(s);return new si(n,e,t,i)}class ai{constructor(t,i,s,n,o){this.plotData=t,this.xAxis=i,this.yAxis=s,this.orientation=n,this.plotIndex=o}getDrawableElement(){const t=this.plotData.data.map(s=>[this.xAxis.getScaleValue(s[0]),this.yAxis.getScaleValue(s[1])]);let i;return this.orientation==="horizontal"?i=pt().y(s=>s[0]).x(s=>s[1])(t):i=pt().x(s=>s[0]).y(s=>s[1])(t),i?[{groupTexts:["plot",`line-plot-${this.plotIndex}`],type:"path",data:[{path:i,strokeFill:this.plotData.strokeFill,strokeWidth:this.plotData.strokeWidth}]}]:[]}}class oi{constructor(t,i,s,n,o,c){this.barData=t,this.boundingRect=i,this.xAxis=s,this.yAxis=n,this.orientation=o,this.plotIndex=c}getDrawableElement(){const t=this.barData.data.map(o=>[this.xAxis.getScaleValue(o[0]),this.yAxis.getScaleValue(o[1])]),s=Math.min(this.xAxis.getAxisOuterPadding()*2,this.xAxis.getTickDistance())*(1-.05),n=s/2;return this.orientation==="horizontal"?[{groupTexts:["plot",`bar-plot-${this.plotIndex}`],type:"rect",data:t.map(o=>({x:this.boundingRect.x,y:o[0]-n,height:s,width:o[1]-this.boundingRect.x,fill:this.barData.fill,strokeWidth:0,strokeFill:this.barData.fill}))}]:[{groupTexts:["plot",`bar-plot-${this.plotIndex}`],type:"rect",data:t.map(o=>({x:o[0]-n,y:o[1],width:s,height:this.boundingRect.y+this.boundingRect.height-o[1],fill:this.barData.fill,strokeWidth:0,strokeFill:this.barData.fill}))}]}}class ri{constructor(t,i,s){this.chartConfig=t,this.chartData=i,this.chartThemeConfig=s,this.boundingRect={x:0,y:0,width:0,height:0}}setAxes(t,i){this.xAxis=t,this.yAxis=i}setBoundingBoxXY(t){this.boundingRect.x=t.x,this.boundingRect.y=t.y}calculateSpace(t){return this.boundingRect.width=t.width,this.boundingRect.height=t.height,{width:this.boundingRect.width,height:this.boundingRect.height}}getDrawableElements(){if(!(this.xAxis&&this.yAxis))throw Error("Axes must be passed to render Plots");const t=[];for(const[i,s]of this.chartData.plots.entries())switch(s.type){case"line":{const n=new ai(s,this.xAxis,this.yAxis,this.chartConfig.chartOrientation,i);t.push(...n.getDrawableElement())}break;case"bar":{const n=new oi(s,this.boundingRect,this.xAxis,this.yAxis,this.chartConfig.chartOrientation,i);t.push(...n.getDrawableElement())}break}return t}}function hi(e,t,i){return new ri(e,t,i)}class li{constructor(t,i,s,n){this.chartConfig=t,this.chartData=i,this.componentStore={title:ni(t,i,s,n),plot:hi(t,i,s),xAxis:At(i.xAxis,t.xAxis,{titleColor:s.xAxisTitleColor,labelColor:s.xAxisLabelColor,tickColor:s.xAxisTickColor,axisLineColor:s.xAxisLineColor},n),yAxis:At(i.yAxis,t.yAxis,{titleColor:s.yAxisTitleColor,labelColor:s.yAxisLabelColor,tickColor:s.yAxisTickColor,axisLineColor:s.yAxisLineColor},n)}}calculateVerticalSpace(){let t=this.chartConfig.width,i=this.chartConfig.height,s=0,n=0,o=Math.floor(t*this.chartConfig.plotReservedSpacePercent/100),c=Math.floor(i*this.chartConfig.plotReservedSpacePercent/100),f=this.componentStore.plot.calculateSpace({width:o,height:c});t-=f.width,i-=f.height,f=this.componentStore.title.calculateSpace({width:this.chartConfig.width,height:i}),n=f.height,i-=f.height,this.componentStore.xAxis.setAxisPosition("bottom"),f=this.componentStore.xAxis.calculateSpace({width:t,height:i}),i-=f.height,this.componentStore.yAxis.setAxisPosition("left"),f=this.componentStore.yAxis.calculateSpace({width:t,height:i}),s=f.width,t-=f.width,t>0&&(o+=t,t=0),i>0&&(c+=i,i=0),this.componentStore.plot.calculateSpace({width:o,height:c}),this.componentStore.plot.setBoundingBoxXY({x:s,y:n}),this.componentStore.xAxis.setRange([s,s+o]),this.componentStore.xAxis.setBoundingBoxXY({x:s,y:n+c}),this.componentStore.yAxis.setRange([n,n+c]),this.componentStore.yAxis.setBoundingBoxXY({x:0,y:n}),this.chartData.plots.some(d=>mt(d))&&this.componentStore.xAxis.recalculateOuterPaddingToDrawBar()}calculateHorizontalSpace(){let t=this.chartConfig.width,i=this.chartConfig.height,s=0,n=0,o=0,c=Math.floor(t*this.chartConfig.plotReservedSpacePercent/100),f=Math.floor(i*this.chartConfig.plotReservedSpacePercent/100),d=this.componentStore.plot.calculateSpace({width:c,height:f});t-=d.width,i-=d.height,d=this.componentStore.title.calculateSpace({width:this.chartConfig.width,height:i}),s=d.height,i-=d.height,this.componentStore.xAxis.setAxisPosition("left"),d=this.componentStore.xAxis.calculateSpace({width:t,height:i}),t-=d.width,n=d.width,this.componentStore.yAxis.setAxisPosition("top"),d=this.componentStore.yAxis.calculateSpace({width:t,height:i}),i-=d.height,o=s+d.height,t>0&&(c+=t,t=0),i>0&&(f+=i,i=0),this.componentStore.plot.calculateSpace({width:c,height:f}),this.componentStore.plot.setBoundingBoxXY({x:n,y:o}),this.componentStore.yAxis.setRange([n,n+c]),this.componentStore.yAxis.setBoundingBoxXY({x:n,y:s}),this.componentStore.xAxis.setRange([o,o+f]),this.componentStore.xAxis.setBoundingBoxXY({x:0,y:o}),this.chartData.plots.some(R=>mt(R))&&this.componentStore.xAxis.recalculateOuterPaddingToDrawBar()}calculateSpace(){this.chartConfig.chartOrientation==="horizontal"?this.calculateHorizontalSpace():this.calculateVerticalSpace()}getDrawableElement(){this.calculateSpace();const t=[];this.componentStore.plot.setAxes(this.componentStore.xAxis,this.componentStore.yAxis);for(const i of Object.values(this.componentStore))t.push(...i.getDrawableElements());return t}}class ci{static build(t,i,s,n){return new li(t,i,s,n).getDrawableElement()}}let X=0,Tt,Y=Pt(),H=Dt(),y=Lt(),at=H.plotColorPalette.split(",").map(e=>e.trim()),G=!1,rt=!1;function Dt(){const e=zt(),t=ot();return wt(e.xyChart,t.themeVariables.xyChart)}function Pt(){const e=ot();return wt(Ft.xyChart,e.xyChart)}function Lt(){return{yAxis:{type:"linear",title:"",min:1/0,max:-1/0},xAxis:{type:"band",title:"",categories:[]},title:"",plots:[]}}function ht(e){const t=ot();return Gt(e.trim(),t)}function ui(e){Tt=e}function gi(e){e==="horizontal"?Y.chartOrientation="horizontal":Y.chartOrientation="vertical"}function xi(e){y.xAxis.title=ht(e.text)}function Et(e,t){y.xAxis={type:"linear",title:y.xAxis.title,min:e,max:t},G=!0}function di(e){y.xAxis={type:"band",title:y.xAxis.title,categories:e.map(t=>ht(t.text))},G=!0}function fi(e){y.yAxis.title=ht(e.text)}function pi(e,t){y.yAxis={type:"linear",title:y.yAxis.title,min:e,max:t},rt=!0}function mi(e){const t=Math.min(...e),i=Math.max(...e),s=N(y.yAxis)?y.yAxis.min:1/0,n=N(y.yAxis)?y.yAxis.max:-1/0;y.yAxis={type:"linear",title:y.yAxis.title,min:Math.min(s,t),max:Math.max(n,i)}}function vt(e){let t=[];if(e.length===0)return t;if(!G){const i=N(y.xAxis)?y.xAxis.min:1/0,s=N(y.xAxis)?y.xAxis.max:-1/0;Et(Math.min(i,1),Math.max(s,e.length))}if(rt||mi(e),_t(y.xAxis)&&(t=y.xAxis.categories.map((i,s)=>[i,e[s]])),N(y.xAxis)){const i=y.xAxis.min,s=y.xAxis.max,n=(s-i+1)/e.length,o=[];for(let c=i;c<=s;c+=n)o.push(`${c}`);t=o.map((c,f)=>[c,e[f]])}return t}function Mt(e){return at[e===0?0:e%at.length]}function yi(e,t){const i=vt(t);y.plots.push({type:"line",strokeFill:Mt(X),strokeWidth:2,data:i}),X++}function bi(e,t){const i=vt(t);y.plots.push({type:"bar",fill:Mt(X),data:i}),X++}function Ai(){if(y.plots.length===0)throw Error("No Plot to render, please provide a plot with some data");return y.title=St(),ci.build(Y,y,H,Tt)}function wi(){return H}function Si(){return Y}const Ci=function(){Ut(),X=0,Y=Pt(),y=Lt(),H=Dt(),at=H.plotColorPalette.split(",").map(e=>e.trim()),G=!1,rt=!1},_i={getDrawableElem:Ai,clear:Ci,setAccTitle:Nt,getAccTitle:Xt,setDiagramTitle:Yt,getDiagramTitle:St,getAccDescription:Ht,setAccDescription:$t,setOrientation:gi,setXAxisTitle:xi,setXAxisRangeData:Et,setXAxisBand:di,setYAxisTitle:fi,setYAxisRangeData:pi,setLineData:yi,setBarData:bi,setTmpSVGG:ui,getChartThemeConfig:wi,getChartConfig:Si},ki=(e,t,i,s)=>{const n=s.db,o=n.getChartThemeConfig(),c=n.getChartConfig();function f(p){return p==="top"?"text-before-edge":"middle"}function d(p){return p==="left"?"start":p==="right"?"end":"middle"}function R(p){return`translate(${p.x}, ${p.y}) rotate(${p.rotation||0})`}Ct.debug(`Rendering xychart chart +`+e);const _=qt(t),A=_.append("g").attr("class","main"),m=A.append("rect").attr("width",c.width).attr("height",c.height).attr("class","background");jt(_,c.height,c.width,!0),_.attr("viewBox",`0 0 ${c.width} ${c.height}`),m.attr("fill",o.backgroundColor),n.setTmpSVGG(_.append("g").attr("class","mermaid-tmp-group"));const T=n.getDrawableElem(),S={};function P(p){let C=A,h="";for(const[L]of p.entries()){let z=A;L>0&&S[h]&&(z=S[h]),h+=p[L],C=S[h],C||(C=S[h]=z.append("g").attr("class",p[L]))}return C}for(const p of T){if(p.data.length===0)continue;const C=P(p.groupTexts);switch(p.type){case"rect":C.selectAll("rect").data(p.data).enter().append("rect").attr("x",h=>h.x).attr("y",h=>h.y).attr("width",h=>h.width).attr("height",h=>h.height).attr("fill",h=>h.fill).attr("stroke",h=>h.strokeFill).attr("stroke-width",h=>h.strokeWidth);break;case"text":C.selectAll("text").data(p.data).enter().append("text").attr("x",0).attr("y",0).attr("fill",h=>h.fill).attr("font-size",h=>h.fontSize).attr("dominant-baseline",h=>f(h.verticalPos)).attr("text-anchor",h=>d(h.horizontalPos)).attr("transform",h=>R(h)).text(h=>h.text);break;case"path":C.selectAll("path").data(p.data).enter().append("path").attr("d",h=>h.path).attr("fill",h=>h.fill?h.fill:"none").attr("stroke",h=>h.strokeFill).attr("stroke-width",h=>h.strokeWidth);break}}},Ri={draw:ki},Bi={parser:ti,db:_i,renderer:Ri};export{Bi as diagram}; diff --git a/blog/2019-07-progressive-web-app/index.html b/blog/2019-07-progressive-web-app/index.html new file mode 100644 index 00000000..39212d52 --- /dev/null +++ b/blog/2019-07-progressive-web-app/index.html @@ -0,0 +1,799 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + k9n.dev | Mach aus deiner Angular-App eine PWA + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    Mach aus deiner Angular-App eine PWA

    Stichwörter

    Original veröffentlicht auf angular-buch.com.

    Artikelserie

    1. Mach aus deiner Angular-App eine PWA
    2. Trusted Web Activitys (TWA) mit Angular

    Immer häufiger stößt man im Webumfeld auf den Begriff der Progessive Web App – kurz: PWA. Doch was genau steckt dahinter und welche Vorteile hat eine PWA gegenüber einer herkömmlichen Webanwendung oder einer App? +Als Progressive Web App bezeichnen wir eine Webanwendung, die beim Aufruf einer Website als App auf einem lokalen Gerät installiert werden kann – zum Beispiel auf dem Telefon oder Tablet. +Die PWA lässt sich wie jede andere App nutzen, inklusive Push-Benachrichtigungen!

    +

    Webanwendung vs. PWA vs. App

    +

    Wir wollen zunächst den Begriff der PWA etwas konkreter einordnen. Dazu schauen wir uns den Unterschied einer PWA im Vergleich zu einer herkömmlichen Webanwendung und einer App an. +Mithilfe einer Webanwendung kann ein Nutzer über eine URL im Browser Informationen abrufen und verarbeiten. Eine App erfüllt einen ähnlichen Zweck, wird allerdings auf einem Gerät lokal installiert und benötigt in der Regel keinen Browser zur Informationsverarbeitung. Weiterhin kann eine App prinzipiell auch offline genutzt werden, und sie hat oft Zugriff auf native Funktionen des Geräts: Push Notifications und Zugriff auf das Dateisystem sowie Kamera und Sensorik. Eine PWA stellt nun eine Art Mix von beidem dar: Es handelt sich grundlegend auch um eine Webanwendung, sie wird allerdings durch den Nutzer heruntergeladen und auf dem lokalen Gerät gespeichert. Weiterhin sorgt eine PWA dafür, dass die wichtigsten Daten im Client gecacht werden. Somit bleiben Informationen, die die Anwendung liefert, stets abrufbar – auch wenn ggf. keine durchgängige Internetverbindung vorhanden ist. Außerdem kann eine PWA auch Push Notifications erhalten und anzeigen.

    +

    Die drei wichtigsten Charakteristiken einer PWA sind also folgende:

    +
      +
    • "Add to Homescreen"-Funktionalität
    • +
    • Offline-Fähigkeit
    • +
    • Push Notifications
    • +
    +

    Service Worker

    +

    Als Grundvoraussetzung, um eine PWA offlinefähig zu machen und Push-Benachrichtigungen zu versenden, werden die sogenannten Service Worker benötigt. Service Worker sind gewissermaßen kleine Helfer des Browsers, die bestimmte Aufgaben im Hintergrund übernehmen. +Hierzu zählen das Speichern und Abrufen der Daten auf einem Endgerät. Service Worker prüfen beispielsweise, ob eine Netzwerkverbindung besteht, und senden – je nach Konfiguration – Daten aus dem Cache an die Anwendung, oder versuchen, die Daten online abzurufen. +Eine weitere Aufgabe ist das Empfangen von Push-Benachrichtigungen vom Server.

    +

    Eine bestehende Angular-Anwendung in eine PWA verwandeln

    +

    Schauen wir uns das Ganze an einem Beispiel an. +Wie wollen das Beispielprojekt BookMonkey aus dem Angular-Buch in eine PWA verwandeln. Somit können Nutzer die App auf ihrem Gerät installieren und erhalten stets Buchdaten, auch wenn gerade keine Netzwerkkonnektivität vorhanden ist. Zunächst klonen wir uns hierfür die bestehende Webanwendung in ein lokales Repository:

    +
    git clone git@github.com:book-monkey3/iteration-7-i18n.git BookMonkey-PWA
    +cd BookMonkey-PWA
    +

    Als Nächstes fügen wir das Paket @angular/pwa mithilfe von ng add zum Projekt hinzu. +Die dahinterliegenden Schematics nehmen uns bereits einen Großteil der Arbeit zum Erzeugen der PWA ab:

    +
      +
    • Hinzufügen des Pakets @angular/service-worker zu unserem Projekt
    • +
    • Aktivieren des Build Support für Service Worker in der Angular CLI
    • +
    • Importieren und Registrieren des ServiceWorkerModule im AppModule
    • +
    • Update der Datei index.html mit einem Link zum Web App Manifest (manifest.json) sowie Hinzufügen relevanter Meta-Tags
    • +
    • Erzeugen und Verlinken von Icon-Dateien
    • +
    • Erzeugen der Konfigurationsdatei ngsw-config.json für den Service Worker
    • +
    +
    ng add @angular/pwa --project BookMonkey
    +

    Soweit so gut – das wichtigste ist bereits erledigt. Wir können jetzt schon unsere Anwendung in Form einer PWA erzeugen und nutzen. +Wichtig ist, dass die Anwendung immer im Produktivmodus gebaut wird, denn der Service Worker ist im Entwicklungsmodus nicht aktiv.

    +
    ng build --prod
    +

    Nach dem Build der Anwendung wollen wir uns das Ergebnis im Browser ansehen. Dafür können wir das Paket angular-http-server nutzen, das einen einfachen Webserver bereitstellt.

    +
    +

    Der angular-http-server leitet im Gegensatz zum http-server alle Anfragen zu nicht existierenden Verzeichnissen oder Dateien an die Datei index.html weiter. +Dies ist notwendig, da das Routing durch Angular und nicht durch den Webserver durchgeführt wird.

    +
    +
    npm i angular-http-server --save-dev
    +npx angular-http-server --path=dist/BookMonkey
    +

    Um nun zu testen, ob wir tatsächlich eine PWA erhalten haben, rufen wir am besten die Google Chrome Developer Tools auf. Dort können wir im Tab Network die Checkbox Offline setzen. +Anschließend laden wir die Seite neu. +Wir sehen, dass trotz des Offline-Modus die Startseite unserer App angezeigt wird, da der Service Worker ein Caching erwirkt hat. +Navigieren wir allerdings zur Buchliste, so können keine Bücher angezeigt werden.

    +

    Screenshot BookMonkey PWA, Offline-Modus in den Google Chrome Developer Tools aktivieren

    +
    +

    Achtung: Die PWA verwendet Service Worker. Diese können ausschließlich über gesicherte Verbindungen mit HTTPS oder über eine localhost-Verbindung genutzt werden. Rufen Sie die App, die mittels angular-http-server ohne SSL ausgeliefert wird, also über ein anderes Gerät auf, so werden die Service Worker nicht wie gewünscht funktionieren.

    +
    +

    Add to Homescreen

    +

    Prinzipiell kann jede Website unter Android oder iOS zum Homescreen hinzugefügt werden. +Sie erhält dann ein eigenes App-Icon erhält und sieht zunächst schon wie eine native App aus. +Unter iOS wird hierfür der Safari-Browser benötigt. +Im Safari kann über den Button Teilen (kleines Rechteck mit einem Pfeil nach oben) ein Menü geöffnet werden, in dem die Auswahl "Zum Home-Bildschirm" zu finden ist. +Nach Bestätigung des Dialogfelds wird eine Verknüfung auf dem Homescreen angelegt. +Aber: Haben wir hier noch keine speziellen Icons hinterlegt, wird ggf. nur eine Miniatur der Website als Icon angezeigt.

    +

    Das Web App Manifest anpassen (manifest.json)

    +

    Das Web App Manifest ist eine JSON-Datei, die dem Browser mitteilt, wie sich die Anwendung verhalten soll, wenn Sie installiert wird. Hier wird beispielsweise eine Hintergrundfarbe für die Menüleiste auf den nativen Endgeräten hinterlegt, und es werden die Pfade zu hinterlegten Icons angegeben.

    +

    Wir wollen die Standard-Datei, die von den PWA Schematics generiert wurde, noch etwas anpassen. Um dies nicht händisch zu tun, verwenden wir am besten einen Generator wie den Web App Manifest Generator. +Hierbei sollten wir bei der Einstellung Display Mode die Auswahl Standalone nutzen, da wir eine eigenständige App erhalten wollen, die nicht als Browser erkennbar ist. +Wollen wir das Standard-Icon ändern, laden wir hier einfach ein Bild hoch und lassen die zugehörigen Bilder erzeugen. Nach dem Entpacken der ZIP-Datei speichern wir die Icons in unserem Projekt unter src/assets/icons ab. Anschließend sollten wir noch einmal die Pfade in der Datei manifest.json prüfen.

    +

    Screenshot Web App Manifest Generator

    +

    Anpassungen für iOS (index.html)

    +

    Wollen wir unsere PWA unter iOS installieren, sind noch einige Anpassungen an der Datei index.html notwendig. +iOS-Geräte benötigen spezielle meta- und link-Tags zur Identifizierung der zugehörigen Icons, denn sie extrahieren diese Informationen nicht aus dem Web-Manifest.

    +

    Um das Icon für den Homescreen zu definieren, müssen die folgenden Zeilen in die Datei index.html eingefügt werden:

    +
    <head>
    +  ...
    +  <link rel="apple-touch-icon" href="assets/icons/icon-512x512.png">
    +  <link rel="apple-touch-icon" sizes="152x152" href="assets/icons/icon-152x152.png">
    +</head>
    +

    Wir geben den entsprechenden Pfad zum genutzten Icon an. Über das Attribut sizes können wir Icons mit bestimmten Größen hinterlegen. Weitere gängige Größen für iOS sind z. B. 180x180 und 167x167.

    +

    Weiterhin können wir über die link-Tags für iOS ein Splashscreen-Bild hinterlegen. Dieses wird angezeigt, sobald wir die App vom Homescreen aus starten. +Auch hierfür existiert ein Generator, der uns die Bilder in den entsprechenden Größen erzeugt und und die generierten link-Tags anzeigt: iOS Splash Screen Generator.

    +

    Anschließend fügen wir die Tags ebenfalls in die index.html ein. Wir müssen an dieser Stelle noch den Pfad zu den Bildern so anpassen, dass er korrekt auf die tatsächlichen Dateien zeigt. +Die erste Zeile teilt iOS-Geräten mit, dass die Webanwendung als App genutzt werden kann. Nur wenn diese Zeile in der index.html angegeben wurde, liest das iOS-Gerät den link-Tag mit der Angabe zum Splashscreen aus.

    +
    <head>
    +  <!-- ... -->
    +  <meta name="mobile-web-app-capable" content="yes">
    +  <!-- ... -->
    +  <link href="assets/splashscreens/iphone5_splash.png" media="(device-width: 320px) and (device-height: 568px) and (-webkit-device-pixel-ratio: 2)" rel="apple-touch-startup-image">
    +  <link href="assets/splashscreens/iphone6_splash.png" media="(device-width: 375px) and (device-height: 667px) and (-webkit-device-pixel-ratio: 2)" rel="apple-touch-startup-image">
    +  <link href="assets/splashscreens/iphoneplus_splash.png" media="(device-width: 621px) and (device-height: 1104px) and (-webkit-device-pixel-ratio: 3)" rel="apple-touch-startup-image">
    +  <link href="assets/splashscreens/iphonex_splash.png" media="(device-width: 375px) and (device-height: 812px) and (-webkit-device-pixel-ratio: 3)" rel="apple-touch-startup-image">
    +  <link href="assets/splashscreens/iphonexr_splash.png" media="(device-width: 414px) and (device-height: 896px) and (-webkit-device-pixel-ratio: 2)" rel="apple-touch-startup-image">
    +  <link href="assets/splashscreens/iphonexsmax_splash.png" media="(device-width: 414px) and (device-height: 896px) and (-webkit-device-pixel-ratio: 3)" rel="apple-touch-startup-image">
    +  <link href="assets/splashscreens/ipad_splash.png" media="(device-width: 768px) and (device-height: 1024px) and (-webkit-device-pixel-ratio: 2)" rel="apple-touch-startup-image">
    +  <link href="assets/splashscreens/ipadpro1_splash.png" media="(device-width: 834px) and (device-height: 1112px) and (-webkit-device-pixel-ratio: 2)" rel="apple-touch-startup-image">
    +  <link href="assets/splashscreens/ipadpro3_splash.png" media="(device-width: 834px) and (device-height: 1194px) and (-webkit-device-pixel-ratio: 2)" rel="apple-touch-startup-image">
    +  <link href="assets/splashscreens/ipadpro2_splash.png" media="(device-width: 1024px) and (device-height: 1366px) and (-webkit-device-pixel-ratio: 2)" rel="apple-touch-startup-image">
    +</head>
    +

    Als Letztes haben wir noch die Möglichkeit, die Statusbar der App hinsichtlich ihrer Farbe anzupassen. Dazu führen wir das folgende Metatag zur index.html hinzu.

    +
    <head>
    +  <!-- ... -->
    +  <meta name="apple-mobile-web-app-status-bar-style" content="black">
    +  <!-- ... -->
    +</head>
    +

    Wir können als Wert für content zwischen den folgenden Einstellungen wählen:

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Text- und IconfarbeHintergrundfarbe
    defaultSchwarzWeiß
    whiteSchwarzWeiß
    blackWeißSchwarz
    black-translucentWeißHintergrundfarbe der App (body-Element)
    +

    Wir schauen uns das Ergebnis nun im Safari-Browser unter iOS an. Nach dem Öffnen der Seite können wir diese über die Funktion "Add to Homescreen" auf dem Apple-Gerät speichern. +Wir sehen, dass die App die korrekten Icons nutzt und uns nach der Installation und dem Start zunächst kurz den Splashscreen zeigt, bevor die App vollflächig dargestellt wird. Die Statusbar ist in unserem Fall Schwarz, wie zuvor angegeben.

    +

    Der BookMonkey als PWA mit Splashscreen unter iOS

    +

    Offline-Funktionalität

    +

    Die Anwendung verhält sich nun wie eine normale Webanwendung. Um mehr das Gefühl einer nativen App zu erzeugen, betrachten wir als Nächstes die Offline-Fähigkeit der App.

    +

    Konfiguration für Angular Service Worker anpassen (ngsw-config.json)

    +

    Der Angular Service Worker besitzt die Konfigurationsdatei ngsw-config.json +. +Hier wird definiert, welche Ressourcen und Pfade gecacht werden sollen und welche Strategie hierfür verwendet wird. +Eine ausführliche Beschreibung der einzelnen Parameter finden Sie in der offiziellen Dokumentation auf angular.io.

    +

    Die beiden großen Blöcke der Konfiguration sind die assetGroups und die dataGroup. Im Array assetGroups ist die Konfiguration zu Ressourcen enthalten, die zur App selbst gehören. Hierzu zählen zum Beispiel statische Bilder, CSS-Stylesheets, Third-Party-Ressourcen, die von CDNs geladen werden etc. +Das Array dataGroup, beinhaltet Ressourcen, die nicht zur App selbst gehören, zum Beispiel API-Aufrufe und andere Daten-Abhängigkeiten.

    +

    Wir wollen bei unserer Beispielanwendung zunächst erwirken, dass die Antworten von der HTTP-API gecacht werden: die Liste der Bücher, bereits angesehene einzelne Bücher und auch die Suchresultate. +Diese Ergebnisse können dann also auch angezeigt werden, wenn keine Netzwerkverbindung besteht. +Dazu passen wir die Datei ngsw-config.json an und erweitern diese wie folgt:

    +
    +

    Achtung! Wenn Sie Änderungen am Quellcode durchführen, werden Ihnen ggf. beim Aktualisieren der Anwendung im Browser alte (gecachte) Daten angezeigt. Sie sollten deshalb während der Entwicklung stets einen neuen Incognito-Tab im Browser nutzen. Schließen Sie den Tab und laden die Anwendung neu, erhalten Sie eine "frische" Anwendung. Achten Sie auch darauf, dass in den Google Chrome Developer Tools die Option Disable Cache deaktiviert ist.

    +
    +
    {
    +  "$schema": "./node_modules/@angular/service-worker/config/schema.json",
    +  "index": "/index.html",
    +  "assetGroups": [ /* ... */ ],
    +  "dataGroups": [
    +    {
    +      "name": "Books",
    +      "urls": [
    +        "/secure/books",
    +        "/secure/books/search/**",
    +        "/secure/book/**"
    +      ],
    +      "cacheConfig": {
    +        "strategy": "freshness",
    +        "maxSize": 50,
    +        "maxAge": "1d2h",
    +        "timeout": "3s"
    +      }
    +    }
    +  ]
    +}
    +

    Wir verwenden an dieser Stelle den Block dataGroups, da unsere Buchdatenbank keine statischen Daten enthält, die direkt zur App gehören. +Dem neuen Abschnitt in dataGroups geben wir die selbst festgelegte Bezeichnung Books. Wir definieren damit, dass alle Aufrufe unter /secure/books vom Service Worker behandelt werden sollen. Dasselbe gilt auch für alle anderen definierten Pfade zur HTTP-API. +Im letzten Schritt definieren wir das Verhalten des Caches. Wir wollen hier die Strategie freshness verwenden: Sie besagt, dass idealerweise die aktuellen Daten abgerufen werden, bevor sie aus dem Cache bezogen werden. +Erhalten wir jedoch ein Netzwerk-Timeout nach Ablauf der definierten Zeit im Parameter timeout, werden die zuletzt gecachten Daten ausgeliefert. Die Strategie eignet sich vor allem für dynamische Daten, die über eine API bezogen werden, und die möglichst immer im aktuellen Stand repräsentiert werden sollen. +Die Option maxSize definiert die maximale Anzahl von Einträgen im Cache. maxAge gibt die maximale Gültigkeit der Daten im Cache an, in unserem Fall sollen die Daten einen Tag und 2 Stunden gültig sein.

    +

    Eine zweite mögliche Strategie für den Cache ist die Einstellung performance. Diese liefert immer zunächst die Daten aus dem Cache, solange diese gültig sind. +Erst wenn der timeout abläuft, werden die Daten im Cache aktualisiert. Diese Strategie eignet sich für Daten, die nicht sehr oft geändert werden müssen oder bei denen eine hohe Aktualität keine große Relevanz hat.

    +

    Schauen wir uns nun wieder unsere Anwendung an und deaktivieren die Netzwerkverbindung nach dem erstmaligen Abrufen der Buchliste, so sehen wir, dass weiterhin Buchdaten angezeigt werden, wenn wir die Anwendung neu laden oder in ihr navigieren.

    +

    Die PWA updaten

    +

    Ein Service Worker wird automatisch im Browser installiert und ist dort aktiv. +Stellt der Server eine neue Version zur Verfügung, so muss der Service Worker im Browser aktualisiert werden. +Solche Updates werden in Angular über den Service SwUpdate behandelt. Dieser liefert uns Informationen über ein verfügbares bzw. durchgeführtes Update, auf die wir reagieren können. In der Regel werden Service Worker im Hintergrund geupdatet und die Nutzer bekommen davon nichts mit. +Es kann jedoch hilfreich sein, dem Nutzer mitzuteilen, dass ein Update vorliegt, um beispielsweise über Neuerungen zu informieren. +Wir wollen genau diesen Fall implementieren.

    +

    Zunächst passen wir dafür die Datei ngsw-config.json an. Hier fügen wir den Abschnitt appData ein. Dieser kann Informationen wie eine Beschreibung, die Version und weitere Metadaten zur Anwendung enthalten. Wir wollen in diesem Abschnitt eine Versionsnummer sowie einen Changelog hinterlegen, den wir später bei einem Update den Nutzern anzeigen wollen.

    +
    +

    Achtung: Die Versionsnummer dient lediglich als Nutzerinformation. Hinter den Kulissen erfolgt jedoch ein Binärvergleich des erzeugten Service Workers aus der ngsw-config.json. Jede kleinste Änderung an der ngsw-config.json führt somit zu einem neuen Service Worker unabhängig von der von uns hinterlegten Versionsnummer.

    +
    +
    {
    +  "$schema": "./node_modules/@angular/service-worker/config/schema.json",
    +  "index": "/index.html",
    +  "appData": {
    +    "version": "1.1.0",
    +    "changelog": "aktuelle Version"
    +  },
    +  // ...
    +}
    +

    Anschließend bauen wir die Anwendung (ng build --prod) und rufen sie im Browser auf – bis hierhin ist alles wie gehabt. +Nun wollen wir, dass der Nutzer über Änderungen informiert wird. +Dafür nutzen wir den Service SwUpdate. Er stellt das Observable available zur Verfügung, das wir abonnieren können. +Sobald ein neuer Service Worker verfügbar ist, wird dieses Event ausgelöst. +Wir können nun einen Confirm-Dialog anzeigen und den Nutzer fragen, ob ein Update durchgeführt werden soll. +Das Event aus dem Observable liefert uns außerdem die komplette Konfiguration von appData aus der ngsw-config.json in der aktuellen Version sowie in der neuen Version des Service Workers. +Bestätigt der Nutzer nun den Dialog mit OK, erfolgt ein Neuladen der Seite, was ein Update des Service Workers zur Folge hat.

    +
    import { Component, OnInit } from '@angular/core';
    +import { SwUpdate } from '@angular/service-worker';
    +
    +@Component({ /* ... */ })
    +export class AppComponent implements OnInit {
    +
    +  constructor(private swUpdate: SwUpdate) {}
    +
    +  ngOnInit() {
    +    if (this.swUpdate.isEnabled) {
    +      this.swUpdate.available.subscribe((evt) => {
    +        const updateApp = window.confirm(`
    +          Ein Update ist verfügbar (${evt.current.appData['version']} => ${evt.available.appData['version']}).
    +          Änderungen: ${evt.current.appData['changelog']}
    +          Wollen Sie das Update jetzt installieren?
    +        `);
    +        if (updateApp) { window.location.reload(); }
    +      });
    +    }
    +  }
    +}
    +

    Um nun tatsächlich einen neuen Service Worker zu erhalten, müssen wir noch Änderungen an der ngsw-config.json vornehmen, damit nach dem Binärvergleich eine neue Version des Service Workers erzeugt wird. Wir ändern hier lediglich die Versionsnummer sowie das Changelog.

    +
    +

    An dieser Stelle sei nochmals angemerkt, dass die Versionsnummer keine tatsächliche Version des Service Workers darstellt. Wir könnten hier auch eine niedrigere Versionsnummer angeben, und es würde trotzdem ein Update des Service Workers erfolgen.

    +
    +
    {
    +  // ...
    +  "appData": {
    +    "version": "2.0.0",
    +    "changelog": "Caching bereits abgerufener Bücher"
    +  },
    +  // ...
    +}
    +

    Erzeugen wir die Anwendung neu und starten wieder den Webserver, so sehen wir, dass kurz nach dem Laden der Seite ein Hinweis zum Update erscheint. Bestätigen wir mit OK, wird die Seite neu geladen und es wird fortan der neu erzeugte Service Worker verwendet.

    +

    Screenshot Anzeige eines Updates der PWA

    +

    Push Notifications

    +

    Zum Abschluss wollen wir uns noch der dritten wichtigen Charakteristik von PWAs widmen: den Push Notifications. +Diese ermöglichen es uns, vom Server aus Benachrichtigungen an Clients zu senden, die zuvor den Benachrichtigungsdienst aktiviert haben. +Push Notifications werden ebenfalls mithilfe von Service Workern implementiert.

    +

    Die nachfolgende Abbildung stellt den Ablauf von Push-Benachrichtigungen schematisch dar. Im ersten Schritt abonnieren ein oder mehrere Clients die Benachrichtigungen (1). +Anschließend soll in unserem Fall das Anlegen eines neuen Buchs auf dem Server (2) dazu führen, dass alle Abonnenten darüber benachrichtigt werden (3). In Schritt 4 wollen wir reagieren, wenn die Benachrichtigung angeklickt wird und wollen das neu angelegte Buch öffnen (4).

    +

    Flow: PWA Push Notifications

    +

    Um Push-Benachrichtigungen vom Server an die Clients zu schicken, kommt die sogenannte Push API zum Einsatz, die moderne Browser nativ unterstützen. +Die Technologie wird auch WebPush genannt.

    +

    Wir legen als Erstes einen neuen Service an, der sich um die Push Notifications kümmern soll: ng generate service web-notification. +Das read-only Property VAPID_PUBLIC_KEY enthält den Public-Key der BookMonkey API. Dieser wird für die Kommunikation zwischen dem Service Worker und dem Server mit WebPush zwingend benötigt.

    +

    Angular stellt den Service SwPush zur Verfügung, der die native Funktionalität kapselt. +Über isEnabled greifen wir auf SwPush zu, und wir erhalten Aufschluss darüber, ob der verwendete Browser bzw. das genutzte Gerät grundsätzlich Push Notifications unterstützt. +Die Methode requestSubscription() von SwPush fordert an, dass Push-Nachrichten im Browser aktiviert werden. +Dazu muss der Public-Key des Servers übermittelt werden. +Der Nutzer muss daraufhin im Browser bestätigen, dass die Anwendung Push-Nachrichten an das Gerät schicken darf. +Stimmt der Nutzer zu, wird die Methode sendToServer() mit dem zurückgelieferten Objekt vom Typ PushSubscriptionJSON aufgerufen. +Das Objekt enthält die notwendigen Abonnement-Daten, die der Server für die Speicherung und Adressierung der einzelnen Abonnenten benötigt. +Wir übermitteln das Objekt mit einem HTTP-POST-Request an den Server.

    +
    // ...
    +import { HttpClient } from '@angular/common/http';
    +import { SwPush } from '@angular/service-worker';
    +
    +@Injectable({ /* ... */ })
    +export class WebNotificationService {
    +  readonly VAPID_PUBLIC_KEY = 'BGk2Rx3DEjXdRv9qP8aKrypFoNjISAZ54l-3V05xpPOV-5ZQJvVH9OB9Rz5Ug7H_qH6CEr40f4Pi3DpjzYLbfCA';
    +  private baseUrl = 'https://api3.angular-buch.com/notifications';
    +
    +  constructor(
    +    private http: HttpClient,
    +    private swPush: SwPush
    +  ) { }
    +
    +  get isEnabled() {
    +    return this.swPush.isEnabled;
    +  }
    +
    +  subscribeToNotifications(): Promise<any> {
    +    return this.swPush.requestSubscription({
    +      serverPublicKey: this.VAPID_PUBLIC_KEY
    +    })
    +    .then(sub => this.sendToServer(sub))
    +    .catch(err => console.error('Could not subscribe to notifications', err));
    +  }
    +
    +  private sendToServer(params: PushSubscriptionJSON) {
    +    this.http.post(this.baseUrl, params).subscribe();
    +  }
    +}
    +

    Im nächsten Schritt wollen wir den neuen Service einsetzen und navigieren dazu zurück in den Code der app.component.ts. +Wir legen das Property permission als Hilfe an, um den Nutzern später im Template den entsprechenden Status der Push Notifications anzuzeigen. +Über das globale Objekt Notification.permission erhalten wir vom Browser den Wert default, sofern noch keine Auswahl getroffen wurde, ob Benachrichtigungen durch den Nutzer genehmigt wurden. +Bestätigt ein Nutzer die Nachfrage, wird der Wert granted gesetzt. Bei Ablehnung erhalten wir den Wert denied. +Als initialen Wert verwenden wir null – derselbe Wert wird ebenso verwendet, wenn der Benachrichtigungsdienst nicht unterstützt wird. +Zum Abschluss benötigen wir noch eine Methode, mit der der initiale Request gestellt wird, die Push-Nachrichten zu aktivieren: submitNotification(). Die Methode soll beim Klick auf einen Button ausgeführt werden und nutzt den eben erstellen WebNotificationService. +Sobald der Nutzer eine Auswahl getroffen hat, wollen wir den Wert des Propertys permission updaten.

    +
    // ...
    +import { WebNotificationService } from './shared/web-notification.service';
    +
    +@Component({/* ... */})
    +export class AppComponent implements OnInit {
    +  permission: NotificationPermission | null = null;
    +
    +  constructor(
    +    private swUpdate: SwUpdate,
    +    private webNotificationService: WebNotificationService
    +  ) {}
    +
    +  ngOnInit() {
    +    // ...
    +    this.permission = this.webNotificationService.isEnabled ? Notification.permission : null;
    +  }
    +
    +  submitNotification() {
    +    this.webNotificationService.subscribeToNotifications()
    +      .then(() => this.permission = Notification.permission);
    +  }
    +}
    +

    Zum Schluss fehlen nur noch ein paar kleine Anpassungen am Template (app.component.html). +Hier wollen wir einen Menüpunkt mit einem Button im rechten Bereich der Menüleiste einfügen. +Der Button soll deaktiviert sein, sofern keine Push Notifications unterstützt werden (z. B. im Development-Modus von Angular oder wenn der genutzte Browser diese Funktion nicht unterstützt). +Wird die Funktion unterstützt, prüfen wir noch auf die drei Zustände default, granted und denied. Die CSS-Klassen von Semantic UI sorgen für das entsprechende Styling. +Die CSS-Klasse mini im übergeordneten <div> macht das Menü etwas kleiner, sodass es auch auf dem Smartphone gut aussieht.

    +
    <div class="ui mini menu">
    +  <!-* ... -->
    +  <div class="right menu">
    +    <div class="item">
    +      <div class="ui button"
    +        (click)="submitNotification()"
    +        [ngClass]="{
    +          'disabled': !permission,
    +          'default':  permission === 'default',
    +          'positive': permission === 'granted',
    +          'negative': permission === 'denied'
    +        }"
    +      >Benachrichtigungen</div>
    +    </div>
    +  </div>
    +</div>
    +<router-outlet></router-outlet>
    +

    Geschafft! Schauen wir uns nun das Resultat im Development-Modus an, sehen wir, dass der Button ausgegraut und nicht klickbar ist, da hier die Notifications nicht unterstützt werden.

    +

    Screenshot: PWA Push Notifications disabled

    +

    Bauen wir die Anwendung hingegen im Production-Modus und starten den angular-http-server, so ist der Button klickbar und ist zunächst im Zustand default. +Klicken wir den Button an, fragt uns der Browser, ob wir Push Notifications aktivieren wollen.

    +

    Screenshot: PWA Access to Push Notifications default

    +

    Wenn wir den Zugriff gewähren, wird der Button durch die CSS-Klasse success grün, und wir erhalten vom Server direkt eine erste Bestätigung, dass die Benachrichtigungen aktiviert wurden.

    +

    Screenshot: PWA Success Push Notification

    +

    Screenshot: PWA Access to Push Notifications granted

    +

    Der API-Server unterstützt bereits WebPush: Wird nun ein neues Buch zur API hinzugefügt, erhalten wir eine Push-Benachrichtigung! Sie können das Feature ausprobieren, indem Sie entweder über die App selbst ein Buch hinzufügen, oder indem Sie die BookMonkey API dafür nutzen.

    +

    Screenshot: PWA Push Notification bei einem neuen Buch

    +

    Lehnen wir hingegen ab, Benachrichtigungen zu erhalten, so färbt sich der Button rot, und wir werden nicht über neue Bücher informiert.

    +

    Screenshot: PWA Access to Push Notifications denied

    +

    Unter iOS wird die Funktionalität nicht unterstützt, daher bleibt der Button ausgegraut:

    + + + + + + + + + + + +
    Screenshot AndroidScreenshot iOS
    Screenshot Android Benachrichtigungen werden unterstütztScreenshot iOS Benachrichtigungen werden nicht unterstützt
    +

    Auf die Push Notification reagieren

    +

    Wir wollen zum Abschluss noch einen Schritt weiter gehen und darauf reagieren, dass ein Nutzer auf die angezeigte Benachrichtigung klickt. +Hierfür stellt der Service SwPush das Observable notificationClicks zur Verfügung. +Mit der Benachrichtigung wird im Property data eine URL angegeben, die zur Seite des neu angelegten Buchs führt. +Wir wollen diese URL nutzen und ein neues Browser-Fenster mit der angegebenen URL öffen.

    +
    +

    Achtung: An dieser Stelle müssen wir window.open() nutzen und nicht den Angular-Router, da die Methode notificationClicks() im Service Worker aufgerufen wird und die Benachrichtigung ggf. erst erscheint, wenn wir die App bereits geschlossen haben.

    +
    +
    // ...
    +@Injectable({ /* ... */ })
    +export class WebNotificationService {
    +  // ...
    +  constructor(
    +    private http: HttpClient,
    +    private swPush: SwPush
    +  ) {
    +    this.swPush.notificationClicks.subscribe(event => {
    +      const url = event.notification.data.url;
    +      window.open(url, '_blank');
    +    });
    +  }
    +  // ...
    +}
    +

    Die Push Notifications aus dem Service Worker sind ein effektiver Weg, um die Aufmerksamkeit des Nutzers gezielt auf die Anwendung zu lenken. +Die Nachricht verhält sich wie eine native Benachrichtigung jeder anderen App. +Im Hintergrund wird die Technologie WebPush eingesetzt, die fest mit dem Angular-Service SwPush verdrahtet ist. +SwPush bietet also keine einfache Möglichkeit, eine Nachricht aus einer lokalen Quelle anzuzeigen.

    +

    Ein Blick unter die Haube von Push Notifications

    +

    Haben wir alle Teile korrekt implementiert, kann der Client Push-Nachrichten vom Server empfangen. +Wir wiederholen kurz dem Ablauf: +Der Client macht sich zunächst beim Server bekannt, indem er ein Objekt vom Typ PushSubscription an den Server übermittelt. +In unserem Beispiel haben wir dazu die Service-Methode sendToServer() verwendet. +Der Server speichert dieses Objekt und verwendet es, um Nachrichten an den registrieren Service Worker zu übermitteln. +So wird es ermöglicht, dass auch Nachrichten empfangen werden können, wenn die Anwendung geschlossen ist.

    +

    Aber wie funktioniert der Rückkanal vom Server zum Client? +Dazu schauen wir uns das automatisch generierte Objekt vom Typ PushSubscription einmal genauer an:

    +
    {
    +  "endpoint": "https://fcm.googleapis.com/fcm/send/erSmNAsF0ew:APA91bGfjlCRi8nIpG9fvxezt_2E0JcfJ0I_4gnm2M29JQ3kF3d_XxUqrlQatWNGotPtsW-M57vsLxhNz9vRz0IQr3KB50Dm2wjm7gAbVo1c00VpDv7-2JynXNGk1RqimZ-TfYzzAjdu",
    +  "expirationTime": null,
    +  "keys": {
    +    "p256dh":"BO4BdhfvZ4bo3hh7NBJDb--OZWcQ37M0O8XZY6lJ67g3x7JvmzMJhz_w_EaEVKFLskkDccO3iKsXkxtlSromdzU",
    +    "auth":"IH-eOcRdlxZ8P8uLl-2e6g"
    +  }
    +}
    +

    Besonders interessant ist das Property endpoint: Der Browser übermittelt eine URL, über die der Server Nachrichten an den Client schicken kann. +Der Server sendet dazu lediglich einen HTTP-Request an diese URL. +Die Notwendigkeit der Verschlüsselung mit den VAPID-Keys wird hier noch einmal deutlicher.

    +

    Ebenso interessant ist, dass die Endpoint-URL aus dem Universum des Browserherstellers kommt. +Bitte behalten Sie diesen Punkt stets im Hinterkopf: Alle Push-Nachrichten werden immer durch einen fremden Server zum Client gebracht.

    +

    Zusammenfassung

    +

    Wie Sie sehen, gelingt der Einstieg in die Entwicklung von Progressive Web Apps ohne Probleme. +Dank der vorbereiteten Schematics können wir uns auf die eigentliche Implementierung von Features konzentrieren. +Dies war aber nur ein kleiner Einblick in Progressive Web Apps mit Angular. +Wer noch mehr zum Thema erfahren möchte, dem sei der Blogpost "Build a production ready PWA with Angular and Firebase" von Önder Ceylan empfohlen.

    +

    Den vollständigen Quelltext aus diesem Artikel können Sie auf auf GitHub herunterladen. +Eine Demo des BookMonkey als PWA finden Sie unter der https://bm3-pwa.angular-buch.com – probieren Sie die App am Besten auf Ihrem Smartphone aus!

    +

    Viel Spaß beim Programmieren!

    +
    +

    Titelbild: Photo by rawpixel.com from Pexels, angepasst

    +
    + + + + \ No newline at end of file diff --git a/blog/2019-11-ngx-semantic-version/index.html b/blog/2019-11-ngx-semantic-version/index.html new file mode 100644 index 00000000..f66850d5 --- /dev/null +++ b/blog/2019-11-ngx-semantic-version/index.html @@ -0,0 +1,534 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + k9n.dev | ngx-semantic-version: enhance your git and release workflow + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    ngx-semantic-version: enhance your git and release workflow

    Stichwörter

    Original veröffentlicht auf angular.schule.com.

    In this article I will introduce the new tool ngx-semantic-version. +This new Angular Schematic allows you to set up all necessary tooling for consistent git commit messages and publishing new versions. +It will help you to keep your CHANGELOG.md file up to date and to release new tagged versions. All this is done by leveraging great existing tools like commitizen, commitlint and standard-version.

    +
    + +

    TL;DR

    +

    ngx-semantic-version is an Angular Schematic that will add and configure commitlint, commitizen, husky and standard-version to enforce commit messages in the conventional commit format and to automate your release and Changelog generation by respecting semver. +All you have to do for the setup is to execute this command in your Angular CLI project:

    +
    ng add ngx-semantic-version
    +

    Introduction

    +

    Surviving in the stressful day-to-day life of a developer is not easy. +One feature follows the other, bug fixes and breaking changes come in on a regular basis. +With all the hustle and bustle, there's literally no time to write proper commit messages.

    +

    If we don't take this job serious, at the end of the day our git history will look like this:

    +
    * 65f597a (HEAD -> master) adjust readme
    +* f874d16 forgot to bump up version
    +* 3fa9f1e release
    +* d09e4ee now it's fixed!
    +* 70c7a9b this should really fix the build
    +* 5f91dab let the build work (hopefully)
    +* 44c45b7 adds some file
    +* 7ac82d3 lots of stuff
    +* 1e34db6 initial commit

    When you see such a history you know almost nothing: neither what features have been integrated nor if there was a bugfix or a breaking change. There is almost no meaningful context.

    +

    Wouldn't it be nice to have a cleaner git history that will follow a de facto standard which is commonly used?

    +

    But more than this: having a clean and well-formatted git history can help us releasing new software versions respecting semantic versioning and generating a changelog that includes all the changes we made and references to the commits.

    +

    No more struggle with forgotten version increasements in your package.json. No more manual changes in the CHANGELOG.md and missing references to necessary git commits. Wouldn't it be nice to automate the release process and generate the changelog and the package version by just checking and building it from a clean git history? And wouldn't it be nice to add all this stuff with one very simple single line command to your Angular project?

    +

    ngx-semantic-version will give you all that.

    +

    What does it do?

    +

    ngx-semantic-version will add and configure the following packages for you. +We will take a look at each tool in this article.

    +
      +
    • commitlint: check commit messages to follow the conventional commit pattern
    • +
    • husky: hook into git events and run code at specific points (e.g. at commit or push)
    • +
    • commitizen: helper for writing conventional commit messages
    • +
    • standard-version: generate conventional changelogs from the git history
    • +
    +

    commitlint: Enforcing conventional commit messages

    +

    Commitlint will give you the ability to check your commit messages for a common pattern. A very prominent project following this pattern is the Angular repository itself. The conventional-commit pattern requires us to follow this simple syntax:

    +
    [optional scope]: 
    +
    +[optional body]
    +
    +[optional footer]

    Let's see what is the meaning of these parameters:

    +
      +
    • type can be one of the following codes:
        +
      • build
      • +
      • ci
      • +
      • chore
      • +
      • docs
      • +
      • feat
      • +
      • fix
      • +
      • perf
      • +
      • refactor
      • +
      • revert
      • +
      • style
      • +
      • test
      • +
      +
    • +
    • scope is optional and can be used to reference a specific part of your application, e.g. fix(dashboard): add fallback for older browsers
    • +
    • The description is mandatory and describes the commit in a very short form (also called subject)
    • +
    • If necessary, a body and a footer with further information can be added which may contain:
        +
      • The keyword BREAKING CHANGES followed by a description of the breaking changes
      • +
      • A reference to a GitHub issue (or any other references, such as JIRA ticket number)
      • +
      +
    • +
    +

    An example message could look like that:

    +
    refactor(footer): move footer widget into separate module
    +
    +BREAKING CHANGES
    +The footer widget needs to be imported from `widgets/FootWidgetModule` instead of `common` now.
    +
    +closes #45

    Following this pattern allows us to extract valuable information from the git history later. +We can generate a well-formatted changelog file without any manual effort. +It can easily be determined what version part will be increased and much more.

    +
    +

    You may think now: "Wow, that style looks complicated and hard to remember." But don't worry: you will get used to it soon! In a second you will see how creating these messages can be simplified using commitizen.

    +
    +

    If you want to try you commitlint separately, you can even try it out using npx:

    +

    commitlint cli

    +

    ngx-semantic-version will add the configuration file commitlint.config.js which can be adjusted later by your personal needs.

    +

    husky: Hook into the git lifecycle

    +

    Husky allows us to hook into the git lifecycle using Node.js. +We can use husky in combination with commitlint to check a commit message right before actually commiting it. +This is what ngx-semantic-version configures in our application. +It will add this part to your package.json:

    +
    ...
    +"husky": {
    +  "hooks": {
    +    "commit-msg": "commitlint -E HUSKY_GIT_PARAMS"
    +  }
    +},
    +

    Husky uses the environment variable HUSKY_GIT_PARAMS containing the current git message you entered and it will pass this through commitlint so it can be evaluated.

    +

    Whenever you commit, commitlint will now automatically check your message.

    +

    commitizen: Easily write conventional commit messages

    +

    Defining a well-formed message text can be quite hard when you are not used to the conventional-changelog style. +The tool commitizen is there to help beginners and to prevent your own negligence. +It introduces a lots of restrictions for our commit messages so that it's easier for developers to follow the pattern. +Commitizen will help you to always define a commit message in the appropriate format using an interactive CLI:

    +

    commitizen cli

    +

    When adding ngx-semantic-version it will configure commitizen to use the conventional changelog style as well:

    +
    // package.json
    +...
    +"config": {
    +  "commitizen": {
    +    "path": "./node_modules/cz-conventional-changelog"
    +  }
    +}
    +

    If you are using Visual Studio Code, you can also use the extension Visual Studio Code Commitizen Support which will let you type the commit message directly in the editor:

    +

    commitizen vscode plugin

    +

    standard-version: Generate changelogs from the git history

    +

    Standard-version is the cherry on the cake and takes advantage of a well-formed git history. +It will extract the commit message information like fix, feature and BREAKING CHANGES and use this information to automatically create a CHANGELOG.md file. +The tool will also determine the next version number for the project, according to the rules of semantic versioning.

    +

    ngx-semantic-version will configure a new script in your package.json that can be used for releasing a new version:

    +
    ...
    +"scripts": {
    +  "release": "standard-version",
    +},
    +

    Whenever you want to release a version, you should use standard-version to keep your versioning clean and the CHANGELOG.md up-to-date. +Furthermore, it references both commits and closed issues in your CHANGELOG.md, so that it's easier to understand what is part of in the release. +The tool will also tag the version in the git repo so that all versions will be available as releases via GitHub, Gitlab or whatever you are using.

    +

    How to use ngx-semantic-version

    +

    Are you excited, too? Then let's get started! +Configuring all mentioned tools manually can be quite tedious. +Here is where ngx-semantic-version enters the game: It is an Angular schematic that will add and configure all the tools for you.

    +

    All we need it to run the following command:

    +
    ng add ngx-semantic-version
    +

    After installation, your package.json file will be updated. +You will also find a new file commitlint.config.js which includes the basic rule set for conventional commits. +You can adjust the configuration to satisfy your needs even more.

    +

    Try it out and make some changes to your project! +Commitlint will now check the commit message and tell you if it is valid or not. +It prevents you from commiting with a "bad" message. +To make things easier, commitizen will support you by building the message in the right format and it even explicitly asks you for issue references and breaking changes.

    +

    If you typically use npm version to cut a new release, now you do this instead:

    +
    npm run release
    +

    You should also consider using one of the following commands:

    +
    npm run release -- --first-release  # create the initial release and create the `CHANGELOG.md`
    +npm run release -- --prerelease     # create a pre-release instead of a regular one
    +

    standard-version will now do the following:

    +
      +
    1. "Bump" the version in package.json
    2. +
    3. Update the CHANGELOG.md file
    4. +
    5. Commit the package.json and CHANGELOG.md files
    6. +
    7. Tag a new release in the git history
    8. +
    +

    Check out the official documentation of standard-version for further information.

    +

    Conclusion

    +

    I hope that ngx-semantic-version will make your daily work easier! +If you have a problem, please feel free to open an issue. +And if you have any improvements, I'm particularly happy about a pull request.

    +

    Happy coding, committing and releasing!

    +
    + +

    Thank you

    +

    Special thanks go to Ferdinand Malcher and Johannes Hoppe for revising this article and discussing things.

    +
    + + + + \ No newline at end of file diff --git a/blog/2020-01-angular-scully/index.html b/blog/2020-01-angular-scully/index.html new file mode 100644 index 00000000..2f691f4a --- /dev/null +++ b/blog/2020-01-angular-scully/index.html @@ -0,0 +1,677 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + k9n.dev | Create powerful fast pre-rendered Angular Apps using Scully static site generator + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    Create powerful fast pre-rendered Angular Apps using Scully static site generator

    Stichwörter

    Artikelserie

    1. Create powerful fast pre-rendered Angular Apps using Scully static site generator
    2. Dig deeper into static site generation with Scully and use the most out of it

    Create powerful fast pre-rendered Angular Apps using Scully static site generator

    +

    You probably heard of the JAMStack. It's a new way of building websites and apps via static site generators that deliver better performance and higher security. There have been tools for many platforms, but surprisingly not yet for Angular. These times are finally over. With this blog post, I want to show you how you can easily create an Angular blogging app by to pre-render your complete app.

    +
    +

    On Dec 16, 2019 the static site generator Scully for Angular was presented. +Scully automatically detects all app routes and creates static sites out of it that are ready to ship for production. +This blog post is based on versions of Angular and Scully:

    +
    "@angular/core": "~13.0.0",
    +"@angular/cli": "~13.0.3",
    +"@scullyio/init": "^2.0.5",
    +"@scullyio/ng-lib": "^2.0.0",
    +"@scullyio/scully": "^2.0.0",
    +"@scullyio/scully-plugin-puppeteer": "^2.0.0",
    +
    + +

    About Scully

    +

    Scully is a static site generator (SSG) for Angular apps. +It analyses a compiled Angular app and detects all the routes of the app. +It will then call every route it found, visit the page in the browser, renders the page and finally put the static rendered page to the file system. +This process is also known as pre-rendering – but with a new approach. +The result compiled and pre-rendered app ready for shipping to your web server.

    +
    +

    Good to know: Scully does not use Angular Universal for the pre-rendering. +It uses a Chromium browser to visit and check all routes it found.

    +
    +

    All pre-rendered pages contain just plain HTML and CSS. +In fact, when deploying it, a user will be able to instantly access all routes and see the content with almost no delay. +The resulting sites are very small static sites (just a few KBs) so that even the access from a mobile device with a very low bandwidth is pretty fast. +It's significantly faster compared to the hundreds of KBs that you are downloading when calling a “normal” Angular app on initial load.

    +

    But that’s not all: Once the pre-rendered page is shipped to the user, Scully loads and bootstraps the “real” Angular app in the background on top of the existing view. +In fact Scully will unite two great things: +The power of pre-rendering and very fast access to sites and the power of a fully functional Single Page Application (SPA) written in Angular.

    +

    Get started

    +

    The first thing we have to do is to set up our Angular app. +As Scully detects the content from the routes, we need to configure the Angular router as well. +Therefore, we add the appropriate flag --routing (we can also choose this option when the CLI prompts us).

    +
    npx -p @angular/cli ng new scully-blog --routing # create an angular workspace
    +cd scully-blog  # navigate into the project
    +

    The next step is to set up our static site generator Scully. +Therefore, we are using the provided Angular schematic:

    +
    ng add @scullyio/init  # add Scully to the project
    +

    Et voilà here it is: We now have a very minimalistic Angular app that uses the power of Scully to automatically find all app routes, visit them and generate static pages out of them. +It's ready for us to preview. +Let's try it out by building our site and running Scully.

    +
    npm run build     # build our Angular app
    +npx scully        # let Scully run over our app and build it
    +npx scully serve  # serve the scully results
    +
    +

    Scully will run only once by default. To let Scully run and watch for file changes, just add the --watch option (npx scully --watch).

    +
    +

    After Scully has checked our app, it will add the generated static assets to our dist/static directory by default. +Let's quickly compare the result generated from Scully with the result from the initial Angular build (dist/scully-blog):

    +
    dist/
    +┣ scully-blog/
    +┃ ┣ assets/
    +┃ ┣ ...
    +┃ ┗ styles.ef46db3751d8e999.css
    +┗ static/
    +  ┣ assets/
    +  ┃ ┗ scully-routes.json
    +  ┣ ...
    +  ┗ styles.ef46db3751d8e999.css

    If we take a look at it, except of the file scully-routes.json, that contains the configured routes used by Scully, we don't see any differences between the two builds. +This is because currently we only have the root route configured, and no further content was created.

    +

    Nonetheless, when running npx scully serve or npx scully --watch we can check out the result by visiting the following URL: localhost:1668. +This server serves the static generated pages from the dist/static directory like a normal web server (e.g. nginx or apache).

    +

    The ScullyLibModule

    +

    You may have realized, that after running the Scully schematic, the ScullyLibModule has been added to your AppComponent:

    +
    // ...
    +import { ScullyLibModule } from '@scullyio/ng-lib';
    +
    +@NgModule({
    +  // ...
    +  imports: [
    +    // ...
    +    ScullyLibModule
    +  ]
    +})
    +export class AppModule { }
    +

    This module is used by Scully to hook into the angular router and to determine once the page Scully tries to enter is fully loaded and ready to be rendered by using the IdleMonitorService from Scully internally. +If we remove the import of the module, Scully will still work, but it takes much longer to render your site as it will use a timeout for accessing the pages. +So in that case even if a page has been fully loaded, Scully would wait until the timer is expired.

    +

    Turn it into a blog

    +

    Let’s go a bit further and turn our site into a simple blog that will render our blog posts from separate Markdown documents. +Scully brings this feature out of the box, and it’s very easy to set it up:

    +
    ng g @scullyio/init:blog                      # setup up the `BlogModule` and related sources
    +ng g @scullyio/init:post --name="First post"  # create a new blog post
    +

    After these two steps we can see that Scully has now added the blog directory to our project root. +Here we can find the markdown files for creating the blog posts — one file for each post. +We now have two files there: The initially created example file from Scully and this one we created with ng g @scullyio/init:post.

    +

    Let's go further

    +

    Now that we've got Scully installed and working, let's modify our Angular app to look more like an actual blog, and not just like the default Angular app. +Therefore, we want to get rid of the Angular auto generated content in the AppComponent first. +We can simply delete all the content of app.component.html except of the router-outlet:

    +
    <router-outlet></router-outlet>
    +

    Let’s run the build again and have a look at the results. +Scully assumes by default the route configuration hasn't changed meanwhile, and it can happen that it's not detecting the new bog entry we just created. +To be sure it will re-scan the routes, we will pass through the parameter --scan:

    +
    npm run build       # Angular build
    +npx scully --scan   # generate static build and force checking new routes
    +npx scully serve    # serve the scully results
    +

    When checking out our dist/static directory we can see that there are new subdirectories for the routes of our static blogging sites. +But what's that: When we will check the directory dist/static/blog/, we see somewhat like this:

    +
    blog/
    +┣ ___UNPUBLISHED___k9pg4tmo_2DDScsUiieFlld4R2FwvnJHEBJXcgulw
    +  ┗ index.html

    This feels strange, doesn't it? +But Checking the content of the file index.html inside will tell us it contains actually the content of the just created blog post. +This is by intention: This Scully schematic created the markdown file with a meta flag called published that is by default set to false. +The internally used renderer plugin from Scully will handle this flag, and it creates an unguessable name for the route. +This allows us to create blog post drafts that we can already publish and share by using the link for example to let someone else review the article. +You can also use this route if you don't care about the route name. +But normally you would just like to change the metadata in the Markdown file to:

    +
    published: true
    +

    After this, run the build process again and the files index.html in dist/static/blog/<post-name>/ contain now our static pages ready to be served. +When we are visiting the route path /blog/first-post we can see the content of our markdown source file blog/first-post.md is rendered as HTML.

    +

    If you want to prove that the page is actually really pre-rendered, just disable JavaScript by using your Chrome Developer Tools. +You can reload the page and see that the content is still displayed. +Awesome, isn't it?

    +

    a simple blog created with Scully

    +
    +

    When JavaScript is enabled, Scully configures your static sites in that way, that you will see initially the static content. +In the background it will bootstrap your Angular app, and refresh the content with it. +You won't see anything flickering.

    +
    +

    Hold on a minute! 😳

    +

    You may have realized: We haven’t written one line of code manually yet, and we have already a fully functional blogging site that’s server site rendered. Isn’t that cool? +Setting up an Angular based blog has never been easier.

    +
    +

    Good to know: Scully also detects new routes we are adding manually to our app, and it will create static sites for all those pages.

    +
    +

    Use the ScullyRoutesService

    +

    We want to take the next step. +Now we want to list an overview of all existing blog posts we have and link to their sites in our AppComponent. +Therefore, we can easily inject the ScullyRoutesService. +It will return us a list of all routes Scully found with the parsed information as a ScullyRoute array within the available$ observable. +We can easily inject the service and display the information as a list in our AppComponent.

    +
    import { Component } from '@angular/core';
    +import { ScullyRoutesService, ScullyRoute } from '@scullyio/ng-lib';
    +import { Observable } from 'rxjs';
    +
    +@Component({
    +  selector: 'app-root',
    +  templateUrl: './app.component.html',
    +  styleUrls: ['./app.component.css']
    +})
    +export class AppComponent {
    +  links$: Observable<ScullyRoute[]> = this.scully.available$;
    +
    +  constructor(private scully: ScullyRoutesService) {}
    +}
    +

    To display the results, we can simply use ngFor with the async pipe and list the results. +A ScullyRoute will give us the routing path inside the route key and all other markdown metadata inside their appropriate key names. +So we can extend for example our markdown metadata block with more keys (e.g. thumbnail: assets/thumb.jpg) and we can access them via those (blog.thumbnail in our case). +We can extend app.component.html like this:

    +
    <ul>
    +  <li *ngFor="let link of links$ | async">
    +    <a [routerLink]="link.route">{{ link.title }}</a>
    +  </li>
    +</ul>
    +
    +<hr />
    +
    +<router-outlet></router-outlet>
    +

    This will give us a fully routed blog page:

    +

    a simple blog created with scully

    +

    The ScullyRoutesService contains all the available routes in your app. +In fact, any route that we add to our Angular app will be detected by Scully and made available via the ScullyRoutesService.available$ observable. +To list only blog posts from the blog route and directory we can just filter the result:

    +
    /* ... */
    +import { map, Observable } from 'rxjs';
    +/* ... */
    +export class AppComponent {
    +  links$: Observable<ScullyRoute[]> = this.scully.available$.pipe(
    +    map(routeList => {
    +      return routeList.filter((route: ScullyRoute) =>
    +        route.route.startsWith(`/blog/`),
    +      );
    +    })
    +  );
    +
    +  constructor(private scully: ScullyRoutesService) {}
    +}
    +

    Wow! That was easy, wasn’t it? +Now you just need to add a bit of styling and content and your blog is ready for getting visited.

    +

    Fetch dynamic information from an API

    +

    As you may have realized: Scully needs a data source to fetch all dynamic routes in an app. +In case of our blog example Scully uses the :slug router parameter as a placeholder. +Scully will fill this placeholder with appropriate content to visit and pre-render the site. +The content for the placeholder comes in our blog example from the files in the /blog directory. +This has been configured from the schematics we ran before in the file scully.scully-blog.config.ts:

    +
    import { ScullyConfig } from '@scullyio/scully';
    +
    +/** this loads the default render plugin, remove when switching to something else. */
    +import '@scullyio/scully-plugin-puppeteer';
    +
    +export const config: ScullyConfig = {
    +  projectRoot: "./src",
    +  projectName: "scully-blog",
    +  outDir: './dist/static',
    +  routes: {
    +    '/blog/:slug': {
    +      type: 'contentFolder',
    +      slug: {
    +        folder: "./blog"
    +      }
    +    },
    +  }
    +};
    +

    I would like to show a second example. +Imagine we want to display information about books from an external API. +So our app needs another route called /books/:isbn. +To visit this route and pre-render it, we need a way to fill the isbn parameter. +Luckily Scully helps us with this too. +We can configure Router Plugin that will call an API, fetch the data from it and pluck the isbn from the array of results to fill it in the router parameter.

    +

    In the following example we will use the public service BookMonkey API (we provide this service for the readers of our German Angular book) as an API to fetch a list of books:

    +
    /* ... */
    +
    +export const config: ScullyConfig = {
    +  /* ... */
    +  routes: {
    +    /* ... */
    +    '/books/:isbn': {
    +      'type': 'json',
    +      'isbn': {
    +        'url': 'https://api3.angular-buch.com/books',
    +        'property': 'isbn'
    +      }
    +    }
    +  }
    +};
    +

    The result from the API will have this shape:

    +
    [
    +  {
    +    "title": "Angular",
    +    "subtitle": "Grundlagen, fortgeschrittene Themen und Best Practices – mit NativeScript und NgRx",
    +    "isbn": "9783864906466",
    +    // ...
    +  },
    +  {
    +    "title": "Angular",
    +    "subtitle": "Grundlagen, fortgeschrittene Techniken und Best Practices mit TypeScript - ab Angular 4, inklusive NativeScript und Redux",
    +    "isbn": "9783864903571",
    +    // ...
    +  },
    +  // ...
    +]
    +

    After Scully plucks the ISBN, it will just iterate over the final array: ['9783864906466', '9783864903571']. +In fact, when running Scully using npx scully, it will visit the following routes, after we have configured the route /books/:isbn in the Angular router (otherwise non-used routes will be skipped).

    +
    /books/9783864906466
    +/books/9783864903571

    We can see the result in the log:

    +
    enable reload on port 2667
    + ☺   new Angular build imported
    + ☺   Started servers in background
    +--------------------------------------------------
    +Watching blog for change.
    +--------------------------------------------------
    + ☺   new Angular build imported
    +Finding all routes in application.
    +Using stored unhandled routes
    +Pull in data to create additional routes.
    +Finding files in folder "//blog"
    +Route list created in files:
    +  "//src/assets/scully-routes.json",
    +  "//dist/static/assets/scully-routes.json",
    +  "//dist/scully-blog/assets/scully-routes.json"
    +
    +Route "/books/9783864903571" rendered into file: "//dist/static/books/9783864903571/index.html"
    +Route "/books/9783864906466" rendered into file: "//dist/static/books/9783864906466/index.html"
    +Route "/blog/12-27-2019-blog" rendered into file: "//dist/static/blog/12-27-2019-blog/index.html"
    +Route "/blog/first-post" rendered into file: "//dist/static/blog/first-post/index.html"
    +Route "/" rendered into file: "//dist/static/index.html"
    +
    +Generating took 3.3 seconds for 7 pages:
    +  That is 2.12 pages per second,
    +  or 473 milliseconds for each page.
    +
    +  Finding routes in the angular app took 0 milliseconds
    +  Pulling in route-data took 26 milliseconds
    +  Rendering the pages took 2.58 seconds

    This is great. We have efficiently pre-rendered normal dynamic content! +And that was it for today. +With the shown examples, it's possible to create a full-fledged website with Scully.

    +
    +

    Did you know that this blogpost and the overall website you are right now reading has also been created using Scully? +Feel free to check out the sources at: +github.com/d-koppenhagen/k9n.dev

    +
    +

    If you want to follow all the development steps in detail, check out my provided GitHub repository +scully-blog-example.

    +

    Conclusion

    +

    Scully is an awesome tool if you need a pre-rendered Angular SPA where all routes can be accessed immediately without loading the whole app at once. +This is a great benefit for users as they don’t need to wait until the bunch of JavaScript has been downloaded to their devices. +Visitors and search engines have instantly access to the sites' information. +Furthermore, Scully offers a way to create very easily a blog and renders all posts written in Markdown. +It will handle and pre-render dynamic routes by fetching API data from placeholders and visiting every route filled by this placeholder.

    +

    Compared to "classic" pre-rending by using Angular Universal, Scully is much easier to use, and it doesn't require you to write a specific flavor of Angular. +Also, Scully can easily pre-render hybrid Angular apps or Angular apps with plugins like jQuery in comparison to Angular Universal. +If you want to compare Scully with Angular Universal in detail, check out the blog post from Sam Vloeberghs: Scully or Angular Universal, what is the difference?

    +

    If you want to dig a bit deeper into the features Scully offers, check out my second article.

    +

    Thank you

    +

    Special thanks go to Aaron Frost (Frosty ⛄️) from the Scully core team, Ferdinand Malcher and Johannes Hoppe for revising this article.

    +
    + + + + \ No newline at end of file diff --git a/blog/2020-02-angular9/index.html b/blog/2020-02-angular9/index.html new file mode 100644 index 00000000..6a470c3e --- /dev/null +++ b/blog/2020-02-angular9/index.html @@ -0,0 +1,322 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + k9n.dev | Angular 9 ist da! Die wichtigsten Neuerungen im Überblick + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + \ No newline at end of file diff --git a/blog/2020-03-dig-deeper-into-scully-ssg/index.html b/blog/2020-03-dig-deeper-into-scully-ssg/index.html new file mode 100644 index 00000000..adeb9b48 --- /dev/null +++ b/blog/2020-03-dig-deeper-into-scully-ssg/index.html @@ -0,0 +1,522 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + k9n.dev | Dig deeper into static site generation with Scully and use the most out of it + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    Dig deeper into static site generation with Scully and use the most out of it

    Stichwörter

    Artikelserie

    1. Create powerful fast pre-rendered Angular Apps using Scully static site generator
    2. Dig deeper into static site generation with Scully and use the most out of it

    Dig deeper into static site generation with Scully and use the most out of it

    +

    If you haven't heard about Scully yet, you should first check out my introduction article about it: »Create powerful fast pre-rendered Angular Apps using Scully static site generator«.

    +

    In my last blog post I gave you a short introduction to Scully and how to easily set up a very simple blogging website that is server-side rendered and ready to be shipped for production. +In the following article I will introduce some more advanced things you can do with Scully. +You will learn how you can setup a custom Markdown module or even use Asciidoc instead of Markdown. +I will guide you through the process of how to handle protected routes using a custom route plugin.

    +
    +

    This blog post is based on versions:

    +
    @scullyio/ng-lib: 1.1.1
    +@scullyio/init: 1.1.4
    +@scullyio/scully: 1.1.1
    +
    + +

    Generate a post with a meta data template

    +

    As we already created our blogging site using Scully, we want to fill it with content now. +We already learned how we can use the @scullyio/init:post schematic to easily generate a new blog post. +Often posts do not only need the content, but also some meta information like thumbnail or author. +This meta information can be processed by the ScullyRouteService and it will be converted to JSON. +It can be quite handy to always remember to add such information right after creating a new post. +To make things easier we can specify a YAML template file with the meta information that will always be added when creating a new blog post using the schematic, like the following one:

    +
    description: <fill in a short description for the overview page>
    +published: false
    +author:
    +  name: Danny Koppenhagen
    +  mail: mail@k9n.dev
    +updated: dd.mm.yyyy
    +keywords:
    +  - Angular
    +language: en
    +thumbnail: images/default.jpg
    +

    We can use the template when calling the @scullyio/init:post schematic:

    +
    ng g @scullyio/init:post --name="a new post" --meta-data-file=meta.yml
    +

    When we check our blog directory now we will see that the schematic added our YAML template to the meta data section of the newly created post file a-new-post.md.

    +
    +

    If you have trouble remembering to add the meta-data-file option, just add a script to your package.json without the name option. +When you call the script using npm run <script-name> you will be prompted to input the file name.

    +
    +

    Generate a custom Markdown module

    +

    Let's assume we want to add another module to our blogging website. +We want to have a projects section in our site that lists some information about current projects we are working on. +Like for our blog section, we want to easily write our content using Markdown. +To do so, we can use the @scullyio/init:markdown schematic:

    +
    ng g @scullyio/init:markdown --name=projects --slug=projectId --sourceDir=projects --route=projects
    +

    Let's have a look at the options we set:

    +
      +
    • name: This is the base name for the generated Angular module that Scully created for us.
    • +
    • slug: Here we define the placeholder name for the URL that will be filled with the basename of the Markdown files.
    • +
    • sourceDir: That's where we will store our Markdown files whose content is rendered by the Scully Markdown file plugin.
    • +
    • route: This is the name for the route before the :slug in the URLs where we can see our rendered content later.
    • +
    +
    +

    Good to know: Under the hood the @scullyio/init:blog schematic just calls @scullyio/init:markdown with default options set. So in fact it's just a shortcut.

    +
    +

    The basic things we need for our projects page are now available. +Let's have a look at it and see if it's working:

    +
    npm run build                   # Angular build
    +npm run scully -- --scanRoutes  # generate static build and force checking new routes
    +npm run scully serve            # serve the scully results
    +

    the initial projects post generated with the Markdown schematic

    +

    The AsciiDoc File Handler Plugin

    +

    Scully provides another File Handler Plugin out-of-the-box: The AsciiDoc plugin. +When you want to put the generated post files in a specific directory (not blog), you can define this via the target option.

    +
    ng g @scullyio/init:post --name="asciidoc example" --target=projects
    +

    The generated file will be a Markdown file initially. +Let's change the file extension, rename it to *.adoc and add a bit of content after it has been generated:

    +
    :title: 2020-01-21-projects
    +:description: blog description
    +:published: false
    +
    += 2020-01-21-projects
    +
    +Let's show some source code!
    +
    +.index.html
    +[#src-listing]
    +[source,html]
    +----
    +<div>
    +  <span>Hello World!</span>
    +</div>
    +----
    +

    And finally we build our project again and see if it works:

    +
    npm run build                   # Angular build
    +npm run scully -- --scanRoutes  # generate static build and force checking new routes
    +npm run scully serve            # serve the scully results
    +

    Great, as we can see: AsciiDoc files will be rendered as well out-of-the-box.

    +

    a scully rendered asciidoc file

    +

    You can also define your own File Handler Plugin for other content formats. +Check out the official docs for it to see how it works.

    +

    Protect your routes with a custom plugin

    +

    Let's assume we have a protected section at our site that should only be visible for specific users. +For sure we can secure this space using an Angular Route Guard that checks if we have the correct permissions to see the pages.

    +

    Scully will by default try to identify all available app routes. +In fact it will also try to visit the protected pages and pre-render the result. +When Scully tries to do this, the Angular route guard kicks in and redirects us to an error or login page. +The page shown after the redirect is the page Scully will see and render. +This default behaviour is pretty okay, as Scully won't expose any protected information by creating static content from the protected data. +However, on the other hand, we don't want to pre-render such pages at all, so we need a way to tell Scully what pages to exclude from the rendering. +Another scenario you can imagine is when a page displays a prompt or a confirm dialog. +When Scully tries to render such pages it runs into a timeout and cannot render the page:

    +
    ...
    +Puppeteer error while rendering "/secure" TimeoutError: Navigation timeout of 30000 ms exceeded

    To prevent Scully from rendering specific pages we can simply create a custom plugin that will skip some routes.

    +

    To do so, we will create a new directory extraPlugin with the file skip.js inside:

    +
    const { registerPlugin, log, yellow } = require('@scullyio/scully');
    +
    +function skipPlugin(route, config = {}) {
    +  log(`Skip Route "${yellow(route)}"`);
    +  return Promise.resolve([]);
    +}
    +
    +const validator = async conf => [];
    +registerPlugin('router', 'skip', skipPlugin, validator);
    +module.exports.skipPlugin = skipPlugin;
    +

    We will import the function registerPlugin() which will register a new router plugin called skip. +The last parameter is the plugin function skipPlugin() that will return a promise resolving the routes. +It receives the route and options for the route that should be handled. +We will simply return an empty array as we won't proceed routes handled by the plugin. +We can use the exported log() function from Scully to log the action in a nice way.

    +

    Last but not least we will use the skip plugin in our scully.scully-blog.config.ts configuration file and tell the plugin which routes to handle:

    +
    import { ScullyConfig } from '@scullyio/scully';
    +
    +require('./extraPlugin/skip');
    +
    +export const config: ScullyConfig = {
    +  // ...
    +  routes: {
    +    // ...
    +    '/secure': { type: 'skip' },
    +  }
    +};
    +

    Checking the plugin by running npm run scully will output us the following result:

    +
     ☺   new Angular build imported
    + ☺   Started servers in background
    +Finding all routes in application.
    +...
    +Skip Route "/secure"
    +...

    Perfect! As you can see the route is ignored by Scully now.

    +

    You can have a look at a more detailed example in my scully-blog-example repository.

    +

    Conclusion

    +

    In this follow-up article you learned how to add a custom Markdown module to Scully and how you can use the AsciiDoc plugin for rendering adoc files. +What is more, you can now handle protected routes by using a custom Scully route plugin.

    +

    Thank you

    +

    Special thanks go to Jorge Cano from the Scully core team and Ferdinand Malcher for revising this article.

    +
    + + + + \ No newline at end of file diff --git a/blog/2020-06-angular10/index.html b/blog/2020-06-angular10/index.html new file mode 100644 index 00000000..3b24971b --- /dev/null +++ b/blog/2020-06-angular10/index.html @@ -0,0 +1,322 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + k9n.dev | Angular 10 ist da! Die wichtigsten Neuerungen im Überblick + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + \ No newline at end of file diff --git a/blog/2020-08-my-development-setup/index.html b/blog/2020-08-my-development-setup/index.html new file mode 100644 index 00000000..b26ab705 --- /dev/null +++ b/blog/2020-08-my-development-setup/index.html @@ -0,0 +1,920 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + k9n.dev | My Development Setup + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    My Development Setup

    Stichwörter

    In the following article I will present you what tools I am using during my day-to-day development workflow. +Also, I will show you a list of extensions and their purpose that will help me and probably you too being more productive.

    +

    Introduction

    +

    As a developer I always give my best to be productive, to write good and well documented source code and to share my knowledge. +For all this, I use great tools and extensions that will help me to get the most of it and working faster and cleaner. +Those tools and extensions help me during my everyday life as a developer for:

    +
      +
    • Development of Angular, Vue.js apps,
    • +
    • sharing knowledge with recordings, GIFs, screenshots, code snippets etc.,
    • +
    • writing good documentation, and
    • +
    • being more productive in general.
    • +
    +

    Both at work and in my free time I am working on an Apple MacBook Pro. +But most of the tools and software listed here is available for Windows, macOS and Linux distributions.

    +

    Software

    +

    Let's get started with some basic software that I use.

    +

    iTerm2

    +

    The default Terminal app for macOS fulfills its purpose but for being more productive I can recommend the terminal application iTerm2.

    +

    I am using iTerm2 since a long time and it's a great tool with lots of configuration options. +You can create tabs, use profiles and customize styles and layouts.

    +

    Screenshot: iTerm2

    +

    Cakebrew – macOS only

    +

    If you are on a Mac, you probably know Homebrew – the package manager for macOS. +If you don't know Homebrew: You should definitely check it out. +Personally I prefer to install most of my Software via Homebrew as I can easily manage updates later without having to manually download the packages. +However, since I don't remember all Homebrew commands all the time and to get an overview of the installed packages, I use a Homebrew GUI called CakeBrew. +This lets me easily update and manage my installed Homebrew packages.

    +

    Screenshot: CakeBrew

    +

    NVM

    +

    Working on multiple projects requires sometimes different environments. +As a web developer Node.js is essential and should always be up-to-date but sometimes you need to use different versions of Node.js and NPM for different projects. +NVM (Node Version Manager) let's you easily install and switch between multiple Node.js Versions. +My recommendation is also to check-in the .nvmrc file in every project to help other team members to use the right version of Node.js automatically.

    +

    Fork

    +

    As a developer, version control with Git is essential for your development workflow. +Personally I do all of the basic operations via the command line, like creating commits, adding files to the staging area, pulling and pushing. +However, there are some things where I prefer to use a GUI for assistance:

    +
      +
    • graphical overview of commits and branches (history)
    • +
    • interactive rebase
    • +
    • managing multiple remote repositories
    • +
    +

    Fork is a very nice, clean and powerful Git GUI that helps you to control Git in an easy and interactive way.

    +

    Screenshot: Fork

    +

    Visual Studio Code

    +

    In the last years, Microsoft has improved its free IDE Visual Studio Code a lot, and with every frequent release it gets even more powerful. +One of the things that makes VSCode such a great IDE is the wide range of available extensions and plugins. +VSCode is a very universal and adoptable IDE which has great support and tools for lots of programming languages. +So it doesn't matter if you develop a web application, a mobile app using e.g. Flutter, a C# or a Python app: You can use VSCode for all of that and you don't need to get start using a new specific IDE for each and every specific language.

    +

    Screenshot: VSCode

    +

    Later in this article, I will present you a list of my favorite extensions for VSCode.

    +

    Chrome

    +

    As a web developer, a modern browser like Google Chrome is essential. +In my opinion the developer and debugging tools are more mature compared to Firefox. +Chrome is also very up-to-date in terms of the latest JavaScript features and it has a wide range of extensions you can install that will help you to even be more productive developing web applications.

    +

    Screenshot: Google Chrome

    +

    A list of my favorite extensions for Google Chrome can be found further down in this article.

    +

    Insomnia

    +

    Insomnia is a great and simple tools that's very easy to use when you want to interact with REST or GraphQL endpoints. It has a very simple UI but it's powerful nonetheless. +You can call endpoints, check their responses and also create batch requests or save your requests for using them later again. +I personally prefer Insomnia over Postman which I used before and which is also very powerful. +However, in my opinion the UI of Postman got a bit confusing during the last years by introducing new features.

    +

    Screenshot: Insomnia

    +

    draw.io

    +

    From time to time as a developer you need to illustrate things and flows. +For this, I mostly use draw.io. It's available as a web application but also as an installable desktop version. +Draw.io provides a lot of basic icons and vector graphics for network illustrations, UML, diagrams, engineering icons for circuits and much more.

    +

    Screenshot: draw.io

    +

    RecordIt

    +

    When I develop extensions for VSCode or other tools I always give my best to present users how to use these tools. +The best way to present things is in a visual way as a screenshot or a GIF / video screencast. +This supplements the textual description and thus, can be processed more easily by users. +RecordIt lets you record your screen and create small screencasts that can be shared via a simple URL as a video or GIF.

    +

    Screenshot: RecordIt

    +

    KeyCastr

    +

    Recording screencasts can be supplemented by displaying the keys you are pressing during the recording. +This is a great way to present keyboard shortcuts without having to manually explain which keys you're using. +For that purpose I use the tool KeyCastr.

    +

    Screenshot: KeyCastr

    +

    Visual Studio Code Extensions

    +

    Since Visual Studio Code Version 1.48.0 the Feature Settings Sync became stable and available for everyone. +This feature allows you to sync your settings between different installations of VSCode using your Microsoft or GitHub account. +When you've installed VSCode on multiple machines and you always want to have the instances in sync, you should definitely set up this feature.

    +

    The next part is all about the VSCode extensions I am using so let's walk quickly over the plugins I've installed on my VSCode instances:

    +

    Appearance

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Bracket Pair Colorizer 2
    This tool will colorize opening and closing brackets in different colors, so you get a better overview in your code.
    Note: Visual Studio Code now includes native support for bracket pair colorization which is way faster than using the extension.
    Color Highlight
    After installing this extension it will highlight all valid web color values with their appropriate color so that you can directly see the color.
    Image Preview
    After installing this plugin, you will see a little preview image right next to your code line number when a source code line contains a valid image file path.
    Indented Block Highlighting
    This extensions highlights the intented area that contains the cursor.
    Indent Rainbow
    This plugin colorizes the different indentation levels. This is especially helpful when writing YAML files or Python applications where the indentations play an important role for the code semantics.
    Log File Highlighter
    If you ever have to investigate a bunch of log files you will love this plugin. It highlights log information like the severity or timestamps so it will be easier for you to inspect them.
    Peacock
    Peacock is great when you are working with multiple VSCode windows at the same time. You can simply colorize them to quickly find out which project is currently open.
    Rainbow CSV
    This extension will colorize each column in a CSV file in a different color, so you can better read the file contents.
    TODO Highlight
    This extension will highlight TODO, FIXME and some other annotations within comments in your code.
    + + +

    Docs

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    AsciiDoc
    The AsciiDoc Plugin gives you syntax highlighting, a preview and snippets for the AsciiDoc format.
    Code Review
    This is an extension I wrote by myself. It allows you to create expert reviews / code reviews for a workspace that can be exported as a formatted HTML report or importable CSV/JSON file.
    This extension is pretty helpful if you are doing for example one-time code reviews for customers or probably students but you don't have direct access to a Gitlab or GitHub repository where you can directly add comments in a merge/pull request.
    emojisense
    I personally like using emojis and I use them in README.md files for my open source projects at GitHub. However, one thing I always have to look up are the emjoykey for the supported GitHub emojis. With this extension I have an autocompletion and I can search for them.
    File Tree to Text Generator
    An extension I created by myself: It lets you generate file / directory trees for Markdown, LaTeX, ASCII or even a custom format right from your VSCode file explorer.
    Markdown Preview Mermaid support
    Have you ever visualized things in your README.md file? Thanks to Mermaid.js you can easily create beautiful flowcharts, sequence diagrams and more. This plugin enables the preview support in VSCode for mermaid diagrams embedded in your markdown files.
    Markdown All in One
    This extension enables some great helpful features when writing Markdown files such as table of contents generation, auto-formatting the document and it gives you a great autocompletion feature.
    + + +

    Graphics

    + + + + + + + + + + + + + + + +
    Draw.io Integration
    This extension integrates the draw.io editor in VSCode. You can directly edit draw.io associated files.
    SVG
    This extension will give you SVG code highlight and preview support. You can even export the SVG directly from the preview as a *.png graphic.
    + + +

    JavaScript / TypeScript

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    ESLint
    This extensions detects your ESLint configuration for code conventions and displays the violations. Furthermore, it offers you to quick fix detected violations against some rules.
    Import Cost
    With this plugin installed, projects using webpack will be analyzed for their imports and the bundle size they will have. The resulting size is displayed right next to the import. This helps you to identify very big imported libs.
    JavaScript (ES6) code snippets
    This extension brings some great snippets for JavaScript / TypeScript like a short snippet clg for writing console.log() or imp for import <foo> from '<foo>';.
    Jest
    The Jest extension gives you auto completion and color indicators for successful / failing Jest tests.
    Vitest
    A Test Explorer and helper for Tests using Vite and Vitest.
    JS Refactor
    This extension gives you a lot of JavaScript refactoring utilities like convert to arrow function or rename variable.
    LintLens
    With this extension, metadata and usage information for ESLint rules will be displayed beside each rule.
    npm
    This extension let's you run your NPM scripts right from your package.json file.
    Sort JSON Objects
    With this extension you can simply right click on a JSON object and sort the items inside.
    Visual Studio IntelliCode
    Installing this extension will give you an even better IntelliSense which is AI-assisted.
    Version Lens
    With Version Lens you can directly see the currently installed and the latest versions of a package in your package.json file.
    + + +

    HTML/Handlebars/CSS/SASS/SCSS/LESS

    + + + + + + + + + + + + + + + + + + + + + + + +
    CSS Peak
    With this extension you can see and edit your CSS definitions from a related stylesheet directly from your HTML files.
    IntelliSense for CSS class names in HTML
    This plugin gives you auto suggestions for CSS class names in your HTML templates.
    Web Accessibility
    Using this plugin helps you to find accessibility violations in your markup and displays hints for WAI-ARIA best practices.
    stylelint
    Lint CSS/SCSS/SASS/Less Style definitions
    + + +

    Angular

    + + + + + + + + + + + + + + + +
    Angular Language Service
    When you are developing an Angular app, this extension is essential: It gives you quick info, autocompletion and diagnostic information.
    Angular Follow Selector
    This extensions allows you to click on Angular selectors in the template and get redirected to their definition in the component.
    + + +

    Vue.js

    + + + + + + + + + + + + + + + + + + + +
    Volar
    Volar gives you tooling for Vue3 development.
    Vetur
    Vetur gives you tooling for Vue2 development.
    Vue Peak
    This extension gives you Go To Definition and Peek Definition support for Vue components.
    + + +

    Handlebars

    + + + + + + + + + + + + + + + +
    Handlebars
    This extension provides you with code snippets for Handlebars files as well as with syntax highlighting.
    Handlebars Preview
    With the Handlebars Preview extension you can put a JSON file right next to your Handlebars template and the plugin will inject the data into the template to display a preview of how it would look like.
    + + + +

    Git

    + + + + + + + + + + + + + + + +
    Git Temporal
    Git Temporal is a great plugin for interactively searching in your git history based on a timeline. You can even mark ranges on a timeline to see all the changes in between the chosen time range.
    GitLens
    Show the authorship of code lines right next to them. This can help you a lot if you may not understand some part of the code: just check out who created it and ask for support.
    + + +

    Other

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Auto Correct
    You may be like me and there are some words you'll always spell wrong or you making the same typo all the time. One of my common mistakes is to write seperate instead of separate. With this plugin you can define such words or patterns that will be automatically replaced with the correctly spelled word.
    Code Spell Checker
    With this extension your code is checked for common typos and such unknown words will be highlighted as you may know it from Microsoft Word or other text editor software.
    DotENV
    This extensions highlights the configuration in .env files
    Excel Viewer
    If you open and edit CSV or Excel files from VSCode, you will probably need this extension. This allows you to display the data in a formatted table that you can sort and filter.
    Debugger for Chrome
    This debugger extensions allows you to debug your JavaScript code in the Google Chrome browser from your code editor.
    Docker
    The Docker extension easily lets you create, manage, and debug your applications containerized with Docker. It also gives you IntelliSense for your related Docker configuration files.
    EditorConfig
    This plugin will check your workspace for an EditorConfig configuration file and applies these settings to your workspace.
    Live Server
    With the Live Server extension you can open an HTML file in the browser and the server watches for changes and refreshes the Browser preview.
    Nx Console
    This plugin gives you a UI for Nx Monorepos and the Nx CLI.
    Path Intellisense
    This plugin brings you autocompletion for filenames.
    Polacode
    With Polacode you can mark code lines and create screenshots from the selection. This is great for e.g. presentations or sharing stuff on Twitter.
    Prettier
    Prettier is – in my opinion – the best code formatter especially when working with JavaScript / TypeScript. The extension for Prettier will allow you to set up Prettier as default formatter for VSCode or just for specific programming languages.
    {
    "editor.defaultFormatter": "esbenp.prettier-vscode",
    "[javascript]": {
    "editor.defaultFormatter": "esbenp.prettier-vscode"
    }
    }
    Regexp Explain
    Running this extension will let you explore regular expressions visually in a realtime preivew editor
    Visual Studio Code Commitizen Support
    This plugin adds a command panel for creating Conventional Commits with support.
    vsc-nvm
    Automatically use the right Node.js version form the NVM.
    YAML
    This extension gives you a comprehensive YAML language support.
    Zeplin
    If you work with Zeplin, this official plugin provides you with quick access to your designs.
    httpYac
    This is a very powerful tool to place directly executable API call snippets next to your code. You can even use environment variables for dynamic replacement of part of URLs, headers oder the body of an HTTP call.
    + + +

    Google Chrome Extensions

    +

    Google Chrome is great and it already brings a lot of possibilities that help developers to improve their web apps. +However, there are some really great plugins I am using that I can recommend:

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Angular DevTools
    A must have addon for all Angular Developers that will help you profile and debug and optimize your Angular app.
    Vue.js DevTools
    This extension helps you to profile, debug and optimize your Vue app.
    Aqua Buddy
    Stay hydrated by using Aqua Buddy! It will notify you to drink some water frequently.
    Axe
    Axe helps you to improve the grade of accessibility of your site.
    Chrome Capture
    This extension lets you record and share screenshots, videos and GIFs from a website.
    Chrome Regex Search
    Ever wanted to search on a site for more complex expressions? With this extension you can search a sites content by entering regular expressions.
    Export Selective Bookmarks
    This extensions lets you select specific directories and bookmarks from all your bookmarks to export them. Perfect if you want to help colleagues to onboard in your team or project.
    JSON Viewer Awesome
    This extension will automatically detect and format JSON files once you open them by calling the URL.
    Lighthouse
    Lighthouse analyzes your site for performance, accessibility and other common things and gives you a site score as well as some useful information how to improve your site.
    Pesticide
    Activating these extension lets you outline all elements on a site so that you can easier analyze paddings, margins and borders.
    Web Developer
    With this extension you will get a toolbox for website manipulation and testing tools. You can e.g. easily disable JavaScript or styles to see how your site behaves.
    + + + +

    Scripts and other tools

    +

    Dotfiles

    +

    Personally, I like to keep my Mac up-to-date and therefore I will install most of my software via the Homebrew package manager. +Also, to be more efficient I use the oh-my-zsh framework for managing my shell configuration. +Most of my configurations is also published in my GitHub repository called .dotfiles.

    +

    Exclude all node_modules from TimeMachine backups (macOS only)

    +

    One thing I learned during my career is: backup, backup, backup. +It's better to have one more backup than data loss. +Fortunately, on a macOS system it's possible to set up Apple's TimeMachine for creating continuous system backups. +However, backing up everything takes a lot of time and there are things you don't need to back up like directories syncing with a cloud provider like Dropbox, Sharepoint, etc. +Those directories can easily be excluded from the TimeMachine backup by configuration. +This will keep the backups smaller and also in case of a restore, the system ready to use after a much shorter time. +But what about node_modules directories? +For sure: You can exclude them in the same way, but this is very sophisticated and you always need to remember this step once you create a new project. +Therefore, I am using a simple script. +It looks for all node_modules directories in my development directory (~/dev in my case) and excludes them from the backup:

    +
    #!/bin/bash
    +# exclude all `node_modules` folders within the dev directory
    +find "$HOME/dev" -name 'node_modules' -prune -type d -exec tmutil addexclusion {} \; -exec tmutil isexcluded {} \;
    +echo "Done. The excluded files won't be part of a time machine backup anymore."
    +

    To be sure the script updates the list of excluded directories frequently, I added a cronjob:

    +
    crontab -e
    +

    The actual cronjob config is the following:

    +
    0 12 * * *  cd $HOME/dev/.dotfiles && ./time-machine-excludes.sh # every day at 12:00
    +

    Feedback

    +

    Now as you know my dev setup, it's your turn! Is there any great tool or plugin you can recommend? +Then just contact me via E-Mail or Bluesky and let me know!

    +

    Thank you

    +

    Special thanks goes to Ferdinand Malcher for revising this article.

    +
    + +

    Photo by Todd Quackenbush on Unsplash

    +
    + + + + \ No newline at end of file diff --git a/blog/2020-09-angular-schematics-common-helpers/index.html b/blog/2020-09-angular-schematics-common-helpers/index.html new file mode 100644 index 00000000..da3f68ad --- /dev/null +++ b/blog/2020-09-angular-schematics-common-helpers/index.html @@ -0,0 +1,1160 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + k9n.dev | Speed up your Angular schematics development with useful helper functions + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    Speed up your Angular schematics development with useful helper functions

    Stichwörter

    Original veröffentlicht auf inDepth.dev.

    Angular CLI schematics offer us a way to add, scaffold and update app-related files and modules. However, there are some common things we will probably want integrate in our schematics: updating your package.json file, adding or removing an Angular module or updating component imports.

    +

    Currently, the way of authoring an Angular Schematic is documented on angular.io. +However, there is one big thing missing there: the way of integrating typical and repeating tasks. +The Angular CLI itself uses schematics for e.g. generating modules and components, adding imports or modifying the package.json file. +Under the hood each of the schematics uses some very common utils which are not yet documented but available for all developers anyway. +In the past, I've seen some Angular CLI Schematic projects where people were trying to implement almost the same common util methods on their own. +However, since some of these are already implemented in the Angular CLI, I want to show you some of those typical helpers that you can use for you Angular CLI Schematic project to prevent any pitfalls.

    +

    ⚠️ Attention: not officially supported

    +

    The helper functions I present you in this article are neither documented nor officially supported, and they may change in the future. +Alan Agius, member of the Angular CLI core team replied in a related issue (#15335) for creating a public schematics API reference:

    +
    +

    [...] those utils are not considered as part of the public API and might break without warning in any release.

    +
    +

    So, there are plans to provide some utilities via a public API but this is still in the planning stage. +While things evolve, it's my intention to keep this article as up-to-date as possible.

    +
    +

    The following Angular CLI schematics util functions are based on the Angular CLI version 12.0.0.

    +
    +

    If you use these functions and they will break in the future, you can check out the source code changes for the utility functions and adjust your code.

    +

    🕹 Examples and playground on GitHub

    +

    To follow and try out the examples I present you in this article, I prepared a playground repository on GitHub. +Clone this repo and check out the README.md inside to get started with the playground. 🚀

    +

    Create an Angular schematics example project

    +

    First things first: We need a project where we can try things out. +You can either use an existing schematics project or simply create a new blank one:

    +
    npx @angular-devkit/schematics-cli blank --name=playground
    +
    +

    If you are not familar with the basics of authoring schematics, I recommend you to read the Angular Docs and the blog post "Total Guide To Custom Angular schematics" by Tomas Trajan first as well as the article series "Angular Schematics from 0 to publishing your own library" by Natalia Venditto first.

    +
    +

    After setting up the new blank project we should have this file available: src/playground/index.ts.

    +
    import { Rule, SchematicContext, Tree } from '@angular-devkit/schematics';
    +
    +export function playground(_options: any): Rule {
    +  return (tree: Tree, _context: SchematicContext) => {
    +    console.log('schematic works');
    +    return tree;
    +  };
    +}
    +

    This is the base for the following examples and explanations. +Please make sure that you can execute the blank schematic by calling it on the console:

    +
    npx @angular-devkit/schematics-cli .:playground
    +

    or if you installed the schematics CLI globally via npm i @angular-devkit/schematics-cli:

    +
    schematics .:playground
    +

    The . refers to the current directory where our schematics project lives.

    +

    Check out the basic example in the playground repository on GitHub

    +

    Basic types

    +

    In case you are not familiar with the structure of schematics, I will just explain some very basic things shortly:

    +
      +
    • A Tree is the structured virtual representation of every file in the workspace which we apply the schematic to.
    • +
    • A Rule is called with a Tree and a SchematicContext. The Rule is supposed to make changes on the Tree and returns the adjusted Tree.
    • +
    • The SchematicContext contains information necessary for the schematics to execute some rules.
    • +
    +

    Install the helpers from @schematics/angular

    +

    A second thing we need to do is to install the package @schematics/angular which contains all the utils we need for the next steps. +This package contains all the schematics the Angular CLI uses by itself when running commands like ng generate or ng new etc.

    +
    npm i --save @schematics/angular
    +

    Changing the package.json: Get, Add and Remove (dev-, peer-) dependencies

    +

    A very common thing when authoring a schematic is adding a dependency to the package.json file. +Of course, we can implement a function that parses and writes to/from our JSON file. +But why should we solve a problem that's already solved?

    +

    For this, we can use the functions provided by @schematics/angular/utility/dependencies to handle dependency operations. +The function addPackageJsonDependency() allows us to add a dependency object of type NodeDependency to the package.json file. +The property type must contain a value of the NodeDependencyType enum. +Its values represent the different sections of a package.json file:

    +
      +
    • dependencies,
    • +
    • devDependencies,
    • +
    • peerDependencies and
    • +
    • optionalDependencies.
    • +
    +

    The first parameter to this util function is the Tree with all its files. +The function will not just append the dependency to the appropriate section, it will also insert the dependency at the right position, so that the dependencies list is ordered ascending by its keys.

    +

    We can use the getPackageJsonDependency() function to request the dependency configuration as a NodeDependency object. +The good thing here is: We don't need to know in which of the sections a dependency is located. It will look up the dependency in sections of the package.json file: dependencies, devDependencies, peerDependencies and optionalDependencies.

    +

    The third function I want to show is removePackageJsonDependency(). +Just like getPackageJsonDependency(), it can be called with a Tree and the package name and it will remove this dependency from the package.json file.

    +

    By default, all these functions will use the package.json file in the root of the tree, but we can pass a third parameter containing a specific path to another package.json file.

    +

    Last but not least we don't want our users to manually run npm install on the console after adding dependencies. +Therefore, we can add a new NodePackageInstallTask via the addTask method on our context.

    +
    import { Rule, SchematicContext, Tree } from '@angular-devkit/schematics';
    +import { NodePackageInstallTask } from '@angular-devkit/schematics/tasks';
    +import {
    +  NodeDependency,
    +  NodeDependencyType,
    +  getPackageJsonDependency,
    +  addPackageJsonDependency,
    +  removePackageJsonDependency,
    +} from '@schematics/angular/utility/dependencies';
    +
    +export function playground(_options: any): Rule {
    +  return (tree: Tree, context: SchematicContext) => {
    +    const dep: NodeDependency = {
    +      type: NodeDependencyType.Dev,
    +      name: 'moment',
    +      version: '~2.27.0',
    +      overwrite: true,
    +    };
    +
    +    addPackageJsonDependency(tree, dep);
    +    console.log(getPackageJsonDependency(tree, 'moment'))
    +    // { type: 'devDependencies', name: 'moment', version: '~2.27.0' }
    +
    +    removePackageJsonDependency(tree, 'protractor');
    +    console.log(getPackageJsonDependency(tree, 'protractor'))
    +    // null
    +
    +    context.addTask(new NodePackageInstallTask(), []);
    +
    +    return tree;
    +  };
    +}
    +

    To really check that the NodePackageInstallTask is properly executed, you need to disable the schematics debug mode that's enabled by default during development and local execution:

    +
    schematics .:playground --debug=false
    + +

    Add content on a specific position

    +

    Sometimes we need to change some contents of a file. +Independently of the type of a file, we can use the InsertChange class. +This class returns a change object which contains the content to be added and the position where the change is being inserted.

    +

    In the following example we will create a new file called my-file.extension with the content const a = 'foo'; inside the virtual tree. +First, we will instantiate a new InsertChange with the file path, the position where we want to add the change and finally the content we want to add. +The next step for us is to start the update process for the file using the beginUpdate() method on our tree. +This method returns an object of type UpdateRecorder. +We can now use the insertLeft() method and hand over the position and the content (toAdd) from the InsertChange. +The change is now marked but not proceeded yet. +To really update the file's content we need to call the commitUpdate() method on our tree with the exportRecorder. +When we now call tree.get(filePath) we can log the file's content and see that the change has been proceeded. +To delete a file inside the virtual tree, we can use the delete() method with the file path on the tree.

    +

    Let's have a look at an implementation example:

    +
    import { Rule, SchematicContext, Tree } from '@angular-devkit/schematics/';
    +import { InsertChange } from '@schematics/angular/utility/change';
    +
    +export function playground(_options: any): Rule {
    +  return (tree: Tree, _context: SchematicContext) => {
    +    const filePath = 'my-file.extension';
    +    tree.create(filePath, `const a = 'foo';`);
    +
    +    // insert a new change
    +    const insertChange = new InsertChange(filePath, 16, '\nconst b = \'bar\';');
    +    const exportRecorder = tree.beginUpdate(filePath);
    +    exportRecorder.insertLeft(insertChange.pos, insertChange.toAdd);
    +    tree.commitUpdate(exportRecorder);
    +    console.log(tree.get(filePath)?.content.toString())
    +    // const a = 'foo';
    +    // const b = 'bar';
    +
    +    tree.delete(filePath); // cleanup (if not running schematic in debug mode)
    +    return tree;
    +  };
    +}
    + +

    Determine relative path to the project root

    +

    You might want to determine the relative path to your project root e.g. for using it in a template you want to apply in some location of your application. +To determine the correct relative import path string for the target, you can use the helper function relativePathToWorkspaceRoot().

    +
    import {
    +  Rule,
    +  SchematicContext,
    +  Tree,
    +  url,
    +  apply,
    +  template,
    +  mergeWith
    +} from '@angular-devkit/schematics/';
    +import { relativePathToWorkspaceRoot } from '@schematics/angular/utility/paths';
    +
    +export function playground(_options: any): Rule {
    +  return (_tree: Tree, _context: SchematicContext) => {
    +    const nonRootPathDefinition = 'foo/bar/'; // "./foo/bar" | "foo/bar/" work also
    +    const rootPathDefinition = ''; // "." | "./" work also
    +    console.log(relativePathToWorkspaceRoot(nonRootPathDefinition));
    +    // "../.."
    +    console.log(relativePathToWorkspaceRoot(rootPathDefinition));
    +    // "."
    +
    +    const sourceTemplates = url('./files');
    +    return mergeWith(
    +      apply(
    +        sourceTemplates, [
    +          template({
    +            relativePathToWorkspaceRoot: relativePathToWorkspaceRoot(nonRootPathDefinition),
    +          }),
    +        ]
    +      )
    +    );
    +  };
    +}
    +

    If you have e.g. a JSON file template in the directory files and you want to insert the path, you can use the helper function in the template as follows:

    +
    {
    +  "foo": "<%= relativePathToWorkspaceRoot %>/my-file-ref.json"
    +}
    +

    For more details about how to use and apply templates in your own schematics, check out the blog post by Tomas Trajan: "Total Guide To Custom Angular schematics" and the article series "Angular Schematics from 0 to publishing your own library" by Natalia Venditto.

    + +

    Add TypeScript imports

    +

    In the previous section we learned how to add content to some file. +However, this way for changing a file isn't the best and only works well when we know the exact position where to add some content. +Now imagine a user changes the format of the file before: This would lead to problems with finding the correct file position.

    +

    In many cases we want to modify TypeScript files and insert code into them. +And indeed there are also lots of utils that will help us to manage such operations.

    +

    Imagine you want the schematic to import the class Bar in a specific file from the file bar.ts; +You could simply add the whole import line but there are edge cases: +What if the target file already contains an import or even a default import from bar.ts. +In that case we would have multiple import lines for bar.ts which causes problems.

    +

    Luckily there is another great helper that takes care of adding imports or updating existing ones. +The function insertImport() needs the source file to update and the path to the file followed by the import name and the file path for the import to be added. +The last parameter is optional – if set to true, the import will be added as a default import.

    +
    import * as ts from 'typescript';
    +import { Rule, SchematicContext, Tree } from '@angular-devkit/schematics/';
    +import { insertImport } from '@schematics/angular/utility/ast-utils';
    +import { InsertChange } from '@schematics/angular/utility/change';
    +
    +export function playground(_options: any): Rule {
    +  return (tree: Tree, _context: SchematicContext) => {
    +    const filePath = 'some-file.ts';
    +    const fileContent = `import { Foo } from 'foo';
    +const bar = 'bar;
    +`;
    +    tree.create(filePath, fileContent);
    +    const source = ts.createSourceFile(
    +      filePath,
    +      fileContent,
    +      ts.ScriptTarget.Latest,
    +      true
    +    );
    +    const updateRecorder = tree.beginUpdate(filePath);
    +    const change = insertImport(source, filePath, 'Bar', './bar', true);
    +    if (change instanceof InsertChange) {
    +      updateRecorder.insertRight(change.pos, change.toAdd);
    +    }
    +    tree.commitUpdate(updateRecorder);
    +    console.log(tree.get(filePath)?.content.toString())
    +    return tree;
    +  };
    +}
    +

    The example above will add the content import Bar from './bar'; right before the constant. +As we marked it as default import, the import name is not put in curly braces ({ }).

    + +

    Update NgModule

    +

    Now we know how we can modify TypeScript imports using the util functions. +However, just importing something isn't enough in most cases. +There are common things like importing a component and adding it to the NgModule in the declarations array or inserting a module in the imports section. +Luckily, there are some helpers provided for these operations. +These function also based on the insertImport() function, so that they will handle existing file imports and just update the import lists accordingly.

    +

    Add a declaration to a module

    +

    The first thing I want to show you is how you can add a component to the declarations of an NgModule. +For this, let's assume you create a schematic that adds a new DashboardComponent to your project. +You don't need to add the import manually and then determine the right place to insert the component to the declarations of the NgModule. +Instead, you can use the addDeclarationToModule() function exported from @schematics/angular/utility/ast-utils.

    +

    In the following example we will create an AppModule from the moduleContent using ts.createSourceFile() first. +Then we will register the updateRecorder as learned in the examples before. +Now we call the addDeclarationToModule() function with the source file and the module path followed by the name of the component we want to import and the relative path to the module where we can find the component. +As a result it returns us an array of Change objects that contain the positions and the contents for the change. +Finally, we can handle these changes one-by-one by iterating over the array. +For all changes of type InsertChange we can now call the method updateRecorder.insertleft() with the position of the change and the content to be added.

    +
    import * as ts from 'typescript';
    +import { Rule, SchematicContext, Tree } from '@angular-devkit/schematics/';
    +import { addDeclarationToModule } from '@schematics/angular/utility/ast-utils';
    +import { InsertChange } from '@schematics/angular/utility/change';
    +
    +export function playground(_options: any): Rule {
    +  return (tree: Tree, _context: SchematicContext) => {
    +    const modulePath = 'app.module.ts';
    +    const moduleContent = `import { BrowserModule } from '@angular/platform-browser';
    +import { NgModule } from '@angular/core';
    +import { AppComponent } from './app.component';
    +
    +@NgModule({
    +  declarations: [
    +    AppComponent
    +  ],
    +  imports: [
    +    BrowserModule
    +  ],
    +  providers: [],
    +  bootstrap: [AppComponent]
    +})
    +export class AppModule { }
    +`;
    +    tree.create(modulePath, moduleContent);
    +
    +    const source = ts.createSourceFile(
    +      modulePath,
    +      moduleContent,
    +      ts.ScriptTarget.Latest,
    +      true
    +    );
    +    const updateRecorder = tree.beginUpdate(modulePath);
    +    const changes = addDeclarationToModule(
    +      source,
    +      modulePath,
    +      'DashboardComponent',
    +      './dashboard.component'
    +    ) as InsertChange[];
    +    for (const change of changes) {
    +      if (change instanceof InsertChange) {
    +        updateRecorder.insertLeft(change.pos, change.toAdd);
    +      }
    +    }
    +    tree.commitUpdate(updateRecorder);
    +    console.log(tree.get(modulePath)?.content.toString())
    +
    +    return tree;
    +  };
    +}
    +

    When we execute this schematic now, we can see in the log that the following import line has been added to the file:

    +
    /* ... */
    +import { DashboardComponent } from './dashboard.component';
    +
    +@NgModule({
    +  declarations: [
    +    AppComponent,
    +    DashboardComponent
    +  ],
    +  /* ... */
    +})
    +export class AppModule { }
    +

    NgModule: add imports, exports, providers, and bootstrap

    +

    Similar to the previous example we can re-export something we imported by using the addExportToModule() function and adding an import to the NgModule by using addImportToModule(). +We can also modify the providers, and bootstrap arrays by using addProviderToModule() and addBootstrapToModule(). +Again, it will take care of all the things necessary such as extending and creating imports, checking for existing entries in the NgModule metadata and much more.

    +
    /* ... */
    +import {
    +  addImportToModule,
    +  addExportToModule,
    +  addProviderToModule,
    +  addBootstrapToModule
    +} from '@schematics/angular/utility/ast-utils';
    +/* ... */
    +
    +export function playground(_options: any): Rule {
    +  return (tree: Tree, _context: SchematicContext) => {
    +    /* ... */
    +    const exportChanges = addExportToModule(
    +      source,
    +      modulePath,
    +      'FooModule',
    +      './foo.module'
    +    ) as InsertChange[];
    +    const importChanges = addImportToModule(
    +      source,
    +      modulePath,
    +      'BarModule',
    +      './bar.module'
    +    ) as InsertChange[];
    +    const providerChanges = addProviderToModule(
    +      source,
    +      modulePath,
    +      'MyProvider',
    +      './my-provider.ts'
    +    ) as InsertChange[];
    +    const bootstrapChanges = addBootstrapToModule(
    +      source,
    +      modulePath,
    +      'MyComponent',
    +      './my.component.ts'
    +    ) as  InsertChange[];
    +    /* ... */
    +    console.log(tree.get(modulePath)?.content.toString())
    +    return tree;
    +  };
    +}
    +

    Our result will now look like this:

    +
    import { BrowserModule } from '@angular/platform-browser';
    +import { NgModule } from '@angular/core';
    +import { AppComponent } from './app.component';
    +import { FooModule } from './foo.module';
    +import { BarModule } from './bar.module';
    +import { MyProvider } from './my-provider.ts';
    +import { MyComponent } from './my.component.ts';
    +import { BazComponent } from './baz.component.ts';
    +
    +@NgModule({
    +  declarations: [
    +    AppComponent
    +  ],
    +  imports: [
    +    BrowserModule,
    +    BarModule
    +  ],
    +  providers: [MyProvider],
    +  bootstrap: [MyComponent],
    +  exports: [FooModule]
    +})
    +export class AppModule { }
    +

    Add route declarations

    +

    Let's have a look at another common scenario: We want our schematic to insert a route definition to a module that calls RouterModule.forRoot() or .forChild() with a route definition array. +For this, we can use the helper function addRouteDeclarationToModule() which returns a Change object which we need to handle as an InsertChange.

    +
    import * as ts from 'typescript';
    +import { Rule, SchematicContext, Tree } from '@angular-devkit/schematics/';
    +import { addRouteDeclarationToModule } from '@schematics/angular/utility/ast-utils';
    +import { InsertChange } from '@schematics/angular/utility/change';
    +
    +export function playground(_options: any): Rule {
    +  return (tree: Tree, _context: SchematicContext) => {
    +    const modulePath = 'my-routing.module.ts';
    +    const moduleContent = `import { NgModule } from '@angular/core';
    +
    +    const myRoutes = [
    +      { path: 'foo', component: FooComponent }
    +    ];
    +
    +    @NgModule({
    +      imports: [
    +        RouterModule.forChild(myRoutes)
    +      ],
    +    })
    +    export class MyRoutingModule { }
    +`;
    +    tree.create(modulePath, moduleContent);
    +
    +    const source = ts.createSourceFile(
    +      modulePath,
    +      moduleContent,
    +      ts.ScriptTarget.Latest,
    +      true
    +    );
    +    const updateRecorder = tree.beginUpdate(modulePath);
    +    const change = addRouteDeclarationToModule(
    +      source,
    +      './src/app',
    +      `{ path: 'bar', component: BarComponent }`
    +    ) as InsertChange;
    +    updateRecorder.insertLeft(change.pos, change.toAdd);
    +    tree.commitUpdate(updateRecorder);
    +    console.log(tree.get(modulePath)?.content.toString())
    +
    +    return tree;
    +  };
    +}
    +

    The example above will insert the route definition object { path: 'bar', component: BarComponent } into the myRoutes array by finding the variable associated in forRoot() or forChild().

    + +

    Retrieve the Angular workspace configuration

    +

    Each Angular app lives in an Angular workspace containing an angular.json configuration file. +If we want to get either the path to the workspace configuration file or the configuration from the file itself, we can use the getWorkspacePath() and getWorkspace() functions by passing in the current Tree object.

    +
    import { Rule, SchematicContext, Tree } from '@angular-devkit/schematics';
    +import { getWorkspacePath, getWorkspace } from '@schematics/angular/utility/config';
    +
    +export function playground(_options: any): Rule {
    +  return (tree: Tree, _context: SchematicContext) => {
    +    // returns the path to the Angular configuration file
    +    // ('/angular.json' or probably `.angular.json` for older Angular projects)
    +    console.log(getWorkspacePath(tree));
    +
    +    // returns the whole configuration object from the 'angular.json' file
    +    console.log(JSON.stringify(getWorkspace(tree), null, 2));
    +  };
    +}
    +

    To try out things locally, we need to execute the schematics from an Angular app root path on our system. +To do so, navigate into an existing Angular app or create a new one for testing purposes. +Then, execute the schematic from there by using the relative path to the src/collection.json file and adding the schematic name after the colon (:).

    +
    ng new some-test-project --routing  # create a new test project
    +cd some-test-project      # be sure to be in the root of the angular project
    +# assume the schematics project itself is located relatively to the angular project in '../playground'
    +schematics ../playground/src/collection.json:playground # execute the 'playground' schematic
    + +

    Get default path for an app inside the workspace

    +

    An Angular workspace can contain multiple applications or libraries. +To find their appropriate main paths, you can use the helper function createDefaultPath(). +We need to pass in the Tree object and the name of the app or library we want to get the path for.

    +
    import { Rule, SchematicContext, Tree } from '@angular-devkit/schematics';
    +import { createDefaultPath } from '@schematics/angular/utility/workspace';
    +
    +export function playground(_options: any): Rule {
    +  return async (tree: Tree, _context: SchematicContext) => {
    +    const defaultPath = await createDefaultPath(tree, 'my-lib');
    +    console.log(defaultPath); // '/projects/my-lib/src/lib'
    +  };
    +}
    +

    Let's create a new library inside our testing Angular app called my-lib, to try it out:

    +
    ng g lib my-lib  # create a new library inside the Angular workspace
    +# assume the schematics project itself is located relatively to the angular project in '../playground'
    +schematics ../playground/src/collection.json:playground # execute the 'playground' schematic
    + +

    Call schematics from schematics

    +

    If you run a schematic, you may come to the point where one schematic should execute another one. +For example: You create schematics for generating a specific component. +You also develop a ng add or ng new schematic to set up things for you and create an example component by default. +In such cases you may want to combine multiple schematics.

    +

    Run local schematics using the RunSchematicTask

    +

    First we want to use the RunSchematicTask class to achieve our goal. +Let's say we have a collection file like the following:

    +
    {
    +  "$schema": "../node_modules/@angular-devkit/schematics/collection-schema.json",
    +  "schematics": {
    +    "ng-add": {
    +      "description": "Demo that calls the 'playground' schematic inside",
    +      "factory": "./ng-add/index#ngAdd"
    +    },
    +    "playground": {
    +      "description": "An example schematic.",
    +      "factory": "./playground/index#playground"
    +    }
    +  }
    +}
    +

    The factory for ng-add is located in src/ng-add/index.ts. +Then inside this schematic we can call a new RunSchematicTask with the name of the schematic we want to execute and the project name from the Angular workspace. +To really execute the operation we need to pass the task to the context.

    +
    import { Rule, SchematicContext, Tree } from '@angular-devkit/schematics';
    +import { RunSchematicTask } from '@angular-devkit/schematics/tasks';
    +
    +export function ngAdd(_options: any): Rule {
    +  return (tree: Tree, _context: SchematicContext) => {
    +    context.addTask(
    +      new RunSchematicTask('playground', { project: 'test-workspace' })
    +    );
    +    return tree;
    +  };
    +}
    +

    To check if it works we can fill our playground (src/playground/index.ts) schematic as follows and log the call:

    +
    import { Rule, SchematicContext, Tree } from '@angular-devkit/schematics';
    +
    +export function playground(_options: any): Rule {
    +  return (tree: Tree, _context: SchematicContext) => {
    +    console.log('schematic \'playground\' called');
    +    return tree;
    +  };
    +}
    +

    If we now run schematics ../playground/src/collection.json:ng-add --debug=false from our example Angular project, we can see that the ng-add schematic has called the playground schematic.

    +

    With this knowledge you can define small atomic schematics that can be executed "standalone" or from another Schematic that combines multiple standalone schematics and calls them with specific parameters.

    + +

    Run schematics by using the schematic() and externalSchematic() function

    +

    Perfect, we can now execute and combine our schematics. +But what if we want to combine external schematics developed by others and integrate them in our own schematics? +Users are lazy, so we don't want to leave it up to them to manually execute some other things before running our schematics.

    +

    Imagine you are working in a big company with multiple different Angular projects. +This company already has its own standardized UI library, but all the applications are very different and ran by different teams (so not really a use case for a Monorepo). +However, there are also things they all have in common like a Single Sign-On. +Also, the basic design always looks similar – at least the header and the footer of all the apps.

    +

    I've often seen companies building a reference implementation for such apps that's then cloned / copied and adjusted by all developers. +However, there are some problems with this kind of workflow:

    +
      +
    • You always have to keep the reference project up-to-date.
    • +
    • You have to clean up your copy of the project from stuff you don't need.
    • +
    • You need to tell all teams to copy this reference to keep track of changes and to adjust their copies frequently.
    • +
    +

    Thus, a better solution in my opinion is to use schematics for the whole integration and upgrade workflow. +You can create an ng new schematic that will scaffold the whole project code for you. +But you don't want to start from scratch, so you probably want to combine things like these:

    +
      +
    • ng add: Add your schematics to an existing project
        +
      • Corporate UI library (always)
      • +
      • Single Sign-On (optional)
      • +
      • Header Component (optional)
      • +
      • Footer Component (optional)
      • +
      +
    • +
    • ng new: Create a new project with your company defaults
        +
      • Create the basic application generated by the Angular CLI (externalSchematic)
      • +
      • Run the ng add Schematic
      • +
      +
    • +
    +

    Alright, we already know how we can achieve most of these things. +However, there's one thing we haven't learned yet: How to run other (external) schematics? +We can use the externalSchematic function for this.

    +

    But first things first, let's check if our collection file is ready to start:

    +
    {
    +  "$schema": "../node_modules/@angular-devkit/schematics/collection-schema.json",
    +  "schematics": {
    +    "ng-add": {
    +      "description": "Call other schematics from the same or other packages",
    +      "factory": "./ng-add/index#playground"
    +    },
    +    "ng-new": {
    +      "description": "Execute `ng new` with predefined options and run other stuff",
    +      "factory": "./ng-new/index#playground"
    +    }
    +  }
    +}
    +
    +

    Using the special Schematic names ng-add and ng-new let's you later use the schematic by just executing ng add/ng new (instead of other schematics called with ng generate). +There is also a special Schematic named ng-update which will be called in the end with the ng update Angular CLI command.

    +
    +

    After we defined the schema, we can now start to implement our schematics. +To execute an external Schematic, it must be available in the scope of the project.. +However, since we want to create a completely new project with the ng new Schematic, we don't have any node_modules installed in the target directory where we want to initialize the Angular workspace. +To run an external command we can use the spawn method from child_process (available globally for Node.js). +This creates a new process that executes a command (in our case: npm install @schematics/angular). +To make things look synchronous we wrap the method call into a Promise and await for the Promise to be resolved. +Now we listen to the close event from spawn and check that there was no error during install (code equals 0). +If everything worked fine, we will resolve the Promise, otherwise we can throw an error. +The last step is to chain all of our Rules: +We first use the externalSchematic() function to run the ng new Schematic from Angular itself and set up the basic app. +We will hand over some default options here such a using SCSS, support legacy browsers, strict mode, etc. +Angulars ng new schematic requires also, that we define the specific version for their schematic to be used. +In our case we want to use the ng new schematic from the Angular CLI version 12.0.0. +The second call is our ng add Schematic that adds our company specific components, UI libs and so on to the project.

    +
    +

    We've already learned how to run a local Schematic by using the RunSchematicTask class that we need to add to our context object. +In this example we are using the schematic() function to achieve the same goal. +Why are there two ways? To be honest: I actually don't know. +I found both implementations in the source code of Angular CLI.

    +
    +
    import {
    +  Rule,
    +  SchematicContext,
    +  Tree,
    +  externalSchematic,
    +  schematic,
    +  chain
    +} from '@angular-devkit/schematics';
    +import {
    +  Schema as AngularNgNewSchema,
    +  PackageManager,
    +  Style
    +} from '@schematics/angular/ng-new/schema';
    +import { spawn } from 'child_process';
    +
    +export function playground(options: AngularNgNewSchema): Rule {
    +  return async (_tree: Tree, _context: SchematicContext) => {
    +    const angularSchematicsPackage = '@schematics/angular';
    +    const ngNewOptions: AngularNgNewSchema = {
    +      version: '12.0.0',
    +      name: options.name,
    +      routing: true,
    +      strict: true,
    +      legacyBrowsers: true,
    +      style: Style.Scss,
    +      packageManager: PackageManager.Npm
    +    }
    +    await new Promise<boolean>((resolve) => {
    +      console.log('📦 Installing packages...');
    +      spawn('npm', ['install', angularSchematicsPackage])
    +        .on('close', (code: number) => {
    +          if (code === 0) {
    +            console.log('📦 Packages installed successfully ✅');
    +            resolve(true);
    +          } else {
    +            throw new Error(
    +              `❌ install Angular schematics from '${angularSchematicsPackage}' failed`
    +            );
    +          }
    +        });
    +    });
    +    return chain([
    +      externalSchematic(angularSchematicsPackage, 'ng-new', ngNewOptions),
    +      schematic('ng-add', {})
    +    ]);
    +  };
    +}
    +

    When we now run the ng new Schematic from somewhere outside an Angular workspace, we can see that first of all the Angular ng new Schematic is executed with our predefined settings. +After this, the ng add schematics is called.

    +
    schematics ./playground/src/collection.json:ng-new --debug=false
    +📦 Installing packages...
    +📦 Packages installed successfully
    +? What name would you like to use for the new workspace and initial project? my-project
    +CREATE my-project/README.md (1027 bytes)
    +CREATE my-project/.editorconfig (274 bytes)
    +CREATE my-project/.gitignore (631 bytes)
    +CREATE my-project/angular.json (3812 bytes)
    +...
    +CREATE my-project/src/app/app.component.scss (0 bytes)
    +CREATE my-project/src/app/app.component.html (25757 bytes)
    +CREATE my-project/src/app/app.component.spec.ts (1069 bytes)
    +CREATE my-project/src/app/app.component.ts (215 bytes)
    +CREATE my-project/src/app/package.json (816 bytes)
    +CREATE my-project/e2e/protractor.conf.js (869 bytes)
    +CREATE my-project/e2e/tsconfig.json (294 bytes)
    +CREATE my-project/e2e/src/app.e2e-spec.ts (643 bytes)
    +CREATE my-project/e2e/src/app.po.ts (301 bytes)
    + Installing packages...
    + Packages installed successfully.
    +schematic works
    +

    After you have deployed the Schematic, you can now execute it by running:

    +
    npm i -g my-schematic-package-name # install the Schematic so it's available globally
    +ng new my-app --collection=my-schematic-package-name # Run the Angular CLI's `ng new` Schematic with the defined collection
    +

    Similar to this example you can call the ng add Schematic from the collection if you are in an existing Angular workspace:

    +
    ng add my-schematic-package-name
    + +

    Conclusion

    +

    The presented util functions are great and comfortable helpers you can use to create your own Angular CLI schematics. +However, as they aren't officially published until now, you should keep track of any changes by keeping an eye on the documentation issue (#15335) and changes on the related code.

    +

    Summary

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    FunctionDescription
    getPackageJsonDependency()Get a package configuration from the package.json (dev-, peer-, optional-) dependencies config.
    addPackageJsonDependency()Add a NPM package to the package.json as (dev-, peer-, optional-) dependency.
    removePackageJsonDependency()Remove a NPM package from the package.json (dev-, peer-, optional-) dependencies.
    relativePathToWorkspaceRoot()Get the relative import path to the root of the workspace for a given file inside the workspace.
    insertImport()Insert an import statement for a file to an existing TypeScript file.
    addDeclarationToModule()Import a declaration (e.g. Component or Directive) and add it to the declarations array of an Angular module.
    addImportToModule()Import an Angular Module and add it to the imports array of another Angular module.
    addExportToModule()Import an Angular Module and add it to the exports array of another Angular module.
    addProviderToModule()Import a service / provider and add it to the providers array of an Angular module.
    addBootstrapToModule()Import a Component and add it to the bootstrap array of an Angular module.
    addRouteDeclarationToModule()Add a route definition to the router configuration in an Angular routing module.
    getWorkspacePath()Retrieve the path to the Angular workspace configuration file (angular.json).
    getWorkspace()Get the configuration object from the Angular workspace configuration file (angular.json)
    createDefaultPath()Get the default application / library path for a project inside an Angular workspace.
    + + + + + + + + + + + + + + + + + + + +
    ClassDescription
    InsertChangeThis class returns a change object with the content to be added and the position where a change is being inserted.
    NodePackageInstallTaskA task instance that will perform a npm install once instantiated and added to the context via addTask().
    RunSchematicTaskA task that runs another schematic after instantiation and adding it to the context via addTask().
    +

    Thank you

    +

    Special thanks goes to Minko Gechev, Tomas Trajan and Ferdinand Malcher for the feedback and revising this article.

    +
    +
    + + + + \ No newline at end of file diff --git a/blog/2020-11-angular11/index.html b/blog/2020-11-angular11/index.html new file mode 100644 index 00000000..fbee4d35 --- /dev/null +++ b/blog/2020-11-angular11/index.html @@ -0,0 +1,322 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + k9n.dev | Angular 11 ist da! Die wichtigsten Neuerungen im Überblick + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + \ No newline at end of file diff --git a/blog/2020-11-twa/index.html b/blog/2020-11-twa/index.html new file mode 100644 index 00000000..60e03d81 --- /dev/null +++ b/blog/2020-11-twa/index.html @@ -0,0 +1,716 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + k9n.dev | Trusted Web Activitys (TWA) mit Angular + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    Trusted Web Activitys (TWA) mit Angular

    Stichwörter

    Original veröffentlicht auf angular-buch.com.

    Artikelserie

    1. Mach aus deiner Angular-App eine PWA
    2. Trusted Web Activitys (TWA) mit Angular

    Progressive Web Apps sind in den letzten Jahren immer populärer geworden. +Sie erlauben es uns, Webanwendungen auf dem Home-Bildschirm des Smartphones zu installieren und wie eine nativ installierte App zu benutzen. +Mit einer PWA können wir Daten mithilfe eines Service Workers cachen, um die Anwendung auch offline zu verwenden. +Weiterhin kann eine PWA im Hintergrund Push-Benachrichtigungen vom Server empfangen und anzeigen.

    +
    +

    Wenn Sie noch keine Erfahrung mit der Umsetzung einer Angular-App als PWA haben, schauen Sie sich unseren Blog-Post "Mach aus deiner Angular-App eine PWA" an oder werfen Sie einen Blick in unser Angular-Buch, wo wir dieses Thema detailliert erläutern.

    +
    +

    Nach der Entwicklung einer PWA bleibt jedoch eine Hürde bestehen: Nutzer der Anwendung müssen die URL kennen, über welche die PWA abrufbar ist und installiert werden kann. +Viele Smartphone-Nutzer sind jedoch einen anderen Weg gewohnt, um eine App zu installieren: +Sie suchen danach in einem App Store wie dem Google Play Store unter Android oder App Store unter iOS.

    +

    In diesem Blogpost wollen wir Ihnen zeigen, wie Sie Ihre PWA auf einfachem Weg in den Google Play Store für Android bringen können, ohne eine echte Android-App mit Webview zu entwickeln, die lediglich eine Website aufruft.

    +
    +

    Zur Zeit gibt es noch keine Möglichkeit, PWAs in Apples App Store zu deployen.

    +
    +

    Trusted Web Activities vs. Webview-Integration

    +

    Um PWAs als Android-App bereitzustellen, benötigen wir eine Art App-Wrapper, der schließlich die PWA aufruft und somit unsere Webanwendung darstellen kann.

    +

    In der Vergangenheit wurde dies oft durch Android-Apps umgesetzt, die lediglich einen sogenannten WebView integrieren. +Hinter diesem Feature versteckt sich ein integrierter Webbrowser in der Android-App, der lediglich den Inhalt der Website darstellt. +Dieser Weg funktioniert für eine Vielzahl von Websites, gerät jedoch an seine Grenzen, wenn es sich bei der Website um eine PWA handelt. +Der Grund: In einem Webview funktionieren die essenziellen Service Worker nicht. +Somit können wir Features wie die Offlinefähigkeit nicht einfach in die Anwendung integrieren. +Weiterhin birgt ein Webview ein gewisses Sicherheitsrisiko, weil lediglich die URL den Inhalt der Anwendung bestimmt und keinerlei Überprüfung des tatsächlichen Contents stattfindet. +Wird also beispielsweise eine Website "gekapert", bekommt der Nutzer ggf. den Inhalt einer falschen Seite angezeigt.

    +

    Bei einer TWA hingegen wird die PWA lediglich so erweitert, dass sie als Android-App direkt deployt werden kann. +Über einen Sicherheitsschlüssel kann verifiziert werden, dass die aufgerufene URL zur App passt.

    +

    TWAs im Detail

    +

    Die Grundidee einer TWA ist schnell erklärt: Statt einer vollumfänglichen Android-App, die einen Browser implementiert und eine URL aufruft, wird bei einer TWA leidglich die PWA um eine App-Schicht erweitert, sodass sie im Google Play Store veröffentlicht werden kann. +Es muss also auch kein eingebetteter Browser in der App integriert werden, sondern es wird auf den vorhandenen Google Chrome Browser zurückgegriffen. +Voraussetzung hierfür ist, dass auf dem Android-Gerät die Version 72 oder höher von Google Chrome verfügbar ist. +Beim Öffnen der PWA wird Chrome mit der hinterlegten URL geöffnet, und es werden sämtliche UI-Elemente des Browsers ausgeblendet. +Im Prinzip passiert also genau das, was auch geschieht, wenn wir eine PWA über die Funktion "Add To Homescreen" auf Smartphone speichern, jedoch in Form einer App, die über den Google Play Store gefunden und installiert werden kann. +Somit bleiben Features wie Push-Benachrichtigungen, Hintergrundsynchronisierungen, Autofill bei Eingabeformularen, Media Source Extensions oder die Sharing API vollumfänglich erhalten. +Ein weiterer Vorteil einer solchen TWA ist, dass Session-Daten und der Cache im Google Chrome geteilt werden. +Haben wir uns also beispielsweise bei unserer Web-Anwendung zuvor im Browser angemeldet, so belibt die Anmeldung in der Android-App (TWA) bestehen.

    +

    Die Bezeichnung "Trusted Web Activity" lässt bereits darauf schließen: TWAs sind trusted, also vertraulich. +Durch eine spezielle Datei, die mit der Webanwendung ausgeliefert wird und die einen Fingerprint enthält, kann sichergestellt werden, dass die Anwendung vertrauenswürdig ist, und der Inhalt kann somit sicher geladen werden.

    +

    Eine PWA als TWA in den Android Store bringen

    +

    Genug der Theorie -- wir wollen nun erfahren, wie wir eine PWA im Android Store als TWA bereitstellen können.

    +

    Dafür müssen wir folgende Schritte durchführen:

    +
      +
    • Einen Android Developer Account registieren
    • +
    • Die Android-App in der Google Play Console erstellen
    • +
    • Die App-Signatur erzeugen
    • +
    • Den App-Signaturschlüssel in der PWA hinterlegen
    • +
    • Die TWA mit der Bubblewrap CLI erzeugen
    • +
    • Die signierte App bauen
    • +
    • Die App über die Google Play Console veröffentlichen
    • +
    +

    Wir wollen als Grundlage für dieses Beispiel die Angular-Anwendung BookMonkey aus dem Angular-Buch verwenden, die bereits als PWA vorliegt. +Möchten Sie die Schritte selbst nachvollziehen, können Sie die Anwendung über GitHub herunterladen:

    +

    https://github.com/book-monkey4/book-monkey4-pwa

    +
    git clone https://ng-buch.de/bm4-pwa.git

    Die Online-Version der PWA können Sie unter der folgenden URL abrufen:

    +

    https://bm4-pwa.angular-buch.com/

    +

    Weiterhin benötigen Sie für die Erstellung der TWA folgende Voraussetzungen auf dem Entwicklungssystem:

    + +

    Einen Android Developer Account registrieren

    +
    +

    Sofern Sie bereits einen Account für die Google Play Console besitzen, können Sie diesen Schritt überspringen.

    +
    +

    Um eine App im Google Play Store einzustellen, benötigen wir zunächst einen Account für die Google Play Console. +Den Account können Sie über den folgenden Link registrieren:

    +

    https://play.google.com/apps/publish/signup

    +

    Bei der Registrierung wird eine einmalige Registrierungsgebühr in Höhe von 25 USD erhoben. Diese Gebühr gilt für sämtliche Apps, die Sie mit dem hinterlegten Google-Account registrieren wollen.

    +

    Google Play Console: Registrierung

    +

    Die Android-App in der Google Play Console erstellen

    +

    Nach der Registierungs müssen wir uns in der Google Play Console einloggen. +Anschließend können wir über den Menüpunkt "Alle Apps" mit dem Button "App erstellen" eine neue Anwendung anlegen. +Hier legen wir den Namen der Anwendung, die Standardsprache, den Anwendungstypen (App oder Spiel) sowie den Preis der Anwendung fest. +Weiterhin müssen wir den Programmierrichtlinien für Entwickler sowie den Exportbestimmungen der USA zustimmen.

    +

    Google Play Console: Eine neue Anwendung erzeugen

    +

    Danach gelangen wir zum Dashboard für die neue Android-App. +Hier arbeiten wir uns im folgenden durch die Ersteinrichtung der App durch. +Jeder abgeschlossene Punkt wird entsprechend in der Liste markiert. +Alle Einstellungen finden sich auch im Nachhinein links im Menü wieder und können auch noch später angepasst werden.

    +

    Google Play Console: Dashboard - Ersteinrichtung

    +
      +
    • App-Zugriff: Hier hinterlegen Sie informationen, die darlegen, wie auf die App bei der Überprüfung vor der Freigabe im Google Play Store zugegriffen werden kann. +Benötigen die Tester z. B. einen speziellen Account oder Standort oder ist die Anwendung frei zugänglich?
    • +
    • Anzeigen: An dieser Stelle geben Sie an, ob ihre App Werbung enthält oder nicht.
    • +
    • Einstufung des Inhalts: Sie werden zu einem Fragebogen zur Überprüfung der Altersfreigaben geleitet, den Sie ausfüllen müssen. +Anschließend erhalten Sie eine Bewertung, die Ihnen die Alterseinstufung der Anwendung für verschiedene Länder angibt.
    • +
    • Zielgruppe: An dieser Stelle geben Sie an, welche Zielgruppe (Altersgruppe) von ihrer Anwendung adressiert wird und ob die Anwendung auch für Kinder interessant ist. +Je nach Auswahl kann es sein, dass Sie zusätzlich eine Datenschutzerklärung hinterlegen müssen.
    • +
    • App-Kategorie auswählen und Kontaktdaten angeben: Hier gelangen Sie zu den Play Store Einstellungen. +Sie legen hier die Kategorie der App fest in der sie später im Play Store auftauchen soll. +Weiterhin können Sie Tags vergeben und Sie müssen Kontaktdaten für den Store-Eintrag hinterlegen.
    • +
    • Store-Eintrag einrichten: Dieser Punkt führt Sie zur Hauptkonfiguration des Eintrags für den Google Play Store. +Sie müssen hier eine kurze sowie eine vollständige Beschreibung der Anwendung, eine App Icon und Screenshots der Anwendung hinterlegen.
    • +
    +

    Haben wir alle Punkte für die Ersteinrichtung abgeschlossen, verschwindet der Abschnitt auf unserem Dashboard und wir können uns der Bereitstellung der App widmen. +Dafür benötigen wir ein Release und eine App-Signatur.

    +

    Die App-Signatur und das Release erzeugen

    +

    Nach der Ersteinrichtung gilt es unsere App im Play Store bereitzustellen. +Befinden wir uns auf dem Dashboard, so wird uns eine Übersicht über verschiedene Möglichkeiten zur Veröffentlichung der Anwendung gezeigt.

    +

    Google Play Console: Dashboard - App veröffentlichen

    +

    Diese Wege repräsentieren die sogenannten Tracks. +Ein solcher Track kann verschiedene Ausprägungen haben:

    +
      +
    • Interner Test: Releases, die zum Test für einen bestimmten Personenkreis beispielsweise über einen Link bereitgestellt werden können
    • +
    • Geschlossener Test: Releases, die nur bestimmten Personen zum Download als Vorab-Release (Alpha Release) zur Verfügung stehen.
    • +
    • Offener Test: Releases, die für jeden Nutzer im Google Play Store bereitgestellt werden, aber als Vorab-Release (Beta Release) gekennzeichnet sind. Offene Tracks können auch auf eine bestimmte Anzahl von Nutzer begrenzt werden
    • +
    • Vorregistrierung: Releases, deren Store-Eintrag bereits vor Veröffentlichung der Anwendung erstellt werden soll. Nutzer können sich bereits registrieren und erhalten eine Benachrichtigung, sobald die Anwendung verfügbar ist.
    • +
    • Produktion: Releases, die für jeden Nutzer im Google Play Store bereitgestellt werden
    • +
    +

    In unserem Szenario wollen wir unsere App direkt bis in den Google Play Store bringen, um zu verifizieren, dass diese auch tatsächlich von allen Nutzern gefunden und installiert werden kann. +Hierfür nutzen wir den Track für den offenen Test und erstellen ein Beta-Release. +Dafür klicken wir unter der Überschrift "Beliebigen Nutzern die Registrierung für das Testen deiner App bei Google Play erlauben" auf "Aufgaben einblenden". +Hier klicken wir zunächst auf "Länder und Regionen auswählen".

    +

    Google Play Console: Dashboard - Einen offenen Track anlegen

    +

    Wir gelangen nun in das Untermenü zur Erstellung eines offenen Test Tracks und legen die Länder fest, in denen unsere Anwendung im Google Play Store verfügbar sein soll. +Anschließend erstellen wir ein neues Release.

    +

    Im nächsten Schritt benötigen wir nun die App, die wir unter "App Bundles und APKs" hinterlegen müssen. +Damit diese App jedoch erzeugt und verifiziert werden kann, erzeugen wir zunächst unter dem Abschnitt App-Signatur von Google Play über den Button "Weiter" eine neue App Signatur.

    +

    Google Play Console: Offenes Testrelease erstellen

    +

    Den App-Signaturschlüssel in der PWA hinterlegen

    +

    Wir verlassen zunächst wieder den Menüpunkt zur Erzeugung des Releases und gehen ins Menü "Einrichten" > "App-Signatur". +Hier kopieren wir uns den Fingerabdruck des SHA-256-Zertifikats in die Zwischenablage.

    +

    Google Play Console: Kopieren des App-Signaturschlüssels

    +

    Dieser Fingerabdruck stellt später sicher, dass beim Aufruf der PWA durch unsere TWA verifiziert werden kann, dass die Anwendung trusted ist, also von Google verifiziert.

    +

    Um den Fingerabdruck aufspüren zu können, müssen wir diesen über die spezielle Datei assetlinks.json bereitstellen. +Weiterhin muss die Datei und ihr Inhalt über die spezielle URL https://my-app.com/.well-known/assetlinks.json aufrufbar sein.

    +

    Dafür erzeugen wir in unserem Angular-Workspace ein neues Verzeichnis .well-known unter src. +Darin legen wir die Datei assetlinks.json mit dem folgenden Inhalt an:

    +
    [
    +  {
    +    "relation": ["delegate_permission/common.handle_all_urls"],
    +    "target": {
    +      "namespace": "allfront",
    +      "package_name": "com.angular_buch.book_monkey4",
    +      "sha256_cert_fingerprints": [
    +        "D1:63:25:CE...A4:FF:79:C0"
    +      ]
    +    }
    +  }
    +]
    +

    Als package_name legen wir die Anwendungs-ID fest, die im Google Play Store eindeutig sein muss und genau auf eine App zeigt. +Die ID wird in der Regel aus einer Domain gebildet und rückwärts gelistet. +Sie muss mindestens einen Punkt enthalten, Zeichen hinter einem Punkt dürfen nur Buchstaben sein, und die gesamte ID darf lediglich Alphanumerische Zeichen enthalten. +Zeichen wie "-" sind nicht erlaubt. +Alle Regeln zur Definition einer validen ID können Sie der Android Entwicklerdokumentstion entnehmen.

    +

    Unter sha256_cert_fingerprints müssen wir außerdem den kopierten App-Signaturschlüssel eintragen.

    +

    Jetzt müssen wir der Angular CLI noch beibringen, dass der URL-Pfad /.well-known/assetlinks.json nicht durch den Angular-Router behandelt und umgeleitet werden soll, sondern dass sich dahinter ein statisches Asset verbrigt, das direkt über die URL aufrufbar sein soll.

    +

    Dafür bearbeiten wir die Datei angular.json: Im Abschnitt build > options ergänzen wir den Eintrag assets. +Dort geben wir an, dass alle Dateien unter src/.well-known über den relativen Pfad /.well-known/ bereitgestellt werden sollen:

    +
    {
    +  // ...
    +  "projects": {
    +    "book-monkey": {
    +      // ...
    +      "architect": {
    +        "build": {
    +          // ...
    +          "options": {
    +            // ...
    +            "assets": [
    +              // ...
    +              {
    +                "glob": "**/*",
    +                "input": "src/.well-known/",
    +                "output": "/.well-known/"
    +              }
    +              // ...
    +            ],
    +            // ...
    +          },
    +          // ...
    +        },
    +        // ...
    +      },
    +      // ...
    +    },
    +    // ...
    +  },
    +  // ...
    +}
    +

    Wir überprüfen das Ergebnis am Besten, indem wir einen Produktiv-Build ausführen und einen einfachen Webserver starten:

    +
    ng build --prod
    +cd dist/book-monkey
    +npx http-server
    +

    Rufen wir nun die URL http://localhost:8080/.well-known/assetlinks.json im Browser auf, sehen wir, dass unsere Datei assetlinks.json dargestellt wird:

    +

    Test der Auslieferung der Datei `assetlinks.json` im Browser

    +

    War der Test erfolgreich, können wir unsere PWA deployen. +Wichtig ist, dass diese zwingend per HTTPS ausgeleifert werden muss.

    +
    +

    Achtung: Nutzen Sie beispielsweise GitHub Pages zur Auslieferung Ihrer Anwendung, so müssen Sie vor dem Deployment im dist-Verzeichnis (dist/book-monkey) eine Datei _config.yml mit dem Inhalt include: [".well-known"] anlegen, da alle Verzeichnisse beginnend mit "." per Default von GitHub Pages ignoriert werden. Diesen Schritt integrieren Sie am besten in Ihre Deployment-Pipeline.

    +
    +

    Überprüfen Sie nach dem Deployment am Besten noch einmal, ob Sie die URL http://mydomain/.well-known/assetlinks.json aufrufen können. +In unserem Fall wäre das: https://bm4-pwa.angular-buch.com/.well-known/assetlinks.json.

    +

    Die TWA mit der Bubblewrap CLI erzeugen

    +

    Wir haben nun unsere PWA so vorbereitet, dass sie als TWA genutzt werden kann. Alle nötigen Vorbereitungen in der Google Play Console haben wir getroffen. +Als nächstes wollen wir die Android-App erstellen, die unsere PWA als TWA aufruft und als eigenständige App kapselt.

    +

    Hierfür nutzen wir die Bubblewrap CLI: +Wir können das Tool direkt als NPM-Paket über npx aufrufen und so die App erzeugen lassen. +Der interaktive Wizard führt uns durch das Setup:

    +
    mkdir monkey4-pwa-twa-wrapper
    +cd monkey4-pwa-twa-wrapper
    +npx @bubblewrap/cli init --manifest https://bm4-pwa.angular-buch.com/manifest.json
    +

    Nutzen wir die Bubblewrap CLI zum ersten Mal, so werden wir in den ersten zwei Schritten nach den Verzeichnissen für das Java OpenJDK und das AndroidSDK gefragt. +Hier geben wir die Pfade zu den entsprechenden Verzeichnissen an. +Unter macOS lauten sie zum Beispiel:

    +
    ? Path to the JDK: /Library/Java/JavaVirtualMachines/adoptopenjdk-8.jdk
    +? Path to the Android SDK: /Users/my-user/Library/Android/sdk
    +
    +

    Diese Angaben werden für spätere Installationen in der Datei ~/.llama-pack/llama-pack-config.json gespeichert und können bei Bedarf angepasst werden.

    +
    +

    Im nächsten Schritt liest die Bubblewrap CLI das Web App Manifest unserer PWA aus und stellt einige Fragen zu den Metadaten der App: Bezeichnung, hinterlegte Icons und Pfade. +Diese Einstellungen werden in der Regel schon korrekt ausgelesen und müssen nicht manuell angepasst werden:

    +
    init Fetching Manifest:  https://bm4-pwa.angular-buch.com/manifest.json
    +? Domain being opened in the TWA: bm4-pwa.angular-buch.com
    +? Name of the application: BookMonkey 4 PWA
    +? Name to be shown on the Android Launcher: BookMonkey
    +? Color to be used for the status bar: #DB2828
    +? Color to be used for the splash screen background: #FAFAFA
    +? Relative path to open the TWA: /
    +? URL to an image that is at least 512x512px: https://bm4-pwa.angular-buch.com/assets/icons/icon-512x512.png
    +? URL to an image that is at least 512x512px to be used when generating maskable icons undefined
    +? Include app shortcuts?
    +  Yes
    +? Android Package Name (or Application ID): com.angular_buch.bm4_pwa.twa
    +

    In der nächsten Abfrage müssen wir den Schlüssel zur Signierung der App angeben. +Haben wir hier noch keinen Schlüssel erzeugt, werden wir darauf hingewiesen und können einen neuen Schlüssel anlegen. +Dafür müssen wir einige Infos zum Ersteller des Schlüssels hinterlegen. +Außerdem müssen wir ein Passwort für den Key Store und eines für den einzelnen Key der Anwendung angeben. +Dieses benötigen wir später beim Build und beim Signieren der App erneut.

    +
    ? Location of the Signing Key: ./android.keystore
    +? Key name: android
    +...
    +? Signing Key could not be found at "./android.keystore". Do you want to create one now? Yes
    +? First and Last names (eg: John Doe): John Doe
    +? Organizational Unit (eg: Engineering Dept): Engineering Dept
    +? Organization (eg: Company Name): My Company
    +? Country (2 letter code): DE
    +? Password for the Key Store: [hidden]
    +? Password for the Key: [hidden]
    +keytool Signing Key created successfully
    +init
    +init Project generated successfully. Build it by running "@bubblewrap/cli build"
    +

    Im Ergebnis sollten wir folgende Dateistruktur erhalten:

    +

    Dateistruktur nach Erzeugung der TWA mithilfe der Bubblewrap CLI

    +

    Prinzipiell sind wir damit auch schon fertig. +Wir müssen nun noch die fertige Android-App (*.apk-Datei) erzeugen.

    +

    Das Ergebnis der TWA-Generierung können Sie auch in folgendem Repository nachvollziehen:

    +

    https://github.com/book-monkey4/book-monkey4-pwa-twa-wrapper

    +

    Die signierte App bauen

    +

    Wir können unsere signierte Android-App entwerder direkt mithilfe der Bubblewrap CLI bauen, oder wir nutzen hierfür Android Studio.

    +

    Mit der Bublewrap CLI

    +

    Wir rufen das build-Kommando der Bubblewrap CLI auf. +Hier müssen wir zunächst das von uns vergebene Passwort für den Key Store und anschließend das Passwort für den konkreten Key eingeben:

    +
    npx @bubblewrap/cli build
    +? KeyStore password: ********
    +? Key password: ********
    +build Building the Android-App...
    +build Zip Aligning...
    +build Checking PWA Quality Criteria...
    +build
    +build Check the full PageSpeed Insights report at:
    +build - https://developers.google.com/speed/pagespeed/insights/?url=https%3A%2F%2Fbm4-pwa.angular-buch.com%2F
    +build
    +build
    +build Quality Criteria scores
    +build Lighthouse Performance score: ................... 80
    +build Lighthouse PWA check: ........................... NO
    +build
    +build Web Vitals
    +build Largest Contentful Paint (LCP) .................. 3.7 s
    +build Maximum Potential First Input Delay (Max FID) ... 391 ms
    +build Cumulative Layout Shift (CLS) ................... 0.00
    +build
    +build Other scores
    +build Lighthouse Accessibility score................... 67
    +build
    +build Summary
    +build Overall result: ................................. FAIL
    +build WARNING PWA Quality Criteria check failed.
    +build Signing...
    +build Signed Android-App generated at "./app-release-signed.apk"
    +build Digital Asset Links file generated at ./assetlinks.json
    +build Read more about setting up Digital Asset Links at https://developers.google.com/web/android/trusted-web-activity/quick-start#creating-your-asset-link-file
    +

    Wenn wir keinen Fehler erhalten, sollte sich die fertige signierte App im Hauptverzeichnis befinden und app-release-signed.apk heißen.

    +

    Vereinzelt kann es dazu kommen, dass wir eine Fehlermeldung wie die folgende erhalten:

    +
    UnhandledPromiseRejectionWarning: Error: Error calling the PageSpeed Insights API: Error: Failed to run the PageSpeed Insight report

    In diesem Fall schlägt die Analyse der App fehl, weil beispielsweise die Website gerade nicht erreichbar ist. Wir können den Build erneut aufrufen und das Flag --skipPwaValidation verwenden, um die Überprüfung der PWA zu überspringen.

    +
    npx @bubblewrap/cli build --skipPwaValidation
    +? KeyStore password: ********
    +? Key password: ********
    +build Building the Android-App...
    +build Zip Aligning...
    +build Signing...
    +build Signed Android-App generated at "./app-release-signed.apk"
    +build Digital Asset Links file generated at ./assetlinks.json
    +build Read more about setting up Digital Asset Links at https://developers.google.com/web/android/trusted-web-activity/quick-start#creating-your-asset-link-file
    +

    Kommt es zu dem nachfolgenden Fehler, prüfen Sie bitte den Pfad unter jdkPath in der Datei ~/.llama-pack/llama-pack-config.json. +Dieser sollte auf das lokale Hauptverzeichnis des Java JDK 8 zeigen. +Alternativ können Sie den Build mithilfe von Android Studio anstoßen.

    +
    cli ERROR Command failed: ./gradlew assembleRelease --stacktrace
    +

    Mithilfe von Android Studio

    +

    Bei dieser Variante öffnen wir zunächst das Projektverzeichnis in Android Studio. +Nun warten wir ab, bis der automatische Gradle-Build nach dem Öffnen des Projekts durchgelaufen ist. +Den Fortschritt können wir unten rechts in Android Studio betrachten. +Anschließend klicken wür im Menü "Build" auf "Generate Signed Bundle / APK".

    +

    Android Studio: Signierte APK erstellen

    +

    Wir wählen hier den Punkt "APK" aus und klicken auf "Next".

    +

    Android Studio: Signierte APK erstellen

    +

    Im nächsten Schritt wählen wir den erstellten Keystore (android.keystore) aus dem Projektverzeichnis aus und geben das festgelegte Passwort ein. +Alternativ können wir auch einen neuen Keystore erstellen. +Anschließend können wir aus dem Keystore den "Key alias" auswählen (android). +Auch hier müssen wir das Passwort eingeben, das wir zuvor für den konkreten Key vergeben haben. +Haben wir alle Angaben korrekt getätigt, gehen wir weiter mit "Next".

    +

    Android Studio: Signierte APK erstellen

    +

    Im nächsten Schritt wählen wir als Build-Variante release aus und setzen die beiden Checkboxen bei "V1 (Jar Signature)" und "V2 (Full APK Signature)". +Anschließend können wir die Erzeugung mit "Finish" starten.

    +

    Android Studio: Signierte APK erstellen

    +

    Die erzeugte APK befindet sich nun unter ./app/release/app-release.apk.

    +
    +

    Kommt es beim Erzeugen der signierten APK zu einem Fehler, kann dies ggf. an einem defekten/falschen Keystore liegen. Versuchen Sie in diesem Fall, einen neuen Keystore während der vorherigen Schritte zu erzeugen.

    +
    +

    Die App über die Google Play Console veröffentlichen

    +

    Im letzten Schritt müssen wir unsere signierte und erzeugte Android-App noch bereitstellen und veröffentlichen. +Dazu gehen wir in der Google Play Console in das Menü "Test" > "Offene Tests" und öffnen unser zuvor bereits vorbereitetes Release im Abschnitt "Releases", welches im Status "Entwurf" ist durch Klick auf den Button "Bearbeiten".

    +

    Im nächsten Schritt können wir nun die zuvor erzeugte APK-Datei hochladen. +Weiterhin geben wir eine Versionsnummer und eine Beschreibung zum Release an. +Haben wir alles ausgefüllt, klicken wir auf "Überprüfen".

    +

    Jetzt haben wir es fast geschafft: +Das Beta-Release wurde erstellt. +Auf der nächsten Seite können wir die App nun veröffentlichen.

    +

    Google Play Console: Das Beta-Release veröffentlichen

    +

    Haben wir diesen Schritt erledigt, ändert sich unser Menü auf der linken Seite ein wenig, und wir können unter "Übersicht" den aktuellen Status zur Veröffentlichung der Android-App einsehen. +Bis die App tatsächlich veröffentlicht und freigegeben wird, können ggf. ein paar Tage vergehen.

    +

    Google Play Console: Übersicht mit Veröffentlichungsstatus

    +

    Geschafft! Wir haben nun erfolgreich unsere Angular-PWA in eine Android-App integriert und sie im Google Play Store veröffentlicht. +Dabei haben wir das Konzept der Trusted Web Activity (TWA) genutzt. +Nun müssen wir nur noch auf die Freigabe warten, und wir können unsere App im Store finden und installieren.

    +

    Viel Spaß wünschen +Johannes, Danny und Ferdinand

    +
    + + + + \ No newline at end of file diff --git a/blog/2021-06-angular12/index.html b/blog/2021-06-angular12/index.html new file mode 100644 index 00000000..828a0af5 --- /dev/null +++ b/blog/2021-06-angular12/index.html @@ -0,0 +1,322 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + k9n.dev | Angular 12 ist da! Die wichtigsten Neuerungen im Überblick + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + \ No newline at end of file diff --git a/blog/2021-11-angular13/index.html b/blog/2021-11-angular13/index.html new file mode 100644 index 00000000..b905705b --- /dev/null +++ b/blog/2021-11-angular13/index.html @@ -0,0 +1,322 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + k9n.dev | Angular 13 ist da! Die wichtigsten Neuerungen im Überblick + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + \ No newline at end of file diff --git a/blog/2022-06-angular14/index.html b/blog/2022-06-angular14/index.html new file mode 100644 index 00000000..e5ca28c0 --- /dev/null +++ b/blog/2022-06-angular14/index.html @@ -0,0 +1,322 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + k9n.dev | Angular 14 ist da! Die wichtigsten Neuerungen im Überblick + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + \ No newline at end of file diff --git a/blog/2022-11-angular15/index.html b/blog/2022-11-angular15/index.html new file mode 100644 index 00000000..51714eb3 --- /dev/null +++ b/blog/2022-11-angular15/index.html @@ -0,0 +1,322 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + k9n.dev | Angular 15 ist da! Die wichtigsten Neuerungen im Überblick + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + \ No newline at end of file diff --git a/blog/2022-12-vue-route-based-nav-menu/index.html b/blog/2022-12-vue-route-based-nav-menu/index.html new file mode 100644 index 00000000..874f1387 --- /dev/null +++ b/blog/2022-12-vue-route-based-nav-menu/index.html @@ -0,0 +1,606 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + k9n.dev | Route based navigation menus in Vue + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    Route based navigation menus in Vue

    Stichwörter

    Recently while working on a Vue app, I asked myself: Isn’t the main navigation menu somehow related to the configuration of the routes and routing tree? And can't it be built dynamically from the router configuration?

    +

    With this question in my mind, I started to work on a very simple but representative example of how to achieve this by enriching the route configuration using the meta option.

    +

    The following example allows you to easily place big parts of your app into a module that is self contained and only exposes a bit of route configuration which can be imported and included in the main router configuration.

    +

    The app has a simple navigation component that extracts all available routes provided by the Vue Router. +These routes have all the information needed by a navigation item to build a menu point and define the routing target.

    +

    The following picture shows an high level overview of the architecture.

    +

    Planned structure

    +

    TL;DR

    +

    You can check out the complete working example with the source code in the following Stackblitz project:

    +

    https://stackblitz.com/edit/vue3-dynamic-menu

    +

    basic app setup

    +

    Let's create a simple Vue project using Vue3 and Vue-Router.

    +
    npm init vue@latest
    +npm i vue-router@4
    +

    Setup the router

    +

    First we need the basic route configuration which represents the routing tree and in the end our menu structure.

    +

    We want to focus on the basic menu configuration and the initial page we are loading. +Therefore we will create the MainPage component which we can place in the src/components directory. +The component should simply display its name for demonstartion purpose:

    +
    <script setup lang="ts"></script>
    +
    +<template>
    +  <div>MainPage.vue</div>
    +</template>
    +

    The next thing we want to do is to setup the route for this component. +Therefore we are creating the router.ts file within the src directory. +We are importing the MainPage component and using it for the route main. +Furthermore we are adding a redirect to "/main" when the root-route "/" is opened. +To be able to get the displayble menu label later, we add the meta object to the route configuration containing the label.

    +
    import { createRouter, createWebHistory, type RouteRecordRaw } from 'vue-router';
    +
    +import MainPage from './components/MainPage.vue';
    +
    +export const routes: RouteRecordRaw[] = [
    +  //default route redirection
    +  { path: '/', redirect: { name: 'main' } },
    +  // common app routes
    +  {
    +    path: '/main',
    +    name: 'main',
    +    component: MainPage,
    +    meta: {
    +      label: 'Main Page',
    +    },
    +  }
    +];
    +
    +export const router = createRouter({
    +  history: createWebHistory(),
    +  routes,
    +});
    +

    The exported router must now be used in the main.ts file:

    +
    import { createApp } from 'vue';
    +import './style.css';
    +import App from './App.vue';
    +import { getRouter } from './router';
    +import { routes } from './app-section-1/routes';
    +
    +const app = createApp(App);
    +
    +app.use(getRouter(routes));
    +
    +app.mount('#app');
    +

    Now we have to add the <router-view /> to our App.vue file to be able to render the correct component routed by the Vue Router.

    +
    <script setup lang="ts"></script>
    +
    +<template>
    +  <router-view />
    +</template>
    +

    Build the menu items based on route meta

    +

    So far so good: we’ve configured our first route so that we can later build a single menu item using the route configuration.

    +

    The next step is to create the navigation component (AppNav) that extracts the meta information from the route for the menu item and renders it. Therefore we have to filter for the occurrence of our provided meta data as we only want to display menu items that have a label configured in the meta information.

    +

    The result is an array of all relevant routes. +We iterate over the items with v-for and pass each element to a new component NavItem that takes a route configuration object for rendering a single navigation menu item.

    +
    <script setup lang="ts">
    +import { useRouter, useRoute } from 'vue-router';
    +
    +import NavItem from './NavItem.vue';
    +
    +const router = useRouter();
    +const filteredRoutes = router.options.routes.filter((r) => r.meta?.label);
    +</script>
    +
    +<template>
    +  <nav>
    +    <ul>
    +      <NavItem
    +        v-for="(routeConfig, index) in filteredRoutes"
    +        :key="index"
    +        :route-config="routeConfig"
    +      />
    +    </ul>
    +  </nav>
    +</template>
    +

    Before we forget, let's add the AppNav component to our App component above the <router-view />:

    +
    <script setup lang="ts">
    +import AppNav from './components/AppNav.vue';
    +</script>
    +
    +<template>
    +  <AppNav />
    +  <hr />
    +  <router-view />
    +</template>
    +

    Next, we create the NavItem component. +We are defining a single prop which gets passed by the parent component called routeConfig which contains a whole route configuration record. +Now we can focus on the template: +Add a <router-link> and pass the route target using the unique name. +For the label of the link we can use the label from our meta information object which we defined in the router configuration.

    +
    <script setup lang="ts">
    +import { computed } from 'vue';
    +import type { RouteRecordRaw } from 'vue-router';
    +
    +const props = defineProps<{
    +  routeConfig: RouteRecordRaw;
    +}>();
    +</script>
    +
    +<template>
    +  <li class="nav-item">
    +    <router-link :to="{ name: routeConfig.name }" aria-current-value="page">
    +      {{ routeConfig.meta.label }}
    +    </router-link>
    +  </li>
    +</template>
    +

    Great! The hardest part is now done (wasn't that tricky right?) and probably this solution already fit's for the majority. +However there are two things I would like to describe in advance, as they may be relevant for you:

    +
      +
    1. How to make the navigation easily extensible
    2. +
    3. How to implement child menu items
    4. +
    +

    Make the navigation extensible

    +

    Let's assume we have an extensible app where we outsource some pages and its child route configurations and make them includable in our app. +This could for example be relevent when adding complete menus and pages for specific users with appropriate permissions.

    +

    Therefore we want to make our route configuration extensible, so we can pass additional routes and child routes linked with their components to our router.

    +

    To do this, we simply move the exported route into a function that accepts a list of route configurations as a Rest parameter.

    +
    /* ... */
    +export function getConfiguredRouter(...pluginRoutes: RouteRecordRaw[][]) {
    +  return createRouter({
    +    history: createWebHistory(),
    +    routes: [...routes, ...pluginRoutes.flat()],
    +  });
    +}
    +

    Next we need to adjust our main.ts file. +We pass the result received from getConfiguredRouter() containing the additional routes we want to add.

    +
    /* ... */
    +import { getConfiguredRouter } from './router';
    +import { routes } from './app-section-1/routes';
    +/* ... */
    +app.use(getConfiguredRouter(routes));
    +/* ... */
    +

    Let's create a new folder app-section-1 simulating this kind of app plugin or modules containing the extensible part for our app. +Here we create another routes.ts file that holds the route configuration for this app part.

    +

    The configuration defines a base route that represents the main navigation item and redirects to its first child route page-1. +Here, we configure two child routes linked to their corresponding components which are created in the next step.

    +
    import type { RouteRecordRaw } from 'vue-router';
    +
    +import Page1 from './components/Page1.vue';
    +import Page2 from './components/Page2.vue';
    +
    +export const routes: RouteRecordRaw[] = [
    +  {
    +    path: '/app-section-1',
    +    name: 'appSection1',
    +    redirect: { name: 'appSection1Page1' },
    +    meta: { label: 'App Section 1' },
    +    children: [
    +      {
    +        path: 'page-1',
    +        name: 'appSection1Page1',
    +        component: Page1,
    +        meta: { label: 'Page 1' },
    +      },
    +      {
    +        path: 'page-2',
    +        name: 'appSection1Page2',
    +        component: Page2,
    +        meta: { label: 'Page 2' },
    +      },
    +    ],
    +  },
    +];
    +

    We are creating the components Page1 and Page2 wihtin the /src/app-section-1/components directory.

    +

    Their implementation follows the one of the MainPage component: They simply display their component names in the template for demo purposes.

    +

    Render child menu items

    +

    With the current version, we will already see both main navigation menu entries. +But as we configured child elements with labels, we also want to display them in the menu too. +Therefore we simply add the appropriate template in the NavItem component, as we already have everything we need by receiving the route configuration of the parent which contains all the information to render the child items.

    +
    <!-- ... -->
    +<template>
    +  <li class="nav-item">
    +    <router-link :to="{ name: routeConfig.name }">
    +      {{ routeConfig.meta.label }}
    +    </router-link>
    +    <ul v-if="routeConfig.children">
    +      <li
    +        class="child-item"
    +        v-for="(r, index) in routeConfig.children"
    +        :key="index"
    +      >
    +        <router-link :to="{ name: r.name }" aria-current-value="page">
    +          {{ r.meta.label }}
    +        </router-link>
    +      </li>
    +    </ul>
    +  </li>
    +</template>
    + +

    To highlight the active menu items, we can now use the two automatically created CSS classes router-link-active and router-link-exact-active.

    +
      +
    • router-link-active: Matches when a part of the URL matches the target route path of the <router-link>
    • +
    • router-link-exact-active: Matches when the whole route in the URL matches the exact target route path of the <router-link>
    • +
    +
    a.router-link-active {
    +  background-color: lightblue;
    +}
    +a.router-link-exact-active {
    +  background-color: #f3aff8;
    +}
    +

    Conclusion

    +

    Passing meta information like label to the vue router configuration lets us easily build dynamic generated menus. +We no longer have to manually adjust our main navigation when adding new sites to our page as the menu is automatically extended by accessing the routes meta information. +This approach can reduce some template boilerplate.

    +

    You can use this approach to loosely couple whole parts of your app by adding them as separate modules without the need to add internals like the navigation titles to the main app part.

    +

    The whole working example can be seen in the following Stackblitz project:

    +

    https://stackblitz.com/edit/vue3-dynamic-menu

    +
    +

    Thanks for Darren Cooper and Joachim Schirrmacher for reviewing this article.

    +
    +
    + + + + \ No newline at end of file diff --git a/blog/2023-05-angular16/index.html b/blog/2023-05-angular16/index.html new file mode 100644 index 00000000..4549273d --- /dev/null +++ b/blog/2023-05-angular16/index.html @@ -0,0 +1,322 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + k9n.dev | Angular 16 ist da! Die wichtigsten Neuerungen im Überblick + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + \ No newline at end of file diff --git a/blog/2023-10-vue2-vue3-migration/index.html b/blog/2023-10-vue2-vue3-migration/index.html new file mode 100644 index 00000000..43691d0b --- /dev/null +++ b/blog/2023-10-vue2-vue3-migration/index.html @@ -0,0 +1,322 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + k9n.dev | How we migrated our Vue 2 enterprise project to Vue 3 + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + \ No newline at end of file diff --git a/blog/2023-11-angular17/index.html b/blog/2023-11-angular17/index.html new file mode 100644 index 00000000..51085388 --- /dev/null +++ b/blog/2023-11-angular17/index.html @@ -0,0 +1,322 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + k9n.dev | Angular 17 ist da! Die wichtigsten Neuerungen im Überblick + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + \ No newline at end of file diff --git a/blog/2024-05-modern-angular-bm/index.html b/blog/2024-05-modern-angular-bm/index.html new file mode 100644 index 00000000..c5efba4d --- /dev/null +++ b/blog/2024-05-modern-angular-bm/index.html @@ -0,0 +1,334 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + k9n.dev | Modern Angular: den BookMonkey migrieren + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + \ No newline at end of file diff --git a/blog/2024-06-angular18/index.html b/blog/2024-06-angular18/index.html new file mode 100644 index 00000000..88d2b077 --- /dev/null +++ b/blog/2024-06-angular18/index.html @@ -0,0 +1,322 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + k9n.dev | Angular 18 ist da: Signals, Signals, Signals! + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + \ No newline at end of file diff --git a/blog/2024-07-angular-push-notifications/index.html b/blog/2024-07-angular-push-notifications/index.html new file mode 100644 index 00000000..768620b0 --- /dev/null +++ b/blog/2024-07-angular-push-notifications/index.html @@ -0,0 +1,322 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + k9n.dev | Supercharge Your Angular PWA with Push Notifications: From Setup to Debugging + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + \ No newline at end of file diff --git a/blog/2024-11-angular19/index.html b/blog/2024-11-angular19/index.html new file mode 100644 index 00000000..d0793c67 --- /dev/null +++ b/blog/2024-11-angular19/index.html @@ -0,0 +1,322 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + k9n.dev | Angular 19 ist da! + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + \ No newline at end of file diff --git a/blog/index.html b/blog/index.html new file mode 100644 index 00000000..84d61aa6 --- /dev/null +++ b/blog/index.html @@ -0,0 +1,319 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + k9n.dev + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    Meine Blog Posts

    Angular 19 ist da!

    Neben grauen Herbsttagen hat der November in Sachen Angular einiges zu bieten: Am 19. November 2024 wurde die neue Major-Version Angular 19 releaset! Angular bringt mit der Resource API und dem Linked Signal einige neue Features mit. Standalone Components müssen außerdem nicht mehr explizit als solche markiert werden. Wir stellen in diesem Blogpost alle wichtigen Neuerungen vor!

    Supercharge Your Angular PWA with Push Notifications: From Setup to Debugging

    In modern web applications, push notifications have become an essential feature for engaging users. Service workers are crucial in enabling this functionality by running scripts in the background, independent of a web page. This guide will walk you through setting up a service worker with push notifications in Angular, including testing, verifying, debugging, and avoiding common pitfalls.

    Angular 18 ist da: Signals, Signals, Signals!

    Und schon wieder ist ein halbes Jahr vergangen: Angular Version 18 ist jetzt verfügbar! In den letzten Versionen wurden viele neue Funktionen und Verbesserungen eingeführt. Diesmal lag der Fokus darauf, die bereits ausgelieferten APIs zu stabilisieren, diverse Feature Requests zu bearbeiten und eines der am meisten nachgefragten Projekte auf der Roadmap experimentell zu veröffentlichen: die Zoneless Change Detection.

    Modern Angular: den BookMonkey migrieren

    Angular erlebt einen Aufschwung: +Mit den letzten Major-Versionen des Frameworks wurden einige wichtige neue Konzepte und Features eingeführt. +Wir berichten darüber regelmäßig in unseren Blogposts zu den Angular-Releases. +In diesem Artikel wollen wir das Beispielprojekt "BookMonkey" aus dem Angular-Buch aktualisieren und die neuesten Konzepte von Angular praktisch einsetzen. +

    Angular 17 ist da! Die wichtigsten Neuerungen im Überblick

    Es ist wieder ein halbes Jahr vorbei: Anfang November 2023 erschien die neue Major-Version Angular 17! Der neue Control Flow und Deferred Loading sind nur einige der neuen Features. Wir fassen die wichtigsten Neuigkeiten zu Angular 17 in diesem Blogpost zusammen.

    How we migrated our Vue 2 enterprise project to Vue 3

    Even if Vue 3 isn’t a new thing anymore, there are still a lot of Vue 2 apps which haven’t been migrated yet. In this blog post I will give you an insight into how my team mastered the migration and what pitfalls we faced.

    Angular 16 ist da! Die wichtigsten Neuerungen im Überblick

    Am 4. Mai 2023 erschien die neue Major-Version von Angular: Angular 16! Das Angular-Team hat einige neue Features und Konzepte in diesem Release verpackt. Die größte Neuerung sind die Signals, die als erste Developer Preview in der neuen Version ausprobiert werden können.

    Route based navigation menus in Vue

    Learn how to build a dynamic navigation menu based on the route configuration using Vue3 and Vue Router.

    Angular 15 ist da! Die wichtigsten Neuerungen im Überblick

    Am 16. November 2022 erschien die neue Major-Version Angular 15! Im Fokus des neuen Releases standen vor allem diese Themen: Stabilisierung der Standalone Components, funktionale Guards, Resolver und Interceptors sowie die Vereinfachung der initial generierten Projektdateien.

    Angular 14 ist da! Die wichtigsten Neuerungen im Überblick

    Am 2. Juni 2022 erschien die neue Major-Version Angular 14! Während die letzten Hauptreleases vor allem interne Verbesserungen für das Tooling mitbrachten, hat Angular 14 einige spannende neue Features mit an Bord. In diesem Artikel stellen wir wie immer die wichtigsten Neuigkeiten vor.

    Angular 13 ist da! Die wichtigsten Neuerungen im Überblick

    Anfang November 2021 erschien die neue Major-Version 13 von Angular. In diesem Artikel stellen wir wie immer die wichtigsten Neuigkeiten vor.

    Angular 12 ist da! Die wichtigsten Neuerungen im Überblick

    Am 12.05.2021 wurde die neue Major-Version Angular 12.0 veröffentlicht – ein halbes Jahr nach dem Release von Angular 11. In diesem Artikel stellen wir wieder die wichtigsten Neuerungen vor.

    Trusted Web Activitys (TWA) mit Angular

    Progressive Web Apps sind in den letzten Jahren immer populärer geworden. In diesem Blogpost werde ich Ihnen zeigen, wie Sie Ihre PWA auf einfachem Weg in den Google Play Store für Android bringen können, ohne eine echte Android-App mit Webview zu entwickeln, die lediglich eine Website aufruft.

    Angular 11 ist da! Die wichtigsten Neuerungen im Überblick

    Es hätte kein schöneres Datum sein können: am 11.11.2020 wurde die neue Major-Version Angular 11.0 veröffentlicht. Wir werden Ihnen in diesem Artikel die wichtigsten Neuerungen vorstellen.

    Speed up your Angular schematics development with useful helper functions

    Angular CLI schematics offer us a way to add, scaffold and update app-related files and modules. In this article I will guide you through some common but currently undocumented helper functions you can use to achieve your goal.

    My Development Setup

    In this article I will present you what tools I am using during my day-to-day development. Also I will show you a list of extensions and their purpose that help me (and probably you too!) to be more productive.

    Angular 10 ist da! Die wichtigsten Neuerungen im Überblick

    Nach nur vier Monaten Entwicklungszeit wurde am 24. Juni 2020 die neue Major-Version Angular 10.0 veröffentlicht! Wir werden Ihnen in diesem Artikel die wichtigsten Neuerungen vorstellen.

    Dig deeper into static site generation with Scully and use the most out of it

    In this article about Scully, I will introduce some more advanced features. You will learn how you can setup a custom Markdown module and how you can use AsciiDoc with Scully. I will guide you through the process of how to handle protected routes using a custom route plugin.

    Angular 9 ist da! Die wichtigsten Neuerungen im Überblick

    Am 6. Februar 2020 wurde bei Google in Kalifornien der "rote Knopf" gedrückt: Das lang erwartete neue Release ist da – die neue Major-Version Angular 9.0! Wir werden Ihnen in diesem Artikel die wichtigsten Neuerungen vorstellen.

    Create powerful fast pre-rendered Angular Apps using Scully static site generator

    You probably heard of the JAMStack. It is a new way of building websites and apps via static site generators that deliver better performance and higher security. With this blog post, I will show you how you can easily create a blogging app by using the power of Angular and the help of Scully static site generator. It will automatically detect all app routes and create static pages out of them that are ready to ship for production.

    ngx-semantic-version: enhance your git and release workflow

    In this article I will introduce the new tool ngx-semantic-version. This new Angular Schematic allows you to set up all necessary tooling for consistent git commit messages and publishing new versions. It will help you to keep your CHANGELOG.md file up to date and to release new tagged versions. All this is done by leveraging great existing tools like commitizen, commitlint and standard-version.

    Mach aus deiner Angular-App eine PWA

    Immer häufiger stößt man im Webumfeld auf den Begriff der Progessive Web App – kurz: PWA. Doch was genau steckt dahinter und welche Vorteile hat eine PWA gegenüber einer herkömmlichen Webanwendung oder einer App? Als Progressive Web App bezeichnen wir eine Webanwendung, die beim Aufruf einer Website als App auf einem lokalen Gerät installiert werden kann – zum Beispiel auf dem Telefon oder Tablet. Die PWA lässt sich wie jede andere App nutzen, inklusive Push-Benachrichtigungen!

    + + + + \ No newline at end of file diff --git a/contact/index.html b/contact/index.html new file mode 100644 index 00000000..7c7406d5 --- /dev/null +++ b/contact/index.html @@ -0,0 +1,215 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + k9n.dev + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + \ No newline at end of file diff --git a/icons/icon-192x192.png b/icons/icon-192x192.png new file mode 100644 index 00000000..8269bbc6 Binary files /dev/null and b/icons/icon-192x192.png differ diff --git a/icons/icon-256x256.png b/icons/icon-256x256.png new file mode 100644 index 00000000..0d3588d0 Binary files /dev/null and b/icons/icon-256x256.png differ diff --git a/icons/icon-384x384.png b/icons/icon-384x384.png new file mode 100644 index 00000000..4a326b7b Binary files /dev/null and b/icons/icon-384x384.png differ diff --git a/icons/icon-512x512.png b/icons/icon-512x512.png new file mode 100644 index 00000000..cd1da8c8 Binary files /dev/null and b/icons/icon-512x512.png differ diff --git a/icons/ipad_splash.png b/icons/ipad_splash.png new file mode 100644 index 00000000..6af954c5 Binary files /dev/null and b/icons/ipad_splash.png differ diff --git a/icons/ipadpro1_splash.png b/icons/ipadpro1_splash.png new file mode 100644 index 00000000..7e938110 Binary files /dev/null and b/icons/ipadpro1_splash.png differ diff --git a/icons/ipadpro2_splash.png b/icons/ipadpro2_splash.png new file mode 100644 index 00000000..f7d810a8 Binary files /dev/null and b/icons/ipadpro2_splash.png differ diff --git a/icons/ipadpro3_splash.png b/icons/ipadpro3_splash.png new file mode 100644 index 00000000..b7e41f33 Binary files /dev/null and b/icons/ipadpro3_splash.png differ diff --git a/icons/iphone5_splash.png b/icons/iphone5_splash.png new file mode 100644 index 00000000..6875d5d9 Binary files /dev/null and b/icons/iphone5_splash.png differ diff --git a/icons/iphone6_splash.png b/icons/iphone6_splash.png new file mode 100644 index 00000000..9e8d63a7 Binary files /dev/null and b/icons/iphone6_splash.png differ diff --git a/icons/iphoneplus_splash.png b/icons/iphoneplus_splash.png new file mode 100644 index 00000000..36c1b7d1 Binary files /dev/null and b/icons/iphoneplus_splash.png differ diff --git a/icons/iphonex_splash.png b/icons/iphonex_splash.png new file mode 100644 index 00000000..31531b22 Binary files /dev/null and b/icons/iphonex_splash.png differ diff --git a/icons/iphonexr_splash.png b/icons/iphonexr_splash.png new file mode 100644 index 00000000..7daa5c4a Binary files /dev/null and b/icons/iphonexr_splash.png differ diff --git a/icons/iphonexsmax_splash.png b/icons/iphonexsmax_splash.png new file mode 100644 index 00000000..a4514bba Binary files /dev/null and b/icons/iphonexsmax_splash.png differ diff --git a/images/Angular-Berlin_Icon.png b/images/Angular-Berlin_Icon.png new file mode 100644 index 00000000..af646494 Binary files /dev/null and b/images/Angular-Berlin_Icon.png differ diff --git a/images/InDepthdev-white.svg b/images/InDepthdev-white.svg new file mode 100644 index 00000000..34b4fcf7 --- /dev/null +++ b/images/InDepthdev-white.svg @@ -0,0 +1,42 @@ + + + + + + + + diff --git a/images/bg-triangles.jpg b/images/bg-triangles.jpg new file mode 100644 index 00000000..8d5c6a21 Binary files /dev/null and b/images/bg-triangles.jpg differ diff --git a/images/bg.jpg b/images/bg.jpg new file mode 100644 index 00000000..ff4977fd Binary files /dev/null and b/images/bg.jpg differ diff --git a/images/bg1.jpg b/images/bg1.jpg new file mode 100644 index 00000000..6e9c46ea Binary files /dev/null and b/images/bg1.jpg differ diff --git a/images/bg3.jpg b/images/bg3.jpg new file mode 100644 index 00000000..e7a097c6 Binary files /dev/null and b/images/bg3.jpg differ diff --git a/images/blog/bm-pwa-ios-homescreen-splashscreen-start.png b/images/blog/bm-pwa-ios-homescreen-splashscreen-start.png new file mode 100644 index 00000000..1b3ddcb7 Binary files /dev/null and b/images/blog/bm-pwa-ios-homescreen-splashscreen-start.png differ diff --git a/images/blog/bm-pwa-offline.png b/images/blog/bm-pwa-offline.png new file mode 100644 index 00000000..af2b1664 Binary files /dev/null and b/images/blog/bm-pwa-offline.png differ diff --git a/images/blog/bm-pwa-update.png b/images/blog/bm-pwa-update.png new file mode 100644 index 00000000..c53fa443 Binary files /dev/null and b/images/blog/bm-pwa-update.png differ diff --git a/images/blog/commitizen-vscode.gif b/images/blog/commitizen-vscode.gif new file mode 100644 index 00000000..22e899eb Binary files /dev/null and b/images/blog/commitizen-vscode.gif differ diff --git a/images/blog/commitizen-vscode.png b/images/blog/commitizen-vscode.png new file mode 100644 index 00000000..385fd557 Binary files /dev/null and b/images/blog/commitizen-vscode.png differ diff --git a/images/blog/commitizen.svg b/images/blog/commitizen.svg new file mode 100644 index 00000000..cbfcae56 --- /dev/null +++ b/images/blog/commitizen.svg @@ -0,0 +1,166 @@ + + + + + + + + + + + + + + + ~/dev/ngx-semantic-version (master ) ~/dev/ngx-semantic-version (master ) git add . ~/dev/ngx-semantic-version (master ) git add . ~/dev/ngx-semantic-version (master ) git add . ~/dev/ngx-semantic-version (master ) git add . ~/dev/ngx-semantic-version (master ) git add . ~/dev/ngx-semantic-version (master ) git add . ~/dev/ngx-semantic-version (master ) git add . ~/dev/ngx-semantic-version (master ) git add . ~/dev/ngx-semantic-version (master ) git add . ~/dev/ngx-semantic-version (master ) git add . ~/dev/ngx-semantic-version (master ) ~/dev/ngx-semantic-version (master ) git add . ~/dev/ngx-semantic-version (master ) git add . ~/dev/ngx-semantic-version (master ) git add . ~/dev/ngx-semantic-version (master ) git add . ~/dev/ngx-semantic-version (master ) git cz ~/dev/ngx-semantic-version (master ) git cz ~/dev/ngx-semantic-version (master ) git cz cz-cli@4.0.3, cz-conventional-changelog@3.0.2? Select the type of change that you're committing: (Use arrow keys)❯ feat: A new feature fix: A bug fix improvement: An improvement to a current feature docs: Documentation only changes style: Changes that do not affect the meaning of the code (white-space, formatting, missing semi-colons, etc) refactor: A code change that neither fixes a bug nor adds a feature (Move up and down to reveal more choices) ? Select the type of change that you're committing: feat: A new feature ❯ fix: A bug fix improvement: An improvement to a current feature docs: Documentation only changes missing semi-colons, etc) refactor: A code change that neither fixes a bug nor adds a feature (Move up and down to reveal more choices) fix: A bug fix ❯ improvement: An improvement to a current feature ❯ docs: Documentation only changes ? Select the type of change that you're committing: docs: Documentation only changes ? What is the scope of this change (e.g. component or file name): (press enter to skip) ? What is the scope of this change (e.g. component or file name): (press enter to skip) ? Write a short, imperative tense description of the change (max 66 chars): (0) (1) u (2) up (3) upd (4) upda (5) updat (6) update (7) updates (7) updates (9) updates a (10) updates an (11) updates ani (12) updates anim (13) updates anima (14) updates animat (15) updates animate (16) updates animated (16) updates animated (18) updates animated i (19) updates animated im (20) updates animated ima (21) updates animated imag (22) updates animated image (23) updates animated images (23) updates animated images ? Provide a longer description of the change: (press enter to skip) ? Are there any breaking changes? (y/N) ? Are there any breaking changes? No ? Does this change affect any open issues? (y/N) ? Does this change affect any open issues? No Can't find Husky, skipping pre-commit hook You can reinstall it using 'npm install husky --save-dev' or delete this hookCan't find Husky, skipping prepare-commit-msg hookCan't find Husky, skipping commit-msg hookCan't find Husky, skipping post-commit hook[master 02f7e1c] docs: updates animated images 1 file changed, 91 insertions(+), 160 deletions(-) rewrite assets/commitizen.svg (93%)~/dev/ngx-semantic-version (master ) ~/dev/ngx-semantic-version (master ) + \ No newline at end of file diff --git a/images/blog/commitlint.svg b/images/blog/commitlint.svg new file mode 100644 index 00000000..3db6245f --- /dev/null +++ b/images/blog/commitlint.svg @@ -0,0 +1,84 @@ + + + + + + + + + + + + + + + ~/dev/ngx-semantic-version (master ) ~/dev/ngx-semantic-version (master ) e ~/dev/ngx-semantic-version (master ) ech ~/dev/ngx-semantic-version (master ) echo ~/dev/ngx-semantic-version (master ) echo 'foo ~/dev/ngx-semantic-version (master ) echo 'foo' ~/dev/ngx-semantic-version (master ) echo 'foo' | ~/dev/ngx-semantic-version (master ) echo 'foo' | npx ~/dev/ngx-semantic-version (master ) echo 'foo' | npx commi ~/dev/ngx-semantic-version (master ) echo 'foo' | npx commitli ~/dev/ngx-semantic-version (master ) echo 'foo' | npx commitlint ~/dev/ngx-semantic-version (master ) echo 'foo' | npx commitlint ~/dev/ngx-semantic-version (master ) echo 'foo' | npx commitlint input: foo subject may not be empty [subject-empty] type may not be empty [type-empty] found 2 problems, 0 warningsⓘ Get help: https://github.com/conventional-changelog/commitlint/#what-is-commitlint~/dev/ngx-semantic-version (master ) + \ No newline at end of file diff --git a/images/blog/dev-setup/cakebrew.png b/images/blog/dev-setup/cakebrew.png new file mode 100644 index 00000000..a56e13aa Binary files /dev/null and b/images/blog/dev-setup/cakebrew.png differ diff --git a/images/blog/dev-setup/chrome.png b/images/blog/dev-setup/chrome.png new file mode 100644 index 00000000..a621e818 Binary files /dev/null and b/images/blog/dev-setup/chrome.png differ diff --git a/images/blog/dev-setup/dev-setup-header-small.jpg b/images/blog/dev-setup/dev-setup-header-small.jpg new file mode 100644 index 00000000..4e5a50f7 Binary files /dev/null and b/images/blog/dev-setup/dev-setup-header-small.jpg differ diff --git a/images/blog/dev-setup/dev-setup-header.jpg b/images/blog/dev-setup/dev-setup-header.jpg new file mode 100644 index 00000000..60ade417 Binary files /dev/null and b/images/blog/dev-setup/dev-setup-header.jpg differ diff --git a/images/blog/dev-setup/drawio.png b/images/blog/dev-setup/drawio.png new file mode 100644 index 00000000..120bdb1a Binary files /dev/null and b/images/blog/dev-setup/drawio.png differ diff --git a/images/blog/dev-setup/fork.png b/images/blog/dev-setup/fork.png new file mode 100644 index 00000000..8c8100ae Binary files /dev/null and b/images/blog/dev-setup/fork.png differ diff --git a/images/blog/dev-setup/insomnia.png b/images/blog/dev-setup/insomnia.png new file mode 100644 index 00000000..20505456 Binary files /dev/null and b/images/blog/dev-setup/insomnia.png differ diff --git a/images/blog/dev-setup/iterm2.png b/images/blog/dev-setup/iterm2.png new file mode 100644 index 00000000..da51fc9b Binary files /dev/null and b/images/blog/dev-setup/iterm2.png differ diff --git a/images/blog/dev-setup/keycastr.png b/images/blog/dev-setup/keycastr.png new file mode 100644 index 00000000..10fe4606 Binary files /dev/null and b/images/blog/dev-setup/keycastr.png differ diff --git a/images/blog/dev-setup/recordit.png b/images/blog/dev-setup/recordit.png new file mode 100644 index 00000000..405a3fc4 Binary files /dev/null and b/images/blog/dev-setup/recordit.png differ diff --git a/images/blog/dev-setup/terminus.png b/images/blog/dev-setup/terminus.png new file mode 100644 index 00000000..25190e97 Binary files /dev/null and b/images/blog/dev-setup/terminus.png differ diff --git a/images/blog/dev-setup/vscode.png b/images/blog/dev-setup/vscode.png new file mode 100644 index 00000000..3cf61226 Binary files /dev/null and b/images/blog/dev-setup/vscode.png differ diff --git a/images/blog/ng10/angular10-small.jpg b/images/blog/ng10/angular10-small.jpg new file mode 100644 index 00000000..11eecd7d Binary files /dev/null and b/images/blog/ng10/angular10-small.jpg differ diff --git a/images/blog/ng10/angular10.jpg b/images/blog/ng10/angular10.jpg new file mode 100644 index 00000000..601dc668 Binary files /dev/null and b/images/blog/ng10/angular10.jpg differ diff --git a/images/blog/ng11/angular11-small.jpg b/images/blog/ng11/angular11-small.jpg new file mode 100644 index 00000000..238ff1fc Binary files /dev/null and b/images/blog/ng11/angular11-small.jpg differ diff --git a/images/blog/ng11/angular11.jpg b/images/blog/ng11/angular11.jpg new file mode 100644 index 00000000..ccf2bab4 Binary files /dev/null and b/images/blog/ng11/angular11.jpg differ diff --git a/images/blog/ng11/ngserve.png b/images/blog/ng11/ngserve.png new file mode 100644 index 00000000..549230fe Binary files /dev/null and b/images/blog/ng11/ngserve.png differ diff --git a/images/blog/ng9/angular9-small.jpg b/images/blog/ng9/angular9-small.jpg new file mode 100644 index 00000000..d665f0bc Binary files /dev/null and b/images/blog/ng9/angular9-small.jpg differ diff --git a/images/blog/ng9/angular9.jpg b/images/blog/ng9/angular9.jpg new file mode 100644 index 00000000..4bb081a7 Binary files /dev/null and b/images/blog/ng9/angular9.jpg differ diff --git a/images/blog/ng9/bundle-sizes.png b/images/blog/ng9/bundle-sizes.png new file mode 100644 index 00000000..e37c74c8 Binary files /dev/null and b/images/blog/ng9/bundle-sizes.png differ diff --git a/images/blog/ngx-semantic-version-header-small.jpg b/images/blog/ngx-semantic-version-header-small.jpg new file mode 100644 index 00000000..249009e3 Binary files /dev/null and b/images/blog/ngx-semantic-version-header-small.jpg differ diff --git a/images/blog/ngx-semantic-version-header.jpg b/images/blog/ngx-semantic-version-header.jpg new file mode 100644 index 00000000..5c83b417 Binary files /dev/null and b/images/blog/ngx-semantic-version-header.jpg differ diff --git a/images/blog/pwa-notification-default.png b/images/blog/pwa-notification-default.png new file mode 100644 index 00000000..b8e5b348 Binary files /dev/null and b/images/blog/pwa-notification-default.png differ diff --git a/images/blog/pwa-notification-denied.png b/images/blog/pwa-notification-denied.png new file mode 100644 index 00000000..2a7cdf05 Binary files /dev/null and b/images/blog/pwa-notification-denied.png differ diff --git a/images/blog/pwa-notification-disabled.png b/images/blog/pwa-notification-disabled.png new file mode 100644 index 00000000..bc1b74aa Binary files /dev/null and b/images/blog/pwa-notification-disabled.png differ diff --git a/images/blog/pwa-notification-enabled-android.png b/images/blog/pwa-notification-enabled-android.png new file mode 100644 index 00000000..e5c92431 Binary files /dev/null and b/images/blog/pwa-notification-enabled-android.png differ diff --git a/images/blog/pwa-notification-flow.drawio b/images/blog/pwa-notification-flow.drawio new file mode 100644 index 00000000..705f663f --- /dev/null +++ b/images/blog/pwa-notification-flow.drawio @@ -0,0 +1 @@ +7VvbcqM4EP0aV+0+2IUQF/txbCebh5ndVGWqdnZephSQbW1kxIDs2PP1K4G4COFbgp1skqQqMU0jkM7R6VYL9+BkufkjQfHiCwsx7dlWuOnBac+2R0Mo/krDNje4rpsb5gkJcxOoDHfkF1ZGS1lXJMSp5sgZo5zEujFgUYQDrtlQkrBH3W3GqH7XGM2xYbgLEDWtf5OQL3Lr0PYr+w0m80VxZ+CN8jNLVDirnqQLFLLHmgle9eAkYYznn5abCaZy7Ipxya+73nG2fLAER/yYCxbfA/wzmVo3i5vlPIg+f79++NaHCp6Ub4se41AMgDpkCV+wOYsQvaqs44StohDLZi1xVPl8ZiwWRiCM/2LOtwpNtOJMmBZ8SdVZHIWfJDbiMGIRzi3XhFLVZMpRwguPgKI0JUFhVm4gO07YQwmLGNDxTJycMMqSrCtwhryhZZWetTMTH7rZmbz7ss87h1WZUrZKArxnLAt6omSO+R6/YQm+mDSYLTFPtuK6BFPEyVp/DqToOy/91KVidNC25hAzEvG01vKtNAgHNRFtqGi4LYjaYMsBf9vf7+9Ye/3Fh/yJi6Na1ytTxtgT2Ouoe64RXalx+5NxMiOBGEkWGdTmeMN1JiY4Jb/QfeYg6aCGUXi74547FRZEyTySNBR8wII94zVOuLgB/aROLEkYZtOContMxyh4mGcTpM7D7Kdkm2wBb9rkSz1JJRp1Hu6ZwCabVPPWQCBh522dRjAD4b490hDuFxJdNMFms1QQX0e9E5xdA2YD2hqmBUCfJR63LCUZF+D0nnHOlm2QHoFcE3Uupa6hQLBNaazsp0WbipbLuCCdQpQuSmUVZ2LZveVmLmPrgLDUHxBBlXQQIo728cnQr50M8cBQgxU6arQfq3DnKaQXtUjnW7sJpOF/KtjQe4mQdGTIORy5miHJIMTIn1q+323o6SSkmDGgoenAbmCehzp1VQX7qbEJjhqxY3ggNtnP8wf2BWITHBqidbe6T4OE3ON3EZi8vbLTF5EJOlCXnm7iFPC1Vv1LRSnnRXJpTbiUJtVVy9JVq5K2SrheYS6tJs/BXBrYXSjfyYIFdEEpBGyXAB3wP1Ny7BgCZFtiJKxJghEXlHsHIuQczI5hI6vtRoO8F1KglpjDWSLijTVm7EFeLhZF1nT8EkIlkEq23+T1Awv4heGfzOAWh9NNKVnyaFs/usUJESMkaWZWCc6ofB6yrDxTbyof9C1rMnkZ5XMPMBtYvh5dCw16KrXPT1+TvQZP2YpTEgkMimpftrJiEa+hIn6v5V3HYtUUElydUxxpwFsu0HR4lbO2IDu4smxfJRoiWZsV8tnVlAF2caz6K2+J0jjv6Ixs5HPkGoyTqzXOpRi0LBTRY+oMuOy9fEBEf6Q4WWd31skOullCwqGja2hRO6otIV0Fbn0JCayzrSH9t5yKXVaQgH2kIj13EfosxB3bEI/bv+6+lpHv7ec6Oef3LbiskXuOZKevz/7+xdIdYGJuAL1DLndU3LTJ3BINdoUO2ggIBkVOjBitYc7gX1P2xUiTAA9CvBb/0gFFcd5aBxIPjCqhKfFleaiu8cOzSbyJ9UUkvvv6Xud1Owfo6w/gNkDINd+o2x1sSAT2gdw5gi4ciY46eqs7qoGdFdRGxmx/XwW1HaWOSt+BDfWUv9+RwDf2AvtgdCmJh+5LzPK3uT9tO+dRm2YF5SkicWoFrnlT2z2wPb3f/0wVOGAo1rvbnj5cphjpmYXbiWQVulEolnOxvWrbLLsaQD89Ae060TyYUy7TAOFBQNkqHCzZPaH4B4rjPalwW8LdQQIq0ioNUb+lxHDR9NN89eQD5ufD7NnwVcHsmK+eyHrCFxY9YPnYEyoLjOLDp27UXKQiqaoGHiPu6i2UGAUkmn/NshuxGu9oxacj0fJaCIAtUDTfEegOCu9IKMzdjf85FND1XxkU/pFQTN4aFO7wtc0Kc1VsjPlreDeutVRynnfjcLTGlMX4x294GfPt790g33yJqCUytQEPzwW8e0QC8gF8B8A77sHM86LAm4vKj8Szg3THfV2Jp2sbMJs4XyKYlvUDM57W9q5tt6fvXRd727s3J5+nxq6uxhCagfiycgxbpqVHuRqGrIZSjIT3cyW/9DPONgtCuVlQM3lz+R8UF4uHya/P7R8UqLJiX6eA3fLWwWUp0Fb5qVMghxC+TWgbFevnhVynAe3obNCKw+oreHkNsPoeI7z6Dw== \ No newline at end of file diff --git a/images/blog/pwa-notification-flow.svg b/images/blog/pwa-notification-flow.svg new file mode 100644 index 00000000..48af8fd1 --- /dev/null +++ b/images/blog/pwa-notification-flow.svg @@ -0,0 +1,2 @@ + +
    Notification
    Notification
    Store Book in DB
    Store Book in DB
    Subscribe
    Subscribe
    201 Created
    201 Created
    POST Book
    POST Book
    Subscribe
    Subscribe
    Notification
    Notification
    BookMonkey Client A
    BookMonkey Client A
    BookMonkey Client B
    BookMonkey Client B
    BookMonkey Client C
    BookMonkey Client C
    2
    2
    1
    [Not supported by viewer]
    3
    [Not supported by viewer]
    Load Book
    [Not supported by viewer]
    4
    [Not supported by viewer]
    4
    [Not supported by viewer]
    Load Book
    [Not supported by viewer]
    \ No newline at end of file diff --git a/images/blog/pwa-notification-granted.png b/images/blog/pwa-notification-granted.png new file mode 100644 index 00000000..d82309ea Binary files /dev/null and b/images/blog/pwa-notification-granted.png differ diff --git a/images/blog/pwa-notification-new-book.png b/images/blog/pwa-notification-new-book.png new file mode 100644 index 00000000..2c71e4d2 Binary files /dev/null and b/images/blog/pwa-notification-new-book.png differ diff --git a/images/blog/pwa-notification-not-enabled-ios.png b/images/blog/pwa-notification-not-enabled-ios.png new file mode 100644 index 00000000..615ffb3e Binary files /dev/null and b/images/blog/pwa-notification-not-enabled-ios.png differ diff --git a/images/blog/pwa-notification-success.png b/images/blog/pwa-notification-success.png new file mode 100644 index 00000000..4842fc4e Binary files /dev/null and b/images/blog/pwa-notification-success.png differ diff --git a/images/blog/pwaheader-small.jpg b/images/blog/pwaheader-small.jpg new file mode 100644 index 00000000..3337b574 Binary files /dev/null and b/images/blog/pwaheader-small.jpg differ diff --git a/images/blog/pwaheader.jpg b/images/blog/pwaheader.jpg new file mode 100644 index 00000000..0990c5ae Binary files /dev/null and b/images/blog/pwaheader.jpg differ diff --git a/images/blog/schematics-helpers/schematics-helpers-small.jpg b/images/blog/schematics-helpers/schematics-helpers-small.jpg new file mode 100644 index 00000000..53938161 Binary files /dev/null and b/images/blog/schematics-helpers/schematics-helpers-small.jpg differ diff --git a/images/blog/schematics-helpers/schematics-helpers.jpg b/images/blog/schematics-helpers/schematics-helpers.jpg new file mode 100644 index 00000000..1465bc61 Binary files /dev/null and b/images/blog/schematics-helpers/schematics-helpers.jpg differ diff --git a/images/blog/scully/scully-asciidoc-projects.png b/images/blog/scully/scully-asciidoc-projects.png new file mode 100644 index 00000000..cbcd0f27 Binary files /dev/null and b/images/blog/scully/scully-asciidoc-projects.png differ diff --git a/images/blog/scully/scully-blog.gif b/images/blog/scully/scully-blog.gif new file mode 100644 index 00000000..afae4e76 Binary files /dev/null and b/images/blog/scully/scully-blog.gif differ diff --git a/images/blog/scully/scully-header-small.jpg b/images/blog/scully/scully-header-small.jpg new file mode 100644 index 00000000..3e509c3e Binary files /dev/null and b/images/blog/scully/scully-header-small.jpg differ diff --git a/images/blog/scully/scully-header.jpg b/images/blog/scully/scully-header.jpg new file mode 100644 index 00000000..1159f50c Binary files /dev/null and b/images/blog/scully/scully-header.jpg differ diff --git a/images/blog/scully/scully-header2-small.jpg b/images/blog/scully/scully-header2-small.jpg new file mode 100644 index 00000000..488dbb9c Binary files /dev/null and b/images/blog/scully/scully-header2-small.jpg differ diff --git a/images/blog/scully/scully-header2.jpg b/images/blog/scully/scully-header2.jpg new file mode 100644 index 00000000..1475a733 Binary files /dev/null and b/images/blog/scully/scully-header2.jpg differ diff --git a/images/blog/scully/scully-markdown-projects.png b/images/blog/scully/scully-markdown-projects.png new file mode 100644 index 00000000..4788377b Binary files /dev/null and b/images/blog/scully/scully-markdown-projects.png differ diff --git a/images/blog/scully/scully-pre-rendered-js-disabled.png b/images/blog/scully/scully-pre-rendered-js-disabled.png new file mode 100644 index 00000000..fe231384 Binary files /dev/null and b/images/blog/scully/scully-pre-rendered-js-disabled.png differ diff --git a/images/blog/scully/scullyio-icon.png b/images/blog/scully/scullyio-icon.png new file mode 100755 index 00000000..9556037a Binary files /dev/null and b/images/blog/scully/scullyio-icon.png differ diff --git a/images/blog/twa/android-studio-generate-signed-apk.png b/images/blog/twa/android-studio-generate-signed-apk.png new file mode 100644 index 00000000..e7256211 Binary files /dev/null and b/images/blog/twa/android-studio-generate-signed-apk.png differ diff --git a/images/blog/twa/android-studio-generate-signed-apk2.png b/images/blog/twa/android-studio-generate-signed-apk2.png new file mode 100644 index 00000000..9accbc29 Binary files /dev/null and b/images/blog/twa/android-studio-generate-signed-apk2.png differ diff --git a/images/blog/twa/android-studio-generate-signed-apk3.png b/images/blog/twa/android-studio-generate-signed-apk3.png new file mode 100644 index 00000000..d15e24c3 Binary files /dev/null and b/images/blog/twa/android-studio-generate-signed-apk3.png differ diff --git a/images/blog/twa/android-studio-generate-signed-apk4.png b/images/blog/twa/android-studio-generate-signed-apk4.png new file mode 100644 index 00000000..9062eb0d Binary files /dev/null and b/images/blog/twa/android-studio-generate-signed-apk4.png differ diff --git a/images/blog/twa/assetlinks-browser.png b/images/blog/twa/assetlinks-browser.png new file mode 100644 index 00000000..4575fbec Binary files /dev/null and b/images/blog/twa/assetlinks-browser.png differ diff --git a/images/blog/twa/header-twa-small.jpg b/images/blog/twa/header-twa-small.jpg new file mode 100644 index 00000000..26aace52 Binary files /dev/null and b/images/blog/twa/header-twa-small.jpg differ diff --git a/images/blog/twa/header-twa.jpg b/images/blog/twa/header-twa.jpg new file mode 100644 index 00000000..7be556cb Binary files /dev/null and b/images/blog/twa/header-twa.jpg differ diff --git a/images/blog/twa/play-after-create.png b/images/blog/twa/play-after-create.png new file mode 100644 index 00000000..b028ae93 Binary files /dev/null and b/images/blog/twa/play-after-create.png differ diff --git a/images/blog/twa/play-beta-release.png b/images/blog/twa/play-beta-release.png new file mode 100644 index 00000000..8b3b9f0e Binary files /dev/null and b/images/blog/twa/play-beta-release.png differ diff --git a/images/blog/twa/play-beta-sign.png b/images/blog/twa/play-beta-sign.png new file mode 100644 index 00000000..21b03b1e Binary files /dev/null and b/images/blog/twa/play-beta-sign.png differ diff --git a/images/blog/twa/play-create.png b/images/blog/twa/play-create.png new file mode 100644 index 00000000..d888d854 Binary files /dev/null and b/images/blog/twa/play-create.png differ diff --git a/images/blog/twa/play-dashboard-open-track.png b/images/blog/twa/play-dashboard-open-track.png new file mode 100644 index 00000000..0a97a1e0 Binary files /dev/null and b/images/blog/twa/play-dashboard-open-track.png differ diff --git a/images/blog/twa/play-dashboard-release.png b/images/blog/twa/play-dashboard-release.png new file mode 100644 index 00000000..469536e3 Binary files /dev/null and b/images/blog/twa/play-dashboard-release.png differ diff --git a/images/blog/twa/play-register.png b/images/blog/twa/play-register.png new file mode 100644 index 00000000..d9cf31da Binary files /dev/null and b/images/blog/twa/play-register.png differ diff --git a/images/blog/twa/play-release-overview.png b/images/blog/twa/play-release-overview.png new file mode 100644 index 00000000..cbc8284e Binary files /dev/null and b/images/blog/twa/play-release-overview.png differ diff --git a/images/blog/twa/play-signature.png b/images/blog/twa/play-signature.png new file mode 100644 index 00000000..b9adbda0 Binary files /dev/null and b/images/blog/twa/play-signature.png differ diff --git a/images/blog/twa/twa-bubblewrap.png b/images/blog/twa/twa-bubblewrap.png new file mode 100644 index 00000000..31e28253 Binary files /dev/null and b/images/blog/twa/twa-bubblewrap.png differ diff --git a/images/blog/vue-route-menu/nav-structure.drawio.svg b/images/blog/vue-route-menu/nav-structure.drawio.svg new file mode 100644 index 00000000..c8234066 --- /dev/null +++ b/images/blog/vue-route-menu/nav-structure.drawio.svg @@ -0,0 +1,4 @@ + + + +AppSection1
    route
    route
    route
    route
    «Component»
    AppNav
    «Component»...
    opens
    opens
    /main
    /main
    route
    route
    route
    route
    opens
    (redirect)
    opens...
    /app-section-1
    /app-section-1
    opens
    opens
    /app-section-1/page-2
    /app-section-1/page-2
    opens
    opens
    /app-section-1/page-1
    /app-section-1/page-1

    « View»
    Page1
    « View»...

    « View»
    Page2
    « View»...

    «View»
    MainPage
    «View»...
    Text is not SVG - cannot display
    \ No newline at end of file diff --git a/images/blog/vue-route-menu/vue-route-menu-small.jpg b/images/blog/vue-route-menu/vue-route-menu-small.jpg new file mode 100644 index 00000000..c5585c2e Binary files /dev/null and b/images/blog/vue-route-menu/vue-route-menu-small.jpg differ diff --git a/images/blog/vue-route-menu/vue-route-menu.jpg b/images/blog/vue-route-menu/vue-route-menu.jpg new file mode 100644 index 00000000..db3e00c1 Binary files /dev/null and b/images/blog/vue-route-menu/vue-route-menu.jpg differ diff --git a/images/blog/web-app-manifest-generator.png b/images/blog/web-app-manifest-generator.png new file mode 100644 index 00000000..d23aa3e4 Binary files /dev/null and b/images/blog/web-app-manifest-generator.png differ diff --git a/images/book-cover.png b/images/book-cover.png new file mode 100644 index 00000000..0ca89afa Binary files /dev/null and b/images/book-cover.png differ diff --git a/images/close.svg b/images/close.svg new file mode 100644 index 00000000..cf84d2e7 --- /dev/null +++ b/images/close.svg @@ -0,0 +1,7 @@ + + + + + diff --git a/images/dk-header.webp b/images/dk-header.webp new file mode 100644 index 00000000..1b246904 Binary files /dev/null and b/images/dk-header.webp differ diff --git a/images/dk.jpg b/images/dk.jpg new file mode 100644 index 00000000..daf2f93c Binary files /dev/null and b/images/dk.jpg differ diff --git a/images/favicon.png b/images/favicon.png new file mode 100644 index 00000000..a79f75eb Binary files /dev/null and b/images/favicon.png differ diff --git a/images/it_at_db_podcast_a11y.jpeg b/images/it_at_db_podcast_a11y.jpeg new file mode 100644 index 00000000..08db0d76 Binary files /dev/null and b/images/it_at_db_podcast_a11y.jpeg differ diff --git a/images/k9n.paint b/images/k9n.paint new file mode 100644 index 00000000..a028638e Binary files /dev/null and b/images/k9n.paint differ diff --git a/images/k9n.png b/images/k9n.png new file mode 100644 index 00000000..fd7e3b33 Binary files /dev/null and b/images/k9n.png differ diff --git a/images/logo_header.png b/images/logo_header.png new file mode 100644 index 00000000..fd7e3b33 Binary files /dev/null and b/images/logo_header.png differ diff --git a/images/projects/analog-publish-gh-pages-small.png b/images/projects/analog-publish-gh-pages-small.png new file mode 100644 index 00000000..1c5318e2 Binary files /dev/null and b/images/projects/analog-publish-gh-pages-small.png differ diff --git a/images/projects/analog-publish-gh-pages.png b/images/projects/analog-publish-gh-pages.png new file mode 100644 index 00000000..2768a626 Binary files /dev/null and b/images/projects/analog-publish-gh-pages.png differ diff --git a/images/projects/angular-tag-cloud-module-small.png b/images/projects/angular-tag-cloud-module-small.png new file mode 100644 index 00000000..372155df Binary files /dev/null and b/images/projects/angular-tag-cloud-module-small.png differ diff --git a/images/projects/angular-tag-cloud-module.png b/images/projects/angular-tag-cloud-module.png new file mode 100644 index 00000000..7e06074d Binary files /dev/null and b/images/projects/angular-tag-cloud-module.png differ diff --git a/images/projects/code-review-small.jpg b/images/projects/code-review-small.jpg new file mode 100644 index 00000000..14d613e3 Binary files /dev/null and b/images/projects/code-review-small.jpg differ diff --git a/images/projects/code-review.jpg b/images/projects/code-review.jpg new file mode 100644 index 00000000..5c8e00a4 Binary files /dev/null and b/images/projects/code-review.jpg differ diff --git a/images/projects/dotfiles-header-small.jpg b/images/projects/dotfiles-header-small.jpg new file mode 100644 index 00000000..b727755a Binary files /dev/null and b/images/projects/dotfiles-header-small.jpg differ diff --git a/images/projects/dotfiles-header.jpg b/images/projects/dotfiles-header.jpg new file mode 100644 index 00000000..ca68436c Binary files /dev/null and b/images/projects/dotfiles-header.jpg differ diff --git a/images/projects/file-tree-header-image-small.jpg b/images/projects/file-tree-header-image-small.jpg new file mode 100644 index 00000000..d391c08d Binary files /dev/null and b/images/projects/file-tree-header-image-small.jpg differ diff --git a/images/projects/file-tree-header-image.jpg b/images/projects/file-tree-header-image.jpg new file mode 100644 index 00000000..a3157e55 Binary files /dev/null and b/images/projects/file-tree-header-image.jpg differ diff --git a/images/projects/file-tree-to-text.gif b/images/projects/file-tree-to-text.gif new file mode 100644 index 00000000..b5e28a35 Binary files /dev/null and b/images/projects/file-tree-to-text.gif differ diff --git a/images/projects/mermaid-small.jpg b/images/projects/mermaid-small.jpg new file mode 100644 index 00000000..e8835c6e Binary files /dev/null and b/images/projects/mermaid-small.jpg differ diff --git a/images/projects/mermaid.jpg b/images/projects/mermaid.jpg new file mode 100644 index 00000000..6ea553f2 Binary files /dev/null and b/images/projects/mermaid.jpg differ diff --git a/images/projects/ngx-lipsum.svg b/images/projects/ngx-lipsum.svg new file mode 100644 index 00000000..7e4b2c83 --- /dev/null +++ b/images/projects/ngx-lipsum.svg @@ -0,0 +1 @@ + orem ipsum L diff --git a/images/projects/ngx-semantic-version-small.png b/images/projects/ngx-semantic-version-small.png new file mode 100644 index 00000000..a4a2451b Binary files /dev/null and b/images/projects/ngx-semantic-version-small.png differ diff --git a/images/projects/ngx-semantic-version.png b/images/projects/ngx-semantic-version.png new file mode 100644 index 00000000..6b7fb14c Binary files /dev/null and b/images/projects/ngx-semantic-version.png differ diff --git a/images/projects/semver-header-small.jpg b/images/projects/semver-header-small.jpg new file mode 100644 index 00000000..689bedc1 Binary files /dev/null and b/images/projects/semver-header-small.jpg differ diff --git a/images/projects/semver-header.jpg b/images/projects/semver-header.jpg new file mode 100644 index 00000000..02fe2412 Binary files /dev/null and b/images/projects/semver-header.jpg differ diff --git a/images/projects/toc-small.jpg b/images/projects/toc-small.jpg new file mode 100644 index 00000000..65ecfe68 Binary files /dev/null and b/images/projects/toc-small.jpg differ diff --git a/images/projects/toc.jpg b/images/projects/toc.jpg new file mode 100644 index 00000000..39cf8244 Binary files /dev/null and b/images/projects/toc.jpg differ diff --git a/images/projects/vue3-openlayers-small.png b/images/projects/vue3-openlayers-small.png new file mode 100644 index 00000000..15a9298d Binary files /dev/null and b/images/projects/vue3-openlayers-small.png differ diff --git a/images/projects/vue3-openlayers.png b/images/projects/vue3-openlayers.png new file mode 100644 index 00000000..f37a91cc Binary files /dev/null and b/images/projects/vue3-openlayers.png differ diff --git a/imprint/index.html b/imprint/index.html new file mode 100644 index 00000000..ad5367d7 --- /dev/null +++ b/imprint/index.html @@ -0,0 +1,222 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + k9n.dev + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    Imprint

    Angaben gemäß § 5 TMG

    Vertreten durch

    Haftungsausschluss:

    Haftung für Links

    Unser Angebot enthält Links zu externen Webseiten Dritter, auf deren Inhalte wir keinen Einfluss haben. Deshalb können wir für diese fremden Inhalte auch keine Gewähr übernehmen. Für die Inhalte der verlinkten Seiten ist stets der jeweilige Anbieter oder Betreiber der Seiten verantwortlich. Die verlinkten Seiten wurden zum Zeitpunkt der Verlinkung auf mögliche Rechtsverstöße überprüft. Rechtswidrige Inhalte waren zum Zeitpunkt der Verlinkung nicht erkennbar. Eine permanente inhaltliche Kontrolle der verlinkten Seiten ist jedoch ohne konkrete Anhaltspunkte einer Rechtsverletzung nicht zumutbar. Bei Bekanntwerden von Rechtsverletzungen werden wir derartige Links umgehend entfernen.

    Urheberrecht

    Die durch die Seitenbetreiber erstellten Inhalte und Werke auf diesen Seiten unterliegen dem deutschen Urheberrecht. Die Vervielfältigung, Bearbeitung, Verbreitung und jede Art der Verwertung außerhalb der Grenzen des Urheberrechtes bedürfen der schriftlichen Zustimmung des jeweiligen Autors bzw. Erstellers. Downloads und Kopien dieser Seite sind nur für den privaten, nicht kommerziellen Gebrauch gestattet. Soweit die Inhalte auf dieser Seite nicht vom Betreiber erstellt wurden, werden die Urheberrechte Dritter beachtet. Insbesondere werden Inhalte Dritter als solche gekennzeichnet. Sollten Sie trotzdem auf eine Urheberrechtsverletzung aufmerksam werden, bitten wir um einen entsprechenden Hinweis. Bei Bekanntwerden von Rechtsverletzungen werden wir derartige Inhalte umgehend entfernen.

    Datenschutz

    Die Nutzung unserer Webseite ist in der Regel ohne Angabe personenbezogener Daten möglich. Soweit auf unseren Seiten personenbezogene Daten (beispielsweise Name, Anschrift oder eMail-Adressen) erhoben werden, erfolgt dies, soweit möglich, stets auf freiwilliger Basis. Diese Daten werden ohne Ihre ausdrückliche Zustimmung nicht an Dritte weitergegeben.
    Wir weisen darauf hin, dass die Datenübertragung im Internet (z.B. bei der Kommunikation per E-Mail) Sicherheitslücken aufweisen kann. Ein lückenloser Schutz der Daten vor dem Zugriff durch Dritte ist nicht möglich.
    Der Nutzung von im Rahmen der Imprintspflicht veröffentlichten Kontaktdaten durch Dritte zur Übersendung von nicht ausdrücklich angeforderter Werbung und Informationsmaterialien wird hiermit ausdrücklich widersprochen. Die Betreiber der Seiten behalten sich ausdrücklich rechtliche Schritte im Falle der unverlangten Zusendung von Werbeinformationen, etwa durch Spam-Mails, vor.

    Google Analytics

    Diese Website benutzt Google Analytics, einen Webanalysedienst der Google Inc. (''Google''). Google Analytics verwendet sog. ''Cookies'', Textdateien, die auf Ihrem Computer gespeichert werden und die eine Analyse der Benutzung der Website durch Sie ermöglicht. Die durch den Cookie erzeugten Informationen über Ihre Benutzung dieser Website (einschließlich Ihrer IP-Adresse) wird an einen Server von Google in den USA übertragen und dort gespeichert. Google wird diese Informationen benutzen, um Ihre Nutzung der Website auszuwerten, um Reports über die Websiteaktivitäten für die Websitebetreiber zusammenzustellen und um weitere mit der Websitenutzung und der Internetnutzung verbundene Dienstleistungen zu erbringen. Auch wird Google diese Informationen gegebenenfalls an Dritte übertragen, sofern dies gesetzlich vorgeschrieben oder soweit Dritte diese Daten im Auftrag von Google verarbeiten. Google wird in keinem Fall Ihre IP-Adresse mit anderen Daten der Google in Verbindung bringen. Sie können die Installation der Cookies durch eine entsprechende Einstellung Ihrer Browser Software verhindern; wir weisen Sie jedoch darauf hin, dass Sie in diesem Fall gegebenenfalls nicht sämtliche Funktionen dieser Website voll umfänglich nutzen können. Durch die Nutzung dieser Website erklären Sie sich mit der Bearbeitung der über Sie erhobenen Daten durch Google in der zuvor beschriebenen Art und Weise und zu dem zuvor benannten Zweck einverstanden.

    + + + + \ No newline at end of file diff --git a/index.html b/index.html new file mode 100644 index 00000000..0086fc79 --- /dev/null +++ b/index.html @@ -0,0 +1,545 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + k9n.dev + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    Aktuelle Blog Posts

    Angular 19 ist da!

    Neben grauen Herbsttagen hat der November in Sachen Angular einiges zu bieten: Am 19. November 2024 wurde die neue Major-Version Angular 19 releaset! Angular bringt mit der Resource API und dem Linked Signal einige neue Features mit. Standalone Components müssen außerdem nicht mehr explizit als solche markiert werden. Wir stellen in diesem Blogpost alle wichtigen Neuerungen vor!

    Supercharge Your Angular PWA with Push Notifications: From Setup to Debugging

    In modern web applications, push notifications have become an essential feature for engaging users. Service workers are crucial in enabling this functionality by running scripts in the background, independent of a web page. This guide will walk you through setting up a service worker with push notifications in Angular, including testing, verifying, debugging, and avoiding common pitfalls.

    Angular 18 ist da: Signals, Signals, Signals!

    Und schon wieder ist ein halbes Jahr vergangen: Angular Version 18 ist jetzt verfügbar! In den letzten Versionen wurden viele neue Funktionen und Verbesserungen eingeführt. Diesmal lag der Fokus darauf, die bereits ausgelieferten APIs zu stabilisieren, diverse Feature Requests zu bearbeiten und eines der am meisten nachgefragten Projekte auf der Roadmap experimentell zu veröffentlichen: die Zoneless Change Detection.

    Modern Angular: den BookMonkey migrieren

    Angular erlebt einen Aufschwung: +Mit den letzten Major-Versionen des Frameworks wurden einige wichtige neue Konzepte und Features eingeführt. +Wir berichten darüber regelmäßig in unseren Blogposts zu den Angular-Releases. +In diesem Artikel wollen wir das Beispielprojekt "BookMonkey" aus dem Angular-Buch aktualisieren und die neuesten Konzepte von Angular praktisch einsetzen. +

    Meine Talks & Slides

    Accessibility in Angular – Angulars features for a better and more inclusive web

    The Angular Framework brings us some built-in features to help in creating accessible components and applications by wrapping common best practices and techniques. In this talk at the Angular Berlin Meetup, I presented these concepts and features.

    A11y: EAA, BFSG, WCAG, WAI, ARIA, WTF? – it’s for the people stupid!

    Accessibility betrifft uns täglich und immer, wenn wir Software verwenden. Es ist an uns, diese umzusetzen. In unserem Talk von der W-JAX am 07.11.2023 zeigen wir euch, wie ihr eure Webanwendungen von Beginn an mit einfachen Mitteln zu einem hohen Grad barrierefrei gestaltet und entwickelt.

    Buchcover: angular-buch.com

    Angular: Das große Praxisbuch – Grundlagen, fortgeschrittene Themen und Best Practices – ab Angular 15

    Lernen Sie Angular mit diesem umfassenden Praxisbuch! Dieses Buch stellt Ihnen die Bausteine von Angular, viele Best Practices und die notwendigen Werkzeuge vor. Beginnen Sie Ihren Einstieg mit einer praxisnahen Einführung.

    angular-buch.com

    Meine Projekte

    Analog Publish GitHub Pages

    When I migrated my personal website/blog to use AnalogJS, I created a GitHub Action which simplifies the deployment at GitHub Pages.

    Maintainer: vue3-openlayers

    Since April 2023, I am actively maintaining and evolving the vue3-openlayers library — An OpenLayers Wrapper for Vue3.

    ngx-lipsum

    Easily use lorem ipsum dummy texts in your angular app

    scully-plugin-mermaid — A PostRenderer Plugin for Mermaid

    Add a Scully.io PostRenderer plugin for Mermaid.js graphs, charts and diagrams embedded in Markdown files.

    Über mich

    Ich bin Danny Koppenhagen: Frontend Entwickler und -Architekt. Ich entwickle seit vielen Jahren nutzerzentrierte Enterprise Webanwendung und bevorzuge die Arbeit im DevOps-Produktionsmodell. Als technologische Basis setze ich auf moderne SPA-Frameworks wie Angular und Vue mit TypeScript. Weiterhin bin ich als Berater im Bereich der Webentwicklung tätig und Maintainer einiger Open Source Projekte.

    k9n.dev?

    Warum k9n.dev? Hierbei handelt es sich um ein Numeronym, bei dem die Zahl zwischen den beiden Buchstaben für die Anzahl der ausgelassenen Buchstaben in meinem Nachnamen steht (Vgl.: a11y, i18n, l10n, ...).

    Interviews

    IT@DB Podcast Folge #73 vom 18.01.2024: Digitale Barrierefreiheit

    Zusammen mit meinem Kollegen Maximilian Franzke von der DB Systel, war ich zu Gast beim IT@DB Podcast von Jan Götze. Hier haben wir darüber gesprochen, warum es in unserer zunehmend digitalisierten Welt von entscheidender Bedeutung ist, dass wir die Prinzipien der digitalen Barrierefreiheit fest in unserer Gestaltung und Entwicklung von digitalen Produkten verankern. Barrierefreiheit geht weit über bloße Compliance hinaus – es ist die Grundlage für eine inklusive und gerechte Online-Erfahrung! Digitale Barrierefreiheit ermöglicht es Menschen mit unterschiedlichen Fähigkeiten, unabhängig von physischen oder kognitiven Einschränkungen, die gleichen Chancen im digitalen Raum zu nutzen.

    Ein lebendiger oranger Hintergrund bildet die Kulisse für kreative Würfel, die in geschickter Anordnung die Worte "Accessible" und "Possible" formen. Die Würfel sind tastbar, mit klaren Strukturen, um die Botschaft haptisch erfahrbar zu machen. Das Bild verweist auf Folge Nummer 73 der Podcastfolge von IT@DB zum Thema "Digitale Barrierefreiheit"

    #000000 c0ffee Tech-Talk der DB Systel

    Im Mai war ich zu Gast beim #000000 c0ffee Tech-Talk der DB Systel, der Auf Grund der weltweiten Corona Pandemie remote stattfand.\r\n Im Interview spreche ich über meine Erfahrungen mit Vue.js und Angular und gehe darauf ein, welches Framework sich für welche Anwendungszwecke eignet. Außerdem erläutere ich, wie der aktuelle Stand der Technik für Progressive Webapps (PWA) ist. Im letzten Teil sprechen wir über die Anbindung von APIs und über das Architekturmuster \"Backend For Frontends\" (BFF).

    Interview mit Agiledrop

    Im Interview mit Agiledrop spreche ich über meinen Weg zur Webentwicklung und wie ich dazu kam Co-Autor des deutschsprachigen Angular Buchs zu sein. Weiterhin berichte ich von meinen praktischen Erfahrungen mit Angular und Vue.js und in welchem Fall ich auf Angular oder Vue.js setzen würde. Zum Abschluss gehe ich auf den Static-Site-Generator \"Scully\" und Webcomponents sowie auf meine Erwartungen an die zukünftige Entwicklung im Bereich Webtechnologien ein.

    Mein Werdegang

    Angular Berlin Logo

    Angular Berlin Meetup

    Ich bin Co-Organisator des Angular Meetup in Berlin. Dieses findet ca. alle 4-6 Wochen an wechselnden Standorten statt. Neben zwei Talks am Abend steht der Austausch und die Vernetzung mit anderen Entwickler:innen im Vordergrund.

    Meetup.com: Angular Berlin
    + + + + \ No newline at end of file diff --git a/manifest.webmanifest b/manifest.webmanifest new file mode 100644 index 00000000..af9a95ae --- /dev/null +++ b/manifest.webmanifest @@ -0,0 +1,35 @@ +{ + "name": "k9n.dev", + "short_name": "k9n", + "theme_color": "#5e7959", + "background_color": "#2e3141", + "display": "standalone", + "scope": "./", + "start_url": "./", + "icons": [ + { + "src": "icons/icon-192x192.png", + "sizes": "192x192", + "type": "image/png", + "purpose": "maskable any" + }, + { + "src": "icons/icon-256x256.png", + "sizes": "256x256", + "type": "image/png", + "purpose": "maskable any" + }, + { + "src": "icons/icon-384x384.png", + "sizes": "384x384", + "type": "image/png", + "purpose": "maskable any" + }, + { + "src": "icons/icon-512x512.png", + "sizes": "512x512", + "type": "image/png", + "purpose": "maskable any" + } + ] +} diff --git a/ngsw-config.json b/ngsw-config.json new file mode 100644 index 00000000..4a018942 --- /dev/null +++ b/ngsw-config.json @@ -0,0 +1,42 @@ +{ + "$schema": "./node_modules/@angular/service-worker/config/schema.json", + "index": "/index.html", + "dataGroups": [ + { + "name": "Blog Posts", + "urls": ["/blog/**"], + "cacheConfig": { + "strategy": "freshness", + "maxSize": 20, + "maxAge": "12h", + "timeout": "3s" + } + } + ], + "assetGroups": [ + { + "name": "app", + "installMode": "prefetch", + "resources": { + "files": [ + "/favicon.ico", + "/index.html", + "/manifest.webmanifest", + "/*.css", + "/*.js" + ] + } + }, + { + "name": "assets", + "installMode": "lazy", + "updateMode": "prefetch", + "resources": { + "files": [ + "/assets/**", + "/*.(eot|svg|cur|jpg|png|webp|gif|otf|ttf|woff|woff2|ani)" + ] + } + } + ] +} diff --git a/projects/2019-11-20-angular-tag-cloud-module/index.html b/projects/2019-11-20-angular-tag-cloud-module/index.html new file mode 100644 index 00000000..7aee4d34 --- /dev/null +++ b/projects/2019-11-20-angular-tag-cloud-module/index.html @@ -0,0 +1,260 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + k9n.dev | angular-tag-cloud-module — Generated word clouds for your Angular app + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    angular-tag-cloud-module — Generated word clouds for your Angular app

    My project angular-tag-cloud-module gives you an Angular module for setting up a tag cloud / word cloud easily. +It will take an array of words or links and put them randomly into a container. +You can specify some styling options for the whole word cloud or for each tag cloud item.

    +

    You can try out the module, and it's configuration at the Github Pages Demo Site.

    +

    The official documentation for angular-tag-cloud-module can be found on Github or NPM.

    +
    + + + + \ No newline at end of file diff --git a/projects/2020-02-02-vscode-file-tree-to-text-generator/index.html b/projects/2020-02-02-vscode-file-tree-to-text-generator/index.html new file mode 100644 index 00000000..4f83dc66 --- /dev/null +++ b/projects/2020-02-02-vscode-file-tree-to-text-generator/index.html @@ -0,0 +1,265 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + k9n.dev | vscode-file-tree-to-text-generator — A Visual Studio Code Extension to generate file trees + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    vscode-file-tree-to-text-generator — A Visual Studio Code Extension to generate file trees

    My project vscode-file-tree-to-text-generator will give you tha ability to generate file / directory trees for different targets directly from you Visual Studio Code explorer. +It supports the following formats out-of-the-box:

    +
      +
    • Markdown
    • +
    • LaTeX (DirTree)
    • +
    • ASCII
    • +
    +

    File Tree To Text Gif

    +

    Furthermore it allows you also to create custom directory tree output formats or changes the defaults to satisfy your custom needs.

    +

    Check out the official documentation on Github or Visual Studio Marketplace.

    +
    + + + + \ No newline at end of file diff --git a/projects/2020-02-26-scully-plugin-toc/index.html b/projects/2020-02-26-scully-plugin-toc/index.html new file mode 100644 index 00000000..8e6d2b55 --- /dev/null +++ b/projects/2020-02-26-scully-plugin-toc/index.html @@ -0,0 +1,262 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + k9n.dev | scully-plugin-toc — A Plugin for generating table of contents + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    scully-plugin-toc — A Plugin for generating table of contents

    My Scully.io plugin scully-plugin-toc will insert a table of contents (TOC) for your Markdown content automatically.

    +

    You need just to define a placeholder at the place where the TOC should appear. +The plugin will generate a TOC for all the headings it will find (you can also specify the level) and then insert the generated TOC at the place where you put the placeholder for it.

    +

    Check out how to set it up by reading the docs in the Github repository.

    +
    +

    You haven't heard about Scully yet? Check out my article series about the static site generator Scully.

    +
    +
    + + + + \ No newline at end of file diff --git a/projects/2020-03-12-dotfiles/index.html b/projects/2020-03-12-dotfiles/index.html new file mode 100644 index 00000000..7d543bc4 --- /dev/null +++ b/projects/2020-03-12-dotfiles/index.html @@ -0,0 +1,257 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + k9n.dev | .dotfiles — My default configuration files for macOS + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    .dotfiles — My default configuration files for macOS

    I collected all my .bash, .zsh, .vscode, .vim, macOS, homebrew and iterm2 configuration files in one repository for an easy setup of a new macOS system with and having a great developer experience.

    +

    Check out the official documentation and all stored configurations on Github.

    +
    + + + + \ No newline at end of file diff --git a/projects/2020-04-09-ngx-semantic-version/index.html b/projects/2020-04-09-ngx-semantic-version/index.html new file mode 100644 index 00000000..5d0152b8 --- /dev/null +++ b/projects/2020-04-09-ngx-semantic-version/index.html @@ -0,0 +1,263 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + k9n.dev | ngx-semantic-version — An Angular Schematic to enhance your release workflow + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    ngx-semantic-version — An Angular Schematic to enhance your release workflow

    My project ngx-semantic-version is an Angular Schematic that will add and configure commitlint, commitizen, husky and standard-version to enforce commit messages in the conventional commit format and to automate your release and Changelog generation by respecting semver. +All you have to do for the setup is to execute this command in your Angular CLI project:

    +
    ng add ngx-semantic-version
    +
    + +

    commitizen

    +

    Check out my article ngx-semantic-version: enhance your git and release workflow to learn more about it.

    +

    The official documentation for ngx-semantic-version can be found on Github or NPM.

    +
    + + + + \ No newline at end of file diff --git a/projects/2020-05-22-vscode-code-review/index.html b/projects/2020-05-22-vscode-code-review/index.html new file mode 100644 index 00000000..446fa9d3 --- /dev/null +++ b/projects/2020-05-22-vscode-code-review/index.html @@ -0,0 +1,275 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + k9n.dev | vscode-code-review — Create exportable code reviews in vscode + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    vscode-code-review — Create exportable code reviews in vscode

    It my job it happens from time to time that customers asking me about doing an expert review by checking their source code. +Sometimes I will get access to their git repository but mostly with very limited permissions (read access). +But it can happen also that I will just receive a *.zip file containing all the source code.

    +

    When I was working on a review I had always to copy the file and line references my comments were related to — which can be quite exhausting. +In the end, everything was landing in a good old Excel sheet which isn't leading in a good-looking report.

    +

    Another way to create a review would be to add code comments and create a pull/merge request at customers site. +But in the end all my comments would be part of the code and probably never cleaned up.

    +

    So I was looking for a way to easily create code reviews that can be exported and delivered to the customer without copying file and line references manually. +As I am used to work with Visual Studio Code, I thought to search for some appropriate extensions but I wasn't successful. +In the end I decided: let's take the scepter and develop an extension by myself that will satisfy my and probably also your needs.

    +

    The result is my extensions vscode-code-review.

    +

    Features

    +

    You can simply install the extension via the Visual Studio Code Marketplace.

    +

    Once installed, it will add a new menu option called 'Code Review: Add Note' when being on an active file. +When you click this menu, a view opens to the right side with a form where you can enter your notes. The notes will be stored by default in the file code-review.csv on the top level of your project. +It includes automatically the relative file path as well as the cursor position and/or the marked text range(s).

    +

    When you finished your review, you can either process the .csv file by yourself and import it somewhere or generate an HTML report by using the extension (see GIF below).

    +

    Demo

    +

    You are also able to use an adjusted template for report generation. +Check out all the options in my related Github repository.

    +
    + + + + \ No newline at end of file diff --git a/projects/2020-09-12-scully-plugin-mermaid/index.html b/projects/2020-09-12-scully-plugin-mermaid/index.html new file mode 100644 index 00000000..e71f9863 --- /dev/null +++ b/projects/2020-09-12-scully-plugin-mermaid/index.html @@ -0,0 +1,297 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + k9n.dev | scully-plugin-mermaid — A PostRenderer Plugin for Mermaid + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    scully-plugin-mermaid — A PostRenderer Plugin for Mermaid

    My Scully.io plugin scully-plugin-mermaid will provide a PostRenderer for Mermaid.js graphs, charts and diagrams embedded in Markdown files.

    +

    With this PostRenderer you can write Mermaid.js syntax inside code snippets in your Markdown files that will be rendered by Scully and post-rendered by Mermaid.js. +So in fact descriptions like the following in your Markdown files will be converted into SVG graphics:

    +
    ```mermaid
    +sequenceDiagram
    +    Alice ->> Bob: Hello Bob, how are you?
    +    Bob-->>John: How about you John?
    +    Bob--x Alice: I am good thanks!
    +    Bob-x John: I am good thanks!
    +    Note right of John: Some note.
    +
    +    Bob-->Alice: Checking with John...
    +    Alice->John: Yes... John, how are you?
    +```
    + +

    The above example will result in a graphic like this one:

    +
    %%{
    +  init: {
    +    'theme': 'base',
    +    'themeVariables': {
    +      'primaryColor': '#2d2d2d',
    +      'primaryTextColor': '#fff',
    +      'primaryBorderColor': '#ffffff',
    +      'lineColor': '#F8B229',
    +      'secondaryColor': '#006100',
    +      'tertiaryColor': '#ffffff'
    +    }
    +  }
    +}%%
    +sequenceDiagram
    +    Alice ->> Bob: Hello Bob, how are you?
    +    Bob-->>John: How about you John?
    +    Bob--x Alice: I am good thanks!
    +    Bob-x John: I am good thanks!
    +    Note right of John: Some note.
    +
    +    Bob-->Alice: Checking with John...
    +    Alice->John: Yes... John, how are you?
    +

    Check out how to set it up by reading the docs in the Github repository.

    +
    +

    You haven't heard about Scully yet? Check out my article series about the static site generator Scully.

    +
    +
    + + + + \ No newline at end of file diff --git a/projects/2021-09-14-ngx-lipsum/index.html b/projects/2021-09-14-ngx-lipsum/index.html new file mode 100644 index 00000000..fa14d422 --- /dev/null +++ b/projects/2021-09-14-ngx-lipsum/index.html @@ -0,0 +1,265 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + k9n.dev | ngx-lipsum + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    ngx-lipsum

    My Angular package ngx-lipsum let's you easily fill your angular app with dummy texts for demo or prototyping purpose. +The name lipsum is a mix of the words lorem ipsum which is a common phrase used for placeholder texts.

    +

    The package provides you three different ways to generate and insert lorem ipsum texts:

    +
      +
    1. by adding the lipsum directive to HTML elements
    2. +
    3. by inserting the <ngx-lipsum> component into your HTML template
    4. +
    5. by using the LipsumService to retrieve the text programmatically
    6. +
    +

    Under the hood the package uses the lorem-ipsum library which is also available on NPM.

    +

    Check out how to set it up by reading the docs in the Github repository.

    +
    + + + + \ No newline at end of file diff --git a/projects/2023-04-05-vue3-openlayers/index.html b/projects/2023-04-05-vue3-openlayers/index.html new file mode 100644 index 00000000..71007eac --- /dev/null +++ b/projects/2023-04-05-vue3-openlayers/index.html @@ -0,0 +1,266 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + k9n.dev | Maintainer: vue3-openlayers + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    Maintainer: vue3-openlayers

    Since April 2023, I am actively maintaining and evolving the vue3-openlayers library — An OpenLayers Wrapper for Vue3. +My original intention was just to fix some bugs and add some features I needed this time in my current project. +But after a while using this project I really loved it and was motivated enough to get more involved into the project. +I contributed actively and got in touch with Melih Altıntaş, the creator of this library. +He was really supportive and made me an official Maintainer of the project. +Since then I shifted the whole project to be based on TypeScript, streamlined the APIs and added several new features and bug fixes.

    + +
    + + + + \ No newline at end of file diff --git a/projects/2023-12-29-analog-publish-gh-pages/index.html b/projects/2023-12-29-analog-publish-gh-pages/index.html new file mode 100644 index 00000000..efebe0fd --- /dev/null +++ b/projects/2023-12-29-analog-publish-gh-pages/index.html @@ -0,0 +1,267 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + k9n.dev | Analog Publish GitHub Pages + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    Analog Publish GitHub Pages

    When I migrated my personal website/blog (this site) to use AnalogJS in December 2023, I created a GitHub Action which simplifies the deployment at GitHub Pages.

    +

    Analog is a meta-framework on top of Angular which includes a static site generator, file based routing and other opinionated features. +I decided to switch from Scully to Analog since Scullys evolvement seems currently to stuck and it was hard to update my site to newer major Angular versions (16/17). +I like to have an almost evergreen environment and since I followed the development from Analog by Brandon Roberts, wanted to try it out. +Since then, I really love to use AnalogJS: it's modern, opinionated and comes with all the features I need for my site and blog.

    +

    The action encapsulates the issues I ran into when I deployed my site the first time +(e. g. resources that couldn't be found because of a missing .nojekyll file which caused a side effect that files starting with an underscore (_) are being ignored). +I made this action quite simple, so it will install the dependencies, build the static site and deploy it by copying over the static site artifacts into the gh-pages branch.

    + +
    + + + + \ No newline at end of file diff --git a/projects/index.html b/projects/index.html new file mode 100644 index 00000000..8fadcbc4 --- /dev/null +++ b/projects/index.html @@ -0,0 +1,308 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + k9n.dev + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    Meine Projekte

    Analog Publish GitHub Pages

    When I migrated my personal website/blog to use AnalogJS, I created a GitHub Action which simplifies the deployment at GitHub Pages.

    Maintainer: vue3-openlayers

    Since April 2023, I am actively maintaining and evolving the vue3-openlayers library — An OpenLayers Wrapper for Vue3.

    ngx-lipsum

    Easily use lorem ipsum dummy texts in your angular app

    scully-plugin-mermaid — A PostRenderer Plugin for Mermaid

    Add a Scully.io PostRenderer plugin for Mermaid.js graphs, charts and diagrams embedded in Markdown files.

    vscode-code-review — Create exportable code reviews in vscode

    Create exportable code reviews in Visual Studio Code including automatic file and line references

    ngx-semantic-version — An Angular Schematic to enhance your release workflow

    Simply add and configure commitlint, husky, commitizen and standard-version for your Angular project by using Angular Schematics

    .dotfiles — My default configuration files for macOS

    I collected all my .bash, .zsh, .vscode, .vim, macOS, homebrew and iterm configuration files in one repository for easily setup a new macOS system with a great developer experience.

    scully-plugin-toc — A Plugin for generating table of contents

    This plugin for Scully will insert a table of contents (TOC) for your Markdown content automatically

    vscode-file-tree-to-text-generator — A Visual Studio Code Extension to generate file trees

    Generate file trees from your VS Code Explorer for different Markdown, LaTeX, ASCII or a userdefined format

    angular-tag-cloud-module — Generated word clouds for your Angular app

    My module angular-tag-cloud-module lets you generate word clouds / tag clouds for your Angular app

    + + + + \ No newline at end of file diff --git a/recruitment/index.html b/recruitment/index.html new file mode 100644 index 00000000..80ea8d1b --- /dev/null +++ b/recruitment/index.html @@ -0,0 +1,217 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + k9n.dev + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    Dear Recruiter, Talent Scout, Others,

    Thanks for reaching out. I'm always interested in hearing about what new and exciting opportunities are out there. As a software engineer I'm sure you can imagine that I get a very high volume of recruiters reaching out via Mail, on LinkedIn, XING, etc. It is a wonderful position of privilege to be in and I'm thankful for it.

    It does however mean that I don't have the time to hop on a call with everyone who reaches out. A lot of the time, incoming messages represent a very poor fit indeed.

    That being said, I want to filter out early matching job opportunities from spam or unqualified messages. In order to do so, please read and verify, you can positively check the following requirements with this ones, the position you/your client is offering:

    • The position is really related to JavaScript/TypeScript and frontend or fullstack development/-architecture
    • Flexible Working Hours are obviously
    • At least 30 days of annual vacation
    • 100% remote job or a position based in Berlin with flexibility to work for at least 2 days a week from home
    • An annual salary of EUR 95.000 or more
    • At least EUR 2000 annual training budget (visiting conferences, joining Events, on-site/remote trainings)
    • low hierarchies in a healthy and balanced working atmosphere
    • No connection to the defense industry
    • A permanent employment contract

    If all or at least 90% of this requirements from myself listed above will match with the offer you have, you can contact me again. Furthermore I would ask you to send along the company name, a job description and, total compensation details for the role you're reaching out.

    While I very much appreciate the fact that exceptionally talented and engaged recruiters reach out consistently, sorting serious and high quality opportunities from spam would be a full time job without an autoresponder.

    Thanks for your understanding.

    Best regards, Danny

    + + + + \ No newline at end of file diff --git a/robots.txt b/robots.txt new file mode 100644 index 00000000..f0f69ca5 --- /dev/null +++ b/robots.txt @@ -0,0 +1,4 @@ +user-agent: * +allow: * +disallow: /recruitment/ +sitemap: https://k9n.dev/sitemap.xml diff --git a/sitemap.xml b/sitemap.xml new file mode 100644 index 00000000..1d20fc48 --- /dev/null +++ b/sitemap.xml @@ -0,0 +1,168 @@ + + + + + https://k9n.dev/api/rss.xml + 2024-12-19 + + + https://k9n.dev/ + 2024-12-19 + + + https://k9n.dev/blog + 2024-12-19 + + + https://k9n.dev/contact + 2024-12-19 + + + https://k9n.dev/imprint + 2024-12-19 + + + https://k9n.dev/projects + 2024-12-19 + + + https://k9n.dev/recruitment + 2024-12-19 + + + https://k9n.dev/blog/2019-07-progressive-web-app + 2024-12-19 + + + https://k9n.dev/blog/2019-11-ngx-semantic-version + 2024-12-19 + + + https://k9n.dev/blog/2020-01-angular-scully + 2024-12-19 + + + https://k9n.dev/blog/2020-02-angular9 + 2024-12-19 + + + https://k9n.dev/blog/2020-03-dig-deeper-into-scully-ssg + 2024-12-19 + + + https://k9n.dev/blog/2020-06-angular10 + 2024-12-19 + + + https://k9n.dev/blog/2020-08-my-development-setup + 2024-12-19 + + + https://k9n.dev/blog/2020-09-angular-schematics-common-helpers + 2024-12-19 + + + https://k9n.dev/blog/2020-11-angular11 + 2024-12-19 + + + https://k9n.dev/blog/2020-11-twa + 2024-12-19 + + + https://k9n.dev/blog/2021-06-angular12 + 2024-12-19 + + + https://k9n.dev/blog/2021-11-angular13 + 2024-12-19 + + + https://k9n.dev/blog/2022-06-angular14 + 2024-12-19 + + + https://k9n.dev/blog/2022-11-angular15 + 2024-12-19 + + + https://k9n.dev/blog/2022-12-vue-route-based-nav-menu + 2024-12-19 + + + https://k9n.dev/blog/2023-05-angular16 + 2024-12-19 + + + https://k9n.dev/blog/2023-10-vue2-vue3-migration + 2024-12-19 + + + https://k9n.dev/blog/2023-11-angular17 + 2024-12-19 + + + https://k9n.dev/blog/2024-05-modern-angular-bm + 2024-12-19 + + + https://k9n.dev/blog/2024-06-angular18 + 2024-12-19 + + + https://k9n.dev/blog/2024-07-angular-push-notifications + 2024-12-19 + + + https://k9n.dev/blog/2024-11-angular19 + 2024-12-19 + + + https://k9n.dev/projects/2019-11-20-angular-tag-cloud-module + 2024-12-19 + + + https://k9n.dev/projects/2020-02-02-vscode-file-tree-to-text-generator + 2024-12-19 + + + https://k9n.dev/projects/2020-02-26-scully-plugin-toc + 2024-12-19 + + + https://k9n.dev/projects/2020-03-12-dotfiles + 2024-12-19 + + + https://k9n.dev/projects/2020-04-09-ngx-semantic-version + 2024-12-19 + + + https://k9n.dev/projects/2020-05-22-vscode-code-review + 2024-12-19 + + + https://k9n.dev/projects/2020-09-12-scully-plugin-mermaid + 2024-12-19 + + + https://k9n.dev/projects/2021-09-14-ngx-lipsum + 2024-12-19 + + + https://k9n.dev/projects/2023-04-05-vue3-openlayers + 2024-12-19 + + + https://k9n.dev/projects/2023-12-29-analog-publish-gh-pages + 2024-12-19 + + + https://k9n.dev/talks/2023-11-20-einfuehrung-barrierefreiheit-web + 2024-12-19 + + + https://k9n.dev/talks/2024-01-16-accessibility-in-angular + 2024-12-19 + + \ No newline at end of file diff --git a/talks/2023-11-20-einfuehrung-barrierefreiheit-web/index.html b/talks/2023-11-20-einfuehrung-barrierefreiheit-web/index.html new file mode 100644 index 00000000..11af6033 --- /dev/null +++ b/talks/2023-11-20-einfuehrung-barrierefreiheit-web/index.html @@ -0,0 +1,310 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + k9n.dev | A11y: EAA, BFSG, WCAG, WAI, ARIA, WTF? – it’s for the people stupid! + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + \ No newline at end of file diff --git a/talks/2024-01-16-accessibility-in-angular/index.html b/talks/2024-01-16-accessibility-in-angular/index.html new file mode 100644 index 00000000..f3b765e0 --- /dev/null +++ b/talks/2024-01-16-accessibility-in-angular/index.html @@ -0,0 +1,310 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + k9n.dev | Accessibility in Angular – Angulars features for a better and more inclusive web + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + \ No newline at end of file