From 268bcc23c15a3c632d76c87956cf77976fedfadc Mon Sep 17 00:00:00 2001 From: Skylar Ittner Date: Sat, 28 Feb 2026 15:29:55 -0700 Subject: [PATCH] Deployed 5f103b6 to 0.47 with MkDocs 1.6.1 and mike 2.1.3 --- 0.47/404.html | 1349 ++++ 0.47/Docs/Address/index.html | 1463 ++++ 0.47/Docs/Carrier_Service/index.html | 2041 +++++ 0.47/Docs/Database/index.html | 1691 +++++ 0.47/Docs/Events/index.html | 1626 ++++ 0.47/Docs/FormPS1583/index.html | 1643 ++++ 0.47/Docs/Parcel/index.html | 1862 +++++ 0.47/Docs/Receipt/index.html | 1915 +++++ 0.47/Docs/ReceiptPrinter/index.html | 1531 ++++ 0.47/Docs/TrackingBarcode/index.html | 1552 ++++ 0.47/Examples/01Minimal/index.html | 1395 ++++ 0.47/Examples/02Basic/index.html | 1516 ++++ 0.47/Examples/03Shipping/index.html | 1475 ++++ 0.47/Examples/04CardProcessor/index.html | 1639 ++++ 0.47/Examples/05CryptoProcessor/index.html | 1466 ++++ 0.47/Examples/basic-demo/plugin.js | 65 + 0.47/Examples/basic-demo/uipluginpage.f7 | 56 + 0.47/Examples/crypto-processor/plugin.js | 72 + 0.47/Examples/payment-processor/plugin.js | 244 + 0.47/Examples/shipping/plugin.js | 82 + 0.47/Plugin API/barcode/index.html | 1774 +++++ 0.47/Plugin API/database/index.html | 1494 ++++ 0.47/Plugin API/fs/index.html | 1745 +++++ 0.47/Plugin API/global functions/index.html | 1582 ++++ 0.47/Plugin API/graphics/index.html | 1545 ++++ 0.47/Plugin API/i18n/index.html | 1814 +++++ 0.47/Plugin API/kiosk/index.html | 1495 ++++ 0.47/Plugin API/mailboxes/index.html | 2257 ++++++ 0.47/Plugin API/pos/index.html | 2356 ++++++ 0.47/Plugin API/print/index.html | 1644 ++++ 0.47/Plugin API/reports/index.html | 1571 ++++ 0.47/Plugin API/settings/index.html | 1574 ++++ 0.47/Plugin API/shipping/index.html | 2112 ++++++ 0.47/Plugin API/storage/index.html | 1761 +++++ 0.47/Plugin API/ui/index.html | 2143 ++++++ 0.47/Plugin API/user/index.html | 1747 +++++ 0.47/Plugin API/util/index.html | 2887 +++++++ .../fonts.googleapis.com/css.49ea35f2.css | 594 ++ .../v30/KFOjCnqEu92Fr1Mu51TjASc-CsTKlA.woff2 | Bin 0 -> 10428 bytes .../v30/KFOjCnqEu92Fr1Mu51TjASc0CsTKlA.woff2 | Bin 0 -> 12864 bytes .../v30/KFOjCnqEu92Fr1Mu51TjASc1CsTKlA.woff2 | Bin 0 -> 5928 bytes .../v30/KFOjCnqEu92Fr1Mu51TjASc2CsTKlA.woff2 | Bin 0 -> 1512 bytes .../v30/KFOjCnqEu92Fr1Mu51TjASc3CsTKlA.woff2 | Bin 0 -> 16700 bytes .../v30/KFOjCnqEu92Fr1Mu51TjASc5CsTKlA.woff2 | Bin 0 -> 7696 bytes .../v30/KFOjCnqEu92Fr1Mu51TjASc6CsQ.woff2 | Bin 0 -> 17508 bytes .../v30/KFOjCnqEu92Fr1Mu51TzBic-CsTKlA.woff2 | Bin 0 -> 10076 bytes .../v30/KFOjCnqEu92Fr1Mu51TzBic0CsTKlA.woff2 | Bin 0 -> 12620 bytes .../v30/KFOjCnqEu92Fr1Mu51TzBic1CsTKlA.woff2 | Bin 0 -> 5972 bytes .../v30/KFOjCnqEu92Fr1Mu51TzBic2CsTKlA.woff2 | Bin 0 -> 1460 bytes .../v30/KFOjCnqEu92Fr1Mu51TzBic3CsTKlA.woff2 | Bin 0 -> 16024 bytes .../v30/KFOjCnqEu92Fr1Mu51TzBic5CsTKlA.woff2 | Bin 0 -> 7460 bytes .../v30/KFOjCnqEu92Fr1Mu51TzBic6CsQ.woff2 | Bin 0 -> 17032 bytes .../v30/KFOkCnqEu92Fr1Mu51xEIzIFKw.woff2 | Bin 0 -> 1512 bytes .../v30/KFOkCnqEu92Fr1Mu51xFIzIFKw.woff2 | Bin 0 -> 16676 bytes .../v30/KFOkCnqEu92Fr1Mu51xGIzIFKw.woff2 | Bin 0 -> 12704 bytes .../v30/KFOkCnqEu92Fr1Mu51xHIzIFKw.woff2 | Bin 0 -> 5928 bytes .../roboto/v30/KFOkCnqEu92Fr1Mu51xIIzI.woff2 | Bin 0 -> 17368 bytes .../v30/KFOkCnqEu92Fr1Mu51xLIzIFKw.woff2 | Bin 0 -> 7700 bytes .../v30/KFOkCnqEu92Fr1Mu51xMIzIFKw.woff2 | Bin 0 -> 10292 bytes .../v30/KFOlCnqEu92Fr1MmSU5fABc4EsA.woff2 | Bin 0 -> 9576 bytes .../roboto/v30/KFOlCnqEu92Fr1MmSU5fBBc4.woff2 | Bin 0 -> 15740 bytes .../v30/KFOlCnqEu92Fr1MmSU5fBxc4EsA.woff2 | Bin 0 -> 7120 bytes .../v30/KFOlCnqEu92Fr1MmSU5fCBc4EsA.woff2 | Bin 0 -> 1480 bytes .../v30/KFOlCnqEu92Fr1MmSU5fCRc4EsA.woff2 | Bin 0 -> 15000 bytes .../v30/KFOlCnqEu92Fr1MmSU5fChc4EsA.woff2 | Bin 0 -> 11796 bytes .../v30/KFOlCnqEu92Fr1MmSU5fCxc4EsA.woff2 | Bin 0 -> 5468 bytes .../v30/KFOlCnqEu92Fr1MmWUlfABc4EsA.woff2 | Bin 0 -> 9644 bytes .../roboto/v30/KFOlCnqEu92Fr1MmWUlfBBc4.woff2 | Bin 0 -> 15860 bytes .../v30/KFOlCnqEu92Fr1MmWUlfBxc4EsA.woff2 | Bin 0 -> 6936 bytes .../v30/KFOlCnqEu92Fr1MmWUlfCBc4EsA.woff2 | Bin 0 -> 1432 bytes .../v30/KFOlCnqEu92Fr1MmWUlfCRc4EsA.woff2 | Bin 0 -> 14684 bytes .../v30/KFOlCnqEu92Fr1MmWUlfChc4EsA.woff2 | Bin 0 -> 11824 bytes .../v30/KFOlCnqEu92Fr1MmWUlfCxc4EsA.woff2 | Bin 0 -> 5548 bytes .../roboto/v30/KFOmCnqEu92Fr1Mu4WxKOzY.woff2 | Bin 0 -> 7112 bytes .../s/roboto/v30/KFOmCnqEu92Fr1Mu4mxK.woff2 | Bin 0 -> 15744 bytes .../roboto/v30/KFOmCnqEu92Fr1Mu5mxKOzY.woff2 | Bin 0 -> 9628 bytes .../roboto/v30/KFOmCnqEu92Fr1Mu72xKOzY.woff2 | Bin 0 -> 15344 bytes .../roboto/v30/KFOmCnqEu92Fr1Mu7GxKOzY.woff2 | Bin 0 -> 11872 bytes .../roboto/v30/KFOmCnqEu92Fr1Mu7WxKOzY.woff2 | Bin 0 -> 5560 bytes .../roboto/v30/KFOmCnqEu92Fr1Mu7mxKOzY.woff2 | Bin 0 -> 1484 bytes ...wgGEFl0_3vrtSM1J-gEPT5Ese6hmHSV0mf0h.woff2 | Bin 0 -> 24792 bytes ...wgGEFl0_3vrtSM1J-gEPT5Ese6hmHSZ0mf0h.woff2 | Bin 0 -> 16296 bytes ...wgGEFl0_3vrtSM1J-gEPT5Ese6hmHSd0mf0h.woff2 | Bin 0 -> 7528 bytes ...5mwgGEFl0_3vrtSM1J-gEPT5Ese6hmHSh0mQ.woff2 | Bin 0 -> 22736 bytes ...wgGEFl0_3vrtSM1J-gEPT5Ese6hmHSt0mf0h.woff2 | Bin 0 -> 10096 bytes ...wgGEFl0_3vrtSM1J-gEPT5Ese6hmHSx0mf0h.woff2 | Bin 0 -> 13036 bytes ...euFoqFrlnAIe2Imhk1T8rbociImtElOUlYIw.woff2 | Bin 0 -> 7972 bytes ...euFoqFrlnAIe2Imhk1T8rbociImtEleUlYIw.woff2 | Bin 0 -> 17428 bytes ...euFoqFrlnAIe2Imhk1T8rbociImtEluUlYIw.woff2 | Bin 0 -> 26644 bytes ...q2oeuFoqFrlnAIe2Imhk1T8rbociImtEm-Ul.woff2 | Bin 0 -> 24652 bytes ...euFoqFrlnAIe2Imhk1T8rbociImtEmOUlYIw.woff2 | Bin 0 -> 10704 bytes ...euFoqFrlnAIe2Imhk1T8rbociImtEn-UlYIw.woff2 | Bin 0 -> 14288 bytes .../postalpoint.app/images/favicon-voxel.png | Bin 0 -> 1873 bytes .../unpkg.com/mermaid@11/dist/mermaid.min.js | 2811 +++++++ 0.47/assets/images/favicon.png | Bin 0 -> 1870 bytes .../assets/javascripts/bundle.79ae519e.min.js | 16 + .../javascripts/bundle.79ae519e.min.js.map | 7 + .../javascripts/lunr/min/lunr.ar.min.js | 1 + .../javascripts/lunr/min/lunr.da.min.js | 18 + .../javascripts/lunr/min/lunr.de.min.js | 18 + .../javascripts/lunr/min/lunr.du.min.js | 18 + .../javascripts/lunr/min/lunr.el.min.js | 1 + .../javascripts/lunr/min/lunr.es.min.js | 18 + .../javascripts/lunr/min/lunr.fi.min.js | 18 + .../javascripts/lunr/min/lunr.fr.min.js | 18 + .../javascripts/lunr/min/lunr.he.min.js | 1 + .../javascripts/lunr/min/lunr.hi.min.js | 1 + .../javascripts/lunr/min/lunr.hu.min.js | 18 + .../javascripts/lunr/min/lunr.hy.min.js | 1 + .../javascripts/lunr/min/lunr.it.min.js | 18 + .../javascripts/lunr/min/lunr.ja.min.js | 1 + .../javascripts/lunr/min/lunr.jp.min.js | 1 + .../javascripts/lunr/min/lunr.kn.min.js | 1 + .../javascripts/lunr/min/lunr.ko.min.js | 1 + .../javascripts/lunr/min/lunr.multi.min.js | 1 + .../javascripts/lunr/min/lunr.nl.min.js | 18 + .../javascripts/lunr/min/lunr.no.min.js | 18 + .../javascripts/lunr/min/lunr.pt.min.js | 18 + .../javascripts/lunr/min/lunr.ro.min.js | 18 + .../javascripts/lunr/min/lunr.ru.min.js | 18 + .../javascripts/lunr/min/lunr.sa.min.js | 1 + .../lunr/min/lunr.stemmer.support.min.js | 1 + .../javascripts/lunr/min/lunr.sv.min.js | 18 + .../javascripts/lunr/min/lunr.ta.min.js | 1 + .../javascripts/lunr/min/lunr.te.min.js | 1 + .../javascripts/lunr/min/lunr.th.min.js | 1 + .../javascripts/lunr/min/lunr.tr.min.js | 18 + .../javascripts/lunr/min/lunr.vi.min.js | 1 + .../javascripts/lunr/min/lunr.zh.min.js | 1 + 0.47/assets/javascripts/lunr/tinyseg.js | 206 + 0.47/assets/javascripts/lunr/wordcut.js | 6708 +++++++++++++++++ .../workers/search.2c215733.min.js | 42 + .../workers/search.2c215733.min.js.map | 7 + 0.47/assets/logo.svg | 176 + 0.47/assets/styles.css | 4 + 0.47/assets/stylesheets/main.484c7ddc.min.css | 1 + .../stylesheets/main.484c7ddc.min.css.map | 1 + .../stylesheets/palette.ab4e12ef.min.css | 1 + .../stylesheets/palette.ab4e12ef.min.css.map | 1 + 0.47/index.html | 1623 ++++ 0.47/search/search_index.json | 1 + 0.47/sitemap.xml | 3 + 0.47/sitemap.xml.gz | Bin 0 -> 127 bytes versions.json | 5 + 144 files changed, 68678 insertions(+) create mode 100644 0.47/404.html create mode 100644 0.47/Docs/Address/index.html create mode 100644 0.47/Docs/Carrier_Service/index.html create mode 100644 0.47/Docs/Database/index.html create mode 100644 0.47/Docs/Events/index.html create mode 100644 0.47/Docs/FormPS1583/index.html create mode 100644 0.47/Docs/Parcel/index.html create mode 100644 0.47/Docs/Receipt/index.html create mode 100644 0.47/Docs/ReceiptPrinter/index.html create mode 100644 0.47/Docs/TrackingBarcode/index.html create mode 100644 0.47/Examples/01Minimal/index.html create mode 100644 0.47/Examples/02Basic/index.html create mode 100644 0.47/Examples/03Shipping/index.html create mode 100644 0.47/Examples/04CardProcessor/index.html create mode 100644 0.47/Examples/05CryptoProcessor/index.html create mode 100644 0.47/Examples/basic-demo/plugin.js create mode 100644 0.47/Examples/basic-demo/uipluginpage.f7 create mode 100644 0.47/Examples/crypto-processor/plugin.js create mode 100644 0.47/Examples/payment-processor/plugin.js create mode 100644 0.47/Examples/shipping/plugin.js create mode 100644 0.47/Plugin API/barcode/index.html create mode 100644 0.47/Plugin API/database/index.html create mode 100644 0.47/Plugin API/fs/index.html create mode 100644 0.47/Plugin API/global functions/index.html create mode 100644 0.47/Plugin API/graphics/index.html create mode 100644 0.47/Plugin API/i18n/index.html create mode 100644 0.47/Plugin API/kiosk/index.html create mode 100644 0.47/Plugin API/mailboxes/index.html create mode 100644 0.47/Plugin API/pos/index.html create mode 100644 0.47/Plugin API/print/index.html create mode 100644 0.47/Plugin API/reports/index.html create mode 100644 0.47/Plugin API/settings/index.html create mode 100644 0.47/Plugin API/shipping/index.html create mode 100644 0.47/Plugin API/storage/index.html create mode 100644 0.47/Plugin API/ui/index.html create mode 100644 0.47/Plugin API/user/index.html create mode 100644 0.47/Plugin API/util/index.html create mode 100644 0.47/assets/external/fonts.googleapis.com/css.49ea35f2.css create mode 100644 0.47/assets/external/fonts.gstatic.com/s/roboto/v30/KFOjCnqEu92Fr1Mu51TjASc-CsTKlA.woff2 create mode 100644 0.47/assets/external/fonts.gstatic.com/s/roboto/v30/KFOjCnqEu92Fr1Mu51TjASc0CsTKlA.woff2 create mode 100644 0.47/assets/external/fonts.gstatic.com/s/roboto/v30/KFOjCnqEu92Fr1Mu51TjASc1CsTKlA.woff2 create mode 100644 0.47/assets/external/fonts.gstatic.com/s/roboto/v30/KFOjCnqEu92Fr1Mu51TjASc2CsTKlA.woff2 create mode 100644 0.47/assets/external/fonts.gstatic.com/s/roboto/v30/KFOjCnqEu92Fr1Mu51TjASc3CsTKlA.woff2 create mode 100644 0.47/assets/external/fonts.gstatic.com/s/roboto/v30/KFOjCnqEu92Fr1Mu51TjASc5CsTKlA.woff2 create mode 100644 0.47/assets/external/fonts.gstatic.com/s/roboto/v30/KFOjCnqEu92Fr1Mu51TjASc6CsQ.woff2 create mode 100644 0.47/assets/external/fonts.gstatic.com/s/roboto/v30/KFOjCnqEu92Fr1Mu51TzBic-CsTKlA.woff2 create mode 100644 0.47/assets/external/fonts.gstatic.com/s/roboto/v30/KFOjCnqEu92Fr1Mu51TzBic0CsTKlA.woff2 create mode 100644 0.47/assets/external/fonts.gstatic.com/s/roboto/v30/KFOjCnqEu92Fr1Mu51TzBic1CsTKlA.woff2 create mode 100644 0.47/assets/external/fonts.gstatic.com/s/roboto/v30/KFOjCnqEu92Fr1Mu51TzBic2CsTKlA.woff2 create mode 100644 0.47/assets/external/fonts.gstatic.com/s/roboto/v30/KFOjCnqEu92Fr1Mu51TzBic3CsTKlA.woff2 create mode 100644 0.47/assets/external/fonts.gstatic.com/s/roboto/v30/KFOjCnqEu92Fr1Mu51TzBic5CsTKlA.woff2 create mode 100644 0.47/assets/external/fonts.gstatic.com/s/roboto/v30/KFOjCnqEu92Fr1Mu51TzBic6CsQ.woff2 create mode 100644 0.47/assets/external/fonts.gstatic.com/s/roboto/v30/KFOkCnqEu92Fr1Mu51xEIzIFKw.woff2 create mode 100644 0.47/assets/external/fonts.gstatic.com/s/roboto/v30/KFOkCnqEu92Fr1Mu51xFIzIFKw.woff2 create mode 100644 0.47/assets/external/fonts.gstatic.com/s/roboto/v30/KFOkCnqEu92Fr1Mu51xGIzIFKw.woff2 create mode 100644 0.47/assets/external/fonts.gstatic.com/s/roboto/v30/KFOkCnqEu92Fr1Mu51xHIzIFKw.woff2 create mode 100644 0.47/assets/external/fonts.gstatic.com/s/roboto/v30/KFOkCnqEu92Fr1Mu51xIIzI.woff2 create mode 100644 0.47/assets/external/fonts.gstatic.com/s/roboto/v30/KFOkCnqEu92Fr1Mu51xLIzIFKw.woff2 create mode 100644 0.47/assets/external/fonts.gstatic.com/s/roboto/v30/KFOkCnqEu92Fr1Mu51xMIzIFKw.woff2 create mode 100644 0.47/assets/external/fonts.gstatic.com/s/roboto/v30/KFOlCnqEu92Fr1MmSU5fABc4EsA.woff2 create mode 100644 0.47/assets/external/fonts.gstatic.com/s/roboto/v30/KFOlCnqEu92Fr1MmSU5fBBc4.woff2 create mode 100644 0.47/assets/external/fonts.gstatic.com/s/roboto/v30/KFOlCnqEu92Fr1MmSU5fBxc4EsA.woff2 create mode 100644 0.47/assets/external/fonts.gstatic.com/s/roboto/v30/KFOlCnqEu92Fr1MmSU5fCBc4EsA.woff2 create mode 100644 0.47/assets/external/fonts.gstatic.com/s/roboto/v30/KFOlCnqEu92Fr1MmSU5fCRc4EsA.woff2 create mode 100644 0.47/assets/external/fonts.gstatic.com/s/roboto/v30/KFOlCnqEu92Fr1MmSU5fChc4EsA.woff2 create mode 100644 0.47/assets/external/fonts.gstatic.com/s/roboto/v30/KFOlCnqEu92Fr1MmSU5fCxc4EsA.woff2 create mode 100644 0.47/assets/external/fonts.gstatic.com/s/roboto/v30/KFOlCnqEu92Fr1MmWUlfABc4EsA.woff2 create mode 100644 0.47/assets/external/fonts.gstatic.com/s/roboto/v30/KFOlCnqEu92Fr1MmWUlfBBc4.woff2 create mode 100644 0.47/assets/external/fonts.gstatic.com/s/roboto/v30/KFOlCnqEu92Fr1MmWUlfBxc4EsA.woff2 create mode 100644 0.47/assets/external/fonts.gstatic.com/s/roboto/v30/KFOlCnqEu92Fr1MmWUlfCBc4EsA.woff2 create mode 100644 0.47/assets/external/fonts.gstatic.com/s/roboto/v30/KFOlCnqEu92Fr1MmWUlfCRc4EsA.woff2 create mode 100644 0.47/assets/external/fonts.gstatic.com/s/roboto/v30/KFOlCnqEu92Fr1MmWUlfChc4EsA.woff2 create mode 100644 0.47/assets/external/fonts.gstatic.com/s/roboto/v30/KFOlCnqEu92Fr1MmWUlfCxc4EsA.woff2 create mode 100644 0.47/assets/external/fonts.gstatic.com/s/roboto/v30/KFOmCnqEu92Fr1Mu4WxKOzY.woff2 create mode 100644 0.47/assets/external/fonts.gstatic.com/s/roboto/v30/KFOmCnqEu92Fr1Mu4mxK.woff2 create mode 100644 0.47/assets/external/fonts.gstatic.com/s/roboto/v30/KFOmCnqEu92Fr1Mu5mxKOzY.woff2 create mode 100644 0.47/assets/external/fonts.gstatic.com/s/roboto/v30/KFOmCnqEu92Fr1Mu72xKOzY.woff2 create mode 100644 0.47/assets/external/fonts.gstatic.com/s/roboto/v30/KFOmCnqEu92Fr1Mu7GxKOzY.woff2 create mode 100644 0.47/assets/external/fonts.gstatic.com/s/roboto/v30/KFOmCnqEu92Fr1Mu7WxKOzY.woff2 create mode 100644 0.47/assets/external/fonts.gstatic.com/s/roboto/v30/KFOmCnqEu92Fr1Mu7mxKOzY.woff2 create mode 100644 0.47/assets/external/fonts.gstatic.com/s/robotomono/v23/L0xTDF4xlVMF-BfR8bXMIhJHg45mwgGEFl0_3vrtSM1J-gEPT5Ese6hmHSV0mf0h.woff2 create mode 100644 0.47/assets/external/fonts.gstatic.com/s/robotomono/v23/L0xTDF4xlVMF-BfR8bXMIhJHg45mwgGEFl0_3vrtSM1J-gEPT5Ese6hmHSZ0mf0h.woff2 create mode 100644 0.47/assets/external/fonts.gstatic.com/s/robotomono/v23/L0xTDF4xlVMF-BfR8bXMIhJHg45mwgGEFl0_3vrtSM1J-gEPT5Ese6hmHSd0mf0h.woff2 create mode 100644 0.47/assets/external/fonts.gstatic.com/s/robotomono/v23/L0xTDF4xlVMF-BfR8bXMIhJHg45mwgGEFl0_3vrtSM1J-gEPT5Ese6hmHSh0mQ.woff2 create mode 100644 0.47/assets/external/fonts.gstatic.com/s/robotomono/v23/L0xTDF4xlVMF-BfR8bXMIhJHg45mwgGEFl0_3vrtSM1J-gEPT5Ese6hmHSt0mf0h.woff2 create mode 100644 0.47/assets/external/fonts.gstatic.com/s/robotomono/v23/L0xTDF4xlVMF-BfR8bXMIhJHg45mwgGEFl0_3vrtSM1J-gEPT5Ese6hmHSx0mf0h.woff2 create mode 100644 0.47/assets/external/fonts.gstatic.com/s/robotomono/v23/L0xdDF4xlVMF-BfR8bXMIjhOsXG-q2oeuFoqFrlnAIe2Imhk1T8rbociImtElOUlYIw.woff2 create mode 100644 0.47/assets/external/fonts.gstatic.com/s/robotomono/v23/L0xdDF4xlVMF-BfR8bXMIjhOsXG-q2oeuFoqFrlnAIe2Imhk1T8rbociImtEleUlYIw.woff2 create mode 100644 0.47/assets/external/fonts.gstatic.com/s/robotomono/v23/L0xdDF4xlVMF-BfR8bXMIjhOsXG-q2oeuFoqFrlnAIe2Imhk1T8rbociImtEluUlYIw.woff2 create mode 100644 0.47/assets/external/fonts.gstatic.com/s/robotomono/v23/L0xdDF4xlVMF-BfR8bXMIjhOsXG-q2oeuFoqFrlnAIe2Imhk1T8rbociImtEm-Ul.woff2 create mode 100644 0.47/assets/external/fonts.gstatic.com/s/robotomono/v23/L0xdDF4xlVMF-BfR8bXMIjhOsXG-q2oeuFoqFrlnAIe2Imhk1T8rbociImtEmOUlYIw.woff2 create mode 100644 0.47/assets/external/fonts.gstatic.com/s/robotomono/v23/L0xdDF4xlVMF-BfR8bXMIjhOsXG-q2oeuFoqFrlnAIe2Imhk1T8rbociImtEn-UlYIw.woff2 create mode 100644 0.47/assets/external/postalpoint.app/images/favicon-voxel.png create mode 100644 0.47/assets/external/unpkg.com/mermaid@11/dist/mermaid.min.js create mode 100644 0.47/assets/images/favicon.png create mode 100644 0.47/assets/javascripts/bundle.79ae519e.min.js create mode 100644 0.47/assets/javascripts/bundle.79ae519e.min.js.map create mode 100644 0.47/assets/javascripts/lunr/min/lunr.ar.min.js create mode 100644 0.47/assets/javascripts/lunr/min/lunr.da.min.js create mode 100644 0.47/assets/javascripts/lunr/min/lunr.de.min.js create mode 100644 0.47/assets/javascripts/lunr/min/lunr.du.min.js create mode 100644 0.47/assets/javascripts/lunr/min/lunr.el.min.js create mode 100644 0.47/assets/javascripts/lunr/min/lunr.es.min.js create mode 100644 0.47/assets/javascripts/lunr/min/lunr.fi.min.js create mode 100644 0.47/assets/javascripts/lunr/min/lunr.fr.min.js create mode 100644 0.47/assets/javascripts/lunr/min/lunr.he.min.js create mode 100644 0.47/assets/javascripts/lunr/min/lunr.hi.min.js create mode 100644 0.47/assets/javascripts/lunr/min/lunr.hu.min.js create mode 100644 0.47/assets/javascripts/lunr/min/lunr.hy.min.js create mode 100644 0.47/assets/javascripts/lunr/min/lunr.it.min.js create mode 100644 0.47/assets/javascripts/lunr/min/lunr.ja.min.js create mode 100644 0.47/assets/javascripts/lunr/min/lunr.jp.min.js create mode 100644 0.47/assets/javascripts/lunr/min/lunr.kn.min.js create mode 100644 0.47/assets/javascripts/lunr/min/lunr.ko.min.js create mode 100644 0.47/assets/javascripts/lunr/min/lunr.multi.min.js create mode 100644 0.47/assets/javascripts/lunr/min/lunr.nl.min.js create mode 100644 0.47/assets/javascripts/lunr/min/lunr.no.min.js create mode 100644 0.47/assets/javascripts/lunr/min/lunr.pt.min.js create mode 100644 0.47/assets/javascripts/lunr/min/lunr.ro.min.js create mode 100644 0.47/assets/javascripts/lunr/min/lunr.ru.min.js create mode 100644 0.47/assets/javascripts/lunr/min/lunr.sa.min.js create mode 100644 0.47/assets/javascripts/lunr/min/lunr.stemmer.support.min.js create mode 100644 0.47/assets/javascripts/lunr/min/lunr.sv.min.js create mode 100644 0.47/assets/javascripts/lunr/min/lunr.ta.min.js create mode 100644 0.47/assets/javascripts/lunr/min/lunr.te.min.js create mode 100644 0.47/assets/javascripts/lunr/min/lunr.th.min.js create mode 100644 0.47/assets/javascripts/lunr/min/lunr.tr.min.js create mode 100644 0.47/assets/javascripts/lunr/min/lunr.vi.min.js create mode 100644 0.47/assets/javascripts/lunr/min/lunr.zh.min.js create mode 100644 0.47/assets/javascripts/lunr/tinyseg.js create mode 100644 0.47/assets/javascripts/lunr/wordcut.js create mode 100644 0.47/assets/javascripts/workers/search.2c215733.min.js create mode 100644 0.47/assets/javascripts/workers/search.2c215733.min.js.map create mode 100644 0.47/assets/logo.svg create mode 100644 0.47/assets/styles.css create mode 100644 0.47/assets/stylesheets/main.484c7ddc.min.css create mode 100644 0.47/assets/stylesheets/main.484c7ddc.min.css.map create mode 100644 0.47/assets/stylesheets/palette.ab4e12ef.min.css create mode 100644 0.47/assets/stylesheets/palette.ab4e12ef.min.css.map create mode 100644 0.47/index.html create mode 100644 0.47/search/search_index.json create mode 100644 0.47/sitemap.xml create mode 100644 0.47/sitemap.xml.gz diff --git a/0.47/404.html b/0.47/404.html new file mode 100644 index 0000000..3d2c6b4 --- /dev/null +++ b/0.47/404.html @@ -0,0 +1,1349 @@ + + + + + + + + + + + + + + + + + + + + + + PostalPoint Plugin Development + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+ +
+ + + + + + + + +
+ + +
+ +
+ + + + + + +
+
+ + + +
+
+
+ + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+ +
+ +

404 - Not found

+ +
+
+ + + +
+ +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/0.47/Docs/Address/index.html b/0.47/Docs/Address/index.html new file mode 100644 index 0000000..e8de42f --- /dev/null +++ b/0.47/Docs/Address/index.html @@ -0,0 +1,1463 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + Address object - PostalPoint Plugin Development + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + Skip to content + + +
+
+ +
+ + + + + + + + +
+ + +
+ +
+ + + + + + +
+
+ + + +
+
+
+ + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+ +
+ + + + + +

Address object

+
export default class Address {
+    constructor(uuid = "", name = "", company = "", street1 = "", street2 = "", zip = "", city = "", state = "", country = "", phone = "", email = "", taxid = "") {
+        this.uuid = uuid;
+        this.name = name;
+        this.company = company;
+        this.street1 = street1;
+        this.street2 = street2;
+        this.zip = zip;
+        this.city = city;
+        this.state = state;
+        this.country = country;
+        this.phone = phone;
+        this.email = email;
+        this.taxid = taxid;
+        this.residential = null;
+    }
+
+    static fromObject(address) {
+        if (address instanceof Address) {
+            return address;
+        }
+        var a = new Address(address.uuid ?? "", address.name, address.company, address.street1,
+                address.street2, address.zip, address.city, address.state, address.country,
+                address.phone, address.email, address.taxid);
+        return a;
+    }
+
+    toStringArray(expandCountry = false) {
+        var citystatezipLine = [this.city, this.state, this.zip].filter(Boolean);
+        var country = this.country == defaultCountryCode() ? "" : this.country;
+        if (expandCountry && country != "") {
+            country = getCountryNameForISO(country);
+        }
+        return [this.name, this.company, this.street1, this.street2, `${citystatezipLine.join(" ")}`, country, (this.taxid ? "Tax ID " + this.taxid : "")].filter(Boolean);
+    }
+
+    /**
+     * Test if the address provided is the same as this address.
+     */
+    equals(address, checkUUID = false) {
+        if (
+                (checkUUID ? this.uuid == address.uuid : true)
+                && this.name == address.name
+                && this.company == address.company
+                && this.street1 == address.street1
+                && this.street2 == address.street2
+                && this.city == address.city
+                && this.state == address.state
+                && this.zip == address.zip
+                && this.country == address.country
+                && this.taxid == address.taxid) {
+            return true;
+        }
+        return false;
+    }
+
+    /**
+     * Test if an address is the same delivery point as this address.
+     */
+    dpEquals(address) {
+        if (
+                this.street1 == address.street1
+                && this.street2 == address.street2
+                && this.city == address.city
+                && this.state == address.state
+                && this.zip == address.zip
+                && this.country == address.country) {
+            return true;
+        }
+        return false;
+    }
+}
+
+ + + + + + + + + + + + + + + +
+
+ + + +
+ +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/0.47/Docs/Carrier_Service/index.html b/0.47/Docs/Carrier_Service/index.html new file mode 100644 index 0000000..3c28663 --- /dev/null +++ b/0.47/Docs/Carrier_Service/index.html @@ -0,0 +1,2041 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + getCarrierName and getServiceName - PostalPoint Plugin Development + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + Skip to content + + +
+
+ +
+ + + + + + + + +
+ + +
+ +
+ + + + + + +
+
+ + + +
+
+
+ + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+ +
+ + + + + +

getCarrierName and getServiceName

+

This is the source code for global.apis.shipping.getCarrierName and global.apis.shipping.getServiceName.

+

getCarrierName

+
export function getCarrierName(carrier) {
+    switch (carrier) {
+        case "USPS":
+        case "USPSReturns":
+        case "usps":
+            return "USPS";
+        case "UPS":
+        case "UPSDAP":
+        case "ups":
+            return "UPS";
+        case "FedExDefault":
+        case "FedExSmartPost":
+        case "fedex":
+            return "FedEx";
+        case "DHLExpress":
+        case "dhl_express":
+            return "DHL Express";
+        case "DhlEcs":
+            return "DHL eCommerce";
+        case "SpeedeeAccount":
+            return "Spee-Dee";
+        case "globalpost":
+            return "GlobalPost";
+        case "AccurateAccount":
+            return "Accurate Courier Express";
+        case "ApcAccount":
+            return "APC";
+        case "AsendiaUsaAccount":
+            return "Asendia";
+        case "BetterTrucksAccount":
+            return "Better Trucks";
+        case "BluestreakAccount":
+            return "Blue Streak";
+        case "CanadaPostAccount":
+        case "CanadaPost":
+            return "Canada Post";
+        case "GsoAccount":
+            return "GLS";
+        case "LsoAccount":
+            return "LSO";
+        case "OntracV3Account":
+            return "OnTrac";
+        case "USAExportPBA":
+            return "Asendia";
+        case "FirstChoiceAccount":
+            return "1st Choice Delivery";
+        case "PurolatorAccount":
+            return "Purolator";
+        case "CanparAccount":
+            return "Canpar";
+        case "MaerskAccount":
+            return "Maersk";
+    }
+    if (carrier.endsWith("Account")) {
+        // A lot of EasyPost carriers are the carrier name and the word Account
+        return carrier.replace("Account", "");
+    }
+    return carrier;
+}
+
+

getServiceName

+
export function getServiceName(serviceId, carrierId = "USPS") {
+    var carrier = getCarrierName(carrierId);
+    switch (serviceId) {
+        // Ambiguous
+        case "":
+            // Used internally if no service ID defined by a plugin or whatever
+            return "";
+        case "Ground":
+            return "Ground";
+        case "Express":
+            if (carrier == "UPS") {
+                return "Worldwide Express";
+            } else if (carrier == "USPS") {
+                return "Priority Mail Express";
+            } else {
+                return "Express";
+            }
+        case "Priority":
+            if (carrier == "USPS") {
+                return "Priority Mail";
+            }
+            return "Priority";
+
+
+            // USPS
+        case "First":
+        case "usps_first_class_mail":
+        case "First-Class Mail":
+            return "First-Class Mail";
+        case "FirstClassMailInternational":
+        case "usps_first_class_mail_international":
+        case "First-Class Mail International":
+            return "First-Class Mail International";
+        case "GroundAdvantage":
+        case "usps_ground_advantage":
+        case "Ground Advantage":
+            return "Ground Advantage";
+        case "MediaMail":
+        case "usps_media_mail":
+        case "Media Mail":
+            return "Media Mail";
+        case "LibraryMail":
+        case "usps_library_mail":
+        case "Library Mail":
+            return "Library Mail";
+        case "usps_priority_mail":
+        case "Priority Mail":
+            return "Priority Mail";
+        case "PriorityMailInternational":
+        case "usps_priority_mail_international":
+        case "Priority Mail International":
+            return "Priority Mail International";
+        case "usps_priority_mail_express":
+        case "Priority Mail Express":
+            return "Priority Mail Express";
+        case "ExpressMailInternational":
+        case "usps_priority_mail_express_international":
+        case "Priority Mail Express International":
+            return "Priority Mail Express International";
+        case "FirstClassPackageInternationalService":
+        case "First-Class Pkg International":
+            return "First-Class Pkg International";
+
+
+            // UPS
+        case "UPSWorldwideExpress":
+        case "ups_worldwide_express":
+            return "Worldwide Express";
+        case "ExpressPlus":
+        case "UPSExpressPlus":
+        case "ups_worldwide_express_plus":
+            return "Worldwide Express Plus";
+        case "Expedited":
+        case "UPSWorldwideExpedited":
+        case "ups_worldwide_expedited":
+            return "Worldwide Expedited";
+        case "UPSWorldwideEconomyDDU":
+            return "Worldwide Economy DDU";
+        case "NextDayAir":
+        case "ups_next_day_air":
+            return "Next Day Air";
+        case "NextDayAirSaver":
+        case "ups_next_day_air_saver":
+            return "Next Day Air Saver";
+        case "NextDayAirEarlyAM":
+        case "ups_next_day_air_early":
+            return "Next Day Air A.M.";
+        case "2ndDayAir":
+        case "ups_2nd_day_air":
+            return "2nd Day Air";
+        case "2ndDayAirAM":
+        case "ups_2nd_day_air_am":
+            return "2nd Day Air A.M.";
+        case "3DaySelect":
+        case "ups_3_day_select":
+            return "3-Day Select";
+        case "ups_ground":
+            return "Ground";
+        case "UPSGroundsaverGreaterThan1lb":
+            return "Ground Saver";
+        case "UPSStandard":
+        case "ups_standard":
+            return "Standard";
+        case "UPSSaver":
+        case "ups_worldwide_saver":
+            return "Worldwide Saver";
+
+
+            // FedEx
+        case "FEDEX_GROUND":
+        case "fedex_ground":
+            return "Ground";
+        case "FEDEX_2_DAY":
+        case "fedex_2day":
+            return "2 Day";
+        case "FEDEX_2_DAY_AM":
+        case "fedex_2day_am":
+            return "2 Day AM";
+        case "FEDEX_EXPRESS_SAVER":
+        case "fedex_express_saver":
+            return "Express Saver";
+        case "STANDARD_OVERNIGHT":
+        case "fedex_standard_overnight":
+            return "Standard Overnight";
+        case "FIRST_OVERNIGHT":
+        case "fedex_first_overnight":
+            return "First Overnight";
+        case "PRIORITY_OVERNIGHT":
+        case "fedex_priority_overnight":
+            return "Priority Overnight";
+        case "INTERNATIONAL_ECONOMY":
+        case "fedex_international_economy":
+            return "International Economy";
+        case "INTERNATIONAL_FIRST":
+        case "fedex_international_first":
+            return "International First";
+        case "FEDEX_INTERNATIONAL_PRIORITY":
+        case "INTERNATIONAL_PRIORITY":
+        case "fedex_international_priority":
+            return "International Priority";
+        case "FEDEX_INTERNATIONAL_PRIORITY_EXPRESS":
+        case "INTERNATIONAL_PRIORITY_EXPRESS":
+            return "International Priority Express";
+        case "FEDEX_INTERNATIONAL_CONNECT_PLUS":
+        case "INTERNATIONAL_CONNECT_PLUS":
+            return "International Connect Plus";
+        case "GROUND_HOME_DELIVERY":
+        case "fedex_home_delivery":
+            return "Ground Home Delivery";
+        case "SMART_POST":
+            return "Ground Economy";
+        case "FEDEX_FIRST_FREIGHT":
+            return "First Overnight Freight";
+        case "FEDEX_1_DAY_FREIGHT":
+            return "1-Day Freight";
+        case "FEDEX_2_DAY_FREIGHT":
+            return "2-Day Freight";
+        case "FEDEX_3_DAY_FREIGHT":
+            return "3-Day Freight";
+        case "INTERNATIONAL_PRIORITY_FREIGHT":
+            return "International Priority Freight";
+        case "INTERNATIONAL_ECONOMY_FREIGHT":
+            return "International Economy Freight";
+
+
+            // USPS Returns
+        case "GroundAdvantageReturn":
+            return "Ground Advantage Return";
+        case "PriorityMailReturn":
+            return "Priority Mail Return";
+        case "PriorityMailExpressReturn":
+            return "Priority Mail Express Return";
+
+
+            // DHL Express
+        case "DomesticEconomySelect":
+            return "Domestic Economy Select";
+        case "DomesticExpress":
+            return "Domestic Express";
+        case "DomesticExpress1030":
+            return "Domestic Express 10:30";
+        case "DomesticExpress1200":
+            return "Domestic Express 12:00";
+        case "EconomySelect":
+            return "Economy Select Document";
+        case "EconomySelectNonDoc":
+            return "Economy Select Non-Document";
+        case "EuroPack":
+            return "EuroPack Document";
+        case "EuropackNonDoc":
+            return "EuroPack Non-Document";
+        case "Express1030":
+            return "10:30 Document";
+        case "Express1030NonDoc":
+            return "10:30 Non-Document";
+        case "Express1200NonDoc":
+            return "12:00 Non-Document";
+        case "Express1200":
+            return "12:00 Document";
+        case "Express900":
+            return "9:00 Document";
+        case "Express900NonDoc":
+            return "9:00 Non-Doc";
+        case "ExpressEasy":
+            return "Easy Document";
+        case "ExpressEasyNonDoc":
+            return "Easy Non-Document";
+        case "ExpressEnvelope":
+            return "Envelope";
+        case "ExpressWorldwide":
+        case "dhl_express_worldwide":
+            return "Worldwide Document";
+        case "ExpressWorldwideB2C":
+            return "Worldwide B2C";
+        case "ExpressWorldwideB2CNonDoc":
+            return "Worldwide B2C Non-Document";
+        case "ExpressWorldwideECX":
+            return "Worldwide ECX";
+        case "ExpressWorldwideNonDoc":
+            return "Worldwide Non-Document";
+
+
+            // DHL eCommerce
+        case "DHLParcelExpedited":
+            return "Parcel Expedited";
+        case "DHLParcelExpeditedMax":
+            return "Parcel Expedited Max";
+        case "DHLParcelGround":
+            return "Parcel Ground";
+        case "DHLBPMExpedited":
+            return "PM Expedited";
+        case "DHLBPMGround":
+            return "PM Ground";
+        case "DHLParcelInternationalDirect":
+            return "Parcel International Direct";
+        case "DHLParcelInternationalStandard":
+            return "Parcel International Standard";
+        case "DHLParcelInternationalDirectSMB":
+            return "Parcel International Direct";
+        case "DHLParcelInternationalStandardSMB":
+            return "Parcel International Standard";
+        case "DHLPacketInternational":
+            return "Packet International";
+        case "DHLParcelInternationalDirectPriority":
+            return "Parcel International Direct Priority";
+        case "DHLParcelInternationalDirectStandard":
+            return "Parcel International Direct Standard";
+
+            // Asendia USA Export
+        case "USAExportStandard":
+            return "USA Export Standard";
+        case "USAExportPlus":
+            return "USA Export Plus";
+        case "USAExportSelect":
+            return "USA Export Select";
+
+            // Spee-Dee
+        case "SpeeDeeDelivery":
+            return "Delivery";
+
+            // GlobalPost
+        case "globalpost_standard_international":
+            return "Standard International";
+        case "globalpost_economy_international":
+            return "Economy International";
+        case "globalpost_plus":
+            return "Plus";
+        case "globalpost_first_class_international":
+            return "First-Class International";
+
+            // Canada Post
+        case "RegularParcel":
+            return "Regular Parcel";
+        case "ExpeditedParcel":
+            return "Expedited Parcel";
+        case "Xpresspost":
+            return "Xpresspost";
+        case "ExpeditedParcelUSA":
+            return "Expedited Parcel USA";
+        case "SmallPacketUSAAir":
+            return "Small Packet USA Air";
+        case "TrackedPacketUSA":
+            return "Tracked Packet USA";
+        case "TrackedPacketUSALVM":
+            return "Tracked Packet USA LVM";
+        case "XpresspostUSA":
+            return "Xpresspost USA";
+        case "XpresspostInternational":
+            return "Xpresspost Int'l";
+        case "InternationalParcelAir":
+            return "Int'l Parcel Air";
+        case "InternationalParcelSurface":
+            return "Int'l Parcel Surface";
+        case "SmallPacketInternationalAir":
+            return "Small Packet Int'l Air";
+        case "SmallPacketInternationalSurface":
+            return "Small Packet Int'l Surface";
+        case "TrackedPacketInternational":
+            return "Tracked Packet Int'l";
+        case "ExpeditedParcelPlus":
+            return "Expedited Parcel Plus";
+
+
+            // GLS US
+        case "EarlyPriorityOvernight":
+            return "Early Priority Overnight";
+        case "PriorityOvernight":
+            return "Priority Overnight";
+        case "CaliforniaParcelService":
+            return "California Parcel";
+        case "SaturdayDeliveryService":
+            return "Saturday Delivery";
+        case "EarlySaturdayService":
+            return "Early Saturday";
+        case "NoonPriorityService":
+            return "Noon Priority";
+
+            // OnTrac
+        case "GRND":
+            return "Ground";
+
+            // LSO
+        case "PriorityEarly":
+            return "Priority Early";
+        case "PriorityBasic":
+            return "Priority Basic";
+        case "Priority2ndDay":
+            return "Priority 2nd Day";
+        case "GroundEarly":
+            return "Ground Early";
+        case "GroundBasic":
+            return "Ground Basic";
+        case "ECommerce":
+            return "ECommerce";
+
+            // Canpar
+        case "USA":
+            return "USA";
+        case "SelectLetter":
+            return "Select Letter";
+        case "SelectPak":
+            return "Select Pak";
+        case "Select":
+            return "Select";
+        case "OvernightLetter":
+            return "Overnight Letter";
+        case "Overnight":
+            return "Overnight";
+        case "USALetter":
+            return "USA Letter";
+        case "USAPak":
+            return "USA Pak";
+        case "SelectUSA":
+            return "Select USA";
+        case "International":
+            return "International";
+
+            // Purolator
+        case "PurolatorExpress":
+            return "Express";
+        case "PurolatorExpress12PM":
+            return "Express 12PM";
+        case "PurolatorExpressPack12PM":
+            return "Express Pack 12PM";
+        case "PurolatorExpressBox12PM":
+            return "Express Box 12PM";
+        case "PurolatorExpressEnvelope12PM":
+            return "Express Envelope 12PM";
+        case "PurolatorExpress1030AM":
+            return "Express 10:30AM";
+        case "PurolatorExpress9AM":
+            return "Express 9AM";
+        case "PurolatorExpressBox":
+            return "Express Box";
+        case "PurolatorExpressBox1030AM":
+            return "Express Box 10:30AM";
+        case "PurolatorExpressBox9AM":
+            return "Express Box 9AM";
+        case "PurolatorExpressBoxEvening":
+            return "Express Box Evening";
+        case "PurolatorExpressBoxInternational":
+            return "Express Box International";
+        case "PurolatorExpressBoxUS":
+            return "Express Box US";
+        case "PurolatorExpressEnvelope":
+            return "Express Envelope";
+        case "PurolatorExpressEnvelope1030AM":
+            return "Express Envelope 10:30AM";
+        case "PurolatorExpressEnvelope9AM":
+            return "Express Envelope 9AM";
+        case "PurolatorExpressEnvelopeEvening":
+            return "Express Envelope Evening";
+        case "PurolatorExpressEnvelopeInternational":
+            return "Express Envelope International";
+        case "PurolatorExpressEnvelopeUS":
+            return "Express Envelope US";
+        case "PurolatorExpressEvening":
+            return "Express Evening";
+        case "PurolatorExpressInternational":
+            return "Express International";
+        case "PurolatorExpressInternational1030AM":
+            return "Express International 10:30AM";
+        case "PurolatorExpressInternational1200":
+            return "Express International 12:00";
+        case "PurolatorExpressInternational9AM":
+            return "Express International 9AM";
+        case "PurolatorExpressBoxInternational1030AM":
+            return "Express Box International 10:30AM";
+        case "PurolatorExpressBoxInternational1200":
+            return "Express Box International 12:00";
+        case "PurolatorExpressBoxInternational9AM":
+            return "Express Box International 9AM";
+        case "PurolatorExpressEnvelopeInternational1030AM":
+            return "Express Envelope International 10:30AM";
+        case "PurolatorExpressEnvelopeInternational1200":
+            return "Express Envelope International 12:00";
+        case "PurolatorExpressEnvelopeInternational9AM":
+            return "Express Envelope International 9AM";
+        case "PurolatorExpressPackInternational1030AM":
+            return "Express Pack International 10:30AM";
+        case "PurolatorExpressPackInternational1200":
+            return "Express Pack International 12:00";
+        case "PurolatorExpressPackInternational9AM":
+            return "Express Pack International 9AM";
+        case "PurolatorExpressPack":
+            return "Express Pack";
+        case "PurolatorExpressPack1030AM":
+            return "Express Pack 10:30AM";
+        case "PurolatorExpressPack9AM":
+            return "Express Pack 9AM";
+        case "PurolatorExpressPackEvening":
+            return "Express Pack Evening";
+        case "PurolatorExpressPackInternational":
+            return "Express Pack International";
+        case "PurolatorExpressPackUS":
+            return "Express Pack US";
+        case "PurolatorExpressUS":
+            return "Express US";
+        case "PurolatorExpressUS1030AM":
+            return "Express US 10:30AM";
+        case "PurolatorExpressUS1200":
+            return "Express US 12:00";
+        case "PurolatorExpressUS9AM":
+            return "Express US 9AM";
+        case "PurolatorExpressBoxUS1030AM":
+            return "Express Box US 10:30AM";
+        case "PurolatorExpressBoxUS1200":
+            return "Express Box US 12:00";
+        case "PurolatorExpressBoxUS9AM":
+            return "Express Box US 9AM";
+        case "PurolatorExpressEnvelopeUS1030AM":
+            return "Express Envelope US 10:30AM";
+        case "PurolatorExpressEnvelopeUS1200":
+            return "Express Envelope US 12:00";
+        case "PurolatorExpressEnvelopeUS9AM":
+            return "Express Envelope US 9AM";
+        case "PurolatorExpressPackUS1030AM":
+            return "Express Pack US 10:30AM";
+        case "PurolatorExpressPackUS1200":
+            return "Express Pack US 12:00";
+        case "PurolatorExpressPackUS9AM":
+            return "Express Pack US 9AM";
+        case "PurolatorGround":
+            return "Ground";
+        case "PurolatorGround1030AM":
+            return "Ground 10:30AM";
+        case "PurolatorGround9AM":
+            return "Ground 9AM";
+        case "PurolatorGround12PM":
+            return "Ground 12PM";
+        case "PurolatorGroundDistribution":
+            return "Ground Distribution";
+        case "PurolatorGroundEvening":
+            return "Ground Evening";
+        case "PurolatorGroundUS":
+            return "Ground US";
+        case "PurolatorQuickShip":
+            return "QuickShip";
+        case "PurolatorQuickShipEnvelope":
+            return "QuickShip Envelope";
+        case "PurolatorQuickShipPack":
+            return "QuickShip Pack";
+        case "PurolatorQuickShipBox":
+            return "QuickShip Box";
+
+
+            // Maersk Parcel
+        case "Maersk-3-Day":
+            return "3 Day";
+
+    }
+
+    console.warn("Unknown shipping service ID: ", serviceId, "Carrier ID:", carrierId);
+
+    // Snipped: code that attempts to format the service ID nicely based on common naming patterns found in the wild.
+
+    return serviceName;
+}
+
+ + + + + + + + + + + + + + + +
+
+ + + +
+ +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/0.47/Docs/Database/index.html b/0.47/Docs/Database/index.html new file mode 100644 index 0000000..fac33e9 --- /dev/null +++ b/0.47/Docs/Database/index.html @@ -0,0 +1,1691 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + Database Drivers - PostalPoint Plugin Development + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + Skip to content + + +
+
+ +
+ + + + + + + + +
+ + +
+ +
+ + + + + + +
+
+ + + +
+
+
+ + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+ +
+ + + + + +

Database Drivers

+

global.apis.database.getConnection() returns one of these, depending on which database is in use.

+

SQLite

+
export class SQLiteAdapter {
+    constructor(db) {
+        this.type = "sqlite";
+        this.db = db;
+    }
+
+    async query(query, replace) {
+        if (global.devMode) {
+            console.info(query, replace);
+        }
+        return await this.db.all(query, replace);
+    }
+
+    async run(statement, replace) {
+        if (global.devMode) {
+            console.info(statement, replace);
+        }
+        return await this.db.run(statement, replace);
+    }
+
+    async exec(statement) {
+        if (global.devMode) {
+            console.info(statement);
+        }
+        return await this.db.exec(statement);
+    }
+
+    async exists(table, where, replace) {
+        const q = await this.db.all("SELECT EXISTS(SELECT 1 FROM " + table + " WHERE " + where + ") as n", replace);
+        if (q[0].n > 0) {
+            return true;
+        }
+        return false;
+    }
+
+    async close() {
+
+    }
+
+    async tableExists(table) {
+        return (await this.db.get(`SELECT count(name) AS cnt FROM sqlite_master WHERE type='table' AND name=?`, table)).cnt > 0;
+    }
+
+    /**
+     * Get the version code set in the database by setSchemaVersion().
+     */
+    async getSchemaVersion() {
+        var res = await this.db.all(`PRAGMA user_version`);
+        return res[0].user_version;
+    }
+
+    /**
+     * Set the database version, using PRAGMA user_version.  Must be an integer.
+     */
+    async setSchemaVersion(version) {
+        await this.db.exec(`PRAGMA user_version = ${version}`);
+    }
+
+}
+
+

Remote host/master

+
export class RemoteDatabaseAdapter {
+    constructor() {
+        this.type = "remote";
+    }
+
+    async apirequest(args) {
+        var resp = await sendToPostalPointHTTPServer(args, "database");
+        if (typeof resp.status == "string" && resp.status == "OK") {
+            return resp.result;
+        } else if (typeof resp.status == "string" && resp.status == "ERR") {
+            if (typeof resp.message == "string") {
+                throw new Error(resp.message);
+            } else {
+                throw new Error(resp);
+            }
+        } else {
+            throw new Error(resp);
+        }
+    }
+
+    async query(query, replace = []) {
+        return await this.apirequest({type: "query", query: query, replace: replace});
+    }
+
+    async run(statement, replace = []) {
+        return await this.apirequest({type: "run", query: statement, replace: replace});
+    }
+
+    async exec(statement) {
+        return await this.apirequest({type: "exec", query: statement});
+    }
+
+    async exists(table, where, replace = []) {
+        return await this.apirequest({type: "exists", table: table, where: where, replace: replace});
+    }
+
+    async close() {
+        // NOOP: We don't care about this
+    }
+
+    async tableExists(table) {
+        return await this.apirequest({type: "tableExists", table: table});
+    }
+
+    async getSchemaVersion() {
+        return await this.apirequest({type: "getSchemaVersion"});
+    }
+
+    async setSchemaVersion(version) {
+        // NOOP: Don't upgrade server's installation, it can do that itself
+    }
+}
+
+

MariaDB/MySQL

+
export class MariaDBAdapter {
+    constructor(connection) {
+        this.type = "mariadb";
+        this.conn = connection;
+    }
+
+    async query(query, replace) {
+        if (global.devMode) {
+            console.info(query, replace);
+        }
+        return await this.conn.query(query, replace);
+    }
+
+    async run(statement, replace) {
+        if (global.devMode) {
+            console.info(statement, replace);
+        }
+        return await this.query(statement, replace);
+    }
+
+    async exec(statement) {
+        if (global.devMode) {
+            console.info(statement);
+        }
+        return await this.run(statement);
+    }
+
+    async exists(table, where, replace) {
+        const q = await this.query("SELECT EXISTS(SELECT 1 FROM " + table + " WHERE " + where + ") as n", replace);
+        if (q[0].n > 0) {
+            return true;
+        }
+        return false;
+    }
+
+    async close() {
+        await this.conn.release();
+    }
+
+    async tableExists(table) {
+        return (await this.query("SHOW TABLES LIKE ?", table)).length > 0;
+    }
+
+    /**
+     * Get the version code set in the database by setSchemaVersion().  Returns zero if not set.
+     */
+    async getSchemaVersion() {
+        if (await this.tableExists("database_metadata")) {
+            var res = await this.query("SELECT `value` FROM database_metadata WHERE `key`='schema_version' LIMIT 1");
+            console.log(res);
+            console.log(res[0].value);
+            if (res.length == 1) {
+                return res[0].value;
+            }
+        }
+        return 0;
+    }
+
+    /**
+     * Set a version number for the database schema.
+     * Must be an integer to maintain code compatibility with SQLite driver.
+     * Will create a "database_metadata" table if required to store the version number.
+     */
+    async setSchemaVersion(version) {
+        if (await this.tableExists("database_metadata")) {
+            await this.query("REPLACE INTO `database_metadata` (`key`, `value`) VALUES (?, ?)", ["schema_version", version]);
+        } else {
+            await this.exec("CREATE TABLE IF NOT EXISTS `database_metadata` ( `key` VARCHAR(50) NOT NULL, `value` VARCHAR(255) NOT NULL DEFAULT '', PRIMARY KEY (`key`))");
+            await this.setSchemaVersion(version);
+        }
+    }
+}
+
+ + + + + + + + + + + + + + + +
+
+ + + +
+ +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/0.47/Docs/Events/index.html b/0.47/Docs/Events/index.html new file mode 100644 index 0000000..2cfd7fd --- /dev/null +++ b/0.47/Docs/Events/index.html @@ -0,0 +1,1626 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + Event Bus - PostalPoint Plugin Development + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + Skip to content + + +
+
+ +
+ + + + + + + + +
+ + +
+ +
+ + + + + + +
+
+ + + +
+
+
+ + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+ +
+ + + + + +

Event Bus

+

Plugins can use global.apis.eventbus to receive events when certain actions happen in PostalPoint.

+

Event List

+
    +
  • barcodeScanned: Contents of a barcode that was just scanned, as a string. String also contains any non-printing characters in the barcode.
  • +
  • browserCloseRequest: The embedded web browser listens for this event, and closes itself when received.
  • +
  • browserNavigate: Contains the URL the embedded web browser just navigated to.
  • +
  • sendToCustomerScreen: Emit to send data via window.postMessage to a custom HTML interface on the customer-facing display.
  • +
  • receiveFromCustomerScreen: Contains the event sent from the customer-facing display's custom HTML interface via window.parent.postMessage
  • +
  • transactionFinished: Contains a receipt object of a transaction that was just finalized. See below for event data details.
  • +
  • customerSignatureCollected: Contains a signature image from the customer-facing display. See below for event data details.
  • +
  • settingsSaved: Emitted when PostalPoint's settings are saved. Usually this means the user changed a setting in the UI.
  • +
  • pluginSettingsSaved: Emitted when the user saves a plugin's settings. The plugin ID string is sent as the event data.
  • +
  • packageCheckIn: Emitted when a package is checked in to a mailbox or for Hold At Location. See below for event data details.
  • +
  • mailboxMailDelivered: Emitted when mail delivery notifications are sent by the user. Data is an array of the mailbox numbers notifications are being sent for.
  • +
+

Example Code

+
// Handle a barcode scan.
+// Remember that PostalPoint will probably also be doing something in response to the barcode.
+global.apis.eventbus.on("barcodeScanned", function (barcodedata) {
+    // do something with the barcode
+});
+
+// Close the embedded web browser, returning the user to whatever was onscreen before it opened
+global.apis.eventbus.emit("browserCloseRequest");
+
+

Event Data Objects

+

For events that return an object instead of a single value.

+

transactionFinished

+

See Receipt

+

customerSignatureCollected

+
{
+    "svg": "data:image/svg+xml;base64,...",
+    "png": "data:image/png;base64,..."
+}
+
+

packageCheckIn

+
{
+    tag: "abcxyz123456", // Unique ID for the package, also found in the shelf label barcode.
+    tracking: "94001...", // Package tracking number. May be an empty string for items without tracking.
+    carrier: "FedEx", // Package carrier name, if detectable from the tracking number.  Otherwise an empty string.
+    mailbox: "123", // Mailbox number. Will be "HAL" for Hold At Location packages.
+    isHAL: false, // True if package is for Hold At Location.
+    recipient: "", // Hold At Location recipient name, or empty string if not HAL.
+    toLocker: "5", // Parcel locker number, or false if not going to a parcel locker.
+    shelfLabelPrinted: true // Indicates if a shelf label was printed for this package.  Will be false if going to a locker, if the user requested no label, or if the label failed to print.
+}
+
+ + + + + + + + + + + + + + + +
+
+ + + +
+ +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/0.47/Docs/FormPS1583/index.html b/0.47/Docs/FormPS1583/index.html new file mode 100644 index 0000000..813a9e5 --- /dev/null +++ b/0.47/Docs/FormPS1583/index.html @@ -0,0 +1,1643 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + FormPS1583 object - PostalPoint Plugin Development + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + Skip to content + + +
+
+ +
+ + + + + + + + +
+ + +
+ +
+ + + + + + +
+
+ + + +
+
+
+ + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+ +
+ + + + + +

FormPS1583 object

+
export class FormPS1583 {
+    constructor() {
+        this.formRevision = LATEST_FORM_REVISION; // Currently "June2024"
+        this.pmbOpenedDate = new Date();
+        this.pmbClosedDate = null;
+        this.cmraStreetAddress = getSetting("origin_street1");
+        this.pmbNumber = "";
+        this.cmraZIP = getSetting("origin_zip");
+        var cmraZIPData = getZIP(this.cmraZIP);
+        if (cmraZIPData) {
+            this.cmraCity = cmraZIPData.city;
+            this.cmraState = cmraZIPData.state;
+        } else {
+            this.cmraCity = getSetting("origin_city", "");
+            this.cmraState = getSetting("origin_state", "");
+        }
+        this.serviceTypeBusiness = false; // true for business PMB, false for residential
+        this.applicant = {
+            firstName: "",
+            lastName: "",
+            middleName: "",
+            phone: "",
+            email: "",
+            streetAddress: "",
+            city: "",
+            state: "",
+            zip: "",
+            country: "",
+            courtProtected: false,
+            photoID: {
+                name: "",
+                number: "",
+                issuer: "",
+                expirationDate: null,
+                type: null  // "DL/ID", "UniformedService", "USAccess", "USUni",
+                        // "Passport", "Matricula", "NEXUS",
+                        // "CertOfNaturalization", "USPermResident"
+            },
+            addressID: {
+                name: "",
+                streetAddress: "",
+                city: "",
+                state: "",
+                zip: "",
+                country: "",
+                type: null, // "DL/ID", "Lease", "Mortgage", "Insurance", "VehicleReg", "Voter"
+                expirationDate: null // Optional currently but must be kept current - Oct 2025
+            }
+        };
+        this.authorizedIndividual = {
+            firstName: "",
+            lastName: "",
+            middleName: "",
+            phone: "",
+            email: "",
+            streetAddress: "",
+            city: "",
+            state: "",
+            zip: "",
+            country: "",
+            photoID: {
+                name: "",
+                number: "",
+                issuer: "",
+                expirationDate: null,
+                type: null  // "DL/ID", "UniformedService", "USAccess", "USUni",
+                        // "Passport", "Matricula", "NEXUS",
+                        // "CertOfNaturalization", "USPermResident"
+            },
+            addressID: {
+                name: "",
+                streetAddress: "",
+                city: "",
+                state: "",
+                zip: "",
+                country: "",
+                type: null, // "DL/ID", "Lease", "Mortgage", "Insurance", "VehicleReg", "Voter"
+                expirationDate: null // Optional currently but must be kept current - Oct 2025
+            }
+        };
+        this.mailTransferredTo = {
+            streetAddress: "",
+            city: "",
+            state: "",
+            zip: "",
+            country: "",
+            phone: "",
+            email: ""
+        };
+        this.business = {
+            name: "",
+            type: "",
+            streetAddress: "",
+            city: "",
+            state: "",
+            zip: "",
+            country: "",
+            phone: "",
+            placeOfRegistration: ""
+        };
+        this.additionalRecipients = []; // Array of strings containing names
+        this.applicantSignature = ""; // PNG image data URI
+        this.applicantSignatureDate = null;
+        this.cmraSignature = ""; // PNG image data URI
+        this.cmraSignatureDate = null;
+        this.hasForwardingAddress = false;
+    }
+
+    getTermsAndConditions() {
+        return DEFAULT_TERMS_CONDITIONS[this.formRevision];
+    }
+
+    getApplicantForwardingAddress() {
+        if (this.mailTransferredTo.streetAddress != "") {
+            return new Address(null,
+                    [this.applicant.firstName, this.applicant.lastName].filter(Boolean).join(" "),
+                    this.business.name ?? "",
+                    this.mailTransferredTo.streetAddress,
+                    "",
+                    this.mailTransferredTo.zip,
+                    this.mailTransferredTo.city,
+                    this.mailTransferredTo.state,
+                    this.mailTransferredTo.country ?? "US",
+                    this.mailTransferredTo.phone ?? "",
+                    this.mailTransferredTo.email ?? ""
+                    );
+        }
+        return new Address(null,
+                [this.applicant.firstName, this.applicant.lastName].filter(Boolean).join(" "),
+                this.business.name ?? "",
+                this.applicant.streetAddress,
+                "",
+                this.applicant.zip,
+                this.applicant.city,
+                this.applicant.state,
+                this.applicant.country ?? "US",
+                this.applicant.phone ?? "",
+                this.applicant.email ?? ""
+                );
+    }
+
+    getFormFields() {
+        var fields = FORM_FIELDS[this.formRevision];
+        function getNestedValue(obj, path) {
+            return path.split('.').reduce((o, key) => (o ? o[key] : ""), obj);
+        }
+        var outfields = [];
+        var groupheading = {};
+        var groupfields = [];
+        for (var prop in fields) {
+            if (fields[prop].t == "heading") {
+                if (groupfields.length > 0) {
+                    groupheading.fields = groupfields;
+                    outfields.push(groupheading);
+                    groupfields = [];
+                }
+                groupheading = {
+                    heading: fields[prop].l,
+                    groupid: fields[prop].group ?? null,
+                    fields: []
+                };
+            }
+            fields[prop].n = prop;
+            fields[prop].v = getNestedValue(this, prop);
+            if (typeof fields[prop].v == "undefined" || fields[prop].v == null) {
+                fields[prop].v = "";
+            }
+            if (fields[prop].t == "date") {
+                if (fields[prop].v instanceof Date) {
+                    // Cancel out the timezone in the date object
+                    // If we don't do this, the dates will be subtracted by one day each time we load
+                    // https://stackoverflow.com/a/17329571
+                    fields[prop].v.setTime(fields[prop].v.getTime() + fields[prop].v.getTimezoneOffset() * 60 * 1000);
+                }
+                fields[prop].v = formatTimestamp("Y-m-d", fields[prop].v);
+                if (fields[prop].v == "1969-12-31" || fields[prop].v == "1970-01-01") {
+                    fields[prop].v = "";
+                }
+            }
+            if (fields[prop].t == "select" && typeof fields[prop].b == "boolean") {
+                fields[prop].v = fields[prop].v ? "true" : "";
+            }
+            if (fields[prop].t != "heading") {
+                groupfields.push(fields[prop]);
+            }
+        }
+        if (groupfields != []) {
+            groupheading.fields = groupfields;
+            outfields.push(groupheading);
+        }
+        return outfields;
+    }
+
+    static fromHTMLFormData(formdata, revision = LATEST_FORM_REVISION) {
+        var f = new FormPS1583();
+
+        function setNestedValue(obj, path, value) {
+            const keys = path.split('.');
+            const lastKey = keys.pop();
+            const target = keys.reduce((o, key) => {
+                if (o[key] === undefined)
+                    o[key] = {};
+                return o[key];
+            }, obj);
+            if (typeof FORM_FIELDS[revision][path].b == "boolean") {
+                target[lastKey] = (value == "true" || value == true);
+            } else {
+                target[lastKey] = value;
+            }
+        }
+
+        for (var prop in formdata) {
+            setNestedValue(f, prop, formdata[prop]);
+        }
+
+        return f;
+    }
+
+    static fromJSON(o) {
+        var f = new FormPS1583();
+        f.formRevision = o.formRevision ?? LATEST_FORM_REVISION;
+        f.pmbOpenedDate = new Date(o.pmbOpenedDate);
+        f.pmbClosedDate = o.pmbClosedDate ? new Date(o.pmbClosedDate) : null;
+        f.cmraStreetAddress = o.cmraStreetAddress;
+        f.pmbNumber = o.pmbNumber;
+        f.cmraCity = o.cmraCity;
+        // snip, see constructor for full data structure
+        return f;
+    }
+
+    toJSON() {
+        return {
+            formRevision: this.formRevision,
+            pmbOpenedDate: this.pmbOpenedDate,
+            pmbClosedDate: this.pmbClosedDate,
+            cmraStreetAddress: this.cmraStreetAddress,
+            pmbNumber: this.pmbNumber,
+            cmraCity: this.cmraCity,
+            // snip, see constructor for full data structure
+        };
+    }
+
+    /**
+     * Render this form to PDF
+     * @returns PDF bytes
+     */
+    async getPDF() {
+        // snip, it draws the form contents onto a PDF using the pdf-lib library
+        // If you really want to see how, email us for the code
+        return await document.save();
+    }
+}
+
+ + + + + + + + + + + + + + + +
+
+ + + +
+ +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/0.47/Docs/Parcel/index.html b/0.47/Docs/Parcel/index.html new file mode 100644 index 0000000..5ea289a --- /dev/null +++ b/0.47/Docs/Parcel/index.html @@ -0,0 +1,1862 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + Parcel/Package Object - PostalPoint Plugin Development + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + Skip to content + + +
+
+ +
+ + + + + + + + +
+ + +
+ +
+ + + + + + +
+
+ + + +
+
+
+ + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+ +
+ + + + + +

Parcel/Package Object

+

This object is supplied a plugin registered with registerRateEndpoint when PostalPoint requests +shipping rates from the plugin.

+
export class Package {
+    constructor(isPrepaid = false) {
+        this.prepaid = isPrepaid;
+        this.packaging = {
+            type: "Parcel",
+            service: "",
+            carrier: "",
+            length: 999999,
+            width: 999999,
+            height: 999999,
+            weightOz: 999999,
+            nonmachinable: false,
+            additionalHandling: false,
+            internalid: 100,
+            oversizeFlag: false
+        };
+        this.extraServices = {
+            certifiedMail: false,
+            barcode3800: "",
+            registeredMail: false,
+            registeredMailAmount: false, // can be a number in USD
+            returnReceipt: false,
+            returnReceiptElectronic: false,
+            insurance: false, // can be a number in USD
+            signature: false, // can be false, "SIGNATURE", or "SIGNATURE_RESTRICTED"
+            hazmat: false,
+            perishable: false,
+            crematedRemains: false,
+            liveAnimal: false, // BEES, DAY_OLD_POULTRY, ADULT_BIRDS, OTHER_LIVES
+            cod: false, // Collect on Delivery
+            codAmount: false,
+            endorsement: "", // ADDRESS_SERVICE_REQUESTED, CHANGE_SERVICE_REQUESTED, FORWARDING_SERVICE_REQUESTED, LEAVE_IF_NO_RESPONSE, RETURN_SERVICE_REQUESTED
+            carrier_billing_account: {// Bill a third party's account number for the label
+                type: "", // "" (ignores this entire option), "SENDER" (EasyPost default), "THIRD_PARTY", "RECEIVER", "COLLECT"
+                carrier: "", // Carrier ID (should be used to filter rates)
+                account_number: "", // Carrier account number to bill
+                country: "", // Country account is based in
+                postal_code: "" // Postal code of account
+            },
+            dryIce: false,
+            dryIceWeight: 0,
+            dryIceMedical: false
+        };
+        this.description = ""; // Fillable on customs form, or generated before rating call using customs items
+        this.specialRateEligibility = false;
+        this.customs = {
+            contents: "",
+            contentsExplanation: "", // needed if contents is "other", will be copied from this.description if blank for maximum carrier compatibility
+            signature: "",
+            restriction: "",
+            restrictionComments: "", // needed if restriction is "other"
+            nonDelivery: "return", // "return" or "abandon",
+            eel_pfc: "",
+            items: [] // {index: 0, description: "", qty: "", lbs: "", oz: "", value: "", hscode: "", origin: US"}
+        };
+        this.toAddress = new Address();
+        this.returnAddress = new Address();
+        this.originAddress = new Address();
+        this.trackingNumber = "";
+    }
+
+    /**
+     * Format as EasyPost shipment object
+     * @returns {Package.toEasyPostShipment.shipment}
+     */
+    async toEasyPostShipment() {
+        // Not relevant to plugins
+    }
+
+    /**
+     * Format as Endicia shipment object
+     * @returns {Package.toSERAShipment.shipment}
+     */
+    async toSERAShipment() {
+        // Not relevant to plugins
+    }
+
+    /**
+     * Get a human-readable summary of size and options.
+     * Does not include address data.
+     * @returns {String}
+     */
+    async toString() {
+        let summary = [];
+        let packaging = await getPackagingByID(this.packaging.internalid);
+        let weight = ozToLbsOz(this.packaging.weightOz);
+        let weightStr = this.packaging.weightOz >= 16 ? `${weight[0]} lbs ${weight[1]} oz` : `${weight[1]} oz`;
+        if (packaging != false) {
+            if (packaging.irregular) {
+                if (packaging.weight === false) {
+                    summary.push("Parcel");
+                } else {
+                    summary.push(`${weightStr} Parcel`);
+                }
+                summary.push("Additional Handling");
+            } else {
+                if (packaging.weight === false) {
+                    summary.push(packaging.name);
+                } else {
+                    summary.push(`${weightStr} ${packaging.name}`);
+                }
+            }
+        } else {
+            summary.push(weightStr);
+        }
+        if (this.extraServices.hazmat) {
+            summary.push("HAZMAT");
+        }
+        if (this.extraServices.liveAnimal === true) {
+            summary.push("Live Animals");
+        } else if (typeof this.extraServices.liveAnimal == "string") {
+            switch (this.extraServices.liveAnimal) {
+                case "BEES":
+                    summary.push("Live Bees");
+                    break;
+                case "DAY_OLD_POULTRY":
+                    summary.push("Day-old Poultry");
+                    break;
+                case "ADULT_BIRDS":
+                    summary.push("Live Adult Birds");
+                    break;
+                case "OTHER_LIVES":
+                default:
+                    summary.push("Live Animals");
+                    break;
+            }
+        }
+        if (this.extraServices.perishable) {
+            summary.push("Perishable");
+        }
+        if (this.extraServices.crematedRemains) {
+            summary.push("Cremated Remains");
+        }
+        if (this.extraServices.certifiedMail) {
+            summary.push("Certified Mail");
+        } else if (this.extraServices.registeredMail) {
+            summary.push("Registered Mail");
+            summary.push("Registered for $" + (this.extraServices.registeredMailAmount * 1.0).toFixed(2));
+        } else if (this.extraServices.signature == "SIGNATURE") {
+            summary.push("Signature Required");
+        }
+        if (this.extraServices.signature == "ADULT_SIGNATURE") {
+            summary.push("Adult Signature Required");
+        }
+        if (this.extraServices.signature == "SIGNATURE_RESTRICTED") {
+            summary.push("Restricted Delivery");
+        }
+        if (this.extraServices.returnReceiptElectronic) {
+            summary.push("Return Receipt Electronic");
+        }
+        if (this.extraServices.returnReceipt) {
+            summary.push("Return Receipt");
+        }
+        if (this.extraServices.insurance) {
+            summary.push("Insured for $" + (this.extraServices.insurance * 1.0).toFixed(2));
+        }
+        if (this.extraServices.cod) {
+            summary.push("Collect on Delivery: $" + (this.extraServices.codAmount * 1.0).toFixed(2));
+        }
+        if (this.extraServices.dryIce && this.extraServices.dryIceWeight > 0) {
+            summary.push("Dry Ice: " + (this.extraServices.dryIceWeight * 1).toFixed(0) + " oz");
+        }
+        if (this.extraServices.carrier_billing_account?.type) {
+            if (this.extraServices.carrier_billing_account.type != "") {
+                var accountNumber = this.extraServices.carrier_billing_account.account_number;
+                var accountNumberCensored = accountNumber.substring(accountNumber.length - 4).padStart(accountNumber.length, "X");
+                var carrierName = this.extraServices.carrier_billing_account.carrier;
+                switch (this.extraServices.carrier_billing_account.type) {
+                    case "SENDER":
+                        summary.push(`Bill to sender ${carrierName} account #${accountNumberCensored}`);
+                        break;
+                    case "THIRD_PARTY":
+                        summary.push(`Bill to third party ${carrierName} account #${accountNumberCensored}`);
+                        break;
+                    case "RECEIVER":
+                        summary.push(`Bill to receiver ${carrierName} account #${accountNumberCensored}`);
+                        break;
+                    case "COLLECT":
+                        if (accountNumber.length > 0) {
+                            summary.push(`Bill collect ${carrierName} account #${accountNumberCensored}`);
+                        } else {
+                            summary.push(`Bill collect`);
+                        }
+                        break;
+                }
+            }
+        }
+        return summary.join("\n");
+    }
+
+    async needsHAZMATPrompt() {
+        try {
+            let packagingInfo = await getPackagingByID(this.packaging.internalid);
+            if (packagingInfo.hazmat) {
+                return true;
+            }
+            if (this.packaging.weight > 10) {
+                return true;
+            }
+            if (packagingInfo.l >= -1 && Math.max(this.packaging.length, this.packaging.width, this.packaging.height) > 0.5) {
+                return true;
+            }
+            switch (packagingInfo.type) {
+                case "Letter":
+                case "Card":
+                    return false;
+            }
+            return true;
+        } catch (ex) {
+            return true;
+        }
+    }
+
+    get isPrepaid() {
+        return this.prepaid == true;
+    }
+
+    setCustomsInfo(contents, contentsExplanation, signature, restriction, restrictionComments, nonDelivery) {
+        let items = this.customs.items; // Save this and copy it back in so we don't overwrite it
+        this.customs = {
+            contents: contents,
+            contentsExplanation: contentsExplanation, // needed if contents is "other"
+            signature: signature,
+            restriction: restriction,
+            restrictionComments: restrictionComments, // needed if restriction is "other"
+            nonDelivery: nonDelivery, // "return" or "abandon",
+            items: items
+        };
+    }
+
+    /**
+     * Get the customs items, ignoring any that are blank.
+     * @returns {Array}
+     */
+    getCustomsItems() {
+        let items = [];
+        for (let i = 0; i < this.customs.items.length; i++) {
+            let item = this.customs.items[i];
+            if (item.description == "" && (item.qty == "" || item.qty == 0) && (item.weight == "" || item.weight == 0) && (item.value == "" || item.value == 0)) {
+                continue;
+            }
+            items.push(item);
+        }
+        return items;
+    }
+
+    setCustomsItems(items) {
+        this.customs.items = items;
+    }
+
+    getCustoms() {
+        this.customs.items = this.getCustomsItems();
+        return this.customs;
+    }
+
+    /**
+     * Attempt to automatically fix simple issues like overweight letters.
+     * @returns {undefined}
+     */
+    async fixIssues() {
+        if (this.packaging.type == "Letter" && this.packaging.weightOz > 3.5) {
+            if (this.packaging.nonmachinable) {
+                return; // Has to be a parcel, can't fix without dimensions
+            }
+            this.packaging.type = "Flat";
+            this.packaging.internalid = 104;
+        }
+    }
+
+    /**
+     * Do some basic checks to see if this package is even remotely shippable
+     * @param {boolean} kioskMode If true, returned strings are suitable for display in kiosk mode.
+     * @returns {boolean|string} true if okay, human-readable error message and instructions if not okay
+     */
+    async isValid(kioskMode = false) {
+        // Removed from docs for brevity. Just a bunch of if statements to catch problems.
+    }
+
+    /**
+     * Set package characteristics
+     * @param {string} type "Parcel", "Letter", "Flat", "Card"
+     * @param {type} service
+     * @param {type} carrier
+     * @param {type} length
+     * @param {type} width
+     * @param {type} height
+     * @param {type} weightOz
+     * @returns {undefined}
+     */
+    setPackaging(type, service, carrier, length, width, height, weightOz, nonmachinable) {
+        if (typeof nonmachinable == "undefined") {
+            nonmachinable = false;
+        }
+        if (type == "Card") {
+            // Postcards
+            weightOz = 1;
+            this.packaging.internalid = 105;
+        } else if (type == "Flat") {
+            this.packaging.internalid = 104;
+        } else if (type == "Letter") {
+            this.packaging.internalid = 102;
+            if (nonmachinable) {
+                this.packaging.internalid = 103;
+            }
+        }
+        this.packaging.type = type;
+        this.packaging.service = service;
+        this.packaging.carrier = carrier;
+        this.packaging.weightOz = weightOz;
+        this.packaging.nonmachinable = nonmachinable;
+
+        // Enforce Length > Width > Height
+        let size = [length, width, height];
+        size.sort(function (a, b) {
+            return b - a;
+        });
+        this.packaging.length = size[0];
+        this.packaging.width = size[1];
+        this.packaging.height = size[2];
+    }
+
+    /**
+     * Set an extra service
+     * @param {string} id Service ID
+     * @param {boolean} enabled Turn it on or off
+     * @param {string} value Service value, if needed (some are not just a boolean)
+     * @returns {undefined}
+     */
+    setExtraService(id, enabled, value) {
+        if (typeof value != "undefined" && enabled) {
+            this.extraServices[id] = value;
+        } else {
+            this.extraServices[id] = enabled == true;
+        }
+    }
+
+    getExtraServices() {
+        return this.extraServices;
+    }
+
+    /**
+     * Set to "MEDIA_MAIL", "LIBRARY_MAIL", or false
+     * @param {type} rate
+     * @returns {undefined}
+     */
+    set specialRate(rate) {
+        if (rate == "MEDIA") {
+            rate = "MEDIA_MAIL";
+        } else if (rate == "LIBRARY") {
+            rate = "LIBRARY_MAIL";
+        }
+        if (rate != "MEDIA_MAIL" && rate != "LIBRARY_MAIL") {
+            rate = false;
+        }
+        this.specialRateEligibility = rate;
+    }
+
+    get specialRate() {
+        return this.specialRateEligibility;
+    }
+
+    /**
+     * Save an address to this package.
+     * @param {string} type "to", "return", or "origin"
+     * @param {string} name
+     * @param {string} company
+     * @param {string} street1
+     * @param {string} street2
+     * @param {string} city
+     * @param {string} state
+     * @param {string} zip
+     * @param {string} country ISO 2-char country code
+     * @param {string} phone
+     * @param {string} email
+     * @returns {undefined}
+     */
+    setAddress(type, name, company, street1, street2, city, state, zip, country, phone, email) {
+        let address = Address.fromObject({
+            name: name,
+            company: company,
+            street1: street1,
+            street2: street2,
+            city: city,
+            state: state,
+            zip: zip,
+            country: country,
+            phone: phone,
+            email: email
+        });
+        switch (type) {
+            case "to":
+                this.toAddress = address;
+                break;
+            case "return":
+                this.returnAddress = address;
+                break;
+            case "origin":
+                this.originAddress = address;
+                break;
+        }
+    }
+
+    /**
+     * Set an address using an object that matches the internal form (see setAddress())
+     * @param {string} type
+     * @param {object} data
+     * @returns {undefined}
+     */
+    setAddressWhole(type, address) {
+        switch (type) {
+            case "to":
+                this.toAddress = Address.fromObject(address);
+                break;
+            case "return":
+                this.returnAddress = Address.fromObject(address);
+                break;
+            case "origin":
+                this.originAddress = Address.fromObject(address);
+                break;
+        }
+    }
+
+    get tracking() {
+        return this.trackingNumber;
+    }
+
+    set tracking(n) {
+        this.trackingNumber = n;
+    }
+
+    /**
+     * Get the "from" address that will be shown,
+     * using the return address or origin address as needed
+     * @returns {address}
+     */
+    getReturnAddress() {
+        var a = null;
+        if (typeof this.returnAddress == "object") {
+            a = Address.fromObject(this.returnAddress);
+        } else {
+            a = Address.fromObject(this.originAddress);
+        }
+        if (a.country == "") {
+            a.country = defaultCountryCode();
+        }
+        return a;
+    }
+
+    getToAddress() {
+        var a = Address.fromObject(this.toAddress);
+        if (a.country == "") {
+            a.country = defaultCountryCode();
+        }
+        return a;
+    }
+
+    getFromAddress() {
+        var a = null;
+        if (typeof this.originAddress == "object") {
+            a = Address.fromObject(this.originAddress);
+        } else {
+            a = Address.fromObject(this.returnAddress);
+        }
+        if (a.country == "") {
+            a.country = defaultCountryCode();
+        }
+        return a;
+    }
+}
+
+ + + + + + + + + + + + + + + +
+
+ + + +
+ +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/0.47/Docs/Receipt/index.html b/0.47/Docs/Receipt/index.html new file mode 100644 index 0000000..8c8ffb8 --- /dev/null +++ b/0.47/Docs/Receipt/index.html @@ -0,0 +1,1915 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + Receipt Objects - PostalPoint Plugin Development + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + Skip to content + + +
+
+ +
+ + + + + + + + +
+ + +
+ +
+ + + + + + +
+
+ + + +
+
+
+ + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+ +
+ + + + + +

Receipt Objects

+

Sample receipt object

+

This is an example of the data global.apis.pos.onReceiptChange +and global.apis.pos.onTransactionFinished send to plugins. +All data for a PostalPoint transaction is available in its receipt object.

+

The money-related properties near the bottom of this sample are generated by PostalPoint +from the items and payments.

+

Notes:

+
    +
  • The due property will be a negative number if change is owed to the customer.
  • +
  • pendingEmailTo is set to a suggested email address for the email receipt, and if the receipt +should actually be emailed, it will be set in emailTo.
  • +
  • uuid is a unique 16-character alphanumeric receipt ID number, which is shown and used in several places. +The uuid is generated using global.apis.util.uuid.short().
  • +
  • customerAccountId is the UUID for the customer's account, or null if there isn't a customer attached.
  • +
  • This example happens to be the object used when test printing a receipt from the PostalPoint +settings menu, so press that button to see what this is rendered into.
  • +
+
{
+    "items": [
+        ReceiptItem.fromJSON({
+            "id": "9100123456789012345678",
+            "label": "Test Package",
+            "text": "Package Details\nTracking # 9100 1234 5678 9012 3456 78\nTo:\nTEST PERSON\nORGANIZATION INC\n123 TEST ROAD\nTESTTOWN TE 99999-0001",
+            "priceEach": 8,
+            "qty": 1,
+            "cost": 0,
+            "retail": 8,
+            "taxRate": 0,
+            "free": false,
+            "barcode": "9100123456789012345678",
+            "certifiedInfo": false,
+            "isMerch": false,
+            "surcharge": false,
+            "toAddress": {
+                "name": "TEST PERSON",
+                "company": "ORGANIZATION INC",
+                "street1": "123 TEST ROAD",
+                "street2": null,
+                "city": "TESTTOWN",
+                "state": "TE",
+                "zip": "99999-0001",
+                "email": null,
+                "phone": null,
+                "country": "US"
+            },
+            "fromAddress": {
+                "name": "TEST PERSON",
+                "company": "ORGANIZATION INC",
+                "street1": "123 TEST ROAD",
+                "street2": null,
+                "city": "TESTTOWN",
+                "state": "TE",
+                "zip": "99999-0001",
+                "email": null,
+                "phone": null,
+                "country": "US"
+            }
+        }),
+        ReceiptItem.fromJSON({
+            "id": "testitem",
+            "label": "Test Item",
+            "text": "",
+            "priceEach": 2,
+            "qty": 1,
+            "cost": 0,
+            "retail": 2,
+            "taxRate": 0.1,
+            "free": false,
+            "barcode": "",
+            "certifiedInfo": false,
+            "isMerch": true,
+            "surcharge": false
+        })
+    ],
+    "payments": [
+        ReceiptPayment.fromJSON({
+            "amount": 10,
+            "type": "cash",
+            "text": "",
+            "id": "testcash"
+        })
+    ],
+    "subtotal": 10,
+    "subtotalFormatted": "$10.00",
+    "tax": 0.2,
+    "taxFormatted": "$0.20",
+    "grandTotal": 10.2,
+    "grandTotalFormatted": "$10.20",
+    "paid": 10.2,
+    "paidFormatted": "$10.20",
+    "due": 0,
+    "dueFormatted": "$0.00",
+    "emailTo": null,
+    "pendingEmailTo": null,
+    "uuid": "1234567890abcdef",
+    "customerAccountId": null,
+    "topTextHTML": "",
+    "bottomTextHTML": ""
+}
+
+

global.apis.pos.ReceiptItem

+
export class ReceiptItem {
+    /**
+     *
+     * @param {string|number} id Unique ID number for this item (UPC code, inventory number, etc). Used to deduplicate line items. Unique items (like shipping labels) should be random or empty.
+     * @param {string} label One-line item information.
+     * @param {string} text Extra item information.
+     * @param {number} priceEach Price per unit
+     * @param {number} quantity Number of units
+     * @param {number} cost Cost per unit. Used for automatic expense tracking.
+     * @param {number} taxrate Examples: 0 (for 0%), 0.05 (for 5%), etc
+     * @param {string} taxableAmount The part of the sale price that's taxable. "" for default (all), "markup" for only taxing profit.
+     * @returns {ReceiptItem}
+     */
+    constructor(id, label, text, priceEach, quantity, cost, taxrate = 0.0, taxableAmount = "") {
+        this.id = id;
+        this.label = label;
+        if (text == null) {
+            this.txt == "";
+        } else {
+            this.txt = text;
+        }
+        this.priceEach = num(priceEach);
+        this.qty = num(quantity);
+        this.cost = num(cost);
+        if (isNaN(taxrate)) {
+            this.taxRate = 0;
+        } else {
+            this.taxRate = num(taxrate);
+        }
+        this.taxableAmount = taxableAmount;
+        this.merch = false;
+        this.merchid = null;
+        this.surcharge = false;
+        this.retail = 0; // For ensuring PostalPoint fee collection on office mode shipments
+        this.mailboxNumber = null;
+        this.mailboxDays = 0;
+        this.mailboxMonths = 0;
+        this.category = ""; // merch category
+        this.electronicReturnReceipt = false;
+    }
+
+    static fromJSON(obj) {
+        var item = new ReceiptItem(obj.id, obj.label, obj.text, obj.priceEach, obj.qty, obj.cost, obj.taxRate, obj.taxableAmount ?? "");
+        item.free = obj.free;
+        item.barcode = obj.barcode;
+        item.certifiedInfo = obj.certifiedInfo;
+        item.toAddress = obj.toAddress;
+        item.fromAddress = obj.fromAddress;
+        item.merch = obj.isMerch == true || (typeof obj.merchid == "string" && obj.merchid.length > 0);
+        item.merchid = obj.merchid ?? null;
+        item.mailboxNumber = obj.mailboxNumber ?? null;
+        item.mailboxDays = obj.mailboxDays ?? 0;
+        item.mailboxMonths = obj.mailboxMonths ?? 0;
+        item.surcharge = obj.surcharge;
+        item.retailPrice = obj.retail;
+        item.carrier = obj.carrier ?? null;
+        item.service = obj.service ?? null;
+        item.category = obj.category ?? "";
+        item.electronicReturnReceipt = obj.electronicReturnReceipt ?? false;
+        return item;
+    }
+
+    toJSON() {
+        return {
+            id: this.id,
+            label: this.label,
+            text: this.text,
+            priceEach: num(this.priceEach),
+            qty: num(this.qty),
+            cost: num(this.cost),
+            retail: num(this.retail),
+            taxRate: num(this.taxRate),
+            taxableAmount: this.taxableAmount,
+            taxTotal: this.taxAmount,
+            free: this.free,
+            barcode: this.barcode,
+            certifiedInfo: this.certifiedInfo,
+            isMerch: this.merch,
+            merchid: this.merchid,
+            surcharge: this.surcharge,
+            toAddress: this.toAddress,
+            fromAddress: this.fromAddress,
+            mailboxNumber: this.mailboxNumber,
+            mailboxDays: this.mailboxDays,
+            mailboxMonths: this.mailboxMonths,
+            carrier: this.carrier,
+            service: this.service,
+            category: this.category,
+            electronicReturnReceipt: this.electronicReturnReceipt
+        };
+    }
+
+    get text() {
+        if (typeof this.txt == "string") {
+            return this.txt;
+        }
+        return "";
+    }
+
+    set text(t) {
+        if (typeof t == "string") {
+            this.txt = t;
+        } else {
+            this.txt = "";
+        }
+    }
+
+    get certifiedInfo() {
+        if (typeof this.certified == "undefined") {
+            return false;
+        }
+        return this.certified;
+    }
+
+    set certifiedInfo(info) {
+        this.certified = info;
+    }
+
+    setCertifiedInfo(tracking, certfee, extrafees, postage, date, location, toaddress) {
+        this.certified = {
+            tracking: tracking,
+            certifiedFee: num(certfee),
+            extraFees: extrafees,
+            postage: num(postage),
+            date: date,
+            location: location,
+            to: toaddress
+        };
+    }
+
+    setQuantity(q) {
+        this.qty = num(q);
+    }
+
+    get free() {
+        return this.isFree == true;
+    }
+
+    set free(free) {
+        this.isFree = free == true;
+    }
+
+    get barcode() {
+        if (typeof this.barcodeData != "string") {
+            return "";
+        }
+        return this.barcodeData;
+    }
+
+    set barcode(data) {
+        this.barcodeData = data;
+    }
+
+    get linePrice() {
+        return round(m(this.priceEach, this.qty), 2);
+    }
+
+    get priceEachFormatted() {
+        return getCurrencySymbol() + round(num(this.priceEach), 2).toFixed(2);
+    }
+
+    get linePriceFormatted() {
+        return getCurrencySymbol() + round(num(this.linePrice), 2).toFixed(2);
+    }
+
+    get texthtml() {
+        if (typeof this.text != "string") {
+            return "";
+        }
+        var lines = this.text.split("\n");
+        for (var i = 0; i < lines.length; i++) {
+            if (lines[i].startsWith("Tracking # ")) {
+                // Allow copying tracking number
+                lines[i] = "Tracking # <span class=\"usall\">" + lines[i].replace("Tracking # ", "") + "</span>";
+            }
+        }
+        return lines.join("<br />");
+    }
+
+    get taxAmount() {
+        if (this.taxableAmount == "markup") {
+            var lineCost = m(this.cost, this.qty);
+            var margin = s(this.linePrice, lineCost);
+            if (margin <= 0) {
+                return 0;
+            }
+            return round(m(margin, this.taxRate), 2);
+        } else {
+            return round(m(this.linePrice, this.taxRate), 2);
+        }
+    }
+
+    get retailPrice() {
+        if (typeof this.retail == "number") {
+            return this.retail;
+        }
+        return this.priceEach * this.qty;
+    }
+
+    set retailPrice(price) {
+        this.retail = num(price);
+    }
+
+}
+
+

global.apis.pos.ReceiptPayment

+
export class ReceiptPayment {
+
+    /**
+     *
+     * @param {number} amount amount paid
+     * @param {string} type payment type
+     * @param {string} text extra data (credit card info, etc)
+     * @returns {ReceiptPayment}
+     */
+    constructor(amount, type, text) {
+        this.id = (Math.random() * 100000000) + "_" + type + "_" + amount;
+        this.text = (typeof text != "string" ? "" : text);
+        this.type = type;
+        this.amount = amount;
+    }
+
+    static fromJSON(obj) {
+        var item = new ReceiptPayment(obj.amount, obj.type, obj.text);
+        item.id = obj.id;
+        return item;
+    }
+
+    toJSON() {
+        return {
+            amount: round(this.amount, 2),
+            type: this.type,
+            text: this.text,
+            id: this.id
+        };
+    }
+
+    get texthtml() {
+        if (typeof this.text != "string") {
+            return "";
+        }
+        return this.text.replaceAll("\n", "<br />");
+    }
+
+    get amountFormatted() {
+        return getCurrencySymbol() + this.amount.toFixed(2);
+    }
+
+    get label() {
+        if (typeof this.type != "string") {
+            return "Payment";
+        }
+        switch (this.type) {
+            case "cash":
+                return "Cash";
+            case "check":
+                return "Check";
+            case "card":
+                return "Card";
+            case "card_manual":
+                return "Card";
+            case "account":
+                return "Account";
+            case "free":
+                return "Free";
+            case "discount":
+                return "Discount";
+            case "crypto":
+                return "Cryptocurrency";
+            case "ach":
+                return "ACH Debit";
+            case "rounding":
+                return "Cash Rounding"; // Used in penniless countries to balance a cash-only transaction
+            default:
+                return this.type;
+        }
+    }
+}
+
+ + + + + + + + + + + + + + + +
+
+ + + +
+ +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/0.47/Docs/ReceiptPrinter/index.html b/0.47/Docs/ReceiptPrinter/index.html new file mode 100644 index 0000000..faa6006 --- /dev/null +++ b/0.47/Docs/ReceiptPrinter/index.html @@ -0,0 +1,1531 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + Receipt Printer driver functions - PostalPoint Plugin Development + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + Skip to content + + +
+
+ +
+ + + + + + + + +
+ + +
+ +
+ + + + + + +
+
+ + + +
+
+
+ + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+ +
+ + + + + +

Receipt Printer driver functions

+

PostalPoint abstracts the receipt printer hardware commands, so the same functions are available on +all brands and languages of receipt printer, and printer media size and settings are also handled for you.

+

The drivers operate in line mode, where each successive command appends content to the bottom of the page.

+

These functions are available on the object supplied by the promise returned from +global.apis.print.getReceiptPrinter().

+

Functions

+
//
+// Add one or more lines of text, with automatic wrapping.
+// If both firsttext and secondtext are provided, two columns of text are generated,
+// with the first left-justified and the second right-justified.
+// `firstjustify` can be "L" (left), "C" (center), or "R" (right).
+// Not all printers support all the formatting options, and may render them in different ways,
+// but the formatting intent is made clear regardless.
+addFieldBlock(firsttext, firstjustify, secondtext = "", secondjustify = "R", bold = false, doubleheight = false, underline = false);
+
+// Add a blank line to the label.
+newLine();
+
+// Draw a horizontal line across the page.
+drawLine();
+
+// Render a Code 128 barcode, centered horizontally, with a human-readable label beneath.
+// Important: this function is sometimes asynchronous depending on the printer driver.
+barcode128(content);
+
+// Print an image.  Width is in pixels.
+// pixelByteArray is a Uint8Array where each bit is a pixel (1=black, 0=white),
+// starting at the top-left of the image and going across and then down. Use `imageToBitmap` to
+// obtain this data from a Jimp image.
+// Use "L" as the position to print on the next line, centered horizontally.
+// Some printers also support position = "C", which will
+// ignore other commands and print the image centered on the label,
+// but if you're doing that, just use `global.apis.print.printLabelImage()` instead.
+drawImage(width, position, pixelByteArray);
+
+// If supported by the printer, opens an attached cash drawer.  Command is ignored if unavailable.
+openCashDrawer();
+
+// The last command to run, when ready to print. Returns the raw data to send to the printer.
+// Important: this function is sometimes asynchronous depending on the printer driver.
+getData();
+
+

Example

+
var printer = await global.apis.print.getReceiptPrinter();
+
+printer.addFieldBlock("Hello Bold World!", "C", "", "", true);
+printer.drawLine();
+await printer.barcode128("1234567890");
+printer.newLine();
+
+await global.apis.printer.printReceiptData(await printer.getData());
+
+ + + + + + + + + + + + + + + +
+
+ + + +
+ +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/0.47/Docs/TrackingBarcode/index.html b/0.47/Docs/TrackingBarcode/index.html new file mode 100644 index 0000000..9073b81 --- /dev/null +++ b/0.47/Docs/TrackingBarcode/index.html @@ -0,0 +1,1552 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + TrackingBarcode class - PostalPoint Plugin Development + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + Skip to content + + +
+
+ +
+ + + + + + + + +
+ + +
+ +
+ + + + + + +
+
+ + + +
+
+
+ + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+ +
+ + + + + +

TrackingBarcode class

+

For your reference, here is the source code of the TrackingBarcode class, used to represent a prepaid drop-off. +This class is provided to plugins as global.apis.barcode.TrackingBarcode.

+
export class TrackingBarcode {
+    /**
+     * Create a tracking barcode object.
+     * @param {string} code Tracking number.
+     * @returns {TrackingBarcode}
+     */
+    constructor(code) {
+        // All data are optional except for the tracking number. Missing data is gracefully handled by the PostalPoint UI.
+        this.cleanCode = code;
+        // Original barcode data this was created from
+        this.barcode = code;
+        // Destination ZIP Code, for domestic shipments. The city and state are automatically added.  If toAddress is specified, toZip is ignored in favor of it.
+        this.toZip = "";
+        // Two-letter destination country code.  If not "US", toZip is ignored, and the full country name is appended to the displayed address information.
+        this.toCountry = defaultCountryCode();
+        // If toAddress is set, it will be used instead of the toZip when displaying the destination.
+        // If both toZip and toAddress are empty strings, no destination will be displayed.
+        this.toAddress = "";
+        // If message is not empty, the barcode will NOT be added and the message will be displayed to the user.
+        this.message = "";
+        // If warning is not empty, the barcode WILL be added and a message will be displayed to the user.
+        this.warning = "";
+        // Shipping carrier name.
+        this.carrier = "";
+        // Shipping service/mail class full name and description. Example: "Priority Mail Adult Signature Required".
+        this.serviceName = "";
+        // Shipping service/mail class name, without extra info such as "signature required".
+        // Example: "Priority Mail"
+        this.serviceShort = "";
+        // If set to false, the barcode will be rejected with a suitable message when PostalPoint is running in self-serve kiosk mode.
+        this.dropoff = true;
+        // If false, app may prompt user to specify the shipping carrier
+        this.confidentCarrier = true;
+        // Extra description strings, like "Signature Required"
+        this.extraInfo = [];
+    }
+
+    /**
+     * Set the tracking number
+     * @param {string} str
+     * @returns {undefined}
+     */
+    set tracking(str) {
+        this.cleanCode = str;
+    }
+
+    /**
+     * Set the service/mail class description string.
+     * @param {string} str
+     * @returns {undefined}
+     */
+    set service(str) {
+        this.serviceShort = str;
+        this.serviceName = str;
+    }
+
+    /**
+     * Get the tracking number.
+     * @returns {String}
+     */
+    get tracking() {
+        return this.cleanCode;
+    }
+
+    /**
+     * Get the destination ZIP code.
+     * @returns {String}
+     */
+    get zip() {
+        return this.toZip;
+    }
+
+    /**
+     * Get the service/mail class description.
+     * @returns {String}
+     */
+    get service() {
+        if (this.serviceShort != "") {
+            return this.serviceShort;
+        } else if (this.serviceName != "") {
+            return this.serviceName;
+        }
+        return "";
+    }
+
+    /**
+     * Get the carrier and service info.
+     * @returns {String}
+     */
+    get serviceString() {
+        var str = [];
+        if (this.carrier != "") {
+            str.push(this.carrier);
+        }
+        if (this.serviceShort != "") {
+            str.push(this.serviceShort);
+        } else if (this.serviceName != "") {
+            str.push(this.serviceName);
+        }
+        return str.join(" ");
+    }
+
+    /**
+     * Get the destination information as a human-presentable multiline string.
+     * @returns {String}
+     */
+    get destString() {
+        var addressLines = [];
+        if (this.toAddress != "") {
+            addressLines.push(...this.toAddress.split("\n"));
+        }
+        if (defaultCountryCode() == this.toCountry.toUpperCase() && this.toCountry.toUpperCase() == "US" && this.toZip != "" && this.toAddress == "") {
+            // Domestic shipment within USA, look up ZIP code
+            var zipdata = getZIP(this.toZip);
+            if (zipdata != false) {
+                addressLines.push(`${zipdata.city} ${zipdata.state} ${this.toZip}`);
+            } else {
+                addressLines.push(`${this.toZip}`);
+            }
+        } else if (defaultCountryCode() == this.toCountry.toUpperCase()) {
+            // Domestic shipment, outside USA, add postal code line if we have one
+            if (this.toZip != "" && this.toAddress.includes(this.toZip) != true) {
+                addressLines.push(`${this.toZip}`);
+            }
+        } else {
+            // International shipment, add country name
+            addressLines.push(getCountryNameForISO(this.toCountry));
+        }
+        return addressLines.join("\n");
+    }
+
+    /**
+     * Get the package information in a format suitable for display on a receipt.
+     * @param {boolean} includeTrackingNumber If false, the tracking number will be suppressed.
+     * @returns {String}
+     */
+    toString(includeTrackingNumber = true) {
+        var lines = [];
+        if (includeTrackingNumber && this.cleanCode) {
+            lines.push(this.cleanCode);
+        }
+        var serv = this.serviceString;
+        if (serv != "") {
+            lines.push(serv);
+        }
+        var dest = this.destString;
+        if (dest != "") {
+            var destlines = dest.split("\n");
+            destlines[0] = "To " + destlines[0];
+            lines.push(...destlines);
+        }
+
+        if (typeof this.extraInfo == "object" && this.extraInfo.length > 0) {
+            lines.push(...this.extraInfo);
+        }
+
+        return lines.join("\n");
+    }
+}
+
+ + + + + + + + + + + + + + + +
+
+ + + +
+ +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/0.47/Examples/01Minimal/index.html b/0.47/Examples/01Minimal/index.html new file mode 100644 index 0000000..0a5dc17 --- /dev/null +++ b/0.47/Examples/01Minimal/index.html @@ -0,0 +1,1395 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + Minimal Plugin - PostalPoint Plugin Development + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + Skip to content + + +
+
+ +
+ + + + + + + + +
+ + +
+ +
+ + + + + + +
+
+ + + +
+
+
+ + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+ +
+ + + + + +

Minimal Plugin

+

This is the smallest possible valid plugin.

+
plugin-name/plugin.js
exports.init = function () {
+    global.apis.alert("This message appears when PostalPoint launches.", "Hello!");
+};
+
+ + + + + + + + + + + + + + + +
+
+ + + +
+ +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/0.47/Examples/02Basic/index.html b/0.47/Examples/02Basic/index.html new file mode 100644 index 0000000..1fff642 --- /dev/null +++ b/0.47/Examples/02Basic/index.html @@ -0,0 +1,1516 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + Basic Plugin - PostalPoint Plugin Development + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + Skip to content + + +
+
+ +
+ + + + + + + + +
+ + +
+ +
+ + + + + + +
+
+ + + +
+
+
+ + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+ +
+ + + + + +

Basic Plugin

+

This sample plugin showcases some of the features many plugins will want to use.

+

Download JavaScript

+
plugin.js
// Sample plugin to demonstrate plugin capabilities and structure.
+
+async function getPage() {
+    // A Framework7 component page
+    return global.apis.getPluginFolder("basic-demo") + "/uipluginpage.f7";
+}
+
+// This is run when PostalPoint loads the plugin at launch.
+// Use it to register for things you want to do, like adding a page, hooking into payments or shipping rates, etc.
+exports.init = function () {
+    console.log(global.apis.settings.get("basic-demo_secretcode"));
+    global.apis.ui.addToolsPage(getPage, "Sample Page Title", "sampletool1234", "A sample plugin page", "Sample", "fa-solid fa-circle");
+};
+
+// This defines a settings UI to display for the plugin.
+// If exports.config is a function instead of an array, it will be executed when opening the settings
+// and must return an array like the one below.
+// If exports.config is undefined, a settings menu will not be provided to the user.
+exports.config = [
+    {
+        type: "button",
+        label: "Test Button",
+        text: "Some text about the button",
+        onClick: function () {
+            global.apis.alert("Button pressed");
+        }
+    },
+    {
+        type: "text",
+        key: "app.postalpoint.basic-demo_somestring", // Try to make sure this is unique by using a prefix,
+        // settings storage is global so there could be conflicts if you aren't careful
+        defaultVal: "",
+        label: "Type a string",
+        placeholder: "",
+        text: "Description text next to the input box",
+        sync: false // Add sync: false to prevent automatically syncing this setting between
+                    // PostalPoint installations (i.e. it's a device-specific setting, like a pairing code)
+                    // If it's not present, or is any truthy value, it could be synced between PCs
+    },
+    {
+        type: "password",
+        key: "app.postalpoint.basic-demo_secretcode",
+        defaultVal: "",
+        label: "Secret Code",
+        placeholder: "",
+        text: "Don't tell anyone this secret code:"
+    },
+    {
+        type: "textarea",
+        key: "app.postalpoint.basic-demo_sometext",
+        defaultVal: "",
+        label: "Text Box",
+        placeholder: "...",
+        text: "You can type a few lines of text here."
+    },
+    {
+        type: "select",
+        key: "app.postalpoint.basic-demo_dropdownbox",
+        defaultVal: "",
+        label: "Choose an option",
+        placeholder: "",
+        text: "",
+        options: [["key1", "Value 1"], ["key2", "Value 2"]]
+    }
+];
+
+

Download HTML

+
uipluginpage.f7
<template>
+    <div class="page">
+        <div class="navbar">
+            <div class="navbar-bg"></div>
+            <div class="navbar-inner">
+                <div class="title">${title}</div>
+            </div>
+        </div>
+        <div class="page-content">
+            <a class="button" @click=${openAlert}>Open Alert</a>
+            <a class="button" @click=${printSomething}>Print Something</a>
+            <div class="list simple-list">
+                <ul>
+                    ${names.map((name) => $h`
+                    <li>${name}</li>
+                    `)}
+                </ul>
+            </div>
+        </div>
+    </div>
+</template>
+<!-- component styles -->
+<style>
+    .red-link {
+        color: red;
+    }
+</style>
+<!-- rest of component logic -->
+<script>
+    // script must return/export component function
+    export default (props, { $f7, $on }) => {
+        const title = 'Component Page';
+        const names = ['John', 'Vladimir', 'Timo'];
+
+        const openAlert = () => {
+            $f7.dialog.alert('Hello world!\nblah blah blah');
+        }
+
+        async function printSomething() {
+            // Print some text to the receipt printer
+            var printer = await global.apis.print.getReceiptPrinter();
+            printer.addFieldBlock('Hello world!\nblah blah blah\n\n', "C");
+            global.apis.print.printReceiptData(await printer.getData());
+        }
+
+        $on('pageInit', () => {
+            // do something on page init
+        });
+        $on('pageAfterOut', () => {
+            // page has left the view
+        });
+
+        // component function must return render function
+        return $render;
+    }
+</script>
+
+ + + + + + + + + + + + + + + +
+
+ + + +
+ +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/0.47/Examples/03Shipping/index.html b/0.47/Examples/03Shipping/index.html new file mode 100644 index 0000000..c560fb4 --- /dev/null +++ b/0.47/Examples/03Shipping/index.html @@ -0,0 +1,1475 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + Shipping Plugin - PostalPoint Plugin Development + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + Skip to content + + +
+
+ +
+ + + + + + + + +
+ + +
+ +
+ + + + + + +
+
+ + + +
+
+
+ + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+ +
+ + + + + +

Shipping Plugin

+

This sample plugin demonstrates how to add support for a custom shipping carrier.

+

Download JavaScript

+
plugin.js
// This is a sample PostalPoint plugin for adding support for a shipping carrier.
+
+var rateCache = [];
+var parcelCache = {};
+
+exports.init = function () {
+    // Add support for shipping rating and label purchasing
+    global.apis.shipping.registerRateEndpoint(getRates, purchase, "uniqueprefixhere_");
+
+    // Add support for prepaid drop-offs
+    global.apis.barcode.onPrepaidScan(function (barcode) {
+        if (barcode.startsWith("mycarrierbarcode")) { // Replace this with your checks for barcode validity
+            var data = new global.apis.barcode.TrackingBarcode(barcode);
+            data.carrier = "Carrier Name";
+            data.service = "Service Name";
+            return data;
+        }
+        return false;
+    });
+}
+
+async function purchase(rateid) {
+    for (var i = 0; i < rateCache.length; i++) {
+        if (rateCache[i].rateid == rateid) {
+            var rate = rateCache[i];
+            //
+            // Fetch label and tracking and such
+            //
+            var label;
+            var tracking = "123456";
+            var toAddressLines = parcelCache.toAddress.toStringArray();
+
+            // Create receipt item
+            var receiptitem = new global.apis.pos.ReceiptItem(`uniqueprefixhere_${tracking}`,
+                    `${rate.carrierName} ${rate.serviceName}`,
+                    `Tracking # ${global.apis.util.string.chunk(tracking, 3).join(" ")}\nTo:\n${toAddressLines.join("\n")}`,
+                    rate.retail_rate, 1, rate.cost_rate, 0
+                    );
+            receiptitem.barcode = tracking;
+            receiptitem.carrier = "Carrier Name";
+            receiptitem.service = "Service Name";
+
+            return {
+                label: label,
+                labeltype: "PNG",
+                receiptItem: receiptitem,
+                tracking: tracking,
+                cost: rate.cost_rate,
+                price: rate.retail_rate,
+                carrier: rate.carrierName,
+                service: rate.serviceName,
+                delivery_days: rate.delivery_days,
+                delivery_date: rate.delivery_date,
+                to: toAddressLines
+            };
+        }
+    }
+}
+
+async function getRates(parcel) {
+    // parcel is an object as shown in docs/Parcel.md
+    var rates = [];
+    rates.push({
+        rateid: "uniqueprefixhere_" + global.apis.util.uuid.v4(),
+        carrier: "Carrier",
+        carrierName: "Carrier Name",
+        service: "CARRIER_SERVICE_ID",
+        cost_rate: 10,
+        retail_rate: 15,
+        delivery_days: 3,
+        delivery_date: null,
+        guaranteed: true,
+        serviceName: "Service Name",
+        color: "green" // Rate card color
+    });
+
+    // Save details for later use if purchased
+    rateCache = rates;
+    parcelCache = parcel;
+
+    return rates;
+}
+
+ + + + + + + + + + + + + + + +
+
+ + + +
+ +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/0.47/Examples/04CardProcessor/index.html b/0.47/Examples/04CardProcessor/index.html new file mode 100644 index 0000000..e1e6b5e --- /dev/null +++ b/0.47/Examples/04CardProcessor/index.html @@ -0,0 +1,1639 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + Card Payments - PostalPoint Plugin Development + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + Skip to content + + +
+
+ +
+ + + + + + + + +
+ + +
+ +
+ + + + + + +
+
+ + + +
+
+
+ + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+ +
+ + + + + +

Card Payments

+

This plugin template shows how to implement a card payment processor, +allowing PostalPoint to interface with your card reader/terminal hardware, +as well as saving, retrieving, and charging cards on file.

+

Download JavaScript

+
plugin-name/plugin.js
// This is a sample PostalPoint plugin that adds a card payment processor.
+
+exports.init = function () {
+    global.apis.pos.registerCardProcessor({
+        name: "Demo Card Processor",
+        init: async function () {
+            // This function runs once after starting PostalPoint
+            // and before any other card processor functions are called.
+        },
+        checkout: async function({amount, capture = true}) {
+            // amount is an integer number of pennies.
+
+            // If an error is encountered during processing,
+            //    display an error message in a dialog and return boolean false.
+            //    If this function returns anything except false or undefined, and doesn't throw an error,
+            //    it is assumed the payment was successful.
+            try {
+                if (capture) {
+                    // authorize, capture, add a ReceiptPayment to the receipt, and return boolean true.
+                    global.apis.pos.addOnscreenPaymentLog("Getting card payment..."); // Add a line to the onscreen card processing status log
+                    await global.apis.util.delay(1000); // Replace this with something useful!
+                    global.apis.pos.addReceiptPayment(
+                        new global.apis.pos.ReceiptPayment(
+                            (amount / 100).toFixed(2) * 1,
+                            "card", // Payment type. Accepted values are card, ach, crypto, cash, check, account, and free.  Other types will be displayed as-is to the user and on the receipt.
+                            "Demo Card\nCardholder Name, etc\nMore info for receipt" // Additional text for receipt
+                        )
+                    );
+                    global.apis.pos.addOnscreenPaymentLog("Payment successful!");
+                    return true;
+                } else {
+                    // only authorize the payment, don't actually capture/charge the payment method,
+                    // and return whatever transaction data that will be passed to finishPayment to capture the payment.
+                    await global.apis.util.delay(1000); // Replace this with something useful!
+                    return {amount: amount};
+                }
+            } catch (ex) {
+                global.apis.pos.addOnscreenPaymentLog(`Error: ${ex.message} [okay to put extra details here for troubleshooting or tech support, it's visible to the cashier]`);
+                if (global.apis.kiosk.isKiosk()) {
+                    // This message will be shown to an end-user/customer, not a cashier/employee
+                    global.apis.alert("Your card was declined.", "Card Error");
+                } else {
+                    global.apis.alert("The customer's card was declined.", "Card Error");
+                }
+                return false;
+            }
+        },
+        cancelCheckout: function () {
+            // The user requested to cancel the payment.
+            // Reset the terminal to its resting state, clear its screen, etc.
+        },
+        finishPayment: async function ({checkoutResponse}) {
+            // Finish a payment that was authorized but not captured because checkout was called with capture = false
+            // If payment was already captured and added to the receipt for some reason, just return true.
+            await global.apis.util.delay(1000); // Replace this with something useful!
+            global.apis.pos.addReceiptPayment(
+                new global.apis.pos.ReceiptPayment(
+                    (checkoutResponse.amount / 100).toFixed(2) * 1,
+                    "card", // Payment type.
+                    "Demo Card\nCardholder Name, etc\nMore info for receipt" // Additional text for receipt
+                )
+            );
+            return true;
+        },
+        updateCartDisplay: function (receipt) {
+            // Show transaction data on the card reader display.
+            // This function will be called when the cart or total changes.
+            console.log(receipt);
+            // Sample structure of the receipt variable:
+            receipt = {
+                "items": [
+                    {
+                        "id": "testitem",
+                        "label": "Test Item",
+                        "text": "",
+                        "priceEach": 2,
+                        "qty": 1,
+                        "cost": 0,
+                        "retail": 2,
+                        "taxRate": 0.1,
+                        "free": false,
+                        "barcode": "",
+                        "certifiedInfo": false,
+                        "isMerch": true,
+                        "surcharge": false
+                    },
+                    {
+                        "id": "9100123456789012345678",
+                        "label": "Test Package",
+                        "text": "Package Details\nTracking # 9100 1234 5678 9012 3456 78\nTo:\nTEST PERSON\nORGANIZATION INC\n123 TEST ROAD\nTESTTOWN TE 99999-0001",
+                        "priceEach": 8,
+                        "qty": 1,
+                        "cost": 0,
+                        "retail": 8,
+                        "taxRate": 0,
+                        "free": false,
+                        "barcode": "9100123456789012345678",
+                        "certifiedInfo": false,
+                        "isMerch": false,
+                        "surcharge": false,
+                        "toAddress": {
+                            "name": "TEST PERSON",
+                            "company": "ORGANIZATION INC",
+                            "street1": "123 TEST ROAD",
+                            "street2": null,
+                            "city": "TESTTOWN",
+                            "state": "TE",
+                            "zip": "99999-0001",
+                            "email": null,
+                            "phone": null,
+                            "country": "US"
+                        },
+                        "fromAddress": {
+                            "name": "TEST PERSON",
+                            "company": "ORGANIZATION INC",
+                            "street1": "123 TEST ROAD",
+                            "street2": null,
+                            "city": "TESTTOWN",
+                            "state": "TE",
+                            "zip": "99999-0001",
+                            "email": null,
+                            "phone": null,
+                            "country": "US"
+                        }
+                    }
+                ],
+                "payments": [
+                    {
+                        "amount": 10,
+                        "amountFormatted": "$10.00",
+                        "type": "cash",
+                        "label": "Cash",
+                        "text": "",
+                        "texthtml": "",
+                        "id": "12345678_cash_10"
+                    },
+                    {
+                        "amount": 12.34,
+                        "amountFormatted": "$12.34",
+                        "type": "card",
+                        "label": "Card",
+                        "text": "Card Details here\n1234abcd",
+                        "texthtml": "Card Details here<br />1234abcd",
+                        "id": "87654321_card_12.34"
+                    }
+                ],
+                "subtotal": 10,
+                "subtotalFormatted": "$10.00",
+                "tax": 0.2,
+                "taxFormatted": "$0.20",
+                "grandTotal": 10.2,
+                "grandTotalFormatted": "$10.20",
+                "paid": 22.34,
+                "paidFormatted": "$22.34",
+                "due": -12.14, // If negative, is the amount of change owed to the customer instead
+                "dueFormatted": "$12.14"
+            };
+        },
+        checkoutSavedMethod: async function ({customerID, paymentMethodID, amount}) {
+            // Same as checkout() except using a payment method already on file.
+            // customerID and paymentMethodID are provided by getSavedPaymentMethods below.
+            await global.apis.util.delay(1000); // Replace this with something useful!
+            var error = false;
+            if (error) {
+                // If you can't charge the payment method, throw an Error with a string to display to the user.
+                throw new Error("The saved card didn't work.");
+            }
+            global.apis.pos.addReceiptPayment(
+                new global.apis.pos.ReceiptPayment(
+                    (amount / 100).toFixed(2) * 1,
+                    "card", // Payment type.
+                    "Card on File\nx1234" // Additional text for receipt
+                )
+            );
+            // Must return true upon success.
+            // If the payment is not successful, and you didn't throw an Error to show the user,
+            // then `return false` instead and it'll appear that the user's action to start the payment did nothing.
+            return true;
+        },
+        saveCardForOfflineUse: async function ({statusCallback, customerUUID, name, company, street1, street2, city, state, zip, country, email, phone}) {
+            // Use the card reader to capture an in-person card and save it for offline use.
+            // Provided details are the customer's info, which might be empty strings except for the customerUUID.
+            // Saved card details must be tied to the customerUUID, as that's how saved cards are looked up.
+
+            // statusCallback(string, boolean) updates the progress message on the cashier's screen.
+            // If the boolean is true, the progress message is replaced with a confirmation message.
+            statusCallback("Insert the card into the reader.", false);
+
+            await global.apis.util.delay(1000); // Wait for the customer to insert their card,
+            //then save it for later offline billing
+
+            statusCallback("Saving card details...", false);
+
+            await global.apis.util.delay(1000);
+
+            statusCallback("Card saved!", true);
+
+            return true; // Card saved to customer
+            // If an error occurred, you can throw it and the error message will be displayed to the cashier.
+            // Alternatively, return boolean false and display the error yourself with global.apis.alert(message, title) or something.
+        },
+        cancelSaveCardForOfflineUse: function () {
+            // Cancel the process running in saveCardForOfflineUse() at the user/cashier's request.
+        },
+        getSavedPaymentMethods: async function ({customerUUID}) {
+            // Return all saved payment methods tied to the provided customer UUID.
+            var methods = [];
+            methods.push({
+                customer: "<internal string referencing the customer>", // Passed to checkoutSavedMethod as customerID
+                customer_uuid: customerUUID,
+                id: "<card/payment method identifier>", // Passed to checkoutSavedMethod as paymentMethodID
+                type: "card", // Payment type. Accepted values are card, ach, crypto, cash, check, account, and free.
+                label: "Visa debit x1234 (exp. 12/29)", // Label for payment method
+                label_short: "Visa debit x1234" // Abbreviated label for payment method
+            });
+            return methods;
+        },
+        deleteSavedPaymentMethod: async function ({customerUUID, customerID, paymentMethodID}) {
+            // Delete the payment method identified by paymentMethodID and tied to the PostalPoint customerUUID and the card processor customerID.
+            // If unable to delete, throw an error and the error message will be displayed to the cashier.
+            await global.apis.util.delay(1000);
+        }
+    });
+}
+
+// Plugin settings to display.
+exports.config = [
+    {
+        type: "password",
+        key: "democardprocessor_apikey",
+        defaultVal: "",
+        label: "API Key",
+        placeholder: "",
+        text: "API Key"
+    },
+    {
+        type: "button",
+        label: "Test Button",
+        text: "Some text about the button",
+        onClick: function () {
+            global.apis.ui.openSystemWebBrowser("https://postalpoint.app");
+        }
+    }
+];
+
+ + + + + + + + + + + + + + + +
+
+ + + +
+ +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/0.47/Examples/05CryptoProcessor/index.html b/0.47/Examples/05CryptoProcessor/index.html new file mode 100644 index 0000000..e696058 --- /dev/null +++ b/0.47/Examples/05CryptoProcessor/index.html @@ -0,0 +1,1466 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + Cryptocurrency Payments - PostalPoint Plugin Development + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + Skip to content + + +
+
+ +
+ + + + + + + + +
+ + +
+ +
+ + + + + + +
+
+ + + +
+
+
+ + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+ +
+ + + + + +

Cryptocurrency Payments

+

This plugin template shows how to implement a cryptocurrency payment processor, +using the customer-facing display to show a payment QR code webpage.

+

Download JavaScript

+
plugin-name/plugin.js
// This is a sample PostalPoint plugin that adds a card payment processor.
+
+exports.init = function () {
+    global.apis.pos.registerCryptoProcessor({
+        name: "Demo Crypto",
+        init: async function () {
+            // This is run after PostalPoint starts, and before any other crypto functions are called.
+        },
+        checkout: async function ( {amount}) {
+            // Run the checkout process.
+            // amount is the amount of USD to collect, in pennies.
+
+            // If an error is encountered during processing,
+            //    display an error message in a dialog and return boolean false.
+            //    If this function returns anything except false or undefined, and doesn't throw an error,
+            //    it is assumed the payment was successful.
+
+            // Adds a line of text visible to the cashier
+            global.apis.pos.addOnscreenPaymentLog("Getting crypto payment...");
+
+            // Display a web page (i.e. with a payment QR code) to the customer on the customer-facing display.
+            global.apis.ui.setCustomerScreen("<html></html>", "html");
+            global.apis.ui.setCustomerScreen("https://postalpoint.app", "raw");
+
+            // Poll the status of the crypto transaction
+            var paymentComplete = false;
+            do {
+                await global.apis.util.delay(1000);
+                paymentComplete = true;
+            } while (paymentComplete != true);
+
+            global.apis.pos.addReceiptPayment(
+                    new global.apis.pos.ReceiptPayment(
+                            (amount / 100).toFixed(2) * 1,
+                            "crypto", // Payment type.
+                            "Bitcoin\n0.00001234 BTC" // Additional text for receipt
+                            )
+                    );
+            global.apis.pos.addOnscreenPaymentLog("Payment successful!");
+            global.apis.ui.clearCustomerScreen();
+        },
+        cancelCheckout: function () {
+            // The user requested to cancel the payment.
+            // Reset things accordingly.
+            global.apis.ui.clearCustomerScreen();
+        },
+        isConfigured: function () {
+            // Is this plugin properly setup and able to process payments?  If not, return false.
+            return true;
+        }
+    });
+}
+
+// Plugin settings to display.
+exports.config = [
+    {
+        type: "password",
+        key: "democryproprocessor_apikey",
+        defaultVal: "",
+        label: "API Key",
+        placeholder: "",
+        text: "API Key"
+    },
+    {
+        type: "button",
+        label: "Test Button",
+        text: "Some text about the button",
+        onClick: function () {
+            global.apis.ui.openSystemWebBrowser("https://postalpoint.app");
+        }
+    }
+];
+
+ + + + + + + + + + + + + + + +
+
+ + + +
+ +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/0.47/Examples/basic-demo/plugin.js b/0.47/Examples/basic-demo/plugin.js new file mode 100644 index 0000000..2c9cce9 --- /dev/null +++ b/0.47/Examples/basic-demo/plugin.js @@ -0,0 +1,65 @@ +// Sample plugin to demonstrate plugin capabilities and structure. + +async function getPage() { + // A Framework7 component page + return global.apis.getPluginFolder("basic-demo") + "/uipluginpage.f7"; +} + +// This is run when PostalPoint loads the plugin at launch. +// Use it to register for things you want to do, like adding a page, hooking into payments or shipping rates, etc. +exports.init = function () { + console.log(global.apis.settings.get("basic-demo_secretcode")); + global.apis.ui.addToolsPage(getPage, "Sample Page Title", "sampletool1234", "A sample plugin page", "Sample", "fa-solid fa-circle"); +}; + +// This defines a settings UI to display for the plugin. +// If exports.config is a function instead of an array, it will be executed when opening the settings +// and must return an array like the one below. +// If exports.config is undefined, a settings menu will not be provided to the user. +exports.config = [ + { + type: "button", + label: "Test Button", + text: "Some text about the button", + onClick: function () { + global.apis.alert("Button pressed"); + } + }, + { + type: "text", + key: "app.postalpoint.basic-demo_somestring", // Try to make sure this is unique by using a prefix, + // settings storage is global so there could be conflicts if you aren't careful + defaultVal: "", + label: "Type a string", + placeholder: "", + text: "Description text next to the input box", + sync: false // Add sync: false to prevent automatically syncing this setting between + // PostalPoint installations (i.e. it's a device-specific setting, like a pairing code) + // If it's not present, or is any truthy value, it could be synced between PCs + }, + { + type: "password", + key: "app.postalpoint.basic-demo_secretcode", + defaultVal: "", + label: "Secret Code", + placeholder: "", + text: "Don't tell anyone this secret code:" + }, + { + type: "textarea", + key: "app.postalpoint.basic-demo_sometext", + defaultVal: "", + label: "Text Box", + placeholder: "...", + text: "You can type a few lines of text here." + }, + { + type: "select", + key: "app.postalpoint.basic-demo_dropdownbox", + defaultVal: "", + label: "Choose an option", + placeholder: "", + text: "", + options: [["key1", "Value 1"], ["key2", "Value 2"]] + } +]; diff --git a/0.47/Examples/basic-demo/uipluginpage.f7 b/0.47/Examples/basic-demo/uipluginpage.f7 new file mode 100644 index 0000000..f890bdd --- /dev/null +++ b/0.47/Examples/basic-demo/uipluginpage.f7 @@ -0,0 +1,56 @@ + + + + + diff --git a/0.47/Examples/crypto-processor/plugin.js b/0.47/Examples/crypto-processor/plugin.js new file mode 100644 index 0000000..06e083c --- /dev/null +++ b/0.47/Examples/crypto-processor/plugin.js @@ -0,0 +1,72 @@ +// This is a sample PostalPoint plugin that adds a card payment processor. + +exports.init = function () { + global.apis.pos.registerCryptoProcessor({ + name: "Demo Crypto", + init: async function () { + // This is run after PostalPoint starts, and before any other crypto functions are called. + }, + checkout: async function ( {amount}) { + // Run the checkout process. + // amount is the amount of USD to collect, in pennies. + + // If an error is encountered during processing, + // display an error message in a dialog and return boolean false. + // If this function returns anything except false or undefined, and doesn't throw an error, + // it is assumed the payment was successful. + + // Adds a line of text visible to the cashier + global.apis.pos.addOnscreenPaymentLog("Getting crypto payment..."); + + // Display a web page (i.e. with a payment QR code) to the customer on the customer-facing display. + global.apis.ui.setCustomerScreen("", "html"); + global.apis.ui.setCustomerScreen("https://postalpoint.app", "raw"); + + // Poll the status of the crypto transaction + var paymentComplete = false; + do { + await global.apis.util.delay(1000); + paymentComplete = true; + } while (paymentComplete != true); + + global.apis.pos.addReceiptPayment( + new global.apis.pos.ReceiptPayment( + (amount / 100).toFixed(2) * 1, + "crypto", // Payment type. + "Bitcoin\n0.00001234 BTC" // Additional text for receipt + ) + ); + global.apis.pos.addOnscreenPaymentLog("Payment successful!"); + global.apis.ui.clearCustomerScreen(); + }, + cancelCheckout: function () { + // The user requested to cancel the payment. + // Reset things accordingly. + global.apis.ui.clearCustomerScreen(); + }, + isConfigured: function () { + // Is this plugin properly setup and able to process payments? If not, return false. + return true; + } + }); +} + +// Plugin settings to display. +exports.config = [ + { + type: "password", + key: "democryproprocessor_apikey", + defaultVal: "", + label: "API Key", + placeholder: "", + text: "API Key" + }, + { + type: "button", + label: "Test Button", + text: "Some text about the button", + onClick: function () { + global.apis.ui.openSystemWebBrowser("https://postalpoint.app"); + } + } +]; diff --git a/0.47/Examples/payment-processor/plugin.js b/0.47/Examples/payment-processor/plugin.js new file mode 100644 index 0000000..a5d8451 --- /dev/null +++ b/0.47/Examples/payment-processor/plugin.js @@ -0,0 +1,244 @@ +// This is a sample PostalPoint plugin that adds a card payment processor. + +exports.init = function () { + global.apis.pos.registerCardProcessor({ + name: "Demo Card Processor", + init: async function () { + // This function runs once after starting PostalPoint + // and before any other card processor functions are called. + }, + checkout: async function({amount, capture = true}) { + // amount is an integer number of pennies. + + // If an error is encountered during processing, + // display an error message in a dialog and return boolean false. + // If this function returns anything except false or undefined, and doesn't throw an error, + // it is assumed the payment was successful. + try { + if (capture) { + // authorize, capture, add a ReceiptPayment to the receipt, and return boolean true. + global.apis.pos.addOnscreenPaymentLog("Getting card payment..."); // Add a line to the onscreen card processing status log + await global.apis.util.delay(1000); // Replace this with something useful! + global.apis.pos.addReceiptPayment( + new global.apis.pos.ReceiptPayment( + (amount / 100).toFixed(2) * 1, + "card", // Payment type. Accepted values are card, ach, crypto, cash, check, account, and free. Other types will be displayed as-is to the user and on the receipt. + "Demo Card\nCardholder Name, etc\nMore info for receipt" // Additional text for receipt + ) + ); + global.apis.pos.addOnscreenPaymentLog("Payment successful!"); + return true; + } else { + // only authorize the payment, don't actually capture/charge the payment method, + // and return whatever transaction data that will be passed to finishPayment to capture the payment. + await global.apis.util.delay(1000); // Replace this with something useful! + return {amount: amount}; + } + } catch (ex) { + global.apis.pos.addOnscreenPaymentLog(`Error: ${ex.message} [okay to put extra details here for troubleshooting or tech support, it's visible to the cashier]`); + if (global.apis.kiosk.isKiosk()) { + // This message will be shown to an end-user/customer, not a cashier/employee + global.apis.alert("Your card was declined.", "Card Error"); + } else { + global.apis.alert("The customer's card was declined.", "Card Error"); + } + return false; + } + }, + cancelCheckout: function () { + // The user requested to cancel the payment. + // Reset the terminal to its resting state, clear its screen, etc. + }, + finishPayment: async function ({checkoutResponse}) { + // Finish a payment that was authorized but not captured because checkout was called with capture = false + // If payment was already captured and added to the receipt for some reason, just return true. + await global.apis.util.delay(1000); // Replace this with something useful! + global.apis.pos.addReceiptPayment( + new global.apis.pos.ReceiptPayment( + (checkoutResponse.amount / 100).toFixed(2) * 1, + "card", // Payment type. + "Demo Card\nCardholder Name, etc\nMore info for receipt" // Additional text for receipt + ) + ); + return true; + }, + updateCartDisplay: function (receipt) { + // Show transaction data on the card reader display. + // This function will be called when the cart or total changes. + console.log(receipt); + // Sample structure of the receipt variable: + receipt = { + "items": [ + { + "id": "testitem", + "label": "Test Item", + "text": "", + "priceEach": 2, + "qty": 1, + "cost": 0, + "retail": 2, + "taxRate": 0.1, + "free": false, + "barcode": "", + "certifiedInfo": false, + "isMerch": true, + "surcharge": false + }, + { + "id": "9100123456789012345678", + "label": "Test Package", + "text": "Package Details\nTracking # 9100 1234 5678 9012 3456 78\nTo:\nTEST PERSON\nORGANIZATION INC\n123 TEST ROAD\nTESTTOWN TE 99999-0001", + "priceEach": 8, + "qty": 1, + "cost": 0, + "retail": 8, + "taxRate": 0, + "free": false, + "barcode": "9100123456789012345678", + "certifiedInfo": false, + "isMerch": false, + "surcharge": false, + "toAddress": { + "name": "TEST PERSON", + "company": "ORGANIZATION INC", + "street1": "123 TEST ROAD", + "street2": null, + "city": "TESTTOWN", + "state": "TE", + "zip": "99999-0001", + "email": null, + "phone": null, + "country": "US" + }, + "fromAddress": { + "name": "TEST PERSON", + "company": "ORGANIZATION INC", + "street1": "123 TEST ROAD", + "street2": null, + "city": "TESTTOWN", + "state": "TE", + "zip": "99999-0001", + "email": null, + "phone": null, + "country": "US" + } + } + ], + "payments": [ + { + "amount": 10, + "amountFormatted": "$10.00", + "type": "cash", + "label": "Cash", + "text": "", + "texthtml": "", + "id": "12345678_cash_10" + }, + { + "amount": 12.34, + "amountFormatted": "$12.34", + "type": "card", + "label": "Card", + "text": "Card Details here\n1234abcd", + "texthtml": "Card Details here
1234abcd", + "id": "87654321_card_12.34" + } + ], + "subtotal": 10, + "subtotalFormatted": "$10.00", + "tax": 0.2, + "taxFormatted": "$0.20", + "grandTotal": 10.2, + "grandTotalFormatted": "$10.20", + "paid": 22.34, + "paidFormatted": "$22.34", + "due": -12.14, // If negative, is the amount of change owed to the customer instead + "dueFormatted": "$12.14" + }; + }, + checkoutSavedMethod: async function ({customerID, paymentMethodID, amount}) { + // Same as checkout() except using a payment method already on file. + // customerID and paymentMethodID are provided by getSavedPaymentMethods below. + await global.apis.util.delay(1000); // Replace this with something useful! + var error = false; + if (error) { + // If you can't charge the payment method, throw an Error with a string to display to the user. + throw new Error("The saved card didn't work."); + } + global.apis.pos.addReceiptPayment( + new global.apis.pos.ReceiptPayment( + (amount / 100).toFixed(2) * 1, + "card", // Payment type. + "Card on File\nx1234" // Additional text for receipt + ) + ); + // Must return true upon success. + // If the payment is not successful, and you didn't throw an Error to show the user, + // then `return false` instead and it'll appear that the user's action to start the payment did nothing. + return true; + }, + saveCardForOfflineUse: async function ({statusCallback, customerUUID, name, company, street1, street2, city, state, zip, country, email, phone}) { + // Use the card reader to capture an in-person card and save it for offline use. + // Provided details are the customer's info, which might be empty strings except for the customerUUID. + // Saved card details must be tied to the customerUUID, as that's how saved cards are looked up. + + // statusCallback(string, boolean) updates the progress message on the cashier's screen. + // If the boolean is true, the progress message is replaced with a confirmation message. + statusCallback("Insert the card into the reader.", false); + + await global.apis.util.delay(1000); // Wait for the customer to insert their card, + //then save it for later offline billing + + statusCallback("Saving card details...", false); + + await global.apis.util.delay(1000); + + statusCallback("Card saved!", true); + + return true; // Card saved to customer + // If an error occurred, you can throw it and the error message will be displayed to the cashier. + // Alternatively, return boolean false and display the error yourself with global.apis.alert(message, title) or something. + }, + cancelSaveCardForOfflineUse: function () { + // Cancel the process running in saveCardForOfflineUse() at the user/cashier's request. + }, + getSavedPaymentMethods: async function ({customerUUID}) { + // Return all saved payment methods tied to the provided customer UUID. + var methods = []; + methods.push({ + customer: "", // Passed to checkoutSavedMethod as customerID + customer_uuid: customerUUID, + id: "", // Passed to checkoutSavedMethod as paymentMethodID + type: "card", // Payment type. Accepted values are card, ach, crypto, cash, check, account, and free. + label: "Visa debit x1234 (exp. 12/29)", // Label for payment method + label_short: "Visa debit x1234" // Abbreviated label for payment method + }); + return methods; + }, + deleteSavedPaymentMethod: async function ({customerUUID, customerID, paymentMethodID}) { + // Delete the payment method identified by paymentMethodID and tied to the PostalPoint customerUUID and the card processor customerID. + // If unable to delete, throw an error and the error message will be displayed to the cashier. + await global.apis.util.delay(1000); + } + }); +} + +// Plugin settings to display. +exports.config = [ + { + type: "password", + key: "democardprocessor_apikey", + defaultVal: "", + label: "API Key", + placeholder: "", + text: "API Key" + }, + { + type: "button", + label: "Test Button", + text: "Some text about the button", + onClick: function () { + global.apis.ui.openSystemWebBrowser("https://postalpoint.app"); + } + } +]; diff --git a/0.47/Examples/shipping/plugin.js b/0.47/Examples/shipping/plugin.js new file mode 100644 index 0000000..d58e59b --- /dev/null +++ b/0.47/Examples/shipping/plugin.js @@ -0,0 +1,82 @@ +// This is a sample PostalPoint plugin for adding support for a shipping carrier. + +var rateCache = []; +var parcelCache = {}; + +exports.init = function () { + // Add support for shipping rating and label purchasing + global.apis.shipping.registerRateEndpoint(getRates, purchase, "uniqueprefixhere_"); + + // Add support for prepaid drop-offs + global.apis.barcode.onPrepaidScan(function (barcode) { + if (barcode.startsWith("mycarrierbarcode")) { // Replace this with your checks for barcode validity + var data = new global.apis.barcode.TrackingBarcode(barcode); + data.carrier = "Carrier Name"; + data.service = "Service Name"; + return data; + } + return false; + }); +} + +async function purchase(rateid) { + for (var i = 0; i < rateCache.length; i++) { + if (rateCache[i].rateid == rateid) { + var rate = rateCache[i]; + // + // Fetch label and tracking and such + // + var label; + var tracking = "123456"; + var toAddressLines = parcelCache.toAddress.toStringArray(); + + // Create receipt item + var receiptitem = new global.apis.pos.ReceiptItem(`uniqueprefixhere_${tracking}`, + `${rate.carrierName} ${rate.serviceName}`, + `Tracking # ${global.apis.util.string.chunk(tracking, 3).join(" ")}\nTo:\n${toAddressLines.join("\n")}`, + rate.retail_rate, 1, rate.cost_rate, 0 + ); + receiptitem.barcode = tracking; + receiptitem.carrier = "Carrier Name"; + receiptitem.service = "Service Name"; + + return { + label: label, + labeltype: "PNG", + receiptItem: receiptitem, + tracking: tracking, + cost: rate.cost_rate, + price: rate.retail_rate, + carrier: rate.carrierName, + service: rate.serviceName, + delivery_days: rate.delivery_days, + delivery_date: rate.delivery_date, + to: toAddressLines + }; + } + } +} + +async function getRates(parcel) { + // parcel is an object as shown in docs/Parcel.md + var rates = []; + rates.push({ + rateid: "uniqueprefixhere_" + global.apis.util.uuid.v4(), + carrier: "Carrier", + carrierName: "Carrier Name", + service: "CARRIER_SERVICE_ID", + cost_rate: 10, + retail_rate: 15, + delivery_days: 3, + delivery_date: null, + guaranteed: true, + serviceName: "Service Name", + color: "green" // Rate card color + }); + + // Save details for later use if purchased + rateCache = rates; + parcelCache = parcel; + + return rates; +} diff --git a/0.47/Plugin API/barcode/index.html b/0.47/Plugin API/barcode/index.html new file mode 100644 index 0000000..35021e6 --- /dev/null +++ b/0.47/Plugin API/barcode/index.html @@ -0,0 +1,1774 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + Barcode - PostalPoint Plugin Development + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + Skip to content + + +
+
+ +
+ + + + + + + + +
+ + +
+ +
+ + + + + + +
+
+ + + +
+
+
+ + + + + +
+
+
+ + + + + + + +
+ +
+ + + + + +

Barcode

+ +

+

barcode : object

+

Handle tracking barcodes

+

Kind: global namespace

+ +

+

barcode.TrackingBarcode

+

Kind: static class of barcode
+Properties

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
trackingstringTracking number
barcodestringOriginal barcode data this was created from
toZipstringDestination ZIP Code, for domestic shipments. The city and state are automatically added. If toAddress is specified, toZip is ignored in favor of it.
toCountrystringTwo-letter destination country code. If it doesn't match the country PostalPoint is running in, the full country name is appended to the displayed address information.
toAddressstringDestination mailing/shipping address.
carrierstringShipping carrier name.
servicestringShipping service/mail class name. Example: "Priority Mail".
dropoffbooleanIf set to false, the barcode will be rejected with a suitable message when PostalPoint is running in self-serve kiosk mode.
confidentCarrierbooleanIf false, PostalPoint may prompt user to specify the shipping carrier.
extraInfoArray.<string>Extra description strings, like "Signature Required".
messagestringIf not empty, the barcode will NOT be added and the contents of message will be displayed to the user.
warningstringIf not empty, the barcode WILL be added and the contents of warning will be displayed to the user.
destStringstring(read only) Get the destination information as a human-presentable multiline string.
serviceStringstring(read only) Get the carrier and service.
toString()functionGet the package information in a format suitable for display on a receipt.
toString(false)functionGet the package information in a format suitable for display on a receipt, suppressing the tracking number.
+

+

new TrackingBarcode(code)

+

A Tracking barcode object.

+ + + + + + + + + + + + + + + +
ParamTypeDescription
codestringBarcode data
+

+

barcode.addPrepaidBarcode(trackingBarcodeData)

+

Add a TrackingBarcode object to the transaction receipt at any time other than onPrepaidScan.

+

Kind: static method of barcode

+ + + + + + + + + + + + + +
ParamType
trackingBarcodeDataTrackingBarcode
+

+

barcode.inject(barcodeData)

+

Pass data to the internal barcode event subsystem. The data is handled as if it +were just received from a physical barcode scanner.

+

Kind: static method of barcode

+ + + + + + + + + + + + + +
ParamType
barcodeDatastring
+

+

barcode.onPrepaidScan(f)

+

The function passed to onPrepaidScan is run when a barcode is scanned on the Prepaid page. +The function is passed one argument, a string containing the raw barcode data. +The function shall return boolean false if unable or unwilling to handle the barcode. +If the barcode is handled by this function, it shall return a TrackingBarcode object.

+

Kind: static method of barcode

+ + + + + + + + + + + + + +
ParamType
ffunction
+ + + + + + + + + + + + + + + +
+
+ + + +
+ +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/0.47/Plugin API/database/index.html b/0.47/Plugin API/database/index.html new file mode 100644 index 0000000..365f8e7 --- /dev/null +++ b/0.47/Plugin API/database/index.html @@ -0,0 +1,1494 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + Database - PostalPoint Plugin Development + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + Skip to content + + +
+
+ +
+ + + + + + + + +
+ + +
+ +
+ + + + + + +
+
+ + + +
+
+
+ + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+ +
+ + + + + +

Database

+ +

+

database : object

+

Database connection

+

Kind: global namespace
+

+

database.getConnection() ⇒ Promise.<DatabaseAdapter>

+

Return a database connection object to run SQL against the store database. See the Database docs for details.

+

Kind: static method of database

+ + + + + + + + + + + + + + + +
+
+ + + +
+ +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/0.47/Plugin API/fs/index.html b/0.47/Plugin API/fs/index.html new file mode 100644 index 0000000..8d1ed2b --- /dev/null +++ b/0.47/Plugin API/fs/index.html @@ -0,0 +1,1745 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + Fs - PostalPoint Plugin Development + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + Skip to content + + +
+
+ +
+ + + + + + + + +
+ + +
+ +
+ + + + + + +
+
+ + + +
+
+
+ + + + + +
+
+
+ + + + + + + +
+ +
+ + + + + +

Fs

+ +

+

fs : object

+

Basic filesystem access utility functions, wrapping Node.JS and/or NW.JS code.

+

Kind: global namespace

+ +

+

fs.openFileSaveDialog(suggestedFilename, fileExtensions) ⇒ Promise.<(string|null)>

+

Open a file save as dialog prompting the user to save a file. +Opens to the user's Documents folder, with sane fallbacks if it cannot be located.

+

Kind: static method of fs
+Returns: Promise.<(string|null)> - The full file path the user selected, or null if they cancelled.

+ + + + + + + + + + + + + + + + + + + + +
ParamTypeDescription
suggestedFilenamestringThe filename string to pre-fill in the dialog.
fileExtensionsstringThe file type filter to show. Examples: ".csv", ".csv,.html"
+

+

fs.openFileBrowseDialog(chooseFolder, accept, dialogTitle) ⇒ string | null

+

Open a file browse/file open dialog prompting the user to select a file or folder. +Opens to the user's Documents folder, with sane fallbacks if it cannot be located.

+

Kind: static method of fs
+Returns: string | null - The selected file/folder path, or null if cancelled.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ParamTypeDefaultDescription
chooseFolderbooleanfalseSet to true to choose a folder instead of a file.
acceptstringFile filter. ".csv,.html", "image/*", etc.
dialogTitlestring | nullnullTitle of the file open dialog.
+

+

fs.writeFile(filename, data, encoding, flag) ⇒ Promise

+

Write a file to disk.

+

Kind: static method of fs

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ParamTypeDefaultDescription
filenamestringThe path and filename to write to.
datastring | Buffer | ArrayBuffer | Uint8ArrayData to write to the file.
encodingstring | null"utf8"Text encoding. Set to empty if not passing string data.
flagstring | null"w+"Filesystem flag.
+

+

fs.readFile(filename, encoding, flag) ⇒ Promise.<(string|Buffer)>

+

Read a file from disk and return its contents.

+

Kind: static method of fs

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ParamTypeDefaultDescription
filenamestringThe path and filename to read from.
encodingstring"utf8"File encoding. Set to null or empty string when reading binary data.
flagstring"r+"Filesystem flag.
+

+

fs.fileExists(filename) ⇒ boolean

+

Check if a file exists.

+

Kind: static method of fs

+ + + + + + + + + + + + + + + +
ParamTypeDescription
filenamestringPath and filename to check.
+ + + + + + + + + + + + + + + +
+
+ + + +
+ +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/0.47/Plugin API/global functions/index.html b/0.47/Plugin API/global functions/index.html new file mode 100644 index 0000000..9f81ecb --- /dev/null +++ b/0.47/Plugin API/global functions/index.html @@ -0,0 +1,1582 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + Global functions - PostalPoint Plugin Development + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + Skip to content + + +
+
+ +
+ + + + + + + + +
+ + +
+ +
+ + + + + + +
+
+ + + +
+
+
+ + + + + +
+
+
+ + + +
+ +
+ + + +
+ +
+ + + + + +

Global functions

+ +

+

f7

+

The Framework7 app instance for PostalPoint's entire UI, created by new Framework7(). +See https://framework7.io/docs/app for details.

+

Kind: global constant
+

+

getPluginFolder([id]) ⇒ string

+

Get the filesystem path to a plugin's installation folder.

+

Kind: global function
+Returns: string - "/home/user/.config/postalpoint-retail/Default/storage/plugins/...", "C:\Users\user\AppData...", etc

+ + + + + + + + + + + + + + + +
ParamTypeDescription
[id]stringPlugin ID. If omitted or empty, will return the parent folder plugins are installed within.
+

+

getAppFolder() ⇒ string

+

Get the filesystem path to the PostalPoint installation folder.

+

Kind: global function
+

+

alert(text, title, [callback])

+

Display a simple alert-style dialog box.

+

Kind: global function

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ParamTypeDefaultDescription
textstringBody text of the dialog.
titlestringDialog title.
[callback]functionFunction to call when the alert is closed.
+ + + + + + + + + + + + + + + +
+
+ + + +
+ +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/0.47/Plugin API/graphics/index.html b/0.47/Plugin API/graphics/index.html new file mode 100644 index 0000000..7416d4e --- /dev/null +++ b/0.47/Plugin API/graphics/index.html @@ -0,0 +1,1545 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + Graphics - PostalPoint Plugin Development + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + Skip to content + + +
+
+ +
+ + + + + + + + +
+ + +
+ +
+ + + + + + +
+
+ + + +
+
+
+ + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+ +
+ + + + + +

Graphics

+ +

+

graphics : object

+

PostalPoint uses the Jimp library version 1.6 for creating and manipulating images and shipping labels.

+

Kind: global namespace

+ +

+

graphics.Jimp() ⇒ Jimp

+

The JavaScript Image Manipulation Program.

+

Kind: static method of graphics
+Example
+

const {Jimp} = global.apis.graphics.Jimp();
+
+

+

graphics.loadFont(filename) ⇒ Promise

+

Replacement for Jimp's loadFont function, +which gets very confused about our JS environment and ends up crashing everything.

+

Kind: static method of graphics

+ + + + + + + + + + + + + +
ParamType
filenamestring
+ + + + + + + + + + + + + + + +
+
+ + + +
+ +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/0.47/Plugin API/i18n/index.html b/0.47/Plugin API/i18n/index.html new file mode 100644 index 0000000..fa93241 --- /dev/null +++ b/0.47/Plugin API/i18n/index.html @@ -0,0 +1,1814 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + I18n - PostalPoint Plugin Development + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + Skip to content + + +
+
+ +
+ + + + + + + + +
+ + +
+ +
+ + + + + + +
+
+ + + +
+
+
+ + + + + +
+
+
+ + + + + + + +
+ +
+ + + + + +

I18n

+ +

+

i18n : object

+

Functions to help support multiple currencies and countries.

+

Kind: global namespace

+ +

+

i18n.country() ⇒ string

+

Get the 2-character ISO country code that PostalPoint is running in.

+

Kind: static method of i18n
+Returns: string - "US", "CA", etc.
+

+

i18n.currency() ⇒ string

+

Get the 3-character currency code in use.

+

Kind: static method of i18n
+Returns: string - "usd", "cad", etc.
+

+

i18n.symbol() ⇒ string

+

Get the currency symbol.

+

Kind: static method of i18n
+Returns: string - "$", "€", "₤", etc
+

+

i18n.decimals() ⇒ number

+

Get the number of decimal places for the currency: for example, USD has 2 ($x.00), KRW has 0 (x), UYW has 4 (x.0000).

+

Kind: static method of i18n
+Returns: number - 0, 2, 3, or 4
+

+

i18n.convertCurrency(amount, fromCurrency, [toCurrency]) ⇒ Promise.<number>

+

Convert an amount of money to a different currency. Conversion rate is retrieved from the internet and cached for 4 hours.

+

Kind: static method of i18n

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ParamTypeDefaultDescription
amountnumberAmount of money in the "wrong" currency
fromCurrencystringThe currency code for the "wrong" currency that needs conversion
[toCurrency]string"getCurrencyCode()"The "correct" currency we want the amount to be in.
+

+

i18n.moneyToFixed(amount) ⇒ string

+

Returns the amount as a string formatted with the correct number of decimal places for the currency in use.

+

Kind: static method of i18n
+Returns: string - "1.23", "1.2345", etc

+ + + + + + + + + + + + + +
ParamType
amountnumber
+

+

i18n.moneyString(amount) ⇒ string

+

Returns the amount as a string, with the correct decimal places, and the local currency symbol.

+

Kind: static method of i18n
+Returns: string - "$1.23", etc

+ + + + + + + + + + + + + +
ParamType
amountnumber
+

+

i18n.currencyMinorToMajor(amount) ⇒ number

+

Convert an amount in cents to dollars (or the local equivalent currency units).

+

Kind: static method of i18n
+Returns: number - Dollars, etc

+ + + + + + + + + + + + + + + +
ParamTypeDescription
amountnumberCents, etc
+

+

i18n.currencyMajorToMinor(amount) ⇒ number

+

Convert an amount in dollars to cents (or the local equivalent currency units).

+

Kind: static method of i18n
+Returns: number - Cents, etc

+ + + + + + + + + + + + + + + +
ParamTypeDescription
amountnumberDollars, etc
+ + + + + + + + + + + + + + + +
+
+ + + +
+ +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/0.47/Plugin API/kiosk/index.html b/0.47/Plugin API/kiosk/index.html new file mode 100644 index 0000000..95dfe36 --- /dev/null +++ b/0.47/Plugin API/kiosk/index.html @@ -0,0 +1,1495 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + Kiosk - PostalPoint Plugin Development + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + Skip to content + + +
+
+ +
+ + + + + + + + +
+ + +
+ +
+ + + + + + +
+
+ + + +
+
+
+ + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+ +
+ + + + + +

Kiosk

+ +

+

kiosk : object

+

Self-serve kiosk mode

+

Kind: global namespace
+

+

kiosk.isKiosk() ⇒ boolean

+

Check if PostalPoint is running in kiosk mode.

+

Kind: static method of kiosk
+Returns: boolean - - True if system is in kiosk mode, else false.

+ + + + + + + + + + + + + + + +
+
+ + + +
+ +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/0.47/Plugin API/mailboxes/index.html b/0.47/Plugin API/mailboxes/index.html new file mode 100644 index 0000000..f9aeb38 --- /dev/null +++ b/0.47/Plugin API/mailboxes/index.html @@ -0,0 +1,2257 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + Mailboxes - PostalPoint Plugin Development + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + Skip to content + + +
+
+ +
+ + + + + + + + +
+ + +
+ +
+ + + + + + +
+
+ + + +
+
+
+ + + + + +
+
+
+ + + + + + + +
+ +
+ + + + + +

Mailboxes

+ +

+

mailboxes : object

+

Add, modify, and delete mailboxes and mailbox customers.

+

Kind: global namespace

+ +

+

mailboxes.FormPS1583

+

Kind: static class of mailboxes
+

+

new FormPS1583()

+

USPS Form PS1583 object, with all the fields needed by USPS for CMRA customers.

+

+

mailboxes.getList(filter) ⇒ Promise.<Array>

+

Get the list of mailboxes and boxholders as an array of objects, see example.

+

Kind: static method of mailboxes

+ + + + + + + + + + + + + + + + + +
ParamTypeDefaultDescription
filternull | objectFilter to mailboxes matching a column condition, such as getList({number: "102"}) or getList({"size >=": "2"}). Supported filter names include "number" (string, box number), "expires" (expiration date), "size" (number 1-10), and "barcode" (string) SQL injection warning: Filter names are inserted directly into query strings without sanitization. Only the values are safe for user input.
+

Example
+

[{
+    num: "123", // Box number as string
+    expires: 1234567890, // UNIX timestamp (in seconds) or false if box vacant
+    size: "2", // Box size, 1-10
+    notes: "", // Notes for mailbox, not currently shown in Mailbox Manager UI but may be used in the future
+    barcode: "", // Unique barcode for the mailbox, for future use
+    renewalMerchID: "", // Merchandise item ID used for autorenewing this mailbox
+    isBusiness: false, // True if the box is for a business, false if for personal use
+    names: [], // Array of boxholders. See addOrUpdateBoxholder for the format.
+    packages: [], // Array of packages awaiting pickup, see below
+    vacant: false // True if the box is currently vacant, else false
+}]
+
+Example
+
// Data objects in the packages array:
+{
+    tracking: tracking ?? "[Untracked]", // Package tracking number
+    finalized: true, // True if package check-in is finished and shelf tag/mailbox slips printed, false if not finalized
+    available_date: Date(), // The date and time the package was checked in
+    tag: "" // Unique number assigned to the package and printed on shelf tags, scanned by employee when customer picks up package
+}
+
+

+

mailboxes.addDaysToMailbox(boxNumber, days, months) ⇒ Promise

+

Add a number of days or months to a mailbox's expiration. Use either days or months, not both.

+

Kind: static method of mailboxes

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ParamTypeDefaultDescription
boxNumberstringMailbox number.
daysnumber0Days to add.
monthsnumber0Months to add.
+

+

mailboxes.setMailboxExpirationDate(boxNumber, date) ⇒ Promise

+

Set the box expiration to a specific JavaScript Date object, or a UNIX timestamp (in seconds).

+

Kind: static method of mailboxes

+ + + + + + + + + + + + + + + + + +
ParamType
boxNumberstring
datenumber | Date
+

+

mailboxes.createMailbox(number, size, notes, barcode) ⇒ Promise

+

Create a new mailbox number with the specified box size. Throws an error if the box number is already in use.

+

Kind: static method of mailboxes

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ParamTypeDescription
numberstringMailbox number
sizenumberBox size (1 - 10)
notesstringArbitrary string with human-readable notes about the box.
barcodenull | stringA barcode value representing this mailbox, typically a sticker on the the physical box visible when delivering mail.
+

+

mailboxes.editMailbox(oldNumber, newNumber, newSize, barcode) ⇒ Promise

+

Change the number and/or size of a mailbox while preserving the boxholders +and packages associated. If only changing size, set oldNumber and newNumber to the same value.

+

Kind: static method of mailboxes

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ParamTypeDefaultDescription
oldNumberstringCurrently assigned box number.
newNumberstringNew box number. Must not exist yet.
newSizenumber | nullBox size (1 - 10), if changing the size.
barcodenull | stringA barcode value representing this mailbox, typically a sticker on the the physical box visible when delivering mail.
+

+

mailboxes.deleteMailbox(number) ⇒ Promise

+

Delete a mailbox. Throws an Error if the mailbox has boxholders attached.

+

Kind: static method of mailboxes

+ + + + + + + + + + + + + + + +
ParamTypeDescription
numberstringMailbox number to delete.
+

+

mailboxes.closeMailbox(number) ⇒ Promise

+

Close a mailbox by removing the boxholders and marking it as vacant. +Boxholder PS Form 1583 records are automatically archived per USPS regulations.

+

Kind: static method of mailboxes

+ + + + + + + + + + + + + + + +
ParamTypeDescription
numberstringMailbox number to close.
+

+

mailboxes.mailboxExists(number) ⇒ Promise.<boolean>

+

Returns true if the mailbox number exists, false if it doesn't.

+

Kind: static method of mailboxes

+ + + + + + + + + + + + + + + +
ParamTypeDescription
numberstringMailbox number to check.
+

+

mailboxes.addOrUpdateBoxholder(boxNumber, info) ⇒ Promise

+

Modify or add a boxholder to a mailbox. info is the boxholder structure below. +If the uuid given already belongs to a boxholder, their info is updated with what you supply. +Otherwise, the info is added as a new boxholder.

+

Kind: static method of mailboxes

+ + + + + + + + + + + + + + + + + + + + +
ParamTypeDescription
boxNumberstringMailbox number
infoObjectBoxholder information.
+

Example
+

// Unless noted, all fields are strings and default to an empty string.
+{
+    name: [bizname, fname, mname, lname].filter(Boolean).join(" "),
+    fname: "", // First name
+    mname: "", // Middle name
+    lname: "", // Last name
+    email: "", // Email
+    phone: "", // Phone
+    uuid: "", // Customer UUID
+    bizname: "", // Business name
+    street1: "", // Street address
+    city: "", // City
+    state: "", // Two-character state
+    zipcode: "", // ZIP or postal code
+    country: "", // Two-character country code
+    primary: true // True if the primary (first) boxholder, false if an additional authorized mail recipient
+}
+
+

+

mailboxes.removeBoxholder(boxNumber, uuid) ⇒ Promise

+

Remove a boxholder by their UUID, and archive their PS Form 1583 data per USPS regulations.

+

Kind: static method of mailboxes

+ + + + + + + + + + + + + + + + + + + + +
ParamTypeDescription
boxNumberstringMailbox number.
uuidstringBoxholder UUID.
+

+

mailboxes.get1583(boxNumber, uuid, archiveNumber) ⇒ Promise.<FormPS1583>

+

Get the FormPS1583 object for a boxholder by UUID.

+

Kind: static method of mailboxes

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ParamTypeDefaultDescription
boxNumberstringMailbox number.
uuidstringBoxholder UUID.
archiveNumberbooleanfalseIf true, returns the form for a deleted boxholder from the archive.
+

+

mailboxes.set1583(boxNumber, uuid, formps1583) ⇒ Promise

+

Set the FormPS1583 object for a boxholder by UUID.

+

Kind: static method of mailboxes

+ + + + + + + + + + + + + + + + + + + + + + + + + +
ParamTypeDescription
boxNumberstringMailbox number.
uuidstringBoxholder UUID.
formps1583FormPS1583The FormPS1583 object to use.
+

+

mailboxes.boxNumberValid() ⇒ boolean

+

Returns true if the mailbox number is an acceptable format, false if it isn't. +Does not check if the box actually exists, merely if the number is acceptable to use as a mailbox number.

+

Kind: static method of mailboxes
+

+

mailboxes.getMailboxProducts() ⇒ Promise.<Array>

+

Get a list of merchandise items that are usable for mailbox renewals.

+

Kind: static method of mailboxes
+Example
+

[{
+    id: "", // Unique ID for this entry in the merchandise table
+    name: "", // Merch item name
+    category: "", // Merch item category
+    price: 0.0, // Sale price in dollars
+    cost: 0.0, // Merchandise cost in dollars (likely not used for mailboxes)
+    barcode: "", // Barcode/UPC (likely not used for mailboxes)
+    tax: 0.0, // Sales tax rate
+    rentaldays: 30, // Number of days this item adds to a mailbox (mutually exclusive with rentalmonths)
+    rentalmonths: 1, // Number of months (mutually exclusive with rentaldays)
+    boxsize: "1" // Mailbox size tier, 1-10
+}]
+

+ + + + + + + + + + + + + + + +
+
+ + + +
+ +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/0.47/Plugin API/pos/index.html b/0.47/Plugin API/pos/index.html new file mode 100644 index 0000000..286c5e4 --- /dev/null +++ b/0.47/Plugin API/pos/index.html @@ -0,0 +1,2356 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + Pos - PostalPoint Plugin Development + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + Skip to content + + +
+
+ +
+ + + + + + + + +
+ + +
+ +
+ + + + + + +
+
+ + + +
+
+
+ + + + + +
+
+
+ + + + + + + +
+ +
+ + + + + +

Pos

+ +

+

pos : object

+

Point of Sale, transaction, and payment-related functionality.

+

Kind: global namespace

+ +

+

pos.ReceiptItem

+

Kind: static class of pos
+Properties

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDefaultDescription
merchbooleanfalseTrue if merchandise, false if shipping.
barcodestringItem barcode, or tracking number if merch = false.
qtynumber1Item quantity.
retailPricenumberThe calculated retail/markup price for a shipment, regardless of actual sale price. If unset, defaults to priceEach * qty.
taxRatenumber0Tax rate
toAddressAddressShipping destination address.
fromAddressAddressShipping return address.
carrierstringShipping carrier.
servicestringShipping service.
categorystringMerchandise/item category.
electronicReturnReceiptbooleanfalseIf true, the customer's receipt will have instructions on retrieveing the return receipt from USPS.
mailboxDaysnumber0Number of days this item adds to a mailbox's expiration date.
mailboxMonthsnumber0Number of months this item adds to a mailbox's expiration date.
mailboxNumberstringMailbox number to apply mailboxDays or mailboxMonths to after checkout.
setCertifiedInfo()functionSet Certified Mail receipt data. setCertifiedInfo(trackingNumber, certfee, extrafees, postage, date, location, toaddress)
toJSON()functionGet the item as an object suitable for JSON encoding.
fromJSON(json)static_functionReturns a ReceiptItem created from the object returned by item.toJSON().
+

+

new ReceiptItem(id, label, text, priceEach, quantity, cost, taxrate, taxableAmount)

+

A class representing a sale item in the current transaction.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ParamTypeDefaultDescription
idstringUnique ID number for this item (UPC code, inventory number, etc). Used to deduplicate and merge line items on the receipt. Unique items (like shipping labels) should be a unique/random ID.
labelstringOne-line item information.
textstringExtra multi-line item information.
priceEachnumberSale price per unit.
quantitynumberNumber of units.
costnumberCost per unit. Used for automatic expense tracking.
taxratenumber0.0Examples: 0 (for 0%), 0.05 (for 5%), etc
taxableAmountstringThe part of the sale price that's taxable. "" for default (all), "markup" for only taxing profit.
+

+

pos.ReceiptPayment

+

Kind: static class of pos
+Properties

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
labelstring(readonly) The human-readable string of the payment type.
idstringAutomatically-generated unique ID for this payment.
toJSON()functionGet the payment as an object suitable for JSON encoding.
fromJSON(json)static_functionReturns a ReceiptPayment created from the object returned by payment.toJSON().
+

+

new ReceiptPayment(amount, type, text)

+

A class representing a payment entry for the current transaction.

+ + + + + + + + + + + + + + + + + + + + + + + + + +
ParamTypeDescription
amountnumberamount paid
typestringpayment type
textstringextra data (credit card info, etc)
+

+

pos.addReceiptItem(item)

+

Add an item (shipment, merchandise, etc) to the current transaction.

+

Kind: static method of pos

+ + + + + + + + + + + + + +
ParamType
itemReceiptItem
+

+

pos.addReceiptPayment(payment)

+

Add a payment to the current transaction/receipt.

+

Kind: static method of pos

+ + + + + + + + + + + + + +
ParamType
paymentReceiptPayment
+

+

pos.addOnscreenPaymentLog(msg)

+

Append a line of text to the onscreen log displayed during credit card processing. +Not shown in kiosk mode.

+

Kind: static method of pos

+ + + + + + + + + + + + + + + +
ParamTypeDescription
msgstringLine of text to add to the log.
+

+

pos.getReceiptID() ⇒ string

+

Get the unique alphanumeric ID for the current transaction/receipt. +This is the same code printed on receipts and used in digital receipt URLs.

+

Kind: static method of pos
+

+

pos.onReceiptChange(f)

+

Specify a function to be called whenever the transaction data/receipt is changed. +It is passed a single argument, a Receipt object containing the entire transaction so far.

+

Kind: static method of pos

+ + + + + + + + + + + + + +
ParamType
ffunction
+

+

~~pos.onTransactionFinished(f)~~

+

Deprecated

+

The supplied function will be called when a transaction is finished. +It is passed a single argument, a Receipt object containing the entire transaction. +Recommended to listen for the transactionFinished event instead.

+

Kind: static method of pos

+ + + + + + + + + + + + + +
ParamType
ffunction
+

+

pos.registerCardProcessor(f)

+

Register as a card payment processor.

+

Kind: static method of pos

+ + + + + + + + + + + + + + + +
ParamTypeDescription
fObjectPayment processor functions
+

Example
+

global.apis.pos.registerCardProcessor({
+    name: "Demo Card Processor", // Shown in PostalPoint settings menu
+    init: async function () {
+        // This will run after PostalPoint launches
+        // and before any payments are processed.
+        // In some situations it might run multiple times in a session.
+    },
+    checkout: async function ({amount, capture = true}) {
+        // Charge a credit card using a card reader device.
+        // amount is in pennies (or the equivalent base unit in the local currency).
+
+        // Add a payment to the receipt with the total amount paid, card details, etc.
+        global.apis.pos.addReceiptPayment(
+            new global.apis.pos.ReceiptPayment(
+                global.apis.i18n.currencyMinorToMajor(amount),
+                "card", // Payment type. Accepted values are card, ach, crypto, cash,
+                // check, account, and free.  Other types will be displayed as-is.
+                "Demo Card\nCardholder Name, etc\nMore info for receipt" // Additional text for receipt
+            )
+        );
+
+
+        // Must return boolean false if the payment failed.
+        // Otherwise it will be assumed it succeeded.
+        // If an error is encountered, handle it and return false.
+        // It's recommended to display a short "payment failed" error
+        // message via global.apis.alert, and outputting more details
+        // via global.apis.pos.addOnscreenPaymentLog.
+
+        // If capture is false, perform an authorization but don't capture,
+        // and return a value you can use to identify the authorization later
+        // and complete it.  The value will be passed back to finishPayment, below.
+        // This is used mainly for the self-serve kiosk mode, in case the label fails
+        // to be purchased/generated by the carrier.
+    },
+    cancelCheckout: function () {
+        // The user has requested the card transaction be canceled before it completes.
+        // Reset the terminal to its resting state, clear its screen, etc.
+    },
+    finishPayment: async function ({checkoutResponse}) {
+        // Finish a payment that was authorized but not captured
+        // because checkout() was called with capture = false.
+        // If payment was already captured and added
+        // to the receipt, just return true.
+        global.apis.pos.addReceiptPayment(
+            new global.apis.pos.ReceiptPayment(
+                global.apis.i18n.currencyMinorToMajor(amount),
+                "card",
+                "Demo Card\nCardholder Name, etc\nMore info for receipt"
+            )
+        );
+    },
+    updateCartDisplay: function (receipt) {
+        // Show transaction data on the card reader display.
+        // This function is called when the "cart" or total changes.
+        // `receipt` is a receipt object, see docs for details.
+    },
+    checkoutSavedMethod: async function ({customerID, paymentMethodID, amount}) {
+        // Same as checkout() except using a payment method already on file.
+        // customerID and paymentMethodID are provided by getSavedPaymentMethods below.
+
+        // Must return true upon success.
+        // If the payment is not successful, and you didn't throw an Error to show the user,
+        // then `return false` instead and it'll appear that the user's action to start the payment did nothing.
+        return true;
+    },
+    saveCardForOfflineUse: async function ({statusCallback, customerUUID, name,
+             company, street1, street2, city, state, zip, country, email, phone}) {
+        // Use the card reader to capture an in-person card and save it for offline use.
+        // Provided details are the customer's info, which might be empty strings except for the customerUUID.
+        // Saved card details must be tied to the customerUUID, as that's how saved cards are looked up.
+
+        // statusCallback(string, boolean) updates the progress message on the cashier's screen.
+        // If the boolean is true, the progress message is replaced with a confirmation message.
+        statusCallback("Saving card details...", false);
+
+        return true; // Card saved to customer
+        // If an error occurred, you can throw it and the error
+        // message will be displayed to the cashier.
+        // Alternatively, return boolean false and display the error
+        // yourself with global.apis.alert(message, title) or something.
+    },
+    cancelSaveCardForOfflineUse: function () {
+        // Cancel the process running in saveCardForOfflineUse() at the user/cashier's request.
+    },
+    getSavedPaymentMethods: async function ({customerUUID}) {
+        // Return all saved payment methods tied to the provided customer UUID.
+        return [{
+            customer: "<internal string referencing the customer>", // Passed to checkoutSavedMethod as customerID
+            customer_uuid: customerUUID,
+            id: "<card/payment method identifier>", // Passed to checkoutSavedMethod as paymentMethodID
+            type: "card", // Payment type. Accepted values are card, ach, crypto, cash, check, account, and free.
+            label: "Visa debit x1234 (exp. 12/29)", // Label for payment method
+            label_short: "Visa debit x1234" // Abbreviated label for payment method
+        }];
+    },
+    deleteSavedPaymentMethod: async function ({customerUUID, customerID, paymentMethodID}) {
+        // Delete the payment method identified by paymentMethodID
+        // and tied to the PostalPoint customerUUID and the card processor customerID.
+        // If unable to delete, throw an error and the error message
+        // will be displayed to the cashier.
+    }
+});
+
+

+

pos.registerCryptoProcessor(f)

+

Register as a cryptocurrency payment processor.

+

Kind: static method of pos

+ + + + + + + + + + + + + + + +
ParamTypeDescription
fObjectPayment processor functions
+

Example
+

global.apis.pos.registerCryptoProcessor({
+    name: "Demo Crypto", // Shown in PostalPoint settings menu
+    init: async function () {
+        // This is run after PostalPoint starts,
+        // and before any other crypto functions are called.
+    },
+    checkout: async function ({amount}) {
+        // Run the checkout process.
+        // amount is the amount of fiat currency to collect,
+        // in pennies (or the local equivalent).
+
+        // If an error is encountered during processing,
+        //    display an error message in a dialog and return boolean false.
+        //    If this function returns anything except false or undefined,
+        //    and doesn't throw an error,
+        //    it is assumed the payment was successful.
+
+        // Adds a line of text visible to the cashier
+        global.apis.pos.addOnscreenPaymentLog("Getting crypto payment...");
+
+        // Display a web page (i.e. with a payment QR code)
+        // to the customer on the customer-facing display.
+        global.apis.ui.setCustomerScreen("<html></html>", "html");
+        global.apis.ui.setCustomerScreen("https://postalpoint.app", "raw");
+
+        // Poll the status of the crypto transaction
+        var paymentComplete = false;
+        do {
+            await global.apis.util.delay(1000);
+            paymentComplete = true;
+        } while (paymentComplete != true);
+
+        global.apis.pos.addReceiptPayment(
+                new global.apis.pos.ReceiptPayment(
+                        global.apis.i18n.currencyMinorToMajor(amount),
+                        "crypto", // Payment type.
+                        "Bitcoin\n0.00001234 BTC" // Additional text for receipt
+                        )
+                );
+        global.apis.pos.addOnscreenPaymentLog("Payment successful!");
+        global.apis.ui.clearCustomerScreen();
+    },
+    cancelCheckout: function () {
+        // The user requested to cancel the payment.
+        // Reset things accordingly.
+        global.apis.ui.clearCustomerScreen();
+    },
+    isConfigured: function () {
+        // Is this plugin properly setup
+        // and able to process payments?
+        // If not, return false.
+        // This determines if the crypto payment method button will be shown.
+        return true;
+    }
+});
+
+

+

pos.getShippingSalesTax() ⇒ Object

+

Get the sales tax percentage to charge on a shipping service ReceiptItem.

+

Kind: static method of pos
+Returns: Object - {type: "", percent: 0.15} +type is an empty string for taxing the entire price, or "markup" for only adding tax to the markup amount. +percent is the tax percentage. A value of 0.15 means a 15% tax.

+ + + + + + + + + + + + + + + +
+
+ + + +
+ +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/0.47/Plugin API/print/index.html b/0.47/Plugin API/print/index.html new file mode 100644 index 0000000..c055ee8 --- /dev/null +++ b/0.47/Plugin API/print/index.html @@ -0,0 +1,1644 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + Print - PostalPoint Plugin Development + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + Skip to content + + +
+
+ +
+ + + + + + + + +
+ + +
+ +
+ + + + + + +
+
+ + + +
+
+
+ + + + + +
+
+
+ + + + + + + +
+ +
+ + + + + +

Print

+ +

+ +

Printing to connected printers

+

Kind: global namespace

+ +

+

print.printLabelImage(image)

+

Print a 300 DPI image on the shipping label printer, centered on a 4x6 inch label. Image is automatically scaled to 200 DPI if required by the printer.

+

Kind: static method of print

+ + + + + + + + + + + + + + + +
ParamTypeDescription
imageArrayBuffer | Buffer | Uint8Array | string | Jimpimage data, as a Jimp image object, raw PNG bytes, or a URL (http/https) string. 1200x1800 or 800x1200 images are scaled to 4x6 inches. Other image sizes are assumed to be 300 DPI and are centered on the shipping label. Image orientation is rotated to match the label orientation.
+

+

print.getReceiptPrinter() ⇒ Promise.<Object>

+

Get the receipt printer interface. See the ReceiptPrinter docs for available functions.

+

Kind: static method of print
+

+

print.printReceiptData(data)

+

Send raw data (generated by the printer interface) to the receipt printer.

+

Kind: static method of print

+ + + + + + + + + + + + + + + +
ParamTypeDescription
datastring | Uint8Array | Array.<string> | Array.<Uint8Array>Data to send to printer.
+

+

print.imageToBitmap(jimpImage, [dpiFrom], [dpiTo]) ⇒ Object

+

Convert a Jimp image object to 1-bit monochrome image data before sending image data to a printer interface. Optionally scales the image to a different DPI before conversion.

+

Kind: static method of print
+Returns: Object - - Example: {width: 300, height: 200, img: Uint8Array}. Pass img to drawImage on a printer interface.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ParamTypeDefaultDescription
jimpImageJimp
[dpiFrom]number300Original image DPI.
[dpiTo]number300New image DPI.
+ + + + + + + + + + + + + + + +
+
+ + + +
+ +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/0.47/Plugin API/reports/index.html b/0.47/Plugin API/reports/index.html new file mode 100644 index 0000000..1e26b8b --- /dev/null +++ b/0.47/Plugin API/reports/index.html @@ -0,0 +1,1571 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + Reports - PostalPoint Plugin Development + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + Skip to content + + +
+
+ +
+ + + + + + + + +
+ + +
+ +
+ + + + + + +
+
+ + + +
+
+
+ + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+ +
+ + + + + +

Reports

+ +

+

reports : object

+

Define custom reports for the user.

+

Kind: global namespace
+

+

reports.registerReport(name, onload(startDate,endDate), date)

+

Kind: static method of reports

+ + + + + + + + + + + + + + + + + + + + + + + + + +
ParamTypeDescription
namestringReport name
onload(startDate,endDate)functionCalled when the report is loaded, with start and end Date objects. See example.
datebooleanIf the report requires a date range be selected.
+

Example
+

global.apis.reports.registerReport("sample", function (startDate, endDate) {
+
+ // Note about column datatypes:
+ // Use "string" for the datatype, except for the special cases listed here.
+ // Other datatypes may be added in the future, so use "string"
+ // unless you like unexpected behavior!
+ //
+ // datetime:   Column is a UNIX timestamp (in seconds).
+ //             It is displayed as a formatted date and time string.
+ // receiptid:  Column is a PostalPoint receipt ID number. Displayed as a link.
+ //             Clicking the ID will fetch and open the receipt in a popup.
+ // userid:     Column contains an employee ID number from the PostalPoint database.
+ //             It is queried in the database and replaced with the employee's name,
+ //             or with an empty string if the ID lookup has no results.
+ // money:      Column is a number that will be formatted as currency for display.
+ // percent:    Column is a percent value (as 12.3, not .123) and will be formatted
+ //             with a trailing % sign and rounded to two decimal places.
+
+ // Single-table report
+ return {
+   table: {
+     header: ["Column 1", "Column 2"],
+     datatypes: ["string", "string"],
+     rows: [
+       ["Row 1 Col 1", "Row 1 Col 2"],
+       ["Row 2 Col 1", "Row 2 Col 2"]
+     ]
+   }
+ };
+
+ // Multiple-table report
+ return {
+    multitable: true,
+    table: {
+      titles: ["Report 1 Title", "Report 2 Title"],
+      header: [["Report 1 Column 1", "Report 1 Column 2"], ["Report 2 Column 1", ...]],
+      datatypes: [["string", "string"], ["string", "string"]],
+      rows: [
+        [
+          ["Report 1 Row 1 Col 1", "Report 1 Row 1 Col 2"],
+          ["Report 1 Row 2 Col 1", "Report 1 Row 2 Col 2"]
+        ],
+        [
+          ["Report 2 Row 1 Col 1", "Report 2 Row 1 Col 2"],
+          ["Report 2 Row 2 Col 1", "Report 2 Row 2 Col 2"]
+        ]
+      ]
+    }
+  }
+}, true);
+

+ + + + + + + + + + + + + + + +
+
+ + + +
+ +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/0.47/Plugin API/settings/index.html b/0.47/Plugin API/settings/index.html new file mode 100644 index 0000000..a36772b --- /dev/null +++ b/0.47/Plugin API/settings/index.html @@ -0,0 +1,1574 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + Settings - PostalPoint Plugin Development + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + Skip to content + + +
+
+ +
+ + + + + + + + +
+ + +
+ +
+ + + + + + +
+
+ + + +
+
+
+ + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+ +
+ + + + + +

Settings

+ +

+

settings : object

+

PostalPoint provides a UI for user-configurable plugin settings. +See exports.config in examples/basic-demo/plugin.js for details. +Settings are typically very short strings. Do not store data in settings. +For data storage, see Storing Data. Non-string settings values are transparently converted to/from JSON objects. +Use a unique key name prefix for your plugin to prevent key name conflicts. +Reverse domain style is recommended (i.e. "com.example.pluginname.keyname").

+

Kind: global namespace

+ +

+

settings.get(key, defaultValue) ⇒ *

+

Get a setting.

+

Kind: static method of settings

+ + + + + + + + + + + + + + + + + + + + +
ParamTypeDescription
keystringSetting key/ID
defaultValue*Value to return if setting has no stored value.
+

+

settings.set(key, value)

+

Set a setting.

+

Kind: static method of settings

+ + + + + + + + + + + + + + + + + + + + +
ParamTypeDescription
keystringSetting key/ID
valuestringValue to set.
+ + + + + + + + + + + + + + + +
+
+ + + +
+ +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/0.47/Plugin API/shipping/index.html b/0.47/Plugin API/shipping/index.html new file mode 100644 index 0000000..a927248 --- /dev/null +++ b/0.47/Plugin API/shipping/index.html @@ -0,0 +1,2112 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + Shipping - PostalPoint Plugin Development + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + Skip to content + + +
+
+ +
+ + + + + + + + +
+ + +
+ +
+ + + + + + +
+
+ + + +
+
+
+ + + + + +
+
+
+ + + + + + + +
+ +
+ + + + + +

Shipping

+ +

+

shipping : object

+

Add custom carrier and rates, and adjust markup.

+

Kind: global namespace

+ +

+

shipping.Address

+

Kind: static class of shipping
+

+

new Address()

+

A class representing an address.

+

+

shipping.getZIPCode(zipcode, country) ⇒ Object

+

Get data for a ZIP Code.

+

Kind: static method of shipping
+Returns: Object - Data about the ZIP code. See example. Fields may be empty if not available. Type may be "STANDARD", "UNIQUE", "PO BOX", or "MILITARY".

+ + + + + + + + + + + + + + + + + + + + + + + +
ParamTypeDefaultDescription
zipcodestringZIP or postal code.
countrystring"US"Currently only "US" and "CA" are supported.
+

Example
+

{city: "NEW YORK", state: "NY", type: "STANDARD"}
+
+

+

shipping.getPackagingByID(id) ⇒ Promise.<Object>

+

Get a parcel's packaging type from PostalPoint's internal ID for it.

+

Kind: static method of shipping
+Returns: Promise.<Object> - See examples.

+ + + + + + + + + + + + + +
ParamType
idnumber
+

Example
+

{
+    id: 100,
+    type: "Parcel",
+    img: "box.png",
+    name: "Box",
+    service: "",
+    l: -1,
+    w: -1,
+    h: -1,
+    weight: true,
+    hazmat: true,
+    source: "Customer"
+}
+
+Example
+
{
+    id: 1,
+    type: "FlatRateEnvelope",
+    img: "pm-fres.png",
+    name: "Flat Rate Envelope",
+    service: "Priority",
+    l: -2,
+    w: -2,
+    h: -2,
+    weight: false,
+    hazmat: true,
+    usps_supplied: true,
+    envelope: true,
+    source: "USPS",
+    skus: ["PS00001000014", "PS00001000012", "PS00001000027", "PS00001000064", "PS00001001921", "PS00001035000", "PS00001036014", "PS00001128600", "https://qr.usps.com/epsspu?p=30", "https://qr.usps.com/epsspu?p=8"]
+}
+
+Example
+
{
+    id: 201,
+    type: "UPSLetter",
+    img: "ups-env.png",
+    name: "Envelope",
+    carrier: "UPS",
+    l: -2,
+    w: -2,
+    h: -2,
+    weight: true,
+    hazmat: true,
+    source: "OtherCarrier"
+}
+
+

+

shipping.getRetailPriceWithMarkup(cost, retail, carrier, service, weightOz, packaging) ⇒ Promise.<number>

+

Calculate the retail price for a shipment rate based on the configured margin settings.

+

Kind: static method of shipping
+Returns: Promise.<number> - The amount to charge the customer

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ParamTypeDescription
costnumberCost of shipment to business
retailnumberDefault retail price from label provider
carrierstringShipment carrier
servicestringShipment service
weightOznumberThe weight of the shipment in ounces, or null if not available.
packagingstringAn empty string if not available, or "Letter", "FlatRateEnvelope", etc.
+

+

shipping.getCarrierName(carrierId) ⇒ string

+

Converts the carrier ID string into a consistent and human-readable name.

+

Kind: static method of shipping

+ + + + + + + + + + + + + +
ParamType
carrierIdstring
+

+

shipping.getServiceName(serviceId, carrier) ⇒ string

+

Converts the service ID string into a consistent and human-readable name. Set the carrier ID for better results.

+

Kind: static method of shipping

+ + + + + + + + + + + + + + + + + + + + +
ParamTypeDefault
serviceIdstring
carrierstring"USPS"
+

+

shipping.registerRateEndpoint(getRates, purchase, idPrefix)

+

Register the plugin as a shipping rate and label provider. See the Shipping example plugin.

+

Kind: static method of shipping

+ + + + + + + + + + + + + + + + + + + + + + + + + +
ParamTypeDescription
getRatesfunctionA function passed a Parcel object to get rates for. Returns a Promise that resolves to an array of rate objects.
purchasefunctionA function passed a rate ID to purchase. Returns a Promise that resolves to the label information.
idPrefixstringA unique string that will be prefixing all rate IDs from this plugin.
+

Example
+

// getRates sample return value:
+[{
+    rateid: `${idPrefix}_${global.apis.util.uuid.v4()}`,
+    carrier: "CarrierID",
+    carrierName: "Carrier Name",
+    service: "CARRIER_SERVICE_ID",
+    cost_rate: 10,
+    retail_rate: 15,
+    delivery_days: 3,
+    delivery_date: null,
+    guaranteed: true,
+    serviceName: "Service Name",
+    color: "green" // Rate card color
+}]
+
+Example
+
// purchase sample return value:
+{
+    label: labelImageToPrint,
+    labeltype: "PNG",
+    receiptItem: ReceiptItem,
+    tracking: "12345678901234567890",
+    cost: 10.0,
+    price: 15.0,
+    carrier: "Carrier Name",
+    service: "Service Name",
+    delivery_days: 3,
+    delivery_date: 1234567890, // UNIX timestamp
+    to: toAddressLines // Array of strings
+}
+
+

+

shipping.registerMarkupCalculator(markupFn)

+

Register the plugin to modify PostalPoint's shipping markup calculation during shipment rating.

+

Kind: static method of shipping
+Throws:

+
    +
  • Error Only one plugin may register with this function; +any subsequent attempts to register will throw an Error.
  • +
+ + + + + + + + + + + + + + + +
ParamTypeDescription
markupFnfunctionA function that must return either the retail price to charge for this rate, or false to opt-out of setting this particular rate.
+

Example
+

global.apis.shipping.registerMarkupCalculator(
+    // Parameters:
+    // cost:       Cost to shipper
+    // retail:     Carrier-suggested retail price
+    // suggested:  PostalPoint-suggested retail (default margin calc)
+    // carrier:    Shipping carrier name
+    // service:    Shipping service code
+    // weightOz:   The weight of the shipment in ounces, or null if not available.
+    // packaging:  An empty string if not available, or "Letter", "FlatRateEnvelope", etc. See https://docs.easypost.com/docs/parcels#predefined-package
+    // parcel:     The Parcel object for this shipment.  May be null for some rate-only requests without a shipment, such as USPS price calculations.
+    function (cost, retail, suggested, carrier, service, weightOz, packaging, parcel) {
+        if (carrier == "USPS") {
+            if (service == "First-Class Mail") {
+                // Handle First-Class Mail differently if it's a 1oz letter (i.e. Forever stamp)
+                if (weightOz <= 1 && packaging == "Letter") {
+                    return retail + 0.05;
+                } else {
+                    return retail + 0.25;
+                }
+            }
+            // Handle flat rate envelopes differently
+            if (global.apis.shipping.getServiceName(service, carrier) == "Priority Mail" && packaging == "FlatRateEnvelope") {
+                return retail + 1.0;
+            }
+            return suggested + 2.0; // Charge the PostalPoint-calculated amount plus $2
+        } else {
+            return cost * 2; // Charges the customer double the shipment's cost.
+        }
+    }
+);
+
+

+

shipping.registerInsuranceProvider(id, name, cardText, maxValue, getQuote, insure)

+

Add a shipping insurance provider.

+

Kind: static method of shipping

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ParamTypeDescription
idstring | nullUnique ID for the provider. Will be autogenerated if null.
namestringHuman-readable name for the provider. Shown as the card heading on the Insurance section of the Ship screen.
cardTextstringText or HTML to display on the Ship screen card for this provider.
maxValuenumberThe largest number that will be accepted for the "Insured for" value.
getQuotefunctionReturns the cost and retail price for insuring the parcel, or a Promise that resolves into the same. See the example for details.
insurefunctionInsure the parcel and add the insurance details to the receipt. See example.
+

Example
+

async function getQuote(value, parcel, carrier, service) {
+    // Do math, etc
+    var cost = value / 100;
+
+    return {
+        cost: cost,
+        retail: cost * 2
+    };
+    // Or, to remove this shipping rate from the list,
+    // because the shipment/carrier/service combination
+    // is not eligible for insurance:
+    return false;
+}
+
+async function insure(value, parcel, carrier = "USPS", service = "Priority", trackingNumber = "94055...") {
+    // Purchase the insurance
+    var cost = value / 100;
+    var retailPrice = cost * 2;
+    var costPrice = cost;
+
+    var receiptitem = new global.apis.pos.ReceiptItem(`sampleinsurance_${trackingNumber}`,
+        "Sample Insurance",
+        "Insured for " + global.apis.i18n.moneyString(value),
+        retailPrice, 1, costPrice, 0
+    );
+    receiptitem.merch = true;
+    receiptitem.category = "Shipping Insurance";
+    receiptitem.barcode = trackingNumber;
+    global.apis.pos.addReceiptItem(receiptitem);
+}
+
+global.apis.shipping.registerInsuranceProvider(
+     "sampleproviderid", "Sample Insurance",
+     "Insurance coverage from Sample Insurance. $1 per $100 of value.",
+     5000, getQuote, insure);
+

+ + + + + + + + + + + + + + + +
+
+ + + +
+ +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/0.47/Plugin API/storage/index.html b/0.47/Plugin API/storage/index.html new file mode 100644 index 0000000..52ab74c --- /dev/null +++ b/0.47/Plugin API/storage/index.html @@ -0,0 +1,1761 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + Storage - PostalPoint Plugin Development + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + Skip to content + + +
+
+ +
+ + + + + + + + +
+ + +
+ +
+ + + + + + +
+
+ + + +
+
+
+ + + + + +
+
+
+ + + + + + + +
+ +
+ + + + + +

Storage

+ +

+

storage : object

+

Get and set data.

+

Kind: global namespace

+ +

+

storage.getSmall(key, defaultValue) ⇒ *

+

Get a value from the small data storage, using localStorage or a similar mechanism (may change in the future).

+

Kind: static method of storage

+ + + + + + + + + + + + + + + + + + + + +
ParamTypeDescription
keystringStorage item key/ID
defaultValue*Value to return if the item key doesn't have a stored value.
+

+

storage.setSmall(key, value)

+

Set a value in the small data storage, using localStorage or a similar mechanism (may change in the future).

+

Kind: static method of storage

+ + + + + + + + + + + + + + + + + + + + +
ParamTypeDescription
keystringStorage item key/ID
value*Value to store.
+

+

storage.getBig(key, defaultValue)

+

Get a value in the large data storage. Unserialized from a JSON file on disk.

+

Kind: static method of storage

+ + + + + + + + + + + + + + + + + + + + +
ParamTypeDescription
keystringStorage item key/ID
defaultValue*Value to return if the item key doesn't have a stored value.
+

+

storage.setBig(key, value)

+

Set a value in the large data storage. Serialized to JSON and stored on disk as a file.

+

Kind: static method of storage

+ + + + + + + + + + + + + + + + + + + + +
ParamTypeDescription
keystringStorage item key/ID
value*Value to store.
+

+

storage.getDB(key, defaultValue) ⇒ Promise.<*>

+

Get a value from the database storage. Unlike other storage types, values in the database are available on all PostalPoint installations in a single location.

+

Kind: static method of storage

+ + + + + + + + + + + + + + + + + + + + +
ParamTypeDescription
keystringStorage item key/ID
defaultValue*Value to return if the item key doesn't have a stored value.
+

+

storage.setDB(key, value) ⇒ Promise

+

Set a value in the database storage. Non-string values are serialized to JSON. Unlike other storage types, values in the database are available on all PostalPoint installations in a single location.

+

Kind: static method of storage

+ + + + + + + + + + + + + + + + + + + + +
ParamTypeDescription
keystringStorage item key/ID
value*Value to store.
+ + + + + + + + + + + + + + + +
+
+ + + +
+ +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/0.47/Plugin API/ui/index.html b/0.47/Plugin API/ui/index.html new file mode 100644 index 0000000..aeed81b --- /dev/null +++ b/0.47/Plugin API/ui/index.html @@ -0,0 +1,2143 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + Ui - PostalPoint Plugin Development + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + Skip to content + + +
+
+ +
+ + + + + + + + +
+ + +
+ +
+ + + + + + +
+
+ + + +
+
+
+ + + + + +
+
+
+ + + + + + + +
+ +
+ + + + + +

Ui

+ +

+

ui : object

+

Interact with and modify the PostalPoint user interface.

+

Kind: global namespace

+ +

+

ui.addToolsPage(page, title, id, description, cardTitle, icon, type)

+

Add a page to the Tools screen. If type is set to "function", the page argument +will be run as a function and will not be expected to return a page component. +Framework7 Page Component documentation

+

Kind: static method of ui

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ParamTypeDefaultDescription
pagestring | functionPage content as a Framework7 component page. If page is a string ending in .f7 it is treated as a file path and the page content will be loaded from disk. If page is any other string, it is treated as the page content. If page is a function, it will be called and must return the page content (unless type is set to "function", see examples)
titlestringPage title.
idstringPage ID. Make it unique, or pass an empty string to be assigned a random ID.
descriptionstringDescription of this tool for its card on the Tools screen.
cardTitlestringTitle of the card for this page on the Tools screen.
iconstringFontAwesome icon class, for example, "fa-solid fa-globe". FontAwesome Pro solid, regular, light, and duotone icons are available.
typestring"page"What kind of data is supplied by page: "page" or "function".
+

Example
+

// Full plugin that displays an alert when the card is clicked on the Tools page
+exports.init = function () {
+    global.apis.ui.addToolsPage(
+                                 displayMessage,
+                                 "click me",
+                                 "clickmecard",
+                                 "Click here to see a message",
+                                 "Click This Card",
+                                 "fa-solid fa-arrow-pointer",
+                                 "function"
+                               );
+}
+
+function displayMessage() {
+    global.apis.alert("Card clicked");
+}
+
+Example
+
// Open a dynamically-generated page
+function rollDice() {
+    var randomNumber = Math.round(Math.random() * 6) + 1;
+    return `<div class="page">
+        <div class="navbar">
+            <div class="navbar-bg"></div>
+            <div class="navbar-inner">
+                <a href="#" class="link back">
+                    <i class="icon icon-back"></i>
+                </a>
+                <div class="title">Random Number</div>
+            </div>
+        </div>
+        <div class="page-content">
+            <div class="block">
+                <h1>You rolled ${randomNumber}</h1>
+            </div>
+        </div>
+    </div>`;
+}
+global.apis.ui.addToolsPage(
+                             rollDice,
+                             "Random",
+                             "randomnumbercard",
+                             "Click here for a random number",
+                             "Random Number",
+                             "fa-regular fa-dice",
+                             "page"
+                           );
+
+Example
+
// Open a page from a file.
+// See https://framework7.io/docs/router-component#single-file-component
+global.apis.ui.addToolsPage(
+                             global.apis.getPluginFolder("example-plugin") + "/page.f7",
+                             "Page",
+                             "filepage",
+                             "Open page.f7 from the plugin installation folder",
+                             "Open Custom Page",
+                             "fa-regular fa-file",
+                             "page"
+                           );
+
+

+

ui.addHomeTab(content, title, icon, id) ⇒ undefined

+

Add a custom tab to the PostalPoint home screen. Works almost the same as addToolsPage.

+

Kind: static method of ui

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ParamTypeDescription
contentstring | functionTab content. It is rendered/processed when the user navigates to the Home screen and clicks the tab; if the user navigates to a different screen and back to Home, it will be re-rendered. If content is a string ending in .f7 it is treated as a file path and the content will be loaded from disk. If content is any other string, it is treated as the content. If content is a function, it will be called and must return the content.
titlestringTab title. Keep it short; depending on screen size and tab count, you have as little as 150px of space.
iconstringFontAwesome icon displayed above the tab title.
idstringTab ID. Make it unique, or pass an empty string to be assigned a random ID. If addHomeTab is called with a tab ID that is already registered, it will be overwritten.
+

Example
+

global.apis.ui.addHomeTab("<div class='block'>Hello</div>", "Hello Tab", "fa-duotone fa-hand-wave", "hellotab");
+
+Example
+
function renderTab() {
+    return "<template><div><h1>${hellovar}</h1></div></template><script>export default (props, {$on, $update, $f7}) => {var hellovar = 'hello world'; return $render;}</script>";
+}
+global.apis.ui.addHomeTab(renderTab, "Hello Template", "fa-duotone fa-file-code", "hellotemplatetab");
+
+

+

ui.showProgressSpinner(title, text, subtitle) ⇒ undefined

+

Show a notification with a loading icon.

+

Kind: static method of ui

+ + + + + + + + + + + + + + + + + + + + + + + + + +
ParamTypeDescription
titlestringThe message to show on the spinner.
textstringOptional. Body text on the spinner.
subtitlestringOptional. Sub-heading under the title.
+

+

ui.hideProgressSpinner()

+

Close the notification opened by showProgressSpinner.

+

Kind: static method of ui
+

+

ui.openSystemWebBrowser(url)

+

Open the native OS default browser to the URL given.

+

Kind: static method of ui

+ + + + + + + + + + + + + +
ParamType
urlstring
+

+

ui.openInternalWebBrowser(url)

+

Open a web browser inside PostalPoint. The browser has forward/back/close buttons.

+

Kind: static method of ui

+ + + + + + + + + + + + + +
ParamType
urlstring
+

Example
+

global.apis.ui.openInternalWebBrowser("https://postalpoint.app");
+global.apis.eventbus.on("browserNavigate", function (newUrl) {
+    global.apis.alert(`New URL: ${newUrl}`, "Browser Navigated");
+    if (newUrl == "https://closeme.com") {
+        global.apis.eventbus.emit("browserCloseRequest");
+    }
+});
+
+

+

ui.clearCustomerScreen()

+

Clear any custom content on the customer-facing display, defaulting back to blank/receipt/shipping rates, as applicable.

+

Kind: static method of ui
+

+

ui.setCustomerScreen(content, type, displayInCard, cardSize, displayStatusBar)

+

Render content on the customer-facing display. +Encodes content as a data URI (example: data:text/html;charset=utf-8,${content}) +and renders on the customer-facing display. If type is html, renders the string as HTML. +If type is pdf, displays a PDF viewer. If type is raw, functions like setting an iframe's +src to content. All other type values are rendered as text/plain. +To display the iframe in a card centered on the screen, set displayInCard to true +and pass the desired dimensions (w, h) of the card in px. +If the requested size is larger than the available screen space, the card will instead +fill the available space. +Warning: Do not load third-party websites, this is a security risk. +Wrap it in a tag if you need to display one.

+

Kind: static method of ui

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ParamTypeDefaultDescription
contentstringPage content.
typestring"html"Format of the content. One of "html", "pdf", "raw", "body", or "text".
displayInCardbooleanfalseSet to true to wrap the content in a card UI.
cardSizeArray.<number>[300,300Size of the card UI if displayInCard == true.
displayStatusBarbooleantrueWhether the bar on the bottom of the screen should be visible, containing the store logo and scale weight.
+

Example
+

// How content is converted by PostalPoint before display:
+if (type == "html") {
+    customerScreenContent = `data:text/html;charset=utf-8,${content}`;
+} else if (type == "pdf") {
+    customerScreenContent = `data:application/pdf,${content}`;
+} else if (type == "raw") {
+    global.customerScreenContent = `${content}`;
+} else if (type == "body") {
+    customerScreenContent = `data:text/html;charset=utf-8,<!DOCTYPE html>
+    <meta charset="utf-8">
+    <title></title>
+    <style>
+        html, body {margin: 0; padding: 0; font-family: Roboto, Ubuntu, Arial, sans-serif;}
+        h1, h2, h3 {margin: 0;}
+    </style>
+    <div id="maindiv">${content}</div>`;
+} else {
+    customerScreenContent = `data:text/plain;charset=utf-8,${content}`;
+}
+
+

+

ui.collectSignatureFromCustomerScreen(title, terms, termstype)

+

Show a signature pad on the customer-facing display. +When the customer indicates the signature is finished, +the customerSignatureCollected event is emitted with the data +{"svg": "data:image/svg+xml;base64,...", "png": "data:image/png;base64,..."}

+

Kind: static method of ui

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ParamTypeDefaultDescription
titlestringnullDisplay a title/header on the customer screen. Currently ignored, but may be used in the future.
termsstring | booleanfalseSet to a string to display terms and conditions or other text content next to the signature pad.
termstypestring"body""html", "pdf", "raw", or "body". See setCustomerScreen()
+

Example
+

global.apis.ui.collectSignatureFromCustomerScreen("", "<p>By signing, you agree to pay us lots of money</p>", "body");
+global.apis.eventbus.on("customerSignatureCollected", function (sigdata) {
+    const pngDataURL = sigdata.png;
+    const svgDataURL = sigdata.svg;
+});
+
+

+

ui.cancelSignatureCollection()

+

Cancels customer signature collection and returns the customer-facing display to normal operation.

+

Kind: static method of ui
+Example
+

global.apis.ui.cancelSignatureCollection();
+
+

+

ui.clearSignaturePad()

+

Erase the signature drawn on the customer-facing display. +Note that the customer is also provided a button to do this.

+

Kind: static method of ui
+Example
+

global.apis.ui.clearSignaturePad();
+
+

+

ui.getCustomerDisplayInfo() ⇒ Object

+

Describes if the customer-facing display is currently enabled, +and if it supports customer touch interaction.

+

Kind: static method of ui
+Returns: Object - {"enabled": true, "touch": true}
+Example
+

var info = global.apis.ui.getCustomerDisplayInfo();
+

+ + + + + + + + + + + + + + + +
+
+ + + +
+ +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/0.47/Plugin API/user/index.html b/0.47/Plugin API/user/index.html new file mode 100644 index 0000000..9337e08 --- /dev/null +++ b/0.47/Plugin API/user/index.html @@ -0,0 +1,1747 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + User - PostalPoint Plugin Development + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + Skip to content + + +
+
+ +
+ + + + + + + + +
+ + +
+ +
+ + + + + + +
+
+ + + +
+
+
+ + + + + +
+
+
+ + + + + + + +
+ +
+ + + + + +

User

+ +

+

user : object

+

Access data about employees.

+

Kind: global namespace

+ +

+

user.User

+

Kind: static class of user
+Properties

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
idnumber
namestring
passstring
barcodestring
enabledboolean
hasPassword()functionReturns true if the user has a password set, else false.
checkPassword(string)functionReturns true if the provided password matches the user's password, or if there is no password set.
icon(number)functionReturns a SVG data URI with a procedurally-generated icon for the user. Size defaults to 50px if not specified.
+

+

new User(id, name, password, barcode, enabled)

+

A User object.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ParamType
idnumber
namestring
passwordstring
barcodestring
enabledboolean
+

+

user.getUser() ⇒ User

+

Get the user currently logged in.

+

Kind: static method of user
+

+

user.getUserID() ⇒ number

+

Get the current user's ID number.

+

Kind: static method of user
+

+

user.getUserByID() ⇒ Promise.<User>

+

Look up the User for an ID number.

+

Kind: static method of user
+

+

user.listUsers([managerMode]) ⇒ Promise.<Array.<User>>

+

Get a list of all users in the system.

+

Kind: static method of user

+ + + + + + + + + + + + + + + + + +
ParamTypeDefaultDescription
[managerMode]booleanfalseIf false, list only active/enabled users, and if no users, return a default user account (user ID -1). If true, return all users in the database, and don't return a default account if the list is empty (return an empty list instead).
+ + + + + + + + + + + + + + + +
+
+ + + +
+ +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/0.47/Plugin API/util/index.html b/0.47/Plugin API/util/index.html new file mode 100644 index 0000000..2376dfa --- /dev/null +++ b/0.47/Plugin API/util/index.html @@ -0,0 +1,2887 @@ + + + + + + + + + + + + + + + + + + + + + + + + Util - PostalPoint Plugin Development + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + Skip to content + + +
+
+ +
+ + + + + + + + +
+ + +
+ +
+ + + + + + +
+
+ + + +
+
+
+ + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+ +
+ + + + + +

Util

+ +

+

util : object

+

Various utility functions: HTTP, time/date, barcode creation, clipboard, etc.

+

Kind: global namespace

+ +

+

util.uuid : object

+

Unique ID generators.

+

Kind: static namespace of util

+ +

+

uuid.v4() ⇒ string

+

Generate a UUID string

+

Kind: static method of uuid
+Returns: string - UUID v4 with dashes: xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx
+

+

uuid.short([length]) ⇒ string

+

Generate a short random alphanumeric string.

+

Kind: static method of uuid
+Returns: string - A string of length length, from the character set "acdefhjkmnpqrtuvwxy0123456789".

+ + + + + + + + + + + + + + + + + +
ParamTypeDefaultDescription
[length]number16String character count.
+

+

util.http : object

+

HTTP requests and webhooks.

+

Kind: static namespace of util

+ +

+

http.webhook : object

+

Use webhooks via a PostalPoint cloud relay service.

+

Kind: static namespace of http

+ +

+
webhook.geturl(sourcename) ⇒ Promise.<string>
+

geturl - Returns a public URL that can be used as a webhook target/endpoint for third-party integrations.

+

Kind: static method of webhook
+Returns: Promise.<string> - A URL for the webhook.

+ + + + + + + + + + + + + + + +
ParamTypeDescription
sourcenamestringUnique identifier for the webhook
+

+
webhook.poll(sourcename) ⇒ Promise.<Array.<Object>>
+

poll - Returns an array of webhook payloads received by the webhook identified by sourcename.

+

Kind: static method of webhook
+Returns: Promise.<Array.<Object>> - Payloads as received by the webhook relay service.

+ + + + + + + + + + + + + + + +
ParamTypeDescription
sourcenamestringUnique identifier for the webhook
+

Example
+

[
+     {
+         // Unique ID. Used for ack(webhookid).
+         id: 123,
+
+         // UNIX timestamp (in seconds) of when the data was received by the webhook URL.
+         timestamp: 1234567890,
+
+         // Source name set in geturl()
+         source: "sourcename",
+
+         // JSON string of all the HTTP headers sent to the webhook URL.
+         headers: "{'Content-Type': 'application/json'}",
+
+         // Entire HTTP request body sent to the webhook URL.
+         body: ""
+     }
+]
+
+

+
webhook.ack(webhookid)
+

Acknowledge receipt of a webhook payload, deleting it from the relay server. +Webhook payload is only queued for deletion, so polling may still return it for a short time.

+

Kind: static method of webhook

+ + + + + + + + + + + + + + + +
ParamTypeDescription
webhookidnumberNumeric unique ID received with the payload. See poll.
+

+

http.post(url, data, [responseType], [headers], [method], [continueOnBadStatusCode], [timeoutSeconds]) ⇒ Promise.<(string|Blob|ArrayBuffer|Object)>

+

post - Fetch a HTTP POST request.

+

Kind: static method of http
+Returns: Promise.<(string|Blob|ArrayBuffer|Object)> - The server response body. See responseType parameter.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ParamTypeDefaultDescription
urlstring
dataObject.<string, string>POST data key/value list
[responseType]string"text""text", "blob", "buffer", or "json"
[headers]Object.<string, string>HTTP headers to send. Defaults to {"Content-Type": "application/json"}.
[method]string"POST"
[continueOnBadStatusCode]booleanfalseIf false, throws an Error when the HTTP response code is not 2XX. If true, ignores the response code and proceeds as normal.
[timeoutSeconds]number15Aborts the request (timeout) after this many seconds.
+

+

http.fetch(url, [responseType], [timeoutSeconds]) ⇒ Promise.<(string|Blob|ArrayBuffer|Object)>

+

fetch - Fetch a HTTP GET request.

+

Kind: static method of http
+Returns: Promise.<(string|Blob|ArrayBuffer|Object)> - The server response body. See responseType parameter.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ParamTypeDefaultDescription
urlstring
[responseType]string"text""text", "blob", "buffer", or "json"
[timeoutSeconds]number15Aborts the request (timeout) after this many seconds.
+

+

util.string : object

+

String manipulation functions.

+

Kind: static namespace of util

+ +

+

string.split(input, separator, [limit]) ⇒ Array.<string>

+

Split a string with a separator regex.

+

Kind: static method of string

+ + + + + + + + + + + + + + + + + + + + + + + + + +
ParamTypeDescription
inputstringInput string
separatorstringPassed to new RegExp(separator, 'g')
[limit]numberMaximum number of splits to perform
+

+

string.chunk(input, chunksize) ⇒ Array.<string>

+

Split a string into chunks of length chunksize.

+

Kind: static method of string

+ + + + + + + + + + + + + + + + + + + + +
ParamTypeDescription
inputstringInput string
chunksizestringNumber of characters per chunk
+

+

util.time : object

+

Date and time functions

+

Kind: static namespace of util

+ +

+

time.now() ⇒ number

+

Get the current UNIX timestamp in seconds.

+

Kind: static method of time
+

+

time.diff(compareto) ⇒ number

+

Get the number of seconds between now and the given Date or UNIX timestamp in seconds.

+

Kind: static method of time

+ + + + + + + + + + + + + +
ParamType
comparetonumber | Date
+

+

time.strtotime(str) ⇒ number

+

Parse a string date and return UNIX timestamp (in seconds).

+

Kind: static method of time

+ + + + + + + + + + + + + +
ParamType
strstring
+

+

time.format(format, [timestamp]) ⇒ string

+

Take a Date or UNIX timestamp in seconds and format it to a string. +Mostly compatible with the PHP date format codes.

+

Kind: static method of time

+ + + + + + + + + + + + + + + + + + + + + + + +
ParamTypeDefaultDescription
formatstring"Y-m-d H:i:s", etc
[timestamp]number | Datenow()
+

+

time.toDateString(timestamp) ⇒ string

+

Format a UNIX timestamp (in seconds) as a localized date string.

+

Kind: static method of time

+ + + + + + + + + + + + + +
ParamType
timestampnumber
+

+

time.toTimeString(timestamp) ⇒ string

+

Format a UNIX timestamp (in seconds) as a localized time string.

+

Kind: static method of time

+ + + + + + + + + + + + + +
ParamType
timestampnumber
+

+

util.clipboard : object

+

OS clipboard

+

Kind: static namespace of util
+

+

clipboard.copy(text, [showNotification]) ⇒ Promise.<boolean>

+

Copy a string to the system clipboard.

+

Kind: static method of clipboard
+Returns: Promise.<boolean> - True if the copy succeeded, else false.

+ + + + + + + + + + + + + + + + + + + + + + + +
ParamTypeDefaultDescription
textstring
[showNotification]booleanfalseIf true, a "Copied" notification will appear onscreen briefly.
+

+

util.barcode : object

+

Barcode image generation functions.

+

Kind: static namespace of util

+ +

+

barcode.getBuffer(data, [type], [height], [scale], [includetext]) ⇒ Promise.<Buffer>

+

Get a PNG image buffer of a barcode. Uses library "bwip-js".

+

Kind: static method of barcode
+Returns: Promise.<Buffer> - PNG data for the barcode.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ParamTypeDefaultDescription
datastring
[type]string"\"code128\""
[height]number10
[scale]number2
[includetext]booleanfalseSet true to render the barcode's content as text below the code.
+

+

barcode.getBase64(data, [type], [height], [scale], [includetext]) ⇒ Promise.<string>

+

Get a PNG image of a barcode as a base64 data URI. Uses library "bwip-js".

+

Kind: static method of barcode
+Returns: Promise.<string> - "data:image/png;base64,..."

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ParamTypeDefaultDescription
datastring
[type]string"\"code128\""
[height]number10
[scale]number2
[includetext]booleanfalseSet true to render the barcode's content as text below the code.
+

+

util.geography : object

+

Kind: static namespace of util
+

+

geography.isoToCountryName(iso) ⇒ string

+

Get a human-readable country name from an ISO country code.

+

Kind: static method of geography

+ + + + + + + + + + + + + + + +
ParamTypeDescription
isostring | number2 or 3 letter country code, or numeric country code.
+

+

util.objectEquals(a, b) ⇒ boolean

+

Compare two objects for equality. See https://stackoverflow.com/a/16788517

+

Kind: static method of util
+Returns: boolean - True if equal, else false.

+ + + + + + + + + + + + + + + + + +
ParamType
a*
b*
+

+

util.delay([ms]) ⇒ Promise

+

Pause execution for some amount of time in an async function, i.e., returns a Promise that resolves in some number of milliseconds.

+

Kind: static method of util

+ + + + + + + + + + + + + + + + + +
ParamTypeDefaultDescription
[ms]number1000Number of milliseconds to pause.
+ + + + + + + + + + + + + + + +
+
+ + + +
+ +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/0.47/assets/external/fonts.googleapis.com/css.49ea35f2.css b/0.47/assets/external/fonts.googleapis.com/css.49ea35f2.css new file mode 100644 index 0000000..8187a64 --- /dev/null +++ b/0.47/assets/external/fonts.googleapis.com/css.49ea35f2.css @@ -0,0 +1,594 @@ +/* cyrillic-ext */ +@font-face { + font-family: 'Roboto'; + font-style: italic; + font-weight: 300; + font-display: fallback; + src: url(../fonts.gstatic.com/s/roboto/v30/KFOjCnqEu92Fr1Mu51TjASc3CsTKlA.woff2) format('woff2'); + unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F; +} +/* cyrillic */ +@font-face { + font-family: 'Roboto'; + font-style: italic; + font-weight: 300; + font-display: fallback; + src: url(../fonts.gstatic.com/s/roboto/v30/KFOjCnqEu92Fr1Mu51TjASc-CsTKlA.woff2) format('woff2'); + unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; +} +/* greek-ext */ +@font-face { + font-family: 'Roboto'; + font-style: italic; + font-weight: 300; + font-display: fallback; + src: url(../fonts.gstatic.com/s/roboto/v30/KFOjCnqEu92Fr1Mu51TjASc2CsTKlA.woff2) format('woff2'); + unicode-range: U+1F00-1FFF; +} +/* greek */ +@font-face { + font-family: 'Roboto'; + font-style: italic; + font-weight: 300; + font-display: fallback; + src: url(../fonts.gstatic.com/s/roboto/v30/KFOjCnqEu92Fr1Mu51TjASc5CsTKlA.woff2) format('woff2'); + unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF; +} +/* vietnamese */ +@font-face { + font-family: 'Roboto'; + font-style: italic; + font-weight: 300; + font-display: fallback; + src: url(../fonts.gstatic.com/s/roboto/v30/KFOjCnqEu92Fr1Mu51TjASc1CsTKlA.woff2) format('woff2'); + unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB; +} +/* latin-ext */ +@font-face { + font-family: 'Roboto'; + font-style: italic; + font-weight: 300; + font-display: fallback; + src: url(../fonts.gstatic.com/s/roboto/v30/KFOjCnqEu92Fr1Mu51TjASc0CsTKlA.woff2) format('woff2'); + unicode-range: U+0100-02AF, U+0304, U+0308, U+0329, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; +} +/* latin */ +@font-face { + font-family: 'Roboto'; + font-style: italic; + font-weight: 300; + font-display: fallback; + src: url(../fonts.gstatic.com/s/roboto/v30/KFOjCnqEu92Fr1Mu51TjASc6CsQ.woff2) format('woff2'); + unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; +} +/* cyrillic-ext */ +@font-face { + font-family: 'Roboto'; + font-style: italic; + font-weight: 400; + font-display: fallback; + src: url(../fonts.gstatic.com/s/roboto/v30/KFOkCnqEu92Fr1Mu51xFIzIFKw.woff2) format('woff2'); + unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F; +} +/* cyrillic */ +@font-face { + font-family: 'Roboto'; + font-style: italic; + font-weight: 400; + font-display: fallback; + src: url(../fonts.gstatic.com/s/roboto/v30/KFOkCnqEu92Fr1Mu51xMIzIFKw.woff2) format('woff2'); + unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; +} +/* greek-ext */ +@font-face { + font-family: 'Roboto'; + font-style: italic; + font-weight: 400; + font-display: fallback; + src: url(../fonts.gstatic.com/s/roboto/v30/KFOkCnqEu92Fr1Mu51xEIzIFKw.woff2) format('woff2'); + unicode-range: U+1F00-1FFF; +} +/* greek */ +@font-face { + font-family: 'Roboto'; + font-style: italic; + font-weight: 400; + font-display: fallback; + src: url(../fonts.gstatic.com/s/roboto/v30/KFOkCnqEu92Fr1Mu51xLIzIFKw.woff2) format('woff2'); + unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF; +} +/* vietnamese */ +@font-face { + font-family: 'Roboto'; + font-style: italic; + font-weight: 400; + font-display: fallback; + src: url(../fonts.gstatic.com/s/roboto/v30/KFOkCnqEu92Fr1Mu51xHIzIFKw.woff2) format('woff2'); + unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB; +} +/* latin-ext */ +@font-face { + font-family: 'Roboto'; + font-style: italic; + font-weight: 400; + font-display: fallback; + src: url(../fonts.gstatic.com/s/roboto/v30/KFOkCnqEu92Fr1Mu51xGIzIFKw.woff2) format('woff2'); + unicode-range: U+0100-02AF, U+0304, U+0308, U+0329, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; +} +/* latin */ +@font-face { + font-family: 'Roboto'; + font-style: italic; + font-weight: 400; + font-display: fallback; + src: url(../fonts.gstatic.com/s/roboto/v30/KFOkCnqEu92Fr1Mu51xIIzI.woff2) format('woff2'); + unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; +} +/* cyrillic-ext */ +@font-face { + font-family: 'Roboto'; + font-style: italic; + font-weight: 700; + font-display: fallback; + src: url(../fonts.gstatic.com/s/roboto/v30/KFOjCnqEu92Fr1Mu51TzBic3CsTKlA.woff2) format('woff2'); + unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F; +} +/* cyrillic */ +@font-face { + font-family: 'Roboto'; + font-style: italic; + font-weight: 700; + font-display: fallback; + src: url(../fonts.gstatic.com/s/roboto/v30/KFOjCnqEu92Fr1Mu51TzBic-CsTKlA.woff2) format('woff2'); + unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; +} +/* greek-ext */ +@font-face { + font-family: 'Roboto'; + font-style: italic; + font-weight: 700; + font-display: fallback; + src: url(../fonts.gstatic.com/s/roboto/v30/KFOjCnqEu92Fr1Mu51TzBic2CsTKlA.woff2) format('woff2'); + unicode-range: U+1F00-1FFF; +} +/* greek */ +@font-face { + font-family: 'Roboto'; + font-style: italic; + font-weight: 700; + font-display: fallback; + src: url(../fonts.gstatic.com/s/roboto/v30/KFOjCnqEu92Fr1Mu51TzBic5CsTKlA.woff2) format('woff2'); + unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF; +} +/* vietnamese */ +@font-face { + font-family: 'Roboto'; + font-style: italic; + font-weight: 700; + font-display: fallback; + src: url(../fonts.gstatic.com/s/roboto/v30/KFOjCnqEu92Fr1Mu51TzBic1CsTKlA.woff2) format('woff2'); + unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB; +} +/* latin-ext */ +@font-face { + font-family: 'Roboto'; + font-style: italic; + font-weight: 700; + font-display: fallback; + src: url(../fonts.gstatic.com/s/roboto/v30/KFOjCnqEu92Fr1Mu51TzBic0CsTKlA.woff2) format('woff2'); + unicode-range: U+0100-02AF, U+0304, U+0308, U+0329, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; +} +/* latin */ +@font-face { + font-family: 'Roboto'; + font-style: italic; + font-weight: 700; + font-display: fallback; + src: url(../fonts.gstatic.com/s/roboto/v30/KFOjCnqEu92Fr1Mu51TzBic6CsQ.woff2) format('woff2'); + unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; +} +/* cyrillic-ext */ +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 300; + font-display: fallback; + src: url(../fonts.gstatic.com/s/roboto/v30/KFOlCnqEu92Fr1MmSU5fCRc4EsA.woff2) format('woff2'); + unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F; +} +/* cyrillic */ +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 300; + font-display: fallback; + src: url(../fonts.gstatic.com/s/roboto/v30/KFOlCnqEu92Fr1MmSU5fABc4EsA.woff2) format('woff2'); + unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; +} +/* greek-ext */ +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 300; + font-display: fallback; + src: url(../fonts.gstatic.com/s/roboto/v30/KFOlCnqEu92Fr1MmSU5fCBc4EsA.woff2) format('woff2'); + unicode-range: U+1F00-1FFF; +} +/* greek */ +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 300; + font-display: fallback; + src: url(../fonts.gstatic.com/s/roboto/v30/KFOlCnqEu92Fr1MmSU5fBxc4EsA.woff2) format('woff2'); + unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF; +} +/* vietnamese */ +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 300; + font-display: fallback; + src: url(../fonts.gstatic.com/s/roboto/v30/KFOlCnqEu92Fr1MmSU5fCxc4EsA.woff2) format('woff2'); + unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB; +} +/* latin-ext */ +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 300; + font-display: fallback; + src: url(../fonts.gstatic.com/s/roboto/v30/KFOlCnqEu92Fr1MmSU5fChc4EsA.woff2) format('woff2'); + unicode-range: U+0100-02AF, U+0304, U+0308, U+0329, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; +} +/* latin */ +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 300; + font-display: fallback; + src: url(../fonts.gstatic.com/s/roboto/v30/KFOlCnqEu92Fr1MmSU5fBBc4.woff2) format('woff2'); + unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; +} +/* cyrillic-ext */ +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 400; + font-display: fallback; + src: url(../fonts.gstatic.com/s/roboto/v30/KFOmCnqEu92Fr1Mu72xKOzY.woff2) format('woff2'); + unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F; +} +/* cyrillic */ +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 400; + font-display: fallback; + src: url(../fonts.gstatic.com/s/roboto/v30/KFOmCnqEu92Fr1Mu5mxKOzY.woff2) format('woff2'); + unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; +} +/* greek-ext */ +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 400; + font-display: fallback; + src: url(../fonts.gstatic.com/s/roboto/v30/KFOmCnqEu92Fr1Mu7mxKOzY.woff2) format('woff2'); + unicode-range: U+1F00-1FFF; +} +/* greek */ +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 400; + font-display: fallback; + src: url(../fonts.gstatic.com/s/roboto/v30/KFOmCnqEu92Fr1Mu4WxKOzY.woff2) format('woff2'); + unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF; +} +/* vietnamese */ +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 400; + font-display: fallback; + src: url(../fonts.gstatic.com/s/roboto/v30/KFOmCnqEu92Fr1Mu7WxKOzY.woff2) format('woff2'); + unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB; +} +/* latin-ext */ +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 400; + font-display: fallback; + src: url(../fonts.gstatic.com/s/roboto/v30/KFOmCnqEu92Fr1Mu7GxKOzY.woff2) format('woff2'); + unicode-range: U+0100-02AF, U+0304, U+0308, U+0329, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; +} +/* latin */ +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 400; + font-display: fallback; + src: url(../fonts.gstatic.com/s/roboto/v30/KFOmCnqEu92Fr1Mu4mxK.woff2) format('woff2'); + unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; +} +/* cyrillic-ext */ +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 700; + font-display: fallback; + src: url(../fonts.gstatic.com/s/roboto/v30/KFOlCnqEu92Fr1MmWUlfCRc4EsA.woff2) format('woff2'); + unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F; +} +/* cyrillic */ +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 700; + font-display: fallback; + src: url(../fonts.gstatic.com/s/roboto/v30/KFOlCnqEu92Fr1MmWUlfABc4EsA.woff2) format('woff2'); + unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; +} +/* greek-ext */ +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 700; + font-display: fallback; + src: url(../fonts.gstatic.com/s/roboto/v30/KFOlCnqEu92Fr1MmWUlfCBc4EsA.woff2) format('woff2'); + unicode-range: U+1F00-1FFF; +} +/* greek */ +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 700; + font-display: fallback; + src: url(../fonts.gstatic.com/s/roboto/v30/KFOlCnqEu92Fr1MmWUlfBxc4EsA.woff2) format('woff2'); + unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF; +} +/* vietnamese */ +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 700; + font-display: fallback; + src: url(../fonts.gstatic.com/s/roboto/v30/KFOlCnqEu92Fr1MmWUlfCxc4EsA.woff2) format('woff2'); + unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB; +} +/* latin-ext */ +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 700; + font-display: fallback; + src: url(../fonts.gstatic.com/s/roboto/v30/KFOlCnqEu92Fr1MmWUlfChc4EsA.woff2) format('woff2'); + unicode-range: U+0100-02AF, U+0304, U+0308, U+0329, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; +} +/* latin */ +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 700; + font-display: fallback; + src: url(../fonts.gstatic.com/s/roboto/v30/KFOlCnqEu92Fr1MmWUlfBBc4.woff2) format('woff2'); + unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; +} +/* cyrillic-ext */ +@font-face { + font-family: 'Roboto Mono'; + font-style: italic; + font-weight: 400; + font-display: fallback; + src: url(../fonts.gstatic.com/s/robotomono/v23/L0xdDF4xlVMF-BfR8bXMIjhOsXG-q2oeuFoqFrlnAIe2Imhk1T8rbociImtEluUlYIw.woff2) format('woff2'); + unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F; +} +/* cyrillic */ +@font-face { + font-family: 'Roboto Mono'; + font-style: italic; + font-weight: 400; + font-display: fallback; + src: url(../fonts.gstatic.com/s/robotomono/v23/L0xdDF4xlVMF-BfR8bXMIjhOsXG-q2oeuFoqFrlnAIe2Imhk1T8rbociImtEn-UlYIw.woff2) format('woff2'); + unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; +} +/* greek */ +@font-face { + font-family: 'Roboto Mono'; + font-style: italic; + font-weight: 400; + font-display: fallback; + src: url(../fonts.gstatic.com/s/robotomono/v23/L0xdDF4xlVMF-BfR8bXMIjhOsXG-q2oeuFoqFrlnAIe2Imhk1T8rbociImtEmOUlYIw.woff2) format('woff2'); + unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF; +} +/* vietnamese */ +@font-face { + font-family: 'Roboto Mono'; + font-style: italic; + font-weight: 400; + font-display: fallback; + src: url(../fonts.gstatic.com/s/robotomono/v23/L0xdDF4xlVMF-BfR8bXMIjhOsXG-q2oeuFoqFrlnAIe2Imhk1T8rbociImtElOUlYIw.woff2) format('woff2'); + unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB; +} +/* latin-ext */ +@font-face { + font-family: 'Roboto Mono'; + font-style: italic; + font-weight: 400; + font-display: fallback; + src: url(../fonts.gstatic.com/s/robotomono/v23/L0xdDF4xlVMF-BfR8bXMIjhOsXG-q2oeuFoqFrlnAIe2Imhk1T8rbociImtEleUlYIw.woff2) format('woff2'); + unicode-range: U+0100-02AF, U+0304, U+0308, U+0329, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; +} +/* latin */ +@font-face { + font-family: 'Roboto Mono'; + font-style: italic; + font-weight: 400; + font-display: fallback; + src: url(../fonts.gstatic.com/s/robotomono/v23/L0xdDF4xlVMF-BfR8bXMIjhOsXG-q2oeuFoqFrlnAIe2Imhk1T8rbociImtEm-Ul.woff2) format('woff2'); + unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; +} +/* cyrillic-ext */ +@font-face { + font-family: 'Roboto Mono'; + font-style: italic; + font-weight: 700; + font-display: fallback; + src: url(../fonts.gstatic.com/s/robotomono/v23/L0xdDF4xlVMF-BfR8bXMIjhOsXG-q2oeuFoqFrlnAIe2Imhk1T8rbociImtEluUlYIw.woff2) format('woff2'); + unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F; +} +/* cyrillic */ +@font-face { + font-family: 'Roboto Mono'; + font-style: italic; + font-weight: 700; + font-display: fallback; + src: url(../fonts.gstatic.com/s/robotomono/v23/L0xdDF4xlVMF-BfR8bXMIjhOsXG-q2oeuFoqFrlnAIe2Imhk1T8rbociImtEn-UlYIw.woff2) format('woff2'); + unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; +} +/* greek */ +@font-face { + font-family: 'Roboto Mono'; + font-style: italic; + font-weight: 700; + font-display: fallback; + src: url(../fonts.gstatic.com/s/robotomono/v23/L0xdDF4xlVMF-BfR8bXMIjhOsXG-q2oeuFoqFrlnAIe2Imhk1T8rbociImtEmOUlYIw.woff2) format('woff2'); + unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF; +} +/* vietnamese */ +@font-face { + font-family: 'Roboto Mono'; + font-style: italic; + font-weight: 700; + font-display: fallback; + src: url(../fonts.gstatic.com/s/robotomono/v23/L0xdDF4xlVMF-BfR8bXMIjhOsXG-q2oeuFoqFrlnAIe2Imhk1T8rbociImtElOUlYIw.woff2) format('woff2'); + unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB; +} +/* latin-ext */ +@font-face { + font-family: 'Roboto Mono'; + font-style: italic; + font-weight: 700; + font-display: fallback; + src: url(../fonts.gstatic.com/s/robotomono/v23/L0xdDF4xlVMF-BfR8bXMIjhOsXG-q2oeuFoqFrlnAIe2Imhk1T8rbociImtEleUlYIw.woff2) format('woff2'); + unicode-range: U+0100-02AF, U+0304, U+0308, U+0329, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; +} +/* latin */ +@font-face { + font-family: 'Roboto Mono'; + font-style: italic; + font-weight: 700; + font-display: fallback; + src: url(../fonts.gstatic.com/s/robotomono/v23/L0xdDF4xlVMF-BfR8bXMIjhOsXG-q2oeuFoqFrlnAIe2Imhk1T8rbociImtEm-Ul.woff2) format('woff2'); + unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; +} +/* cyrillic-ext */ +@font-face { + font-family: 'Roboto Mono'; + font-style: normal; + font-weight: 400; + font-display: fallback; + src: url(../fonts.gstatic.com/s/robotomono/v23/L0xTDF4xlVMF-BfR8bXMIhJHg45mwgGEFl0_3vrtSM1J-gEPT5Ese6hmHSV0mf0h.woff2) format('woff2'); + unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F; +} +/* cyrillic */ +@font-face { + font-family: 'Roboto Mono'; + font-style: normal; + font-weight: 400; + font-display: fallback; + src: url(../fonts.gstatic.com/s/robotomono/v23/L0xTDF4xlVMF-BfR8bXMIhJHg45mwgGEFl0_3vrtSM1J-gEPT5Ese6hmHSx0mf0h.woff2) format('woff2'); + unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; +} +/* greek */ +@font-face { + font-family: 'Roboto Mono'; + font-style: normal; + font-weight: 400; + font-display: fallback; + src: url(../fonts.gstatic.com/s/robotomono/v23/L0xTDF4xlVMF-BfR8bXMIhJHg45mwgGEFl0_3vrtSM1J-gEPT5Ese6hmHSt0mf0h.woff2) format('woff2'); + unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF; +} +/* vietnamese */ +@font-face { + font-family: 'Roboto Mono'; + font-style: normal; + font-weight: 400; + font-display: fallback; + src: url(../fonts.gstatic.com/s/robotomono/v23/L0xTDF4xlVMF-BfR8bXMIhJHg45mwgGEFl0_3vrtSM1J-gEPT5Ese6hmHSd0mf0h.woff2) format('woff2'); + unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB; +} +/* latin-ext */ +@font-face { + font-family: 'Roboto Mono'; + font-style: normal; + font-weight: 400; + font-display: fallback; + src: url(../fonts.gstatic.com/s/robotomono/v23/L0xTDF4xlVMF-BfR8bXMIhJHg45mwgGEFl0_3vrtSM1J-gEPT5Ese6hmHSZ0mf0h.woff2) format('woff2'); + unicode-range: U+0100-02AF, U+0304, U+0308, U+0329, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; +} +/* latin */ +@font-face { + font-family: 'Roboto Mono'; + font-style: normal; + font-weight: 400; + font-display: fallback; + src: url(../fonts.gstatic.com/s/robotomono/v23/L0xTDF4xlVMF-BfR8bXMIhJHg45mwgGEFl0_3vrtSM1J-gEPT5Ese6hmHSh0mQ.woff2) format('woff2'); + unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; +} +/* cyrillic-ext */ +@font-face { + font-family: 'Roboto Mono'; + font-style: normal; + font-weight: 700; + font-display: fallback; + src: url(../fonts.gstatic.com/s/robotomono/v23/L0xTDF4xlVMF-BfR8bXMIhJHg45mwgGEFl0_3vrtSM1J-gEPT5Ese6hmHSV0mf0h.woff2) format('woff2'); + unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F; +} +/* cyrillic */ +@font-face { + font-family: 'Roboto Mono'; + font-style: normal; + font-weight: 700; + font-display: fallback; + src: url(../fonts.gstatic.com/s/robotomono/v23/L0xTDF4xlVMF-BfR8bXMIhJHg45mwgGEFl0_3vrtSM1J-gEPT5Ese6hmHSx0mf0h.woff2) format('woff2'); + unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; +} +/* greek */ +@font-face { + font-family: 'Roboto Mono'; + font-style: normal; + font-weight: 700; + font-display: fallback; + src: url(../fonts.gstatic.com/s/robotomono/v23/L0xTDF4xlVMF-BfR8bXMIhJHg45mwgGEFl0_3vrtSM1J-gEPT5Ese6hmHSt0mf0h.woff2) format('woff2'); + unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF; +} +/* vietnamese */ +@font-face { + font-family: 'Roboto Mono'; + font-style: normal; + font-weight: 700; + font-display: fallback; + src: url(../fonts.gstatic.com/s/robotomono/v23/L0xTDF4xlVMF-BfR8bXMIhJHg45mwgGEFl0_3vrtSM1J-gEPT5Ese6hmHSd0mf0h.woff2) format('woff2'); + unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB; +} +/* latin-ext */ +@font-face { + font-family: 'Roboto Mono'; + font-style: normal; + font-weight: 700; + font-display: fallback; + src: url(../fonts.gstatic.com/s/robotomono/v23/L0xTDF4xlVMF-BfR8bXMIhJHg45mwgGEFl0_3vrtSM1J-gEPT5Ese6hmHSZ0mf0h.woff2) format('woff2'); + unicode-range: U+0100-02AF, U+0304, U+0308, U+0329, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; +} +/* latin */ +@font-face { + font-family: 'Roboto Mono'; + font-style: normal; + font-weight: 700; + font-display: fallback; + src: url(../fonts.gstatic.com/s/robotomono/v23/L0xTDF4xlVMF-BfR8bXMIhJHg45mwgGEFl0_3vrtSM1J-gEPT5Ese6hmHSh0mQ.woff2) format('woff2'); + unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; +} diff --git a/0.47/assets/external/fonts.gstatic.com/s/roboto/v30/KFOjCnqEu92Fr1Mu51TjASc-CsTKlA.woff2 b/0.47/assets/external/fonts.gstatic.com/s/roboto/v30/KFOjCnqEu92Fr1Mu51TjASc-CsTKlA.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..943c5a0a86672fa62e37e798f763c6fc133fa87a GIT binary patch literal 10428 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 literal 0 HcmV?d00001 diff --git a/0.47/assets/external/fonts.gstatic.com/s/roboto/v30/KFOjCnqEu92Fr1Mu51TjASc1CsTKlA.woff2 b/0.47/assets/external/fonts.gstatic.com/s/roboto/v30/KFOjCnqEu92Fr1Mu51TjASc1CsTKlA.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..b2391b928a412e3963c5e03e9892e5c6f15d9f0c GIT binary patch literal 5928 zcmV+@7uV=_Pew8T0RR9102e3#5&!@I05%{102app0RR9100000000000000000000 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 OnI?o4bc}cCkQo4MZ@9Vu literal 0 HcmV?d00001 diff --git a/0.47/assets/external/fonts.gstatic.com/s/roboto/v30/KFOjCnqEu92Fr1Mu51TjASc3CsTKlA.woff2 b/0.47/assets/external/fonts.gstatic.com/s/roboto/v30/KFOjCnqEu92Fr1Mu51TjASc3CsTKlA.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..bfcc76fabfd5e447c609af972942d94ae0aa316a GIT binary patch literal 16700 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 literal 0 HcmV?d00001 diff --git a/0.47/assets/external/fonts.gstatic.com/s/roboto/v30/KFOjCnqEu92Fr1Mu51TjASc6CsQ.woff2 b/0.47/assets/external/fonts.gstatic.com/s/roboto/v30/KFOjCnqEu92Fr1Mu51TjASc6CsQ.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..22c57b0157cc6b54574811e3ed5c2369b29dd134 GIT binary patch literal 17508 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 literal 0 HcmV?d00001 diff --git a/0.47/assets/external/fonts.gstatic.com/s/roboto/v30/KFOjCnqEu92Fr1Mu51TzBic-CsTKlA.woff2 b/0.47/assets/external/fonts.gstatic.com/s/roboto/v30/KFOjCnqEu92Fr1Mu51TzBic-CsTKlA.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..d2f30b58aa2d18e1a048b945c8d75dc3ee00b55a GIT binary patch literal 10076 zcmV-iC!^SRPew8T0RR9104H1k5&!@I09vR304DkX0RR9100000000000000000000 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 literal 0 HcmV?d00001 diff --git a/0.47/assets/external/fonts.gstatic.com/s/roboto/v30/KFOjCnqEu92Fr1Mu51TzBic0CsTKlA.woff2 b/0.47/assets/external/fonts.gstatic.com/s/roboto/v30/KFOjCnqEu92Fr1Mu51TzBic0CsTKlA.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..c88b8aeaee17785a36a71f2d8489a0f22d6e3432 GIT binary patch literal 12620 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 literal 0 HcmV?d00001 diff --git a/0.47/assets/external/fonts.gstatic.com/s/roboto/v30/KFOjCnqEu92Fr1Mu51TzBic1CsTKlA.woff2 b/0.47/assets/external/fonts.gstatic.com/s/roboto/v30/KFOjCnqEu92Fr1Mu51TzBic1CsTKlA.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..6363b1c7ec0c1650cb20d3f46426c4723d43d72c GIT binary patch literal 5972 zcmV-a7pv%ZPew8T0RR9102fpM5&!@I05`}002cHB0RR9100000000000000000000 z0000QG#iFm95x1E0D%AqN(qBJ5ey2^7|I3CNo-tQ)gzo1JTCtUW`e^C$>ML#2!(K7KGp$D5rNHWVqxc20mY$p5v0i(OJLJ7pavi{JP zKmy8IaKx_eR1r2uG-tDSmxPGnNhlT(ekL&G&QLB|8r1LrEhhr zl&WTNs`9(CYb8$KMLQP{!2w#t3g8eNg00PsIFlP8ijG%uuoZg%mP(;fYrDHQTjWJa zB-@fGk(>yT5D8It`fo1vL+y7`zBcU!uz<)`#u(K10x*Df;}TfZQswns8`eUdI+lSH zB$ZfMi}GI3TKZ*h=d8p1r|tjg%-Z=gnw9L`fD~|u9D<_rdJa3lsvJ*bNtP@_*b5&O-F+`sh^s@c@=|3}9U)c--4!hr<&~+gZLjFgHs6<1cO9%HF)wSw*w^0s(;jp! zJEG+bCP*`_H@|L0p;)5vV0Xa`R?&y7A%N`D2T|);gdKvHdx2e~h)XVuQiAn8^_68{ z{Xk`YDOf+6Q(Xbp&?EO%RsavO#46C+DX?S(H!%Bri~NVc;@GgB0HYSfvG|1nnYIG- z>W{$0{^CA4YMj+S^pA@Hm;38p(gyb}+AptpPORJXCtiBFuJrqRK`T$*wU3)}NBWq5 zJ^$?`{aByqgLEN_?dQaqD|eo}`SRm0P_R(Qy8a4gZXbK#Fvlbum4@P$F&$+p;iOXa zQ==->E$^>GuYe>vIcqg3o?&h@x7_u4ubR=gTwwrSh@0IRvV`Ww-#}QS3MNotV`?s( z$|1}xc71*b;=C4v90mwk0vSA-%?U=Wi77EB=4tZ~Vu7x`>!F@02T{nU(iz0o``N>% z3M$WNTw)to)bcW2eno63NCMmTN`nd9KdvaS4SF6>&rgz=7~T_xg{$D=UL`#G!mq)D zYca&~m>k8iHpne+P2Zb-6>sla5G9s{Z4|{|3~d?Q^3L=__rucKfR0b^PqkC=_X{5Q zKDgbx%U-7OpS6!ZJI`(KON{Jr@`qDyYP8n^VAYgOzpSK|7?%LEdVv8k2Y3_`^r^;R zfHnc2dK5VA9$<(!Nh3*mTt!CBq&oQq#{jpDb7zz z^OBK-JwotDTqcT3ERm9!4faz;Qlydh4Y!UWh7HdTIw1s>97sz75C?! zK5Ow^!_hq1Z;dF2o zq07;y6NH4R&oW{VEDlSLM+ljO3ENm#B%-qoIV^%r&>+L5-Q}FmWgGB0@;o$fXEqd- z=#)<7mY`Bj11pu)z^-SNu(KLCsaz#b0pdfSFw4v+t_FAU)6GRe^3xF6ZD5;aD1$fx9dBXe$X)9D?_mrlY9;hO6qF+)|jj|asS z-Zh>!is)AJZ%hWSHI$-?@d|l4-(6dn{auYKvV#m3=6qjx)(4m6N%9W>X?|k5WsY9O zVCDx**WD67KOc)egMzD@%G;RA1W3G{`Se$uE%{K`bSB>AE2elVV7tAF@nL6RJhSRg zPB}a?kL{z5homuM2~8JFV_G0@Ip)bW6+Kv~ zp{p*Bn>(_2EXxDQZa6v%S}*R*sD=sm3vRh=_`}$4Ue6kJ-#jGZ&!i+Xt<0durB2v7 zFmUSC0vUsCuuk4>d2+1P!d-m^bwzonmZ|e$CHW5L|8HmQ^#6=`iJi;pos$8DJc;KQ zgQV5=;M#x9_o*9Oi=)h5l!?c=U6cM;Vjt+Zk>v7|Nc&+^Rs5t--)VL7z^?g|-|XU! zk~{3)&GAWhjE}bBo+7O#W$MkxZnw97q7N|EXH;Df=*}9z7GnQ*Hhqa#(}z@5=eV36 zo}Ljci#}YrryAc)xfRQn(a9Ny>+n_7OPJY&w=#)j1Rj;Vi8T6%Yp{o{rQ^KC4CiB3 z4Cmv8ae8b2pfupC=NWb}0*^V^;^s@|#Mzu6Q?v(e7weAAbpfX*4{B{5)Cg@Joxcuu zryf>;V6P@m!)J&pF@SFZCmCQxEg zh!}f$x*kt2H{YKFD~F);R#naAYRSpirTEn9;>jZ3CisC>GiMLtd9dt(gyVRfJbkLs z#@_Fz>l4Cgkrwo!4y=|)sgC;7x}=&Yz6p)eP|Mnh_ z6qAxOg3*Jl*eTYJV&MrqEEzG zT&1jxK~4D54<3W+y6$0YB^vmjzoYtqu=cQ{l%AW1wc|-e-M!X^iA@VQy=dyX4hq2jgDHi@)15p%+zo_i`jWwfqA-QQ<2oDpWAEq z+vz3q%l8qtD9`0a}0e42Oul|I=-^B0p{+jy;H&Sp1!NcR@ zm+U{aei7b>{#t|jP9eOl7Aa74*dMmOuAiti&C7F4#Q7eQqmh_#)WimE(B~h+%dsCPrH3Mck0j}=i*Jc^9ifgJcQ=}NYcNA!9l)$;Y zZ;N>M7E{lf9Yp!TW(~Fw+tx^w?#A%44m>p3duPP{UFmzS(@7-4BxoeoJKGd)bTZsMHK$Pym@Y1fi zCZ&%}%CQt$!>nv%#VlF6AtE$q8NaCCGuZ0jt;?`^*dI-3*L$?M0|lTIx6^y{s0k?r zLHBQG$>eVriV|zZ^u)BhK&y5?cgJ>7LYH$z+mLwoU*)v}urMZC7QEyvrX|zU^X&cB zwA*fMyBRdU9?pNT;oF&E8#;!r)dwK3W3)`KK@B|y0ZlWOhuhP|tbsr=!b0}Q4ZuPz zTMl%ngubHfMDDHus$TuIq|+59kPGlp%cf{S==B_YUZNZ1M-hSaJ;V#3x-6V#2s|-wT{>HJ`3qp8_ z+>qQ`xd(&}fJBE2nIQM24Jr#^ZH?4H7wIE;=q7(1)JTM!r*-BpVIoCk;7p=&ml9NU z7#J?csMZ0v6mTY_xg4C9pzV~9!1;?c5Xbc(gPma*GU44p4!c4Wa?#kJfZ^bU!swqt z2_wPGrt#lz0~B?4c$!Ld025P>M6Jd*x&}rkqb!qD6aWD)I1nlt#WuJbXT-kxvp2AEPw#S>oYyD2;wMN-JnNoblrapDvK?RR%@*y-$R7Ke*h(E^Y4I*l_t-an2x^K&1T3Amd$#Lqf1~owxpp1u=KHjEvOYXtccFRA;<#Tds z%cg0|SX4KacI|krXWid4Iv@kxZO!O4Mnm?2a`v_bpgh-V`}^s52~V>BmmjRy=eYFa zrfZ%do!YCcDn;qfmGOYmp9NcYx8^-AnUf7In?@HqD(IjYFE{?%G@t{L>27L9_ur9* zT-%>Dr_qybe^P%n0D72qOYTZ)m8n;0X3EqOtb@yBaFV?HIW@L=m6dd0M(dWS^DmA8 zeB|Iy5SZCRLPKR1~WzSXO2=>fMJB$o%B+Wu@> zk{_Tp34nA(&`=^gBfC9yaB3)2*Z$;fohS){$tHc&5t;m7AZk%{QVrdRS3(#1r z&JS+`jtrLE>3#p7#fOl1!yag?O>V)U1wW}BuAT(*$4Ez5!*W@@=2PIJx~s#1M}7p1 z75IwY<6Rm1FY!Rr$ADEaFqO?{Rj`C{0udC2ICFDu3urYcXj=p>@DXxGKbUr(YVMLz z*0?`){OwWUi3wa2qEb4|Z$X@fIC78tna}Yq0|zmN2Zfc1A~Y4IkTTZb_ULNA)rFzY z$AZ6G|C8onBe#Vm`CXufQ*7Hi8nqd^NaeQltcX^Naz5rHB(e#60$?!HC&m_~GCCMA zW$FSdt{OPnML0Mv%>Yt?(Xb;F|wpRK(P@r<3&{OAJTfCsTS%| z-K%Gnp-NSQn&si?<*oi#FVuG+>Zxste>P4+#}lnbC*YufT*Eg*$q>yO!H@b7$;Cw3dknQ zn%T$5MCJ-K4y0;bW=J2G+glbV?V+T~Lx^@9Ok;U~SfoX9>ybUO!O&)?A*B+6-J>nu zTy;Gj4TXB7K(^K_5j?y-LBB=Nnvt4QKo5|Y0M{Cs6B_c>)qd_?Yge-s=DfKOLtyL$lIq|_qf_ktZnnvuwI`B#$V`CE3Socr!W6b}g)d5bvb)q!v0v!Y!~>*kbr~}@v5j5q<3=7RU%-G# z_VnJBOMR+J)oDwrL$I3JM+36f+>W`Uj_df2szW7Y2}N0UQb05ZyXL?LEmrZR17m8*QEs?=3Wg{avau3SDeaeBbQ zS!9Ae|GBV+oBO$HuAXDL-}~bA9IFXyaUrrvPG)G@)`o8AhpM4^*fPZCO=y()pcB%< zBS#tv6f~e=y5^3It~YWcKT?gTlkZD*p%VjmX~8Pv$nA-iz+M|CsfWGDS{1u$eWsND zic*D9!gu&Pgn4Asp3Q4}7^cq_vNA)s=e54a?>VnOEYq)TAOfO~VrtjW0{fs5ml6JL^64{Z_mev_9ySy{HRYm+j0pkljq#K3sL+ScaJ` z@b?0?i0#8R+KC?gO)n*&VVW#3{|2Nb08~u%;gT7aX@2Ov7Y^CZydW-HpFNqa$F^k~ zGVFbL>SQaxFjj$RlMTFoVfQS%{j0@CNKRYn^js`6$QI@WSukwTB(^!*hAm;+F)V#7 z)ybyjH}*Z--~P_+BPBEJ81{_G3_FIDA(QoihH0`M2(ge(GQWd++JJBKQ8ocKX8V|M z`iOub@-cPnV>&Z4=rRuwMip3Xrq<$-qvj}cWZ(wKSnxPP2Z57wYNfOsTFW|QX33Ih zh>=&Fsfl(Ql}y&sgmuXU-x8Zd4RzCYe>H=iLTit*{PgrY1* z6_~jnF6tb&gLOD8a(lQ~qa-}or8TmK(;geb%?{@u?-JLV5J+vhdX`p^7{q(D%CQVM;_$Vrkzj?0rh3__;S^9W``Hc zC2os&<0Nw@s+5aUArs_Fow@TCy|p`|Ec2{|+`?+pd2w*0E+J2Km@X%mPcFGih0uG} z=c`bbsKT8^2^T0>j6}g?VhSDM^bbB=GWosm1m9d_|0a7Q!72ys38#Hq*DQgV^@Dpb zg@;tEYe?f=LlFz=rg~WnMXAk>bel93)ymA6&rH*L4yEJeU~bH9q`OIRC`Lx4mz`iJ z=5Nk6Cb~ngViZ#>4L5+1#Y~z#3IEkyc7)`ks*$)xs~%}Z(`VF-_!&gD3UCW@(5gpb zu^P|ALs*N2CI=u4f-W0=2ndeS z#ByX<0+Qrn2}ukii0AA4zRqn2dQxYSk#?ZcW3wm2l|Hr*c0_XjcJI#y;@yCY$hwhK zr%OsrgcABjEtdbht2MQ|8cZtFs< zxcwCfiUeEefumcod!Xni8ME znJR(|$*|bLGtNsVXJ`BHzP_JMZUCIxZRU>zQt2L~)D46;(i1V`2lo^h!e#-qc4r4ghOl4B2mCKo_X3jkFknv|)w$%XGj zu2Hy1LG{ZdCPdnYOk2rGutBC9U}5}!9~6+gmH#BW()bXct{GIK@jYc2;3>pRc;}8T zMLf|mYqWYxXV3V7ciGT{KD<(CVB}r1=EtIw(zyT~jqPIb1CCkjtBT(OpsJL6OoT+V z9+hlCKtO>S2x*|s8+CE!?SKFw$J9ZYno0g%mD0*A{55~9dYgX=WeNbi@{^_jz`HW& zqkrQ6f7iKaw;+v!0zkl;l?#D0G+A;(&w<>h2(z>!OyUQ~-+(cN94!tXja#`}2w<^~ zV$zUB0EmD>#X$}MY^ETM=ngOjfZRfeF>XaM)ozV6gKFJvP=__QNiA-l8(|1v=}ZHS zbkR%|6;#p+!38Iry`2zA1LM|OsBbj&lp-_|j9_hj%I0zl_&iDrlxEtYlp&Bp10^)j zN&_K^8J7JunpTRbrHaypry;tWadc-3RkU3HOcdr_@x=GhM?DWT@`sgt?&4M&@jA?9Fd0X zh>B_mhvIBkQyjr=c&LI}aBc#q*RTM6Y3V2*%K)Q&T&#y_fN5=B8V}Z68v|?~u~uoc z*YV(3Kp?lbk3(5NFu=8LWx_9%(80y3cn9o+m92)z55926kITaBfJRxAT?g|L7H8WR z$-?YdS_@5;McMu|m-f*U;u(x2ucZqJP`~Ef#r08%vKA7S^yG(cmXy7Bm;*q1Rw>2CI=u4 zf-W0-dV#sLc0KSl8WB|(n3ZMdq3h=@?tEfP*@ z5y}wYh{&u8=aj~`!iqffl#RG;r}VD17xq~4U9Z2}`q1hFv^F`6j#Jgm6$|JMHX4#L7L!ADGiUzybwk59jF5iY`3 z$jZ7@$O@P6{D1d7w%@OFt9~piU;zoxG-xy+y;`jqni_D%ey3n%t(xkKSAfJAwW9C%5)WS z8FF8_ZLQIm+I%m?lvn}JsX1AK{{gU`Q4?~nWwsDQYOWR$5vjAkds(U#=o&agM=%H> zW0q5H%-=0zTJO#E-3+yY5)7CCYNb#QxKJn$mdp1ifI#8#=l)Fyd{$!##EBb-kPyV1 z4~QRsC?P^YqKQEyBp?YALDFP`tcn1PO0Mr4r1OehF5Fm&ryNVWuU?zQc_XXM;^D~lw z_SOtZBGBFym6ZatfjfW6NC7k;6j%Un8AUULqR++qKuB-H0O%*Y1ZHd~@<;X$ML)Y& zSqD+Uu;Jo_+xKrM!-m3wvV4gk|8R!taw7O2&rwL+Ml(|3x8-+CHzEm}Zx}gtlton%k9fQNtKl1Kp z@e+24dM@^Bf?$;XSboP9_K~7qQPp|1$kdT{K3k~VY~ay7&(88z;IVL3zq5wKvg<_SbBy`QiTcy~-ZXDpqV3BoOL3*aXF zJA>}(F?!DRq22ZHty|AH{pPG8!$!ucJN0ltFvW^tvJQd^6juz~5Qu;$8W}MvF^EVJ zi9;j6`5_QbYXA^f#WE2qtSyzF9LnY^rJEe;RGBfA)JEaEG$E9xqJt5 zoCjn^QMm>(2IUr%JMi44z&!-+Q{Vvt;}m#^z%%l^!sazPQ!vb6F^kQ7o7l4LAqdZ9 zl;a2n3ixmHeQ2JQ1&LV|k|kaA(|y1QZo#e*w3s%nL-vYeXVYb1kf_&RV<>eI_y^{7 z=NSP!%aMXxMyeAiB9~K{N5E9f=$lR-zl^eYO~9P`=?AH-c3LH^k=AHy$ZP@s`*)H{ zk8`j9y)mXh=wz{?i497XDOaJ=3omW7NtI#eW>4P>E~>U!EPCvTn%VUuxah6zo_gn?X8J7Z@IUYn zc`bL`6%Q3Ttrnnp8HpA5QA_GbG6Gw+p{WeZ6tP1Wx{adPpAZ08MkW0m1TU!|{7Gy0 z_nqrh3T>WeK!(iz$pJ=Yz=lBjHUlx_5~!fuNTM8;@ab((EBW#278rraI;OY_K?MW0 z@+5}t#A2s(uJ}%Mkb#ENF?5Jx9X|)spIHj}&oIO3#u4q6tOccxuyab*vd3sEfl(S_ zRWop|Og6qfwOA98;QD1mBJnNtwg zURpS$Xi2w~Dp_?Il;LzM-jT(nGiXEXdn5)9HqIJW$I%yu@8#Fp#7!*+zChbBNXXxd z685(OwXc7h#)jFpIz#M^;cSkj(lU-5q|Y6hbK>c3pat>2r~u$^0K!iIKL8C60qvFm zAcuhX7cgK8z)qiVAf1JUhLBXg9xkB{-bFvJ7S$(-0$RvJmC50#|4khl$bvt290g?F zI`Hd+K#)iw1oUU>rThQ7=HzQ*ZT>d|9;I@WBx}Obkf)?oYkVvuYG0(Rjd4q3=*&x6 zJ4ZiC<(<1|mKHwClvNBXgx=u5g9(J{5DhY)ba1B>jm~Uqw9`Rz#I8GNOdiD^jK3)u0P%mJIb8Z5qh~q9yoc;@RsWFcw6yqIpa=43}LUmA=Rl_t2-QQy^_`H80X>X0Fpr zFag~YvfUG>dC0jrfa=c$t%j(#9tQN$)2SEHBXvS~mBkcvHY|dn$_3;O94^-jM5~DU zh+TKOJFFyA(a`N_okXH3YE&D$i-ppRqV|`~L|uckYUP6_Z-&T7ktKu0c^U zwwqnR)U8606iHMqe?GNIc^gLK3<^Tmj%UF~?)6b~Z5W}lI36bdIjqJqcLS>ZN0ZNk zr#P-P1WTu0UkGXQpizl_5Ob(%s#@jQIZfq4D^t41teSW>bEJ&lB5MxsX=TP3R|woK zCv?q@qEEGU1GdksQwC0JL|;bx4)f4PYq}!+34)uqEX~0SQ!YAHr;5YUwaMs?hGOm= z>;Ws52h=*ThE<_1g?Xv6ID)(~E74esva$q$JD3rhz9GRD&46(?>&!XXxWodHm~%=K zJ_9YNs@ImeF|;}!E}^wcwNNKxb+t7FsU_RXb4f~&QgNYTwm2kJlWeDN^rOk+A3oRSysv)= zc9-Ux+MwcyfJb3(Nz;N7AT}j%XX0HNjya~`>C#z%0v3^?w%$BKp6M`Ge4YAmw)xoA zg%s_FY)}ajDo{+x<=wtL#aG5!IIVX@4v?*Q zg31M~I1bM1w1Ke-6#SR$JaTM?#Lf{Su(@-2C`#d257?q`+2CnrxeYcFu52uhS5Sv? za1gfl;e?*kH(*iMa2zfdXduk-Y`Ng?+I9hDRJmiQm>oBH8BfFd)B=cR=JBGPM!sN2 zps>pfWv9-7DO}hA!`iT@b9$F@&Zu*Cu>S8Dqv*e?jo4{s^H&IA?*-N=sh=fWo$bbL z$p51u0m`mJ-8Y2^i0R$9?>KBXv~PPKB%ajKGOmZKK!LzfbD|$@0q>&HQyu3iyUan( z$*e{xa}hH`5zaaxFhP^kTsB}c(ONXWU57_>-pdJ0C<(oxQYP#;+rI(+6*yq#9!lt- zCzF%+n9U#<%c2iQHJ{ujLRN07pQv`>xGKnz@NrTPSKnBz(M+fxbCQm3XhYsvn`7IL z7pB!2Y1yK=arTEp-ER(kI~z3iM-4I)r|Z`6_FxeR3|MG&Y+oFQ&olYG-=Z(kyy(YX z0nAh6bL-JWX;I@-xgqxzIx9SgnLbI8T9;&ncPpseM^6AA6#!ntdQpcr<+y zX@pm@{h)=>MJPe4KeI_;60K-mCo}vr7?AiXs3u1m7+Moh8Me=`nuSyDdDr+)u!!#w z&ju1-EVScr8BeqrnZyIQ=d+m!H7Fs-V`Laz%5h(WF3e#WFAbPzL-CqFhjMZe?IoDe~y$+oDDkel@3a^6CCGb6K8 zWK|`>CXfH^7~mlJeTD}?`2Uh-Z)JS=OvOOuClG%WN_O?&=Z3KJ*`1-85d1k@1xNVE zaUWJZr*`5FWzOx`st!By#$2)UM}#?){O=ZTo85B@d48sa&B$km)E@t~Ee!8M2-9F+ zTt){4BgRtcWqOe`Ke{v9bIj4t6oi(sy)sgvY=6i3%ALJtWR}%%(x*C3L|Mj{Z}!O$ zfoXy!vZLcFZkJF(Hj#%nIE_fmCNy&T^7OJ0!-v+NryiuT)p|une1WAktm@QEb(*w^ z1zu1|wih{2XJYq8E8kt6LgF>1W0;xLUv3d4TS^Uf&JMA3fJ_@OqE&_Lf@%}zLk%CS z3mt&3MhGz`F$z>`j?cc*Cey#W4dhfvb#gA;uYDi_{F#PUc!aU`bVT@qy6s#Of# zmI6Gur^!}d98+v&W^W?u1&!w8y32$EnQDn}H~9T8edOt023Xl;R1ylXczU@*&cCGG z=~fhmRl_jUOC_n^%Q`iBKRE3aD3P z0%hG!8Ocmp{fqJ@TCKLz!EIF%f-l+mm36nggoty6^cgpO*+ zKUee7;AD-nQD7fxA6y!deJAV1xDdt$QeET#F1_@`BS{W&8JQ)ZFSLm~yph>U>`C;| z96W~)a1*AcsET#Zv~Qr3CMEq)=tR6NRjFeXAE;2cvhYGfwV)1a$pbsN+WLL zEY|a=&FK2LwHYLqf!12GxrpiJo{oCEnz7tn%WOoBk1QISY?q~bIkQ)~x}-<>IH_1( z!8h}|nz;!rAlAVB&~x{Y_1Ur+y?6G;(F=O-UYczVbi5Fv2c2~a9ZguDFiBgFG%TX= zpiAVl3nRw0GkTV~;7w~oazqT`0OPH1Dbn%HoKsiOo0zD$#?%4yJbH)1nNVykCnUxe z$3ibyYv825W^_}Q)tm9iTu;Gp4Twf6e28}S4(lwYx{hLf=hIVs7`W``raaPROP;b8 z%cB}zuZmid-(^T`ZNUArb31wkdymL@q}Y~?i;pY{L920HBI{uXt4HfVd(kdzz^ph~ zqV8m89k=T14{Xhq_BwPk>^TTGUx8>@4zz|s=i|D|X8$tH4c{ji$^*K=j1`A91Ktyi zaD?yY34)c*mBaaDvta>sLUz#5!Zzpg$`wYQ<2oL91c=Q#z;W9oaI3n_ey4$d?dg6; zAiSH$f#H57UJ8Uv3xV`@fX(Cz4Xt%f`}v;NiS~4*ReE|zKx$d>GFwgOR2vwbU-#Z~ z3zCftiQ;xaF&nHDt#Z2V%lH*9UX$W(46(QNSFO&c_sdDd2&oZPG zJ`iTqz_WumbP%0v}GQPpwn>B6`mk zEfpx>hB{Ue#sfV?7rlF=UIM9C+a9kHtxL-KwV`0#wMpVCkhoUtb}d%w)A=uQtIp@( z6j+^13L^+(gTrAk+#Es?2>`CJ;oPs-?XV6`$HfiebL8)0awCm{kKz*KDw{6R6IxMtS^SSJ+As4^+6rCwr@_uus=EB z93s~0yN5Hg$OiU-*)r;cOgmn$K&26Wg;)&tnd_*)bR&Nqypmg?#FSOsDdH;rR)W)m2VQkq;K9#GsxIGjL<-hD>w>7eB1$rdc`$^go@% z`Xk#?n-bAdZ0A;PwI*cmIsOl&q#3D2CQ1vw%I(2cYo4|;iSzppGl!BX_&IkAQ?CJn zsTYrQ+48ob{qovP_B;6wJ2Mn^N>4ky{p11a>QWr)cn)>pYISKxznbH8Rc?JDu6;_r>pzRU2zDa=@%`=Ky_>qAY_7O`s}c;8R`m zl5%Hd#JX21liGxrXcBDmF>q__97peG{RgFpmx{m8yV2Rl!DG)rk9bUz3%30?OYGmpivNQ*RLUK=ncj;_6P z6zDGQ#Rn4V5}VV|%GY^nK}OS&IaYBC(uKZ1604`!-3yY^DZ~%a_S*bx;P{sN;Sy#5 zotS|m_|tVb5t5&(U*Z7NPMW#sp)M|-*1!WM1khaNATF)!)Py7-DMPO0M?E2x*8t%~ zK55WWsoq?@J>bV%XF>UqMTLvUGHWdw|&tpYIBdr*Yej76&GH6FG^P< zn_0396JC5E)~4H=#%f9+ZLVz3omk_Fg6Jj z3L^Cdk@|kHtR|M3vdT|j?x{4bwMc_Y+dW#~KM_A;Q(@8CjFA1zrZ;pMZ;-EYSJB9B zjVH#fn&(n8+99uTLiH+-Kghj4d2fu-J7GNv#iPgnevh*3R|P7R*+goiQ7apsP22MK zSAcPE>+hgXe{ya$rXoQYMO!w`!hiO;&0oBU<(9`P^gR8l+a6lk57^qBzECaiDSkeW?*TntNC`SFw{&v^mv(O?I?C5Zu?lv zv89B@IC210oSu{q>fZAmq*%A7YwHgz#);XFDjKZXwl<1ci@dBT`9?U%N%!1|JS#6PZ~o1;^ZO>urK@XRig7_mQ`Qm2 z_yR{Rtwjv5fyj=GBk8MD=`H)vZ(AGC3C!Yh&U-ekDtj)%wJvi6vmL#;HS9a3(KyHt zDN8pgI|T5_qLLfij$wnBx&S`Ww=is74fGX+uDvT98tbUK$Ny6rgqUZk&Uh{(pO9%n zC)qZCz09q?<(@yR?2V^qMdlfiZ^?uhOJ(ar^1OocfM1-a*jpd+0o?+_6vRF!h#HDX zBS10nwA#1;I|U;Z!~th8({-=6SaD)U07vpJ+&qM{H*m6iEj!{oR1kj&G>_*ryV|Pq z=Lv!bT*bt8z)e1;-YZ}|V7G#)>UTKYT_Rsvgvh7P;;j-j{FIl97Q;ezU% z9(Dm${2WzW#w_qybm2o+=KxzI6jQQ+wP9r-XH~c>5Al8??T|}2L$=$KP$JT>nK<|v zyLqWET_@8hMRVnf@1=}#pnyv#OiP5L>4G%F46Qd_X)fLrYkF8GAcawK4+J$jRtnFN z?)+wrDV|k*yS1b^Z4l!RtK2p0Dw?{`TyVU=eVn|3H>UiE`QZ`DSv-NNf9LdIY}If@ zLD&X40btirI4u}Q^k5QZJ67Yf(k)|~HNp^zlo{~wxzjII<%6i=+Sp667Cuqwk9O8Q?T z8I!;&o@4%8LBrurS8dzsx}oi0J^3CJXfzZh4TeB^9Yqi=Lj zD3P&ClI!CH_TdHGBZnP-(03SW8t?+0KcREz7d(DR3*fhf<;5a}$k9=Lw~3h*c0+J| zD0&BR7bWo>#4UmY%8a{wvbkjh{6W4uj}8%#V5dkMBpOrQtWX~)Co;wyuf$zL9E?u< zJ|;^4b9ml*L}&M}qu%NN9U*1?KI)VC=g51vztY4Be*gstg0~3yo^nprJ`gd$V zLLeWM7>oLUf^TLM9$URNX%GlVmY^d3d;D0E@^E$gl(0NpU{Z|M#`Nzv_4_BqLBDvS zW4`Ybm?DJ%-`4yfPg?zZ)yyG}_`*nHW%H*)p7BKyUGMX(N~rNn*dutdbu?lbNmuL#~6BaGfvY}yY033N=NNqd7` z98o6l9Q!=^H?%QE=xMWpt0uR9w|lA7-7!nDA`gcy^X*gQ9lDwNO2FrRG zi!_wDe8lIz?L+BjRWiqyzJR2CU<*J&xcHQj-&kQgN-K z9=bb6_YgnXzei}}xP(0(-o~>Xy3<0bhYs1EOzJK)gq>y>^)OGi{(8$&`Zb-fz#VTi zk2NSCadjZ5FBmuV;RfAN{a1UU)~xX9m5Q{<_E&G|E`E%0%pY;gTX{a{Ur+Ihs2#cX z+xY}L&obS&`y3ks4I1-?=`@|VSY|1T2M^e7+EctLcR zbETB*+L4PmAv?aS{p6j{#>$xtVRoaV6YODE=(aYQ5IN zTOrXFK^Z&oy1(Hkxc+UX1PnGdt4%P#Xv$-YY!rCYHBU&egcVt;5^WWZg`@ ztDHN*g(#xeaIfE9XhM9E(m>}Um`IilV;A@Gp?V+OnuEF2Qu~CIKvoT-5p^z|ipKIM zij-!q+UhQL=`OA#wojOn&CY9+wa#D2_hhUIR|;ngcunXo%5)b;6Qp4TQ*R}LozKAx z9l4d(3PO!pnaiaJZEQgm&r+k!LgS=je$(JQpK*Gw^c38(#ded0yVMu|vG2Kzy45M! z`UT6YG`6enYvpu2rgvKS@vLIBaUwf)Q>1+bIglLoAK#gq@cr4*FH_kLzoW?C`lZWx zZI@AMURY*6Oh=9@g5G$p5qno_f~%rs4hR49TI2X z3(h4$pG0LVDyE2gNDVK4p0kg;_9&P?NR_4*Zom|RDm|U+NVUC3FVBuc--p-U8rjF#zq@d zPPv@;-lQqnIQ!BiMCnMWsp3WER_>`$D?v{e!aIR}KNe@sy~1r>Z34+YBnM{Ff!q>g z0KIRc_%qevEe3h`0Ksht&j2j(S&Cn2c$67t$OYZU}2+L^OAhGT*dzDAifE? zfqt7uM>L>Upx6hI!lqAz&TbTzY%_JNv>4fe`er0s^W;0) zP}S2J`S`sw%wJS6#Uw}-qtOK4buCy}fwYD4{j1LQAba7!Gu&ytp}=JxVpNLM^s(A; zUKB944NXM-L&7TDDk!6SiGQH}*ET>?z0caxO^4w?|Em`G0g#8JQG9Oek&e}As;O4 z@Lp$~hjsi~siNa3@E{ber)7mYGt0MOgYq`0U!MknNTU6%CR+z5%nG17uK-3dQ-gB5 zF`9D=LT{PoVM{J>*_zy|;ITu^V6X5K<_Z5P}P3XFWE^Zt!eS!h%Yzy%Cmt z9ZAtxq8AbOztH_ak1a3WP0F%>sMrIOg4;Gno-{I*&UyLcrndx=hK`_v=7@i~S7@Q^<^uxcx2Xl7RtH5`;veSx*SJm=Vk{BBX|4!-zMF9X`qS zA*bNw`}EV2z$-FR%t{&>?T$&4tNlz|BV6zW3m- z-!=814JNN!GatI96sGL&Vb!e>`4U3JiH;hTXIu5ZM(BUtBX`LfqR~Q3uG~%v<_8or z#4IaJ@v0_-c_vm+hIC(lA+>BqCgbwY6lg-X=sBI3+Tqv;Cmy67rC6zh=N8M+zT%!dZ4X{t~u|iU!;0;nWnCS0#l|&wcBCDvU$ck z@CU|8NDplesh#XnJ*D${dC%87{;u)tj#;}@W5Ys5g8=zH@5=YaM<3Mtl)pZ8(arbr zTj6CM@D6js?ZV;Px{Cu^;7oC0!f6Ba5;9Up|>v+ao*fNci7)>ocGI zKSz$n2gjIxyjOhg?!P25!n+dJqmkU(uaajyWxaNFe@e_&0BEBFpcl%){91kC!N}}B zG#^cqCguIDw89A{YP)UU0%)wMVymLS^1Y0gEqCW~IjTW~~lD_aCNsKo-sv!_xVAG`@mw=NIjB4YyRw z;9Ny1U#|!85^(E|(u^@Eb=N|C?FDq}$i&|fu?3>*kJC5UW}ujImUj@a-{!NO?4D6R zJ;unsu>Q;sS@HQH2ZgFXwl*m58X4kava{lY4UkXHawh&Z?D@g2@5g0NGW5muEna3< zi24(48EvWuxc)AKhmGRDBY);G5pp)lWJHGMwwM*%Cjz5qWEpLOE)Y_H$WSv%cg%R{r&g0!=0(XsgpMtOh~ z#&AV6>?guDY{<%ueLf8vfXny3u^Jg?d4ACyo5;GcGty5`V{LtWmzVl8IM+IJugJmp z^ba5n4baOMqaH6Z4nM;-G)594^!1X=D%cIp$lTnN3=e!=JN8wUKkS#F>t ztold1eY;QUUlbT1d!N9>Anj5*8$BAy8(gUZ8?*xuS8HqMg?`wRHt453B&}UW>)O}} zL7wC$dTa_#<3Iwo3Vb^cO>O*95tF)rI)KMkk$5*R|jSpLTKMuN{04*MxTL$$a4*R*5%r z;$h4X4Aou+o{_XNW9cJOs0Y+`EK2OPHrVVAp|k0O9vbq3&vL8^HKKVvCM9@dImr7e zQ2I5K>l$&vMrXQ#_X6pFZGNImWL1>;r`6>qOgP;FG=FBk?dxp+o?Z{Oz@?4e%Vx!4 zVxT-o{uGTEKQ}aK5iCs&lf7bRGw+_q5wFz9(u;wE z&uje*X6x0e{TcAcbG9|FF}v=5w(+T{-G}lT>(LK=z1ML#!35?TQ*GNE=ilW9mxgMN z;_aK{GKl|Jm4E>R6=w4U3=mh}^D7kqzzimv!8CFOq6@-=AevQA!$^eY9=re4=dYt= z0|B`P0387BV}Fa&B^uO?)l_p@pSzS~m@rmic9&qb;+Zi=Kx zM`Ec)dx-!%$xj+F`RpIhXLWqgxza7ej5Rvjt1($>(8%r4I4n7w=!@FFu9>^}fPAc2 ziSgrWKeKKY*z~?YcE#PjBQ#ybWjUKCROu(n(Q-79L40u(pGUay@gMG7@%jcOOdMK< zsj4D0XV0})=kRk9F!oWebDWpXqUPA^d>OsTeQ&T&WdGHX<&2t+2b`$i!q%=`gm^|eU#jl0~kc}F51S?um z0W?!3qH5ZUkzzGmapqhVVjk(6s5CFpq8&=cAsjiuBfd_ zp)Jdjs{2b?*1&8vJE~p7z!;7!I(9Ib!?tNlHc^2zlHu$(P^*HyY@X!UW!bGK|E7l< zRkKUWP_b?AonLo`G<>BNgj)u zX7HA1n7=9cEQ|;rMsu7J%@frRBo38nqsy7#=dwz)5eXg%#(*5)Q^?}4+<-h2n4{b* zOV7!AH*<|$w7ws7fVJ^^J1N=brtEv-7*4y5T32whkNNJ*VB=Bqtrw%Esi}ktmQMJa zVH;Rfs2^3;xAsPrx9uu-b;tT{0L?u~PiFW`04-UbGg?8PH^;GfwBdZ~?Q1D#Hqp$qkft78 zj6FX;{kU-E1Wk{m?OhnY1AlW1+#C1O@Y~)8-?Mh{y?p1k(~N2R*!-NQ&@R+^=`ZG6WCu6U(B+pGBaebqgUFtNPpK^D3H z+iT~ds!S-?#}H#Z#$VDu$IK?O>CMHbe6OUQlW(UZ;dD(WHQka%%5>*0c@>x8oLXyo zqB8X0R|r{O35uaUf@et6jLH83RU`E=UYNuo zDqJAp6}*!ALh7Y6sK0?LeTP@@0Y1PdBcIR*eU5G>StVL;+`U|~2@{%%Mkd1CZ3bZ` zcXb@6IL*!;pFWcu)Q>Y9SC8d}{y9soyR2-JvoZP90G!}t?gdBDk@cNh^RvbPt!fbG zm}HE15YWU8xY1gbcf?%tQ<+m}8wk=|W$>!k1ZWQJ2MOs;hAX6JsE>kf!4(V*Gy+}> zC_TmO0|5*H-pM|P?B`s)S3&Syq6+nR=hMNGj^Oi^-ePCpx8K={`Okxy{cP(SF0*?q zzb5&;@*!;})-2DN$yuLIA1%(v&8ku@HpT3wqE)vZir8buM36D{QI4~~s>zT{v>3N( zU*^4j_^2iclewgcYJ(~Oa+4_*_d|$iVhqQe%fdN0r>Wx#tMq@(teW0HB*$CGv09^5 zfRb?=l@6E4iMLijCp{qLyp~%$OHIWhT=2qBQBCgMTai$Vq-||w<`9R@B8U~27&W0_ z&UTu)HL@^5fNEXSU9Mk#&Wq1I+C*uZYQ5&Y3(@{g&^25vD-0Px%SSr>=r+otj9-^2 zN3@KTvuv9+CKrB8mg;RORHYTlqk}+9wLZxL+C`XyofGG{!FmaJF z&g03%u~4VifTK=hj#)=GH3!`H9sB8e*?^f$MLlc_*P=M;s78TP^nvRzHi0aifTxTd zmgR69go}yw@Hu|ZI2LWT@s&X$x*E?qQc-Qz3+*M5tJV{a_ORt;UblK8(Oo^m0mF=Lyu{M5|3d z%ygKT3(zM-?Le|s_Z6?M;p<;k>91>Q7kSY6X5C#lwGr@gf8j{ z1c&3sF~r@->m;3{a=2WJX)nE|yHi-w0u?=8VS~k7y;Ke>Ucom&;uC+qQE1~|g;@p} zJ1G~SMBeAqBsrN^oQfns%nV5Qn=&`b*+ra`*va{*lrlRDb+OQ2y0rjvI9`ewr(FttHY#ABfP#lI@i#j=0Q}slH+H{o@Cqp}QfEENa&O%h4KyNkZjokjwsoH9S1ItnS_d{PHflGL~ zku2al5fH1{SV~1`?oCUW%NM`*trl|*&ua$(s|{QinDtyW!`yLxc8$)uW;qYBSnc8% z$jGwlms+~~w~JK1MK+kN7_(>ZC{3*M#N>8)cm%(yP({nE9g7g*ipsehn0{^>O?o*Y zs;LFDvN&9@ELaP0o6rfFJJX<9Wa0(olX9215Y%d z0`?5EJ*kJpVCBtMjwPLxb_MKw9P|EcMe@;zo8Nka$r&E zPndE_q+&u)FptRDdd7fKv1D4^xS?FS3CS)}v zON&t_n*HM&yS@7A^*K3$y5>JQ?h^pu<3H(d0D$i=(eJ;6|4+PVe`Z1JoENutHzCHpxFTSfihMy=+Xp;tOBjxJ zOAG+p6GBJtG0S6Z&N!~-Bk75bWXXX^HJVvWRiK$%q4q)tgM%Xbp|TxYGAo-8*pd!S zCFl5)CIVZSSXs<>$FWX0wtYv_Sp@CdmPEDbxYM>Z=yn^_51^ICbn_Ej!TGlJscjP_ zJc)D^Pe%aQK2ai*$S_Cq+n$_`m=8s%FSx|SdU?$Z@bokAj0KdAPqNNV)v?4Kz|1VFL4&4<&$xr3u@Y&FD`lh~GF$25uFJZxn`^UK(}5h!}%*hRpm z@Edv7s6~5Y-Jbo&)`{Rhf5B*ek&d?`5zCt#TzzY~ba!T0n39KWyp9a7vZ=z6M8G;? zD+ii)U|RvUrm)K<0;%p?1{kM3pdN2;D%z7-`kBRNA7#IF93DI&X^@{N`KPKA`#>L` z3s{!kkNLt}1eR%qs{D~KYOHrqM<%GUb>7Y)!wD1Zd$8{x(=BoCF}qRrQO{6@6+gii z_;>U~Jv77{ilPl#;D*BJX`A*4qBN@FYp96R_O~g}4vlOR?a|sE1zVvadZ8z}AFqkB zXgF%$rf50XO|TDo+Aipi&US0C5Srtp9)JIxrro1XL+mlyVJ&R31|WdH?WBM&ECrki z8Ui9n6S#+U6-c2#sQ_35K>I=D3EvMvfrR}~v?#5P*$<009sA+X;KseB;Ojj*snX=j z5HD7oENZO4gyn2cHJqd}JCHI+*HvVvcR?> zNerHwB}%(&Jh9`MQG1a7*lwnHkSRRDc!?=1v0{DNm5Aj=$Gu0sg;~;AvW)4u!q~MS zO_VEPjBbWlusjgwhhzc@@GpQTh@subyUOGZWWWIQLwUpi zoPx`BRTU^e&fpYcy~n^~Kvj`WisL=2$XPDaP^2~y zEDU88Vu+iiJ~vNVXR4#*UP<1=dWDw4IM7cf;SFTqKiVzbFQdcEey^e;tG|?_wPp9O zXIoB$&^C}|6(%}eRnt?;CfO*GRPJ~(m8)nQoPQ-zt;p(+&~|8d;V+#5 STz45C22uK#sZ+~ShnWC)It(fR literal 0 HcmV?d00001 diff --git a/0.47/assets/external/fonts.gstatic.com/s/roboto/v30/KFOjCnqEu92Fr1Mu51TzBic5CsTKlA.woff2 b/0.47/assets/external/fonts.gstatic.com/s/roboto/v30/KFOjCnqEu92Fr1Mu51TzBic5CsTKlA.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..c8091bc97407ccf475af3a730b85c7f4aeecf7b4 GIT binary patch literal 7460 zcmV+<9oyn}Pew8T0RR91039R%5&!@I06KI4035>r0RR9100000000000000000000 z0000QWE+ci95x1E0D)u(N(qBJ5ey2_B*2CI=u4f-W1m zGerkt*f;n{e4gK-zwGREE*dt;37LIeiLC-tK!}Hthz5j_66tNmqgjS3dAV#5L$I8a&={950jk!#3)3w`qF4Ekz@6Ovz zp6^@I{!UkQlcEwxBr0T!OW7j~%42uutWzj{^51WGlhaflTVs3e--$!ZN@zF0;RQU1 z%D(3XRL6r@|5ukLTc1w~0PZbMgzJ~S8#@5(yI;CBH@8!O=knH0ICYZr-M9q4{ZwVZ z0&}Mf{d3^N!TQczUm0Bs6_E05grAuUSqW*u%KrT_mAhxals?>nfe9*&1~BLeUx;j6=;9)J+Mj%NzIdgLvQhVPM(uM`n%^^KGq&J83 z=a9id^P$}M2y#AAEMF>>Xp0bC&lBJT+jq%@nRGue9I)S&6=VVSr-F>7fc-tCFbA-~ zEguSU039Tu4Dj@1IlV;uo9b&th+8l~)AqZn>u6OEJ1LccqhK_)Sgs$##nG~om3I}o zWE<>qW9??k=DJpy_N9RpM!?U5sJ}3vN9itfWKPdo0_0!m%H~6Q>FW$;0Qm9qER&f6 z@~$jVKK^{nr2L1L%*epsozhdr028F-nawA}zhxl(wwQJ^Un+*#^3N>EFg;X@Jdv-P zBiz?*%z1Pm4ez_w_yaZnkJ{_AP|DFyJWTD9T!nVv&h)YlI!YOl>#%KRsv}7Xd`{0E zO-z|FXTg#+8@5>NaqtL;NH}vdmyDc}4}U>af`tebCRV&;L|Rh7F*LnH(l2tN;0?+m z($EZzj$xtD)Mo-8m2sI6lnGes^PNrZ;G>h}PLR1Jk-B_kv523~=ITZAyrje!a!qJn z2y?JZ?7X^@DC359l=iEI^r1r~R(jdz6UTh#l-sx&!pi_bMhVkLoL&+bpL4!&$ve_? zam_1k`Ac|uMdr5X-lnnX7N1X&3?@4%cvTwh8D-CG&CM`A8vQazoKX_n+&NubGD4a@ z;ky%^JMnxc35zfA5m>j+(-2{w01RIhGKdv&U-q-dSNF+ALW76>PCr9Zm}~ACn?do& ztXvhLGn3+BEErnyjcuOe)8(8;km{1hT=Ug%?(ZYFLTStd>x|+P7--2(qCCtXUczdu zz&%)o%~*|9vJ#%T>=kZ)#Bn|{un)iSpD1I0hMhrSJHykorR5*sM<`PX6rmvKE zP&8nj;^+Aqia-&eX3jBr+I;v`HnU(h%*MB&vpyj1?0&XBHm)tVGN-2mAR6_XsW&nQ z2oJcjN98-3`Xbl|Sl7zxUf@3f>(A{Tpb5MHfF5DAtXM&DPYfBxern*vp)N|YHzpW?Ft5NlVat%|X^Ow2Ri0;X9zeILHe`SE8VKp;y&tf*Lj{2ZJ3P1v%d7A9PTNKvB2;ENMa zAeNAb`185Mg;c_C`5%d6z)`<}O7bS+tovT6bjc=wva@9RV-KschO9@x>~-iX;-x9Hf95CCztR1E+zB%~1DEQ7Okw3rgn`@0$-SHyoRU~&xz7m(v>K)I3tWhJu^ zo1CmpelI7hL_Qv0fMMxIv&rizrXc|H@QF5D1P7UMef3wfRt*>|hOtjx3(-r`yUNuPr@{yMj0|Sc1}EQl?B+EuQ00t$J4;2pU*sFz-MqA=MzZmd9Y<}F0j*T zU}o%46Bh8v*7m*JI$#FDyoYQiP?nGRnu*n}NnEbPE@H;`8AfX$a{Ke(wUBVOki>

m{S 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 literal 0 HcmV?d00001 diff --git a/0.47/assets/external/fonts.gstatic.com/s/roboto/v30/KFOlCnqEu92Fr1MmSU5fChc4EsA.woff2 b/0.47/assets/external/fonts.gstatic.com/s/roboto/v30/KFOlCnqEu92Fr1MmSU5fChc4EsA.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..91231c9c46f4c145f98b22aed481fe3389fd43d0 GIT binary patch literal 11796 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 SIH&J9Vr~U^zi5Nh0001)vX7Gh literal 0 HcmV?d00001 diff --git a/0.47/assets/external/fonts.gstatic.com/s/roboto/v30/KFOlCnqEu92Fr1MmWUlfABc4EsA.woff2 b/0.47/assets/external/fonts.gstatic.com/s/roboto/v30/KFOlCnqEu92Fr1MmWUlfABc4EsA.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..1bb7737cdc956a43feb1b6d7f911e10b7c547828 GIT binary patch literal 9644 zcmV;dB~#jWPew8T0RR91041yd5&!@I09i-?03}QS0RR9100000000000000000000 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 literal 0 HcmV?d00001 diff --git a/0.47/assets/external/fonts.gstatic.com/s/roboto/v30/KFOlCnqEu92Fr1MmWUlfBBc4.woff2 b/0.47/assets/external/fonts.gstatic.com/s/roboto/v30/KFOlCnqEu92Fr1MmWUlfBBc4.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..771fbeccc691aab1962e33dbdf2be7c659d84c27 GIT binary patch literal 15860 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 K;xZEf00030kB~Y5 literal 0 HcmV?d00001 diff --git a/0.47/assets/external/fonts.gstatic.com/s/roboto/v30/KFOlCnqEu92Fr1MmWUlfBxc4EsA.woff2 b/0.47/assets/external/fonts.gstatic.com/s/roboto/v30/KFOlCnqEu92Fr1MmWUlfBxc4EsA.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..cb9bfa71feafa7badf919a4663d68bbba0c2b36e GIT binary patch literal 6936 zcmV+z8|UPAPew8T0RR9102>$p5&!@I060hh02;Ue0RR9100000000000000000000 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 literal 0 HcmV?d00001 diff --git a/0.47/assets/external/fonts.gstatic.com/s/roboto/v30/KFOlCnqEu92Fr1MmWUlfCBc4EsA.woff2 b/0.47/assets/external/fonts.gstatic.com/s/roboto/v30/KFOlCnqEu92Fr1MmWUlfCBc4EsA.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..a0d68e2b4f2d9b4d470e6e679e8e7fccdd3e666b GIT binary patch literal 1432 zcmV;J1!wwqPew8T0RR9100o!;5&!@I012P~00lY#0RR9100000000000000000000 z0000QCL16eHU?k-GzdrugFF!o3WG?4FAER=5)=V80we<*1Rw>1eg_~7f+-t62q2D= zrILZ-4<5d6)4#KVZcI5XOK2T!or*!y)D+@g5#x#5gs1*z>cI1O>tSXSsu*q5->P~s z-T!~D>b*Bp6N;`0{u8D9Gxq4-AO(%lJEhIt*o_;!LIvXLCL&R1+5Y0%tF!L`{w)wF zWCH-j2rLK$0tGMt0|5xYK|Y0uXyvkX7yxJhnam^RQH((ojcnbuxsQs@&F#J2(AT_m zzy$zXwD5dYyGeNj9rR1}$spW)kNPql6_^y@d?`Ds?#e1m_j0|Lg)}fSWG&m2KeqODmu?uWIm-k|*%pbd)!2L)k@%8a;8AO>{p`Ong9a_{{G~ zb#$y153Wka4$cV|bLW;zxJF^rFYUgiYvZw~%fl=E(&3X8F$O1kcNo6mvErned_?r% zd^B2r8z5=8cMjNH?>WgCm+Zq9QdKVET5eJ+G$dgVK32@1aB;=4}w6!hLXvU z1ArBPY`_l81-e6MjP6F~PAFx0O+_y++hRX|+@74Bd%AjTy>&S~qBncb!M8qgBtLm) zgE;i=r)PZpHZAWBNAk6G9DLn*+M65q)H;dJ4kxd#U-!lvV%#(6@)@rIqD(_6ghjeIv-{*L{ESMb~}9 zCsiL__xq(6UGp8EEG|9&vVmEz7JWXq&cF7K2KMafYt~m+)Saw%F$S#?tmywg0t%2W z$$Y18)!#%Ci&TQHVWo6#!bh|i2UD6tUjEFK4y9FLTab?TQbtUfb(E4Tv)>DaQ<~dU z&`O0bt&fJ(#ZD5PUz-1C;}H-IK_?F@yH&Y-luH1Y`oM9-Nkb;|3(?8P7e z!*10;v1nH8c@=N|uD1stY0R1ZyRFOyz%xJP1pr?i;Tu=b@5 zuqREMo;m@+?PXO@r_DV@8v1cIG&i;VxpWBvuyPi~te}@e_B|AoNmvkojSeb8vjYuq ztpbAvtAdRlt4cAOrJ7Y|3@5D?in;T;*{t&niwqjF%Vym=b=k^f5+TBa(WJ^Cr*wVV zovRIK704|R#J=pB!sM2~Uu?HUyUn(1*CxOkgIWyQYS2Q1`m}|!W=n1;t#8qdE&vFa0{!q8WJHmD0aMEfM!FQwd&F?z@W`K1?khRRl5OOwA&)cGSwD| zSz)ah|Cj$p2o(S_J=%a9N@JpAA}QfiCUUAiW1D!t5{>xGd?%}hU9@v{)J425 z`u3)!(?+;hM!QS%oG#Xd(V0002ZB&}uu literal 0 HcmV?d00001 diff --git a/0.47/assets/external/fonts.gstatic.com/s/roboto/v30/KFOlCnqEu92Fr1MmWUlfCRc4EsA.woff2 b/0.47/assets/external/fonts.gstatic.com/s/roboto/v30/KFOlCnqEu92Fr1MmWUlfCRc4EsA.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..639955285d3da100daab6772852ca53c1f55d071 GIT binary patch literal 14684 zcmV-iIitpRPew8T0RR9106AO$5&!@I0Eid>066#n0RR9100000000000000000000 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%0Ag;8 z#U(Ev;D zpyHk4wmN66G&(XE{heR=N%_)HaL5c3)+bS?0u38zHh?$@)p@Q)QYbT%+p@n$!1~6%PQ%5=|bR9(Eo` zqP>;P*Ia-;t`_0?3Id!$@UC9@O|J)Dz(*JF5=^00?Q3Y3%LzdjC7IzoRCS>;1P_JE zHAonM^AT#83z%yzL3`(4TP~T`bm+pp+4bLf_vR+`WOhp>GLq5www~DV{QzP7r-)^x zA^=+M{Hz8yP;lPaYp-kG+l7P^y*x(t^9vZn0eJFbf9<1p^(>#_i_N`xWj>f+{iF0oeQvas&>Ss|uHWLK4#%6^TlR zdBnkJD@7n7zd-RrXXDVtYwYu#0cMKObEfbRYK|RbB51W6HKGZ{E#&}=)BI%HZ8Wi& ziJ=V&3>0w}8OZAj=v|j9Pon92F)RaNtD9|h=S*#i61L$8j(n7s6j%^NWGIHRJu_hG z2!@E89TK!P?M{45*3{zKp@YpjfGBcIle;d0v6LylVsZLx7~*eamlX8)zO#qJ^e}lyQl7x+f_~hLHVxmgTK|_XIH7|>T81- zi_A*>WEg^qHJO=@z6 zjC;-LMvY!vkGxE4O5_5$(mNzUcri|j!GuXU_Fn*OZ5IWxvMNm$>o!7VQXAVw#+?)+ zqJ(IeLRk3}&eSxToqTGFWZ4AU^k-qXl!?!m>hDAE8R;2`(I7!gD!mRN_~f*=VD@-Z14MIrILMtT#0 z_IPC;+$KIPso_np8=oS{6ZC|Ib%Pe(UQyZRnu+t(Fk08`9S)@vo|>?WL}pq*O1P^r#yP*;;(*I{VCj3= zSgx5n{X>fBsnFpV3Y95HjuF3kFxSYXg|+ zZyp@)mKeoihJ_gHS8Al8Q9=W4l?)J-qqmBAPsseQI5Jy)ke@0h{##|m3U zga9xAAb@&O69%B~hIzPV+IJ9$)nfmbY9eSt8u$_L`9^rVF&rxf6xM{Z3HA{<>P3rX zqwUff@(NZMwE3`E7Rv1@zQf6Oe6QV+^w?!d+eYnID5VidAH&3`I2smv<6zMPvNhoQ znM;hSlBm+zXZuK2RSM$+$(Bc~m0_>%NH%56bp}DVt1f?zk|BWGIMi~AV1qHLBSfkO zVYL*PUrA6bVQ&YpcOmS38MNXlvjsSoiL$1l;#`XD00}BZhSx#U7wLL8t~LzGr%AWx z#Hd{!Gb@wBem4` zMiA%`$QW|HO$a0p@&ws~M7{C{sn*p1kSWL&$m^%;dSP<9c~(p}m>OR0z4rQg`v%P1xgIX{IY!Z9%IE?h#u-Gj0X zGtw0!Nh32&L||}9BokJ1>72chpd7piph3NT5^Q3DCdKCrO2(LBnaprAzX|#fyE2^= zh!_qyt7t$dDVZ7WSw0d2l1U>vkwEO#jwC6`R@fLqhk^r6F!8_%{it~yaIS7D{U?sHVQ-Ezs7U2!&1`?NCL}VUDBP_g#)Lc|v zLTC|Xzs?FOl8b2Ks%r9L>kMHfEP??$5?4@I$o~G4yX$loQ-eZv#TVh+u3`P3OE-abVu?e;dszqm(0U3m8G5JrXljRpyq&^X- eiu9L5SRK2?c9pHmprN8l#(*KZaBZL=HUI!Xf0hRT literal 0 HcmV?d00001 diff --git a/0.47/assets/external/fonts.gstatic.com/s/roboto/v30/KFOlCnqEu92Fr1MmWUlfCxc4EsA.woff2 b/0.47/assets/external/fonts.gstatic.com/s/roboto/v30/KFOlCnqEu92Fr1MmWUlfCxc4EsA.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..3c4501118e82d34740f2fb90d15c9bf4c9821993 GIT binary patch literal 5548 zcmV;d6;tYWPew8T0RR9102QnN5&!@I05vQC02N9A0RR9100000000000000000000 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 literal 0 HcmV?d00001 diff --git a/0.47/assets/external/fonts.gstatic.com/s/roboto/v30/KFOmCnqEu92Fr1Mu4WxKOzY.woff2 b/0.47/assets/external/fonts.gstatic.com/s/roboto/v30/KFOmCnqEu92Fr1Mu4WxKOzY.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..fc71d944a5838fcf1a870298679652ccc81ee878 GIT binary patch literal 7112 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 literal 0 HcmV?d00001 diff --git a/0.47/assets/external/fonts.gstatic.com/s/roboto/v30/KFOmCnqEu92Fr1Mu4mxK.woff2 b/0.47/assets/external/fonts.gstatic.com/s/roboto/v30/KFOmCnqEu92Fr1Mu4mxK.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..020729ef8d353ff843438008300bedee1f519380 GIT binary patch literal 15744 zcmV-`J%7S?Pew8T0RR9106l;J5&!@I0FHD306iK20RR9100000000000000000000 z0000QWE+`e9EDy6U;u+42viA!JP`~Ef!ut7#Cr>b3IGy<5CJv1bO#^| zf=L@QeIH9Q~s*wo$G+O0+bRhOPkhty_{Qu_!%|r&d`6R7%PDO=Kghib} zYZTk-J<50vIaqr2U;|0mCp(d`IBl!y{hLV*M5nHX)qqwHgCyFa5w^n_>hw9pRP*yvG;mAb1lz?~e?h?9qK z?H~V4GTFUb0>#X(w(OV{AuB*t#~)sPp5Nx5``)9(07UFR47AbyipA1u42+6Z8o3r@ z+00eBY^yeV*~$QIvqMB(t7xxu)785fkr+`p3kwSy!9Y;4zywSbW1I<4(AduQF+I;|0Y00z(ib^soN2Jiqp00T%~{8Hy9t-zA)I2(l&1wY|C z;_jCRb$Jz5SK;(HJ@6vwM#GcwDyOdr{scfpyQRdm#$*1Y7~VYq`_#5eX-QWRCa%+ze&2nhi!t$|%Xjuo+4_6OG_i<{z#Y>e1iX6^7Do0+ zr!^x>h8eAN4+J&0chv)}c4a#kASclS3#O6cPD+aA35xc?_rES&c&)VhwjV zK}NLTGn;M@Er+Ei>C06m*)j~+pBm3^*`I8GBD)9NUSewZ0AX)N5Fua+6sOEVn6Lk( zYPSD@C*FxVTH19k8jo8S-GXosM^`#kCG|yWae$HuI!PB5oI~aN*bBtc38Yh?LkO*} zb4q37qBcbB(whZ5!BtHx4X7q)rhs~V0C{{J!#Rw<4MgPOo3CmfsNrte6hgry#Nt$( z!mRn%wLiB1FZ@xro;^YtxDi9oU&dzkBgHyGZ^S@dRKO^j{C3+LMh=fFWWE^4B8woa ztb(ku22!RBQmGPBtroK1A()$fK@bd>4_F8S0;;ST|fTIml=@E#IX|5%#bE)~50Cd&136i;!h`l_uzByREHyjEWn$mLt~ zGqwJdX#G*>sgA9v*07Hx+NEQ@(M6y3s;S0y^bYkfLyb{1+F{-7{5@)S1HEo1CRTTP z-6smd=mloxns{WX1eA{2#A@s6irCUsrcujs8St*0=C(h=JJ7f%77B&@k%M0SpEqzejhm2=s_>~ z(BD@T83WzXtYmTTIS;@S-Uy`{qLxPu#ULRxq1ha5(ip}ufl2c>hCle*m(IP{Jm3j$ zgrXLs7{fRwFnQ`YFG|8$6JsI^*2D+kBR=6XzVszwv=$4EXu)>=4tzMG2fgS+eE_Cw#`2bC1*Ortsbow+pAxxY>OcuS6KH-s;gy$SPA=kzB7G zoUYhY7loH467^6xC-?rhn%x~sTd+#4GUFYK)u1JyeM2VrVN){uwetSWsA*$ z0|ky8$q^9H;KYd86{ITkgX=@Bq_8Pmr|hhVr+$x| z^(1yWNb0;cR6f(~0YDqdc8AaBBF+v$A#T~7gJyH#-Ry$_%x^mpjG%pdHwxL`yDtX_ z)Y^)Sg7y`d%-G>P@We(hS1t^|I(1u#~j`Vx_;3lKU8^4Cu_io+{=rTzy2?Z4` z!N&2#$Y#J>lQV!fL?^Z)aukBXjIk2*pFf9T4w4TX+Wa$Zh719`93X^&1}&H-@~*f_ zlL`)1YSaZQYGcDl5T)%zEwWV|Ja8EM!OJ6s~EfNn(=@$d+w^L zdmhdrU;AN99b%0D2h0EnI%7P`q6i7Jo0}4dW#Zxbsg$eDw8;zUe6R|z2e2$)mwo)* zK?wTv05jm^v8n)E=ng<`-lVv=@KUI1F&8N|h^YDDYF9!eRA7F~?R3;J*WB^cxQ}GW zDuT=1GE;g>|FRf&;?B!mZ0_d6yw1n@W&UCQi(AA!x@@o6|1#NhmjTR=Yo}d~Ij+rJ z&rJA~RRk&Syy)D_!(l(q-%nNazxpVhK0&3A0~PdX&?6JXZTjBynd#HR^~06bC&}vJ z71E_ZnH^5y?dH(Wq1A(%P@ChBu4{8QkvjrstAC37kgMGE^6Bj-ezi4v^y<@Zz*_4J z8Zzva*G7~nf7<&iw?d__zWMHlpQ`*~Vw;t!EYvQEpGf86h}afqm$j;M3s`I}4%np` zx9Xs$06S|jniP9bqZ0cuhc=2s4>I5pMKJRQEkI&~u9_g(r;kER!?zm;WX2p`JW!ki zW(H(p9dI*_fb*h}l$DR%qv!pR8}al09t1D8CfYn4BdQDtmKU~kh*$`f=Bgi5YYs#? zMuf)*9L}$W*sB%x@b8e!+7sgj0~rcddVgt>X~cVOc$uo973N#xiLD`It^5L0_W*?dP(a1`fVbXRkCU=I%Ys#?(R3oNskxwo%Hfn;Rn!9<{Ed ziUu3ISgEwJSa{j-Lg0mySYds_D{K+57GCcLhr)`&=-i6vQ?D3En91J3Fj)x?FbQT< za8~^{zvWN;CoxTV<0SKr&muxK^-~YWn=nv@R@GCMip+wrVv7u22P9Wg4N&60Yefkf z2=qL#s>XGwN84J5r=^blpfaHA!oXUIwHfvmE(O`1NCwWzfy4be zAuoBeVT;FIoxBDG3f!b?XPLJ#hYV-SJ#9nKyW}wFJrz@pXH8VH#2-kXSd3QMAhtO_ z`t|xmxB4$zd?EV%phwT9=l=gOv^mY%Ko@VA{u=9K5MNK>oZeTfEDF&9I&jrtcwTL) zKuzLHyQZUK4=cFQLqrS8B>^Z^D}h|f&1nRs{G*E@H;!1Dk-!b%f?NfG6LLO%vkKC- zb~HFYDUR^03h}uAm7b5bEO~3H*bO~ae97}L~Lzh7k z-rJ{xJxUHZO*nJOD|qWFxElGhA_(OSz9>ZYC@S}nr8=gB_bKPrBDBj_ePF0NYsY+3 zRacIjG6FR-baco{`5`shL(6A%GL#2W@{O3wmU%=7TZi)w=*P9nw^H;tCxgCKqipVd z6R+K@ykt;8`kk(g+J_o+hzsHYAt%%HzPT3cl&H9c*HI3Ra0z_c@0jcEjYzw0pkiKLuGq8}hiwVLfAysyr!)Y?x+-xP$OX%F z;fQNILheb}`aO0_ERqL2q%C$Sd8QsM&n8n|^-SWfnM`_8JZA7x!`2p@UFQKMz^mY` z1tC@iHg#Mc-0?J^3|$RQqn&*wCt2i$lg^XvFoLp#x|SQhIBRcSXv;76OrkP``fB8F*rFliNmzv zxHdS5utCZ#D-4gWFQT2 zwkY_kA?mm>EznB18THz-tJQlamE6uV-459)O%zvfNJ5Y5ZJ1}PeC?!=Q+Mi-M#J%Z z8Jm!&af{s@`?OQgX*Q zceh1@Xr+;C-sq3UrBPN!X?ayTuTs{@M<~waux3%;AsM^s+bl(+AP_m++on(1Uu;S_ z7(ZkqKT2(!o2XM!v5Z4^ewzQ`zY_Hsl8$B9r`$Km;ja#4F|7nReHm?jQ+Jf5;k zyQj_~p~BviHd^Mr%Md$j-cgF?VtIEib83aH70lB~1HXR_jd+a0M*URklxTi=p|1(A6HG5uM!-K$qmD4>+d<@gloIFZ{;2F70#cJ|~C-o1Mzs-O3 zH`C^Be-sWcF5-S0rn!LA#a;^}%V(2!ku9u|)5ok8EW98e{2n|XMWj>UWG{e3VPZ@Y z-km5ttOJ9haUgGSj7L>7u&y$3a*LxJ0+H&Gj0lq#a7LXAiUQu(oXQ;*7XMwzXIn`u zCwiB6%-ElcaL%4abQ+&lbkscI+2|F2Kkt`qWf4W1&)A=@SS2&j3!PS>xUN63T-P|V zLWe#kZ8eLqUo8w4WH%ub(~=`^XQAW+S`+LjVGPbfzu;)uD2spf=?sfdOv=HM(n5L4 zDzJ10HoLJEXO=~$XJQz1LLQHeD;#F#;_qx>;~Z4x9OQ7R=N6XU!qePLFeAw=?S|O? z0c7qR;0&{M3A8YC3vl}WCC%W!IAn-HDm*7NuCp=DFW!J?MxPvNAy3}Pc5^F>v=6f} z!Wd=Jn*S9Cmc9?hAuSAMjDt5ouQp+&Nl^hUy!2#DLPY`Br6+#z#CQjzTM90^MuBct z4!)7OXEut3qB4PqO&Ye9j_dZsT%Lb zRlIk{n#)F4#B*Uz4ZuhzRB2wcskKeiPM zR3u*gngSCFP~(6cDf()wv}g zLW;Wo3r;!5f$dNpadq;;ZNpEqw>hq`g+~?}FWands6QA^Or{ z&O00T);&&2D;yw^iw5ltoy}$X%qL_>VnP)Um2{_+BajULTQTxkLy5zGcb~2P9=@D_ z9*&XsyA{Pi48D3WKKA;-u|nVEs>+|_^6w=DSWIc509+y>Cnqi{3%8Sn+sPxql@8Dv z#FkuCJzPoTi@6ls!|!uMRT;K94&0Y(t{j2Ck28OG*Th_Mg!NMnlafo>m88Nk zPkw%0Y|QUlHc}}iN>a&FB03E>4eJc`4QmarD0Jh?xJFd`lS@?mQ^rK#m7oNLJS#^` zj-yXRXhcHj?UZm&7O3uErhj;q)74qWK!lsyRg7uhkpBpBMAUsf@wrR2Z%DaW#R=~K zD=dB{IDdLCifg1a)IQ_7t*+8F!KbA$gk8uf!7S5qoBL`rJ&DJ^(0|q=WXD!KdT(@J zMsCh4g#Jw3>!zQOI3c**pYrzIkHp=MCjI^BQw4VAZrYJSmwfo-zNYHOSG+-JucQXx zQf8#5nJv;A%;|3Nci#>=F#w2k>&@HAvD>jVf!E_N;s()Ee}*R2TTbfaRN<3(&+Ao6 zr<2nVC<20b*3CL|QR3h6vJ&g;k>88X2BPj=E#22GnXd-~jAuPhpoP%YVuRzY?VZP4i255N zAn;S6q5fqdt}mItUi`;m&z;8pIi+c6s(#TBe|P%p{dT_5Z=xFas)nLGOha`c7u?oP zkg=96k8%djVNi;n%mnOKIEs0k;aA!i1wfBPM*1-L^VzJpuH-*rlas@O z=92>&qPn2#&&Xh8{%pp0)MZ5IT8-z`x3{mO~+lc)8L z#zlmgoq|&`B9S7I&^Vb+5eRe4{i+ehOYUH9Wpn!|NG(|H@WJ-{%6>R}J>~!ZF9a4} z7`woxbW1_K#(;9UNZ|-0K>b!=da>{MD8N%OT9E`$&L>^w%4RZUdE}T-VC%|crI1`P zZu%$I_!Wu9q2c}Z>zf(ZHruXfpv%k3%g&x_{GSGr*}Zi2AI%<}-BUZ?OJD%(sa|LQ zSY%9KcAy#C9!Z{ZO&D5ZgBw1QWL)__=et(BOPlQ!JI%Vr`llLl34A{^8(WAf;!AA> zc;Jgm6du2K4Lry_T)dDsV9Qu{V)SO0F5K3^1ePZ9x_5GW#Wzm{Ms9N(0JEsEU%Jc7 z`rkjI9P8u_Da;8isN#%W8mhc+=_B*w6@PRjGE7sb1Q znl8SP2_@~hUt%=j{^WrS&mef9dJWg&SO#$@ zZOg7%jrNiGH)S+E7K!FXv;vS`7I#!4d+NFT??GO6&02PoOR=D9VSNr|J>pty8CjuU zzY1Updbv_Pikel2&E%ynSVlXDX*D|9#M))=4Rj734VSU4&=CPaF|KAtp+-VFZO#rT z*Wzb)SeRMQ=te&lw-+9P3{7`}i^c2naEKh5fr`Gt#T2qR)Fd^Hgr`jtr+MNP(c$6g zD;>S}fT=dt(ARtICKM=3lj-#S596lZu$ZxCfmoL2u)1;WKLvJTL3=gH{ISaXU}ZA2 zQFHK=*GYa~kH5n|^cO)$Z~oZ)qwE1f+FxYT@y%(an>S`8mG|MNwxo?ulA%5! zmQwJm5n`8ba$p+dq;gN3jH9?!r83quF@mYkeROyBQ~QSXkI&HAJA2)VGRS2^3CYFG8MY^fWa5<){ECaJ-FPv ze@8*l<`Zo@`(d7WhH^`(#ii>uj$uBvpxS{2f)zopv-Zchk58Xg|~obj-v0WnW*EV7g!)n54i@{6zAt&5VEY(cWX4#t161!=V~BtnhU2N zpWS&5ezm|#Ypx;`)*=H;)NFI~&)c?`Mf+)>&$qgZ!X#`3VQ>>u727NWNqeR>)Ddpt zhDT)aID3XP#MvV{uJia3pEvm!TG?JprQBWZk7SOlR@b&QkV*o5oIHKP^HO3^&5tL1 zyu2KP{;p}KT^4N87igkgZf~VX3DWCop^el_NCt=P4x2$+%&^@#(><=R<(X;NVxMbe z=vbGtr87D)GbK2Rp4g61&P_G3QBkTr5!{xUmt9$yqwOzl=b3!N^$NQ%+5rgHRq~0_ z+D~NjW!LFRx<6!|L(UB5#A@rHEj3c@Z8aC6&wm7ses(CZ7piQ*q@`r&Cn*4pE-n!M z;x*RAGrmZ0XGV<~$kjmA!de@S?@)XqQcJ8A=es->QdS)nQc@KfRzeC1C6WFL+gq4w zXj;Hj)nGOVn1#aCQWr!yg4#^YEYGAg3kiKPsxUHdt#U=&5Jv==DE!v;Hnr5CAnB!i zmFbZoVPTFookc_!{<7OnFf(m=xfiAyFvV+>fcoUrylPa4nu&*jSlLx#7$X&z)sz-a zm9x<@GBwvyim3*<B$BdI;Pv#>vqK8Dtaa7vpH}8v*h&yj~TZOX{~7pKxaJ{l-I?Wa8N zcc2Dg4pj6&H*Lzzg$2i*1yJ|SZ>6}ITiBY}BqW>Lm@_VLky8k>tJ3O0*a@~_?ER_= ziBE?|LmcC!^SxP`db_cJ`WMFr$>`_@evZ$-WP}Tfqz7fkYZY*+UkxMe7~`Rr6r26o znI-~Z%7~Ue4oMhKpWq!o6x3h?5Gm`fv~VGfj7p)Aa{+f_mh1B3OLp&6H!UrLW12L{MeFnTJe8_X6V}w+OvV5zT zOF`*Hlg%j>!f%e^K!gZK>rgKhuySl!D?eW1LRNMON6AF^J8z>mHSTv;eNOIUG-@}e zH0t?cW@ZB_=GH`h{-aX!fKd$AqhDT~`c~x*{w~@)kOzB8^d#QgtGI5YIiEg>POI1- zbTM3Ydph{kS3^UFI*IBS0=WOv> z{2k;Qpgkbu(KZ+RYails>oyFRHv>ua!g;49(r~0odHCDojU+}Hqw?ezr95Tnc(iLu zoTpcEe0y@zU~&@7`Ie!Pg1nJIfT6L1qJhbEr6*g6&Zm1i{>GMB@hMIY$bCuu*<8J%SN*yZ`2{H4^v}4W8&(X^IPyg3=Ptp}uSB zLr%1&cIS1cbsvLho&OY;a~@iUkdAC*av+y7($INmg3c2uLY^`Km**iKO)Ml9MvHrV zzPst3=e;s}Or&l%!KmEmEGN!F;x4a!LRFXF-peg{)@|3{5AKifDLH`kY|t4UG(CUoR~W{hOXv z_dPhR99R!GHvz{~cE<#@IrP*!5BgPN)f(ga@{R&RbsIpdYpCiV6qL7tYHE1K@Y&#= zo(V!0xYwMI{Nm7rRm?U{M%_;+-sSVTS%$7`hOblu9eg zNusAg;MKCznK*>A*U!Yj#`;Tpf{B(EpH#rb1y4a zvbu3b+R4F5PsiFO)zs3yk?qB%dzDOM!j7tq#ZNm&ZJvHmLVjL)Qavp*uey<|RHr5% z>X$*r`X^I-u9<2(+SqDqSvndSSXg^Qq5M#OaVS(=N5=fJj5+%Evyt8Fmr=@Rtw4U#c za#LCr!D*dfRhliZ?_2QsP(P-0F{GR5|Z6i>w5@nYaLLY+J)Y z9YG4pEgZ*jqb}7?>aF@I{dDY1Meu;ee;{qC1#GGEAYffg(^tl`ykK6)hkZyaj?u(A z_jh0Kc7nUi@LOWmhg}$Gh8lBGtoEPGc)>h>n}fvSz$ez(yh(;z%sg>kKag0=F0rl) zH_7OEfwf)sH?Y~J;SlP&P4hl&QRgken8-P9lM6{n;HWnHM%ahM;$SD%xwT1#Z-Gk& z!};@RL1U>gcbe%<53R zV1Rj-$*_L$61LNM1FQojf*)ivc3co#ojuiqnNK`8cB&toyO$F;$sh?Ll-ON8g1N*a zV#fv%-`M&fTFxX{bXUefg9Fe-jLamA!&I4?rmpGHSd3})XzOAxwlx);a8d%p`pW`7 zcV(0APugGFzejc&GoBknp}cR3h6=AerzWYW+9wpWt6GNuhj)=X@$c=DJ%x}3RoVvE z-R@6SS}K%F1C(=eO4$Iwwf%cO@tl2WE<=qepcE8J8rKY@-W_zRjn z@+`%LM0;M|-zBG=l=taGk#tKKD3`VYyfUjOU}tH8w$x~U5!XF@_=|U+4NB*X@nO5= z5XhZJLsat0z6WuEtVzSNAG-S#c1B0>=#e+P*|Zr&S4n@@XcPy;^|vHXtGPb%@Tj`n z@QV`2=e?Hw0Ms`FVEy(ke!J};7By$gUZa9{o? zkQ=mHV&0425O(s8`!=SgOqv4{)3TkkR_NNIq%OmML6jqTB|l&pEcg3^CxxOwI+ieX zx=uoHu_#tdSMR^GfG$V_Akhzbc!&!o7qM>twh87&McID4eOW2Pz?`ZRH3;rS?NrgQd^Wz@D@-YFYOgHREZK9TSfG zZ}t#=VI2lm@KLff0Mw*nQarEKW`cN_Nsq~trx`iP(^G(ssXl-l2t*=y3@YXnz{Q3jVG(=)PsmB7?-#->fQlMj)PUG9mRu9@Hi7XJ@M@8*x*~bUDW^SH zxT-^&v<_+L?S2B#`V}(gi_#qrJ@n}%dbxn7uG)+PpFBFR^8Hv-YoUQ!V{&s4n4k-q zL>VJ6UCMbKkS(OIHHl~2-GBtddWJMk*tjt*dSP6^-KgT#o_(Q|oKbX%G+VR9#hC+PKpB)4M-H6cTmRlA5$7N#t58v@2<33DUI+RGT4_{dz)R#v(anH-W&w zSaK<}*brx|G24U{i{p2bO&gXS8{jsA#Ge!vZLE)*d2I&*NUXEdNLDq zj$1H#AM)+=2c(bH{~|nv)yA{>b@lyhJmMf*6aXL*$^`ZMrxo~D5l>&$w>s_k97{gp zo-c8P=`Z(H(p@dV!P#7qN77vjAqESc!vsbF>0kWpdxeKE$?)(BKEPK9&i694o;b|= ze;?Xc-YcR?N~NSyX3y-6eYEJ&6)|=DWWASI%A#N|vkP(-s2<`OnlrIAo~)}tL1=Rx zn`O@y)DiSZM{Qhguk2Wes%VQ$eKdx()?`y!$f3DRAXdy^wcObyIng4mrjUWuEX+J< z8Hgpqv*vk;_!Fy2AY9;f#RgFsC5%M4QgC48$RGQEMpwzXgX=@Tht2(STkM|jYr0AxAP%xwN-5AR+p(LFHlDV$OeBOf5WZ&0 zQt}Mvk{k=;&LoH>;U45yKI>)l4Bo&;uud{`kxF}M@9m4NGi4?(m+}M=7S@Vg=&m}F zLmCxG7<^~tqP8_e$oCN}Xu!%8a_t<7$yTJy8RrHig3XoFra&qQGNUpVIl7$L!wCpF zc$Ja9j>ZrN`mjAGrHimQ!dgTi8QPL_K%L?f0)g1{S_RLy*~ zr>5sfY%D8LK(@q>Q>N8TYmkSVitI@`LEE6WNJDjj{zG+0ALV}z9w!xIQdS9G=?%{e zld0_toBW$Y>P?5iBk&MsZa7vs%9FyssdaC^tJSX#h)$4H6PQUevMSl;WUx_T+RO`| zvdfcL7d<0?!>iJ1I37bp)*yW4M1t@0F$WuLQ8QFYZ_GIHGDPAR5Wos0a!QG7M#t%l zVg;PKPa_eQuCts@e2fx~E>^`xsLXMPQni4W91G(0#$VA`JEuAB*S=LCW5LFo3{+x= zv|YL^ML&^HtQ0%Zr#;lvLQVN5Yn&OAM%NM}WoP$*BB-1T$Y88FVWaF~jb%{Cqmf*j zmsU*}ZkKZ3LHR%{b*Q51r*{O|W!}0yw-<5ysuMFhNJufRJg;>EZwk9fUx-t7kZWaZ zzy%7ZQ;qgeF`49yEK44OEy!2696j)`kT)Kzw9rtz=ySjKcpxj}9y#({3aL#QGCmhs zK}XsrF-nt66Jwon0!zu-ZJLOch@QjaID)%SXw*l{sueb8Ck~;y&oq}eGZ$fi7 zq6HD-U4jzSJ(5Qm%kh}!V5W7;^7fO_!(^wDvPnQmWRQ31m-evE%xBB*a}a>u`yQq$ zxD#__E%$D+_*!^lWT??;vqg%5nJJ$7^K@pKm#m|r%o>@7$fR80w{a*N!6`tALg;xj zG}n?zVR~B+MYXV@e_2SpRMAwV=~mE`-7B$oV4a)EY%q<0_K_3#bU{6zo0*P}qIc-w zh8PQ^a@K|%O^+}1L(!8{2IInx)=1qb(SV1BsT9Ne%fM7Ev$8yGTS*X<(DfL~vYFGg zBJO=f5T`U{!BRp%zO6_ybG!wv`AOeoyZGv6Y-7E}%h;0bV4; zY*?LNP4(mzK%?JyZoao?u+oLJo(J2E?H%4W+f~0KAJ?_3GuIh+Pxr({eOlk$GP53} zOfWlH{F#DQ#Ogw|tQlDL`gSX_&~rf$nY2)&lK>0ls@d_qD7VyjcY8AKP|jETrBT9H zJzx(^Ucwbs!fM@`{47c2$(&hCI&Z>!aL8QFhXs?pGsS;-_HW8S1mpawLYD`1fj8iJ zG4lOlnzinB{At)qkufsn&*qtKryx+$J|B|PEv>=9rgiJmz%V>taw;?KBqFG%TRuaju719r+tM#YyVj0ukGv)qKf%_$oq>C)r`@vlY ziFMr7(FT(U>cJvkVxh>kuJpXfso0Qcr~=c-A=v#;rovKLdZ?l&DGX1GIFHH}z&e4> z3Ct_;IkY^B-Vujx0)Ly-Q$*pcWmsvisQQO#Jz#Gy$ULplm{M)5gqn_L~MXb_A;9QpUE)m_t29&sb8W3qs?_Q(vFX5G{}Lu~`vS zxd65iRTTsv%WYwwEb)TS!{Vj}nrj$J56e4vx2T31UGMp%T^n)FDKx1+_~_ot*1+$n zH;m0=$&H^fy7Va8y3K!Okv`i0E$XVtpQJsnM|YL}VHx;g=Fb1x5HH$cUM`)!x;K(` zdLGm`IZI!Q(=!q;IEnF`-c9U(FwClRq-nZGlxE7rG%@pfUh0Bu4NYae22b9qbtQ$w zsjSAGE7cxW)B3?-r60Iu^aw#HY|B<^JEe4qGAn4$(e1oTZF!d5d$1)mPkn}eoCPPo zT}^iPh>YrFS(OAica>?Fyb@(yXGFNqh+W8okfazMdn zEZ|LjJb_DCL!21m*Y-hH-8Acj7)i*PaH+L3G!8FGdIBOD1t)vmT7sVGSO8tvC`}g0 zx%hA*FhC7aOmMG)vL(?L*s-^!qq25|m>(9vTI+7YBka>w_B}ChKr3Cs6@#o?K4pMtK}_vi|ers2K?s`(!>=G|w=K=w@)ZHSyBG+hpH-wZ)%5QEYn24#Q-nGR%`=~4p& z95F_UJVfZIiMHWxKS+BCXYq=|ggjS1qST;fh@~0wN+Se;Q`Apl^VK9l6e(vRDgc{C z1G6Xq(FyNrT99Pm;8}xIIK4=WKiUQ&ta!{LaS^LTnaO}(TQLjc3mU}>UKR#eBt{Ym zO3xldPGV#*kVR`&A#9htkjML(D09$sI{^#|blP4O=+rqP;CaWDAC$^t@b~=iIJWEj zpI)kQHUaR)XYv8~vYXdt5pjN$ zFShgn7tbvPEz?!hJvsvpru8S|dLPG$aBC!tPfj3GZu!Tg%R6(*JFaE5C5h8iUzl4&Y>Hos$~%i| zgT-}BO4|}Ts0bJ|&J)qlN|J4VPN*Kn`6bixEasj#;;gYHerg`;q>aYn z>y$&K!=gH4NeY3u8w3DtTe}B6>!VU!RI-c)`lVf3dCa+7r(arCH4mH1ZCT~Eh}yuZ zd}N=?#WoP6W{HCtX;xNq9@>vde`L0isI7{{gaEk09%6_ffImEMp#aH1W>}6D^YS96 zx=2{-Q!5X)Xp|NlGf+#~?dTC9?0e`U?d~s98?D$7)P{8+P^*ne)Oyr*b+l#t>`s@h z-91fRYPp7>cB=z{KsR5yS<{|0zIj%bkR;t&j-(exIRql19!Cfg1h4=ouoaOZU?v3) zB@MvQfZG+37qcryQARVKZYHoRiGhW?l4;p~X%&UIXs%p&7AcS}RhlAP)+||7CYQTh zPDYmGzMgU<;)~e|veH4>s*n}QJW5ueBo&hIl|rtB6GbGdOjRsPyb&U^K%sP%QycsR zHvZ>iWc>d+t;|QNURflMfJMbhBffZfOJ$-o$@nA+5-bYo5)*RBYI_SlJk2$qpI|m@ z<~Ft^+@#bqB>8+~z8jB#sn*~xrqQ~vrXS}PzVmq5N1(3ZT$pdcUy9!2Y3jDCgHb2u zu!AkH68h}rY}$&euDP~BNz73TtTiQy&x;c1Nv59?;HV+xw3EF-A)Ronx4rf;*c1Ka zvX36CN_3VJTFBDK^4ja~L#m*^q48ME_++-Zm)1oZis>WpTet33w?YaZi#=gQSY**- y{^U~631l%Viyw0%mK9y;eEd1R+BRin*BQKQwQHNpR1lbbSd4^;oEAhKlGtgK2ZCDPPWh20ob zA&)R+sqdbyR*+~+aVI%YaG-eWl&PTgdD+rD8JCtAk`!r`ZhC1u>f=?T1*7OWdtOsg zrYY&mRDb{AhcIwtR-o8qK0-?$@e)LK{8zo(vorq;M`j8j6ynR?Ib|dzInh7=p7rM@ zsiwj}#U_QA4y1OVbVYydJ{jNg*J^;~)~!S`tbrglRvc9}U4s^>c221tW5~#jG7tKW z2gZXzNQFd=$dLxGk5y~7dxUcdPZ*|R#0wz_6!57>W46nOf1WOWXLjGr|3DcAT9^k( z0=yUgtF`Ri5YHSCyM&EQlw#v!?CW3S)Y)+Fdm(VZ?^>!`s0zJ|!-zzyC*3n9uIqo7 z{qLsT3WF`sR5Bdj>{tva?QJX>-Tq{a%T#yc9 zIJz0v3kSS_dT#2IhPkX8zZ$y>1TMk%pN$fBRCTO`;m?Zh|NqpI>gtcr8Sf%Fo!Prx z>45Dn3P1rQghBM8tyF-5P*?yC04!(NDFVillzCh@61Gw zLp#Qpp7;#BI#%O4(Apv6)kqr5(KUA8pG$6R#Nt*JSfVNYSTty%iS&xG|e zL&-0xoLHsHrztPFIszmm0IIT%B0z@ZZxo+x_d(|GzToy~#z`0{NT6lasMnxLvlbmX_2@Nd*oZOXCge<-F>B5OM!{0ctgzB*Ypt`zOHwrT zA?ssomt5-{&G0rLT(4+s@p>gZQb;4?)3vD))S(_tXyH!OpJ*LZpF+EQft4dyw_r_d z>oVRfyd~!yQg3JVaI^!a@oQA7_EFZE|gJw8YzjXj?SvF;Ow| zMuCIiN7f=~+nuIu_&O3~7B*0@#IiK=NQ7LHYbDY_BFA$*Ui8f1<#yH-K22L>+9Mmu zCcc=ta_zv~;-Gj&`5G;4lZdiVAX43CAa6DjH4;_eb2P7>efn7x$Rvr;Evjuv2eAo! zIpU1EiR_GwHMxbB-DZ@|(KU}$-_R^$#uk5fYs-?Y=->%3!*QYZb{30`S+FpR8L$M4 zBQOqNHL!|VLqNEzNDpS@&e|a=9J^P#A=)P8j1z(s(#SB)aE+jj>wzY;pp%yaD|yWc zgkUpvFy1cR71$o4_pu@rg}bg6r47yE$TnFY@bUdxwJLHj@Ny)tNN=e2kp|>K3^M7> z0)!zWMgsAz1rgijp=9Jg(+$4oJzat_U_OBmO8hxl0xI;AzF9?<5m?1*J+|-Rh{QI< zS8ay@yufxdWn!#{LWe*LHf+noI2rojCYewHzHIL)HKegAt@Y`y_VhLjFCEw0r>@pc z0DYe&SVLdAAAIhzFvTt>Tt3yDMOx!f-OKl;0ArvOp&SZL6+6`(r4(dQ1Tk1jelR}} zQGsv}5sYw+3d6D%FOzaOH*9K=>f{Q74Gn^lZ2(_2x;+_qV>8B)jc;iC!lJToUx~pP zs57I1^Ol(khb{(QWzL$wFO0s@`8pGnE&$G&Ft9N=8%_hT9@gF&7D3&h8mF+4jmS6? z0q!bA&M$_MSAzJo1h5Vf0U;I+Fk_SA65~iE8acS=yt-|#k;jD*0YF16J4k0$518c| za3f9x*FZQD3;+Nb)Y(UIjhC*A6%`Xt@c7vBAod^}0yI;kN8CA_We#m)dm@Tf^S@8`AN)MdRyv^M=*ylB7W*2oZ`v5kRp88rqLuAh zu)YesyJezc;+9KDN=aKGbCob{oHgEV+-76jt+&BOo36W6v&&{X5E(PMh$v2w&*e1h zx0|hQo=d^=DkNzIHh4y%xUxyzC-E~xF^L2=MC3?Nu400RNwj=}4On5mr2)KF4iWlD zgzlX=`61zxu?Djc*_{Cz)!-H|lhP0t3V@SAlhZ!bED4c(U&1W z2k*keJ6YjH+@O))w)tz6rBqu`b#5@W7#A-_4_1mSUamhV zFWc(RxH72KjP1u=Lbal^Xu48H$ZicgarHspV;|a;R`_uYx{sqg@8bW4(|-}mhc+8(S!Sv--M$U5f^ST zf5CwN4&vh2VyJI_#GM#r+Z8N$`58`5pF^W#TtYG0W)u(sUE>{C-FutCW13h?dE!I# zyTR(u0OD2<7l7?P-z4O8B~?v;3A6)dMdrXc6eBFfY1iX0!e$eioj1FDHv!e{-V!xW zCZ)*b+=ToQjEII7?`86_DjXRvx3)Esf=xcTt4~By1~kKNpiHd~6m|QKt*U{@XP*K& zl8$zL5oiw4AVzGjHl*NWi4+fabp6?~b&u%ZgqB2|7NRleIpfGN zBJo(9T87Du9AY@eg^q@`1r2mIkVJ#U@3BR?`8&Q;$x20uyH`@Z(;d%^zN7BCO_Pr>KCp(!886-6thskFi9t(E4$cq3$3ya!Hy(Y_>~3HDfn(a3vm6{@l&UuuP$s zdm<~nLNqW?_sQglV|#DoMu%i=i%b$F(`deQHdJ``!*VHGZ3RIrTO3H;`@kI`aZveU z>j>9v=5Kt)DA)8Nm9KivvKp)~b9AUh9Fz6|Zs7XV-z+(*yfG8Bry*;tO8>k%C}reQ zSM*fQzSaY=5ygGc(Ti269Y-8(uh&CN^5yE*pY2tSD}!uYY#ciuEDG&E>cS~xzqqK3 zXH~KyjS~Xz=kXW*r>e-FShS0k%l5_xd$8rvmUq4 zo+w;ajHGETbr93)kEWD}uS^Ofyfd=q2`*-|pmG;0uRF4>_vhzo@4k0RwtC8G z8%z2c@>r*dtR%;KGl#ygVFhnAmb)ynhq+*-W^IZ0Z{)ewrI`Ew!Mn1fbcL^ITYfYxEe-vI(I2O3Zx8(qbFn%)aDr* z9>y9@jHLP2@*D+XMB-$npr@od2-c1e--DsDz?ZM|eOWM0+an=U+$79uY|L@y6bCVC zYLlq1Jq1cs$fn)FidS8qinFZ%S}~560PaMPq#3~G4xB5%psZq0Rv2%E-Z1-^(9hDJ zpi=2U=u^cJ_RmtoG62W;`bG=W$(QDE-d`%Fj@bHlYUxfXk7Cs8xDXD!a+Y)iCEOz@ z-XrEjn&M;Gw>8|Yi!w-P#1u5&UzE{UVXSj`gei?bR>nB_`-J6h3p$)&Wv8DQpbFXEzGQ7_ zrkhqal&r*20=?rbO}m5o=GvF4%Jt^mN3POjmBB_7rdy=Grbh(5=l)+G9!5I&(0}Az z?t)AJN7#HjZ3Bl{KaFW-ujwhVBzkrdnxJ#vUuXajngCqr&vm+dR-I%iH`~!WG{JJb z?RzznJ*ig*_4;7na(VE(rNEp7f%BSrqel0+UzK8fPD^b4}ID zB)Uh)x7{nVP%sV8$B_{I+QSG2;V*c(ryk+vp&staB2{4Ronwku$vsi+y$3*j$% z-n@0r8p7hC`RTl{zmu`a69QNN=gke;pN>x(7r6QdK3r8invhsD{-vUHJR!DZR8w_U z@aK$N^Czz`P8h)L%MJ&6#kaN0${wo2)Mod`lp2t6`sr^YX?MwAEeJMHJr}=?9slE`ESXUo5;BwlLN*&cnww!jSOe13PZS zPRv7k=r{Q{dDuhRPHf0vosYle!slZ*W(d6F(i%JzVQZI%CkbbtN}RgX{@{?2g`9^+ z*o<4=pP&0zg%|z|oLe?S#s~qC6LOKm!HhJXqV%9lt%pzUYdv|aeMTK8)ChQ`xs>M@ zbp?RtMeeG}<)2vR?tM)mt}nF9uXY7DD=@R`sEq8)6f!EYFr$zXD_4BYljP;P5gs=q z|JLzsNjJEPp*Lenye-bjgun5jmcbkljsDdq_Q^bS({%!kV|RQ;ZBJn209*i$B=}C6 z%Djz9Mk(ibTOM+7yS~h|eWLlcPrr&yLP5?eA}u=>6(}xqw=0lo?>2)5&W0vnX%Ztx z>!LLSXudOhz&%OIOAPVLjE_Y}K5!Hgfb!0K+}|2SkM}os0gH)blog%(mk9{eTo)T| z9MlYmU4R%y@6fr~x$C}~s8C~-+Z_7fZvBK>p2S>&XZ2}d%h)96W)efGi3uocOK-;} zM^Psx(5IEFCxLfB($g8h#YWA~{_7%ddG_7xtR9f4G%Ax?l%2V`e9-c7jucoF#0<(M z1Jnc0RDdpS5a{$FE@pbl4(U+kCzCbi~9+M zd;XJ3j&~u0gnzy-eCrxzH63+EoR2pRt+am~T5hr8+Jkhtn=HYD_j~6Q9z{ZWKA(ll ziML{&zqf|blkONvZ*09;qb)89@px~FCTIKJwf6$Rk?)^0s+umiS7c**<;>4ugu+1< z`sQp5>+>hn$_)BEfUCSVH<7VPa@do`qwK_GtZfRplbM^3-c28-L9hOq*!A;&7afCd z$12~X9@j9AOx`E$6x{&s?FwKrF zK9om3$MLy0T;Q`$>p_1@zQswm|J5?+w{ zjgjtf+V@ZAuE3OFmjCAXtCa7Y(tGAce^P&3h?lU_R;Gq~#fKh`#WPMb>Ljw#%06Vq zJ8t5odN`Wf00B{e&Qa_Cob?2rpFJ$N;^t0FmQS6*JCb}fSQ$3`4DLc9wJ>D zTp?Yy;+z(1dd`HI5fV+))?B1ZE2(ljLXUh+9qmbunste*mF127g_-wFf^}v7QT``m z{ynpPyM|V$li=m*_QLLog~t0p} zNB7m$Ae9>+h!l8=ug{EO`{s7A1i61UgKQrz4=D3INuLR2|6EsVrDO z`d4g3vA})*Bekf(`hvo-7NosU^|x=Pu#2~wmAR*n1Io^*^`wJ9Sd9!K?qanxo^yBg ztm>Tq*>t2{);Oeu8$(w9Wi14^e(aSWlGK3xp_sTT_EZVvlo;m}m{rT2Poa`|Q!}7Q zBTuZz@Zm%41H31=Se&_`f2U$ndN~F7M=`@N2*YQqibsz!CO(&!OeDmWjOHu&fgn;O z{y*a@Khs&(GuMqgQ3V4N4|UvaO@Y%>T+YD+htoG;JUWE($plS0^`@+xs;I}8c9Ep* zY$+Aw;_YP~Z6o^_1H%j|<0JeLAFWMtNDt&NgRoYCB`x-zljt)5{<7bX;Yf1L<|xN| zh{Gi*%7v5#ani_CGG`w3U7q4DNW)j7`>M$4ef2fy;Q~FeB4Ls2IR;9VZeYmysFx3Ht1i?N=!jXe-N-Z*b_})d6<` zb@Q`lN{?<#&P;v_zr7LaYGr$Q(0~9F%s?%*n-Z8q85hi-xN9h&jJMer2trINBvyBSZhL9Yi!7J7q;YJz)Sx zhpdLTcWtqBVtG=U`6)@1KQGu9nhn=iUByL=Vt!~%cTwL7O^;Jne2E>w&96!*SxLEJ z&&((xZjPNH_Vj1v!UKyGj8DRs=UcD&FO^O$2p!7sBZ!L#3kxek{vJMJE&WSc9Xuzn zrvb@JzI!9l8}(xi*TmQDOqp8M|Nc(HrzXT$aeF(Vao)@-=Blyh$z}gazF)iN{q5pw zJolC7id%RVIr;tRCgr~mHc0=aq}wkqG@m{AHJ6{p0nwq{>!Fs4YOP|W_=kW8D#5$1 zJTDY^3-l8lKFbY_D=Mshm2X3x1mP{fYGgH#9B#@?Ucasif#3?ER5wB-*g`BMLMG*c z4e?uCt979g#iC4>HjX?`?GT_Le2WiiO_n?hg;SZWX54{PHi3jDU#lonmey}%-gQ#9 zQf74hdfFhr#Ty_HKlI0MYm{x?!GHa#l{bFpJgIZQBY@net9c3#w>78+!E|Zo0B>t| zXM z&o$_w`i@+qBuT13QYJX`6K_<3ODnGn3yvJO;?qW!PHT zZt{ogI|zuO+#({tUauIDs1CcYGlLyapqV?XDV;-d3Va_)&L0RB<7N!&wMMW-jsg4L z1&Q8Lt6ph8li?@Q6Rm@CPo{Jut{@7`Nq{~;LGk@pD00ses;{8ywf*6Q3&FCxe!H9X zo3+k9T;Ub}2+C(Fn=*9ey#IIX_-oyp+^X&386Wx0uv9g(vH{|6n7~xv;U{8BQNBLy z*i8Wl{=oA~0(s+5W#%vlYQ>(1=nJrfA>>SUBe9*zBMhJ|NWN8%fPt;Iz(6P38OvIK z|7;h|@Q80X1rHsvmzR9uA2Xo{)&1n*zcx|StsbDdfmC1w2V7FL9&@SPiMrJ+Mz0Y& zNYKsgSSx^lW!_BXrVP_)H+G1xR53|)ORjo!hcx{*8MMX|yeu{x1Kb0nq{nD#Quv-m zBhM-a;Jx2lnG(}e!X5)ZEWal>VSyD#myJx#3Z)*v3vc|0Y8F*6iC=DT|Fn2wDSfv| zzLy~(ZU1lajAeb0xzj*)>IK?IOys^=5}imTJ+64lTG?_*=zU0wNsS4?9M611(LGC{ z+%*Dra`%Y9jAoYhG%F`NKr}uE7SUKZof-&ZL4kEiK+!LtQdMKRl-XV}C^=Ns$lMtwGLMkZgdu-;F^z`5^igv3RM)+s z&Sp<(1msjaH&w9Qu}%ldcFj;iuMYxo)T?knHqTn@+IC# zl&yXA6Ro62Yf3UqTs(&uCgK^dcl1p-{nT#GhwWpfFVRRjx$z$Kn`*b@paJBona%!C?wDM;_JM;tv*$GV12_ z;@ha5zgjzO@!)EzkiWu6F|3VZpg7`MV>4_EX8L1n<` zRBWZp!N4?v9I?h(gq!IZyz7th~;q z)fu@A*`kn!%P^~34!g5h&Cp(GAyfoM;VTH88}~1tMX%?0qqCK|Cn~4Iu)IY~0CRi; z0brZZbV3QWC6!b+hwRfUebs-xK!@JDGf(p&ztX8+LRpCpS*D7cf)N6bK!fINwqSjR zG$-|&GPuPnQ}iL{JRfWp=?+_42Uw#t5j9P-zOfMiqK}jWNuDNQRH;C|#1;&4Wn!yv zI0^g$s#-7|tlw6_D^XG04%!#OFI;Whz)GoXtnkL*+%}#FM-CZ;)-B-)HfWT40pJD2 zu8FH8!5C2;@e*kxXjN0hR$GH$H{oS3#tvy#L_+BML0(B$y;vD)MG9Uf(8#!5Y-fG> zMeb+JVosn!n-$;EbR(HZ-kSe_SzLp>hcO4}KAg@!k8&m!21Z57s;4ZX+|S3fM`h_( zsME6%&xl=(PF}5VA}Y_>(|sAUS7D={;{E)lHE$BXo`jY6e8xDVqGu|forCEDf<_s( zM9**9?68dRDM~?ZE~O6-krllv&Dy zCHr2B`YRm3bYEbHXDgjXH|R|H-*xZG&KjOwl-SHhYxDK^;MUoJIpWbKy9+8_*K+&? z^%9S+<{S$TLx4IwiC$GBy`Ha+QfjR6@n-SB(`4@BG1mJoM>m8oBh#XEPn#&*h_|+gU#0%nL0qAC9H*a7#noKdEUllYWI$&o(%l3x6z{y4`Kx?z`8Y z*qDTb%Xf?sM#9lDC!h$kNFL(#DBY?v)~;GjFdvk32LL##1(+ilGTX7Ysc?M%j0O?(ur*;6|I>V@IP> z`I|>KgW|)m6jcDEKI{@*F+Hq__lU-%Zb*<@bFD`)J?lnhbmOfDQ3sC87q{ z!fTnTO3ETQP>tx1Np;2Nk(Z;98f$#)jN|e=i{CY+RtkLLp^Jp%36V<>v3&>EasBi# zQBPe>S_>zF0d5Q!TzX7LDwp8=wTq;+_u8arxtOM0$|YPhGZEY;hp?to_FlD%mbGVW z4})PBjVVHIZ$?>D4iZ+2!prFa#?;E7M9L5lt1>@OulA1r4KOyt&69=-p1yX{7g;we zR3nr~#HM^?mCEj^Qiaqu2=p9=$>8&h$Cdy?b!Zq-OCMVbU$7JfR7)<39m8E;#CSnquwDWq} zGq=fBB+}F8)l^3eP5Rs=qFx8^fU*{a6(4j_JWQ!}Rf7)qxC^|Vw^wjAPNSf>NF~HJ z4C`Enbq74x>u!+(?a@DcCtA@!Lk?7m22|jC*>RG7KLDEyME%x0(y~E+(G<_k;8JvC zn3|z(nS%V0Q7Y{7+ZzztrVLvhd7*S0uEDjBbN#tX#{q}6o!DWwPP`c$tK>+ZJZ7(- zeUiN1OQnE%g2Zp`*0E}U-?3+B zF|WYqZh}Ps>(#o$MHo9HH}~wQ*+S&|^gM-Cp%r2Fu%$po-9A@Ta1F92d?itUy~Y|huC?9RQyhIZ z7=uELWW7@}0eCti1tyY4F$NiSbu-C~o1(+JsL^>ic%L3d+twNBK_;0spHyR2bH@x6 z$w%yllO(}BxgQ#$3lyczB5G=q(uf0Pe-ozH00qwcbJ#H=R``uuIsm{YKaOnx{1E!T z?r(nQi@Y*?fmJYo0R86wc>q?O`uDNB^?3y{y4_=Q0)pZ351<{QV&e8??WWa}@bXp4 zCOJ=~8}G)#jpa`@L=>=juqMgRoEr}G5FdZbmWXa}&{CRqPYb@k0qzK|&GDp2EwYYP@!FLmY9M0ZyyZ)GlT z4rn?Tb?i|OwGgLzG^jH@yaBIqvVc5^`c&Mn-YaT}nn-6!y}K^r#J~mtk4Yw`6AN95wZH`1 z0Xw|jFbRi}2jEhGZAJu!H)BL*m*VlIM7^1XvSu?|g-ewpot~xsZx&elaxabX26cr*m23sJEy3U8x!-H?MUmjHKnPsP2%Z5qX@;(cy< zO2E+Rg#Pg!Ql*pDXGYAWI(2IgZK+s?-j`%uOG}8*U;u(x2viA!JP`~Ef#@)S&^Zf(S^yG(cmXy7Bm;*q1Rw>1bO#^| zf=L@ueihspH*g+6P=4#a+H8dFaS(i{CW_KcI=JBfuL)|%*gw_*xH(Hi7(u3ru!NeR zr&MbE&ctS>wD8Fsf_=GS2_HP(% zv52zuly_yAhCN5g<>JC0L!je8e&$rT_?BBlM|WD;5gPj>m*@Ypd;Wh`_uADDL`H;C z1SkX;$+7SyjU0?FP7U#M`+FN>fK&;RMiYWHiIt@aWy6 zwi#+u2=iU1DgDkJ(qYWsT&mxeWa)?BS@Y910H4PTkXQk+leUzOg-LOP1-lC{K}s?E z6~I6A?{5E;Q)~XHwgTX`6Dh7>Wq;J!`y|VO_hjo_03K+eHm*VTKBw_lA=slh%#ZO_kH_^ z{{PW8*Z;j+=|qEs=xDEj5qAA+@l#;rU4#NLVg_Qt0>s7*5IgqZT)2XG^8vxYfCLHx z2^R$tD-I+94kSeiNV-fAygU#B0!Wb}5E2qdsd5l1D#$(eKx);2G^K4%paC{=$SFL>pJ;v)9Jw++G8i1WHWCvAj@;xG9SV+sZoE1& z6o`TdlLXKJ6JR0^2k_#G=g;5)92B`Y=2;2nFQJrh{b+0Cs*DJV$tUGryB-`Do{|-WP7(Cdqae_fvkJuWe3+ z&sWKpY6jpnxSeScZ`IZB{CdS^fPB>@z1J;NG*s=pZvyt(d;b?b`fO( ztzS%*gmEULTcZ|T6~QZ}FKpBiyq>2ryi+)5cSa89^~YW&ezC^3UoY-g=Q3yVlJ!HgQMcgrYQn=lSslJgM;Ej zOrH_NDDqr6D-?LVP(QKpMSxEVeNpTkigEk`Op7-z(G;8knYIuTQj{QyDO8_9%B?^^ z{m8~A0k#$Tied*$fE~$L{45Ofu*ff@hFzBz?;V^u`FfBoD^CnGXMQ5??ptJ$+1N-F zr`9J4&>F`T^*D*jp5o30%d{z9kV1uuH6cq>o(Kv8MiJKf0Ev0O8iutc(K3QjMQGZ~ zDw0v764PZhN=m{Cl!*k5Yvp}1IOXk1Qyvl!LK@#E2|#7CFvi9+0hn#yMH@lAj9!9X zXt!~ZMwbDg=~Z(7>QR%2bb1b3w;qpa)mXb)!)Up5LBdsFOn@^*oEiK)K=MY240wNI-g@{Zbxro6dBo7hy5myJlMuasX>LL3y!>7ZAch#2}Doz`X=+7^D%Ty@uZ?(#GI7jK@mD$op_ElszXw8>4gso;*vpLb!&Ttb#ty0kWdA}hrHVN)i zAc3&)+sFguAwML_ZsFZ`^LjJks%&Rf7#^qSo^@KtebO0&vYzHUVYOn*cec z7?df4H`knOgVip=(~dV$doRkaenaJoge5+AQjmM0r#b8lXF99-T2O6K5(Bv`J_%1k zvQn6eG=!P%jASNj`Bt#na$xNYuyzb!?K5C42UxoStX&1x<_*xO0`>tMMh|cS;0nN_ zfENI71CEBWp++rZHUYlKrmN?~c^#d-&W$^dwQbUq7uU?z-~luYUw*c{<(K4~d5#&l zCK1kxRkpcjNs`@?B2}7nw=Gzd;f_o_9&t}L*ArQ?Mf0>7Io$P?`p$py&DutD&k0m1 za$rqBv*aw3Cwtn{WsflB>j!MJ@*K&jobs$x+yS}Et056l1==yRoI8iEd?^KHxSf39Q7r_LdHTlkzH~P22Rc&d(qAeZ4V@Eh~ zO2)9qQ#EoWdl#c>5n-h=^>Ip}MkE#;aEJmay-_*gD)5@?C#4m6gU4enU1$1mG*8`N z48is&Clv@9Kbeo)3d-Y~MmagiG=-8;XTesro_JRb7_H+gEIlHD_a8I4iuMw}e0`a` zP6BLV3VyA;z%qDWlrZZF#=n0^236o}g<9cc>(0SgqW!>;0qrYpd=3zR!0>^Me>Mm3 zcYyXgz;A%fjs>>;834H-nEnPFy$+Nw4F&Ss2Y`FYGI)^Wo@x((7wCeJ=65u&xi9a2CnsKlaRPjK3%gZNL)%YrEuFW{ z_+#DA1a&k5F>>WIjC2D4Kr?e%DU7|o&H1v4kB43plQs8z*|eM1ob>}&<1jLet)t86 zQS>l+X)aAa;bYuK8-}5shvqso2fEYqN~ni%YQjKZyMT{l-?YszJuc?+={AIEd7L`& zhnZ5*HuPLiiiKiHFRQ*x^(HtUb=tj7quy`ZQ$AX{|jz`E;;Js*C}rGIce`ppAo41WcGo(G>rr9>Baol4x#InCy{m|?!4kF*DTsW2=l z`P@rbn^=vB#L93jfGh8)Rwpa09M+x+yr@)qeYB_%7uYT;N&-uT?ybtwfJ;=M-jXa_ z&7qnX?v$&}0^w>)h+B1XD_qlDi#1|n+{MfKB8Gr*+XH>CO?nDYbt>r$IYuL&p317p zD3Ec+FX3%3-ra9MEs0nE^=S2aJ$6*$=2#fsns|QB1oYTIykp8}x40m2z0i?|jfl1Y zcs?b^jvoqipi;J+hMFTB65HwWYZJnpLIqIw9x>ARnsg`^V~Eg?&2)?t8exg2bfPSm z;{rM1&P7P7lEz95HZ#A>)vD{$ZKkEfprlMsF;y0uY^bYh1-#mtDiUDR>UAzQ4Qgv= zlYPLwgMeffqrwn}{B6xCBt<#R3gm&VA3`PerVMIP!(Dg&8U&euX3CH&nFdT1@%Ast zLpsnq6-v%g{)=Na-U6DJw(wbXGb#|OzNh5QSzv^2I8AAB^M17 zhnn{fi`PmUfqp3#&t~?%l6s!8(|K=~yHBHuw|P_+o*cKQTGk=<>t#`%i8{4;JBdp|+6IRGXkr*NIO_oEJXR zo57UDM)Zp#cwt7XzX1ZJw1~o949-4?O{KzZ8(XC*b>xp-Hnj{G;Y5&^^DN+U-p2TQ znIq55#c_9Uu1hv^%Q{rL)y^ij?cB5OB5w6^dciFj8@ugN?i>3pyZ*6DEGcv89+e#1 zk7wiKi3*3$Cf3P@*+iVrXOxNBH`1@N2NccR(ai~hZeHwVQAwO!V#{N*vWEK$O^jZ@$WXEp5uKu#8I{6T>Pn?z9< z9E-0;7BlswNSuDaNMc8>uNFUwF#q7f5dqR@^nxJLM6%j=Z>4L|YC&r5Gm-8b zqz*T5TGKN1#!f3%nF%*o)*>2!aX}9ZQ$ZsP?sL=)*o*qqlgGFCpA&jV>9R)WQ;1%8 zfVoJFWa%l4bz6x^b*T|XM=R34bS78bhk`yaVaviS#&4uFE@){rCf2?j`jTw;MvsQ6 z%SUvloq|uBz5b}xv4vn^XIG6ErCJe_$!q>H7GZn>EQ@JSX@7CHy@i2Nc@)p~V6%~k zRq7^i>0j>RLAW>;i97C)ElSwzo?k^u-EI!4h}R=-PR~QVW;xBst#KOl#L{jarz3JL zG=hgUDHrdZFIdxqMoI8#ODWVWVD;MrE_%_~*b_vb%8$L*02e|P=BdQGM$X_B2z z=VaepZv-!SKyj5(%yx-qHQso<0N5kJON}Tmi!MN&HYjUXXFFezKwwv0GiFG=UPLRg z|Jh3bu@NWmoFoad*TwmMw}f_}1gl(LWs723j$Mp4?kzBmkzQCEf|8LVquYAo+INkF-jz(dBcntPhQrjS>r3~l*Us!Cciw6^#cU@;TTtdNQk8w#_sNmTd#ye zZds5UJR(EI-^eWuo>SLOz<3YIULM7HXC*#W9bnX}PBI3V`**+B-?T^_mfKYP`2lt= z;vD|PT`m5a=C?91=?$)I)BSQ{*K3hqdG7~gm=z6o)p>>s~PN=9qN z%eGuPV83g#^NNa$@X7EoV%tO#`yFDt$Jy}e&n1T)MECFx7RcmAg}B>=U{i~keU18|F_k8ABU!D zvjDGZ;EM{)eEMid>qi%F7ir`U!~?7+#&O|c+~T7Qk7VtqA(JlSr#mLqcedx-~dZ|!Fmaz{lmhXGd&Jlz*&G- zu}qzh+{67@$}U(G)%+_&!~R^!EnE=Q{LSKPyFZK1t6dmm)-T|*>t+qVJ>1Qi@sbW! zo%+A{qD&u8f|vBvjrYPLeJ7vFYp$^_QyRnK#lE1r_^a!ao&-rFgp2?ufmH>E|7!**mjVxX#Ks#vy$>&7o3mVTs1rVW~9ugLWM?75(z zZc*qJ8&MWw!z%yV_4MU;MiKj^uERmEc$4DI+UM*a%zW1Md~{Iw9cR;uz5e2rcZf*M zeiXAo=E(+=XDeRrNzAqk{D3;YuFlbI7&jq>u0Z z{d2pX7FUbqU}$6Hz8u9*|=;Y3I-<&<6xjsx{ZKyi1``15v zvq#wRP47wPM75LgR5k$%F7vd}S_!a{q!|6LjOpxnpPKOYg^TO$W`$uqJ?Q{p1@`L* zt2iEfkW~O(qei&$`UGmd6ZovawW4@Sez90q*6z`Ya`MEUaj|klkeuNGXVB?~9hG>_ zO`Dl#Ftq;H@8YlUKsxmQPt&laaqci6Wo1-9?mydMB(3EhxDNX_{?`EXZV7%GAi()} z(4&AxN=YQ=;UTLVujE@B?p8EC6M}ZH(5}26mS7X_m&-PBr8i_?Zy5sj^R?e4rA@J>($psZOH+5_Uy<&;#bI%hWqViL1=7_1Bb@#s zZXV@`@lL}ScI9oiwmcrMBAGbETOWLM?NP~_CQkR~4oa65K0F{W)yvW)*fNSm8G6K% zt$iECLb0Tjw4_)lmbBr*%gk476#IF6(9p^Q?PDZlPEbQtJ{a(l-trVxc}d0oL%RVK$0A`Dv1sdkJ0>RKu!46SL0r zu(RToQeI4qK)w1b6P`~SDe+2jY$Ln={hiQccV*RlANx6qB}kI+j|g;g4vqAItd!F` zeC{UMGu&e6edxe(9*u8G42c8_^9!!kL_Kr-=!W|qun3R|q5E!48r0V57ftqCu4Lp46Sma(b zT-W;qG%v6g0meD{hIeS3-z>cn?m)HdJWlz zx;n|-;sN2YXs=M54-_qvt~1EPDLjmzHg3xPliA|PKDbXMwGHziRuxH#a_vGN4jui2 z5Lx8BW~11H7YH2<9gjL_r1k;jNyYG5;q(gomJAVCr$0N=)z&c%1{WM@NsbQS4{f z&8sKHK;ne_-u5_bI+=?F1&OJpP=;OrH+CS4mYM*^-{vI4rnkqxoXE^zdS;03-!jA! zJK!&eMn@5fOT9`w`{F#}k@wDhMH zTUdA7=}vkp=Ir=jH~ly^m3fAIatSfb^h>FZJe7JZt1+#gZ(~Ip4+{xM)%{?Ci`T~2`6Se&RRZk{ zKr4#p)8#28-?_H0wU$V)5cne&`M;O|HRnVWzkaf97<9h$==1mVToX*J^T8?I=Hkx} zpPkVuG{q&J%dYbp4V;UB^wi%QSINMJ(`HEs6)C(!_pGYullfPW^p*w3PiSP_T@*BI zBG@q^4*w(x|NcsFANp>`&_D7;61hEw#5*6km+*Tfr(i-zL12TQmiT8m>+X{9nO~Y5 z124g{>P}b%>mW9%vQ4Q5q@gnm)nF&;nkyRD_AQZZ$n##Jhp(q>!M$rj~=2L-WmW*7O$qrRl`<#~zwbI3@csKB9~TUh0k9#)QXk}rWLwuvoNA&=7JGExW_KXDEyx zo;_F^`(r9Qw{>@=z8RCBi@9As+pbh!GM5SqF>~lqexRSAN^jSxU&&K$&`&tj@G@AX z!4Rj~&}~|~NjlVE6t6^=P(OPxsTP2@JP4`*Gvc!MrNWYfLJy?~hew{^hN@*$3V^Q*E zl%JbNw69%+roP&#LmEck?4o_$JQPW#!S#rmHt%iGZA|SnUXCFTM6l%KS-H)l`+`++ zN~|k%da7HmFEz#6dK!AdYpQzUZ3>fm9Qg3UJki_fx-sL@#S|C050$Qw_4N-8YK%vU z4xhJy!QsIZ>rj!Qj={i*b8rQy$Uygc--(M762~#Jx@xn`TL*|zFS(b?=ITmHxZgN& z{ufaR@x{J>NBq+Zwr^NccCc>_Ip$owtlS|Tm$VwnUC8s2qqo6<5Nrs>UUyCGLjW-p z7lH{%a6BJ15RT(#0mMH#UtD3R)ih`Q(;oy;r>FpP$CJI@KQ(0}H(rAHy1y4HSERTk_?ZC&f=N z3y*Ozlf{!KU_-czuzW_d2edR#rlb*nrS6{O*nQXu(QJ8@^@?3tUTXI|A#iB55&2qk zJ59Ri>QdwtauTOGl}nYK4fHfcf0{g98eO>@xizZQ7u{HwxcImoz9P;~K3D}^^UkRF zp#q;iEK&7(g)FB|NK{HFNh<8VUs1Eps{CBZMqz@Sl@Clajq`LHner_(-TuawXqC~b z+n^@4=+Er^o$X`2*Kt_SbjgPGGQZ!C@Ub0lwEk?a+-;2W8npE{cg4zn^P&~&T0Iw0N?Us z*n9mJ#ZuDiWBn8@3KI!q#iSWiv4(gMUnkct8%K(RxKJu7HE|dqa$JB&lg0iudYo{R zkf;_X^^^V={9MhhP7#}~)m5{QieU_c(ya7~b0un6!8qj(4?c-55h}@oA4=Z-_%H*X zowlB3XBmpy@?{b;ng!V}pf-J$8PC|m{jx;q8~g^Ma%}5tfB?s}OZ&x-)$lH3oL5iw zqrr1+Mpy4jE1Fv$cOi?{_E(Xet#I}dZF!2nD~T|9SH0k5w}r)TFI#JE)$)IjYOBJX zAFIqVHy+TqFuzC7F+cjxxC60GcZ!P8>Jq8x&jv%nUuxdS!%)Jd8G}BNrz#=?gs&mv zzDo(7{>k@4eiI_yE#M46Lr+Ja0!fc#pC^j1R@>Zs`X3~QiK`R7U)aoPB-B96Fuc<) z*+VOdGKU$3FAF(mEzN{%+$lIo& zXXNL4G~oU(PUSH~znTx$>gGVXj#PV{!c|AZm^~!yi~M43&cz|Md{?T2xD<-M$Rj+b zsX8~d?xi^?o3rp|_h)`vkXE?#%he^rUej%S#ips|Z+XZ5}O;6sXZxi7mx| zn7j|;B3mm1efu_-Zckz2AE&b;sI;WK>f(6SbI1yk8y`w5>dF&y8Ae*&bH9v&L1qToCXypr2jhWNelV_esx1{cf95d zc;MDnw$8dyP{u2G7o4p#&6ajhXTxs6e}6qTsD~6b*TLQ?hz7o!6Oe;P7!*?m%Yu`2 zYuip`$lT(CzuesIx&zA!<4rT7&b)$3IPoCF-qa4~8iPQT$o9eJ?~|$BChc1A7N3V$ z61^If;W7~CL`W)IurH%SYa2d`hHxaEUhL&LXnrlg$U0IeB&ZeEP>@W($9Zx)0df8< zRLT4*Lp-_w3-YzIy< z^RlNC)+#um1Kt2{(Rtn~Wu?x5B|@b^Z+fuUhs;jEz*v?rZem3UW-4h+xW>06RFjufAzPMDx2M zDdxvyZZ6A1_hf{GGacl6&+0c7U=k8?eQFNnb%7y_s}LQ;4#lpZ(V={4Dph}Pn+w(6|BCP!ej1`_Q!cWNhR zH)lpJdx+O<9dQ(}KZT~*^coUR?i)SLB}1d7a_q?bKsY>CJ5}8afSS|+RB8^6LGyI> zREhIhmT+yssV*dV8d5U7!3oKAoRj%#IJU&iH-|Gzy!?>!<@{J&o9~B!)VHA}`Q?f7 z@dip2@0@h1eFWh2^jTHqcRvgNu3~Rg&vgrusU628hB%X&Z@x~QN+BGY?_^5tTPYX) zRAJVhC&suTNz#$dT>$$|E2TXhA)Ts58C|X}O8SEp=e0K~anU_nxaB2`!Bh)@e>JMq zrWD$bra!IoN00Gd5eT&horlP$Qjp3(#{bZ{Wo9%pw!dIPdUyLEINn`nY`dT)*6VmXq&pE>(Z zv8gMprK%Q)PPCTBk8{PVcAT8tJcjT2^La%YCnx7sUdX5Y&ycZWd5J-~VD#BFDb7lJ z>L*lUe{;_9S15~JoEDQv)R}iY0`AuY4UXj{;njZ!?VwGz!*Q#vLpu(9^Kmi7-y-0n zRk^LpeiS(c?bSzqRk~@#ASK7>m7p+JBn@;#;Yn5KkdQ8L6}rgt10Tn{h{)@Q{f_97 zOVn58)+?vLq!Wf9?#7gYHopHODqmy}wK5}GxrAnjW_B@CcqcOssOpFt@hRLLbOvhA zpvUT1=_BbW^5_0`{2Gvr>+4+XZB8eaVrh)msD9Qf8vmn>?+pYSxdu`ya6$I}o@W;5gp9#v0H9WbmG&0BQAd zz8#VfLa`ah-`8`AtJHjtO#1bBu|Jnh#a_qRBSagshZ8mGqkQSgTbfOOX zpQ=;9GsGcZ6;waoO93`O@)9vJPw*te!xhq@KPFuMQC4)+H-N0@^7Lkru9dc?9j!1ky_%96PA56!vHQR6smIzXjk!UuK%Gg71UhO_k`_!xnvmenfwyNdV~N3Kp4ommp>0 zj0~JJ7W&Ph07YJmO(|-i$e*n!DH?e6W~Q6CgMM9B*C1_`tv2)y4gQ8 z4hyTtQ}^ljQ;VR36`UfvH4C>&JLt&XEl1{g@Z!A#D z1<`(vPGi>jsc_VMZaDwBb8Q7R2~NPW*QV55E=q2);7RUS!MX&rh7hiW(5$BbA(N#X za4O4s3QbbxYV0B12ZXJG4zR>g`5YYcF{8sq%8m(AyE330(=Pi=>!!v(u9%ozE5MeJE~S^%bP9CTYhn)u)tJ$#PY1V>$= z_0A+jb!p{vAV@@RRm#Y4^2^eH?qnOF6VtX^seF>ImAP9f-0j_MFH3BK+-^q8`@_R- zl2~3QN7#=U* z@j{T8pG5wA{==UJbjsBccrNJ5eqW;0JnRtqs@TP#?Y)ljW!u;X}c_)lb<9UxEhgY?!>+FKI= zn2_2zBr~QK#c2vM1G^h}W7H4%O0IjC#Sxo)qU&bcY@4sRX<)MXQ9SQk!u=LQtB#W? zkap5;2Qo((SlaQh4c~+x!=K=Q)jed$SLA#0TRF+D5QnT-Q-EEVfOS|yJ8M?9gu8AG z)4;+uA|`lst7$`q{5^zes3CZkt6Rl4L2);Xmq@chW%)l6$^v%gq*Y=z0q`%br9{f| zOLE*sx|X8cDwDd?^k7{}%UmY$**?$dXOw7ZDV`QdJKEOJrn-fTgCgj($b3$^ z?U$3*&DlH?HJ*Lh(_=gBdoat3J6p+}gJUu#yNizrXe+&%3j;28O}L4A(?`Qd(V#4L zQb$@%#ruP_ep@z}i*7?26O*!7SDZ6DonnIM&2ZWXu_h3-1_t8b;)FoB{C)VlLp6Gf zAkyp1O?lnhv9?f-_wrOS^Q;Zq{*Nxa)>J!hyg#?MW{KplPNnNh2M-ZOV}oNG8DE&Z z$tSj@`MC6gfn-Gd5|NU+5Dp-&9jvz^&~~{`Q_)D(%vaC4BblnLn`&DX)mgm==<0}> z#d2irf~vB64`kATZ0J;zpm+ie&U}jioz?hq3f>_awIpc_p?ycIs~l<_M?GQ3>_%BG zx{|pzq~qI2TG7>PfhVJb0U^m3d52h#%peAcXqpb*LG1$_wCq(_@WLe&s|jX)rjN1V zDp=|m!kLnWCL&YUCrwJ{(SP;1Gi@5xv3a~d znA943#&kcFwK3b)P1%r{$(x(AdTW#4$PRR=f%1bb$XHeateu5I2Z=3V6cOE+T_+|4 z4?K<8p|&w_1$~6R{`qoU#C>4L#0zLhZc)OLX?H(i4?%zv%aAZAF(OQX; zyAaL*YYB{DmprSizQO<*pt_g0ibUqX=Cpf=TDw;$!)mSB5-2E54~_`c%>5Yj!mWQ- zYH)u-jmXmR+zTaaR&7x%77H-U5AlvJOdge4{6-TG+|1iSI!pCMpD#)+-7NM-w4gd- ztPt&D05HWgq9anDs%2Qn!hCCb{y1j&M0LRZ5&FgGbn#{C#gJ+=8u>WoPFu!M#Br~} zfCq*PL)@->kY$RXD&+qQ)35T}99-Mc0nn!g9!Fljo-raaAxSjLu)nzUW(Z=a_>X`X%3rHS2;MEp5w22$I+2Sbc9i#zQ)dRvC^B+FY(J{*^Yv(S#FoT z<=H5zE5%lQdNoJbqzQ*)x?j(rBjEJDq7gaCHXGu{gZ{iju zRkcddsarKV=?&(rrEsm6N|}_uQd6sB zU{t%Zpu3*SXQR`ebv&+tVdxv0a5-)XCrJ}(Nd&ygsTAH4ZIO(2XOAYfG=Vz5C$5}Fk zlQ1>Gs=E^1{yVold?%OC`L%D;^^acna{rlb)6@5#a~6KMV9&V-+|m7kc#qHS@JnN) z8h4~&azLq_k+g?qlm;}Xj1DQKTXd_wgde@+W%Wgu=o($K@6j!KTK%*bJ=;I~%aHvE zk+upyK?{3K3!3rlpwAT&a4l`dZJyJEfzYy21V*R1=6P|Y z{>K%x_nT7p2Z5I$I(kgI72$PMRrd)BWGnIZUp`;pjPSD1Ug4d;eC=Us=n);#Bl{h6wZ7e;W2GKV4imowSPz#w7M=oV zRuiSuk+No*y{P_Q*KzTb3bI`?g3iR2Sesb&kvA!xM|j1Ia8kfybGdLk4=7iX4FfI> z;6Z3(ch-Y--G~>_z?bqYpDz%JGcud_4IN3WiImIxd0u=K=7HEzAj)h|1epLnlm!E(^AH1mm<&=2YF?OR^eG=xJL)GjLtf z#_v-?X3pYLMXVughJ`U~h8&uFNQ=R46ll@~;+l(3Dx&@oK|q4yzBVRkQQb_*oxOW1 zvM*TAwS%q04Kg%PhoOPnf+0hO40|wsR7veH_s9J*5$7LU>nss5#|GvJf+@MGG?CFn zx||#&3yI69UsHCuuZ97U*)25DKFl^$l+$Vd)@k2G>pnWgC_Bm{hB54`M7ZKvPff3)E!MDvA=I11^pf7=E zjAG8$x1#29qiq5_DRju4Z9`g=y{{-ivDq- z6k1xgMRga$);ZdCdToykjrycCs)a}aMU(-yWDXs)YAZsSSmDbQrII_NLuO@I5A_q-615D{Wn|FSGGer+=CEVC zAANK=8Bu14Xwu)fbN00rizK^Gsyqw=Yb$IJS<`GRrWYZqBuxq;ugQokHWM;TK6EZ= zaC=zGh>dhFvy@Bw0o=C~K~!vk7_P`!7%+u)xGQ#`6aQNhjb9xiAm7?&d;tRRv|VbN zK<7tzM+@{RjY)6eR`a{yEDj3Ttz%h#|4?anE6a|^-x=Xs$CRk=G zwx0qMo*1|^1Z_ZUow!XKnF$C!=_cs&PMXFr%8r<~ihlq63DI3gOtEY(7CzL|$gYl? ztSHNjr`>@s(j~Z#J3mtyA)mZfe0biQ=}tN-Rc;hlnrNcu7Tpi#eK$CoM{3;FDS^NO zjo?gUEB)Ak-t<Qsnk!XyB4dE~$J`rfk}Jnd7%->$yTPtQx1^^WoM+ z8uPVZA{~h5n#2P`+5{6rOfWHI>zOcN!lXx%>Y=7VqPAZ0Kxo6O%zE=xW2+2{Dg>;2 zdI(&yNJp($krl!VVS^__AsY93zK3v7i6H2mxi?0*oN2LZH5w_G&98g@-A>On^Mh$5 z*K=KsZSA|f7~6}hw~G|559=*NrTQ#u+10>k|IcyH(&t;Eo}juGJ!~Apm*RVdt|?%T zONOcRFz3)4NmXwNyGt_2(-pSp!=F`NKZ+B zV_-4}=>_Uu2@YPrKz!s=Jo2V5d$c+&j)+=@e13w6TAg3tM%gie;d4Oe z8{;?*&Tn%WKi(n>Ue9W8v%i+g$0GNa)IzvYCzMFDj!Nz|brg3T+%fB;(|)}yr5WSj z!oiry5+PZ>g>VOho7o~bQ2_;@VM2 zKv}0d-5-a2Xsja?z(7;TNe?0e$j&u{QexV&w+3~VgDvNyJs*hGD%d#Csfz@l^Is6A zBb)pE_g|-`{ig#>0Rez-{X0HD0e;y^t&_0kIIO3$18&QP!17MU-P`D6vIJg;TYQ8Y;>><5-;d#St|Y&;8Ll%7#+v+jYBWy)Hk5Jy>oSvW=z-yDSqKH=rOJ>ztDT7yZI(I3NY2=U@5y^ zXv7Yqp3hFrL47@wo##T~>J#EAil-T?|oy9p83XtS&d zY#+Sx`8MDS4$6jrO90tAh#>cMFv0@Q3$H#ek64Fr1a=*-188?t*iCHu!i0+#DS#h; z(UhH`LGuz+W+aT@PQfsnnh51XP1SAS;HYhDJxXd}L|v^&vBE-AYgl2t5l4fPCYAOdtL*)JTmSvAPw& zXT+g^b!>I!Oz1OY>4wlx<49|O+c~ol2yI%dKa__6hl98yaZ_Ya9v>JM%`2W>A z0ekt{EJ6W)|L@vVRpJv*FH{%E|L~Jl%jp4_&&Zn{FXA^SAmamyEUY@S)a O=*P}hnT+8U0002VxO@Nr literal 0 HcmV?d00001 diff --git a/0.47/assets/external/fonts.gstatic.com/s/roboto/v30/KFOmCnqEu92Fr1Mu7GxKOzY.woff2 b/0.47/assets/external/fonts.gstatic.com/s/roboto/v30/KFOmCnqEu92Fr1Mu7GxKOzY.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..8a8de615eb2f70380f60b851f97814cdf1ccda94 GIT binary patch literal 11872 zcmV-mE}zkNPew8T0RR9104`tv5&!@I0COw=04@3e0RR9100000000000000000000 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

3C=zk= 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 literal 0 HcmV?d00001 diff --git a/0.47/assets/external/fonts.gstatic.com/s/robotomono/v23/L0xTDF4xlVMF-BfR8bXMIhJHg45mwgGEFl0_3vrtSM1J-gEPT5Ese6hmHSV0mf0h.woff2 b/0.47/assets/external/fonts.gstatic.com/s/robotomono/v23/L0xTDF4xlVMF-BfR8bXMIhJHg45mwgGEFl0_3vrtSM1J-gEPT5Ese6hmHSV0mf0h.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..022274d4c4af877ac322df360cb0c1856d2931a1 GIT binary patch literal 24792 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∾9# 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 literal 0 HcmV?d00001 diff --git a/0.47/assets/external/fonts.gstatic.com/s/robotomono/v23/L0xTDF4xlVMF-BfR8bXMIhJHg45mwgGEFl0_3vrtSM1J-gEPT5Ese6hmHSh0mQ.woff2 b/0.47/assets/external/fonts.gstatic.com/s/robotomono/v23/L0xTDF4xlVMF-BfR8bXMIhJHg45mwgGEFl0_3vrtSM1J-gEPT5Ese6hmHSh0mQ.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..1d988a3f4c7e169088a83234773dd3eb346c2196 GIT binary patch literal 22736 zcmV({K+?Z=Pew8T0RR9109eof5&!@I0F*QU09a`N0RR9100000000000000000000 z0000SHa|#KK~gFPU_Vn-K~!WX8UTb=FG3Lr3W1wI`YH>9OaL(N9sxE2Bm;v?1Rw>5 zI0uAl3el^jU`!HS|}lX}_z|0%gKrq%%JpHP5cA&GK38q*Cqz!)Zh z3apH95}Rv5J)>?_K;Z-==Ek~#+>EWbiDH2v&s-r;1M>{N7l_j@J0t7T6f#TVno%yw z4J=Y4{ihNYcGi=>)4lDP>VMu}AEB{Na*wCW`l@=*t?3>FTpS?uO!k`x;gidQ76%9G zOp;Oe8=jwA4Zd{Ygqh6G8V9n8nH1lL{M66LJ>g)1d}kPJ&e5atm-?J zhkwTL-uLM&HM21(53X?kOH?Y%U|QT+W`o}R=d_d)nPm&`3%`IYG)OYV3hqo1AkRfS zwx>On7_+mOVMzX0r+rhBzPLw#Q*pg@v8t9QK(-wjp-AiThCHOx%2@^{hd|X8)!jo= zU0&6CuBv`El;6q_l)!k4c)H_Q;+; zV~`ZmEYSySL-dj*o&M_#O)J@fk2n$!Bdvx&2_AwSExxr~Q$)ZR-*Ah&4&*Z zxRv-7Q4~cQe{ZVR{tplyfN~&Ad$`V&Y>wd!=i0bfnsY^Sb4|5)*yaA+<%)|1BrX8* zxD1*B2x+(k!!2H1@YrKb83^Pc>vI2fqWdcmnyP>4 zFQ{K0Me?FW*aNnlxFcfI*mAv>y@R|05o7>o-3?q6JPaQ8hJ!W~BET^{K^wBm2=qsx z$YI3l;ZYO-J}JyRs?}*uBTcYP>0H()FDj^+B);k;W#!DeWVcX6(=rs{WfagOZD#;$ zu|8AlXnYICq1Ye|E0aHi5rc^GrWv^o2&lvhia`Lb!!`x`x*v|imM^ds`baGrWQ_C=XSFB2=LP9XNzjxUH+vZ4SC%PzHP8(m$Kuy}&Rc z21vRbvyDVFswLeNTv&txlpoLlPUL?J$)t0Ws<-NUt3Ur1kLKd%6cD%ySKvHsk+mno zA!OkP_ujwv-o5Acp4fYO@0rQ=?|YB@|C2jo@!wYWOJA5Q-#_7Jq+knx)Gy$83#smZ;F8QnzgXsM4-lj|a3=)RHBctJ4`BcrI%4 z&^)ItFbjn1q)WPFI*)_zG9dwx6w58O%nH5wi1k}-z)Gu(7&2^)L8CTUYn@HjtGCgl zG2F^4rc>QBd=@Q1%7`rChU*3h9; z>&mESz-6IGV{x6s5>(*4Q&@(EWne`ynMsu6FT;S(qt^oErvMBUFJ?Ocs2|Efa`z_% z4+3-`nsg~u)%>w>kU>I#3DY9O@oV8+5|@}#Q_WJMOA-h0q!0^ZwMq$C2&yp!P?B}P z@=2j4X15s27udgjvj`{xRk)Vg42}kc$VYK}XeQ(MdWFMU+dd|DYIw_WNZfZ={Qg>P z(pa;VGZq{PjM>$55w<85>$GN26xDH@yT7H>HzK!0lB@?0YNLG*)Kfw5L8fQSk-yW? zdK*RC=z}=1`q-Y04rUutp-kgD*M~neG7>ET#ZYW87Frl4qJe6@&I+E_Xaq&Qj-lYY zakSa2)nw5z8X5^!7wa@`8^dL^V8B!O7wBYjz%UNeHM?Z1>}-h;1WeXi5po+HqoFtI zD#-~-qem&XsDR8YYgYy#DX~Tcam>zfHfBlO!D9I4F2+|;7eH(Ua)z!_&V?5df}w>h z;|te>K$xO>e?AGsX9~{gFl-;*V*66(23qLteM )8x2wTy4sm|$UBVF7Wz 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 bGAR@Yh2TTsqnk*C_-*A}-af0}9g0mS;50#L literal 0 HcmV?d00001 diff --git a/0.47/assets/external/fonts.gstatic.com/s/robotomono/v23/L0xTDF4xlVMF-BfR8bXMIhJHg45mwgGEFl0_3vrtSM1J-gEPT5Ese6hmHSt0mf0h.woff2 b/0.47/assets/external/fonts.gstatic.com/s/robotomono/v23/L0xTDF4xlVMF-BfR8bXMIhJHg45mwgGEFl0_3vrtSM1J-gEPT5Ese6hmHSt0mf0h.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..11e6a46a40c7afdee2981511cf98f78a62ef9f2f GIT binary patch literal 10096 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

-KfCKkVgUqz8QxqfO}8iQ0)j$QDq& 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 literal 0 HcmV?d00001 diff --git a/0.47/assets/external/fonts.gstatic.com/s/robotomono/v23/L0xdDF4xlVMF-BfR8bXMIjhOsXG-q2oeuFoqFrlnAIe2Imhk1T8rbociImtElOUlYIw.woff2 b/0.47/assets/external/fonts.gstatic.com/s/robotomono/v23/L0xdDF4xlVMF-BfR8bXMIjhOsXG-q2oeuFoqFrlnAIe2Imhk1T8rbociImtElOUlYIw.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..1f1c97fecdbde2d7c29e8dd92b152e5b4f30f17c GIT binary patch literal 7972 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 XMQ{4hxA|M=Cwa5=H!EjyH2?qr_e6{Z literal 0 HcmV?d00001 diff --git a/0.47/assets/external/fonts.gstatic.com/s/robotomono/v23/L0xdDF4xlVMF-BfR8bXMIjhOsXG-q2oeuFoqFrlnAIe2Imhk1T8rbociImtEluUlYIw.woff2 b/0.47/assets/external/fonts.gstatic.com/s/robotomono/v23/L0xdDF4xlVMF-BfR8bXMIjhOsXG-q2oeuFoqFrlnAIe2Imhk1T8rbociImtEluUlYIw.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..6f232c38a17ecea6607432d096a52b3c0ce4fb3a GIT binary patch literal 26644 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 literal 0 HcmV?d00001 diff --git a/0.47/assets/external/fonts.gstatic.com/s/robotomono/v23/L0xdDF4xlVMF-BfR8bXMIjhOsXG-q2oeuFoqFrlnAIe2Imhk1T8rbociImtEm-Ul.woff2 b/0.47/assets/external/fonts.gstatic.com/s/robotomono/v23/L0xdDF4xlVMF-BfR8bXMIjhOsXG-q2oeuFoqFrlnAIe2Imhk1T8rbociImtEm-Ul.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..a3e5aef7c93b6334a03923067da54adb1e025619 GIT binary patch literal 24652 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 TS>*;jf81#>o`iG#8mbKdV$}U= literal 0 HcmV?d00001 diff --git a/0.47/assets/external/fonts.gstatic.com/s/robotomono/v23/L0xdDF4xlVMF-BfR8bXMIjhOsXG-q2oeuFoqFrlnAIe2Imhk1T8rbociImtEmOUlYIw.woff2 b/0.47/assets/external/fonts.gstatic.com/s/robotomono/v23/L0xdDF4xlVMF-BfR8bXMIjhOsXG-q2oeuFoqFrlnAIe2Imhk1T8rbociImtEmOUlYIw.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..f73f27d6e1a1f8ae9f9da42274083f7543d85513 GIT binary patch literal 10704 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 CEy7m- literal 0 HcmV?d00001 diff --git a/0.47/assets/external/fonts.gstatic.com/s/robotomono/v23/L0xdDF4xlVMF-BfR8bXMIjhOsXG-q2oeuFoqFrlnAIe2Imhk1T8rbociImtEn-UlYIw.woff2 b/0.47/assets/external/fonts.gstatic.com/s/robotomono/v23/L0xdDF4xlVMF-BfR8bXMIjhOsXG-q2oeuFoqFrlnAIe2Imhk1T8rbociImtEn-UlYIw.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..135d06e00d05b590861cd226b3bbe781f4940952 GIT binary patch literal 14288 zcmV;>H!sL{Pew8T0RR9105{M85&!@I09+^l05@p>0RR9100000000000000000000 z0000SHa|#KK~gFPU_Vn-K~!KT8UTVEFG3Lr3f*+c1`C1^05H8$0X7081A-6)AO(hQ z2Z(hH2ODcoCG6N!xE%mg^-q&WRF2*oMP;N0|NlKX8AF&I=2WdZi4=$gr;%NDI$5xg zHL^o9hmvhbJxz&~!5U;tZ3tV58OSY%1}Sv3a3V)HKi9qV1R`B?BI&Y%!mk{s=+TBr zho1V%jY$%u@kh$;B0*H)B-tdX<1^n`H+8%a-^dEAp}_cK(aH8%OcM-Mh(VbR19R)s(=-Y7>i<5 zDpmRbQKBuZ{!ez_9}Q$a zn+DW5fd>>Mfph{+D3SzAERgmF?W*J;lx&UeYIoJlWbgd26EEcIS%0bdx9i{U)lhe& z#lWjs#q6s5bAzUEm&)YJ{I6La6S=6p@er94iMa6%!=#1`}KY< zEfg3Ov0~LzsrG@gRh1P6=`$`+04Fm^1O&jKyZauUw7|O~ox0!Yt+<%*)?sUgF~f8M z=igD{gjIrfuDIH3fF;{uC=duBfw2{Gg$g05Ce?S@b~-jpw$9+kqyFz)5~=w;kI)_` zDg2-OrguHSAsE$lMopNxy-5QAj(*;zy8fqcxB$@BveRL5hcP(K=ch0GgRartnLrLo zK}jK0%Ps&+$lK{ca!?K`MOh)GfUtG!Fs2(0!vHvE7}pMC;Ys%@{f_)#HlR5e&X>QX z)5$Pny=Ni!o~Y7|utv z?t+9cA8vpE;DG`S&QoIRZ^#n^^rfM?6!=`LwI#skrmQUoJ`iBK8v_dIB3WR|l%Ar2 z|9s(1vZrtmECBdTJQe`pC2E90;L$u^%mOK zS*V5!n8E`PQ~*7#!MU1VRm-G0;DKa!-$)TE;<`Wpi<4rw>d}_zeJx`T!x-c$7VlUbgkqb%h-&YeX?& z^}6UX>o1FozO8AWRovF9uYyRL$l#=ZDD-y|m%)p&fm4E2+%C$kx`<`G*jRWpE0vCAgjLcS^5;X@xdyhx^FlIg#oMExI{M^e|q0dw%O zV&FxIlaZ!Vr?WNWWf>GZf=16&OhOyv-kZU~VI77FK>H$HCVyQp-yO!$yD&tzTap(} zUJ-qzkYR{}a|I=-zKf&ypN^Hc*68>2&LIjFejEC6az&3lK&dn-SqSID#}h>Wc21FS zw~M(8hHs&t$C0~WVpA0;@x+FZXkI5E_nZWhF=Ut2{xZqJJaXZs7a!@ZeEX&f7sv6g zM-7&~jidb?%A!rsBc5Zh9qr~#65S6rlVk{M}UrB?L(XZf4*!k!;b@IRb z_%D9=pZzl{7 z;b0C&e7M;KMOu|3myDM-7A-weWyl<244OM3$8J2xG&PI4ynxa{nCXgkND^rvuna0s zpw5^1YAN8Zqb^Ez>NIke_X4IiC2$Zoaap$@6qKJ#sxLfktT41*qpm&o(A7_ub<$eB zH#wpv%ksgx14<5-B$+?5F@cA&Ej1v$#p!A%EGO1fw zm^-7UB+cn{;g946!gaZ$izQ)z=%E%Lxs1oX%vc?=$vV1~=f%x6&$hXcO;o3|NU;n# ztcH|z@#r_+%Tjo@_9Q2>M7xn>ODNB1IAfjJNhds++Kz}tf$A)Kh!!dOWLMWvcxf|rq2gk+Iv%kz@RAVG8T zOUwD=8d`9>kE|h*iz9*c8iAC;6iTmL83WN$&4D}jFU1m0oIJiL3sD0^Im=;;Z{s_0 z^!Xb3gGXibopP3;Rs{xXc7m zv*q*HW6u_uo(-GcH8~|dk~$%@0}SF_|4Leud>g2yRnkvS7VY|?3E~J!&T#4dUS;9W{~xn<8skHkl=Q7Le3n-Q<`rstxZ|}^tLv8 z9kL?OJ*Rx6^;yPq7bgzZb8^k=6x?R{@>Qp+m7QtWMQoC^HQ3*>VFcLTt`egKK-`^5 zuR+SIUl!cU(wAw;&UTGk%Y|!-L@@nVu!l2hf7P`_Qpe~PxaP0cD-~vu|N2{uY7us* zrMNONvO`QPzI$HWelcJ&KwjufBoc)@!tO2DzJx2q?bG>4o&3sAcZ8_o-9nT6Qr%=1 z*w3C8_9>tkz^A!hT9oVo*H75&NR?{3gSk|?;dMiho z>XXM`#e&K}<6nK~!rIyF!$INVosdaWJ#OLn&AYxJj^O|Sx@%-)22*{lLP~q$2Pi#N zO}|Ndg$Mp2Kc&3cyu6wuIMWnnq6)`IzoCeGG0ig2P;+Q~e!Z-`6d`tVl5wY)#q9DL zpu}8Uyn`kLSep}nF$#%Wd)Vi3=h05^oL(wb40R{UU^}H^z?DJrN_v=hxpM+m&v19l8F-mes*ir8IP%>E@BU-{B+EH z2|eBcbsWi+*ogNQ6_>x(^;8oiis4ch^G8aB0m)aYb@IYziLVB+Ry_`6cCX8o?Zn0N z9#gXw|1+WKKF2$JeZMqLUtZWpd3<+K39<>Phh)fxjBTZCI6i%!7|L!Oqx1Z0im7S{ z-*?`IV3-WcGF)HY$C(MKx?&~OQrr)^DEKYhCrw{8X1EoMIc56brX`fDG)wm2zwZLP#t0m#bB z=V89YsxxOQBbl%rN!03!mxfNaC@uGU)Z=`L7cK?|&3(~_3G+GKZC4UJd{W$A+ zG=u-_l;<(2{kB1~7&hdZfz=#5TUtetVrdL6)y_~50M2mmn&H`qE4ZE~BoHES;Yz!M z6oLWy?3Z_YD$XpGN0Ff|N#x3khsNCmKz`hb5YG{s0@6aubb2Z+HUEsA>XbbM8?&*q zPu!n{XnVf?v*Xx8@y!Tz@4)4FXy z8}9K~uwuX_ZP|7#V%N@2XL2@_3yl+=Y$>|@*;r1*aT}h;VzB#!9g8N>tl-Nh@~*5` zozw3B1%0O5yGEi<(e~^w3L!yH#W9yxJqsBOixR2l>8>ru))%H~#(VTRie5eCsiVhR zmVja=252rPvGy?cskJpZf? zPXXyBC(mOZGHkMQbu#FGTL7=Fe>?FW?yk@0uSRGe(C&plcYOaP_nRk)qSB<@Vd4?@!GlM%d6ZIwo2+M7ImbXsk!Hgxn3jz*=cBK^y56F6uN{Ldc4N4{Eh@J4sXCJK&)S2`QfVST>HxCEY$D6 z;kahY0LrFy9yvN1o(Z_ni2!mCIZ)DKmhI#%xOjmRF*GFc=(Wsn2H*{;G?hvbJ5~w`+KH;NiQr9#-Zqi-&f!Z;4H@s{ek~DfwME)hi^yN zeIN2tIlVKznSlP-=M^xkKmFE*!%u(fZVn42EiI9;3RjZ=Ke@T&O)d}ne4DF$7P0y9 zGjFpbkYIkZ-Rj~0tUwt3-iKD>;Z`86=gmPNAB&}GvDnW)`NU*D1Z;51Xn$4U`m17W zXGe@0pnl2quDp7B&DQSyt(|ixA|tPC?Od~sy83G8JV*8nxG~(X<~8l+0c#P3o>1Cv z8&>RaC@^n-+fY7FH`)wV@`BXuCxxk zZ4A0qirB=NMT)yU^8C*eddd}W1S7JutEQUHv3lb*)#0-#6wAFEJogw8oi(*p42`Uv z$T61nfL(_|Py8Z}CQtzib@hh$4xo^)oQFA56RS_3sR`x6It0OUv%V6!98%@m=HSs2 zA=aD?1@VgpT>V)BoF|t%lrC@jDa4wiWQ@ZYP6##d zLnuFlSKD}bbT$?vc^L)HH|%gI)GNLJh2x~GYNcm6(~{{p@zHnXf-Ex*BUqSH4Y?@kbY(3qwLD|f*acOCY+$_#L6X&i~ zK6YgJt^PeyVC_D$KKE3#37lQ+Kd4OAnRs(K_S*)N9l^ug4(9=wJ#vY9O9!qbFvowJ z(gj2bTopg5sX3NV0Q(sRYlT_XU{;EI^%Ny5LC}&)x3~8O(SCsd5z^}aYVvR%d%IZI zJ$me^4%G0TKmU^KKeCnZ&s3^zDMe#z{!ngkwdw9K!jd_n3*H4@1^9Ka+n3Y#yyuZ- z=RMB>V%@-U?EnSD9egN%^v2E?#QwzE{x@s;L2R`&!(WD=BABcqp{NT(hSoJfv9STF zlx1M9NjqvCN&kQ5lB znK7&w<+zn<8C**%c=@sdGc#D|Bg@1Ul*4IcrLEmwue4JDJ#hn&sL1<){vcIr2pz>* zb5WE1ZNrt&1*~<(O!nIbz_Bp=iE^5K!~z^LS~pomZ5@SVA`FNd4tgQokz~ zv7VDiN?G|hRapi(i5TPZ`i2uNE=5lIV{?=49zx>S2jlu)t0D{o)CT;xo3S@CynEvV z;G9L5OLDSoUjOG|JDf{L{I0VP*xLqE%QcqEh%XPeyZ-WDeF=0T&RrAd4pQnqTT;58 zp#fYlh-P?{=bL~R&Jev=g;+kzq(^o*kNwgMBJ-1FbNXL%GN77J55aX&HdzMr1b&L- zX}~2Sb&qOi`sO=DNtH~*p zT(sXdcqpMG)TSo#3_@xt@EX+@wo-Fox=}Uc|K|2KESH_-umAGP+?e$Yur{)Zm0_n&rp3zKqww!?n8;}QPdd(uG+A0r64fRrF;mVro3(DfK*G;1ce461@% z71LNWmT1GeI0!Dqoe!r*P)3A1tO?% z%@;4!$Ag4#q6%&PO+`!p^kbkj)We07QSec78$0yjbu1?$!8_~bT6)N%hcfG}LBNy6 z0TSJQaOi3tKZYC|o9z(l3k2^G;&wrpkF@{ozSdT4pz3`4V1acApiyVhlX=#g#1*9T zEFh2OL21ut6H-1%NLf%lKY(Pq$Q z2an?R?T6R!N{9Cm>+!;MlVE+Y@aCPFzu!pyB;ZAS_6w8v1(3ZPH5U_80(U4^t0|1l zZJndRAa%{wMlqc)0VtQ-_U^k!12aHWrEP^=87me?D8pgoINk2oeu0(zP}{#3ScjC}l&()Lw4IEi847&ujvRgMwdB$JKHDhC5rWbgM*XaAF{A*vG{9WtAcmjHbP z5M7A)SZBnDv(b8!cnyzrLX0?>tT&0^+aIKd+buyj$8Wapjbz?C_pF)t4*}gs{5Iop zuC4mgo7jToO@7#(K-YPq7_`%BqrNrqjf`Mxt#N7V_A)*Qa8ahqu`3(aY0RFC9zm5 zAO2ZQ^^_!KKidRV>VU(+4Nh2jrllF&it524if`Sj6ygr!8=PTsKCtg5T5l5F5=isv zcUqCy`4tTxv-q>AaA(_%IB}q%44k6UHZMCi$rMAhl7@`_^yy$?K45{v4h$zwKR}6z z;QB8nX3pPDV48FfxG!7~DM%pAso%}cEzDi^szn%y=m{*+d9E`POoTkR%ImbqHqVHy z|ME92gasJ^V@eVA0927YblJ`%mOPy4<|cLzUjcw|oH2dD`Z*Dk0s13&JaUIQ-<%ax z+t6DR!GPS3HK#=X(LP2L0dne>?;eV#dyyp9d6?H?0E!cgDU-F42=T#W$ou!xJ1r#U znQ`^M!#nXTD1DRzswk*Bohvz)AIS&|%5n>j2Ow~Hl?JH@AAIOulRAx_SOm_rw6>Qo zn-Vf$Q9|7M6R&K)Gr%m1FyN0pL=;2yu-hUIo6XL@V_V6A3tgtX$*4G{mq&M$2xLMh zV#pDc$h-px(Gr;5lhNNK_XN1|%=;$B95Hy&3BtmBoSd~`-mE%>490}2BktX!RJ4?N zwKd?x(7w{9fQrA6DgqrMLq+)Ed6K-YC!likoXR!TI_vy-jHJ4X8obfreQOh*gY<-_ z;{(!c#7EEjNvb-i_>B(RTemE;J&_0=plgV~gVA)*yI%>~EF>wIN-pk`8}iL3l!Y|* zf{F2&BASs9FL5(OfD~OWAiqNshk?-NSJ2}S=Ay~x;wpOlvTeW>6Jo^q5+yN7@QYpJ;Uthrr|$eoeITMkAC?e!jh_snZPw8nk(IKJJAo9kna`xqf`A5TndqUS?= z1^Uz~j|wMXfJ-|A%1=76{15XeGn!)`dSb|qoY?SqtuCGeMGJ6G44zqzXMmZQaLCzz zAV~z3!dAF+awbRhwrwpZ&$4QB%$u1R#W|5*1B+ye?uDQqpI?eD5Sl4sxO8XjTj>T0U;6 zw8%~E(`XLy*yty+;DWHN5#w+~?w-7h7m6_aoxHHmwtY0gmth4d#~XW(Q463P=pum; z$BfILu#lN&r*$iZ{cHw$M-^J`^Y-Y;G2qfp;$hF7_2m^emf@Y_vcyqpYV(oQ%zp|871bM;T3mBI7h`l=Cmd-?h| zxsIpza0D^$ZMEyu7JBSqFEu>;Kw!STrj`so^)Vt{|AanDj~xZD8dv~;gbH5r3-yUE zxs{!W<&4aHIG}Y8tU3X^FbpfNnzhhP8XhjI%w$jzzM@w3PATqdgtB`ubC4=3sH6Ib zYRaff`>98L705y=5#~(JG()qrpz>VmP*YjT7A0Dx2WXCld0ys`IW(eaR_Q?0y{Wvd zTXG|cm2p=i^s5QQEd%x_zDoX7dzB{zPRvSu+pWjq8w2c4=?~0y#Jv&&q~6zXLx~?w zYs4l(2m`2Tp~ zc7OoxAE9Z;&V?6X0{A2`%`V`d2xSxIvpHPah%MHN1P<@ce}?@|Z`;yLV6y!s^J1CC zOIhqXBZ4LI8<_bG;5)EMcrShrPPg4=vP_Ty^mqOWC1C6G2QY1C(@nsN{NXs0E9bw& z)kR_rcUj|O9Ze4bFAg)NUz7wjbbgxynZ})V*?oU8NMj)$#3Oi~n32^sYef> zd+8Kipcm;D{g;{rfaRG#Q?e=cDPM-mcrTyg>--l%#jc`A42X;3ruazwBdJ_W3gupT z%c@#bYub8c{bfgXqvW*h9M_7C>3ohnyttrV(F9ai(|ff{j&j>IuI@9Cvgp}$}wix52Xr|4)-GEfCEmG{94Q;ab z$w^$b_1K~u$0J-PuV(!{m`A>0=ziQwbrN@&Nvokny5N-%N*iZO+maafd@d^v=+0Hy zFr6Mt8||4hM>-)~)}6l3wn|jMIWMEO=f0O%&7Z2h!7y!is8D3eD3Gb%_|z9js31Fw zEQP^@6|)5Rp5q1qXoqRHZ$ny}Q%ty4NJ&w>)<_N_75h3$JL*q~suuVcN?`NTZWInF zBLxYeR6C_unHV7=WlZU&EXoARJ3m;WUQdkb_l@)I@pF)Uy-U4o4l3D@amw`+wv+Qa z@7vqqt^2NjcqcMo4}kcI@IKE|NiFKUX6~ZCpSfgy(#dJ13m2}g8&a*e%))BVqx^+x zq*GNj%#IK0+uOZT*t)2h{wOZX9G=}m!yugQh0g?>^Wl zUtDS8*M+kVgeP?{-osTQ2+yj9!8EXazKJh`(cYfhAM>qeuIW#bWuvE$ZMNBQ;-yvv zFdw-2ZQkYq5E!CEQ}3)2e44~zhzWKkcn^un!CF}tuBbu+^lp5!mQn)M6FmX z(Fb{CV(QRHJukUHRljdmfW%{ttoz({bG#(+U-^DJ8ah~5e9FpU;Q5=r8n#1uoX>Y6 zd9sKA-5VKh##%FvLF;*%*NrlMcY1ZZfps#XE&fdp3mFh3YSHnjC|+#5&vm5w--nN% zEMBTTUUc3;h@=_Gw00!Wl2^X9L6oB@Sm}HfNunTRd8c!Hv0ezA&>_sx;T)|GaV;VR zvHVm2`!4_S{^HhrDhHO0flBgbd3PCbciQc9n^-i*B3hEJ;zL6bdFfmvq2w=Lg)0Ak z5HFi=mZ7P#B#M%(sG4C&Xro$C7W+JJz>kU?Up_E24fMaIej%2O7tbulRmdamM~jpe z*Gi)pMh1mK4Qf|};{ATjxe(Hll2eKZ#+a5-d_KhU#n@5%sqQ;I2pyVte(1;PzDrTV zA@7?spk?uh&Vu+@rBU=7hQ#8WLCY3er{gdRM_Bo-vBcsijy-mavDHh?Zox@?ra2yA zLc@Mn)i)Jmv|d5tOfM$n9-HzI^X%C{(VOEiGWsJ?|2r@&ot)M1%GaBaF}CVbuX2Mb zoAXrm(0||b4C1Z5>Cb-zfd#Xx`gOBc2e5h8EvxhB@lUoe*PhI70p%03eq>zh;LbT& zkZt4nKL)}-NUL4A@b`k5#qvaQ4FThDjE_NQ&bW9FZ)SCV7f!Bj{_Y^hY0r=^2zOjR zBq@p{aL*AW^^-73pMX6Zs{4n3t^O}DrC)-A^ENVJ+MX1h-GxZGIR~bW{oIKW3!sb< zQxJ@MObZyo@DF(HFUFEC$Qa_H`QmtR!8K_maN(@BEQyjm#HtfS^{n~KzuhjHDs}WA zD+7+<#0Q?WLm2CJvQ-7e4bznqFNQYg8~M8+&Ho6i=1~?dPda=do1w(&+cBXX&_vW;H8|O8r52c^sB=K27GTcso z+P6)gZvOV2l+I$x!jD)%6e&bZ%tBpcP~@P^<6 zk?D=nBncgz>MPz{_b#-AfbOCvW;4DH1dhQR*)bDC<_MA!b+F9Sf@uD8AG7)ycC*-yyOVk>r(pgjHWSX^~Su+uc5tc8}-#p<<4*rd8^^UsTHHBd|JH{4*cT$X5O2~K&JJ%QJPjYZG?*H2!&wz_Tzt#UN^cI zC_UO4ZkMBSewy#kWkU%TCglKtK33Xw$&|9HhpE|J)T3ExUA+!}r7!L@!8Gb&1ifJD z`{$3Wdh!s`r4l@s!|BS;<%>RqhRc?Nzlly2yeVDsZ+;e;V51=h$2(MeEj3f->j-NA9O%B%-$iE1}P zqS}@mP0FS;;L<;qwtCMClx$}$w`v7Nv)G9EtM=728~Y}Lt-dKBjY?j0PXPx>H!IoW-Sq|^fV4F2K|KJqy02cc&sED#@G%~P8beiVu*l9 z2*Yu{CSV1sBWTPJ3AGagSLU|u`|B4~krdO7-mLN?lI~HHnAh(}nD#P^^L6&4sA%5E zV}aOl@_%c;^&*K8B*(JC@rj&x<?Zc@#vdJi@-O6$(&yu-^KDca}XLA5&c*}CDI z@Vt*!Fl%C?Vf1$Z+ioc9Zk#vE#q1Z&BeVMqub6L?k_us)mzOt9e@ofJJ;Q@^DrQOv zBb2fp^kZq=H?G9948zL0olb6p;3xQUBeJ%9;lE{mS>P_kux5Pz6 zlo8tSb>vImkQU8H#x95ba{25C|oO#LtwGMx<3SJYjtnHErj^4VC@I ziXP!@durQrgu3%pTG@go@O%swjd94)q!xx{V|?B*o+G&DSEl`rZ^4M+VaF@;kk99a#DS4t7a-k)N7exMq1+t+($!^K}9PF_B%Eep?HhRbN#l%2 zYIOz}?j*^Z>FCav_rti}^-4z2tZYwfk0?}V5^eI|#BDV8b4Dh^?(%Pe*;Gl^^??#( zZikvP%q#uz95`v!-=5ul--Q`w0{wv3pe8$8o_|TV{=yM18OukA}K}Oh*{3QsRwN2WZ>9SEDNPjzG$Px zjMJw>{W}Y({`VOZFRKsJ`TeA4pEY{7H<~Ti^I3zJ*G7tFR_Bu0M#;Vp8)Vrk3HQ$b zYJ(^p2ri97+WbED)3ZBQuit#d+`;sLEPGwZ0dY>rn6yY~K_=xZ{P7T4>ea=hUanc@ zvW@#iH;BKhDfSSX@*Pqg`*&!4e8sQW%UNy}r#?i71M)~`h#&;dS&IlxEjP~9Ab8K%!S7Y*$hczMjFRX7k&Xr;+0ooU zORD*b@yy~lhb5}e6c3KJe_^m@xn#BH+9$g>nq_fDu@ypvl$JeUz*W9Ar^p|+bwep3 z1k>U8>&|RDn1=8(U06=~di% z-b9|(ZKsaoNBC{0O~nyf0@^F-fn}<_#)5YN^~GHDwMLNUo=}4loj4!_XWbYBW9FmwP|y9v|MFfSn-Rq=R{f*=Bl%zH{N!A6_ZAaW*nwpLXbp zZN86`WnLG~+SkqL+-yQNac7b8_kkWhFd;Pczy!S|!Rf8f7Cvk9!Z^#)r{lP+XKRsK zyiAAV=p~XwTJ_@m0I?U0HuR$t3une7X0NietF^;A`p2ABK~hGTC1RILMj$PKL5d!F z15+L|(w$E~p!~v!p`Mv-t4BNUyd>dmKvFmG5yh-Gttl|3=VrMs>yTeUBT!pTAC2|Eh4jXj+!Syl)cLUSZEB zAH)~D_rmjJZOjV7;OT31iMN#v%xUws`T5|=R*O-b>1I6>LOn>;927W~6xu#=t*VzU2tZQJH=IW=H?psQA>&mp z9RM*xslgy;H)ih}2S2q18gI2AMsa%f1cc%_3Mq3!R+1z^fZl(6J{g(gm&SQhib02s z*`2@49|+PmITmA=L03Q0m9r?Ih-Bc};VB?XI;9M)Q1*gR6!~8R^nDHrM%t_pAUZ7k zek7wm)2)JKVBp?o6MDF;Y9&>Bto=DKfw~bVNs=s!5->FyaU88(&y17Xi`Y{KNx9kd zP-@ojf4g%AmYkk|lE-sPmdPU&>)K?4yk+OfWMlEzG3@}I{MXm9Mv)oM1F*)Qcv04z0ED3phM_3{dmM#Zyj-A*28p(8uS{a?a?i$$Fwv7EmNPRrVCv^^M()4Zyyw~fo0 z!F2vm=o0(*{Mr9Dg6DmWKp9ol>5XN(e$vet<g7!MSS83R6}?OyrQ1B%lT1%(mI>DQv^;vZI46u6SmKQ7jlc)N1mmc_VxKR z^5y>~4o~9~ExbR)H#k)*mC z%e>Av8+&wyx$Bi%Fo9`WOlJ@|b|U+!y6fIfA!&r!L7*~Dk-_mRoMl}Zb#JC=eiI&g zd~Lz1du?>nRLizy+sal-Im(ut6I0xPB@|z3DVL6`Wx2lZx!Mv8yR3VfNNO4fleW$! zx^7KKrINad*81>rer!-F9f;Lqh-{Cykh`vS92pboHV0`tTq{l> zGeEDMp#ZO=o(X5F~ADXr<2blB!B1q6CGO8H;4AV6lccy%#*= zjMXE?1!<|iYw4yN_f#Mz0sJKa_F7$ds4>$Mt;xd`J23(euP~p zf+GIM@9#mSztX^P{m<0Y%wwutX{jxR;hm#+T~~hxv7<8ZM*U8=r6Jy^Z4jgWqBZKX zejjxq*eP$wlIiJzKXZwLGrryDzwYO3_M`p%Ggep0ANhQYDQm>Eoz?nd0{)1C%uFA` zwYClB#@Iq`um3}-7k|p0h)jsnQcJ}YQLANRQ6EnfnYR%FfB--NKFcnv$nBHI5RL`T zh?jnjOTrRgd~ToZ+9~s5fM$S!t!)5r_E44pdn%-v1GpsK;TS+_#ryzk(qO?LNwW@p z5FLTHx@#Y$q_EV@oX*mCWEy^fv+xi||2AxdfNxH9|KsK=0z&_(K}6dg2q3KDQz1u7 zu!u5P8yXIffZeY%Rm)65+A3M>;zXxIQq2cJ@_n)!8Hx7yCN+Kma4IV)zS2&Bcta?x?1eCx9y{SsPK*c`46otA_9<^d0F5tXya;au zzW|X?&SSA)$$Tj`6+6hXkuqw%utLS=S!&rYWkPyL6Q|!(+$(I9anh%*7nXW&9EFVh?1WVUz1yh!lDPg|I% z07g)pAZdo>`d?H=ae}01hUN17FB+p1&E(W8LIGdIM8l7YP(IbxQUVYRCn91kvpfh! yFe(QC83G^xqsahaR4lbb(*Q{ZfW+lEL9*$6LFppQFUDCmVR|ES+4OuYmjVE8OX~mt literal 0 HcmV?d00001 diff --git a/0.47/assets/external/postalpoint.app/images/favicon-voxel.png b/0.47/assets/external/postalpoint.app/images/favicon-voxel.png new file mode 100644 index 0000000000000000000000000000000000000000..40ed29ecb5c2dbfc10b4cb1c83e34c2613ac8da6 GIT binary patch literal 1873 zcmV-X2d?;uP)*v%p3WESt#M0)4r+?LBYL&p+V8Ep2J< zz2}}QNk4z~oacGI{q(#%=jrnkRV8ZV_ayD{+?Nn*H)slxOps6iO1Co+d6p;zNZiN49Zj4?fkd<{s2)UAui zK~c^4o9hqjm8&EaLJ=T`E;iUsdaI(3iSqFfa?L#!oHFo&@%@Z`rE#R<{wfh5ec3fJ zwRS4>08N#KDUmFy2P|ZdyQTi0<#tlC0O=!Po7{tl^Z*+HDR=M?=|?0JklwGGm@1{= zf(6J+lglkjw+lQDbe5Ac0tN;4`Nn=uA4v@?q`^%E2uSSL6C1C-!X5%*AqA~A1~`Ih zCa{+LRyPsMb>gf7q;I6rCb>macPrdk&7{>w&M3Oq1m=0&+Hi5k(P9Bbudr=EI?9+4 z;2?5HR5RY@`ac$aD7>o0^YYKuGGT=D7rsBF>s99u=d=DAgLXxk;GX(CyP5~-=;+|- z(=lGV6y@lE%7B@4PRaVCSMGt!dH=1m<6dscGj~&^hn+3Twx&@w)en)F8UZD8W9m9M? zhcKQy?N~v;wS>T%W5N$k+4PTDVGIv2jN_jSvi@p((@}h2hJd0V?qJUAe>dkP-9Xn- z#)RjA#vD6ud!NSqW#)R_-Y8&NYFF4ZAnZ98qnwLERo~W0|DxvnyHTC>yJSuQ#Z36- z-vcA=yO+ISEz0dTJGV7v_)hCE_gI6dGykOQW&#R$D!hJ4cV)+dll79C_shCX%N9`Jht82onwKr0K=b~}7K}oB%-*Uj3aE8}TC*si)&XkGqJUZl zs5OfMY8{}~EDES~fLc?NW$suk#)=gy=;-Lcwrw28!FAm^*9@wfCCb4X8yo5B>Y}Ns z3Cp^E@ukyg>gwunT^Gl32uk>zu9T_^uq=!A_I5fuJE^a)pYuEsA(>2)OeXO>57%{Z zU3bp&!=h>e(&;qa-QBdbv|!uw?TMI9JRT<=k59WQjH%8_Y3Kr4TU%MRY84F)4Tx0s ze^bk{NTpJwQmJcKgy(r7CA~r@0^;#F-QC@^wY3qC$HVAy28l$1L?S^D1lO*LFdmu} z3;4jDA7fQpOT~Zfg<{(_b#-;5QYi+12icAjbF=~K$taX*sRm;wW%E>FHb zPRB1NEAFr2HNj$5rVKqR4WDYZh}+@LvHZaB#s!Bb{xnJdaCi^IPz4mQfG;oed8i%Q z)0N$2!xJ9+PUiX1U-RUvuwkw$0*YDNVEFn9!$%u!ENfxU38Tu1VVCb8pWt`rsyivF zx_|=d7;J0zxxY>RRydhNIkNEP7D3NkkhZU+W)^Vi*7i;Sgv>dzW6{C^_2~+p!pGYrpwc*%=2x)*oe~SoEk;mCe#s5@0}%pqgQMYw4S% zXXA^=8a$^@EE`xzgOUp-HlHLhbeRW52&G^mBmw;(8E(tH zs5`pyr8KOlWM;!L)~K)(Ex%-@0s&dj0|Bd`ttxyQSX)ZlG6bAL zc!5|Vqq}NcG&LKASE(oqDw|uF0Cf>L2%4dH>HlBZ+-!W|&$I;|JCK_fPR=9XzbN~$ z>}R#N`PL|$oG}1c>yNVG>Z^1{>Fg{56yz|f8Ae-Q(I4NUrL(hf?{QY6Jc?c~o-PtF z2Kq7*`{var Y3e=Object.create;var Dy=Object.defineProperty;var X3e=Object.getOwnPropertyDescriptor;var j3e=Object.getOwnPropertyNames;var K3e=Object.getPrototypeOf,Q3e=Object.prototype.hasOwnProperty;var o=(t,e)=>Dy(t,"name",{value:e,configurable:!0});var M=(t,e)=>()=>(t&&(e=t(t=0)),e);var sa=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports),dr=(t,e)=>{for(var r in e)Dy(t,r,{get:e[r],enumerable:!0})},W4=(t,e,r,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of j3e(e))!Q3e.call(t,i)&&i!==r&&Dy(t,i,{get:()=>e[i],enumerable:!(n=X3e(e,i))||n.enumerable});return t},Lr=(t,e,r)=>(W4(t,e,"default"),r&&W4(r,e,"default")),La=(t,e,r)=>(r=t!=null?Y3e(K3e(t)):{},W4(e||!t||!t.__esModule?Dy(r,"default",{value:t,enumerable:!0}):r,t)),Z3e=t=>W4(Dy({},"__esModule",{value:!0}),t);var J3e,y0,t7,Wz,Y4=M(()=>{"use strict";J3e=Object.freeze({left:0,top:0,width:16,height:16}),y0=Object.freeze({rotate:0,vFlip:!1,hFlip:!1}),t7=Object.freeze({...J3e,...y0}),Wz=Object.freeze({...t7,body:"",hidden:!1})});var e5e,Yz,Xz=M(()=>{"use strict";Y4();e5e=Object.freeze({width:null,height:null}),Yz=Object.freeze({...e5e,...y0})});var r7,X4,jz=M(()=>{"use strict";r7=o((t,e,r,n="")=>{let i=t.split(":");if(t.slice(0,1)==="@"){if(i.length<2||i.length>3)return null;n=i.shift().slice(1)}if(i.length>3||!i.length)return null;if(i.length>1){let l=i.pop(),u=i.pop(),h={provider:i.length>0?i[0]:n,prefix:u,name:l};return e&&!X4(h)?null:h}let a=i[0],s=a.split("-");if(s.length>1){let l={provider:n,prefix:s.shift(),name:s.join("-")};return e&&!X4(l)?null:l}if(r&&n===""){let l={provider:n,prefix:"",name:a};return e&&!X4(l,r)?null:l}return null},"stringToIcon"),X4=o((t,e)=>t?!!((e&&t.prefix===""||t.prefix)&&t.name):!1,"validateIconName")});function Kz(t,e){let r={};!t.hFlip!=!e.hFlip&&(r.hFlip=!0),!t.vFlip!=!e.vFlip&&(r.vFlip=!0);let n=((t.rotate||0)+(e.rotate||0))%4;return n&&(r.rotate=n),r}var Qz=M(()=>{"use strict";o(Kz,"mergeIconTransformations")});function n7(t,e){let r=Kz(t,e);for(let n in Wz)n in y0?n in t&&!(n in r)&&(r[n]=y0[n]):n in e?r[n]=e[n]:n in t&&(r[n]=t[n]);return r}var Zz=M(()=>{"use strict";Y4();Qz();o(n7,"mergeIconData")});function Jz(t,e){let r=t.icons,n=t.aliases||Object.create(null),i=Object.create(null);function a(s){if(r[s])return i[s]=[];if(!(s in i)){i[s]=null;let l=n[s]&&n[s].parent,u=l&&a(l);u&&(i[s]=[l].concat(u))}return i[s]}return o(a,"resolve"),(e||Object.keys(r).concat(Object.keys(n))).forEach(a),i}var eG=M(()=>{"use strict";o(Jz,"getIconsTree")});function tG(t,e,r){let n=t.icons,i=t.aliases||Object.create(null),a={};function s(l){a=n7(n[l]||i[l],a)}return o(s,"parse"),s(e),r.forEach(s),n7(t,a)}function i7(t,e){if(t.icons[e])return tG(t,e,[]);let r=Jz(t,[e])[e];return r?tG(t,e,r):null}var rG=M(()=>{"use strict";Zz();eG();o(tG,"internalGetIconData");o(i7,"getIconData")});function a7(t,e,r){if(e===1)return t;if(r=r||100,typeof t=="number")return Math.ceil(t*e*r)/r;if(typeof t!="string")return t;let n=t.split(t5e);if(n===null||!n.length)return t;let i=[],a=n.shift(),s=r5e.test(a);for(;;){if(s){let l=parseFloat(a);isNaN(l)?i.push(a):i.push(Math.ceil(l*e*r)/r)}else i.push(a);if(a=n.shift(),a===void 0)return i.join("");s=!s}}var t5e,r5e,nG=M(()=>{"use strict";t5e=/(-?[0-9.]*[0-9]+[0-9.]*)/g,r5e=/^-?[0-9.]*[0-9]+[0-9.]*$/g;o(a7,"calculateSize")});function n5e(t,e="defs"){let r="",n=t.indexOf("<"+e);for(;n>=0;){let i=t.indexOf(">",n),a=t.indexOf("",a);if(s===-1)break;r+=t.slice(i+1,a).trim(),t=t.slice(0,n).trim()+t.slice(s+1)}return{defs:r,content:t}}function i5e(t,e){return t?""+t+""+e:e}function iG(t,e,r){let n=n5e(t);return i5e(n.defs,e+n.content+r)}var aG=M(()=>{"use strict";o(n5e,"splitSVGDefs");o(i5e,"mergeDefsAndContent");o(iG,"wrapSVGContent")});function s7(t,e){let r={...t7,...t},n={...Yz,...e},i={left:r.left,top:r.top,width:r.width,height:r.height},a=r.body;[r,n].forEach(y=>{let v=[],x=y.hFlip,b=y.vFlip,T=y.rotate;x?b?T+=2:(v.push("translate("+(i.width+i.left).toString()+" "+(0-i.top).toString()+")"),v.push("scale(-1 1)"),i.top=i.left=0):b&&(v.push("translate("+(0-i.left).toString()+" "+(i.height+i.top).toString()+")"),v.push("scale(1 -1)"),i.top=i.left=0);let S;switch(T<0&&(T-=Math.floor(T/4)*4),T=T%4,T){case 1:S=i.height/2+i.top,v.unshift("rotate(90 "+S.toString()+" "+S.toString()+")");break;case 2:v.unshift("rotate(180 "+(i.width/2+i.left).toString()+" "+(i.height/2+i.top).toString()+")");break;case 3:S=i.width/2+i.left,v.unshift("rotate(-90 "+S.toString()+" "+S.toString()+")");break}T%2===1&&(i.left!==i.top&&(S=i.left,i.left=i.top,i.top=S),i.width!==i.height&&(S=i.width,i.width=i.height,i.height=S)),v.length&&(a=iG(a,'',""))});let s=n.width,l=n.height,u=i.width,h=i.height,f,d;s===null?(d=l===null?"1em":l==="auto"?h:l,f=a7(d,u/h)):(f=s==="auto"?u:s,d=l===null?a7(f,h/u):l==="auto"?h:l);let p={},m=o((y,v)=>{a5e(v)||(p[y]=v.toString())},"setAttr");m("width",f),m("height",d);let g=[i.left,i.top,u,h];return p.viewBox=g.join(" "),{attributes:p,viewBox:g,body:a}}var a5e,sG=M(()=>{"use strict";Y4();Xz();nG();aG();a5e=o(t=>t==="unset"||t==="undefined"||t==="none","isUnsetKeyword");o(s7,"iconToSVG")});function o7(t,e=o5e){let r=[],n;for(;n=s5e.exec(t);)r.push(n[1]);if(!r.length)return t;let i="suffix"+(Math.random()*16777216|Date.now()).toString(16);return r.forEach(a=>{let s=typeof e=="function"?e(a):e+(l5e++).toString(),l=a.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");t=t.replace(new RegExp('([#;"])('+l+')([")]|\\.[a-z])',"g"),"$1"+s+i+"$3")}),t=t.replace(new RegExp(i,"g"),""),t}var s5e,o5e,l5e,oG=M(()=>{"use strict";s5e=/\sid="(\S+)"/g,o5e="IconifyId"+Date.now().toString(16)+(Math.random()*16777216|0).toString(16),l5e=0;o(o7,"replaceIDs")});function l7(t,e){let r=t.indexOf("xlink:")===-1?"":' xmlns:xlink="http://www.w3.org/1999/xlink"';for(let n in e)r+=" "+n+'="'+e[n]+'"';return'"+t+""}var lG=M(()=>{"use strict";o(l7,"iconToHTML")});var cG=M(()=>{"use strict";jz();rG();sG();oG();lG()});var c7,Rn,v0=M(()=>{"use strict";c7=o((t,e,{depth:r=2,clobber:n=!1}={})=>{let i={depth:r,clobber:n};return Array.isArray(e)&&!Array.isArray(t)?(e.forEach(a=>c7(t,a,i)),t):Array.isArray(e)&&Array.isArray(t)?(e.forEach(a=>{t.includes(a)||t.push(a)}),t):t===void 0||r<=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(a=>{typeof e[a]=="object"&&(t[a]===void 0||typeof t[a]=="object")?(t[a]===void 0&&(t[a]=Array.isArray(e[a])?[]:{}),t[a]=c7(t[a],e[a],{depth:r-1,clobber:n})):(n||typeof t[a]!="object"&&typeof e[a]!="object")&&(t[a]=e[a])}),t)},"assignWithDepth"),Rn=c7});var j4=sa((u7,h7)=>{"use strict";(function(t,e){typeof u7=="object"&&typeof h7<"u"?h7.exports=e():typeof define=="function"&&define.amd?define(e):(t=typeof globalThis<"u"?globalThis:t||self).dayjs=e()})(u7,(function(){"use strict";var t=1e3,e=6e4,r=36e5,n="millisecond",i="second",a="minute",s="hour",l="day",u="week",h="month",f="quarter",d="year",p="date",m="Invalid Date",g=/^(\d{4})[-/]?(\d{1,2})?[-/]?(\d{0,2})[Tt\s]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?[.:]?(\d+)?$/,y=/\[([^\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,v={name:"en",weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),ordinal:o(function(E){var _=["th","st","nd","rd"],D=E%100;return"["+E+(_[(D-20)%10]||_[D]||_[0])+"]"},"ordinal")},x=o(function(E,_,D){var O=String(E);return!O||O.length>=_?E:""+Array(_+1-O.length).join(D)+E},"m"),b={s:x,z:o(function(E){var _=-E.utcOffset(),D=Math.abs(_),O=Math.floor(D/60),N=D%60;return(_<=0?"+":"-")+x(O,2,"0")+":"+x(N,2,"0")},"z"),m:o(function E(_,D){if(_.date()1)return E(B[0])}else{var F=_.name;S[F]=_,N=F}return!O&&N&&(T=N),N||!O&&T},"t"),A=o(function(E,_){if(k(E))return E.clone();var D=typeof _=="object"?_:{};return D.date=E,D.args=arguments,new I(D)},"O"),L=b;L.l=C,L.i=k,L.w=function(E,_){return A(E,{locale:_.$L,utc:_.$u,x:_.$x,$offset:_.$offset})};var I=(function(){function E(D){this.$L=C(D.locale,null,!0),this.parse(D),this.$x=this.$x||D.x||{},this[w]=!0}o(E,"M");var _=E.prototype;return _.parse=function(D){this.$d=(function(O){var N=O.date,P=O.utc;if(N===null)return new Date(NaN);if(L.u(N))return new Date;if(N instanceof Date)return new Date(N);if(typeof N=="string"&&!/Z$/i.test(N)){var B=N.match(g);if(B){var F=B[2]-1||0,V=(B[7]||"0").substring(0,3);return P?new Date(Date.UTC(B[1],F,B[3]||1,B[4]||0,B[5]||0,B[6]||0,V)):new Date(B[1],F,B[3]||1,B[4]||0,B[5]||0,B[6]||0,V)}}return new Date(N)})(D),this.init()},_.init=function(){var D=this.$d;this.$y=D.getFullYear(),this.$M=D.getMonth(),this.$D=D.getDate(),this.$W=D.getDay(),this.$H=D.getHours(),this.$m=D.getMinutes(),this.$s=D.getSeconds(),this.$ms=D.getMilliseconds()},_.$utils=function(){return L},_.isValid=function(){return this.$d.toString()!==m},_.isSame=function(D,O){var N=A(D);return this.startOf(O)<=N&&N<=this.endOf(O)},_.isAfter=function(D,O){return A(D){"use strict";uG=La(j4(),1),au={trace:0,debug:1,info:2,warn:3,error:4,fatal:5},X={trace:o((...t)=>{},"trace"),debug:o((...t)=>{},"debug"),info:o((...t)=>{},"info"),warn:o((...t)=>{},"warn"),error:o((...t)=>{},"error"),fatal:o((...t)=>{},"fatal")},Ly=o(function(t="fatal"){let e=au.fatal;typeof t=="string"?t.toLowerCase()in au&&(e=au[t]):typeof t=="number"&&(e=t),X.trace=()=>{},X.debug=()=>{},X.info=()=>{},X.warn=()=>{},X.error=()=>{},X.fatal=()=>{},e<=au.fatal&&(X.fatal=console.error?console.error.bind(console,Eo("FATAL"),"color: orange"):console.log.bind(console,"\x1B[35m",Eo("FATAL"))),e<=au.error&&(X.error=console.error?console.error.bind(console,Eo("ERROR"),"color: orange"):console.log.bind(console,"\x1B[31m",Eo("ERROR"))),e<=au.warn&&(X.warn=console.warn?console.warn.bind(console,Eo("WARN"),"color: orange"):console.log.bind(console,"\x1B[33m",Eo("WARN"))),e<=au.info&&(X.info=console.info?console.info.bind(console,Eo("INFO"),"color: lightblue"):console.log.bind(console,"\x1B[34m",Eo("INFO"))),e<=au.debug&&(X.debug=console.debug?console.debug.bind(console,Eo("DEBUG"),"color: lightgreen"):console.log.bind(console,"\x1B[32m",Eo("DEBUG"))),e<=au.trace&&(X.trace=console.debug?console.debug.bind(console,Eo("TRACE"),"color: lightgreen"):console.log.bind(console,"\x1B[32m",Eo("TRACE")))},"setLogLevel"),Eo=o(t=>`%c${(0,uG.default)().format("ss.SSS")} : ${t} : `,"format")});var K4,hG,fG=M(()=>{"use strict";K4={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:o(t=>t>=255?255:t<0?0:t,"r"),g:o(t=>t>=255?255:t<0?0:t,"g"),b:o(t=>t>=255?255:t<0?0:t,"b"),h:o(t=>t%360,"h"),s:o(t=>t>=100?100:t<0?0:t,"s"),l:o(t=>t>=100?100:t<0?0:t,"l"),a:o(t=>t>=1?1:t<0?0:t,"a")},toLinear:o(t=>{let e=t/255;return t>.03928?Math.pow((e+.055)/1.055,2.4):e/12.92},"toLinear"),hue2rgb:o((t,e,r)=>(r<0&&(r+=1),r>1&&(r-=1),r<.16666666666666666?t+(e-t)*6*r:r<.5?e:r<.6666666666666666?t+(e-t)*(.6666666666666666-r)*6:t),"hue2rgb"),hsl2rgb:o(({h:t,s:e,l:r},n)=>{if(!e)return r*2.55;t/=360,e/=100,r/=100;let i=r<.5?r*(1+e):r+e-r*e,a=2*r-i;switch(n){case"r":return K4.hue2rgb(a,i,t+.3333333333333333)*255;case"g":return K4.hue2rgb(a,i,t)*255;case"b":return K4.hue2rgb(a,i,t-.3333333333333333)*255}},"hsl2rgb"),rgb2hsl:o(({r:t,g:e,b:r},n)=>{t/=255,e/=255,r/=255;let i=Math.max(t,e,r),a=Math.min(t,e,r),s=(i+a)/2;if(n==="l")return s*100;if(i===a)return 0;let l=i-a,u=s>.5?l/(2-i-a):l/(i+a);if(n==="s")return u*100;switch(i){case t:return((e-r)/l+(e{"use strict";c5e={clamp:o((t,e,r)=>e>r?Math.min(e,Math.max(r,t)):Math.min(r,Math.max(e,t)),"clamp"),round:o(t=>Math.round(t*1e10)/1e10,"round")},dG=c5e});var u5e,mG,gG=M(()=>{"use strict";u5e={dec2hex:o(t=>{let e=Math.round(t).toString(16);return e.length>1?e:`0${e}`},"dec2hex")},mG=u5e});var h5e,Kt,Xl=M(()=>{"use strict";fG();pG();gG();h5e={channel:hG,lang:dG,unit:mG},Kt=h5e});var su,Ni,Ry=M(()=>{"use strict";Xl();su={};for(let t=0;t<=255;t++)su[t]=Kt.unit.dec2hex(t);Ni={ALL:0,RGB:1,HSL:2}});var f7,yG,vG=M(()=>{"use strict";Ry();f7=class{static{o(this,"Type")}constructor(){this.type=Ni.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=Ni.ALL}is(e){return this.type===e}},yG=f7});var d7,xG,bG=M(()=>{"use strict";Xl();vG();Ry();d7=class{static{o(this,"Channels")}constructor(e,r){this.color=r,this.changed=!1,this.data=e,this.type=new yG}set(e,r){return this.color=r,this.changed=!1,this.data=e,this.type.type=Ni.ALL,this}_ensureHSL(){let e=this.data,{h:r,s:n,l:i}=e;r===void 0&&(e.h=Kt.channel.rgb2hsl(e,"h")),n===void 0&&(e.s=Kt.channel.rgb2hsl(e,"s")),i===void 0&&(e.l=Kt.channel.rgb2hsl(e,"l"))}_ensureRGB(){let e=this.data,{r,g:n,b:i}=e;r===void 0&&(e.r=Kt.channel.hsl2rgb(e,"r")),n===void 0&&(e.g=Kt.channel.hsl2rgb(e,"g")),i===void 0&&(e.b=Kt.channel.hsl2rgb(e,"b"))}get r(){let e=this.data,r=e.r;return!this.type.is(Ni.HSL)&&r!==void 0?r:(this._ensureHSL(),Kt.channel.hsl2rgb(e,"r"))}get g(){let e=this.data,r=e.g;return!this.type.is(Ni.HSL)&&r!==void 0?r:(this._ensureHSL(),Kt.channel.hsl2rgb(e,"g"))}get b(){let e=this.data,r=e.b;return!this.type.is(Ni.HSL)&&r!==void 0?r:(this._ensureHSL(),Kt.channel.hsl2rgb(e,"b"))}get h(){let e=this.data,r=e.h;return!this.type.is(Ni.RGB)&&r!==void 0?r:(this._ensureRGB(),Kt.channel.rgb2hsl(e,"h"))}get s(){let e=this.data,r=e.s;return!this.type.is(Ni.RGB)&&r!==void 0?r:(this._ensureRGB(),Kt.channel.rgb2hsl(e,"s"))}get l(){let e=this.data,r=e.l;return!this.type.is(Ni.RGB)&&r!==void 0?r:(this._ensureRGB(),Kt.channel.rgb2hsl(e,"l"))}get a(){return this.data.a}set r(e){this.type.set(Ni.RGB),this.changed=!0,this.data.r=e}set g(e){this.type.set(Ni.RGB),this.changed=!0,this.data.g=e}set b(e){this.type.set(Ni.RGB),this.changed=!0,this.data.b=e}set h(e){this.type.set(Ni.HSL),this.changed=!0,this.data.h=e}set s(e){this.type.set(Ni.HSL),this.changed=!0,this.data.s=e}set l(e){this.type.set(Ni.HSL),this.changed=!0,this.data.l=e}set a(e){this.changed=!0,this.data.a=e}},xG=d7});var f5e,fh,Ny=M(()=>{"use strict";bG();f5e=new xG({r:0,g:0,b:0,a:0},"transparent"),fh=f5e});var TG,od,p7=M(()=>{"use strict";Ny();Ry();TG={re:/^#((?:[a-f0-9]{2}){2,4}|[a-f0-9]{3})$/i,parse:o(t=>{if(t.charCodeAt(0)!==35)return;let e=t.match(TG.re);if(!e)return;let r=e[1],n=parseInt(r,16),i=r.length,a=i%4===0,s=i>4,l=s?1:17,u=s?8:4,h=a?0:-1,f=s?255:15;return fh.set({r:(n>>u*(h+3)&f)*l,g:(n>>u*(h+2)&f)*l,b:(n>>u*(h+1)&f)*l,a:a?(n&f)*l/255:1},t)},"parse"),stringify:o(t=>{let{r:e,g:r,b:n,a:i}=t;return i<1?`#${su[Math.round(e)]}${su[Math.round(r)]}${su[Math.round(n)]}${su[Math.round(i*255)]}`:`#${su[Math.round(e)]}${su[Math.round(r)]}${su[Math.round(n)]}`},"stringify")},od=TG});var Q4,My,wG=M(()=>{"use strict";Xl();Ny();Q4={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:o(t=>{let e=t.match(Q4.hueRe);if(e){let[,r,n]=e;switch(n){case"grad":return Kt.channel.clamp.h(parseFloat(r)*.9);case"rad":return Kt.channel.clamp.h(parseFloat(r)*180/Math.PI);case"turn":return Kt.channel.clamp.h(parseFloat(r)*360)}}return Kt.channel.clamp.h(parseFloat(t))},"_hue2deg"),parse:o(t=>{let e=t.charCodeAt(0);if(e!==104&&e!==72)return;let r=t.match(Q4.re);if(!r)return;let[,n,i,a,s,l]=r;return fh.set({h:Q4._hue2deg(n),s:Kt.channel.clamp.s(parseFloat(i)),l:Kt.channel.clamp.l(parseFloat(a)),a:s?Kt.channel.clamp.a(l?parseFloat(s)/100:parseFloat(s)):1},t)},"parse"),stringify:o(t=>{let{h:e,s:r,l:n,a:i}=t;return i<1?`hsla(${Kt.lang.round(e)}, ${Kt.lang.round(r)}%, ${Kt.lang.round(n)}%, ${i})`:`hsl(${Kt.lang.round(e)}, ${Kt.lang.round(r)}%, ${Kt.lang.round(n)}%)`},"stringify")},My=Q4});var Z4,m7,kG=M(()=>{"use strict";p7();Z4={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:o(t=>{t=t.toLowerCase();let e=Z4.colors[t];if(e)return od.parse(e)},"parse"),stringify:o(t=>{let e=od.stringify(t);for(let r in Z4.colors)if(Z4.colors[r]===e)return r},"stringify")},m7=Z4});var EG,Iy,SG=M(()=>{"use strict";Xl();Ny();EG={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:o(t=>{let e=t.charCodeAt(0);if(e!==114&&e!==82)return;let r=t.match(EG.re);if(!r)return;let[,n,i,a,s,l,u,h,f]=r;return fh.set({r:Kt.channel.clamp.r(i?parseFloat(n)*2.55:parseFloat(n)),g:Kt.channel.clamp.g(s?parseFloat(a)*2.55:parseFloat(a)),b:Kt.channel.clamp.b(u?parseFloat(l)*2.55:parseFloat(l)),a:h?Kt.channel.clamp.a(f?parseFloat(h)/100:parseFloat(h)):1},t)},"parse"),stringify:o(t=>{let{r:e,g:r,b:n,a:i}=t;return i<1?`rgba(${Kt.lang.round(e)}, ${Kt.lang.round(r)}, ${Kt.lang.round(n)}, ${Kt.lang.round(i)})`:`rgb(${Kt.lang.round(e)}, ${Kt.lang.round(r)}, ${Kt.lang.round(n)})`},"stringify")},Iy=EG});var d5e,Mi,ou=M(()=>{"use strict";p7();wG();kG();SG();Ry();d5e={format:{keyword:m7,hex:od,rgb:Iy,rgba:Iy,hsl:My,hsla:My},parse:o(t=>{if(typeof t!="string")return t;let e=od.parse(t)||Iy.parse(t)||My.parse(t)||m7.parse(t);if(e)return e;throw new Error(`Unsupported color format: "${t}"`)},"parse"),stringify:o(t=>!t.changed&&t.color?t.color:t.type.is(Ni.HSL)||t.data.r===void 0?My.stringify(t):t.a<1||!Number.isInteger(t.r)||!Number.isInteger(t.g)||!Number.isInteger(t.b)?Iy.stringify(t):od.stringify(t),"stringify")},Mi=d5e});var p5e,J4,g7=M(()=>{"use strict";Xl();ou();p5e=o((t,e)=>{let r=Mi.parse(t);for(let n in e)r[n]=Kt.channel.clamp[n](e[n]);return Mi.stringify(r)},"change"),J4=p5e});var m5e,Ka,y7=M(()=>{"use strict";Xl();Ny();ou();g7();m5e=o((t,e,r=0,n=1)=>{if(typeof t!="number")return J4(t,{a:e});let i=fh.set({r:Kt.channel.clamp.r(t),g:Kt.channel.clamp.g(e),b:Kt.channel.clamp.b(r),a:Kt.channel.clamp.a(n)});return Mi.stringify(i)},"rgba"),Ka=m5e});var g5e,ld,CG=M(()=>{"use strict";Xl();ou();g5e=o((t,e)=>Kt.lang.round(Mi.parse(t)[e]),"channel"),ld=g5e});var y5e,AG,_G=M(()=>{"use strict";Xl();ou();y5e=o(t=>{let{r:e,g:r,b:n}=Mi.parse(t),i=.2126*Kt.channel.toLinear(e)+.7152*Kt.channel.toLinear(r)+.0722*Kt.channel.toLinear(n);return Kt.lang.round(i)},"luminance"),AG=y5e});var v5e,DG,LG=M(()=>{"use strict";_G();v5e=o(t=>AG(t)>=.5,"isLight"),DG=v5e});var x5e,oa,RG=M(()=>{"use strict";LG();x5e=o(t=>!DG(t),"isDark"),oa=x5e});var b5e,e3,v7=M(()=>{"use strict";Xl();ou();b5e=o((t,e,r)=>{let n=Mi.parse(t),i=n[e],a=Kt.channel.clamp[e](i+r);return i!==a&&(n[e]=a),Mi.stringify(n)},"adjustChannel"),e3=b5e});var T5e,Rt,NG=M(()=>{"use strict";v7();T5e=o((t,e)=>e3(t,"l",e),"lighten"),Rt=T5e});var w5e,Pt,MG=M(()=>{"use strict";v7();w5e=o((t,e)=>e3(t,"l",-e),"darken"),Pt=w5e});var k5e,Pe,IG=M(()=>{"use strict";ou();g7();k5e=o((t,e)=>{let r=Mi.parse(t),n={};for(let i in e)e[i]&&(n[i]=r[i]+e[i]);return J4(t,n)},"adjust"),Pe=k5e});var E5e,OG,PG=M(()=>{"use strict";ou();y7();E5e=o((t,e,r=50)=>{let{r:n,g:i,b:a,a:s}=Mi.parse(t),{r:l,g:u,b:h,a:f}=Mi.parse(e),d=r/100,p=d*2-1,m=s-f,y=((p*m===-1?p:(p+m)/(1+p*m))+1)/2,v=1-y,x=n*y+l*v,b=i*y+u*v,T=a*y+h*v,S=s*d+f*(1-d);return Ka(x,b,T,S)},"mix"),OG=E5e});var S5e,Et,BG=M(()=>{"use strict";ou();PG();S5e=o((t,e=100)=>{let r=Mi.parse(t);return r.r=255-r.r,r.g=255-r.g,r.b=255-r.b,OG(r,t,e)},"invert"),Et=S5e});var FG=M(()=>{"use strict";y7();CG();RG();NG();MG();IG();BG()});var eo=M(()=>{"use strict";FG()});var dh,ph,Oy=M(()=>{"use strict";dh="#ffffff",ph="#f2f2f2"});var wi,x0=M(()=>{"use strict";eo();wi=o((t,e)=>e?Pe(t,{s:-40,l:10}):Pe(t,{s:-40,l:-10}),"mkBorder")});var b7,$G,zG=M(()=>{"use strict";eo();Oy();x0();b7=class{static{o(this,"Theme")}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(){if(this.primaryTextColor=this.primaryTextColor||(this.darkMode?"#eee":"#333"),this.secondaryColor=this.secondaryColor||Pe(this.primaryColor,{h:-120}),this.tertiaryColor=this.tertiaryColor||Pe(this.primaryColor,{h:180,l:5}),this.primaryBorderColor=this.primaryBorderColor||wi(this.primaryColor,this.darkMode),this.secondaryBorderColor=this.secondaryBorderColor||wi(this.secondaryColor,this.darkMode),this.tertiaryBorderColor=this.tertiaryBorderColor||wi(this.tertiaryColor,this.darkMode),this.noteBorderColor=this.noteBorderColor||wi(this.noteBkgColor,this.darkMode),this.noteBkgColor=this.noteBkgColor||"#fff5ad",this.noteTextColor=this.noteTextColor||"#333",this.secondaryTextColor=this.secondaryTextColor||Et(this.secondaryColor),this.tertiaryTextColor=this.tertiaryTextColor||Et(this.tertiaryColor),this.lineColor=this.lineColor||Et(this.background),this.arrowheadColor=this.arrowheadColor||Et(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?Pt(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||this.actorBorder,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||Pt(this.secondaryColor,10),this.activationBkgColor=this.activationBkgColor||this.secondaryColor,this.sequenceNumberColor=this.sequenceNumberColor||Et(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||Rt(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.vertLineColor=this.vertLineColor||"navy",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.darkMode?(this.rowOdd=this.rowOdd||Pt(this.mainBkg,5)||"#ffffff",this.rowEven=this.rowEven||Pt(this.mainBkg,10)):(this.rowOdd=this.rowOdd||Rt(this.mainBkg,75)||"#ffffff",this.rowEven=this.rowEven||Rt(this.mainBkg,5)),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||Pe(this.primaryColor,{h:30}),this.cScale4=this.cScale4||Pe(this.primaryColor,{h:60}),this.cScale5=this.cScale5||Pe(this.primaryColor,{h:90}),this.cScale6=this.cScale6||Pe(this.primaryColor,{h:120}),this.cScale7=this.cScale7||Pe(this.primaryColor,{h:150}),this.cScale8=this.cScale8||Pe(this.primaryColor,{h:210,l:150}),this.cScale9=this.cScale9||Pe(this.primaryColor,{h:270}),this.cScale10=this.cScale10||Pe(this.primaryColor,{h:300}),this.cScale11=this.cScale11||Pe(this.primaryColor,{h:330}),this.darkMode)for(let r=0;r{this[n]=e[n]}),this.updateColors(),r.forEach(n=>{this[n]=e[n]})}},$G=o(t=>{let e=new b7;return e.calculate(t),e},"getThemeVariables")});var T7,GG,VG=M(()=>{"use strict";eo();x0();T7=class{static{o(this,"Theme")}constructor(){this.background="#333",this.primaryColor="#1f2020",this.secondaryColor=Rt(this.primaryColor,16),this.tertiaryColor=Pe(this.primaryColor,{h:-160}),this.primaryBorderColor=Et(this.background),this.secondaryBorderColor=wi(this.secondaryColor,this.darkMode),this.tertiaryBorderColor=wi(this.tertiaryColor,this.darkMode),this.primaryTextColor=Et(this.primaryColor),this.secondaryTextColor=Et(this.secondaryColor),this.tertiaryTextColor=Et(this.tertiaryColor),this.lineColor=Et(this.background),this.textColor=Et(this.background),this.mainBkg="#1f2020",this.secondBkg="calculated",this.mainContrastColor="lightgrey",this.darkTextColor=Rt(Et("#323D47"),10),this.lineColor="calculated",this.border1="#ccc",this.border2=Ka(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=Pt("#EAE8D9",30),this.altSectionBkgColor="calculated",this.sectionBkgColor2="#EAE8D9",this.excludeBkgColor=Pt(this.sectionBkgColor,10),this.taskBorderColor=Ka(255,255,255,70),this.taskBkgColor="calculated",this.taskTextColor="calculated",this.taskTextLightColor="calculated",this.taskTextOutsideColor="calculated",this.taskTextClickableColor="#003163",this.activeTaskBorderColor=Ka(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.vertLineColor="#00BFFF",this.personBorder=this.primaryBorderColor,this.personBkg=this.mainBkg,this.archEdgeColor="calculated",this.archEdgeArrowColor="calculated",this.archEdgeWidth="3",this.archGroupBorderColor=this.primaryBorderColor,this.archGroupBorderWidth="2px",this.rowOdd=this.rowOdd||Rt(this.mainBkg,5)||"#ffffff",this.rowEven=this.rowEven||Pt(this.mainBkg,10),this.labelColor="calculated",this.errorBkgColor="#a44141",this.errorTextColor="#ddd"}updateColors(){this.secondBkg=Rt(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=Rt(this.labelBackground,25),this.actorBorder=this.border1,this.actorBkg=this.mainBkg,this.actorTextColor=this.mainContrastColor,this.actorLineColor=this.actorBorder,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=Rt(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.archEdgeColor=this.lineColor,this.archEdgeArrowColor=this.lineColor,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=Pe(this.primaryColor,{h:64}),this.fillType3=Pe(this.secondaryColor,{h:64}),this.fillType4=Pe(this.primaryColor,{h:-64}),this.fillType5=Pe(this.secondaryColor,{h:-64}),this.fillType6=Pe(this.primaryColor,{h:128}),this.fillType7=Pe(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||Pe(this.primaryColor,{h:30}),this.cScale4=this.cScale4||Pe(this.primaryColor,{h:60}),this.cScale5=this.cScale5||Pe(this.primaryColor,{h:90}),this.cScale6=this.cScale6||Pe(this.primaryColor,{h:120}),this.cScale7=this.cScale7||Pe(this.primaryColor,{h:150}),this.cScale8=this.cScale8||Pe(this.primaryColor,{h:210}),this.cScale9=this.cScale9||Pe(this.primaryColor,{h:270}),this.cScale10=this.cScale10||Pe(this.primaryColor,{h:300}),this.cScale11=this.cScale11||Pe(this.primaryColor,{h:330});for(let e=0;e{this[n]=e[n]}),this.updateColors(),r.forEach(n=>{this[n]=e[n]})}},GG=o(t=>{let e=new T7;return e.calculate(t),e},"getThemeVariables")});var w7,mh,Py=M(()=>{"use strict";eo();x0();Oy();w7=class{static{o(this,"Theme")}constructor(){this.background="#f4f4f4",this.primaryColor="#ECECFF",this.secondaryColor=Pe(this.primaryColor,{h:120}),this.secondaryColor="#ffffde",this.tertiaryColor=Pe(this.primaryColor,{h:-160}),this.primaryBorderColor=wi(this.primaryColor,this.darkMode),this.secondaryBorderColor=wi(this.secondaryColor,this.darkMode),this.tertiaryBorderColor=wi(this.tertiaryColor,this.darkMode),this.primaryTextColor=Et(this.primaryColor),this.secondaryTextColor=Et(this.secondaryColor),this.tertiaryTextColor=Et(this.tertiaryColor),this.lineColor=Et(this.background),this.textColor=Et(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="rgba(232,232,232, 0.8)",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="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="#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.vertLineColor="calculated",this.sectionBkgColor=Ka(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.vertLineColor="navy",this.personBorder=this.primaryBorderColor,this.personBkg=this.mainBkg,this.archEdgeColor="calculated",this.archEdgeArrowColor="calculated",this.archEdgeWidth="3",this.archGroupBorderColor=this.primaryBorderColor,this.archGroupBorderWidth="2px",this.rowOdd="calculated",this.rowEven="calculated",this.labelColor="black",this.errorBkgColor="#552222",this.errorTextColor="#552222",this.updateColors()}updateColors(){this.cScale0=this.cScale0||this.primaryColor,this.cScale1=this.cScale1||this.secondaryColor,this.cScale2=this.cScale2||this.tertiaryColor,this.cScale3=this.cScale3||Pe(this.primaryColor,{h:30}),this.cScale4=this.cScale4||Pe(this.primaryColor,{h:60}),this.cScale5=this.cScale5||Pe(this.primaryColor,{h:90}),this.cScale6=this.cScale6||Pe(this.primaryColor,{h:120}),this.cScale7=this.cScale7||Pe(this.primaryColor,{h:150}),this.cScale8=this.cScale8||Pe(this.primaryColor,{h:210}),this.cScale9=this.cScale9||Pe(this.primaryColor,{h:270}),this.cScale10=this.cScale10||Pe(this.primaryColor,{h:300}),this.cScale11=this.cScale11||Pe(this.primaryColor,{h:330}),this.cScalePeer1=this.cScalePeer1||Pt(this.secondaryColor,45),this.cScalePeer2=this.cScalePeer2||Pt(this.tertiaryColor,40);for(let e=0;e{this[n]==="calculated"&&(this[n]=void 0)}),typeof e!="object"){this.updateColors();return}let r=Object.keys(e);r.forEach(n=>{this[n]=e[n]}),this.updateColors(),r.forEach(n=>{this[n]=e[n]})}},mh=o(t=>{let e=new w7;return e.calculate(t),e},"getThemeVariables")});var k7,UG,HG=M(()=>{"use strict";eo();Oy();x0();k7=class{static{o(this,"Theme")}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=Rt("#cde498",10),this.primaryBorderColor=wi(this.primaryColor,this.darkMode),this.secondaryBorderColor=wi(this.secondaryColor,this.darkMode),this.tertiaryBorderColor=wi(this.tertiaryColor,this.darkMode),this.primaryTextColor=Et(this.primaryColor),this.secondaryTextColor=Et(this.secondaryColor),this.tertiaryTextColor=Et(this.primaryColor),this.lineColor=Et(this.background),this.textColor=Et(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="calculated",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.vertLineColor="#00BFFF",this.personBorder=this.primaryBorderColor,this.personBkg=this.mainBkg,this.archEdgeColor="calculated",this.archEdgeArrowColor="calculated",this.archEdgeWidth="3",this.archGroupBorderColor=this.primaryBorderColor,this.archGroupBorderWidth="2px",this.labelColor="black",this.errorBkgColor="#552222",this.errorTextColor="#552222"}updateColors(){this.actorBorder=Pt(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.actorLineColor=this.actorBorder,this.cScale0=this.cScale0||this.primaryColor,this.cScale1=this.cScale1||this.secondaryColor,this.cScale2=this.cScale2||this.tertiaryColor,this.cScale3=this.cScale3||Pe(this.primaryColor,{h:30}),this.cScale4=this.cScale4||Pe(this.primaryColor,{h:60}),this.cScale5=this.cScale5||Pe(this.primaryColor,{h:90}),this.cScale6=this.cScale6||Pe(this.primaryColor,{h:120}),this.cScale7=this.cScale7||Pe(this.primaryColor,{h:150}),this.cScale8=this.cScale8||Pe(this.primaryColor,{h:210}),this.cScale9=this.cScale9||Pe(this.primaryColor,{h:270}),this.cScale10=this.cScale10||Pe(this.primaryColor,{h:300}),this.cScale11=this.cScale11||Pe(this.primaryColor,{h:330}),this.cScalePeer1=this.cScalePeer1||Pt(this.secondaryColor,45),this.cScalePeer2=this.cScalePeer2||Pt(this.tertiaryColor,40);for(let e=0;e{this[n]=e[n]}),this.updateColors(),r.forEach(n=>{this[n]=e[n]})}},UG=o(t=>{let e=new k7;return e.calculate(t),e},"getThemeVariables")});var E7,qG,WG=M(()=>{"use strict";eo();x0();Oy();E7=class{static{o(this,"Theme")}constructor(){this.primaryColor="#eee",this.contrast="#707070",this.secondaryColor=Rt(this.contrast,55),this.background="#ffffff",this.tertiaryColor=Pe(this.primaryColor,{h:-160}),this.primaryBorderColor=wi(this.primaryColor,this.darkMode),this.secondaryBorderColor=wi(this.secondaryColor,this.darkMode),this.tertiaryBorderColor=wi(this.tertiaryColor,this.darkMode),this.primaryTextColor=Et(this.primaryColor),this.secondaryTextColor=Et(this.secondaryColor),this.tertiaryTextColor=Et(this.tertiaryColor),this.lineColor=Et(this.background),this.textColor=Et(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=this.actorBorder,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.vertLineColor="calculated",this.personBorder=this.primaryBorderColor,this.personBkg=this.mainBkg,this.archEdgeColor="calculated",this.archEdgeArrowColor="calculated",this.archEdgeWidth="3",this.archGroupBorderColor=this.primaryBorderColor,this.archGroupBorderWidth="2px",this.rowOdd=this.rowOdd||Rt(this.mainBkg,75)||"#ffffff",this.rowEven=this.rowEven||"#f4f4f4",this.labelColor="black",this.errorBkgColor="#552222",this.errorTextColor="#552222"}updateColors(){this.secondBkg=Rt(this.contrast,55),this.border2=this.contrast,this.actorBorder=Rt(this.border1,23),this.actorBkg=this.mainBkg,this.actorTextColor=this.text,this.actorLineColor=this.actorBorder,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 e=0;e{this[n]=e[n]}),this.updateColors(),r.forEach(n=>{this[n]=e[n]})}},qG=o(t=>{let e=new E7;return e.calculate(t),e},"getThemeVariables")});var So,t3=M(()=>{"use strict";zG();VG();Py();HG();WG();So={base:{getThemeVariables:$G},dark:{getThemeVariables:GG},default:{getThemeVariables:mh},forest:{getThemeVariables:UG},neutral:{getThemeVariables:qG}}});var ul,YG=M(()=>{"use strict";ul={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,inheritDir:!1},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,maxLabelWidth:360,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"],titleColor:"",titleFontFamily:'"trebuchet ms", verdana, arial, sans-serif',titleFontSize:"4ex"},class:{useMaxWidth:!0,titleTopMargin:25,arrowMarkerAbsolute:!1,dividerMargin:10,padding:5,textHeight:10,defaultRenderer:"dagre-wrapper",htmlLabels:!1,hideEmptyMembersBox:!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,nodeSpacing:140,rankSpacing:80,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,showDataLabel:!1,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,layoutAlgorithm:"cose-bilkent"},kanban:{useMaxWidth:!0,padding:8,sectionWidth:200,ticketBaseUrl:""},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},packet:{useMaxWidth:!0,rowHeight:32,bitWidth:32,bitsPerRow:32,showBits:!0,paddingX:5,paddingY:5},architecture:{useMaxWidth:!0,padding:40,iconSize:80,fontSize:16},radar:{useMaxWidth:!0,width:600,height:600,marginTop:50,marginRight:50,marginBottom:50,marginLeft:50,axisScaleFactor:1,axisLabelFactor:1.05,curveTension:.17},theme:"default",look:"classic",handDrawnSeed:0,layout:"dagre",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","suppressErrorRendering","maxEdges"],legacyMathML:!1,forceLegacyMathML:!1,deterministicIds:!1,fontSize:16,markdownAutoWrap:!0,suppressErrorRendering:!1}});var XG,jG,KG,ur,Ra=M(()=>{"use strict";t3();YG();XG={...ul,deterministicIDSeed:void 0,elk:{mergeEdges:!1,nodePlacementStrategy:"BRANDES_KOEPF",forceNodeModelOrder:!1,considerModelOrder:"NODES_AND_EDGES"},themeCSS:void 0,themeVariables:So.default.getThemeVariables(),sequence:{...ul.sequence,messageFont:o(function(){return{fontFamily:this.messageFontFamily,fontSize:this.messageFontSize,fontWeight:this.messageFontWeight}},"messageFont"),noteFont:o(function(){return{fontFamily:this.noteFontFamily,fontSize:this.noteFontSize,fontWeight:this.noteFontWeight}},"noteFont"),actorFont:o(function(){return{fontFamily:this.actorFontFamily,fontSize:this.actorFontSize,fontWeight:this.actorFontWeight}},"actorFont")},class:{hideEmptyMembersBox:!1},gantt:{...ul.gantt,tickInterval:void 0,useWidth:void 0},c4:{...ul.c4,useWidth:void 0,personFont:o(function(){return{fontFamily:this.personFontFamily,fontSize:this.personFontSize,fontWeight:this.personFontWeight}},"personFont"),flowchart:{...ul.flowchart,inheritDir:!1},external_personFont:o(function(){return{fontFamily:this.external_personFontFamily,fontSize:this.external_personFontSize,fontWeight:this.external_personFontWeight}},"external_personFont"),systemFont:o(function(){return{fontFamily:this.systemFontFamily,fontSize:this.systemFontSize,fontWeight:this.systemFontWeight}},"systemFont"),external_systemFont:o(function(){return{fontFamily:this.external_systemFontFamily,fontSize:this.external_systemFontSize,fontWeight:this.external_systemFontWeight}},"external_systemFont"),system_dbFont:o(function(){return{fontFamily:this.system_dbFontFamily,fontSize:this.system_dbFontSize,fontWeight:this.system_dbFontWeight}},"system_dbFont"),external_system_dbFont:o(function(){return{fontFamily:this.external_system_dbFontFamily,fontSize:this.external_system_dbFontSize,fontWeight:this.external_system_dbFontWeight}},"external_system_dbFont"),system_queueFont:o(function(){return{fontFamily:this.system_queueFontFamily,fontSize:this.system_queueFontSize,fontWeight:this.system_queueFontWeight}},"system_queueFont"),external_system_queueFont:o(function(){return{fontFamily:this.external_system_queueFontFamily,fontSize:this.external_system_queueFontSize,fontWeight:this.external_system_queueFontWeight}},"external_system_queueFont"),containerFont:o(function(){return{fontFamily:this.containerFontFamily,fontSize:this.containerFontSize,fontWeight:this.containerFontWeight}},"containerFont"),external_containerFont:o(function(){return{fontFamily:this.external_containerFontFamily,fontSize:this.external_containerFontSize,fontWeight:this.external_containerFontWeight}},"external_containerFont"),container_dbFont:o(function(){return{fontFamily:this.container_dbFontFamily,fontSize:this.container_dbFontSize,fontWeight:this.container_dbFontWeight}},"container_dbFont"),external_container_dbFont:o(function(){return{fontFamily:this.external_container_dbFontFamily,fontSize:this.external_container_dbFontSize,fontWeight:this.external_container_dbFontWeight}},"external_container_dbFont"),container_queueFont:o(function(){return{fontFamily:this.container_queueFontFamily,fontSize:this.container_queueFontSize,fontWeight:this.container_queueFontWeight}},"container_queueFont"),external_container_queueFont:o(function(){return{fontFamily:this.external_container_queueFontFamily,fontSize:this.external_container_queueFontSize,fontWeight:this.external_container_queueFontWeight}},"external_container_queueFont"),componentFont:o(function(){return{fontFamily:this.componentFontFamily,fontSize:this.componentFontSize,fontWeight:this.componentFontWeight}},"componentFont"),external_componentFont:o(function(){return{fontFamily:this.external_componentFontFamily,fontSize:this.external_componentFontSize,fontWeight:this.external_componentFontWeight}},"external_componentFont"),component_dbFont:o(function(){return{fontFamily:this.component_dbFontFamily,fontSize:this.component_dbFontSize,fontWeight:this.component_dbFontWeight}},"component_dbFont"),external_component_dbFont:o(function(){return{fontFamily:this.external_component_dbFontFamily,fontSize:this.external_component_dbFontSize,fontWeight:this.external_component_dbFontWeight}},"external_component_dbFont"),component_queueFont:o(function(){return{fontFamily:this.component_queueFontFamily,fontSize:this.component_queueFontSize,fontWeight:this.component_queueFontWeight}},"component_queueFont"),external_component_queueFont:o(function(){return{fontFamily:this.external_component_queueFontFamily,fontSize:this.external_component_queueFontSize,fontWeight:this.external_component_queueFontWeight}},"external_component_queueFont"),boundaryFont:o(function(){return{fontFamily:this.boundaryFontFamily,fontSize:this.boundaryFontSize,fontWeight:this.boundaryFontWeight}},"boundaryFont"),messageFont:o(function(){return{fontFamily:this.messageFontFamily,fontSize:this.messageFontSize,fontWeight:this.messageFontWeight}},"messageFont")},pie:{...ul.pie,useWidth:984},xyChart:{...ul.xyChart,useWidth:void 0},requirement:{...ul.requirement,useWidth:void 0},packet:{...ul.packet},radar:{...ul.radar},treemap:{useMaxWidth:!0,padding:10,diagramPadding:8,showValues:!0,nodeWidth:100,nodeHeight:40,borderWidth:1,valueFontSize:12,labelFontSize:14,valueFormat:","}},jG=o((t,e="")=>Object.keys(t).reduce((r,n)=>Array.isArray(t[n])?r:typeof t[n]=="object"&&t[n]!==null?[...r,e+n,...jG(t[n],"")]:[...r,e+n],[]),"keyify"),KG=new Set(jG(XG,"")),ur=XG});var b0,C5e,S7=M(()=>{"use strict";Ra();pt();b0=o(t=>{if(X.debug("sanitizeDirective called with",t),!(typeof t!="object"||t==null)){if(Array.isArray(t)){t.forEach(e=>b0(e));return}for(let e of Object.keys(t)){if(X.debug("Checking key",e),e.startsWith("__")||e.includes("proto")||e.includes("constr")||!KG.has(e)||t[e]==null){X.debug("sanitize deleting key: ",e),delete t[e];continue}if(typeof t[e]=="object"){X.debug("sanitizing object",e),b0(t[e]);continue}let r=["themeCSS","fontFamily","altFontFamily"];for(let n of r)e.includes(n)&&(X.debug("sanitizing css option",e),t[e]=C5e(t[e]))}if(t.themeVariables)for(let e of Object.keys(t.themeVariables)){let r=t.themeVariables[e];r?.match&&!r.match(/^[\d "#%(),.;A-Za-z]+$/)&&(t.themeVariables[e]="")}X.debug("After sanitization",t)}},"sanitizeDirective"),C5e=o(t=>{let e=0,r=0;for(let n of t){if(e{"use strict";v0();pt();t3();Ra();S7();gh=Object.freeze(ur),Es=Rn({},gh),cd=[],By=Rn({},gh),n3=o((t,e)=>{let r=Rn({},t),n={};for(let i of e)eV(i),n=Rn(n,i);if(r=Rn(r,n),n.theme&&n.theme in So){let i=Rn({},r3),a=Rn(i.themeVariables||{},n.themeVariables);r.theme&&r.theme in So&&(r.themeVariables=So[r.theme].getThemeVariables(a))}return By=r,rV(By),By},"updateCurrentConfig"),C7=o(t=>(Es=Rn({},gh),Es=Rn(Es,t),t.theme&&So[t.theme]&&(Es.themeVariables=So[t.theme].getThemeVariables(t.themeVariables)),n3(Es,cd),Es),"setSiteConfig"),ZG=o(t=>{r3=Rn({},t)},"saveConfigFromInitialize"),JG=o(t=>(Es=Rn(Es,t),n3(Es,cd),Es),"updateSiteConfig"),A7=o(()=>Rn({},Es),"getSiteConfig"),i3=o(t=>(rV(t),Rn(By,t),Qt()),"setConfig"),Qt=o(()=>Rn({},By),"getConfig"),eV=o(t=>{t&&(["secure",...Es.secure??[]].forEach(e=>{Object.hasOwn(t,e)&&(X.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"&&eV(t[e])}))},"sanitize"),tV=o(t=>{b0(t),t.fontFamily&&!t.themeVariables?.fontFamily&&(t.themeVariables={...t.themeVariables,fontFamily:t.fontFamily}),cd.push(t),n3(Es,cd)},"addDirective"),Fy=o((t=Es)=>{cd=[],n3(t,cd)},"reset"),A5e={LAZY_LOAD_DEPRECATED:"The configuration options lazyLoadedDiagrams and loadExternalDiagramsAtStartup are deprecated. Please use registerExternalDiagrams instead."},QG={},_5e=o(t=>{QG[t]||(X.warn(A5e[t]),QG[t]=!0)},"issueWarning"),rV=o(t=>{t&&(t.lazyLoadedDiagrams||t.loadExternalDiagramsAtStartup)&&_5e("LAZY_LOAD_DEPRECATED")},"checkConfig"),nV=o(()=>{let t={};r3&&(t=Rn(t,r3));for(let e of cd)t=Rn(t,e);return t},"getUserDefinedConfig")});function Ja(t){return function(e){e instanceof RegExp&&(e.lastIndex=0);for(var r=arguments.length,n=new Array(r>1?r-1:0),i=1;i2&&arguments[2]!==void 0?arguments[2]:o3;iV&&iV(t,null);let n=e.length;for(;n--;){let i=e[n];if(typeof i=="string"){let a=r(i);a!==i&&(D5e(e)||(e[n]=a),i=a)}t[i]=!0}return t}function B5e(t){for(let e=0;e0&&arguments[0]!==void 0?arguments[0]:X5e(),e=o(Ct=>yV(Ct),"DOMPurify");if(e.version="3.2.6",e.removed=[],!t||!t.document||t.document.nodeType!==Uy.document||!t.Element)return e.isSupported=!1,e;let{document:r}=t,n=r,i=n.currentScript,{DocumentFragment:a,HTMLTemplateElement:s,Node:l,Element:u,NodeFilter:h,NamedNodeMap:f=t.NamedNodeMap||t.MozNamedAttrMap,HTMLFormElement:d,DOMParser:p,trustedTypes:m}=t,g=u.prototype,y=Vy(g,"cloneNode"),v=Vy(g,"remove"),x=Vy(g,"nextSibling"),b=Vy(g,"childNodes"),T=Vy(g,"parentNode");if(typeof s=="function"){let Ct=r.createElement("template");Ct.content&&Ct.content.ownerDocument&&(r=Ct.content.ownerDocument)}let S,w="",{implementation:k,createNodeIterator:C,createDocumentFragment:A,getElementsByTagName:L}=r,{importNode:I}=n,R=fV();e.isSupported=typeof dV=="function"&&typeof T=="function"&&k&&k.createHTMLDocument!==void 0;let{MUSTACHE_EXPR:E,ERB_EXPR:_,TMPLIT_EXPR:D,DATA_ATTR:O,ARIA_ATTR:N,IS_SCRIPT_OR_DATA:P,ATTR_WHITESPACE:B,CUSTOM_ELEMENT:F}=hV,{IS_ALLOWED_URI:V}=hV,$=null,U=Nr({},[...oV,...D7,...L7,...R7,...lV]),j=null,ee=Nr({},[...cV,...N7,...uV,...s3]),q=Object.seal(pV(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}})),oe=null,Q=null,ue=!0,te=!0,re=!1,J=!0,K=!1,ae=!0,Z=!1,de=!1,ne=!1,Te=!1,W=!1,Ve=!1,pe=!0,Be=!1,Ye="user-content-",He=!0,Le=!1,Ie={},Ne=null,Ce=Nr({},["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"]),Fe=null,fe=Nr({},["audio","video","img","source","image","track"]),xe=null,Y=Nr({},["alt","class","for","id","label","name","pattern","placeholder","role","summary","title","value","style","xmlns"]),he="http://www.w3.org/1998/Math/MathML",z="http://www.w3.org/2000/svg",se="http://www.w3.org/1999/xhtml",le=se,ke=!1,ve=null,ye=Nr({},[he,z,se],_7),Re=Nr({},["mi","mo","mn","ms","mtext"]),_e=Nr({},["annotation-xml"]),ze=Nr({},["title","style","font","a","script"]),Ke=null,xt=["application/xhtml+xml","text/html"],We="text/html",Oe=null,et=null,Ue=r.createElement("form"),lt=o(function(Se){return Se instanceof RegExp||Se instanceof Function},"isRegexOrFunction"),Gt=o(function(){let Se=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};if(!(et&&et===Se)){if((!Se||typeof Se!="object")&&(Se={}),Se=lu(Se),Ke=xt.indexOf(Se.PARSER_MEDIA_TYPE)===-1?We:Se.PARSER_MEDIA_TYPE,Oe=Ke==="application/xhtml+xml"?_7:o3,$=hl(Se,"ALLOWED_TAGS")?Nr({},Se.ALLOWED_TAGS,Oe):U,j=hl(Se,"ALLOWED_ATTR")?Nr({},Se.ALLOWED_ATTR,Oe):ee,ve=hl(Se,"ALLOWED_NAMESPACES")?Nr({},Se.ALLOWED_NAMESPACES,_7):ye,xe=hl(Se,"ADD_URI_SAFE_ATTR")?Nr(lu(Y),Se.ADD_URI_SAFE_ATTR,Oe):Y,Fe=hl(Se,"ADD_DATA_URI_TAGS")?Nr(lu(fe),Se.ADD_DATA_URI_TAGS,Oe):fe,Ne=hl(Se,"FORBID_CONTENTS")?Nr({},Se.FORBID_CONTENTS,Oe):Ce,oe=hl(Se,"FORBID_TAGS")?Nr({},Se.FORBID_TAGS,Oe):lu({}),Q=hl(Se,"FORBID_ATTR")?Nr({},Se.FORBID_ATTR,Oe):lu({}),Ie=hl(Se,"USE_PROFILES")?Se.USE_PROFILES:!1,ue=Se.ALLOW_ARIA_ATTR!==!1,te=Se.ALLOW_DATA_ATTR!==!1,re=Se.ALLOW_UNKNOWN_PROTOCOLS||!1,J=Se.ALLOW_SELF_CLOSE_IN_ATTR!==!1,K=Se.SAFE_FOR_TEMPLATES||!1,ae=Se.SAFE_FOR_XML!==!1,Z=Se.WHOLE_DOCUMENT||!1,Te=Se.RETURN_DOM||!1,W=Se.RETURN_DOM_FRAGMENT||!1,Ve=Se.RETURN_TRUSTED_TYPE||!1,ne=Se.FORCE_BODY||!1,pe=Se.SANITIZE_DOM!==!1,Be=Se.SANITIZE_NAMED_PROPS||!1,He=Se.KEEP_CONTENT!==!1,Le=Se.IN_PLACE||!1,V=Se.ALLOWED_URI_REGEXP||mV,le=Se.NAMESPACE||se,Re=Se.MATHML_TEXT_INTEGRATION_POINTS||Re,_e=Se.HTML_INTEGRATION_POINTS||_e,q=Se.CUSTOM_ELEMENT_HANDLING||{},Se.CUSTOM_ELEMENT_HANDLING&<(Se.CUSTOM_ELEMENT_HANDLING.tagNameCheck)&&(q.tagNameCheck=Se.CUSTOM_ELEMENT_HANDLING.tagNameCheck),Se.CUSTOM_ELEMENT_HANDLING&<(Se.CUSTOM_ELEMENT_HANDLING.attributeNameCheck)&&(q.attributeNameCheck=Se.CUSTOM_ELEMENT_HANDLING.attributeNameCheck),Se.CUSTOM_ELEMENT_HANDLING&&typeof Se.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements=="boolean"&&(q.allowCustomizedBuiltInElements=Se.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements),K&&(te=!1),W&&(Te=!0),Ie&&($=Nr({},lV),j=[],Ie.html===!0&&(Nr($,oV),Nr(j,cV)),Ie.svg===!0&&(Nr($,D7),Nr(j,N7),Nr(j,s3)),Ie.svgFilters===!0&&(Nr($,L7),Nr(j,N7),Nr(j,s3)),Ie.mathMl===!0&&(Nr($,R7),Nr(j,uV),Nr(j,s3))),Se.ADD_TAGS&&($===U&&($=lu($)),Nr($,Se.ADD_TAGS,Oe)),Se.ADD_ATTR&&(j===ee&&(j=lu(j)),Nr(j,Se.ADD_ATTR,Oe)),Se.ADD_URI_SAFE_ATTR&&Nr(xe,Se.ADD_URI_SAFE_ATTR,Oe),Se.FORBID_CONTENTS&&(Ne===Ce&&(Ne=lu(Ne)),Nr(Ne,Se.FORBID_CONTENTS,Oe)),He&&($["#text"]=!0),Z&&Nr($,["html","head","body"]),$.table&&(Nr($,["tbody"]),delete oe.tbody),Se.TRUSTED_TYPES_POLICY){if(typeof Se.TRUSTED_TYPES_POLICY.createHTML!="function")throw Gy('TRUSTED_TYPES_POLICY configuration option must provide a "createHTML" hook.');if(typeof Se.TRUSTED_TYPES_POLICY.createScriptURL!="function")throw Gy('TRUSTED_TYPES_POLICY configuration option must provide a "createScriptURL" hook.');S=Se.TRUSTED_TYPES_POLICY,w=S.createHTML("")}else S===void 0&&(S=j5e(m,i)),S!==null&&typeof w=="string"&&(w=S.createHTML(""));Za&&Za(Se),et=Se}},"_parseConfig"),vt=Nr({},[...D7,...L7,...F5e]),Lt=Nr({},[...R7,...$5e]),dt=o(function(Se){let at=T(Se);(!at||!at.tagName)&&(at={namespaceURI:le,tagName:"template"});let Nt=o3(Se.tagName),wr=o3(at.tagName);return ve[Se.namespaceURI]?Se.namespaceURI===z?at.namespaceURI===se?Nt==="svg":at.namespaceURI===he?Nt==="svg"&&(wr==="annotation-xml"||Re[wr]):!!vt[Nt]:Se.namespaceURI===he?at.namespaceURI===se?Nt==="math":at.namespaceURI===z?Nt==="math"&&_e[wr]:!!Lt[Nt]:Se.namespaceURI===se?at.namespaceURI===z&&!_e[wr]||at.namespaceURI===he&&!Re[wr]?!1:!Lt[Nt]&&(ze[Nt]||!vt[Nt]):!!(Ke==="application/xhtml+xml"&&ve[Se.namespaceURI]):!1},"_checkValidNamespace"),nt=o(function(Se){$y(e.removed,{element:Se});try{T(Se).removeChild(Se)}catch{v(Se)}},"_forceRemove"),bt=o(function(Se,at){try{$y(e.removed,{attribute:at.getAttributeNode(Se),from:at})}catch{$y(e.removed,{attribute:null,from:at})}if(at.removeAttribute(Se),Se==="is")if(Te||W)try{nt(at)}catch{}else try{at.setAttribute(Se,"")}catch{}},"_removeAttribute"),wt=o(function(Se){let at=null,Nt=null;if(ne)Se=""+Se;else{let yn=sV(Se,/^[\r\n\t ]+/);Nt=yn&&yn[0]}Ke==="application/xhtml+xml"&&le===se&&(Se=''+Se+"");let wr=S?S.createHTML(Se):Se;if(le===se)try{at=new p().parseFromString(wr,Ke)}catch{}if(!at||!at.documentElement){at=k.createDocument(le,"template",null);try{at.documentElement.innerHTML=ke?w:wr}catch{}}let Tn=at.body||at.documentElement;return Se&&Nt&&Tn.insertBefore(r.createTextNode(Nt),Tn.childNodes[0]||null),le===se?L.call(at,Z?"html":"body")[0]:Z?at.documentElement:Tn},"_initDocument"),yt=o(function(Se){return C.call(Se.ownerDocument||Se,Se,h.SHOW_ELEMENT|h.SHOW_COMMENT|h.SHOW_TEXT|h.SHOW_PROCESSING_INSTRUCTION|h.SHOW_CDATA_SECTION,null)},"_createNodeIterator"),ft=o(function(Se){return Se instanceof d&&(typeof Se.nodeName!="string"||typeof Se.textContent!="string"||typeof Se.removeChild!="function"||!(Se.attributes instanceof f)||typeof Se.removeAttribute!="function"||typeof Se.setAttribute!="function"||typeof Se.namespaceURI!="string"||typeof Se.insertBefore!="function"||typeof Se.hasChildNodes!="function")},"_isClobbered"),Ur=o(function(Se){return typeof l=="function"&&Se instanceof l},"_isNode");function _t(Ct,Se,at){a3(Ct,Nt=>{Nt.call(e,Se,at,et)})}o(_t,"_executeHooks");let bn=o(function(Se){let at=null;if(_t(R.beforeSanitizeElements,Se,null),ft(Se))return nt(Se),!0;let Nt=Oe(Se.nodeName);if(_t(R.uponSanitizeElement,Se,{tagName:Nt,allowedTags:$}),ae&&Se.hasChildNodes()&&!Ur(Se.firstElementChild)&&Qa(/<[/\w!]/g,Se.innerHTML)&&Qa(/<[/\w!]/g,Se.textContent)||Se.nodeType===Uy.progressingInstruction||ae&&Se.nodeType===Uy.comment&&Qa(/<[/\w]/g,Se.data))return nt(Se),!0;if(!$[Nt]||oe[Nt]){if(!oe[Nt]&&cr(Nt)&&(q.tagNameCheck instanceof RegExp&&Qa(q.tagNameCheck,Nt)||q.tagNameCheck instanceof Function&&q.tagNameCheck(Nt)))return!1;if(He&&!Ne[Nt]){let wr=T(Se)||Se.parentNode,Tn=b(Se)||Se.childNodes;if(Tn&&wr){let yn=Tn.length;for(let sn=yn-1;sn>=0;--sn){let Hi=y(Tn[sn],!0);Hi.__removalCount=(Se.__removalCount||0)+1,wr.insertBefore(Hi,x(Se))}}}return nt(Se),!0}return Se instanceof u&&!dt(Se)||(Nt==="noscript"||Nt==="noembed"||Nt==="noframes")&&Qa(/<\/no(script|embed|frames)/i,Se.innerHTML)?(nt(Se),!0):(K&&Se.nodeType===Uy.text&&(at=Se.textContent,a3([E,_,D],wr=>{at=zy(at,wr," ")}),Se.textContent!==at&&($y(e.removed,{element:Se.cloneNode()}),Se.textContent=at)),_t(R.afterSanitizeElements,Se,null),!1)},"_sanitizeElements"),Br=o(function(Se,at,Nt){if(pe&&(at==="id"||at==="name")&&(Nt in r||Nt in Ue))return!1;if(!(te&&!Q[at]&&Qa(O,at))){if(!(ue&&Qa(N,at))){if(!j[at]||Q[at]){if(!(cr(Se)&&(q.tagNameCheck instanceof RegExp&&Qa(q.tagNameCheck,Se)||q.tagNameCheck instanceof Function&&q.tagNameCheck(Se))&&(q.attributeNameCheck instanceof RegExp&&Qa(q.attributeNameCheck,at)||q.attributeNameCheck instanceof Function&&q.attributeNameCheck(at))||at==="is"&&q.allowCustomizedBuiltInElements&&(q.tagNameCheck instanceof RegExp&&Qa(q.tagNameCheck,Nt)||q.tagNameCheck instanceof Function&&q.tagNameCheck(Nt))))return!1}else if(!xe[at]){if(!Qa(V,zy(Nt,B,""))){if(!((at==="src"||at==="xlink:href"||at==="href")&&Se!=="script"&&I5e(Nt,"data:")===0&&Fe[Se])){if(!(re&&!Qa(P,zy(Nt,B,"")))){if(Nt)return!1}}}}}}return!0},"_isValidAttribute"),cr=o(function(Se){return Se!=="annotation-xml"&&sV(Se,F)},"_isBasicCustomElement"),ar=o(function(Se){_t(R.beforeSanitizeAttributes,Se,null);let{attributes:at}=Se;if(!at||ft(Se))return;let Nt={attrName:"",attrValue:"",keepAttr:!0,allowedAttributes:j,forceKeepAttr:void 0},wr=at.length;for(;wr--;){let Tn=at[wr],{name:yn,namespaceURI:sn,value:Hi}=Tn,Zs=Oe(yn),Da=Hi,fr=yn==="value"?Da:O5e(Da);if(Nt.attrName=Zs,Nt.attrValue=fr,Nt.keepAttr=!0,Nt.forceKeepAttr=void 0,_t(R.uponSanitizeAttribute,Se,Nt),fr=Nt.attrValue,Be&&(Zs==="id"||Zs==="name")&&(bt(yn,Se),fr=Ye+fr),ae&&Qa(/((--!?|])>)|<\/(style|title)/i,fr)){bt(yn,Se);continue}if(Nt.forceKeepAttr)continue;if(!Nt.keepAttr){bt(yn,Se);continue}if(!J&&Qa(/\/>/i,fr)){bt(yn,Se);continue}K&&a3([E,_,D],kt=>{fr=zy(fr,kt," ")});let it=Oe(Se.nodeName);if(!Br(it,Zs,fr)){bt(yn,Se);continue}if(S&&typeof m=="object"&&typeof m.getAttributeType=="function"&&!sn)switch(m.getAttributeType(it,Zs)){case"TrustedHTML":{fr=S.createHTML(fr);break}case"TrustedScriptURL":{fr=S.createScriptURL(fr);break}}if(fr!==Da)try{sn?Se.setAttributeNS(sn,yn,fr):Se.setAttribute(yn,fr),ft(Se)?nt(Se):aV(e.removed)}catch{bt(yn,Se)}}_t(R.afterSanitizeAttributes,Se,null)},"_sanitizeAttributes"),_r=o(function Ct(Se){let at=null,Nt=yt(Se);for(_t(R.beforeSanitizeShadowDOM,Se,null);at=Nt.nextNode();)_t(R.uponSanitizeShadowNode,at,null),bn(at),ar(at),at.content instanceof a&&Ct(at.content);_t(R.afterSanitizeShadowDOM,Se,null)},"_sanitizeShadowDOM");return e.sanitize=function(Ct){let Se=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},at=null,Nt=null,wr=null,Tn=null;if(ke=!Ct,ke&&(Ct=""),typeof Ct!="string"&&!Ur(Ct))if(typeof Ct.toString=="function"){if(Ct=Ct.toString(),typeof Ct!="string")throw Gy("dirty is not a string, aborting")}else throw Gy("toString is not a function");if(!e.isSupported)return Ct;if(de||Gt(Se),e.removed=[],typeof Ct=="string"&&(Le=!1),Le){if(Ct.nodeName){let Hi=Oe(Ct.nodeName);if(!$[Hi]||oe[Hi])throw Gy("root node is forbidden and cannot be sanitized in-place")}}else if(Ct instanceof l)at=wt(""),Nt=at.ownerDocument.importNode(Ct,!0),Nt.nodeType===Uy.element&&Nt.nodeName==="BODY"||Nt.nodeName==="HTML"?at=Nt:at.appendChild(Nt);else{if(!Te&&!K&&!Z&&Ct.indexOf("<")===-1)return S&&Ve?S.createHTML(Ct):Ct;if(at=wt(Ct),!at)return Te?null:Ve?w:""}at&&ne&&nt(at.firstChild);let yn=yt(Le?Ct:at);for(;wr=yn.nextNode();)bn(wr),ar(wr),wr.content instanceof a&&_r(wr.content);if(Le)return Ct;if(Te){if(W)for(Tn=A.call(at.ownerDocument);at.firstChild;)Tn.appendChild(at.firstChild);else Tn=at;return(j.shadowroot||j.shadowrootmode)&&(Tn=I.call(n,Tn,!0)),Tn}let sn=Z?at.outerHTML:at.innerHTML;return Z&&$["!doctype"]&&at.ownerDocument&&at.ownerDocument.doctype&&at.ownerDocument.doctype.name&&Qa(gV,at.ownerDocument.doctype.name)&&(sn=" +`+sn),K&&a3([E,_,D],Hi=>{sn=zy(sn,Hi," ")}),S&&Ve?S.createHTML(sn):sn},e.setConfig=function(){let Ct=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};Gt(Ct),de=!0},e.clearConfig=function(){et=null,de=!1},e.isValidAttribute=function(Ct,Se,at){et||Gt({});let Nt=Oe(Ct),wr=Oe(Se);return Br(Nt,wr,at)},e.addHook=function(Ct,Se){typeof Se=="function"&&$y(R[Ct],Se)},e.removeHook=function(Ct,Se){if(Se!==void 0){let at=N5e(R[Ct],Se);return at===-1?void 0:M5e(R[Ct],at,1)[0]}return aV(R[Ct])},e.removeHooks=function(Ct){R[Ct]=[]},e.removeAllHooks=function(){R=fV()},e}var dV,iV,D5e,L5e,R5e,Za,Co,pV,M7,I7,a3,N5e,aV,$y,M5e,o3,_7,sV,zy,I5e,O5e,hl,Qa,Gy,oV,D7,L7,F5e,R7,$5e,lV,cV,N7,uV,s3,z5e,G5e,V5e,U5e,H5e,mV,q5e,W5e,gV,Y5e,hV,Uy,X5e,j5e,fV,yh,O7=M(()=>{"use strict";({entries:dV,setPrototypeOf:iV,isFrozen:D5e,getPrototypeOf:L5e,getOwnPropertyDescriptor:R5e}=Object),{freeze:Za,seal:Co,create:pV}=Object,{apply:M7,construct:I7}=typeof Reflect<"u"&&Reflect;Za||(Za=o(function(e){return e},"freeze"));Co||(Co=o(function(e){return e},"seal"));M7||(M7=o(function(e,r,n){return e.apply(r,n)},"apply"));I7||(I7=o(function(e,r){return new e(...r)},"construct"));a3=Ja(Array.prototype.forEach),N5e=Ja(Array.prototype.lastIndexOf),aV=Ja(Array.prototype.pop),$y=Ja(Array.prototype.push),M5e=Ja(Array.prototype.splice),o3=Ja(String.prototype.toLowerCase),_7=Ja(String.prototype.toString),sV=Ja(String.prototype.match),zy=Ja(String.prototype.replace),I5e=Ja(String.prototype.indexOf),O5e=Ja(String.prototype.trim),hl=Ja(Object.prototype.hasOwnProperty),Qa=Ja(RegExp.prototype.test),Gy=P5e(TypeError);o(Ja,"unapply");o(P5e,"unconstruct");o(Nr,"addToSet");o(B5e,"cleanArray");o(lu,"clone");o(Vy,"lookupGetter");oV=Za(["a","abbr","acronym","address","area","article","aside","audio","b","bdi","bdo","big","blink","blockquote","body","br","button","canvas","caption","center","cite","code","col","colgroup","content","data","datalist","dd","decorator","del","details","dfn","dialog","dir","div","dl","dt","element","em","fieldset","figcaption","figure","font","footer","form","h1","h2","h3","h4","h5","h6","head","header","hgroup","hr","html","i","img","input","ins","kbd","label","legend","li","main","map","mark","marquee","menu","menuitem","meter","nav","nobr","ol","optgroup","option","output","p","picture","pre","progress","q","rp","rt","ruby","s","samp","section","select","shadow","small","source","spacer","span","strike","strong","style","sub","summary","sup","table","tbody","td","template","textarea","tfoot","th","thead","time","tr","track","tt","u","ul","var","video","wbr"]),D7=Za(["svg","a","altglyph","altglyphdef","altglyphitem","animatecolor","animatemotion","animatetransform","circle","clippath","defs","desc","ellipse","filter","font","g","glyph","glyphref","hkern","image","line","lineargradient","marker","mask","metadata","mpath","path","pattern","polygon","polyline","radialgradient","rect","stop","style","switch","symbol","text","textpath","title","tref","tspan","view","vkern"]),L7=Za(["feBlend","feColorMatrix","feComponentTransfer","feComposite","feConvolveMatrix","feDiffuseLighting","feDisplacementMap","feDistantLight","feDropShadow","feFlood","feFuncA","feFuncB","feFuncG","feFuncR","feGaussianBlur","feImage","feMerge","feMergeNode","feMorphology","feOffset","fePointLight","feSpecularLighting","feSpotLight","feTile","feTurbulence"]),F5e=Za(["animate","color-profile","cursor","discard","font-face","font-face-format","font-face-name","font-face-src","font-face-uri","foreignobject","hatch","hatchpath","mesh","meshgradient","meshpatch","meshrow","missing-glyph","script","set","solidcolor","unknown","use"]),R7=Za(["math","menclose","merror","mfenced","mfrac","mglyph","mi","mlabeledtr","mmultiscripts","mn","mo","mover","mpadded","mphantom","mroot","mrow","ms","mspace","msqrt","mstyle","msub","msup","msubsup","mtable","mtd","mtext","mtr","munder","munderover","mprescripts"]),$5e=Za(["maction","maligngroup","malignmark","mlongdiv","mscarries","mscarry","msgroup","mstack","msline","msrow","semantics","annotation","annotation-xml","mprescripts","none"]),lV=Za(["#text"]),cV=Za(["accept","action","align","alt","autocapitalize","autocomplete","autopictureinpicture","autoplay","background","bgcolor","border","capture","cellpadding","cellspacing","checked","cite","class","clear","color","cols","colspan","controls","controlslist","coords","crossorigin","datetime","decoding","default","dir","disabled","disablepictureinpicture","disableremoteplayback","download","draggable","enctype","enterkeyhint","face","for","headers","height","hidden","high","href","hreflang","id","inputmode","integrity","ismap","kind","label","lang","list","loading","loop","low","max","maxlength","media","method","min","minlength","multiple","muted","name","nonce","noshade","novalidate","nowrap","open","optimum","pattern","placeholder","playsinline","popover","popovertarget","popovertargetaction","poster","preload","pubdate","radiogroup","readonly","rel","required","rev","reversed","role","rows","rowspan","spellcheck","scope","selected","shape","size","sizes","span","srclang","start","src","srcset","step","style","summary","tabindex","title","translate","type","usemap","valign","value","width","wrap","xmlns","slot"]),N7=Za(["accent-height","accumulate","additive","alignment-baseline","amplitude","ascent","attributename","attributetype","azimuth","basefrequency","baseline-shift","begin","bias","by","class","clip","clippathunits","clip-path","clip-rule","color","color-interpolation","color-interpolation-filters","color-profile","color-rendering","cx","cy","d","dx","dy","diffuseconstant","direction","display","divisor","dur","edgemode","elevation","end","exponent","fill","fill-opacity","fill-rule","filter","filterunits","flood-color","flood-opacity","font-family","font-size","font-size-adjust","font-stretch","font-style","font-variant","font-weight","fx","fy","g1","g2","glyph-name","glyphref","gradientunits","gradienttransform","height","href","id","image-rendering","in","in2","intercept","k","k1","k2","k3","k4","kerning","keypoints","keysplines","keytimes","lang","lengthadjust","letter-spacing","kernelmatrix","kernelunitlength","lighting-color","local","marker-end","marker-mid","marker-start","markerheight","markerunits","markerwidth","maskcontentunits","maskunits","max","mask","media","method","mode","min","name","numoctaves","offset","operator","opacity","order","orient","orientation","origin","overflow","paint-order","path","pathlength","patterncontentunits","patterntransform","patternunits","points","preservealpha","preserveaspectratio","primitiveunits","r","rx","ry","radius","refx","refy","repeatcount","repeatdur","restart","result","rotate","scale","seed","shape-rendering","slope","specularconstant","specularexponent","spreadmethod","startoffset","stddeviation","stitchtiles","stop-color","stop-opacity","stroke-dasharray","stroke-dashoffset","stroke-linecap","stroke-linejoin","stroke-miterlimit","stroke-opacity","stroke","stroke-width","style","surfacescale","systemlanguage","tabindex","tablevalues","targetx","targety","transform","transform-origin","text-anchor","text-decoration","text-rendering","textlength","type","u1","u2","unicode","values","viewbox","visibility","version","vert-adv-y","vert-origin-x","vert-origin-y","width","word-spacing","wrap","writing-mode","xchannelselector","ychannelselector","x","x1","x2","xmlns","y","y1","y2","z","zoomandpan"]),uV=Za(["accent","accentunder","align","bevelled","close","columnsalign","columnlines","columnspan","denomalign","depth","dir","display","displaystyle","encoding","fence","frame","height","href","id","largeop","length","linethickness","lspace","lquote","mathbackground","mathcolor","mathsize","mathvariant","maxsize","minsize","movablelimits","notation","numalign","open","rowalign","rowlines","rowspacing","rowspan","rspace","rquote","scriptlevel","scriptminsize","scriptsizemultiplier","selection","separator","separators","stretchy","subscriptshift","supscriptshift","symmetric","voffset","width","xmlns"]),s3=Za(["xlink:href","xml:id","xlink:title","xml:space","xmlns:xlink"]),z5e=Co(/\{\{[\w\W]*|[\w\W]*\}\}/gm),G5e=Co(/<%[\w\W]*|[\w\W]*%>/gm),V5e=Co(/\$\{[\w\W]*/gm),U5e=Co(/^data-[\-\w.\u00B7-\uFFFF]+$/),H5e=Co(/^aria-[\-\w]+$/),mV=Co(/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|sms|cid|xmpp|matrix):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i),q5e=Co(/^(?:\w+script|data):/i),W5e=Co(/[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205F\u3000]/g),gV=Co(/^html$/i),Y5e=Co(/^[a-z][.\w]*(-[.\w]+)+$/i),hV=Object.freeze({__proto__:null,ARIA_ATTR:H5e,ATTR_WHITESPACE:W5e,CUSTOM_ELEMENT:Y5e,DATA_ATTR:U5e,DOCTYPE_NAME:gV,ERB_EXPR:G5e,IS_ALLOWED_URI:mV,IS_SCRIPT_OR_DATA:q5e,MUSTACHE_EXPR:z5e,TMPLIT_EXPR:V5e}),Uy={element:1,attribute:2,text:3,cdataSection:4,entityReference:5,entityNode:6,progressingInstruction:7,comment:8,document:9,documentType:10,documentFragment:11,notation:12},X5e=o(function(){return typeof window>"u"?null:window},"getGlobal"),j5e=o(function(e,r){if(typeof e!="object"||typeof e.createPolicy!="function")return null;let n=null,i="data-tt-policy-suffix";r&&r.hasAttribute(i)&&(n=r.getAttribute(i));let a="dompurify"+(n?"#"+n:"");try{return e.createPolicy(a,{createHTML(s){return s},createScriptURL(s){return s}})}catch{return console.warn("TrustedTypes policy "+a+" could not be created."),null}},"_createTrustedTypesPolicy"),fV=o(function(){return{afterSanitizeAttributes:[],afterSanitizeElements:[],afterSanitizeShadowDOM:[],beforeSanitizeAttributes:[],beforeSanitizeElements:[],beforeSanitizeShadowDOM:[],uponSanitizeAttribute:[],uponSanitizeElement:[],uponSanitizeShadowNode:[]}},"_createHooksMap");o(yV,"createDOMPurify");yh=yV()});var jU={};dr(jU,{ParseError:()=>gt,SETTINGS_SCHEMA:()=>Yy,__defineFunction:()=>Mt,__defineMacro:()=>ce,__defineSymbol:()=>G,__domTree:()=>XU,__parse:()=>HU,__renderToDomTree:()=>I3,__renderToHTMLTree:()=>WU,__setFontMetrics:()=>QV,default:()=>zwe,render:()=>EA,renderToString:()=>UU,version:()=>YU});function rTe(t){return String(t).replace(tTe,e=>eTe[e])}function sTe(t){if(t.default)return t.default;var e=t.type,r=Array.isArray(e)?e[0]:e;if(typeof r!="string")return r.enum[0];switch(r){case"boolean":return!1;case"string":return"";case"number":return 0;case"object":return{}}}function dTe(t){for(var e=0;e=i[0]&&t<=i[1])return r.name}return null}function KV(t){for(var e=0;e=x3[e]&&t<=x3[e+1])return!0;return!1}function QV(t,e){Ql[t]=e}function lA(t,e,r){if(!Ql[e])throw new Error("Font metrics not found for font: "+e+".");var n=t.charCodeAt(0),i=Ql[e][n];if(!i&&t[0]in xV&&(n=xV[t[0]].charCodeAt(0),i=Ql[e][n]),!i&&r==="text"&&KV(n)&&(i=Ql[e][77]),i)return{depth:i[0],height:i[1],italic:i[2],skew:i[3],width:i[4]}}function ETe(t){var e;if(t>=5?e=0:t>=3?e=1:e=2,!P7[e]){var r=P7[e]={cssEmPerMu:l3.quad[e]/18};for(var n in l3)l3.hasOwnProperty(n)&&(r[n]=l3[n][e])}return P7[e]}function wV(t){if(t instanceof Cs)return t;throw new Error("Expected symbolNode but got "+String(t)+".")}function DTe(t){if(t instanceof fd)return t;throw new Error("Expected span but got "+String(t)+".")}function G(t,e,r,n,i,a){Nn[t][i]={font:e,group:r,replace:n},a&&n&&(Nn[t][n]=Nn[t][i])}function Mt(t){for(var{type:e,names:r,props:n,handler:i,htmlBuilder:a,mathmlBuilder:s}=t,l={type:e,numArgs:n.numArgs,argTypes:n.argTypes,allowedInArgument:!!n.allowedInArgument,allowedInText:!!n.allowedInText,allowedInMath:n.allowedInMath===void 0?!0:n.allowedInMath,numOptionalArgs:n.numOptionalArgs||0,infix:!!n.infix,primitive:!!n.primitive,handler:i},u=0;u0&&(a.push(m3(s,e)),s=[]),a.push(n[l]));s.length>0&&a.push(m3(s,e));var h;r?(h=m3(Ii(r,e,!0)),h.classes=["tag"],a.push(h)):i&&a.push(i);var f=du(["katex-html"],a);if(f.setAttribute("aria-hidden","true"),h){var d=h.children[0];d.style.height=St(f.height+f.depth),f.depth&&(d.style.verticalAlign=St(-f.depth))}return f}function cU(t){return new hd(t)}function $7(t){if(!t)return!1;if(t.type==="mi"&&t.children.length===1){var e=t.children[0];return e instanceof _o&&e.text==="."}else if(t.type==="mo"&&t.children.length===1&&t.getAttribute("separator")==="true"&&t.getAttribute("lspace")==="0em"&&t.getAttribute("rspace")==="0em"){var r=t.children[0];return r instanceof _o&&r.text===","}else return!1}function AV(t,e,r,n,i){var a=As(t,r),s;a.length===1&&a[0]instanceof es&&er.contains(["mrow","mtable"],a[0].type)?s=a[0]:s=new mt.MathNode("mrow",a);var l=new mt.MathNode("annotation",[new mt.TextNode(e)]);l.setAttribute("encoding","application/x-tex");var u=new mt.MathNode("semantics",[s,l]),h=new mt.MathNode("math",[u]);h.setAttribute("xmlns","http://www.w3.org/1998/Math/MathML"),n&&h.setAttribute("display","block");var f=i?"katex":"katex-mathml";return $e.makeSpan([f],[h])}function Tr(t,e){if(!t||t.type!==e)throw new Error("Expected node of type "+e+", but got "+(t?"node of type "+t.type:String(t)));return t}function fA(t){var e=L3(t);if(!e)throw new Error("Expected node of symbol group type, but got "+(t?"node of type "+t.type:String(t)));return e}function L3(t){return t&&(t.type==="atom"||RTe.hasOwnProperty(t.type))?t:null}function dU(t,e){var r=Ii(t.body,e,!0);return owe([t.mclass],r,e)}function pU(t,e){var r,n=As(t.body,e);return t.mclass==="minner"?r=new mt.MathNode("mpadded",n):t.mclass==="mord"?t.isCharacterBox?(r=n[0],r.type="mi"):r=new mt.MathNode("mi",n):(t.isCharacterBox?(r=n[0],r.type="mo"):r=new mt.MathNode("mo",n),t.mclass==="mbin"?(r.attributes.lspace="0.22em",r.attributes.rspace="0.22em"):t.mclass==="mpunct"?(r.attributes.lspace="0em",r.attributes.rspace="0.17em"):t.mclass==="mopen"||t.mclass==="mclose"?(r.attributes.lspace="0em",r.attributes.rspace="0em"):t.mclass==="minner"&&(r.attributes.lspace="0.0556em",r.attributes.width="+0.1111em")),r}function uwe(t,e,r){var n=lwe[t];switch(n){case"\\\\cdrightarrow":case"\\\\cdleftarrow":return r.callFunction(n,[e[0]],[e[1]]);case"\\uparrow":case"\\downarrow":{var i=r.callFunction("\\\\cdleft",[e[0]],[]),a={type:"atom",text:n,mode:"math",family:"rel"},s=r.callFunction("\\Big",[a],[]),l=r.callFunction("\\\\cdright",[e[1]],[]),u={type:"ordgroup",mode:"math",body:[i,s,l]};return r.callFunction("\\\\cdparent",[u],[])}case"\\\\cdlongequal":return r.callFunction("\\\\cdlongequal",[],[]);case"\\Vert":{var h={type:"textord",text:"\\Vert",mode:"math"};return r.callFunction("\\Big",[h],[])}default:return{type:"textord",text:" ",mode:"math"}}}function hwe(t){var e=[];for(t.gullet.beginGroup(),t.gullet.macros.set("\\cr","\\\\\\relax"),t.gullet.beginGroup();;){e.push(t.parseExpression(!1,"\\\\")),t.gullet.endGroup(),t.gullet.beginGroup();var r=t.fetch().text;if(r==="&"||r==="\\\\")t.consume();else if(r==="\\end"){e[e.length-1].length===0&&e.pop();break}else throw new gt("Expected \\\\ or \\cr or \\end",t.nextToken)}for(var n=[],i=[n],a=0;a-1))if("<>AV".indexOf(h)>-1)for(var d=0;d<2;d++){for(var p=!0,m=u+1;mAV=|." after @',s[u]);var g=uwe(h,f,t),y={type:"styling",body:[g],mode:"math",style:"display"};n.push(y),l=_V()}a%2===0?n.push(l):n.shift(),n=[],i.push(n)}t.gullet.endGroup(),t.gullet.endGroup();var v=new Array(i[0].length).fill({type:"align",align:"c",pregap:.25,postgap:.25});return{type:"array",mode:"math",body:i,arraystretch:1,addJot:!0,rowGaps:[null],cols:v,colSeparationType:"CD",hLinesBeforeRow:new Array(i.length+1).fill([])}}function N3(t,e){var r=L3(t);if(r&&er.contains(Ewe,r.text))return r;throw r?new gt("Invalid delimiter '"+r.text+"' after '"+e.funcName+"'",t):new gt("Invalid delimiter type '"+t.type+"'",t)}function RV(t){if(!t.body)throw new Error("Bug: The leftright ParseNode wasn't fully parsed.")}function Jl(t){for(var{type:e,names:r,props:n,handler:i,htmlBuilder:a,mathmlBuilder:s}=t,l={type:e,numArgs:n.numArgs||0,allowedInText:!1,numOptionalArgs:0,handler:i},u=0;u1||!f)&&y.pop(),x.length{"use strict";to=class t{static{o(this,"SourceLocation")}constructor(e,r,n){this.lexer=void 0,this.start=void 0,this.end=void 0,this.lexer=e,this.start=r,this.end=n}static range(e,r){return r?!e||!e.loc||!r.loc||e.loc.lexer!==r.loc.lexer?null:new t(e.loc.lexer,e.loc.start,r.loc.end):e&&e.loc}},Do=class t{static{o(this,"Token")}constructor(e,r){this.text=void 0,this.loc=void 0,this.noexpand=void 0,this.treatAsRelax=void 0,this.text=e,this.loc=r}range(e,r){return new t(r,to.range(this,e))}},gt=class t{static{o(this,"ParseError")}constructor(e,r){this.name=void 0,this.position=void 0,this.length=void 0,this.rawMessage=void 0;var n="KaTeX parse error: "+e,i,a,s=r&&r.loc;if(s&&s.start<=s.end){var l=s.lexer.input;i=s.start,a=s.end,i===l.length?n+=" at end of input: ":n+=" at position "+(i+1)+": ";var u=l.slice(i,a).replace(/[^]/g,"$&\u0332"),h;i>15?h="\u2026"+l.slice(i-15,i):h=l.slice(0,i);var f;a+15":">","<":"<",'"':""","'":"'"},tTe=/[&><"']/g;o(rTe,"escape");jV=o(function t(e){return e.type==="ordgroup"||e.type==="color"?e.body.length===1?t(e.body[0]):e:e.type==="font"?t(e.body):e},"getBaseElem"),nTe=o(function(e){var r=jV(e);return r.type==="mathord"||r.type==="textord"||r.type==="atom"},"isCharacterBox"),iTe=o(function(e){if(!e)throw new Error("Expected non-null, but got "+String(e));return e},"assert"),aTe=o(function(e){var r=/^[\x00-\x20]*([^\\/#?]*?)(:|�*58|�*3a|&colon)/i.exec(e);return r?r[2]!==":"||!/^[a-zA-Z][a-zA-Z0-9+\-.]*$/.test(r[1])?null:r[1].toLowerCase():"_relative"},"protocolFromUrl"),er={contains:K5e,deflt:Q5e,escape:rTe,hyphenate:J5e,getBaseElem:jV,isCharacterBox:nTe,protocolFromUrl:aTe},Yy={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:o(t=>"#"+t,"cliProcessor")},macros:{type:"object",cli:"-m, --macro ",cliDescription:"Define custom macro of the form '\\foo:expansion' (use multiple -m arguments for multiple macros).",cliDefault:[],cliProcessor:o((t,e)=>(e.push(t),e),"cliProcessor")},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:o(t=>Math.max(0,t),"processor"),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:o(t=>Math.max(0,t),"processor"),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:o(t=>Math.max(0,t),"processor"),cli:"-e, --max-expand ",cliProcessor:o(t=>t==="Infinity"?1/0:parseInt(t),"cliProcessor")},globalGroup:{type:"boolean",cli:!1}};o(sTe,"getDefaultValue");jy=class{static{o(this,"Settings")}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 r in Yy)if(Yy.hasOwnProperty(r)){var n=Yy[r];this[r]=e[r]!==void 0?n.processor?n.processor(e[r]):e[r]:sTe(n)}}reportNonstrict(e,r,n){var i=this.strict;if(typeof i=="function"&&(i=i(e,r,n)),!(!i||i==="ignore")){if(i===!0||i==="error")throw new gt("LaTeX-incompatible input and strict mode is set to 'error': "+(r+" ["+e+"]"),n);i==="warn"?typeof console<"u"&&console.warn("LaTeX-incompatible input and strict mode is set to 'warn': "+(r+" ["+e+"]")):typeof console<"u"&&console.warn("LaTeX-incompatible input and strict mode is set to "+("unrecognized '"+i+"': "+r+" ["+e+"]"))}}useStrictBehavior(e,r,n){var i=this.strict;if(typeof i=="function")try{i=i(e,r,n)}catch{i="error"}return!i||i==="ignore"?!1:i===!0||i==="error"?!0:i==="warn"?(typeof console<"u"&&console.warn("LaTeX-incompatible input and strict mode is set to 'warn': "+(r+" ["+e+"]")),!1):(typeof console<"u"&&console.warn("LaTeX-incompatible input and strict mode is set to "+("unrecognized '"+i+"': "+r+" ["+e+"]")),!1)}isTrusted(e){if(e.url&&!e.protocol){var r=er.protocolFromUrl(e.url);if(r==null)return!1;e.protocol=r}var n=typeof this.trust=="function"?this.trust(e):this.trust;return!!n}},jl=class{static{o(this,"Style")}constructor(e,r,n){this.id=void 0,this.size=void 0,this.cramped=void 0,this.id=e,this.size=r,this.cramped=n}sup(){return Kl[oTe[this.id]]}sub(){return Kl[lTe[this.id]]}fracNum(){return Kl[cTe[this.id]]}fracDen(){return Kl[uTe[this.id]]}cramp(){return Kl[hTe[this.id]]}text(){return Kl[fTe[this.id]]}isTight(){return this.size>=2}},oA=0,b3=1,k0=2,hu=3,Ky=4,Ao=5,E0=6,ts=7,Kl=[new jl(oA,0,!1),new jl(b3,0,!0),new jl(k0,1,!1),new jl(hu,1,!0),new jl(Ky,2,!1),new jl(Ao,2,!0),new jl(E0,3,!1),new jl(ts,3,!0)],oTe=[Ky,Ao,Ky,Ao,E0,ts,E0,ts],lTe=[Ao,Ao,Ao,Ao,ts,ts,ts,ts],cTe=[k0,hu,Ky,Ao,E0,ts,E0,ts],uTe=[hu,hu,Ao,Ao,ts,ts,ts,ts],hTe=[b3,b3,hu,hu,Ao,Ao,ts,ts],fTe=[oA,b3,k0,hu,k0,hu,k0,hu],nr={DISPLAY:Kl[oA],TEXT:Kl[k0],SCRIPT:Kl[Ky],SCRIPTSCRIPT:Kl[E0]},j7=[{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]]}];o(dTe,"scriptFromCodepoint");x3=[];j7.forEach(t=>t.blocks.forEach(e=>x3.push(...e)));o(KV,"supportedCodepoint");w0=80,pTe=o(function(e,r){return"M95,"+(622+e+r)+` +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)+" "+r+"h400000v"+(40+e)+"h-400000z"},"sqrtMain"),mTe=o(function(e,r){return"M263,"+(601+e+r)+`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)+" "+r+"h400000v"+(40+e)+"h-400000z"},"sqrtSize1"),gTe=o(function(e,r){return"M983 "+(10+e+r)+` +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)+" "+r+"h400000v"+(40+e)+"h-400000z"},"sqrtSize2"),yTe=o(function(e,r){return"M424,"+(2398+e+r)+` +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)+" "+r+` +h400000v`+(40+e)+"h-400000z"},"sqrtSize3"),vTe=o(function(e,r){return"M473,"+(2713+e+r)+` +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)+" "+r+"h400000v"+(40+e)+"H1017.7z"},"sqrtSize4"),xTe=o(function(e){var r=e/2;return"M400000 "+e+" H0 L"+r+" 0 l65 45 L145 "+(e-80)+" H400000z"},"phasePath"),bTe=o(function(e,r,n){var i=n-54-r-e;return"M702 "+(e+r)+"H400000"+(40+e)+` +H742v`+i+`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 `+r+"H400000v"+(40+e)+"H742z"},"sqrtTall"),TTe=o(function(e,r,n){r=1e3*r;var i="";switch(e){case"sqrtMain":i=pTe(r,w0);break;case"sqrtSize1":i=mTe(r,w0);break;case"sqrtSize2":i=gTe(r,w0);break;case"sqrtSize3":i=yTe(r,w0);break;case"sqrtSize4":i=vTe(r,w0);break;case"sqrtTall":i=bTe(r,w0,n)}return i},"sqrtPath"),wTe=o(function(e,r){switch(e){case"\u239C":return"M291 0 H417 V"+r+" H291z M291 0 H417 V"+r+" H291z";case"\u2223":return"M145 0 H188 V"+r+" H145z M145 0 H188 V"+r+" H145z";case"\u2225":return"M145 0 H188 V"+r+" H145z M145 0 H188 V"+r+" H145z"+("M367 0 H410 V"+r+" H367z M367 0 H410 V"+r+" H367z");case"\u239F":return"M457 0 H583 V"+r+" H457z M457 0 H583 V"+r+" H457z";case"\u23A2":return"M319 0 H403 V"+r+" H319z M319 0 H403 V"+r+" H319z";case"\u23A5":return"M263 0 H347 V"+r+" H263z M263 0 H347 V"+r+" H263z";case"\u23AA":return"M384 0 H504 V"+r+" H384z M384 0 H504 V"+r+" H384z";case"\u23D0":return"M312 0 H355 V"+r+" H312z M312 0 H355 V"+r+" H312z";case"\u2016":return"M257 0 H300 V"+r+" H257z M257 0 H300 V"+r+" H257z"+("M478 0 H521 V"+r+" H478z M478 0 H521 V"+r+" H478z");default:return""}},"innerPath"),vV={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`},kTe=o(function(e,r){switch(e){case"lbrack":return"M403 1759 V84 H666 V0 H319 V1759 v"+r+` v1759 h347 v-84 +H403z M403 1759 V0 H319 V1759 v`+r+" v1759 h84z";case"rbrack":return"M347 1759 V0 H0 V84 H263 V1759 v"+r+` v1759 H0 v84 H347z +M347 1759 V0 H263 V1759 v`+r+" v1759 h84z";case"vert":return"M145 15 v585 v"+r+` v585 c2.667,10,9.667,15,21,15 +c10,0,16.667,-5,20,-15 v-585 v`+-r+` v-585 c-2.667,-10,-9.667,-15,-21,-15 +c-10,0,-16.667,5,-20,15z M188 15 H145 v585 v`+r+" v585 h43z";case"doublevert":return"M145 15 v585 v"+r+` v585 c2.667,10,9.667,15,21,15 +c10,0,16.667,-5,20,-15 v-585 v`+-r+` v-585 c-2.667,-10,-9.667,-15,-21,-15 +c-10,0,-16.667,5,-20,15z M188 15 H145 v585 v`+r+` v585 h43z +M367 15 v585 v`+r+` v585 c2.667,10,9.667,15,21,15 +c10,0,16.667,-5,20,-15 v-585 v`+-r+` v-585 c-2.667,-10,-9.667,-15,-21,-15 +c-10,0,-16.667,5,-20,15z M410 15 H367 v585 v`+r+" v585 h43z";case"lfloor":return"M319 602 V0 H403 V602 v"+r+` v1715 h263 v84 H319z +MM319 602 V0 H403 V602 v`+r+" v1715 H319z";case"rfloor":return"M319 602 V0 H403 V602 v"+r+` v1799 H0 v-84 H319z +MM319 602 V0 H403 V602 v`+r+" v1715 H319z";case"lceil":return"M403 1759 V84 H666 V0 H319 V1759 v"+r+` v602 h84z +M403 1759 V0 H319 V1759 v`+r+" v602 h84z";case"rceil":return"M347 1759 V0 H0 V84 H263 V1759 v"+r+` v602 h84z +M347 1759 V0 h-84 V1759 v`+r+" 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,`+(r+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,-`+(r+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,`+(r+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,-`+(r+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.")}},"tallDelim"),hd=class{static{o(this,"DocumentFragment")}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 er.contains(this.classes,e)}toNode(){for(var e=document.createDocumentFragment(),r=0;rr.toText(),"toText");return this.children.map(e).join("")}},Ql={"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]}},l3={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]},xV={\u00C5:"A",\u00D0:"D",\u00DE:"o",\u00E5:"a",\u00F0:"d",\u00FE:"o",\u0410:"A",\u0411:"B",\u0412:"B",\u0413:"F",\u0414:"A",\u0415:"E",\u0416:"K",\u0417:"3",\u0418:"N",\u0419:"N",\u041A:"K",\u041B:"N",\u041C:"M",\u041D:"H",\u041E:"O",\u041F:"N",\u0420:"P",\u0421:"C",\u0422:"T",\u0423:"y",\u0424:"O",\u0425:"X",\u0426:"U",\u0427:"h",\u0428:"W",\u0429:"W",\u042A:"B",\u042B:"X",\u042C:"B",\u042D:"3",\u042E:"X",\u042F:"R",\u0430:"a",\u0431:"b",\u0432:"a",\u0433:"r",\u0434:"y",\u0435:"e",\u0436:"m",\u0437:"e",\u0438:"n",\u0439:"n",\u043A:"n",\u043B:"n",\u043C:"m",\u043D:"n",\u043E:"o",\u043F:"n",\u0440:"p",\u0441:"c",\u0442:"o",\u0443:"y",\u0444:"b",\u0445:"x",\u0446:"n",\u0447:"n",\u0448:"w",\u0449:"w",\u044A:"a",\u044B:"m",\u044C:"a",\u044D:"e",\u044E:"m",\u044F:"r"};o(QV,"setFontMetrics");o(lA,"getCharacterMetrics");P7={};o(ETe,"getGlobalMetrics");STe=[[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]],bV=[.5,.6,.7,.8,.9,1,1.2,1.44,1.728,2.074,2.488],TV=o(function(e,r){return r.size<2?e:STe[e-1][r.size-1]},"sizeAtStyle"),T3=class t{static{o(this,"Options")}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||t.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=bV[this.size-1],this.maxSize=e.maxSize,this.minRuleThickness=e.minRuleThickness,this._fontMetrics=void 0}extend(e){var r={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 n in e)e.hasOwnProperty(n)&&(r[n]=e[n]);return new t(r)}havingStyle(e){return this.style===e?this:this.extend({style:e,size:TV(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:bV[e-1]})}havingBaseStyle(e){e=e||this.style.text();var r=TV(t.BASESIZE,e);return this.size===r&&this.textSize===t.BASESIZE&&this.style===e?this:this.extend({style:e,size:r})}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!==t.BASESIZE?["sizing","reset-size"+this.size,"size"+t.BASESIZE]:[]}fontMetrics(){return this._fontMetrics||(this._fontMetrics=ETe(this.size)),this._fontMetrics}getColor(){return this.phantom?"transparent":this.color}};T3.BASESIZE=6;K7={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},CTe={ex:!0,em:!0,mu:!0},ZV=o(function(e){return typeof e!="string"&&(e=e.unit),e in K7||e in CTe||e==="ex"},"validUnit"),ii=o(function(e,r){var n;if(e.unit in K7)n=K7[e.unit]/r.fontMetrics().ptPerEm/r.sizeMultiplier;else if(e.unit==="mu")n=r.fontMetrics().cssEmPerMu;else{var i;if(r.style.isTight()?i=r.havingStyle(r.style.text()):i=r,e.unit==="ex")n=i.fontMetrics().xHeight;else if(e.unit==="em")n=i.fontMetrics().quad;else throw new gt("Invalid unit: '"+e.unit+"'");i!==r&&(n*=i.sizeMultiplier/r.sizeMultiplier)}return Math.min(e.number*n,r.maxSize)},"calculateSize"),St=o(function(e){return+e.toFixed(4)+"em"},"makeEm"),bh=o(function(e){return e.filter(r=>r).join(" ")},"createClass"),JV=o(function(e,r,n){if(this.classes=e||[],this.attributes={},this.height=0,this.depth=0,this.maxFontSize=0,this.style=n||{},r){r.style.isTight()&&this.classes.push("mtight");var i=r.getColor();i&&(this.style.color=i)}},"initNode"),eU=o(function(e){var r=document.createElement(e);r.className=bh(this.classes);for(var n in this.style)this.style.hasOwnProperty(n)&&(r.style[n]=this.style[n]);for(var i in this.attributes)this.attributes.hasOwnProperty(i)&&r.setAttribute(i,this.attributes[i]);for(var a=0;a/=\x00-\x1f]/,tU=o(function(e){var r="<"+e;this.classes.length&&(r+=' class="'+er.escape(bh(this.classes))+'"');var n="";for(var i in this.style)this.style.hasOwnProperty(i)&&(n+=er.hyphenate(i)+":"+this.style[i]+";");n&&(r+=' style="'+er.escape(n)+'"');for(var a in this.attributes)if(this.attributes.hasOwnProperty(a)){if(ATe.test(a))throw new gt("Invalid attribute name '"+a+"'");r+=" "+a+'="'+er.escape(this.attributes[a])+'"'}r+=">";for(var s=0;s",r},"toMarkup"),fd=class{static{o(this,"Span")}constructor(e,r,n,i){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,JV.call(this,e,n,i),this.children=r||[]}setAttribute(e,r){this.attributes[e]=r}hasClass(e){return er.contains(this.classes,e)}toNode(){return eU.call(this,"span")}toMarkup(){return tU.call(this,"span")}},Qy=class{static{o(this,"Anchor")}constructor(e,r,n,i){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,JV.call(this,r,i),this.children=n||[],this.setAttribute("href",e)}setAttribute(e,r){this.attributes[e]=r}hasClass(e){return er.contains(this.classes,e)}toNode(){return eU.call(this,"a")}toMarkup(){return tU.call(this,"a")}},Q7=class{static{o(this,"Img")}constructor(e,r,n){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=r,this.src=e,this.classes=["mord"],this.style=n}hasClass(e){return er.contains(this.classes,e)}toNode(){var e=document.createElement("img");e.src=this.src,e.alt=this.alt,e.className="mord";for(var r in this.style)this.style.hasOwnProperty(r)&&(e.style[r]=this.style[r]);return e}toMarkup(){var e=''+er.escape(this.alt)+'0&&(r=document.createElement("span"),r.style.marginRight=St(this.italic)),this.classes.length>0&&(r=r||document.createElement("span"),r.className=bh(this.classes));for(var n in this.style)this.style.hasOwnProperty(n)&&(r=r||document.createElement("span"),r.style[n]=this.style[n]);return r?(r.appendChild(e),r):e}toMarkup(){var e=!1,r="0&&(n+="margin-right:"+this.italic+"em;");for(var i in this.style)this.style.hasOwnProperty(i)&&(n+=er.hyphenate(i)+":"+this.style[i]+";");n&&(e=!0,r+=' style="'+er.escape(n)+'"');var a=er.escape(this.text);return e?(r+=">",r+=a,r+="",r):a}},dl=class{static{o(this,"SvgNode")}constructor(e,r){this.children=void 0,this.attributes=void 0,this.children=e||[],this.attributes=r||{}}toNode(){var e="http://www.w3.org/2000/svg",r=document.createElementNS(e,"svg");for(var n in this.attributes)Object.prototype.hasOwnProperty.call(this.attributes,n)&&r.setAttribute(n,this.attributes[n]);for(var i=0;i':''}},Zy=class{static{o(this,"LineNode")}constructor(e){this.attributes=void 0,this.attributes=e||{}}toNode(){var e="http://www.w3.org/2000/svg",r=document.createElementNS(e,"line");for(var n in this.attributes)Object.prototype.hasOwnProperty.call(this.attributes,n)&&r.setAttribute(n,this.attributes[n]);return r}toMarkup(){var e="","\\gt",!0);G(H,ie,Ee,"\u2208","\\in",!0);G(H,ie,Ee,"\uE020","\\@not");G(H,ie,Ee,"\u2282","\\subset",!0);G(H,ie,Ee,"\u2283","\\supset",!0);G(H,ie,Ee,"\u2286","\\subseteq",!0);G(H,ie,Ee,"\u2287","\\supseteq",!0);G(H,we,Ee,"\u2288","\\nsubseteq",!0);G(H,we,Ee,"\u2289","\\nsupseteq",!0);G(H,ie,Ee,"\u22A8","\\models");G(H,ie,Ee,"\u2190","\\leftarrow",!0);G(H,ie,Ee,"\u2264","\\le");G(H,ie,Ee,"\u2264","\\leq",!0);G(H,ie,Ee,"<","\\lt",!0);G(H,ie,Ee,"\u2192","\\rightarrow",!0);G(H,ie,Ee,"\u2192","\\to");G(H,we,Ee,"\u2271","\\ngeq",!0);G(H,we,Ee,"\u2270","\\nleq",!0);G(H,ie,mu,"\xA0","\\ ");G(H,ie,mu,"\xA0","\\space");G(H,ie,mu,"\xA0","\\nobreakspace");G(ct,ie,mu,"\xA0","\\ ");G(ct,ie,mu,"\xA0"," ");G(ct,ie,mu,"\xA0","\\space");G(ct,ie,mu,"\xA0","\\nobreakspace");G(H,ie,mu,null,"\\nobreak");G(H,ie,mu,null,"\\allowbreak");G(H,ie,_3,",",",");G(H,ie,_3,";",";");G(H,we,Ot,"\u22BC","\\barwedge",!0);G(H,we,Ot,"\u22BB","\\veebar",!0);G(H,ie,Ot,"\u2299","\\odot",!0);G(H,ie,Ot,"\u2295","\\oplus",!0);G(H,ie,Ot,"\u2297","\\otimes",!0);G(H,ie,De,"\u2202","\\partial",!0);G(H,ie,Ot,"\u2298","\\oslash",!0);G(H,we,Ot,"\u229A","\\circledcirc",!0);G(H,we,Ot,"\u22A1","\\boxdot",!0);G(H,ie,Ot,"\u25B3","\\bigtriangleup");G(H,ie,Ot,"\u25BD","\\bigtriangledown");G(H,ie,Ot,"\u2020","\\dagger");G(H,ie,Ot,"\u22C4","\\diamond");G(H,ie,Ot,"\u22C6","\\star");G(H,ie,Ot,"\u25C3","\\triangleleft");G(H,ie,Ot,"\u25B9","\\triangleright");G(H,ie,ro,"{","\\{");G(ct,ie,De,"{","\\{");G(ct,ie,De,"{","\\textbraceleft");G(H,ie,rs,"}","\\}");G(ct,ie,De,"}","\\}");G(ct,ie,De,"}","\\textbraceright");G(H,ie,ro,"{","\\lbrace");G(H,ie,rs,"}","\\rbrace");G(H,ie,ro,"[","\\lbrack",!0);G(ct,ie,De,"[","\\lbrack",!0);G(H,ie,rs,"]","\\rbrack",!0);G(ct,ie,De,"]","\\rbrack",!0);G(H,ie,ro,"(","\\lparen",!0);G(H,ie,rs,")","\\rparen",!0);G(ct,ie,De,"<","\\textless",!0);G(ct,ie,De,">","\\textgreater",!0);G(H,ie,ro,"\u230A","\\lfloor",!0);G(H,ie,rs,"\u230B","\\rfloor",!0);G(H,ie,ro,"\u2308","\\lceil",!0);G(H,ie,rs,"\u2309","\\rceil",!0);G(H,ie,De,"\\","\\backslash");G(H,ie,De,"\u2223","|");G(H,ie,De,"\u2223","\\vert");G(ct,ie,De,"|","\\textbar",!0);G(H,ie,De,"\u2225","\\|");G(H,ie,De,"\u2225","\\Vert");G(ct,ie,De,"\u2225","\\textbardbl");G(ct,ie,De,"~","\\textasciitilde");G(ct,ie,De,"\\","\\textbackslash");G(ct,ie,De,"^","\\textasciicircum");G(H,ie,Ee,"\u2191","\\uparrow",!0);G(H,ie,Ee,"\u21D1","\\Uparrow",!0);G(H,ie,Ee,"\u2193","\\downarrow",!0);G(H,ie,Ee,"\u21D3","\\Downarrow",!0);G(H,ie,Ee,"\u2195","\\updownarrow",!0);G(H,ie,Ee,"\u21D5","\\Updownarrow",!0);G(H,ie,ki,"\u2210","\\coprod");G(H,ie,ki,"\u22C1","\\bigvee");G(H,ie,ki,"\u22C0","\\bigwedge");G(H,ie,ki,"\u2A04","\\biguplus");G(H,ie,ki,"\u22C2","\\bigcap");G(H,ie,ki,"\u22C3","\\bigcup");G(H,ie,ki,"\u222B","\\int");G(H,ie,ki,"\u222B","\\intop");G(H,ie,ki,"\u222C","\\iint");G(H,ie,ki,"\u222D","\\iiint");G(H,ie,ki,"\u220F","\\prod");G(H,ie,ki,"\u2211","\\sum");G(H,ie,ki,"\u2A02","\\bigotimes");G(H,ie,ki,"\u2A01","\\bigoplus");G(H,ie,ki,"\u2A00","\\bigodot");G(H,ie,ki,"\u222E","\\oint");G(H,ie,ki,"\u222F","\\oiint");G(H,ie,ki,"\u2230","\\oiiint");G(H,ie,ki,"\u2A06","\\bigsqcup");G(H,ie,ki,"\u222B","\\smallint");G(ct,ie,S0,"\u2026","\\textellipsis");G(H,ie,S0,"\u2026","\\mathellipsis");G(ct,ie,S0,"\u2026","\\ldots",!0);G(H,ie,S0,"\u2026","\\ldots",!0);G(H,ie,S0,"\u22EF","\\@cdots",!0);G(H,ie,S0,"\u22F1","\\ddots",!0);G(H,ie,De,"\u22EE","\\varvdots");G(ct,ie,De,"\u22EE","\\varvdots");G(H,ie,Wn,"\u02CA","\\acute");G(H,ie,Wn,"\u02CB","\\grave");G(H,ie,Wn,"\xA8","\\ddot");G(H,ie,Wn,"~","\\tilde");G(H,ie,Wn,"\u02C9","\\bar");G(H,ie,Wn,"\u02D8","\\breve");G(H,ie,Wn,"\u02C7","\\check");G(H,ie,Wn,"^","\\hat");G(H,ie,Wn,"\u20D7","\\vec");G(H,ie,Wn,"\u02D9","\\dot");G(H,ie,Wn,"\u02DA","\\mathring");G(H,ie,rr,"\uE131","\\@imath");G(H,ie,rr,"\uE237","\\@jmath");G(H,ie,De,"\u0131","\u0131");G(H,ie,De,"\u0237","\u0237");G(ct,ie,De,"\u0131","\\i",!0);G(ct,ie,De,"\u0237","\\j",!0);G(ct,ie,De,"\xDF","\\ss",!0);G(ct,ie,De,"\xE6","\\ae",!0);G(ct,ie,De,"\u0153","\\oe",!0);G(ct,ie,De,"\xF8","\\o",!0);G(ct,ie,De,"\xC6","\\AE",!0);G(ct,ie,De,"\u0152","\\OE",!0);G(ct,ie,De,"\xD8","\\O",!0);G(ct,ie,Wn,"\u02CA","\\'");G(ct,ie,Wn,"\u02CB","\\`");G(ct,ie,Wn,"\u02C6","\\^");G(ct,ie,Wn,"\u02DC","\\~");G(ct,ie,Wn,"\u02C9","\\=");G(ct,ie,Wn,"\u02D8","\\u");G(ct,ie,Wn,"\u02D9","\\.");G(ct,ie,Wn,"\xB8","\\c");G(ct,ie,Wn,"\u02DA","\\r");G(ct,ie,Wn,"\u02C7","\\v");G(ct,ie,Wn,"\xA8",'\\"');G(ct,ie,Wn,"\u02DD","\\H");G(ct,ie,Wn,"\u25EF","\\textcircled");rU={"--":!0,"---":!0,"``":!0,"''":!0};G(ct,ie,De,"\u2013","--",!0);G(ct,ie,De,"\u2013","\\textendash");G(ct,ie,De,"\u2014","---",!0);G(ct,ie,De,"\u2014","\\textemdash");G(ct,ie,De,"\u2018","`",!0);G(ct,ie,De,"\u2018","\\textquoteleft");G(ct,ie,De,"\u2019","'",!0);G(ct,ie,De,"\u2019","\\textquoteright");G(ct,ie,De,"\u201C","``",!0);G(ct,ie,De,"\u201C","\\textquotedblleft");G(ct,ie,De,"\u201D","''",!0);G(ct,ie,De,"\u201D","\\textquotedblright");G(H,ie,De,"\xB0","\\degree",!0);G(ct,ie,De,"\xB0","\\degree");G(ct,ie,De,"\xB0","\\textdegree",!0);G(H,ie,De,"\xA3","\\pounds");G(H,ie,De,"\xA3","\\mathsterling",!0);G(ct,ie,De,"\xA3","\\pounds");G(ct,ie,De,"\xA3","\\textsterling",!0);G(H,we,De,"\u2720","\\maltese");G(ct,we,De,"\u2720","\\maltese");kV='0123456789/@."';for(c3=0;c30)return fl(a,h,i,r,s.concat(f));if(u){var d,p;if(u==="boldsymbol"){var m=ITe(a,i,r,s,n);d=m.fontName,p=[m.fontClass]}else l?(d=aU[u].fontName,p=[u]):(d=p3(u,r.fontWeight,r.fontShape),p=[u,r.fontWeight,r.fontShape]);if(D3(a,d,i).metrics)return fl(a,d,i,r,s.concat(p));if(rU.hasOwnProperty(a)&&d.slice(0,10)==="Typewriter"){for(var g=[],y=0;y{if(bh(t.classes)!==bh(e.classes)||t.skew!==e.skew||t.maxFontSize!==e.maxFontSize)return!1;if(t.classes.length===1){var r=t.classes[0];if(r==="mbin"||r==="mord")return!1}for(var n in t.style)if(t.style.hasOwnProperty(n)&&t.style[n]!==e.style[n])return!1;for(var i in e.style)if(e.style.hasOwnProperty(i)&&t.style[i]!==e.style[i])return!1;return!0},"canCombine"),BTe=o(t=>{for(var e=0;er&&(r=s.height),s.depth>n&&(n=s.depth),s.maxFontSize>i&&(i=s.maxFontSize)}e.height=r,e.depth=n,e.maxFontSize=i},"sizeElementFromChildren"),Ss=o(function(e,r,n,i){var a=new fd(e,r,n,i);return cA(a),a},"makeSpan"),nU=o((t,e,r,n)=>new fd(t,e,r,n),"makeSvgSpan"),FTe=o(function(e,r,n){var i=Ss([e],[],r);return i.height=Math.max(n||r.fontMetrics().defaultRuleThickness,r.minRuleThickness),i.style.borderBottomWidth=St(i.height),i.maxFontSize=1,i},"makeLineSpan"),$Te=o(function(e,r,n,i){var a=new Qy(e,r,n,i);return cA(a),a},"makeAnchor"),iU=o(function(e){var r=new hd(e);return cA(r),r},"makeFragment"),zTe=o(function(e,r){return e instanceof hd?Ss([],[e],r):e},"wrapFragment"),GTe=o(function(e){if(e.positionType==="individualShift"){for(var r=e.children,n=[r[0]],i=-r[0].shift-r[0].elem.depth,a=i,s=1;s{var r=Ss(["mspace"],[],e),n=ii(t,e);return r.style.marginRight=St(n),r},"makeGlue"),p3=o(function(e,r,n){var i="";switch(e){case"amsrm":i="AMS";break;case"textrm":i="Main";break;case"textsf":i="SansSerif";break;case"texttt":i="Typewriter";break;default:i=e}var a;return r==="textbf"&&n==="textit"?a="BoldItalic":r==="textbf"?a="Bold":r==="textit"?a="Italic":a="Regular",i+"-"+a},"retrieveTextFontName"),aU={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"}},sU={vec:["vec",.471,.714],oiintSize1:["oiintSize1",.957,.499],oiintSize2:["oiintSize2",1.472,.659],oiiintSize1:["oiiintSize1",1.304,.499],oiiintSize2:["oiiintSize2",1.98,.659]},HTe=o(function(e,r){var[n,i,a]=sU[e],s=new Zl(n),l=new dl([s],{width:St(i),height:St(a),style:"width:"+St(i),viewBox:"0 0 "+1e3*i+" "+1e3*a,preserveAspectRatio:"xMinYMin"}),u=nU(["overlay"],[l],r);return u.height=a,u.style.height=St(a),u.style.width=St(i),u},"staticSvg"),$e={fontMap:aU,makeSymbol:fl,mathsym:MTe,makeSpan:Ss,makeSvgSpan:nU,makeLineSpan:FTe,makeAnchor:$Te,makeFragment:iU,wrapFragment:zTe,makeVList:VTe,makeOrd:OTe,makeGlue:UTe,staticSvg:HTe,svgData:sU,tryCombineChars:BTe},ni={number:3,unit:"mu"},ud={number:4,unit:"mu"},uu={number:5,unit:"mu"},qTe={mord:{mop:ni,mbin:ud,mrel:uu,minner:ni},mop:{mord:ni,mop:ni,mrel:uu,minner:ni},mbin:{mord:ud,mop:ud,mopen:ud,minner:ud},mrel:{mord:uu,mop:uu,mopen:uu,minner:uu},mopen:{},mclose:{mop:ni,mbin:ud,mrel:uu,minner:ni},mpunct:{mord:ni,mop:ni,mrel:uu,mopen:ni,mclose:ni,mpunct:ni,minner:ni},minner:{mord:ni,mop:ni,mbin:ud,mrel:uu,mopen:ni,mpunct:ni,minner:ni}},WTe={mord:{mop:ni},mop:{mord:ni,mop:ni},mbin:{},mrel:{},mopen:{},mclose:{mop:ni},mpunct:{},minner:{mop:ni}},oU={},k3={},E3={};o(Mt,"defineFunction");o(dd,"defineFunctionBuilders");S3=o(function(e){return e.type==="ordgroup"&&e.body.length===1?e.body[0]:e},"normalizeArgument"),gi=o(function(e){return e.type==="ordgroup"?e.body:[e]},"ordargument"),du=$e.makeSpan,YTe=["leftmost","mbin","mopen","mrel","mop","mpunct"],XTe=["rightmost","mrel","mclose","mpunct"],jTe={display:nr.DISPLAY,text:nr.TEXT,script:nr.SCRIPT,scriptscript:nr.SCRIPTSCRIPT},KTe={mord:"mord",mop:"mop",mbin:"mbin",mrel:"mrel",mopen:"mopen",mclose:"mclose",mpunct:"mpunct",minner:"minner"},Ii=o(function(e,r,n,i){i===void 0&&(i=[null,null]);for(var a=[],s=0;s{var v=y.classes[0],x=g.classes[0];v==="mbin"&&er.contains(XTe,x)?y.classes[0]="mord":x==="mbin"&&er.contains(YTe,v)&&(g.classes[0]="mord")},{node:d},p,m),CV(a,(g,y)=>{var v=J7(y),x=J7(g),b=v&&x?g.hasClass("mtight")?WTe[v][x]:qTe[v][x]:null;if(b)return $e.makeGlue(b,h)},{node:d},p,m),a},"buildExpression"),CV=o(function t(e,r,n,i,a){i&&e.push(i);for(var s=0;sp=>{e.splice(d+1,0,p),s++})(s)}i&&e.pop()},"traverseNonSpaceNodes"),lU=o(function(e){return e instanceof hd||e instanceof Qy||e instanceof fd&&e.hasClass("enclosing")?e:null},"checkPartialGroup"),QTe=o(function t(e,r){var n=lU(e);if(n){var i=n.children;if(i.length){if(r==="right")return t(i[i.length-1],"right");if(r==="left")return t(i[0],"left")}}return e},"getOutermostNode"),J7=o(function(e,r){return e?(r&&(e=QTe(e,r)),KTe[e.classes[0]]||null):null},"getTypeOfDomTree"),Jy=o(function(e,r){var n=["nulldelimiter"].concat(e.baseSizingClasses());return du(r.concat(n))},"makeNullDelimiter"),Hr=o(function(e,r,n){if(!e)return du();if(k3[e.type]){var i=k3[e.type](e,r);if(n&&r.size!==n.size){i=du(r.sizingClasses(n),[i],r);var a=r.sizeMultiplier/n.sizeMultiplier;i.height*=a,i.depth*=a}return i}else throw new gt("Got group of unknown type: '"+e.type+"'")},"buildGroup");o(m3,"buildHTMLUnbreakable");o(eA,"buildHTML");o(cU,"newDocumentFragment");es=class{static{o(this,"MathNode")}constructor(e,r,n){this.type=void 0,this.attributes=void 0,this.children=void 0,this.classes=void 0,this.type=e,this.attributes={},this.children=r||[],this.classes=n||[]}setAttribute(e,r){this.attributes[e]=r}getAttribute(e){return this.attributes[e]}toNode(){var e=document.createElementNS("http://www.w3.org/1998/Math/MathML",this.type);for(var r in this.attributes)Object.prototype.hasOwnProperty.call(this.attributes,r)&&e.setAttribute(r,this.attributes[r]);this.classes.length>0&&(e.className=bh(this.classes));for(var n=0;n0&&(e+=' class ="'+er.escape(bh(this.classes))+'"'),e+=">";for(var n=0;n",e}toText(){return this.children.map(e=>e.toText()).join("")}},_o=class{static{o(this,"TextNode")}constructor(e){this.text=void 0,this.text=e}toNode(){return document.createTextNode(this.text)}toMarkup(){return er.escape(this.toText())}toText(){return this.text}},tA=class{static{o(this,"SpaceNode")}constructor(e){this.width=void 0,this.character=void 0,this.width=e,e>=.05555&&e<=.05556?this.character="\u200A":e>=.1666&&e<=.1667?this.character="\u2009":e>=.2222&&e<=.2223?this.character="\u2005":e>=.2777&&e<=.2778?this.character="\u2005\u200A":e>=-.05556&&e<=-.05555?this.character="\u200A\u2063":e>=-.1667&&e<=-.1666?this.character="\u2009\u2063":e>=-.2223&&e<=-.2222?this.character="\u205F\u2063":e>=-.2778&&e<=-.2777?this.character="\u2005\u2063":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",St(this.width)),e}toMarkup(){return this.character?""+this.character+"":''}toText(){return this.character?this.character:" "}},mt={MathNode:es,TextNode:_o,SpaceNode:tA,newDocumentFragment:cU},Lo=o(function(e,r,n){return Nn[r][e]&&Nn[r][e].replace&&e.charCodeAt(0)!==55349&&!(rU.hasOwnProperty(e)&&n&&(n.fontFamily&&n.fontFamily.slice(4,6)==="tt"||n.font&&n.font.slice(4,6)==="tt"))&&(e=Nn[r][e].replace),new mt.TextNode(e)},"makeText"),uA=o(function(e){return e.length===1?e[0]:new mt.MathNode("mrow",e)},"makeRow"),hA=o(function(e,r){if(r.fontFamily==="texttt")return"monospace";if(r.fontFamily==="textsf")return r.fontShape==="textit"&&r.fontWeight==="textbf"?"sans-serif-bold-italic":r.fontShape==="textit"?"sans-serif-italic":r.fontWeight==="textbf"?"bold-sans-serif":"sans-serif";if(r.fontShape==="textit"&&r.fontWeight==="textbf")return"bold-italic";if(r.fontShape==="textit")return"italic";if(r.fontWeight==="textbf")return"bold";var n=r.font;if(!n||n==="mathnormal")return null;var i=e.mode;if(n==="mathit")return"italic";if(n==="boldsymbol")return e.type==="textord"?"bold":"bold-italic";if(n==="mathbf")return"bold";if(n==="mathbb")return"double-struck";if(n==="mathsfit")return"sans-serif-italic";if(n==="mathfrak")return"fraktur";if(n==="mathscr"||n==="mathcal")return"script";if(n==="mathsf")return"sans-serif";if(n==="mathtt")return"monospace";var a=e.text;if(er.contains(["\\imath","\\jmath"],a))return null;Nn[i][a]&&Nn[i][a].replace&&(a=Nn[i][a].replace);var s=$e.fontMap[n].fontName;return lA(a,s,i)?$e.fontMap[n].variant:null},"getVariant");o($7,"isNumberPunctuation");As=o(function(e,r,n){if(e.length===1){var i=wn(e[0],r);return n&&i instanceof es&&i.type==="mo"&&(i.setAttribute("lspace","0em"),i.setAttribute("rspace","0em")),[i]}for(var a=[],s,l=0;l=1&&(s.type==="mn"||$7(s))){var h=u.children[0];h instanceof es&&h.type==="mn"&&(h.children=[...s.children,...h.children],a.pop())}else if(s.type==="mi"&&s.children.length===1){var f=s.children[0];if(f instanceof _o&&f.text==="\u0338"&&(u.type==="mo"||u.type==="mi"||u.type==="mn")){var d=u.children[0];d instanceof _o&&d.text.length>0&&(d.text=d.text.slice(0,1)+"\u0338"+d.text.slice(1),a.pop())}}}a.push(u),s=u}return a},"buildExpression"),Th=o(function(e,r,n){return uA(As(e,r,n))},"buildExpressionRow"),wn=o(function(e,r){if(!e)return new mt.MathNode("mrow");if(E3[e.type]){var n=E3[e.type](e,r);return n}else throw new gt("Got group of unknown type: '"+e.type+"'")},"buildGroup");o(AV,"buildMathML");uU=o(function(e){return new T3({style:e.displayMode?nr.DISPLAY:nr.TEXT,maxSize:e.maxSize,minRuleThickness:e.minRuleThickness})},"optionsFromSettings"),hU=o(function(e,r){if(r.displayMode){var n=["katex-display"];r.leqno&&n.push("leqno"),r.fleqn&&n.push("fleqn"),e=$e.makeSpan(n,[e])}return e},"displayWrap"),ZTe=o(function(e,r,n){var i=uU(n),a;if(n.output==="mathml")return AV(e,r,i,n.displayMode,!0);if(n.output==="html"){var s=eA(e,i);a=$e.makeSpan(["katex"],[s])}else{var l=AV(e,r,i,n.displayMode,!1),u=eA(e,i);a=$e.makeSpan(["katex"],[l,u])}return hU(a,n)},"buildTree"),JTe=o(function(e,r,n){var i=uU(n),a=eA(e,i),s=$e.makeSpan(["katex"],[a]);return hU(s,n)},"buildHTMLTree"),ewe={widehat:"^",widecheck:"\u02C7",widetilde:"~",utilde:"~",overleftarrow:"\u2190",underleftarrow:"\u2190",xleftarrow:"\u2190",overrightarrow:"\u2192",underrightarrow:"\u2192",xrightarrow:"\u2192",underbrace:"\u23DF",overbrace:"\u23DE",overgroup:"\u23E0",undergroup:"\u23E1",overleftrightarrow:"\u2194",underleftrightarrow:"\u2194",xleftrightarrow:"\u2194",Overrightarrow:"\u21D2",xRightarrow:"\u21D2",overleftharpoon:"\u21BC",xleftharpoonup:"\u21BC",overrightharpoon:"\u21C0",xrightharpoonup:"\u21C0",xLeftarrow:"\u21D0",xLeftrightarrow:"\u21D4",xhookleftarrow:"\u21A9",xhookrightarrow:"\u21AA",xmapsto:"\u21A6",xrightharpoondown:"\u21C1",xleftharpoondown:"\u21BD",xrightleftharpoons:"\u21CC",xleftrightharpoons:"\u21CB",xtwoheadleftarrow:"\u219E",xtwoheadrightarrow:"\u21A0",xlongequal:"=",xtofrom:"\u21C4",xrightleftarrows:"\u21C4",xrightequilibrium:"\u21CC",xleftequilibrium:"\u21CB","\\cdrightarrow":"\u2192","\\cdleftarrow":"\u2190","\\cdlongequal":"="},twe=o(function(e){var r=new mt.MathNode("mo",[new mt.TextNode(ewe[e.replace(/^\\/,"")])]);return r.setAttribute("stretchy","true"),r},"mathMLnode"),rwe={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]},nwe=o(function(e){return e.type==="ordgroup"?e.body.length:1},"groupLength"),iwe=o(function(e,r){function n(){var l=4e5,u=e.label.slice(1);if(er.contains(["widehat","widecheck","widetilde","utilde"],u)){var h=e,f=nwe(h.base),d,p,m;if(f>5)u==="widehat"||u==="widecheck"?(d=420,l=2364,m=.42,p=u+"4"):(d=312,l=2340,m=.34,p="tilde4");else{var g=[1,1,2,2,3,3][f];u==="widehat"||u==="widecheck"?(l=[0,1062,2364,2364,2364][g],d=[0,239,300,360,420][g],m=[0,.24,.3,.3,.36,.42][g],p=u+g):(l=[0,600,1033,2339,2340][g],d=[0,260,286,306,312][g],m=[0,.26,.286,.3,.306,.34][g],p="tilde"+g)}var y=new Zl(p),v=new dl([y],{width:"100%",height:St(m),viewBox:"0 0 "+l+" "+d,preserveAspectRatio:"none"});return{span:$e.makeSvgSpan([],[v],r),minWidth:0,height:m}}else{var x=[],b=rwe[u],[T,S,w]=b,k=w/1e3,C=T.length,A,L;if(C===1){var I=b[3];A=["hide-tail"],L=[I]}else if(C===2)A=["halfarrow-left","halfarrow-right"],L=["xMinYMin","xMaxYMin"];else if(C===3)A=["brace-left","brace-center","brace-right"],L=["xMinYMin","xMidYMin","xMaxYMin"];else throw new Error(`Correct katexImagesData or update code here to support + `+C+" children.");for(var R=0;R0&&(i.style.minWidth=St(a)),i},"svgSpan"),awe=o(function(e,r,n,i,a){var s,l=e.height+e.depth+n+i;if(/fbox|color|angl/.test(r)){if(s=$e.makeSpan(["stretchy",r],[],a),r==="fbox"){var u=a.color&&a.getColor();u&&(s.style.borderColor=u)}}else{var h=[];/^[bx]cancel$/.test(r)&&h.push(new Zy({x1:"0",y1:"0",x2:"100%",y2:"100%","stroke-width":"0.046em"})),/^x?cancel$/.test(r)&&h.push(new Zy({x1:"0",y1:"100%",x2:"100%",y2:"0","stroke-width":"0.046em"}));var f=new dl(h,{width:"100%",height:St(l)});s=$e.makeSvgSpan([],[f],a)}return s.height=l,s.style.height=St(l),s},"encloseSpan"),pu={encloseSpan:awe,mathMLnode:twe,svgSpan:iwe};o(Tr,"assertNodeType");o(fA,"assertSymbolNodeType");o(L3,"checkSymbolNodeType");dA=o((t,e)=>{var r,n,i;t&&t.type==="supsub"?(n=Tr(t.base,"accent"),r=n.base,t.base=r,i=DTe(Hr(t,e)),t.base=n):(n=Tr(t,"accent"),r=n.base);var a=Hr(r,e.havingCrampedStyle()),s=n.isShifty&&er.isCharacterBox(r),l=0;if(s){var u=er.getBaseElem(r),h=Hr(u,e.havingCrampedStyle());l=wV(h).skew}var f=n.label==="\\c",d=f?a.height+a.depth:Math.min(a.height,e.fontMetrics().xHeight),p;if(n.isStretchy)p=pu.svgSpan(n,e),p=$e.makeVList({positionType:"firstBaseline",children:[{type:"elem",elem:a},{type:"elem",elem:p,wrapperClasses:["svg-align"],wrapperStyle:l>0?{width:"calc(100% - "+St(2*l)+")",marginLeft:St(2*l)}:void 0}]},e);else{var m,g;n.label==="\\vec"?(m=$e.staticSvg("vec",e),g=$e.svgData.vec[1]):(m=$e.makeOrd({mode:n.mode,text:n.label},e,"textord"),m=wV(m),m.italic=0,g=m.width,f&&(d+=m.depth)),p=$e.makeSpan(["accent-body"],[m]);var y=n.label==="\\textcircled";y&&(p.classes.push("accent-full"),d=a.height);var v=l;y||(v-=g/2),p.style.left=St(v),n.label==="\\textcircled"&&(p.style.top=".2em"),p=$e.makeVList({positionType:"firstBaseline",children:[{type:"elem",elem:a},{type:"kern",size:-d},{type:"elem",elem:p}]},e)}var x=$e.makeSpan(["mord","accent"],[p],e);return i?(i.children[0]=x,i.height=Math.max(x.height,i.height),i.classes[0]="mord",i):x},"htmlBuilder$a"),fU=o((t,e)=>{var r=t.isStretchy?pu.mathMLnode(t.label):new mt.MathNode("mo",[Lo(t.label,t.mode)]),n=new mt.MathNode("mover",[wn(t.base,e),r]);return n.setAttribute("accent","true"),n},"mathmlBuilder$9"),swe=new RegExp(["\\acute","\\grave","\\ddot","\\tilde","\\bar","\\breve","\\check","\\hat","\\vec","\\dot","\\mathring"].map(t=>"\\"+t).join("|"));Mt({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:o((t,e)=>{var r=S3(e[0]),n=!swe.test(t.funcName),i=!n||t.funcName==="\\widehat"||t.funcName==="\\widetilde"||t.funcName==="\\widecheck";return{type:"accent",mode:t.parser.mode,label:t.funcName,isStretchy:n,isShifty:i,base:r}},"handler"),htmlBuilder:dA,mathmlBuilder:fU});Mt({type:"accent",names:["\\'","\\`","\\^","\\~","\\=","\\u","\\.",'\\"',"\\c","\\r","\\H","\\v","\\textcircled"],props:{numArgs:1,allowedInText:!0,allowedInMath:!0,argTypes:["primitive"]},handler:o((t,e)=>{var r=e[0],n=t.parser.mode;return n==="math"&&(t.parser.settings.reportNonstrict("mathVsTextAccents","LaTeX's accent "+t.funcName+" works only in text mode"),n="text"),{type:"accent",mode:n,label:t.funcName,isStretchy:!1,isShifty:!0,base:r}},"handler"),htmlBuilder:dA,mathmlBuilder:fU});Mt({type:"accentUnder",names:["\\underleftarrow","\\underrightarrow","\\underleftrightarrow","\\undergroup","\\underlinesegment","\\utilde"],props:{numArgs:1},handler:o((t,e)=>{var{parser:r,funcName:n}=t,i=e[0];return{type:"accentUnder",mode:r.mode,label:n,base:i}},"handler"),htmlBuilder:o((t,e)=>{var r=Hr(t.base,e),n=pu.svgSpan(t,e),i=t.label==="\\utilde"?.12:0,a=$e.makeVList({positionType:"top",positionData:r.height,children:[{type:"elem",elem:n,wrapperClasses:["svg-align"]},{type:"kern",size:i},{type:"elem",elem:r}]},e);return $e.makeSpan(["mord","accentunder"],[a],e)},"htmlBuilder"),mathmlBuilder:o((t,e)=>{var r=pu.mathMLnode(t.label),n=new mt.MathNode("munder",[wn(t.base,e),r]);return n.setAttribute("accentunder","true"),n},"mathmlBuilder")});g3=o(t=>{var e=new mt.MathNode("mpadded",t?[t]:[]);return e.setAttribute("width","+0.6em"),e.setAttribute("lspace","0.3em"),e},"paddedNode");Mt({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(t,e,r){var{parser:n,funcName:i}=t;return{type:"xArrow",mode:n.mode,label:i,body:e[0],below:r[0]}},htmlBuilder(t,e){var r=e.style,n=e.havingStyle(r.sup()),i=$e.wrapFragment(Hr(t.body,n,e),e),a=t.label.slice(0,2)==="\\x"?"x":"cd";i.classes.push(a+"-arrow-pad");var s;t.below&&(n=e.havingStyle(r.sub()),s=$e.wrapFragment(Hr(t.below,n,e),e),s.classes.push(a+"-arrow-pad"));var l=pu.svgSpan(t,e),u=-e.fontMetrics().axisHeight+.5*l.height,h=-e.fontMetrics().axisHeight-.5*l.height-.111;(i.depth>.25||t.label==="\\xleftequilibrium")&&(h-=i.depth);var f;if(s){var d=-e.fontMetrics().axisHeight+s.height+.5*l.height+.111;f=$e.makeVList({positionType:"individualShift",children:[{type:"elem",elem:i,shift:h},{type:"elem",elem:l,shift:u},{type:"elem",elem:s,shift:d}]},e)}else f=$e.makeVList({positionType:"individualShift",children:[{type:"elem",elem:i,shift:h},{type:"elem",elem:l,shift:u}]},e);return f.children[0].children[0].children[1].classes.push("svg-align"),$e.makeSpan(["mrel","x-arrow"],[f],e)},mathmlBuilder(t,e){var r=pu.mathMLnode(t.label);r.setAttribute("minsize",t.label.charAt(0)==="x"?"1.75em":"3.0em");var n;if(t.body){var i=g3(wn(t.body,e));if(t.below){var a=g3(wn(t.below,e));n=new mt.MathNode("munderover",[r,a,i])}else n=new mt.MathNode("mover",[r,i])}else if(t.below){var s=g3(wn(t.below,e));n=new mt.MathNode("munder",[r,s])}else n=g3(),n=new mt.MathNode("mover",[r,n]);return n}});owe=$e.makeSpan;o(dU,"htmlBuilder$9");o(pU,"mathmlBuilder$8");Mt({type:"mclass",names:["\\mathord","\\mathbin","\\mathrel","\\mathopen","\\mathclose","\\mathpunct","\\mathinner"],props:{numArgs:1,primitive:!0},handler(t,e){var{parser:r,funcName:n}=t,i=e[0];return{type:"mclass",mode:r.mode,mclass:"m"+n.slice(5),body:gi(i),isCharacterBox:er.isCharacterBox(i)}},htmlBuilder:dU,mathmlBuilder:pU});R3=o(t=>{var e=t.type==="ordgroup"&&t.body.length?t.body[0]:t;return e.type==="atom"&&(e.family==="bin"||e.family==="rel")?"m"+e.family:"mord"},"binrelClass");Mt({type:"mclass",names:["\\@binrel"],props:{numArgs:2},handler(t,e){var{parser:r}=t;return{type:"mclass",mode:r.mode,mclass:R3(e[0]),body:gi(e[1]),isCharacterBox:er.isCharacterBox(e[1])}}});Mt({type:"mclass",names:["\\stackrel","\\overset","\\underset"],props:{numArgs:2},handler(t,e){var{parser:r,funcName:n}=t,i=e[1],a=e[0],s;n!=="\\stackrel"?s=R3(i):s="mrel";var l={type:"op",mode:i.mode,limits:!0,alwaysHandleSupSub:!0,parentIsSupSub:!1,symbol:!1,suppressBaseShift:n!=="\\stackrel",body:gi(i)},u={type:"supsub",mode:a.mode,base:l,sup:n==="\\underset"?null:a,sub:n==="\\underset"?a:null};return{type:"mclass",mode:r.mode,mclass:s,body:[u],isCharacterBox:er.isCharacterBox(u)}},htmlBuilder:dU,mathmlBuilder:pU});Mt({type:"pmb",names:["\\pmb"],props:{numArgs:1,allowedInText:!0},handler(t,e){var{parser:r}=t;return{type:"pmb",mode:r.mode,mclass:R3(e[0]),body:gi(e[0])}},htmlBuilder(t,e){var r=Ii(t.body,e,!0),n=$e.makeSpan([t.mclass],r,e);return n.style.textShadow="0.02em 0.01em 0.04px",n},mathmlBuilder(t,e){var r=As(t.body,e),n=new mt.MathNode("mstyle",r);return n.setAttribute("style","text-shadow: 0.02em 0.01em 0.04px"),n}});lwe={">":"\\\\cdrightarrow","<":"\\\\cdleftarrow","=":"\\\\cdlongequal",A:"\\uparrow",V:"\\downarrow","|":"\\Vert",".":"no arrow"},_V=o(()=>({type:"styling",body:[],mode:"math",style:"display"}),"newCell"),DV=o(t=>t.type==="textord"&&t.text==="@","isStartOfArrow"),cwe=o((t,e)=>(t.type==="mathord"||t.type==="atom")&&t.text===e,"isLabelEnd");o(uwe,"cdArrow");o(hwe,"parseCD");Mt({type:"cdlabel",names:["\\\\cdleft","\\\\cdright"],props:{numArgs:1},handler(t,e){var{parser:r,funcName:n}=t;return{type:"cdlabel",mode:r.mode,side:n.slice(4),label:e[0]}},htmlBuilder(t,e){var r=e.havingStyle(e.style.sup()),n=$e.wrapFragment(Hr(t.label,r,e),e);return n.classes.push("cd-label-"+t.side),n.style.bottom=St(.8-n.depth),n.height=0,n.depth=0,n},mathmlBuilder(t,e){var r=new mt.MathNode("mrow",[wn(t.label,e)]);return r=new mt.MathNode("mpadded",[r]),r.setAttribute("width","0"),t.side==="left"&&r.setAttribute("lspace","-1width"),r.setAttribute("voffset","0.7em"),r=new mt.MathNode("mstyle",[r]),r.setAttribute("displaystyle","false"),r.setAttribute("scriptlevel","1"),r}});Mt({type:"cdlabelparent",names:["\\\\cdparent"],props:{numArgs:1},handler(t,e){var{parser:r}=t;return{type:"cdlabelparent",mode:r.mode,fragment:e[0]}},htmlBuilder(t,e){var r=$e.wrapFragment(Hr(t.fragment,e),e);return r.classes.push("cd-vert-arrow"),r},mathmlBuilder(t,e){return new mt.MathNode("mrow",[wn(t.fragment,e)])}});Mt({type:"textord",names:["\\@char"],props:{numArgs:1,allowedInText:!0},handler(t,e){for(var{parser:r}=t,n=Tr(e[0],"ordgroup"),i=n.body,a="",s=0;s=1114111)throw new gt("\\@char with invalid code point "+a);return u<=65535?h=String.fromCharCode(u):(u-=65536,h=String.fromCharCode((u>>10)+55296,(u&1023)+56320)),{type:"textord",mode:r.mode,text:h}}});mU=o((t,e)=>{var r=Ii(t.body,e.withColor(t.color),!1);return $e.makeFragment(r)},"htmlBuilder$8"),gU=o((t,e)=>{var r=As(t.body,e.withColor(t.color)),n=new mt.MathNode("mstyle",r);return n.setAttribute("mathcolor",t.color),n},"mathmlBuilder$7");Mt({type:"color",names:["\\textcolor"],props:{numArgs:2,allowedInText:!0,argTypes:["color","original"]},handler(t,e){var{parser:r}=t,n=Tr(e[0],"color-token").color,i=e[1];return{type:"color",mode:r.mode,color:n,body:gi(i)}},htmlBuilder:mU,mathmlBuilder:gU});Mt({type:"color",names:["\\color"],props:{numArgs:1,allowedInText:!0,argTypes:["color"]},handler(t,e){var{parser:r,breakOnTokenText:n}=t,i=Tr(e[0],"color-token").color;r.gullet.macros.set("\\current@color",i);var a=r.parseExpression(!0,n);return{type:"color",mode:r.mode,color:i,body:a}},htmlBuilder:mU,mathmlBuilder:gU});Mt({type:"cr",names:["\\\\"],props:{numArgs:0,numOptionalArgs:0,allowedInText:!0},handler(t,e,r){var{parser:n}=t,i=n.gullet.future().text==="["?n.parseSizeGroup(!0):null,a=!n.settings.displayMode||!n.settings.useStrictBehavior("newLineInDisplayMode","In LaTeX, \\\\ or \\newline does nothing in display mode");return{type:"cr",mode:n.mode,newLine:a,size:i&&Tr(i,"size").value}},htmlBuilder(t,e){var r=$e.makeSpan(["mspace"],[],e);return t.newLine&&(r.classes.push("newline"),t.size&&(r.style.marginTop=St(ii(t.size,e)))),r},mathmlBuilder(t,e){var r=new mt.MathNode("mspace");return t.newLine&&(r.setAttribute("linebreak","newline"),t.size&&r.setAttribute("height",St(ii(t.size,e)))),r}});rA={"\\global":"\\global","\\long":"\\\\globallong","\\\\globallong":"\\\\globallong","\\def":"\\gdef","\\gdef":"\\gdef","\\edef":"\\xdef","\\xdef":"\\xdef","\\let":"\\\\globallet","\\futurelet":"\\\\globalfuture"},yU=o(t=>{var e=t.text;if(/^(?:[\\{}$&#^_]|EOF)$/.test(e))throw new gt("Expected a control sequence",t);return e},"checkControlSequence"),fwe=o(t=>{var e=t.gullet.popToken();return e.text==="="&&(e=t.gullet.popToken(),e.text===" "&&(e=t.gullet.popToken())),e},"getRHS"),vU=o((t,e,r,n)=>{var i=t.gullet.macros.get(r.text);i==null&&(r.noexpand=!0,i={tokens:[r],numArgs:0,unexpandable:!t.gullet.isExpandable(r.text)}),t.gullet.macros.set(e,i,n)},"letCommand");Mt({type:"internal",names:["\\global","\\long","\\\\globallong"],props:{numArgs:0,allowedInText:!0},handler(t){var{parser:e,funcName:r}=t;e.consumeSpaces();var n=e.fetch();if(rA[n.text])return(r==="\\global"||r==="\\\\globallong")&&(n.text=rA[n.text]),Tr(e.parseFunction(),"internal");throw new gt("Invalid token after macro prefix",n)}});Mt({type:"internal",names:["\\def","\\gdef","\\edef","\\xdef"],props:{numArgs:0,allowedInText:!0,primitive:!0},handler(t){var{parser:e,funcName:r}=t,n=e.gullet.popToken(),i=n.text;if(/^(?:[\\{}$&#^_]|EOF)$/.test(i))throw new gt("Expected a control sequence",n);for(var a=0,s,l=[[]];e.gullet.future().text!=="{";)if(n=e.gullet.popToken(),n.text==="#"){if(e.gullet.future().text==="{"){s=e.gullet.future(),l[a].push("{");break}if(n=e.gullet.popToken(),!/^[1-9]$/.test(n.text))throw new gt('Invalid argument number "'+n.text+'"');if(parseInt(n.text)!==a+1)throw new gt('Argument number "'+n.text+'" out of order');a++,l.push([])}else{if(n.text==="EOF")throw new gt("Expected a macro definition");l[a].push(n.text)}var{tokens:u}=e.gullet.consumeArg();return s&&u.unshift(s),(r==="\\edef"||r==="\\xdef")&&(u=e.gullet.expandTokens(u),u.reverse()),e.gullet.macros.set(i,{tokens:u,numArgs:a,delimiters:l},r===rA[r]),{type:"internal",mode:e.mode}}});Mt({type:"internal",names:["\\let","\\\\globallet"],props:{numArgs:0,allowedInText:!0,primitive:!0},handler(t){var{parser:e,funcName:r}=t,n=yU(e.gullet.popToken());e.gullet.consumeSpaces();var i=fwe(e);return vU(e,n,i,r==="\\\\globallet"),{type:"internal",mode:e.mode}}});Mt({type:"internal",names:["\\futurelet","\\\\globalfuture"],props:{numArgs:0,allowedInText:!0,primitive:!0},handler(t){var{parser:e,funcName:r}=t,n=yU(e.gullet.popToken()),i=e.gullet.popToken(),a=e.gullet.popToken();return vU(e,n,a,r==="\\\\globalfuture"),e.gullet.pushToken(a),e.gullet.pushToken(i),{type:"internal",mode:e.mode}}});Wy=o(function(e,r,n){var i=Nn.math[e]&&Nn.math[e].replace,a=lA(i||e,r,n);if(!a)throw new Error("Unsupported symbol "+e+" and font size "+r+".");return a},"getMetrics"),pA=o(function(e,r,n,i){var a=n.havingBaseStyle(r),s=$e.makeSpan(i.concat(a.sizingClasses(n)),[e],n),l=a.sizeMultiplier/n.sizeMultiplier;return s.height*=l,s.depth*=l,s.maxFontSize=a.sizeMultiplier,s},"styleWrap"),xU=o(function(e,r,n){var i=r.havingBaseStyle(n),a=(1-r.sizeMultiplier/i.sizeMultiplier)*r.fontMetrics().axisHeight;e.classes.push("delimcenter"),e.style.top=St(a),e.height-=a,e.depth+=a},"centerSpan"),dwe=o(function(e,r,n,i,a,s){var l=$e.makeSymbol(e,"Main-Regular",a,i),u=pA(l,r,i,s);return n&&xU(u,i,r),u},"makeSmallDelim"),pwe=o(function(e,r,n,i){return $e.makeSymbol(e,"Size"+r+"-Regular",n,i)},"mathrmSize"),bU=o(function(e,r,n,i,a,s){var l=pwe(e,r,a,i),u=pA($e.makeSpan(["delimsizing","size"+r],[l],i),nr.TEXT,i,s);return n&&xU(u,i,nr.TEXT),u},"makeLargeDelim"),z7=o(function(e,r,n){var i;r==="Size1-Regular"?i="delim-size1":i="delim-size4";var a=$e.makeSpan(["delimsizinginner",i],[$e.makeSpan([],[$e.makeSymbol(e,r,n)])]);return{type:"elem",elem:a}},"makeGlyphSpan"),G7=o(function(e,r,n){var i=Ql["Size4-Regular"][e.charCodeAt(0)]?Ql["Size4-Regular"][e.charCodeAt(0)][4]:Ql["Size1-Regular"][e.charCodeAt(0)][4],a=new Zl("inner",wTe(e,Math.round(1e3*r))),s=new dl([a],{width:St(i),height:St(r),style:"width:"+St(i),viewBox:"0 0 "+1e3*i+" "+Math.round(1e3*r),preserveAspectRatio:"xMinYMin"}),l=$e.makeSvgSpan([],[s],n);return l.height=r,l.style.height=St(r),l.style.width=St(i),{type:"elem",elem:l}},"makeInner"),nA=.008,y3={type:"kern",size:-1*nA},mwe=["|","\\lvert","\\rvert","\\vert"],gwe=["\\|","\\lVert","\\rVert","\\Vert"],TU=o(function(e,r,n,i,a,s){var l,u,h,f,d="",p=0;l=h=f=e,u=null;var m="Size1-Regular";e==="\\uparrow"?h=f="\u23D0":e==="\\Uparrow"?h=f="\u2016":e==="\\downarrow"?l=h="\u23D0":e==="\\Downarrow"?l=h="\u2016":e==="\\updownarrow"?(l="\\uparrow",h="\u23D0",f="\\downarrow"):e==="\\Updownarrow"?(l="\\Uparrow",h="\u2016",f="\\Downarrow"):er.contains(mwe,e)?(h="\u2223",d="vert",p=333):er.contains(gwe,e)?(h="\u2225",d="doublevert",p=556):e==="["||e==="\\lbrack"?(l="\u23A1",h="\u23A2",f="\u23A3",m="Size4-Regular",d="lbrack",p=667):e==="]"||e==="\\rbrack"?(l="\u23A4",h="\u23A5",f="\u23A6",m="Size4-Regular",d="rbrack",p=667):e==="\\lfloor"||e==="\u230A"?(h=l="\u23A2",f="\u23A3",m="Size4-Regular",d="lfloor",p=667):e==="\\lceil"||e==="\u2308"?(l="\u23A1",h=f="\u23A2",m="Size4-Regular",d="lceil",p=667):e==="\\rfloor"||e==="\u230B"?(h=l="\u23A5",f="\u23A6",m="Size4-Regular",d="rfloor",p=667):e==="\\rceil"||e==="\u2309"?(l="\u23A4",h=f="\u23A5",m="Size4-Regular",d="rceil",p=667):e==="("||e==="\\lparen"?(l="\u239B",h="\u239C",f="\u239D",m="Size4-Regular",d="lparen",p=875):e===")"||e==="\\rparen"?(l="\u239E",h="\u239F",f="\u23A0",m="Size4-Regular",d="rparen",p=875):e==="\\{"||e==="\\lbrace"?(l="\u23A7",u="\u23A8",f="\u23A9",h="\u23AA",m="Size4-Regular"):e==="\\}"||e==="\\rbrace"?(l="\u23AB",u="\u23AC",f="\u23AD",h="\u23AA",m="Size4-Regular"):e==="\\lgroup"||e==="\u27EE"?(l="\u23A7",f="\u23A9",h="\u23AA",m="Size4-Regular"):e==="\\rgroup"||e==="\u27EF"?(l="\u23AB",f="\u23AD",h="\u23AA",m="Size4-Regular"):e==="\\lmoustache"||e==="\u23B0"?(l="\u23A7",f="\u23AD",h="\u23AA",m="Size4-Regular"):(e==="\\rmoustache"||e==="\u23B1")&&(l="\u23AB",f="\u23A9",h="\u23AA",m="Size4-Regular");var g=Wy(l,m,a),y=g.height+g.depth,v=Wy(h,m,a),x=v.height+v.depth,b=Wy(f,m,a),T=b.height+b.depth,S=0,w=1;if(u!==null){var k=Wy(u,m,a);S=k.height+k.depth,w=2}var C=y+T+S,A=Math.max(0,Math.ceil((r-C)/(w*x))),L=C+A*w*x,I=i.fontMetrics().axisHeight;n&&(I*=i.sizeMultiplier);var R=L/2-I,E=[];if(d.length>0){var _=L-y-T,D=Math.round(L*1e3),O=kTe(d,Math.round(_*1e3)),N=new Zl(d,O),P=(p/1e3).toFixed(3)+"em",B=(D/1e3).toFixed(3)+"em",F=new dl([N],{width:P,height:B,viewBox:"0 0 "+p+" "+D}),V=$e.makeSvgSpan([],[F],i);V.height=D/1e3,V.style.width=P,V.style.height=B,E.push({type:"elem",elem:V})}else{if(E.push(z7(f,m,a)),E.push(y3),u===null){var $=L-y-T+2*nA;E.push(G7(h,$,i))}else{var U=(L-y-T-S)/2+2*nA;E.push(G7(h,U,i)),E.push(y3),E.push(z7(u,m,a)),E.push(y3),E.push(G7(h,U,i))}E.push(y3),E.push(z7(l,m,a))}var j=i.havingBaseStyle(nr.TEXT),ee=$e.makeVList({positionType:"bottom",positionData:R,children:E},j);return pA($e.makeSpan(["delimsizing","mult"],[ee],j),nr.TEXT,i,s)},"makeStackedDelim"),V7=80,U7=.08,H7=o(function(e,r,n,i,a){var s=TTe(e,i,n),l=new Zl(e,s),u=new dl([l],{width:"400em",height:St(r),viewBox:"0 0 400000 "+n,preserveAspectRatio:"xMinYMin slice"});return $e.makeSvgSpan(["hide-tail"],[u],a)},"sqrtSvg"),ywe=o(function(e,r){var n=r.havingBaseSizing(),i=SU("\\surd",e*n.sizeMultiplier,EU,n),a=n.sizeMultiplier,s=Math.max(0,r.minRuleThickness-r.fontMetrics().sqrtRuleThickness),l,u=0,h=0,f=0,d;return i.type==="small"?(f=1e3+1e3*s+V7,e<1?a=1:e<1.4&&(a=.7),u=(1+s+U7)/a,h=(1+s)/a,l=H7("sqrtMain",u,f,s,r),l.style.minWidth="0.853em",d=.833/a):i.type==="large"?(f=(1e3+V7)*Xy[i.size],h=(Xy[i.size]+s)/a,u=(Xy[i.size]+s+U7)/a,l=H7("sqrtSize"+i.size,u,f,s,r),l.style.minWidth="1.02em",d=1/a):(u=e+s+U7,h=e+s,f=Math.floor(1e3*e+s)+V7,l=H7("sqrtTall",u,f,s,r),l.style.minWidth="0.742em",d=1.056),l.height=h,l.style.height=St(u),{span:l,advanceWidth:d,ruleWidth:(r.fontMetrics().sqrtRuleThickness+s)*a}},"makeSqrtImage"),wU=["(","\\lparen",")","\\rparen","[","\\lbrack","]","\\rbrack","\\{","\\lbrace","\\}","\\rbrace","\\lfloor","\\rfloor","\u230A","\u230B","\\lceil","\\rceil","\u2308","\u2309","\\surd"],vwe=["\\uparrow","\\downarrow","\\updownarrow","\\Uparrow","\\Downarrow","\\Updownarrow","|","\\|","\\vert","\\Vert","\\lvert","\\rvert","\\lVert","\\rVert","\\lgroup","\\rgroup","\u27EE","\u27EF","\\lmoustache","\\rmoustache","\u23B0","\u23B1"],kU=["<",">","\\langle","\\rangle","/","\\backslash","\\lt","\\gt"],Xy=[0,1.2,1.8,2.4,3],xwe=o(function(e,r,n,i,a){if(e==="<"||e==="\\lt"||e==="\u27E8"?e="\\langle":(e===">"||e==="\\gt"||e==="\u27E9")&&(e="\\rangle"),er.contains(wU,e)||er.contains(kU,e))return bU(e,r,!1,n,i,a);if(er.contains(vwe,e))return TU(e,Xy[r],!1,n,i,a);throw new gt("Illegal delimiter: '"+e+"'")},"makeSizedDelim"),bwe=[{type:"small",style:nr.SCRIPTSCRIPT},{type:"small",style:nr.SCRIPT},{type:"small",style:nr.TEXT},{type:"large",size:1},{type:"large",size:2},{type:"large",size:3},{type:"large",size:4}],Twe=[{type:"small",style:nr.SCRIPTSCRIPT},{type:"small",style:nr.SCRIPT},{type:"small",style:nr.TEXT},{type:"stack"}],EU=[{type:"small",style:nr.SCRIPTSCRIPT},{type:"small",style:nr.SCRIPT},{type:"small",style:nr.TEXT},{type:"large",size:1},{type:"large",size:2},{type:"large",size:3},{type:"large",size:4},{type:"stack"}],wwe=o(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.")},"delimTypeToFont"),SU=o(function(e,r,n,i){for(var a=Math.min(2,3-i.style.size),s=a;sr)return n[s]}return n[n.length-1]},"traverseSequence"),CU=o(function(e,r,n,i,a,s){e==="<"||e==="\\lt"||e==="\u27E8"?e="\\langle":(e===">"||e==="\\gt"||e==="\u27E9")&&(e="\\rangle");var l;er.contains(kU,e)?l=bwe:er.contains(wU,e)?l=EU:l=Twe;var u=SU(e,r,l,i);return u.type==="small"?dwe(e,u.style,n,i,a,s):u.type==="large"?bU(e,u.size,n,i,a,s):TU(e,r,n,i,a,s)},"makeCustomSizedDelim"),kwe=o(function(e,r,n,i,a,s){var l=i.fontMetrics().axisHeight*i.sizeMultiplier,u=901,h=5/i.fontMetrics().ptPerEm,f=Math.max(r-l,n+l),d=Math.max(f/500*u,2*f-h);return CU(e,d,!0,i,a,s)},"makeLeftRightDelim"),fu={sqrtImage:ywe,sizedDelim:xwe,sizeToMaxHeight:Xy,customSizedDelim:CU,leftRightDelim:kwe},LV={"\\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}},Ewe=["(","\\lparen",")","\\rparen","[","\\lbrack","]","\\rbrack","\\{","\\lbrace","\\}","\\rbrace","\\lfloor","\\rfloor","\u230A","\u230B","\\lceil","\\rceil","\u2308","\u2309","<",">","\\langle","\u27E8","\\rangle","\u27E9","\\lt","\\gt","\\lvert","\\rvert","\\lVert","\\rVert","\\lgroup","\\rgroup","\u27EE","\u27EF","\\lmoustache","\\rmoustache","\u23B0","\u23B1","/","\\backslash","|","\\vert","\\|","\\Vert","\\uparrow","\\Uparrow","\\downarrow","\\Downarrow","\\updownarrow","\\Updownarrow","."];o(N3,"checkDelimiter");Mt({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:o((t,e)=>{var r=N3(e[0],t);return{type:"delimsizing",mode:t.parser.mode,size:LV[t.funcName].size,mclass:LV[t.funcName].mclass,delim:r.text}},"handler"),htmlBuilder:o((t,e)=>t.delim==="."?$e.makeSpan([t.mclass]):fu.sizedDelim(t.delim,t.size,e,t.mode,[t.mclass]),"htmlBuilder"),mathmlBuilder:o(t=>{var e=[];t.delim!=="."&&e.push(Lo(t.delim,t.mode));var r=new mt.MathNode("mo",e);t.mclass==="mopen"||t.mclass==="mclose"?r.setAttribute("fence","true"):r.setAttribute("fence","false"),r.setAttribute("stretchy","true");var n=St(fu.sizeToMaxHeight[t.size]);return r.setAttribute("minsize",n),r.setAttribute("maxsize",n),r},"mathmlBuilder")});o(RV,"assertParsed");Mt({type:"leftright-right",names:["\\right"],props:{numArgs:1,primitive:!0},handler:o((t,e)=>{var r=t.parser.gullet.macros.get("\\current@color");if(r&&typeof r!="string")throw new gt("\\current@color set to non-string in \\right");return{type:"leftright-right",mode:t.parser.mode,delim:N3(e[0],t).text,color:r}},"handler")});Mt({type:"leftright",names:["\\left"],props:{numArgs:1,primitive:!0},handler:o((t,e)=>{var r=N3(e[0],t),n=t.parser;++n.leftrightDepth;var i=n.parseExpression(!1);--n.leftrightDepth,n.expect("\\right",!1);var a=Tr(n.parseFunction(),"leftright-right");return{type:"leftright",mode:n.mode,body:i,left:r.text,right:a.delim,rightColor:a.color}},"handler"),htmlBuilder:o((t,e)=>{RV(t);for(var r=Ii(t.body,e,!0,["mopen","mclose"]),n=0,i=0,a=!1,s=0;s{RV(t);var r=As(t.body,e);if(t.left!=="."){var n=new mt.MathNode("mo",[Lo(t.left,t.mode)]);n.setAttribute("fence","true"),r.unshift(n)}if(t.right!=="."){var i=new mt.MathNode("mo",[Lo(t.right,t.mode)]);i.setAttribute("fence","true"),t.rightColor&&i.setAttribute("mathcolor",t.rightColor),r.push(i)}return uA(r)},"mathmlBuilder")});Mt({type:"middle",names:["\\middle"],props:{numArgs:1,primitive:!0},handler:o((t,e)=>{var r=N3(e[0],t);if(!t.parser.leftrightDepth)throw new gt("\\middle without preceding \\left",r);return{type:"middle",mode:t.parser.mode,delim:r.text}},"handler"),htmlBuilder:o((t,e)=>{var r;if(t.delim===".")r=Jy(e,[]);else{r=fu.sizedDelim(t.delim,1,e,t.mode,[]);var n={delim:t.delim,options:e};r.isMiddle=n}return r},"htmlBuilder"),mathmlBuilder:o((t,e)=>{var r=t.delim==="\\vert"||t.delim==="|"?Lo("|","text"):Lo(t.delim,t.mode),n=new mt.MathNode("mo",[r]);return n.setAttribute("fence","true"),n.setAttribute("lspace","0.05em"),n.setAttribute("rspace","0.05em"),n},"mathmlBuilder")});mA=o((t,e)=>{var r=$e.wrapFragment(Hr(t.body,e),e),n=t.label.slice(1),i=e.sizeMultiplier,a,s=0,l=er.isCharacterBox(t.body);if(n==="sout")a=$e.makeSpan(["stretchy","sout"]),a.height=e.fontMetrics().defaultRuleThickness/i,s=-.5*e.fontMetrics().xHeight;else if(n==="phase"){var u=ii({number:.6,unit:"pt"},e),h=ii({number:.35,unit:"ex"},e),f=e.havingBaseSizing();i=i/f.sizeMultiplier;var d=r.height+r.depth+u+h;r.style.paddingLeft=St(d/2+u);var p=Math.floor(1e3*d*i),m=xTe(p),g=new dl([new Zl("phase",m)],{width:"400em",height:St(p/1e3),viewBox:"0 0 400000 "+p,preserveAspectRatio:"xMinYMin slice"});a=$e.makeSvgSpan(["hide-tail"],[g],e),a.style.height=St(d),s=r.depth+u+h}else{/cancel/.test(n)?l||r.classes.push("cancel-pad"):n==="angl"?r.classes.push("anglpad"):r.classes.push("boxpad");var y=0,v=0,x=0;/box/.test(n)?(x=Math.max(e.fontMetrics().fboxrule,e.minRuleThickness),y=e.fontMetrics().fboxsep+(n==="colorbox"?0:x),v=y):n==="angl"?(x=Math.max(e.fontMetrics().defaultRuleThickness,e.minRuleThickness),y=4*x,v=Math.max(0,.25-r.depth)):(y=l?.2:0,v=y),a=pu.encloseSpan(r,n,y,v,e),/fbox|boxed|fcolorbox/.test(n)?(a.style.borderStyle="solid",a.style.borderWidth=St(x)):n==="angl"&&x!==.049&&(a.style.borderTopWidth=St(x),a.style.borderRightWidth=St(x)),s=r.depth+v,t.backgroundColor&&(a.style.backgroundColor=t.backgroundColor,t.borderColor&&(a.style.borderColor=t.borderColor))}var b;if(t.backgroundColor)b=$e.makeVList({positionType:"individualShift",children:[{type:"elem",elem:a,shift:s},{type:"elem",elem:r,shift:0}]},e);else{var T=/cancel|phase/.test(n)?["svg-align"]:[];b=$e.makeVList({positionType:"individualShift",children:[{type:"elem",elem:r,shift:0},{type:"elem",elem:a,shift:s,wrapperClasses:T}]},e)}return/cancel/.test(n)&&(b.height=r.height,b.depth=r.depth),/cancel/.test(n)&&!l?$e.makeSpan(["mord","cancel-lap"],[b],e):$e.makeSpan(["mord"],[b],e)},"htmlBuilder$7"),gA=o((t,e)=>{var r=0,n=new mt.MathNode(t.label.indexOf("colorbox")>-1?"mpadded":"menclose",[wn(t.body,e)]);switch(t.label){case"\\cancel":n.setAttribute("notation","updiagonalstrike");break;case"\\bcancel":n.setAttribute("notation","downdiagonalstrike");break;case"\\phase":n.setAttribute("notation","phasorangle");break;case"\\sout":n.setAttribute("notation","horizontalstrike");break;case"\\fbox":n.setAttribute("notation","box");break;case"\\angl":n.setAttribute("notation","actuarial");break;case"\\fcolorbox":case"\\colorbox":if(r=e.fontMetrics().fboxsep*e.fontMetrics().ptPerEm,n.setAttribute("width","+"+2*r+"pt"),n.setAttribute("height","+"+2*r+"pt"),n.setAttribute("lspace",r+"pt"),n.setAttribute("voffset",r+"pt"),t.label==="\\fcolorbox"){var i=Math.max(e.fontMetrics().fboxrule,e.minRuleThickness);n.setAttribute("style","border: "+i+"em solid "+String(t.borderColor))}break;case"\\xcancel":n.setAttribute("notation","updiagonalstrike downdiagonalstrike");break}return t.backgroundColor&&n.setAttribute("mathbackground",t.backgroundColor),n},"mathmlBuilder$6");Mt({type:"enclose",names:["\\colorbox"],props:{numArgs:2,allowedInText:!0,argTypes:["color","text"]},handler(t,e,r){var{parser:n,funcName:i}=t,a=Tr(e[0],"color-token").color,s=e[1];return{type:"enclose",mode:n.mode,label:i,backgroundColor:a,body:s}},htmlBuilder:mA,mathmlBuilder:gA});Mt({type:"enclose",names:["\\fcolorbox"],props:{numArgs:3,allowedInText:!0,argTypes:["color","color","text"]},handler(t,e,r){var{parser:n,funcName:i}=t,a=Tr(e[0],"color-token").color,s=Tr(e[1],"color-token").color,l=e[2];return{type:"enclose",mode:n.mode,label:i,backgroundColor:s,borderColor:a,body:l}},htmlBuilder:mA,mathmlBuilder:gA});Mt({type:"enclose",names:["\\fbox"],props:{numArgs:1,argTypes:["hbox"],allowedInText:!0},handler(t,e){var{parser:r}=t;return{type:"enclose",mode:r.mode,label:"\\fbox",body:e[0]}}});Mt({type:"enclose",names:["\\cancel","\\bcancel","\\xcancel","\\sout","\\phase"],props:{numArgs:1},handler(t,e){var{parser:r,funcName:n}=t,i=e[0];return{type:"enclose",mode:r.mode,label:n,body:i}},htmlBuilder:mA,mathmlBuilder:gA});Mt({type:"enclose",names:["\\angl"],props:{numArgs:1,argTypes:["hbox"],allowedInText:!1},handler(t,e){var{parser:r}=t;return{type:"enclose",mode:r.mode,label:"\\angl",body:e[0]}}});AU={};o(Jl,"defineEnvironment");_U={};o(ce,"defineMacro");o(NV,"getHLines");M3=o(t=>{var e=t.parser.settings;if(!e.displayMode)throw new gt("{"+t.envName+"} can be used only in display mode.")},"validateAmsEnvironmentContext");o(yA,"getAutoTag");o(wh,"parseArray");o(vA,"dCellStyle");ec=o(function(e,r){var n,i,a=e.body.length,s=e.hLinesBeforeRow,l=0,u=new Array(a),h=[],f=Math.max(r.fontMetrics().arrayRuleWidth,r.minRuleThickness),d=1/r.fontMetrics().ptPerEm,p=5*d;if(e.colSeparationType&&e.colSeparationType==="small"){var m=r.havingStyle(nr.SCRIPT).sizeMultiplier;p=.2778*(m/r.sizeMultiplier)}var g=e.colSeparationType==="CD"?ii({number:3,unit:"ex"},r):12*d,y=3*d,v=e.arraystretch*g,x=.7*v,b=.3*v,T=0;function S(W){for(var Ve=0;Ve0&&(T+=.25),h.push({pos:T,isDashed:W[Ve]})}for(o(S,"setHLinePos"),S(s[0]),n=0;n0&&(R+=b,CW))for(n=0;n=l)){var Q=void 0;(i>0||e.hskipBeforeAndAfter)&&(Q=er.deflt(U.pregap,p),Q!==0&&(O=$e.makeSpan(["arraycolsep"],[]),O.style.width=St(Q),D.push(O)));var ue=[];for(n=0;n0){for(var K=$e.makeLineSpan("hline",r,f),ae=$e.makeLineSpan("hdashline",r,f),Z=[{type:"elem",elem:u,shift:0}];h.length>0;){var de=h.pop(),ne=de.pos-E;de.isDashed?Z.push({type:"elem",elem:ae,shift:ne}):Z.push({type:"elem",elem:K,shift:ne})}u=$e.makeVList({positionType:"individualShift",children:Z},r)}if(P.length===0)return $e.makeSpan(["mord"],[u],r);var Te=$e.makeVList({positionType:"individualShift",children:P},r);return Te=$e.makeSpan(["tag"],[Te],r),$e.makeFragment([u,Te])},"htmlBuilder"),Swe={c:"center ",l:"left ",r:"right "},tc=o(function(e,r){for(var n=[],i=new mt.MathNode("mtd",[],["mtr-glue"]),a=new mt.MathNode("mtd",[],["mml-eqn-num"]),s=0;s0){var g=e.cols,y="",v=!1,x=0,b=g.length;g[0].type==="separator"&&(p+="top ",x=1),g[g.length-1].type==="separator"&&(p+="bottom ",b-=1);for(var T=x;T0?"left ":"",p+=A[A.length-1].length>0?"right ":"";for(var L=1;L-1?"alignat":"align",a=e.envName==="split",s=wh(e.parser,{cols:n,addJot:!0,autoTag:a?void 0:yA(e.envName),emptySingleRow:!0,colSeparationType:i,maxNumCols:a?2:void 0,leqno:e.parser.settings.leqno},"display"),l,u=0,h={type:"ordgroup",mode:e.mode,body:[]};if(r[0]&&r[0].type==="ordgroup"){for(var f="",d=0;d0&&m&&(v=1),n[g]={type:"align",align:y,pregap:v,postgap:0}}return s.colSeparationType=m?"align":"alignat",s},"alignedHandler");Jl({type:"array",names:["array","darray"],props:{numArgs:1},handler(t,e){var r=L3(e[0]),n=r?[e[0]]:Tr(e[0],"ordgroup").body,i=n.map(function(s){var l=fA(s),u=l.text;if("lcr".indexOf(u)!==-1)return{type:"align",align:u};if(u==="|")return{type:"separator",separator:"|"};if(u===":")return{type:"separator",separator:":"};throw new gt("Unknown column alignment: "+u,s)}),a={cols:i,hskipBeforeAndAfter:!0,maxNumCols:i.length};return wh(t.parser,a,vA(t.envName))},htmlBuilder:ec,mathmlBuilder:tc});Jl({type:"array",names:["matrix","pmatrix","bmatrix","Bmatrix","vmatrix","Vmatrix","matrix*","pmatrix*","bmatrix*","Bmatrix*","vmatrix*","Vmatrix*"],props:{numArgs:0},handler(t){var e={matrix:null,pmatrix:["(",")"],bmatrix:["[","]"],Bmatrix:["\\{","\\}"],vmatrix:["|","|"],Vmatrix:["\\Vert","\\Vert"]}[t.envName.replace("*","")],r="c",n={hskipBeforeAndAfter:!1,cols:[{type:"align",align:r}]};if(t.envName.charAt(t.envName.length-1)==="*"){var i=t.parser;if(i.consumeSpaces(),i.fetch().text==="["){if(i.consume(),i.consumeSpaces(),r=i.fetch().text,"lcr".indexOf(r)===-1)throw new gt("Expected l or c or r",i.nextToken);i.consume(),i.consumeSpaces(),i.expect("]"),i.consume(),n.cols=[{type:"align",align:r}]}}var a=wh(t.parser,n,vA(t.envName)),s=Math.max(0,...a.body.map(l=>l.length));return a.cols=new Array(s).fill({type:"align",align:r}),e?{type:"leftright",mode:t.mode,body:[a],left:e[0],right:e[1],rightColor:void 0}:a},htmlBuilder:ec,mathmlBuilder:tc});Jl({type:"array",names:["smallmatrix"],props:{numArgs:0},handler(t){var e={arraystretch:.5},r=wh(t.parser,e,"script");return r.colSeparationType="small",r},htmlBuilder:ec,mathmlBuilder:tc});Jl({type:"array",names:["subarray"],props:{numArgs:1},handler(t,e){var r=L3(e[0]),n=r?[e[0]]:Tr(e[0],"ordgroup").body,i=n.map(function(s){var l=fA(s),u=l.text;if("lc".indexOf(u)!==-1)return{type:"align",align:u};throw new gt("Unknown column alignment: "+u,s)});if(i.length>1)throw new gt("{subarray} can contain only one column");var a={cols:i,hskipBeforeAndAfter:!1,arraystretch:.5};if(a=wh(t.parser,a,"script"),a.body.length>0&&a.body[0].length>1)throw new gt("{subarray} can contain only one column");return a},htmlBuilder:ec,mathmlBuilder:tc});Jl({type:"array",names:["cases","dcases","rcases","drcases"],props:{numArgs:0},handler(t){var e={arraystretch:1.2,cols:[{type:"align",align:"l",pregap:0,postgap:1},{type:"align",align:"l",pregap:0,postgap:0}]},r=wh(t.parser,e,vA(t.envName));return{type:"leftright",mode:t.mode,body:[r],left:t.envName.indexOf("r")>-1?".":"\\{",right:t.envName.indexOf("r")>-1?"\\}":".",rightColor:void 0}},htmlBuilder:ec,mathmlBuilder:tc});Jl({type:"array",names:["align","align*","aligned","split"],props:{numArgs:0},handler:DU,htmlBuilder:ec,mathmlBuilder:tc});Jl({type:"array",names:["gathered","gather","gather*"],props:{numArgs:0},handler(t){er.contains(["gather","gather*"],t.envName)&&M3(t);var e={cols:[{type:"align",align:"c"}],addJot:!0,colSeparationType:"gather",autoTag:yA(t.envName),emptySingleRow:!0,leqno:t.parser.settings.leqno};return wh(t.parser,e,"display")},htmlBuilder:ec,mathmlBuilder:tc});Jl({type:"array",names:["alignat","alignat*","alignedat"],props:{numArgs:1},handler:DU,htmlBuilder:ec,mathmlBuilder:tc});Jl({type:"array",names:["equation","equation*"],props:{numArgs:0},handler(t){M3(t);var e={autoTag:yA(t.envName),emptySingleRow:!0,singleRow:!0,maxNumCols:1,leqno:t.parser.settings.leqno};return wh(t.parser,e,"display")},htmlBuilder:ec,mathmlBuilder:tc});Jl({type:"array",names:["CD"],props:{numArgs:0},handler(t){return M3(t),hwe(t.parser)},htmlBuilder:ec,mathmlBuilder:tc});ce("\\nonumber","\\gdef\\@eqnsw{0}");ce("\\notag","\\nonumber");Mt({type:"text",names:["\\hline","\\hdashline"],props:{numArgs:0,allowedInText:!0,allowedInMath:!0},handler(t,e){throw new gt(t.funcName+" valid only within array environment")}});MV=AU;Mt({type:"environment",names:["\\begin","\\end"],props:{numArgs:1,argTypes:["text"]},handler(t,e){var{parser:r,funcName:n}=t,i=e[0];if(i.type!=="ordgroup")throw new gt("Invalid environment name",i);for(var a="",s=0;s{var r=t.font,n=e.withFont(r);return Hr(t.body,n)},"htmlBuilder$5"),RU=o((t,e)=>{var r=t.font,n=e.withFont(r);return wn(t.body,n)},"mathmlBuilder$4"),IV={"\\Bbb":"\\mathbb","\\bold":"\\mathbf","\\frak":"\\mathfrak","\\bm":"\\boldsymbol"};Mt({type:"font",names:["\\mathrm","\\mathit","\\mathbf","\\mathnormal","\\mathsfit","\\mathbb","\\mathcal","\\mathfrak","\\mathscr","\\mathsf","\\mathtt","\\Bbb","\\bold","\\frak"],props:{numArgs:1,allowedInArgument:!0},handler:o((t,e)=>{var{parser:r,funcName:n}=t,i=S3(e[0]),a=n;return a in IV&&(a=IV[a]),{type:"font",mode:r.mode,font:a.slice(1),body:i}},"handler"),htmlBuilder:LU,mathmlBuilder:RU});Mt({type:"mclass",names:["\\boldsymbol","\\bm"],props:{numArgs:1},handler:o((t,e)=>{var{parser:r}=t,n=e[0],i=er.isCharacterBox(n);return{type:"mclass",mode:r.mode,mclass:R3(n),body:[{type:"font",mode:r.mode,font:"boldsymbol",body:n}],isCharacterBox:i}},"handler")});Mt({type:"font",names:["\\rm","\\sf","\\tt","\\bf","\\it","\\cal"],props:{numArgs:0,allowedInText:!0},handler:o((t,e)=>{var{parser:r,funcName:n,breakOnTokenText:i}=t,{mode:a}=r,s=r.parseExpression(!0,i),l="math"+n.slice(1);return{type:"font",mode:a,font:l,body:{type:"ordgroup",mode:r.mode,body:s}}},"handler"),htmlBuilder:LU,mathmlBuilder:RU});NU=o((t,e)=>{var r=e;return t==="display"?r=r.id>=nr.SCRIPT.id?r.text():nr.DISPLAY:t==="text"&&r.size===nr.DISPLAY.size?r=nr.TEXT:t==="script"?r=nr.SCRIPT:t==="scriptscript"&&(r=nr.SCRIPTSCRIPT),r},"adjustStyle"),xA=o((t,e)=>{var r=NU(t.size,e.style),n=r.fracNum(),i=r.fracDen(),a;a=e.havingStyle(n);var s=Hr(t.numer,a,e);if(t.continued){var l=8.5/e.fontMetrics().ptPerEm,u=3.5/e.fontMetrics().ptPerEm;s.height=s.height0?g=3*p:g=7*p,y=e.fontMetrics().denom1):(d>0?(m=e.fontMetrics().num2,g=p):(m=e.fontMetrics().num3,g=3*p),y=e.fontMetrics().denom2);var v;if(f){var b=e.fontMetrics().axisHeight;m-s.depth-(b+.5*d){var r=new mt.MathNode("mfrac",[wn(t.numer,e),wn(t.denom,e)]);if(!t.hasBarLine)r.setAttribute("linethickness","0px");else if(t.barSize){var n=ii(t.barSize,e);r.setAttribute("linethickness",St(n))}var i=NU(t.size,e.style);if(i.size!==e.style.size){r=new mt.MathNode("mstyle",[r]);var a=i.size===nr.DISPLAY.size?"true":"false";r.setAttribute("displaystyle",a),r.setAttribute("scriptlevel","0")}if(t.leftDelim!=null||t.rightDelim!=null){var s=[];if(t.leftDelim!=null){var l=new mt.MathNode("mo",[new mt.TextNode(t.leftDelim.replace("\\",""))]);l.setAttribute("fence","true"),s.push(l)}if(s.push(r),t.rightDelim!=null){var u=new mt.MathNode("mo",[new mt.TextNode(t.rightDelim.replace("\\",""))]);u.setAttribute("fence","true"),s.push(u)}return uA(s)}return r},"mathmlBuilder$3");Mt({type:"genfrac",names:["\\dfrac","\\frac","\\tfrac","\\dbinom","\\binom","\\tbinom","\\\\atopfrac","\\\\bracefrac","\\\\brackfrac"],props:{numArgs:2,allowedInArgument:!0},handler:o((t,e)=>{var{parser:r,funcName:n}=t,i=e[0],a=e[1],s,l=null,u=null,h="auto";switch(n){case"\\dfrac":case"\\frac":case"\\tfrac":s=!0;break;case"\\\\atopfrac":s=!1;break;case"\\dbinom":case"\\binom":case"\\tbinom":s=!1,l="(",u=")";break;case"\\\\bracefrac":s=!1,l="\\{",u="\\}";break;case"\\\\brackfrac":s=!1,l="[",u="]";break;default:throw new Error("Unrecognized genfrac command")}switch(n){case"\\dfrac":case"\\dbinom":h="display";break;case"\\tfrac":case"\\tbinom":h="text";break}return{type:"genfrac",mode:r.mode,continued:!1,numer:i,denom:a,hasBarLine:s,leftDelim:l,rightDelim:u,size:h,barSize:null}},"handler"),htmlBuilder:xA,mathmlBuilder:bA});Mt({type:"genfrac",names:["\\cfrac"],props:{numArgs:2},handler:o((t,e)=>{var{parser:r,funcName:n}=t,i=e[0],a=e[1];return{type:"genfrac",mode:r.mode,continued:!0,numer:i,denom:a,hasBarLine:!0,leftDelim:null,rightDelim:null,size:"display",barSize:null}},"handler")});Mt({type:"infix",names:["\\over","\\choose","\\atop","\\brace","\\brack"],props:{numArgs:0,infix:!0},handler(t){var{parser:e,funcName:r,token:n}=t,i;switch(r){case"\\over":i="\\frac";break;case"\\choose":i="\\binom";break;case"\\atop":i="\\\\atopfrac";break;case"\\brace":i="\\\\bracefrac";break;case"\\brack":i="\\\\brackfrac";break;default:throw new Error("Unrecognized infix genfrac command")}return{type:"infix",mode:e.mode,replaceWith:i,token:n}}});OV=["display","text","script","scriptscript"],PV=o(function(e){var r=null;return e.length>0&&(r=e,r=r==="."?null:r),r},"delimFromValue");Mt({type:"genfrac",names:["\\genfrac"],props:{numArgs:6,allowedInArgument:!0,argTypes:["math","math","size","text","math","math"]},handler(t,e){var{parser:r}=t,n=e[4],i=e[5],a=S3(e[0]),s=a.type==="atom"&&a.family==="open"?PV(a.text):null,l=S3(e[1]),u=l.type==="atom"&&l.family==="close"?PV(l.text):null,h=Tr(e[2],"size"),f,d=null;h.isBlank?f=!0:(d=h.value,f=d.number>0);var p="auto",m=e[3];if(m.type==="ordgroup"){if(m.body.length>0){var g=Tr(m.body[0],"textord");p=OV[Number(g.text)]}}else m=Tr(m,"textord"),p=OV[Number(m.text)];return{type:"genfrac",mode:r.mode,numer:n,denom:i,continued:!1,hasBarLine:f,barSize:d,leftDelim:s,rightDelim:u,size:p}},htmlBuilder:xA,mathmlBuilder:bA});Mt({type:"infix",names:["\\above"],props:{numArgs:1,argTypes:["size"],infix:!0},handler(t,e){var{parser:r,funcName:n,token:i}=t;return{type:"infix",mode:r.mode,replaceWith:"\\\\abovefrac",size:Tr(e[0],"size").value,token:i}}});Mt({type:"genfrac",names:["\\\\abovefrac"],props:{numArgs:3,argTypes:["math","size","math"]},handler:o((t,e)=>{var{parser:r,funcName:n}=t,i=e[0],a=iTe(Tr(e[1],"infix").size),s=e[2],l=a.number>0;return{type:"genfrac",mode:r.mode,numer:i,denom:s,continued:!1,hasBarLine:l,barSize:a,leftDelim:null,rightDelim:null,size:"auto"}},"handler"),htmlBuilder:xA,mathmlBuilder:bA});MU=o((t,e)=>{var r=e.style,n,i;t.type==="supsub"?(n=t.sup?Hr(t.sup,e.havingStyle(r.sup()),e):Hr(t.sub,e.havingStyle(r.sub()),e),i=Tr(t.base,"horizBrace")):i=Tr(t,"horizBrace");var a=Hr(i.base,e.havingBaseStyle(nr.DISPLAY)),s=pu.svgSpan(i,e),l;if(i.isOver?(l=$e.makeVList({positionType:"firstBaseline",children:[{type:"elem",elem:a},{type:"kern",size:.1},{type:"elem",elem:s}]},e),l.children[0].children[0].children[1].classes.push("svg-align")):(l=$e.makeVList({positionType:"bottom",positionData:a.depth+.1+s.height,children:[{type:"elem",elem:s},{type:"kern",size:.1},{type:"elem",elem:a}]},e),l.children[0].children[0].children[0].classes.push("svg-align")),n){var u=$e.makeSpan(["mord",i.isOver?"mover":"munder"],[l],e);i.isOver?l=$e.makeVList({positionType:"firstBaseline",children:[{type:"elem",elem:u},{type:"kern",size:.2},{type:"elem",elem:n}]},e):l=$e.makeVList({positionType:"bottom",positionData:u.depth+.2+n.height+n.depth,children:[{type:"elem",elem:n},{type:"kern",size:.2},{type:"elem",elem:u}]},e)}return $e.makeSpan(["mord",i.isOver?"mover":"munder"],[l],e)},"htmlBuilder$3"),Cwe=o((t,e)=>{var r=pu.mathMLnode(t.label);return new mt.MathNode(t.isOver?"mover":"munder",[wn(t.base,e),r])},"mathmlBuilder$2");Mt({type:"horizBrace",names:["\\overbrace","\\underbrace"],props:{numArgs:1},handler(t,e){var{parser:r,funcName:n}=t;return{type:"horizBrace",mode:r.mode,label:n,isOver:/^\\over/.test(n),base:e[0]}},htmlBuilder:MU,mathmlBuilder:Cwe});Mt({type:"href",names:["\\href"],props:{numArgs:2,argTypes:["url","original"],allowedInText:!0},handler:o((t,e)=>{var{parser:r}=t,n=e[1],i=Tr(e[0],"url").url;return r.settings.isTrusted({command:"\\href",url:i})?{type:"href",mode:r.mode,href:i,body:gi(n)}:r.formatUnsupportedCmd("\\href")},"handler"),htmlBuilder:o((t,e)=>{var r=Ii(t.body,e,!1);return $e.makeAnchor(t.href,[],r,e)},"htmlBuilder"),mathmlBuilder:o((t,e)=>{var r=Th(t.body,e);return r instanceof es||(r=new es("mrow",[r])),r.setAttribute("href",t.href),r},"mathmlBuilder")});Mt({type:"href",names:["\\url"],props:{numArgs:1,argTypes:["url"],allowedInText:!0},handler:o((t,e)=>{var{parser:r}=t,n=Tr(e[0],"url").url;if(!r.settings.isTrusted({command:"\\url",url:n}))return r.formatUnsupportedCmd("\\url");for(var i=[],a=0;a{var{parser:r,funcName:n,token:i}=t,a=Tr(e[0],"raw").string,s=e[1];r.settings.strict&&r.settings.reportNonstrict("htmlExtension","HTML extension is disabled on strict mode");var l,u={};switch(n){case"\\htmlClass":u.class=a,l={command:"\\htmlClass",class:a};break;case"\\htmlId":u.id=a,l={command:"\\htmlId",id:a};break;case"\\htmlStyle":u.style=a,l={command:"\\htmlStyle",style:a};break;case"\\htmlData":{for(var h=a.split(","),f=0;f{var r=Ii(t.body,e,!1),n=["enclosing"];t.attributes.class&&n.push(...t.attributes.class.trim().split(/\s+/));var i=$e.makeSpan(n,r,e);for(var a in t.attributes)a!=="class"&&t.attributes.hasOwnProperty(a)&&i.setAttribute(a,t.attributes[a]);return i},"htmlBuilder"),mathmlBuilder:o((t,e)=>Th(t.body,e),"mathmlBuilder")});Mt({type:"htmlmathml",names:["\\html@mathml"],props:{numArgs:2,allowedInText:!0},handler:o((t,e)=>{var{parser:r}=t;return{type:"htmlmathml",mode:r.mode,html:gi(e[0]),mathml:gi(e[1])}},"handler"),htmlBuilder:o((t,e)=>{var r=Ii(t.html,e,!1);return $e.makeFragment(r)},"htmlBuilder"),mathmlBuilder:o((t,e)=>Th(t.mathml,e),"mathmlBuilder")});q7=o(function(e){if(/^[-+]? *(\d+(\.\d*)?|\.\d+)$/.test(e))return{number:+e,unit:"bp"};var r=/([-+]?) *(\d+(?:\.\d*)?|\.\d+) *([a-z]{2})/.exec(e);if(!r)throw new gt("Invalid size: '"+e+"' in \\includegraphics");var n={number:+(r[1]+r[2]),unit:r[3]};if(!ZV(n))throw new gt("Invalid unit: '"+n.unit+"' in \\includegraphics.");return n},"sizeData");Mt({type:"includegraphics",names:["\\includegraphics"],props:{numArgs:1,numOptionalArgs:1,argTypes:["raw","url"],allowedInText:!1},handler:o((t,e,r)=>{var{parser:n}=t,i={number:0,unit:"em"},a={number:.9,unit:"em"},s={number:0,unit:"em"},l="";if(r[0])for(var u=Tr(r[0],"raw").string,h=u.split(","),f=0;f{var r=ii(t.height,e),n=0;t.totalheight.number>0&&(n=ii(t.totalheight,e)-r);var i=0;t.width.number>0&&(i=ii(t.width,e));var a={height:St(r+n)};i>0&&(a.width=St(i)),n>0&&(a.verticalAlign=St(-n));var s=new Q7(t.src,t.alt,a);return s.height=r,s.depth=n,s},"htmlBuilder"),mathmlBuilder:o((t,e)=>{var r=new mt.MathNode("mglyph",[]);r.setAttribute("alt",t.alt);var n=ii(t.height,e),i=0;if(t.totalheight.number>0&&(i=ii(t.totalheight,e)-n,r.setAttribute("valign",St(-i))),r.setAttribute("height",St(n+i)),t.width.number>0){var a=ii(t.width,e);r.setAttribute("width",St(a))}return r.setAttribute("src",t.src),r},"mathmlBuilder")});Mt({type:"kern",names:["\\kern","\\mkern","\\hskip","\\mskip"],props:{numArgs:1,argTypes:["size"],primitive:!0,allowedInText:!0},handler(t,e){var{parser:r,funcName:n}=t,i=Tr(e[0],"size");if(r.settings.strict){var a=n[1]==="m",s=i.value.unit==="mu";a?(s||r.settings.reportNonstrict("mathVsTextUnits","LaTeX's "+n+" supports only mu units, "+("not "+i.value.unit+" units")),r.mode!=="math"&&r.settings.reportNonstrict("mathVsTextUnits","LaTeX's "+n+" works only in math mode")):s&&r.settings.reportNonstrict("mathVsTextUnits","LaTeX's "+n+" doesn't support mu units")}return{type:"kern",mode:r.mode,dimension:i.value}},htmlBuilder(t,e){return $e.makeGlue(t.dimension,e)},mathmlBuilder(t,e){var r=ii(t.dimension,e);return new mt.SpaceNode(r)}});Mt({type:"lap",names:["\\mathllap","\\mathrlap","\\mathclap"],props:{numArgs:1,allowedInText:!0},handler:o((t,e)=>{var{parser:r,funcName:n}=t,i=e[0];return{type:"lap",mode:r.mode,alignment:n.slice(5),body:i}},"handler"),htmlBuilder:o((t,e)=>{var r;t.alignment==="clap"?(r=$e.makeSpan([],[Hr(t.body,e)]),r=$e.makeSpan(["inner"],[r],e)):r=$e.makeSpan(["inner"],[Hr(t.body,e)]);var n=$e.makeSpan(["fix"],[]),i=$e.makeSpan([t.alignment],[r,n],e),a=$e.makeSpan(["strut"]);return a.style.height=St(i.height+i.depth),i.depth&&(a.style.verticalAlign=St(-i.depth)),i.children.unshift(a),i=$e.makeSpan(["thinbox"],[i],e),$e.makeSpan(["mord","vbox"],[i],e)},"htmlBuilder"),mathmlBuilder:o((t,e)=>{var r=new mt.MathNode("mpadded",[wn(t.body,e)]);if(t.alignment!=="rlap"){var n=t.alignment==="llap"?"-1":"-0.5";r.setAttribute("lspace",n+"width")}return r.setAttribute("width","0px"),r},"mathmlBuilder")});Mt({type:"styling",names:["\\(","$"],props:{numArgs:0,allowedInText:!0,allowedInMath:!1},handler(t,e){var{funcName:r,parser:n}=t,i=n.mode;n.switchMode("math");var a=r==="\\("?"\\)":"$",s=n.parseExpression(!1,a);return n.expect(a),n.switchMode(i),{type:"styling",mode:n.mode,style:"text",body:s}}});Mt({type:"text",names:["\\)","\\]"],props:{numArgs:0,allowedInText:!0,allowedInMath:!1},handler(t,e){throw new gt("Mismatched "+t.funcName)}});BV=o((t,e)=>{switch(e.style.size){case nr.DISPLAY.size:return t.display;case nr.TEXT.size:return t.text;case nr.SCRIPT.size:return t.script;case nr.SCRIPTSCRIPT.size:return t.scriptscript;default:return t.text}},"chooseMathStyle");Mt({type:"mathchoice",names:["\\mathchoice"],props:{numArgs:4,primitive:!0},handler:o((t,e)=>{var{parser:r}=t;return{type:"mathchoice",mode:r.mode,display:gi(e[0]),text:gi(e[1]),script:gi(e[2]),scriptscript:gi(e[3])}},"handler"),htmlBuilder:o((t,e)=>{var r=BV(t,e),n=Ii(r,e,!1);return $e.makeFragment(n)},"htmlBuilder"),mathmlBuilder:o((t,e)=>{var r=BV(t,e);return Th(r,e)},"mathmlBuilder")});IU=o((t,e,r,n,i,a,s)=>{t=$e.makeSpan([],[t]);var l=r&&er.isCharacterBox(r),u,h;if(e){var f=Hr(e,n.havingStyle(i.sup()),n);h={elem:f,kern:Math.max(n.fontMetrics().bigOpSpacing1,n.fontMetrics().bigOpSpacing3-f.depth)}}if(r){var d=Hr(r,n.havingStyle(i.sub()),n);u={elem:d,kern:Math.max(n.fontMetrics().bigOpSpacing2,n.fontMetrics().bigOpSpacing4-d.height)}}var p;if(h&&u){var m=n.fontMetrics().bigOpSpacing5+u.elem.height+u.elem.depth+u.kern+t.depth+s;p=$e.makeVList({positionType:"bottom",positionData:m,children:[{type:"kern",size:n.fontMetrics().bigOpSpacing5},{type:"elem",elem:u.elem,marginLeft:St(-a)},{type:"kern",size:u.kern},{type:"elem",elem:t},{type:"kern",size:h.kern},{type:"elem",elem:h.elem,marginLeft:St(a)},{type:"kern",size:n.fontMetrics().bigOpSpacing5}]},n)}else if(u){var g=t.height-s;p=$e.makeVList({positionType:"top",positionData:g,children:[{type:"kern",size:n.fontMetrics().bigOpSpacing5},{type:"elem",elem:u.elem,marginLeft:St(-a)},{type:"kern",size:u.kern},{type:"elem",elem:t}]},n)}else if(h){var y=t.depth+s;p=$e.makeVList({positionType:"bottom",positionData:y,children:[{type:"elem",elem:t},{type:"kern",size:h.kern},{type:"elem",elem:h.elem,marginLeft:St(a)},{type:"kern",size:n.fontMetrics().bigOpSpacing5}]},n)}else return t;var v=[p];if(u&&a!==0&&!l){var x=$e.makeSpan(["mspace"],[],n);x.style.marginRight=St(a),v.unshift(x)}return $e.makeSpan(["mop","op-limits"],v,n)},"assembleSupSub"),OU=["\\smallint"],C0=o((t,e)=>{var r,n,i=!1,a;t.type==="supsub"?(r=t.sup,n=t.sub,a=Tr(t.base,"op"),i=!0):a=Tr(t,"op");var s=e.style,l=!1;s.size===nr.DISPLAY.size&&a.symbol&&!er.contains(OU,a.name)&&(l=!0);var u;if(a.symbol){var h=l?"Size2-Regular":"Size1-Regular",f="";if((a.name==="\\oiint"||a.name==="\\oiiint")&&(f=a.name.slice(1),a.name=f==="oiint"?"\\iint":"\\iiint"),u=$e.makeSymbol(a.name,h,"math",e,["mop","op-symbol",l?"large-op":"small-op"]),f.length>0){var d=u.italic,p=$e.staticSvg(f+"Size"+(l?"2":"1"),e);u=$e.makeVList({positionType:"individualShift",children:[{type:"elem",elem:u,shift:0},{type:"elem",elem:p,shift:l?.08:0}]},e),a.name="\\"+f,u.classes.unshift("mop"),u.italic=d}}else if(a.body){var m=Ii(a.body,e,!0);m.length===1&&m[0]instanceof Cs?(u=m[0],u.classes[0]="mop"):u=$e.makeSpan(["mop"],m,e)}else{for(var g=[],y=1;y{var r;if(t.symbol)r=new es("mo",[Lo(t.name,t.mode)]),er.contains(OU,t.name)&&r.setAttribute("largeop","false");else if(t.body)r=new es("mo",As(t.body,e));else{r=new es("mi",[new _o(t.name.slice(1))]);var n=new es("mo",[Lo("\u2061","text")]);t.parentIsSupSub?r=new es("mrow",[r,n]):r=cU([r,n])}return r},"mathmlBuilder$1"),Awe={"\u220F":"\\prod","\u2210":"\\coprod","\u2211":"\\sum","\u22C0":"\\bigwedge","\u22C1":"\\bigvee","\u22C2":"\\bigcap","\u22C3":"\\bigcup","\u2A00":"\\bigodot","\u2A01":"\\bigoplus","\u2A02":"\\bigotimes","\u2A04":"\\biguplus","\u2A06":"\\bigsqcup"};Mt({type:"op",names:["\\coprod","\\bigvee","\\bigwedge","\\biguplus","\\bigcap","\\bigcup","\\intop","\\prod","\\sum","\\bigotimes","\\bigoplus","\\bigodot","\\bigsqcup","\\smallint","\u220F","\u2210","\u2211","\u22C0","\u22C1","\u22C2","\u22C3","\u2A00","\u2A01","\u2A02","\u2A04","\u2A06"],props:{numArgs:0},handler:o((t,e)=>{var{parser:r,funcName:n}=t,i=n;return i.length===1&&(i=Awe[i]),{type:"op",mode:r.mode,limits:!0,parentIsSupSub:!1,symbol:!0,name:i}},"handler"),htmlBuilder:C0,mathmlBuilder:ev});Mt({type:"op",names:["\\mathop"],props:{numArgs:1,primitive:!0},handler:o((t,e)=>{var{parser:r}=t,n=e[0];return{type:"op",mode:r.mode,limits:!1,parentIsSupSub:!1,symbol:!1,body:gi(n)}},"handler"),htmlBuilder:C0,mathmlBuilder:ev});_we={"\u222B":"\\int","\u222C":"\\iint","\u222D":"\\iiint","\u222E":"\\oint","\u222F":"\\oiint","\u2230":"\\oiiint"};Mt({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(t){var{parser:e,funcName:r}=t;return{type:"op",mode:e.mode,limits:!1,parentIsSupSub:!1,symbol:!1,name:r}},htmlBuilder:C0,mathmlBuilder:ev});Mt({type:"op",names:["\\det","\\gcd","\\inf","\\lim","\\max","\\min","\\Pr","\\sup"],props:{numArgs:0},handler(t){var{parser:e,funcName:r}=t;return{type:"op",mode:e.mode,limits:!0,parentIsSupSub:!1,symbol:!1,name:r}},htmlBuilder:C0,mathmlBuilder:ev});Mt({type:"op",names:["\\int","\\iint","\\iiint","\\oint","\\oiint","\\oiiint","\u222B","\u222C","\u222D","\u222E","\u222F","\u2230"],props:{numArgs:0},handler(t){var{parser:e,funcName:r}=t,n=r;return n.length===1&&(n=_we[n]),{type:"op",mode:e.mode,limits:!1,parentIsSupSub:!1,symbol:!0,name:n}},htmlBuilder:C0,mathmlBuilder:ev});PU=o((t,e)=>{var r,n,i=!1,a;t.type==="supsub"?(r=t.sup,n=t.sub,a=Tr(t.base,"operatorname"),i=!0):a=Tr(t,"operatorname");var s;if(a.body.length>0){for(var l=a.body.map(d=>{var p=d.text;return typeof p=="string"?{type:"textord",mode:d.mode,text:p}:d}),u=Ii(l,e.withFont("mathrm"),!0),h=0;h{for(var r=As(t.body,e.withFont("mathrm")),n=!0,i=0;if.toText()).join("");r=[new mt.TextNode(l)]}var u=new mt.MathNode("mi",r);u.setAttribute("mathvariant","normal");var h=new mt.MathNode("mo",[Lo("\u2061","text")]);return t.parentIsSupSub?new mt.MathNode("mrow",[u,h]):mt.newDocumentFragment([u,h])},"mathmlBuilder");Mt({type:"operatorname",names:["\\operatorname@","\\operatornamewithlimits"],props:{numArgs:1},handler:o((t,e)=>{var{parser:r,funcName:n}=t,i=e[0];return{type:"operatorname",mode:r.mode,body:gi(i),alwaysHandleSupSub:n==="\\operatornamewithlimits",limits:!1,parentIsSupSub:!1}},"handler"),htmlBuilder:PU,mathmlBuilder:Dwe});ce("\\operatorname","\\@ifstar\\operatornamewithlimits\\operatorname@");dd({type:"ordgroup",htmlBuilder(t,e){return t.semisimple?$e.makeFragment(Ii(t.body,e,!1)):$e.makeSpan(["mord"],Ii(t.body,e,!0),e)},mathmlBuilder(t,e){return Th(t.body,e,!0)}});Mt({type:"overline",names:["\\overline"],props:{numArgs:1},handler(t,e){var{parser:r}=t,n=e[0];return{type:"overline",mode:r.mode,body:n}},htmlBuilder(t,e){var r=Hr(t.body,e.havingCrampedStyle()),n=$e.makeLineSpan("overline-line",e),i=e.fontMetrics().defaultRuleThickness,a=$e.makeVList({positionType:"firstBaseline",children:[{type:"elem",elem:r},{type:"kern",size:3*i},{type:"elem",elem:n},{type:"kern",size:i}]},e);return $e.makeSpan(["mord","overline"],[a],e)},mathmlBuilder(t,e){var r=new mt.MathNode("mo",[new mt.TextNode("\u203E")]);r.setAttribute("stretchy","true");var n=new mt.MathNode("mover",[wn(t.body,e),r]);return n.setAttribute("accent","true"),n}});Mt({type:"phantom",names:["\\phantom"],props:{numArgs:1,allowedInText:!0},handler:o((t,e)=>{var{parser:r}=t,n=e[0];return{type:"phantom",mode:r.mode,body:gi(n)}},"handler"),htmlBuilder:o((t,e)=>{var r=Ii(t.body,e.withPhantom(),!1);return $e.makeFragment(r)},"htmlBuilder"),mathmlBuilder:o((t,e)=>{var r=As(t.body,e);return new mt.MathNode("mphantom",r)},"mathmlBuilder")});Mt({type:"hphantom",names:["\\hphantom"],props:{numArgs:1,allowedInText:!0},handler:o((t,e)=>{var{parser:r}=t,n=e[0];return{type:"hphantom",mode:r.mode,body:n}},"handler"),htmlBuilder:o((t,e)=>{var r=$e.makeSpan([],[Hr(t.body,e.withPhantom())]);if(r.height=0,r.depth=0,r.children)for(var n=0;n{var r=As(gi(t.body),e),n=new mt.MathNode("mphantom",r),i=new mt.MathNode("mpadded",[n]);return i.setAttribute("height","0px"),i.setAttribute("depth","0px"),i},"mathmlBuilder")});Mt({type:"vphantom",names:["\\vphantom"],props:{numArgs:1,allowedInText:!0},handler:o((t,e)=>{var{parser:r}=t,n=e[0];return{type:"vphantom",mode:r.mode,body:n}},"handler"),htmlBuilder:o((t,e)=>{var r=$e.makeSpan(["inner"],[Hr(t.body,e.withPhantom())]),n=$e.makeSpan(["fix"],[]);return $e.makeSpan(["mord","rlap"],[r,n],e)},"htmlBuilder"),mathmlBuilder:o((t,e)=>{var r=As(gi(t.body),e),n=new mt.MathNode("mphantom",r),i=new mt.MathNode("mpadded",[n]);return i.setAttribute("width","0px"),i},"mathmlBuilder")});Mt({type:"raisebox",names:["\\raisebox"],props:{numArgs:2,argTypes:["size","hbox"],allowedInText:!0},handler(t,e){var{parser:r}=t,n=Tr(e[0],"size").value,i=e[1];return{type:"raisebox",mode:r.mode,dy:n,body:i}},htmlBuilder(t,e){var r=Hr(t.body,e),n=ii(t.dy,e);return $e.makeVList({positionType:"shift",positionData:-n,children:[{type:"elem",elem:r}]},e)},mathmlBuilder(t,e){var r=new mt.MathNode("mpadded",[wn(t.body,e)]),n=t.dy.number+t.dy.unit;return r.setAttribute("voffset",n),r}});Mt({type:"internal",names:["\\relax"],props:{numArgs:0,allowedInText:!0,allowedInArgument:!0},handler(t){var{parser:e}=t;return{type:"internal",mode:e.mode}}});Mt({type:"rule",names:["\\rule"],props:{numArgs:2,numOptionalArgs:1,allowedInText:!0,allowedInMath:!0,argTypes:["size","size","size"]},handler(t,e,r){var{parser:n}=t,i=r[0],a=Tr(e[0],"size"),s=Tr(e[1],"size");return{type:"rule",mode:n.mode,shift:i&&Tr(i,"size").value,width:a.value,height:s.value}},htmlBuilder(t,e){var r=$e.makeSpan(["mord","rule"],[],e),n=ii(t.width,e),i=ii(t.height,e),a=t.shift?ii(t.shift,e):0;return r.style.borderRightWidth=St(n),r.style.borderTopWidth=St(i),r.style.bottom=St(a),r.width=n,r.height=i+a,r.depth=-a,r.maxFontSize=i*1.125*e.sizeMultiplier,r},mathmlBuilder(t,e){var r=ii(t.width,e),n=ii(t.height,e),i=t.shift?ii(t.shift,e):0,a=e.color&&e.getColor()||"black",s=new mt.MathNode("mspace");s.setAttribute("mathbackground",a),s.setAttribute("width",St(r)),s.setAttribute("height",St(n));var l=new mt.MathNode("mpadded",[s]);return i>=0?l.setAttribute("height",St(i)):(l.setAttribute("height",St(i)),l.setAttribute("depth",St(-i))),l.setAttribute("voffset",St(i)),l}});o(BU,"sizingGroup");FV=["\\tiny","\\sixptsize","\\scriptsize","\\footnotesize","\\small","\\normalsize","\\large","\\Large","\\LARGE","\\huge","\\Huge"],Lwe=o((t,e)=>{var r=e.havingSize(t.size);return BU(t.body,r,e)},"htmlBuilder");Mt({type:"sizing",names:FV,props:{numArgs:0,allowedInText:!0},handler:o((t,e)=>{var{breakOnTokenText:r,funcName:n,parser:i}=t,a=i.parseExpression(!1,r);return{type:"sizing",mode:i.mode,size:FV.indexOf(n)+1,body:a}},"handler"),htmlBuilder:Lwe,mathmlBuilder:o((t,e)=>{var r=e.havingSize(t.size),n=As(t.body,r),i=new mt.MathNode("mstyle",n);return i.setAttribute("mathsize",St(r.sizeMultiplier)),i},"mathmlBuilder")});Mt({type:"smash",names:["\\smash"],props:{numArgs:1,numOptionalArgs:1,allowedInText:!0},handler:o((t,e,r)=>{var{parser:n}=t,i=!1,a=!1,s=r[0]&&Tr(r[0],"ordgroup");if(s)for(var l="",u=0;u{var r=$e.makeSpan([],[Hr(t.body,e)]);if(!t.smashHeight&&!t.smashDepth)return r;if(t.smashHeight&&(r.height=0,r.children))for(var n=0;n{var r=new mt.MathNode("mpadded",[wn(t.body,e)]);return t.smashHeight&&r.setAttribute("height","0px"),t.smashDepth&&r.setAttribute("depth","0px"),r},"mathmlBuilder")});Mt({type:"sqrt",names:["\\sqrt"],props:{numArgs:1,numOptionalArgs:1},handler(t,e,r){var{parser:n}=t,i=r[0],a=e[0];return{type:"sqrt",mode:n.mode,body:a,index:i}},htmlBuilder(t,e){var r=Hr(t.body,e.havingCrampedStyle());r.height===0&&(r.height=e.fontMetrics().xHeight),r=$e.wrapFragment(r,e);var n=e.fontMetrics(),i=n.defaultRuleThickness,a=i;e.style.idr.height+r.depth+s&&(s=(s+d-r.height-r.depth)/2);var p=u.height-r.height-s-h;r.style.paddingLeft=St(f);var m=$e.makeVList({positionType:"firstBaseline",children:[{type:"elem",elem:r,wrapperClasses:["svg-align"]},{type:"kern",size:-(r.height+p)},{type:"elem",elem:u},{type:"kern",size:h}]},e);if(t.index){var g=e.havingStyle(nr.SCRIPTSCRIPT),y=Hr(t.index,g,e),v=.6*(m.height-m.depth),x=$e.makeVList({positionType:"shift",positionData:-v,children:[{type:"elem",elem:y}]},e),b=$e.makeSpan(["root"],[x]);return $e.makeSpan(["mord","sqrt"],[b,m],e)}else return $e.makeSpan(["mord","sqrt"],[m],e)},mathmlBuilder(t,e){var{body:r,index:n}=t;return n?new mt.MathNode("mroot",[wn(r,e),wn(n,e)]):new mt.MathNode("msqrt",[wn(r,e)])}});$V={display:nr.DISPLAY,text:nr.TEXT,script:nr.SCRIPT,scriptscript:nr.SCRIPTSCRIPT};Mt({type:"styling",names:["\\displaystyle","\\textstyle","\\scriptstyle","\\scriptscriptstyle"],props:{numArgs:0,allowedInText:!0,primitive:!0},handler(t,e){var{breakOnTokenText:r,funcName:n,parser:i}=t,a=i.parseExpression(!0,r),s=n.slice(1,n.length-5);return{type:"styling",mode:i.mode,style:s,body:a}},htmlBuilder(t,e){var r=$V[t.style],n=e.havingStyle(r).withFont("");return BU(t.body,n,e)},mathmlBuilder(t,e){var r=$V[t.style],n=e.havingStyle(r),i=As(t.body,n),a=new mt.MathNode("mstyle",i),s={display:["0","true"],text:["0","false"],script:["1","false"],scriptscript:["2","false"]},l=s[t.style];return a.setAttribute("scriptlevel",l[0]),a.setAttribute("displaystyle",l[1]),a}});Rwe=o(function(e,r){var n=e.base;if(n)if(n.type==="op"){var i=n.limits&&(r.style.size===nr.DISPLAY.size||n.alwaysHandleSupSub);return i?C0:null}else if(n.type==="operatorname"){var a=n.alwaysHandleSupSub&&(r.style.size===nr.DISPLAY.size||n.limits);return a?PU:null}else{if(n.type==="accent")return er.isCharacterBox(n.base)?dA:null;if(n.type==="horizBrace"){var s=!e.sub;return s===n.isOver?MU:null}else return null}else return null},"htmlBuilderDelegate");dd({type:"supsub",htmlBuilder(t,e){var r=Rwe(t,e);if(r)return r(t,e);var{base:n,sup:i,sub:a}=t,s=Hr(n,e),l,u,h=e.fontMetrics(),f=0,d=0,p=n&&er.isCharacterBox(n);if(i){var m=e.havingStyle(e.style.sup());l=Hr(i,m,e),p||(f=s.height-m.fontMetrics().supDrop*m.sizeMultiplier/e.sizeMultiplier)}if(a){var g=e.havingStyle(e.style.sub());u=Hr(a,g,e),p||(d=s.depth+g.fontMetrics().subDrop*g.sizeMultiplier/e.sizeMultiplier)}var y;e.style===nr.DISPLAY?y=h.sup1:e.style.cramped?y=h.sup3:y=h.sup2;var v=e.sizeMultiplier,x=St(.5/h.ptPerEm/v),b=null;if(u){var T=t.base&&t.base.type==="op"&&t.base.name&&(t.base.name==="\\oiint"||t.base.name==="\\oiiint");(s instanceof Cs||T)&&(b=St(-s.italic))}var S;if(l&&u){f=Math.max(f,y,l.depth+.25*h.xHeight),d=Math.max(d,h.sub2);var w=h.defaultRuleThickness,k=4*w;if(f-l.depth-(u.height-d)0&&(f+=C,d-=C)}var A=[{type:"elem",elem:u,shift:d,marginRight:x,marginLeft:b},{type:"elem",elem:l,shift:-f,marginRight:x}];S=$e.makeVList({positionType:"individualShift",children:A},e)}else if(u){d=Math.max(d,h.sub1,u.height-.8*h.xHeight);var L=[{type:"elem",elem:u,marginLeft:b,marginRight:x}];S=$e.makeVList({positionType:"shift",positionData:d,children:L},e)}else if(l)f=Math.max(f,y,l.depth+.25*h.xHeight),S=$e.makeVList({positionType:"shift",positionData:-f,children:[{type:"elem",elem:l,marginRight:x}]},e);else throw new Error("supsub must have either sup or sub.");var I=J7(s,"right")||"mord";return $e.makeSpan([I],[s,$e.makeSpan(["msupsub"],[S])],e)},mathmlBuilder(t,e){var r=!1,n,i;t.base&&t.base.type==="horizBrace"&&(i=!!t.sup,i===t.base.isOver&&(r=!0,n=t.base.isOver)),t.base&&(t.base.type==="op"||t.base.type==="operatorname")&&(t.base.parentIsSupSub=!0);var a=[wn(t.base,e)];t.sub&&a.push(wn(t.sub,e)),t.sup&&a.push(wn(t.sup,e));var s;if(r)s=n?"mover":"munder";else if(t.sub)if(t.sup){var h=t.base;h&&h.type==="op"&&h.limits&&e.style===nr.DISPLAY||h&&h.type==="operatorname"&&h.alwaysHandleSupSub&&(e.style===nr.DISPLAY||h.limits)?s="munderover":s="msubsup"}else{var u=t.base;u&&u.type==="op"&&u.limits&&(e.style===nr.DISPLAY||u.alwaysHandleSupSub)||u&&u.type==="operatorname"&&u.alwaysHandleSupSub&&(u.limits||e.style===nr.DISPLAY)?s="munder":s="msub"}else{var l=t.base;l&&l.type==="op"&&l.limits&&(e.style===nr.DISPLAY||l.alwaysHandleSupSub)||l&&l.type==="operatorname"&&l.alwaysHandleSupSub&&(l.limits||e.style===nr.DISPLAY)?s="mover":s="msup"}return new mt.MathNode(s,a)}});dd({type:"atom",htmlBuilder(t,e){return $e.mathsym(t.text,t.mode,e,["m"+t.family])},mathmlBuilder(t,e){var r=new mt.MathNode("mo",[Lo(t.text,t.mode)]);if(t.family==="bin"){var n=hA(t,e);n==="bold-italic"&&r.setAttribute("mathvariant",n)}else t.family==="punct"?r.setAttribute("separator","true"):(t.family==="open"||t.family==="close")&&r.setAttribute("stretchy","false");return r}});FU={mi:"italic",mn:"normal",mtext:"normal"};dd({type:"mathord",htmlBuilder(t,e){return $e.makeOrd(t,e,"mathord")},mathmlBuilder(t,e){var r=new mt.MathNode("mi",[Lo(t.text,t.mode,e)]),n=hA(t,e)||"italic";return n!==FU[r.type]&&r.setAttribute("mathvariant",n),r}});dd({type:"textord",htmlBuilder(t,e){return $e.makeOrd(t,e,"textord")},mathmlBuilder(t,e){var r=Lo(t.text,t.mode,e),n=hA(t,e)||"normal",i;return t.mode==="text"?i=new mt.MathNode("mtext",[r]):/[0-9]/.test(t.text)?i=new mt.MathNode("mn",[r]):t.text==="\\prime"?i=new mt.MathNode("mo",[r]):i=new mt.MathNode("mi",[r]),n!==FU[i.type]&&i.setAttribute("mathvariant",n),i}});W7={"\\nobreak":"nobreak","\\allowbreak":"allowbreak"},Y7={" ":{},"\\ ":{},"~":{className:"nobreak"},"\\space":{},"\\nobreakspace":{className:"nobreak"}};dd({type:"spacing",htmlBuilder(t,e){if(Y7.hasOwnProperty(t.text)){var r=Y7[t.text].className||"";if(t.mode==="text"){var n=$e.makeOrd(t,e,"textord");return n.classes.push(r),n}else return $e.makeSpan(["mspace",r],[$e.mathsym(t.text,t.mode,e)],e)}else{if(W7.hasOwnProperty(t.text))return $e.makeSpan(["mspace",W7[t.text]],[],e);throw new gt('Unknown type of space "'+t.text+'"')}},mathmlBuilder(t,e){var r;if(Y7.hasOwnProperty(t.text))r=new mt.MathNode("mtext",[new mt.TextNode("\xA0")]);else{if(W7.hasOwnProperty(t.text))return new mt.MathNode("mspace");throw new gt('Unknown type of space "'+t.text+'"')}return r}});zV=o(()=>{var t=new mt.MathNode("mtd",[]);return t.setAttribute("width","50%"),t},"pad");dd({type:"tag",mathmlBuilder(t,e){var r=new mt.MathNode("mtable",[new mt.MathNode("mtr",[zV(),new mt.MathNode("mtd",[Th(t.body,e)]),zV(),new mt.MathNode("mtd",[Th(t.tag,e)])])]);return r.setAttribute("width","100%"),r}});GV={"\\text":void 0,"\\textrm":"textrm","\\textsf":"textsf","\\texttt":"texttt","\\textnormal":"textrm"},VV={"\\textbf":"textbf","\\textmd":"textmd"},Nwe={"\\textit":"textit","\\textup":"textup"},UV=o((t,e)=>{var r=t.font;if(r){if(GV[r])return e.withTextFontFamily(GV[r]);if(VV[r])return e.withTextFontWeight(VV[r]);if(r==="\\emph")return e.fontShape==="textit"?e.withTextFontShape("textup"):e.withTextFontShape("textit")}else return e;return e.withTextFontShape(Nwe[r])},"optionsWithFont");Mt({type:"text",names:["\\text","\\textrm","\\textsf","\\texttt","\\textnormal","\\textbf","\\textmd","\\textit","\\textup","\\emph"],props:{numArgs:1,argTypes:["text"],allowedInArgument:!0,allowedInText:!0},handler(t,e){var{parser:r,funcName:n}=t,i=e[0];return{type:"text",mode:r.mode,body:gi(i),font:n}},htmlBuilder(t,e){var r=UV(t,e),n=Ii(t.body,r,!0);return $e.makeSpan(["mord","text"],n,r)},mathmlBuilder(t,e){var r=UV(t,e);return Th(t.body,r)}});Mt({type:"underline",names:["\\underline"],props:{numArgs:1,allowedInText:!0},handler(t,e){var{parser:r}=t;return{type:"underline",mode:r.mode,body:e[0]}},htmlBuilder(t,e){var r=Hr(t.body,e),n=$e.makeLineSpan("underline-line",e),i=e.fontMetrics().defaultRuleThickness,a=$e.makeVList({positionType:"top",positionData:r.height,children:[{type:"kern",size:i},{type:"elem",elem:n},{type:"kern",size:3*i},{type:"elem",elem:r}]},e);return $e.makeSpan(["mord","underline"],[a],e)},mathmlBuilder(t,e){var r=new mt.MathNode("mo",[new mt.TextNode("\u203E")]);r.setAttribute("stretchy","true");var n=new mt.MathNode("munder",[wn(t.body,e),r]);return n.setAttribute("accentunder","true"),n}});Mt({type:"vcenter",names:["\\vcenter"],props:{numArgs:1,argTypes:["original"],allowedInText:!1},handler(t,e){var{parser:r}=t;return{type:"vcenter",mode:r.mode,body:e[0]}},htmlBuilder(t,e){var r=Hr(t.body,e),n=e.fontMetrics().axisHeight,i=.5*(r.height-n-(r.depth+n));return $e.makeVList({positionType:"shift",positionData:i,children:[{type:"elem",elem:r}]},e)},mathmlBuilder(t,e){return new mt.MathNode("mpadded",[wn(t.body,e)],["vcenter"])}});Mt({type:"verb",names:["\\verb"],props:{numArgs:0,allowedInText:!0},handler(t,e,r){throw new gt("\\verb ended by end of line instead of matching delimiter")},htmlBuilder(t,e){for(var r=HV(t),n=[],i=e.havingStyle(e.style.text()),a=0;at.body.replace(/ /g,t.star?"\u2423":"\xA0"),"makeVerb"),xh=oU,$U=`[ \r + ]`,Mwe="\\\\[a-zA-Z@]+",Iwe="\\\\[^\uD800-\uDFFF]",Owe="("+Mwe+")"+$U+"*",Pwe=`\\\\( +|[ \r ]+ +?)[ \r ]*`,iA="[\u0300-\u036F]",Bwe=new RegExp(iA+"+$"),Fwe="("+$U+"+)|"+(Pwe+"|")+"([!-\\[\\]-\u2027\u202A-\uD7FF\uF900-\uFFFF]"+(iA+"*")+"|[\uD800-\uDBFF][\uDC00-\uDFFF]"+(iA+"*")+"|\\\\verb\\*([^]).*?\\4|\\\\verb([^*a-zA-Z]).*?\\5"+("|"+Owe)+("|"+Iwe+")"),C3=class{static{o(this,"Lexer")}constructor(e,r){this.input=void 0,this.settings=void 0,this.tokenRegex=void 0,this.catcodes=void 0,this.input=e,this.settings=r,this.tokenRegex=new RegExp(Fwe,"g"),this.catcodes={"%":14,"~":13}}setCatcode(e,r){this.catcodes[e]=r}lex(){var e=this.input,r=this.tokenRegex.lastIndex;if(r===e.length)return new Do("EOF",new to(this,r,r));var n=this.tokenRegex.exec(e);if(n===null||n.index!==r)throw new gt("Unexpected character: '"+e[r]+"'",new Do(e[r],new to(this,r,r+1)));var i=n[6]||n[3]||(n[2]?"\\ ":" ");if(this.catcodes[i]===14){var a=e.indexOf(` +`,this.tokenRegex.lastIndex);return a===-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=a+1,this.lex()}return new Do(i,new to(this,r,this.tokenRegex.lastIndex))}},aA=class{static{o(this,"Namespace")}constructor(e,r){e===void 0&&(e={}),r===void 0&&(r={}),this.current=void 0,this.builtins=void 0,this.undefStack=void 0,this.current=r,this.builtins=e,this.undefStack=[]}beginGroup(){this.undefStack.push({})}endGroup(){if(this.undefStack.length===0)throw new gt("Unbalanced namespace destruction: attempt to pop global namespace; please report this as a bug");var e=this.undefStack.pop();for(var r in e)e.hasOwnProperty(r)&&(e[r]==null?delete this.current[r]:this.current[r]=e[r])}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,r,n){if(n===void 0&&(n=!1),n){for(var i=0;i0&&(this.undefStack[this.undefStack.length-1][e]=r)}else{var a=this.undefStack[this.undefStack.length-1];a&&!a.hasOwnProperty(e)&&(a[e]=this.current[e])}r==null?delete this.current[e]:this.current[e]=r}},$we=_U;ce("\\noexpand",function(t){var e=t.popToken();return t.isExpandable(e.text)&&(e.noexpand=!0,e.treatAsRelax=!0),{tokens:[e],numArgs:0}});ce("\\expandafter",function(t){var e=t.popToken();return t.expandOnce(!0),{tokens:[e],numArgs:0}});ce("\\@firstoftwo",function(t){var e=t.consumeArgs(2);return{tokens:e[0],numArgs:0}});ce("\\@secondoftwo",function(t){var e=t.consumeArgs(2);return{tokens:e[1],numArgs:0}});ce("\\@ifnextchar",function(t){var e=t.consumeArgs(3);t.consumeSpaces();var r=t.future();return e[0].length===1&&e[0][0].text===r.text?{tokens:e[1],numArgs:0}:{tokens:e[2],numArgs:0}});ce("\\@ifstar","\\@ifnextchar *{\\@firstoftwo{#1}}");ce("\\TextOrMath",function(t){var e=t.consumeArgs(2);return t.mode==="text"?{tokens:e[0],numArgs:0}:{tokens:e[1],numArgs:0}});qV={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};ce("\\char",function(t){var e=t.popToken(),r,n="";if(e.text==="'")r=8,e=t.popToken();else if(e.text==='"')r=16,e=t.popToken();else if(e.text==="`")if(e=t.popToken(),e.text[0]==="\\")n=e.text.charCodeAt(1);else{if(e.text==="EOF")throw new gt("\\char` missing argument");n=e.text.charCodeAt(0)}else r=10;if(r){if(n=qV[e.text],n==null||n>=r)throw new gt("Invalid base-"+r+" digit "+e.text);for(var i;(i=qV[t.future().text])!=null&&i{var i=t.consumeArg().tokens;if(i.length!==1)throw new gt("\\newcommand's first argument must be a macro name");var a=i[0].text,s=t.isDefined(a);if(s&&!e)throw new gt("\\newcommand{"+a+"} attempting to redefine "+(a+"; use \\renewcommand"));if(!s&&!r)throw new gt("\\renewcommand{"+a+"} when command "+a+" does not yet exist; use \\newcommand");var l=0;if(i=t.consumeArg().tokens,i.length===1&&i[0].text==="["){for(var u="",h=t.expandNextToken();h.text!=="]"&&h.text!=="EOF";)u+=h.text,h=t.expandNextToken();if(!u.match(/^\s*[0-9]+\s*$/))throw new gt("Invalid number of arguments: "+u);l=parseInt(u),i=t.consumeArg().tokens}return s&&n||t.macros.set(a,{tokens:i,numArgs:l}),""},"newcommand");ce("\\newcommand",t=>TA(t,!1,!0,!1));ce("\\renewcommand",t=>TA(t,!0,!1,!1));ce("\\providecommand",t=>TA(t,!0,!0,!0));ce("\\message",t=>{var e=t.consumeArgs(1)[0];return console.log(e.reverse().map(r=>r.text).join("")),""});ce("\\errmessage",t=>{var e=t.consumeArgs(1)[0];return console.error(e.reverse().map(r=>r.text).join("")),""});ce("\\show",t=>{var e=t.popToken(),r=e.text;return console.log(e,t.macros.get(r),xh[r],Nn.math[r],Nn.text[r]),""});ce("\\bgroup","{");ce("\\egroup","}");ce("~","\\nobreakspace");ce("\\lq","`");ce("\\rq","'");ce("\\aa","\\r a");ce("\\AA","\\r A");ce("\\textcopyright","\\html@mathml{\\textcircled{c}}{\\char`\xA9}");ce("\\copyright","\\TextOrMath{\\textcopyright}{\\text{\\textcopyright}}");ce("\\textregistered","\\html@mathml{\\textcircled{\\scriptsize R}}{\\char`\xAE}");ce("\u212C","\\mathscr{B}");ce("\u2130","\\mathscr{E}");ce("\u2131","\\mathscr{F}");ce("\u210B","\\mathscr{H}");ce("\u2110","\\mathscr{I}");ce("\u2112","\\mathscr{L}");ce("\u2133","\\mathscr{M}");ce("\u211B","\\mathscr{R}");ce("\u212D","\\mathfrak{C}");ce("\u210C","\\mathfrak{H}");ce("\u2128","\\mathfrak{Z}");ce("\\Bbbk","\\Bbb{k}");ce("\xB7","\\cdotp");ce("\\llap","\\mathllap{\\textrm{#1}}");ce("\\rlap","\\mathrlap{\\textrm{#1}}");ce("\\clap","\\mathclap{\\textrm{#1}}");ce("\\mathstrut","\\vphantom{(}");ce("\\underbar","\\underline{\\text{#1}}");ce("\\not",'\\html@mathml{\\mathrel{\\mathrlap\\@not}}{\\char"338}');ce("\\neq","\\html@mathml{\\mathrel{\\not=}}{\\mathrel{\\char`\u2260}}");ce("\\ne","\\neq");ce("\u2260","\\neq");ce("\\notin","\\html@mathml{\\mathrel{{\\in}\\mathllap{/\\mskip1mu}}}{\\mathrel{\\char`\u2209}}");ce("\u2209","\\notin");ce("\u2258","\\html@mathml{\\mathrel{=\\kern{-1em}\\raisebox{0.4em}{$\\scriptsize\\frown$}}}{\\mathrel{\\char`\u2258}}");ce("\u2259","\\html@mathml{\\stackrel{\\tiny\\wedge}{=}}{\\mathrel{\\char`\u2258}}");ce("\u225A","\\html@mathml{\\stackrel{\\tiny\\vee}{=}}{\\mathrel{\\char`\u225A}}");ce("\u225B","\\html@mathml{\\stackrel{\\scriptsize\\star}{=}}{\\mathrel{\\char`\u225B}}");ce("\u225D","\\html@mathml{\\stackrel{\\tiny\\mathrm{def}}{=}}{\\mathrel{\\char`\u225D}}");ce("\u225E","\\html@mathml{\\stackrel{\\tiny\\mathrm{m}}{=}}{\\mathrel{\\char`\u225E}}");ce("\u225F","\\html@mathml{\\stackrel{\\tiny?}{=}}{\\mathrel{\\char`\u225F}}");ce("\u27C2","\\perp");ce("\u203C","\\mathclose{!\\mkern-0.8mu!}");ce("\u220C","\\notni");ce("\u231C","\\ulcorner");ce("\u231D","\\urcorner");ce("\u231E","\\llcorner");ce("\u231F","\\lrcorner");ce("\xA9","\\copyright");ce("\xAE","\\textregistered");ce("\uFE0F","\\textregistered");ce("\\ulcorner",'\\html@mathml{\\@ulcorner}{\\mathop{\\char"231c}}');ce("\\urcorner",'\\html@mathml{\\@urcorner}{\\mathop{\\char"231d}}');ce("\\llcorner",'\\html@mathml{\\@llcorner}{\\mathop{\\char"231e}}');ce("\\lrcorner",'\\html@mathml{\\@lrcorner}{\\mathop{\\char"231f}}');ce("\\vdots","{\\varvdots\\rule{0pt}{15pt}}");ce("\u22EE","\\vdots");ce("\\varGamma","\\mathit{\\Gamma}");ce("\\varDelta","\\mathit{\\Delta}");ce("\\varTheta","\\mathit{\\Theta}");ce("\\varLambda","\\mathit{\\Lambda}");ce("\\varXi","\\mathit{\\Xi}");ce("\\varPi","\\mathit{\\Pi}");ce("\\varSigma","\\mathit{\\Sigma}");ce("\\varUpsilon","\\mathit{\\Upsilon}");ce("\\varPhi","\\mathit{\\Phi}");ce("\\varPsi","\\mathit{\\Psi}");ce("\\varOmega","\\mathit{\\Omega}");ce("\\substack","\\begin{subarray}{c}#1\\end{subarray}");ce("\\colon","\\nobreak\\mskip2mu\\mathpunct{}\\mathchoice{\\mkern-3mu}{\\mkern-3mu}{}{}{:}\\mskip6mu\\relax");ce("\\boxed","\\fbox{$\\displaystyle{#1}$}");ce("\\iff","\\DOTSB\\;\\Longleftrightarrow\\;");ce("\\implies","\\DOTSB\\;\\Longrightarrow\\;");ce("\\impliedby","\\DOTSB\\;\\Longleftarrow\\;");ce("\\dddot","{\\overset{\\raisebox{-0.1ex}{\\normalsize ...}}{#1}}");ce("\\ddddot","{\\overset{\\raisebox{-0.1ex}{\\normalsize ....}}{#1}}");WV={",":"\\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"};ce("\\dots",function(t){var e="\\dotso",r=t.expandAfterFuture().text;return r in WV?e=WV[r]:(r.slice(0,4)==="\\not"||r in Nn.math&&er.contains(["bin","rel"],Nn.math[r].group))&&(e="\\dotsb"),e});wA={")":!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};ce("\\dotso",function(t){var e=t.future().text;return e in wA?"\\ldots\\,":"\\ldots"});ce("\\dotsc",function(t){var e=t.future().text;return e in wA&&e!==","?"\\ldots\\,":"\\ldots"});ce("\\cdots",function(t){var e=t.future().text;return e in wA?"\\@cdots\\,":"\\@cdots"});ce("\\dotsb","\\cdots");ce("\\dotsm","\\cdots");ce("\\dotsi","\\!\\cdots");ce("\\dotsx","\\ldots\\,");ce("\\DOTSI","\\relax");ce("\\DOTSB","\\relax");ce("\\DOTSX","\\relax");ce("\\tmspace","\\TextOrMath{\\kern#1#3}{\\mskip#1#2}\\relax");ce("\\,","\\tmspace+{3mu}{.1667em}");ce("\\thinspace","\\,");ce("\\>","\\mskip{4mu}");ce("\\:","\\tmspace+{4mu}{.2222em}");ce("\\medspace","\\:");ce("\\;","\\tmspace+{5mu}{.2777em}");ce("\\thickspace","\\;");ce("\\!","\\tmspace-{3mu}{.1667em}");ce("\\negthinspace","\\!");ce("\\negmedspace","\\tmspace-{4mu}{.2222em}");ce("\\negthickspace","\\tmspace-{5mu}{.277em}");ce("\\enspace","\\kern.5em ");ce("\\enskip","\\hskip.5em\\relax");ce("\\quad","\\hskip1em\\relax");ce("\\qquad","\\hskip2em\\relax");ce("\\tag","\\@ifstar\\tag@literal\\tag@paren");ce("\\tag@paren","\\tag@literal{({#1})}");ce("\\tag@literal",t=>{if(t.macros.get("\\df@tag"))throw new gt("Multiple \\tag");return"\\gdef\\df@tag{\\text{#1}}"});ce("\\bmod","\\mathchoice{\\mskip1mu}{\\mskip1mu}{\\mskip5mu}{\\mskip5mu}\\mathbin{\\rm mod}\\mathchoice{\\mskip1mu}{\\mskip1mu}{\\mskip5mu}{\\mskip5mu}");ce("\\pod","\\allowbreak\\mathchoice{\\mkern18mu}{\\mkern8mu}{\\mkern8mu}{\\mkern8mu}(#1)");ce("\\pmod","\\pod{{\\rm mod}\\mkern6mu#1}");ce("\\mod","\\allowbreak\\mathchoice{\\mkern18mu}{\\mkern12mu}{\\mkern12mu}{\\mkern12mu}{\\rm mod}\\,\\,#1");ce("\\newline","\\\\\\relax");ce("\\TeX","\\textrm{\\html@mathml{T\\kern-.1667em\\raisebox{-.5ex}{E}\\kern-.125emX}{TeX}}");zU=St(Ql["Main-Regular"][84][1]-.7*Ql["Main-Regular"][65][1]);ce("\\LaTeX","\\textrm{\\html@mathml{"+("L\\kern-.36em\\raisebox{"+zU+"}{\\scriptstyle A}")+"\\kern-.15em\\TeX}{LaTeX}}");ce("\\KaTeX","\\textrm{\\html@mathml{"+("K\\kern-.17em\\raisebox{"+zU+"}{\\scriptstyle A}")+"\\kern-.15em\\TeX}{KaTeX}}");ce("\\hspace","\\@ifstar\\@hspacer\\@hspace");ce("\\@hspace","\\hskip #1\\relax");ce("\\@hspacer","\\rule{0pt}{0pt}\\hskip #1\\relax");ce("\\ordinarycolon",":");ce("\\vcentcolon","\\mathrel{\\mathop\\ordinarycolon}");ce("\\dblcolon",'\\html@mathml{\\mathrel{\\vcentcolon\\mathrel{\\mkern-.9mu}\\vcentcolon}}{\\mathop{\\char"2237}}');ce("\\coloneqq",'\\html@mathml{\\mathrel{\\vcentcolon\\mathrel{\\mkern-1.2mu}=}}{\\mathop{\\char"2254}}');ce("\\Coloneqq",'\\html@mathml{\\mathrel{\\dblcolon\\mathrel{\\mkern-1.2mu}=}}{\\mathop{\\char"2237\\char"3d}}');ce("\\coloneq",'\\html@mathml{\\mathrel{\\vcentcolon\\mathrel{\\mkern-1.2mu}\\mathrel{-}}}{\\mathop{\\char"3a\\char"2212}}');ce("\\Coloneq",'\\html@mathml{\\mathrel{\\dblcolon\\mathrel{\\mkern-1.2mu}\\mathrel{-}}}{\\mathop{\\char"2237\\char"2212}}');ce("\\eqqcolon",'\\html@mathml{\\mathrel{=\\mathrel{\\mkern-1.2mu}\\vcentcolon}}{\\mathop{\\char"2255}}');ce("\\Eqqcolon",'\\html@mathml{\\mathrel{=\\mathrel{\\mkern-1.2mu}\\dblcolon}}{\\mathop{\\char"3d\\char"2237}}');ce("\\eqcolon",'\\html@mathml{\\mathrel{\\mathrel{-}\\mathrel{\\mkern-1.2mu}\\vcentcolon}}{\\mathop{\\char"2239}}');ce("\\Eqcolon",'\\html@mathml{\\mathrel{\\mathrel{-}\\mathrel{\\mkern-1.2mu}\\dblcolon}}{\\mathop{\\char"2212\\char"2237}}');ce("\\colonapprox",'\\html@mathml{\\mathrel{\\vcentcolon\\mathrel{\\mkern-1.2mu}\\approx}}{\\mathop{\\char"3a\\char"2248}}');ce("\\Colonapprox",'\\html@mathml{\\mathrel{\\dblcolon\\mathrel{\\mkern-1.2mu}\\approx}}{\\mathop{\\char"2237\\char"2248}}');ce("\\colonsim",'\\html@mathml{\\mathrel{\\vcentcolon\\mathrel{\\mkern-1.2mu}\\sim}}{\\mathop{\\char"3a\\char"223c}}');ce("\\Colonsim",'\\html@mathml{\\mathrel{\\dblcolon\\mathrel{\\mkern-1.2mu}\\sim}}{\\mathop{\\char"2237\\char"223c}}');ce("\u2237","\\dblcolon");ce("\u2239","\\eqcolon");ce("\u2254","\\coloneqq");ce("\u2255","\\eqqcolon");ce("\u2A74","\\Coloneqq");ce("\\ratio","\\vcentcolon");ce("\\coloncolon","\\dblcolon");ce("\\colonequals","\\coloneqq");ce("\\coloncolonequals","\\Coloneqq");ce("\\equalscolon","\\eqqcolon");ce("\\equalscoloncolon","\\Eqqcolon");ce("\\colonminus","\\coloneq");ce("\\coloncolonminus","\\Coloneq");ce("\\minuscolon","\\eqcolon");ce("\\minuscoloncolon","\\Eqcolon");ce("\\coloncolonapprox","\\Colonapprox");ce("\\coloncolonsim","\\Colonsim");ce("\\simcolon","\\mathrel{\\sim\\mathrel{\\mkern-1.2mu}\\vcentcolon}");ce("\\simcoloncolon","\\mathrel{\\sim\\mathrel{\\mkern-1.2mu}\\dblcolon}");ce("\\approxcolon","\\mathrel{\\approx\\mathrel{\\mkern-1.2mu}\\vcentcolon}");ce("\\approxcoloncolon","\\mathrel{\\approx\\mathrel{\\mkern-1.2mu}\\dblcolon}");ce("\\notni","\\html@mathml{\\not\\ni}{\\mathrel{\\char`\u220C}}");ce("\\limsup","\\DOTSB\\operatorname*{lim\\,sup}");ce("\\liminf","\\DOTSB\\operatorname*{lim\\,inf}");ce("\\injlim","\\DOTSB\\operatorname*{inj\\,lim}");ce("\\projlim","\\DOTSB\\operatorname*{proj\\,lim}");ce("\\varlimsup","\\DOTSB\\operatorname*{\\overline{lim}}");ce("\\varliminf","\\DOTSB\\operatorname*{\\underline{lim}}");ce("\\varinjlim","\\DOTSB\\operatorname*{\\underrightarrow{lim}}");ce("\\varprojlim","\\DOTSB\\operatorname*{\\underleftarrow{lim}}");ce("\\gvertneqq","\\html@mathml{\\@gvertneqq}{\u2269}");ce("\\lvertneqq","\\html@mathml{\\@lvertneqq}{\u2268}");ce("\\ngeqq","\\html@mathml{\\@ngeqq}{\u2271}");ce("\\ngeqslant","\\html@mathml{\\@ngeqslant}{\u2271}");ce("\\nleqq","\\html@mathml{\\@nleqq}{\u2270}");ce("\\nleqslant","\\html@mathml{\\@nleqslant}{\u2270}");ce("\\nshortmid","\\html@mathml{\\@nshortmid}{\u2224}");ce("\\nshortparallel","\\html@mathml{\\@nshortparallel}{\u2226}");ce("\\nsubseteqq","\\html@mathml{\\@nsubseteqq}{\u2288}");ce("\\nsupseteqq","\\html@mathml{\\@nsupseteqq}{\u2289}");ce("\\varsubsetneq","\\html@mathml{\\@varsubsetneq}{\u228A}");ce("\\varsubsetneqq","\\html@mathml{\\@varsubsetneqq}{\u2ACB}");ce("\\varsupsetneq","\\html@mathml{\\@varsupsetneq}{\u228B}");ce("\\varsupsetneqq","\\html@mathml{\\@varsupsetneqq}{\u2ACC}");ce("\\imath","\\html@mathml{\\@imath}{\u0131}");ce("\\jmath","\\html@mathml{\\@jmath}{\u0237}");ce("\\llbracket","\\html@mathml{\\mathopen{[\\mkern-3.2mu[}}{\\mathopen{\\char`\u27E6}}");ce("\\rrbracket","\\html@mathml{\\mathclose{]\\mkern-3.2mu]}}{\\mathclose{\\char`\u27E7}}");ce("\u27E6","\\llbracket");ce("\u27E7","\\rrbracket");ce("\\lBrace","\\html@mathml{\\mathopen{\\{\\mkern-3.2mu[}}{\\mathopen{\\char`\u2983}}");ce("\\rBrace","\\html@mathml{\\mathclose{]\\mkern-3.2mu\\}}}{\\mathclose{\\char`\u2984}}");ce("\u2983","\\lBrace");ce("\u2984","\\rBrace");ce("\\minuso","\\mathbin{\\html@mathml{{\\mathrlap{\\mathchoice{\\kern{0.145em}}{\\kern{0.145em}}{\\kern{0.1015em}}{\\kern{0.0725em}}\\circ}{-}}}{\\char`\u29B5}}");ce("\u29B5","\\minuso");ce("\\darr","\\downarrow");ce("\\dArr","\\Downarrow");ce("\\Darr","\\Downarrow");ce("\\lang","\\langle");ce("\\rang","\\rangle");ce("\\uarr","\\uparrow");ce("\\uArr","\\Uparrow");ce("\\Uarr","\\Uparrow");ce("\\N","\\mathbb{N}");ce("\\R","\\mathbb{R}");ce("\\Z","\\mathbb{Z}");ce("\\alef","\\aleph");ce("\\alefsym","\\aleph");ce("\\Alpha","\\mathrm{A}");ce("\\Beta","\\mathrm{B}");ce("\\bull","\\bullet");ce("\\Chi","\\mathrm{X}");ce("\\clubs","\\clubsuit");ce("\\cnums","\\mathbb{C}");ce("\\Complex","\\mathbb{C}");ce("\\Dagger","\\ddagger");ce("\\diamonds","\\diamondsuit");ce("\\empty","\\emptyset");ce("\\Epsilon","\\mathrm{E}");ce("\\Eta","\\mathrm{H}");ce("\\exist","\\exists");ce("\\harr","\\leftrightarrow");ce("\\hArr","\\Leftrightarrow");ce("\\Harr","\\Leftrightarrow");ce("\\hearts","\\heartsuit");ce("\\image","\\Im");ce("\\infin","\\infty");ce("\\Iota","\\mathrm{I}");ce("\\isin","\\in");ce("\\Kappa","\\mathrm{K}");ce("\\larr","\\leftarrow");ce("\\lArr","\\Leftarrow");ce("\\Larr","\\Leftarrow");ce("\\lrarr","\\leftrightarrow");ce("\\lrArr","\\Leftrightarrow");ce("\\Lrarr","\\Leftrightarrow");ce("\\Mu","\\mathrm{M}");ce("\\natnums","\\mathbb{N}");ce("\\Nu","\\mathrm{N}");ce("\\Omicron","\\mathrm{O}");ce("\\plusmn","\\pm");ce("\\rarr","\\rightarrow");ce("\\rArr","\\Rightarrow");ce("\\Rarr","\\Rightarrow");ce("\\real","\\Re");ce("\\reals","\\mathbb{R}");ce("\\Reals","\\mathbb{R}");ce("\\Rho","\\mathrm{P}");ce("\\sdot","\\cdot");ce("\\sect","\\S");ce("\\spades","\\spadesuit");ce("\\sub","\\subset");ce("\\sube","\\subseteq");ce("\\supe","\\supseteq");ce("\\Tau","\\mathrm{T}");ce("\\thetasym","\\vartheta");ce("\\weierp","\\wp");ce("\\Zeta","\\mathrm{Z}");ce("\\argmin","\\DOTSB\\operatorname*{arg\\,min}");ce("\\argmax","\\DOTSB\\operatorname*{arg\\,max}");ce("\\plim","\\DOTSB\\mathop{\\operatorname{plim}}\\limits");ce("\\bra","\\mathinner{\\langle{#1}|}");ce("\\ket","\\mathinner{|{#1}\\rangle}");ce("\\braket","\\mathinner{\\langle{#1}\\rangle}");ce("\\Bra","\\left\\langle#1\\right|");ce("\\Ket","\\left|#1\\right\\rangle");GU=o(t=>e=>{var r=e.consumeArg().tokens,n=e.consumeArg().tokens,i=e.consumeArg().tokens,a=e.consumeArg().tokens,s=e.macros.get("|"),l=e.macros.get("\\|");e.macros.beginGroup();var u=o(d=>p=>{t&&(p.macros.set("|",s),i.length&&p.macros.set("\\|",l));var m=d;if(!d&&i.length){var g=p.future();g.text==="|"&&(p.popToken(),m=!0)}return{tokens:m?i:n,numArgs:0}},"midMacro");e.macros.set("|",u(!1)),i.length&&e.macros.set("\\|",u(!0));var h=e.consumeArg().tokens,f=e.expandTokens([...a,...h,...r]);return e.macros.endGroup(),{tokens:f.reverse(),numArgs:0}},"braketHelper");ce("\\bra@ket",GU(!1));ce("\\bra@set",GU(!0));ce("\\Braket","\\bra@ket{\\left\\langle}{\\,\\middle\\vert\\,}{\\,\\middle\\vert\\,}{\\right\\rangle}");ce("\\Set","\\bra@set{\\left\\{\\:}{\\;\\middle\\vert\\;}{\\;\\middle\\Vert\\;}{\\:\\right\\}}");ce("\\set","\\bra@set{\\{\\,}{\\mid}{}{\\,\\}}");ce("\\angln","{\\angl n}");ce("\\blue","\\textcolor{##6495ed}{#1}");ce("\\orange","\\textcolor{##ffa500}{#1}");ce("\\pink","\\textcolor{##ff00af}{#1}");ce("\\red","\\textcolor{##df0030}{#1}");ce("\\green","\\textcolor{##28ae7b}{#1}");ce("\\gray","\\textcolor{gray}{#1}");ce("\\purple","\\textcolor{##9d38bd}{#1}");ce("\\blueA","\\textcolor{##ccfaff}{#1}");ce("\\blueB","\\textcolor{##80f6ff}{#1}");ce("\\blueC","\\textcolor{##63d9ea}{#1}");ce("\\blueD","\\textcolor{##11accd}{#1}");ce("\\blueE","\\textcolor{##0c7f99}{#1}");ce("\\tealA","\\textcolor{##94fff5}{#1}");ce("\\tealB","\\textcolor{##26edd5}{#1}");ce("\\tealC","\\textcolor{##01d1c1}{#1}");ce("\\tealD","\\textcolor{##01a995}{#1}");ce("\\tealE","\\textcolor{##208170}{#1}");ce("\\greenA","\\textcolor{##b6ffb0}{#1}");ce("\\greenB","\\textcolor{##8af281}{#1}");ce("\\greenC","\\textcolor{##74cf70}{#1}");ce("\\greenD","\\textcolor{##1fab54}{#1}");ce("\\greenE","\\textcolor{##0d923f}{#1}");ce("\\goldA","\\textcolor{##ffd0a9}{#1}");ce("\\goldB","\\textcolor{##ffbb71}{#1}");ce("\\goldC","\\textcolor{##ff9c39}{#1}");ce("\\goldD","\\textcolor{##e07d10}{#1}");ce("\\goldE","\\textcolor{##a75a05}{#1}");ce("\\redA","\\textcolor{##fca9a9}{#1}");ce("\\redB","\\textcolor{##ff8482}{#1}");ce("\\redC","\\textcolor{##f9685d}{#1}");ce("\\redD","\\textcolor{##e84d39}{#1}");ce("\\redE","\\textcolor{##bc2612}{#1}");ce("\\maroonA","\\textcolor{##ffbde0}{#1}");ce("\\maroonB","\\textcolor{##ff92c6}{#1}");ce("\\maroonC","\\textcolor{##ed5fa6}{#1}");ce("\\maroonD","\\textcolor{##ca337c}{#1}");ce("\\maroonE","\\textcolor{##9e034e}{#1}");ce("\\purpleA","\\textcolor{##ddd7ff}{#1}");ce("\\purpleB","\\textcolor{##c6b9fc}{#1}");ce("\\purpleC","\\textcolor{##aa87ff}{#1}");ce("\\purpleD","\\textcolor{##7854ab}{#1}");ce("\\purpleE","\\textcolor{##543b78}{#1}");ce("\\mintA","\\textcolor{##f5f9e8}{#1}");ce("\\mintB","\\textcolor{##edf2df}{#1}");ce("\\mintC","\\textcolor{##e0e5cc}{#1}");ce("\\grayA","\\textcolor{##f6f7f7}{#1}");ce("\\grayB","\\textcolor{##f0f1f2}{#1}");ce("\\grayC","\\textcolor{##e3e5e6}{#1}");ce("\\grayD","\\textcolor{##d6d8da}{#1}");ce("\\grayE","\\textcolor{##babec2}{#1}");ce("\\grayF","\\textcolor{##888d93}{#1}");ce("\\grayG","\\textcolor{##626569}{#1}");ce("\\grayH","\\textcolor{##3b3e40}{#1}");ce("\\grayI","\\textcolor{##21242c}{#1}");ce("\\kaBlue","\\textcolor{##314453}{#1}");ce("\\kaGreen","\\textcolor{##71B307}{#1}");VU={"^":!0,_:!0,"\\limits":!0,"\\nolimits":!0},sA=class{static{o(this,"MacroExpander")}constructor(e,r,n){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=r,this.expansionCount=0,this.feed(e),this.macros=new aA($we,r.macros),this.mode=n,this.stack=[]}feed(e){this.lexer=new C3(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 r,n,i;if(e){if(this.consumeSpaces(),this.future().text!=="[")return null;r=this.popToken(),{tokens:i,end:n}=this.consumeArg(["]"])}else({tokens:i,start:r,end:n}=this.consumeArg());return this.pushToken(new Do("EOF",n.loc)),this.pushTokens(i),r.range(n,"")}consumeSpaces(){for(;;){var e=this.future();if(e.text===" ")this.stack.pop();else break}}consumeArg(e){var r=[],n=e&&e.length>0;n||this.consumeSpaces();var i=this.future(),a,s=0,l=0;do{if(a=this.popToken(),r.push(a),a.text==="{")++s;else if(a.text==="}"){if(--s,s===-1)throw new gt("Extra }",a)}else if(a.text==="EOF")throw new gt("Unexpected end of input in a macro argument, expected '"+(e&&n?e[l]:"}")+"'",a);if(e&&n)if((s===0||s===1&&e[l]==="{")&&a.text===e[l]){if(++l,l===e.length){r.splice(-l,l);break}}else l=0}while(s!==0||n);return i.text==="{"&&r[r.length-1].text==="}"&&(r.pop(),r.shift()),r.reverse(),{tokens:r,start:i,end:a}}consumeArgs(e,r){if(r){if(r.length!==e+1)throw new gt("The length of delimiters doesn't match the number of args!");for(var n=r[0],i=0;ithis.settings.maxExpand)throw new gt("Too many expansions: infinite loop or need to increase maxExpand setting")}expandOnce(e){var r=this.popToken(),n=r.text,i=r.noexpand?null:this._getExpansion(n);if(i==null||e&&i.unexpandable){if(e&&i==null&&n[0]==="\\"&&!this.isDefined(n))throw new gt("Undefined control sequence: "+n);return this.pushToken(r),!1}this.countExpansion(1);var a=i.tokens,s=this.consumeArgs(i.numArgs,i.delimiters);if(i.numArgs){a=a.slice();for(var l=a.length-1;l>=0;--l){var u=a[l];if(u.text==="#"){if(l===0)throw new gt("Incomplete placeholder at end of macro body",u);if(u=a[--l],u.text==="#")a.splice(l+1,1);else if(/^[1-9]$/.test(u.text))a.splice(l,2,...s[+u.text-1]);else throw new gt("Not a valid argument number",u)}}}return this.pushTokens(a),a.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 Do(e)]):void 0}expandTokens(e){var r=[],n=this.stack.length;for(this.pushTokens(e);this.stack.length>n;)if(this.expandOnce(!0)===!1){var i=this.stack.pop();i.treatAsRelax&&(i.noexpand=!1,i.treatAsRelax=!1),r.push(i)}return this.countExpansion(r.length),r}expandMacroAsText(e){var r=this.expandMacro(e);return r&&r.map(n=>n.text).join("")}_getExpansion(e){var r=this.macros.get(e);if(r==null)return r;if(e.length===1){var n=this.lexer.catcodes[e];if(n!=null&&n!==13)return}var i=typeof r=="function"?r(this):r;if(typeof i=="string"){var a=0;if(i.indexOf("#")!==-1)for(var s=i.replace(/##/g,"");s.indexOf("#"+(a+1))!==-1;)++a;for(var l=new C3(i,this.settings),u=[],h=l.lex();h.text!=="EOF";)u.push(h),h=l.lex();u.reverse();var f={tokens:u,numArgs:a};return f}return i}isDefined(e){return this.macros.has(e)||xh.hasOwnProperty(e)||Nn.math.hasOwnProperty(e)||Nn.text.hasOwnProperty(e)||VU.hasOwnProperty(e)}isExpandable(e){var r=this.macros.get(e);return r!=null?typeof r=="string"||typeof r=="function"||!r.unexpandable:xh.hasOwnProperty(e)&&!xh[e].primitive}},YV=/^[₊₋₌₍₎₀₁₂₃₄₅₆₇₈₉ₐₑₕᵢⱼₖₗₘₙₒₚᵣₛₜᵤᵥₓᵦᵧᵨᵩᵪ]/,v3=Object.freeze({"\u208A":"+","\u208B":"-","\u208C":"=","\u208D":"(","\u208E":")","\u2080":"0","\u2081":"1","\u2082":"2","\u2083":"3","\u2084":"4","\u2085":"5","\u2086":"6","\u2087":"7","\u2088":"8","\u2089":"9","\u2090":"a","\u2091":"e","\u2095":"h","\u1D62":"i","\u2C7C":"j","\u2096":"k","\u2097":"l","\u2098":"m","\u2099":"n","\u2092":"o","\u209A":"p","\u1D63":"r","\u209B":"s","\u209C":"t","\u1D64":"u","\u1D65":"v","\u2093":"x","\u1D66":"\u03B2","\u1D67":"\u03B3","\u1D68":"\u03C1","\u1D69":"\u03D5","\u1D6A":"\u03C7","\u207A":"+","\u207B":"-","\u207C":"=","\u207D":"(","\u207E":")","\u2070":"0","\xB9":"1","\xB2":"2","\xB3":"3","\u2074":"4","\u2075":"5","\u2076":"6","\u2077":"7","\u2078":"8","\u2079":"9","\u1D2C":"A","\u1D2E":"B","\u1D30":"D","\u1D31":"E","\u1D33":"G","\u1D34":"H","\u1D35":"I","\u1D36":"J","\u1D37":"K","\u1D38":"L","\u1D39":"M","\u1D3A":"N","\u1D3C":"O","\u1D3E":"P","\u1D3F":"R","\u1D40":"T","\u1D41":"U","\u2C7D":"V","\u1D42":"W","\u1D43":"a","\u1D47":"b","\u1D9C":"c","\u1D48":"d","\u1D49":"e","\u1DA0":"f","\u1D4D":"g",\u02B0:"h","\u2071":"i",\u02B2:"j","\u1D4F":"k",\u02E1:"l","\u1D50":"m",\u207F:"n","\u1D52":"o","\u1D56":"p",\u02B3:"r",\u02E2:"s","\u1D57":"t","\u1D58":"u","\u1D5B":"v",\u02B7:"w",\u02E3:"x",\u02B8:"y","\u1DBB":"z","\u1D5D":"\u03B2","\u1D5E":"\u03B3","\u1D5F":"\u03B4","\u1D60":"\u03D5","\u1D61":"\u03C7","\u1DBF":"\u03B8"}),X7={"\u0301":{text:"\\'",math:"\\acute"},"\u0300":{text:"\\`",math:"\\grave"},"\u0308":{text:'\\"',math:"\\ddot"},"\u0303":{text:"\\~",math:"\\tilde"},"\u0304":{text:"\\=",math:"\\bar"},"\u0306":{text:"\\u",math:"\\breve"},"\u030C":{text:"\\v",math:"\\check"},"\u0302":{text:"\\^",math:"\\hat"},"\u0307":{text:"\\.",math:"\\dot"},"\u030A":{text:"\\r",math:"\\mathring"},"\u030B":{text:"\\H"},"\u0327":{text:"\\c"}},XV={\u00E1:"a\u0301",\u00E0:"a\u0300",\u00E4:"a\u0308",\u01DF:"a\u0308\u0304",\u00E3:"a\u0303",\u0101:"a\u0304",\u0103:"a\u0306",\u1EAF:"a\u0306\u0301",\u1EB1:"a\u0306\u0300",\u1EB5:"a\u0306\u0303",\u01CE:"a\u030C",\u00E2:"a\u0302",\u1EA5:"a\u0302\u0301",\u1EA7:"a\u0302\u0300",\u1EAB:"a\u0302\u0303",\u0227:"a\u0307",\u01E1:"a\u0307\u0304",\u00E5:"a\u030A",\u01FB:"a\u030A\u0301",\u1E03:"b\u0307",\u0107:"c\u0301",\u1E09:"c\u0327\u0301",\u010D:"c\u030C",\u0109:"c\u0302",\u010B:"c\u0307",\u00E7:"c\u0327",\u010F:"d\u030C",\u1E0B:"d\u0307",\u1E11:"d\u0327",\u00E9:"e\u0301",\u00E8:"e\u0300",\u00EB:"e\u0308",\u1EBD:"e\u0303",\u0113:"e\u0304",\u1E17:"e\u0304\u0301",\u1E15:"e\u0304\u0300",\u0115:"e\u0306",\u1E1D:"e\u0327\u0306",\u011B:"e\u030C",\u00EA:"e\u0302",\u1EBF:"e\u0302\u0301",\u1EC1:"e\u0302\u0300",\u1EC5:"e\u0302\u0303",\u0117:"e\u0307",\u0229:"e\u0327",\u1E1F:"f\u0307",\u01F5:"g\u0301",\u1E21:"g\u0304",\u011F:"g\u0306",\u01E7:"g\u030C",\u011D:"g\u0302",\u0121:"g\u0307",\u0123:"g\u0327",\u1E27:"h\u0308",\u021F:"h\u030C",\u0125:"h\u0302",\u1E23:"h\u0307",\u1E29:"h\u0327",\u00ED:"i\u0301",\u00EC:"i\u0300",\u00EF:"i\u0308",\u1E2F:"i\u0308\u0301",\u0129:"i\u0303",\u012B:"i\u0304",\u012D:"i\u0306",\u01D0:"i\u030C",\u00EE:"i\u0302",\u01F0:"j\u030C",\u0135:"j\u0302",\u1E31:"k\u0301",\u01E9:"k\u030C",\u0137:"k\u0327",\u013A:"l\u0301",\u013E:"l\u030C",\u013C:"l\u0327",\u1E3F:"m\u0301",\u1E41:"m\u0307",\u0144:"n\u0301",\u01F9:"n\u0300",\u00F1:"n\u0303",\u0148:"n\u030C",\u1E45:"n\u0307",\u0146:"n\u0327",\u00F3:"o\u0301",\u00F2:"o\u0300",\u00F6:"o\u0308",\u022B:"o\u0308\u0304",\u00F5:"o\u0303",\u1E4D:"o\u0303\u0301",\u1E4F:"o\u0303\u0308",\u022D:"o\u0303\u0304",\u014D:"o\u0304",\u1E53:"o\u0304\u0301",\u1E51:"o\u0304\u0300",\u014F:"o\u0306",\u01D2:"o\u030C",\u00F4:"o\u0302",\u1ED1:"o\u0302\u0301",\u1ED3:"o\u0302\u0300",\u1ED7:"o\u0302\u0303",\u022F:"o\u0307",\u0231:"o\u0307\u0304",\u0151:"o\u030B",\u1E55:"p\u0301",\u1E57:"p\u0307",\u0155:"r\u0301",\u0159:"r\u030C",\u1E59:"r\u0307",\u0157:"r\u0327",\u015B:"s\u0301",\u1E65:"s\u0301\u0307",\u0161:"s\u030C",\u1E67:"s\u030C\u0307",\u015D:"s\u0302",\u1E61:"s\u0307",\u015F:"s\u0327",\u1E97:"t\u0308",\u0165:"t\u030C",\u1E6B:"t\u0307",\u0163:"t\u0327",\u00FA:"u\u0301",\u00F9:"u\u0300",\u00FC:"u\u0308",\u01D8:"u\u0308\u0301",\u01DC:"u\u0308\u0300",\u01D6:"u\u0308\u0304",\u01DA:"u\u0308\u030C",\u0169:"u\u0303",\u1E79:"u\u0303\u0301",\u016B:"u\u0304",\u1E7B:"u\u0304\u0308",\u016D:"u\u0306",\u01D4:"u\u030C",\u00FB:"u\u0302",\u016F:"u\u030A",\u0171:"u\u030B",\u1E7D:"v\u0303",\u1E83:"w\u0301",\u1E81:"w\u0300",\u1E85:"w\u0308",\u0175:"w\u0302",\u1E87:"w\u0307",\u1E98:"w\u030A",\u1E8D:"x\u0308",\u1E8B:"x\u0307",\u00FD:"y\u0301",\u1EF3:"y\u0300",\u00FF:"y\u0308",\u1EF9:"y\u0303",\u0233:"y\u0304",\u0177:"y\u0302",\u1E8F:"y\u0307",\u1E99:"y\u030A",\u017A:"z\u0301",\u017E:"z\u030C",\u1E91:"z\u0302",\u017C:"z\u0307",\u00C1:"A\u0301",\u00C0:"A\u0300",\u00C4:"A\u0308",\u01DE:"A\u0308\u0304",\u00C3:"A\u0303",\u0100:"A\u0304",\u0102:"A\u0306",\u1EAE:"A\u0306\u0301",\u1EB0:"A\u0306\u0300",\u1EB4:"A\u0306\u0303",\u01CD:"A\u030C",\u00C2:"A\u0302",\u1EA4:"A\u0302\u0301",\u1EA6:"A\u0302\u0300",\u1EAA:"A\u0302\u0303",\u0226:"A\u0307",\u01E0:"A\u0307\u0304",\u00C5:"A\u030A",\u01FA:"A\u030A\u0301",\u1E02:"B\u0307",\u0106:"C\u0301",\u1E08:"C\u0327\u0301",\u010C:"C\u030C",\u0108:"C\u0302",\u010A:"C\u0307",\u00C7:"C\u0327",\u010E:"D\u030C",\u1E0A:"D\u0307",\u1E10:"D\u0327",\u00C9:"E\u0301",\u00C8:"E\u0300",\u00CB:"E\u0308",\u1EBC:"E\u0303",\u0112:"E\u0304",\u1E16:"E\u0304\u0301",\u1E14:"E\u0304\u0300",\u0114:"E\u0306",\u1E1C:"E\u0327\u0306",\u011A:"E\u030C",\u00CA:"E\u0302",\u1EBE:"E\u0302\u0301",\u1EC0:"E\u0302\u0300",\u1EC4:"E\u0302\u0303",\u0116:"E\u0307",\u0228:"E\u0327",\u1E1E:"F\u0307",\u01F4:"G\u0301",\u1E20:"G\u0304",\u011E:"G\u0306",\u01E6:"G\u030C",\u011C:"G\u0302",\u0120:"G\u0307",\u0122:"G\u0327",\u1E26:"H\u0308",\u021E:"H\u030C",\u0124:"H\u0302",\u1E22:"H\u0307",\u1E28:"H\u0327",\u00CD:"I\u0301",\u00CC:"I\u0300",\u00CF:"I\u0308",\u1E2E:"I\u0308\u0301",\u0128:"I\u0303",\u012A:"I\u0304",\u012C:"I\u0306",\u01CF:"I\u030C",\u00CE:"I\u0302",\u0130:"I\u0307",\u0134:"J\u0302",\u1E30:"K\u0301",\u01E8:"K\u030C",\u0136:"K\u0327",\u0139:"L\u0301",\u013D:"L\u030C",\u013B:"L\u0327",\u1E3E:"M\u0301",\u1E40:"M\u0307",\u0143:"N\u0301",\u01F8:"N\u0300",\u00D1:"N\u0303",\u0147:"N\u030C",\u1E44:"N\u0307",\u0145:"N\u0327",\u00D3:"O\u0301",\u00D2:"O\u0300",\u00D6:"O\u0308",\u022A:"O\u0308\u0304",\u00D5:"O\u0303",\u1E4C:"O\u0303\u0301",\u1E4E:"O\u0303\u0308",\u022C:"O\u0303\u0304",\u014C:"O\u0304",\u1E52:"O\u0304\u0301",\u1E50:"O\u0304\u0300",\u014E:"O\u0306",\u01D1:"O\u030C",\u00D4:"O\u0302",\u1ED0:"O\u0302\u0301",\u1ED2:"O\u0302\u0300",\u1ED6:"O\u0302\u0303",\u022E:"O\u0307",\u0230:"O\u0307\u0304",\u0150:"O\u030B",\u1E54:"P\u0301",\u1E56:"P\u0307",\u0154:"R\u0301",\u0158:"R\u030C",\u1E58:"R\u0307",\u0156:"R\u0327",\u015A:"S\u0301",\u1E64:"S\u0301\u0307",\u0160:"S\u030C",\u1E66:"S\u030C\u0307",\u015C:"S\u0302",\u1E60:"S\u0307",\u015E:"S\u0327",\u0164:"T\u030C",\u1E6A:"T\u0307",\u0162:"T\u0327",\u00DA:"U\u0301",\u00D9:"U\u0300",\u00DC:"U\u0308",\u01D7:"U\u0308\u0301",\u01DB:"U\u0308\u0300",\u01D5:"U\u0308\u0304",\u01D9:"U\u0308\u030C",\u0168:"U\u0303",\u1E78:"U\u0303\u0301",\u016A:"U\u0304",\u1E7A:"U\u0304\u0308",\u016C:"U\u0306",\u01D3:"U\u030C",\u00DB:"U\u0302",\u016E:"U\u030A",\u0170:"U\u030B",\u1E7C:"V\u0303",\u1E82:"W\u0301",\u1E80:"W\u0300",\u1E84:"W\u0308",\u0174:"W\u0302",\u1E86:"W\u0307",\u1E8C:"X\u0308",\u1E8A:"X\u0307",\u00DD:"Y\u0301",\u1EF2:"Y\u0300",\u0178:"Y\u0308",\u1EF8:"Y\u0303",\u0232:"Y\u0304",\u0176:"Y\u0302",\u1E8E:"Y\u0307",\u0179:"Z\u0301",\u017D:"Z\u030C",\u1E90:"Z\u0302",\u017B:"Z\u0307",\u03AC:"\u03B1\u0301",\u1F70:"\u03B1\u0300",\u1FB1:"\u03B1\u0304",\u1FB0:"\u03B1\u0306",\u03AD:"\u03B5\u0301",\u1F72:"\u03B5\u0300",\u03AE:"\u03B7\u0301",\u1F74:"\u03B7\u0300",\u03AF:"\u03B9\u0301",\u1F76:"\u03B9\u0300",\u03CA:"\u03B9\u0308",\u0390:"\u03B9\u0308\u0301",\u1FD2:"\u03B9\u0308\u0300",\u1FD1:"\u03B9\u0304",\u1FD0:"\u03B9\u0306",\u03CC:"\u03BF\u0301",\u1F78:"\u03BF\u0300",\u03CD:"\u03C5\u0301",\u1F7A:"\u03C5\u0300",\u03CB:"\u03C5\u0308",\u03B0:"\u03C5\u0308\u0301",\u1FE2:"\u03C5\u0308\u0300",\u1FE1:"\u03C5\u0304",\u1FE0:"\u03C5\u0306",\u03CE:"\u03C9\u0301",\u1F7C:"\u03C9\u0300",\u038E:"\u03A5\u0301",\u1FEA:"\u03A5\u0300",\u03AB:"\u03A5\u0308",\u1FE9:"\u03A5\u0304",\u1FE8:"\u03A5\u0306",\u038F:"\u03A9\u0301",\u1FFA:"\u03A9\u0300"},A3=class t{static{o(this,"Parser")}constructor(e,r){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 sA(e,r,this.mode),this.settings=r,this.leftrightDepth=0}expect(e,r){if(r===void 0&&(r=!0),this.fetch().text!==e)throw new gt("Expected '"+e+"', got '"+this.fetch().text+"'",this.fetch());r&&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 r=this.nextToken;this.consume(),this.gullet.pushToken(new Do("}")),this.gullet.pushTokens(e);var n=this.parseExpression(!1);return this.expect("}"),this.nextToken=r,n}parseExpression(e,r){for(var n=[];;){this.mode==="math"&&this.consumeSpaces();var i=this.fetch();if(t.endOfExpression.indexOf(i.text)!==-1||r&&i.text===r||e&&xh[i.text]&&xh[i.text].infix)break;var a=this.parseAtom(r);if(a){if(a.type==="internal")continue}else break;n.push(a)}return this.mode==="text"&&this.formLigatures(n),this.handleInfixNodes(n)}handleInfixNodes(e){for(var r=-1,n,i=0;i=0&&this.settings.reportNonstrict("unicodeTextInMathMode",'Latin-1/Unicode text character "'+r[0]+'" used in math mode',e);var l=Nn[this.mode][r].group,u=to.range(e),h;if(LTe.hasOwnProperty(l)){var f=l;h={type:"atom",mode:this.mode,family:f,loc:u,text:r}}else h={type:l,mode:this.mode,loc:u,text:r};s=h}else if(r.charCodeAt(0)>=128)this.settings.strict&&(KV(r.charCodeAt(0))?this.mode==="math"&&this.settings.reportNonstrict("unicodeTextInMathMode",'Unicode text character "'+r[0]+'" used in math mode',e):this.settings.reportNonstrict("unknownSymbol",'Unrecognized Unicode character "'+r[0]+'"'+(" ("+r.charCodeAt(0)+")"),e)),s={type:"textord",mode:"text",loc:to.range(e),text:r};else return null;if(this.consume(),a)for(var d=0;d{e.tagName==="A"&&e.hasAttribute("target")&&e.setAttribute(t,e.getAttribute("target")??"")}),yh.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"))})}var pd,Gwe,Vwe,JU,QU,sr,Hwe,qwe,Wwe,Ywe,eH,md,vr,Xwe,jwe,rc,SA,Kwe,Qwe,ZU,O3,kn,gd,Zwe,kh,tt,gr=M(()=>{"use strict";O7();pd=//gi,Gwe=o(t=>t?eH(t).replace(/\\n/g,"#br#").split("#br#"):[""],"getRows"),Vwe=(()=>{let t=!1;return()=>{t||(Uwe(),t=!0)}})();o(Uwe,"setupDompurifyHooks");JU=o(t=>(Vwe(),yh.sanitize(t)),"removeScript"),QU=o((t,e)=>{if(e.flowchart?.htmlLabels!==!1){let r=e.securityLevel;r==="antiscript"||r==="strict"?t=JU(t):r!=="loose"&&(t=eH(t),t=t.replace(//g,">"),t=t.replace(/=/g,"="),t=Ywe(t))}return t},"sanitizeMore"),sr=o((t,e)=>t&&(e.dompurifyConfig?t=yh.sanitize(QU(t,e),e.dompurifyConfig).toString():t=yh.sanitize(QU(t,e),{FORBID_TAGS:["style"]}).toString(),t),"sanitizeText"),Hwe=o((t,e)=>typeof t=="string"?sr(t,e):t.flat().map(r=>sr(r,e)),"sanitizeTextOrArray"),qwe=o(t=>pd.test(t),"hasBreaks"),Wwe=o(t=>t.split(pd),"splitBreaks"),Ywe=o(t=>t.replace(/#br#/g,"
"),"placeholderToBreak"),eH=o(t=>t.replace(pd,"#br#"),"breakToPlaceholder"),md=o(t=>{let e="";return t&&(e=window.location.protocol+"//"+window.location.host+window.location.pathname+window.location.search,e=CSS.escape(e)),e},"getUrl"),vr=o(t=>!(t===!1||["false","null","0"].includes(String(t).trim().toLowerCase())),"evaluate"),Xwe=o(function(...t){let e=t.filter(r=>!isNaN(r));return Math.max(...e)},"getMax"),jwe=o(function(...t){let e=t.filter(r=>!isNaN(r));return Math.min(...e)},"getMin"),rc=o(function(t){let e=t.split(/(,)/),r=[];for(let n=0;n0&&n+1Math.max(0,t.split(e).length-1),"countOccurrence"),Kwe=o((t,e)=>{let r=SA(t,"~"),n=SA(e,"~");return r===1&&n===1},"shouldCombineSets"),Qwe=o(t=>{let e=SA(t,"~"),r=!1;if(e<=1)return t;e%2!==0&&t.startsWith("~")&&(t=t.substring(1),r=!0);let n=[...t],i=n.indexOf("~"),a=n.lastIndexOf("~");for(;i!==-1&&a!==-1&&i!==a;)n[i]="<",n[a]=">",i=n.indexOf("~"),a=n.lastIndexOf("~");return r&&n.unshift("~"),n.join("")},"processSet"),ZU=o(()=>window.MathMLElement!==void 0,"isMathMLSupported"),O3=/\$\$(.*)\$\$/g,kn=o(t=>(t.match(O3)?.length??0)>0,"hasKatex"),gd=o(async(t,e)=>{let r=document.createElement("div");r.innerHTML=await kh(t,e),r.id="katex-temp",r.style.visibility="hidden",r.style.position="absolute",r.style.top="0",document.querySelector("body")?.insertAdjacentElement("beforeend",r);let i={width:r.clientWidth,height:r.clientHeight};return r.remove(),i},"calculateMathMLDimensions"),Zwe=o(async(t,e)=>{if(!kn(t))return t;if(!(ZU()||e.legacyMathML||e.forceLegacyMathML))return t.replace(O3,"MathML is unsupported in this environment.");{let{default:r}=await Promise.resolve().then(()=>(KU(),jU)),n=e.forceLegacyMathML||!ZU()&&e.legacyMathML?"htmlAndMathml":"mathml";return t.split(pd).map(i=>kn(i)?`

${i}
`:`
${i}
`).join("").replace(O3,(i,a)=>r.renderToString(a,{throwOnError:!0,displayMode:!0,output:n}).replace(/\n/g," ").replace(//g,""))}return t.replace(O3,"Katex is not supported in @mermaid-js/tiny. Please use the full mermaid library.")},"renderKatexUnsanitized"),kh=o(async(t,e)=>sr(await Zwe(t,e),e),"renderKatexSanitized"),tt={getRows:Gwe,sanitizeText:sr,sanitizeTextOrArray:Hwe,hasBreaks:qwe,splitBreaks:Wwe,lineBreakRegex:pd,removeScript:JU,getUrl:md,evaluate:vr,getMax:Xwe,getMin:jwe}});var AA,CA,tH,P3,rH,nH,_s,nc=M(()=>{"use strict";cG();qn();gr();pt();AA={body:'?',height:80,width:80},CA=new Map,tH=new Map,P3=o(t=>{for(let e of t){if(!e.name)throw new Error('Invalid icon loader. Must have a "name" property with non-empty string value.');if(X.debug("Registering icon pack:",e.name),"loader"in e)tH.set(e.name,e.loader);else if("icons"in e)CA.set(e.name,e.icons);else throw X.error("Invalid icon loader:",e),new Error('Invalid icon loader. Must have either "icons" or "loader" property.')}},"registerIconPacks"),rH=o(async(t,e)=>{let r=r7(t,!0,e!==void 0);if(!r)throw new Error(`Invalid icon name: ${t}`);let n=r.prefix||e;if(!n)throw new Error(`Icon name must contain a prefix: ${t}`);let i=CA.get(n);if(!i){let s=tH.get(n);if(!s)throw new Error(`Icon set not found: ${r.prefix}`);try{i={...await s(),prefix:n},CA.set(n,i)}catch(l){throw X.error(l),new Error(`Failed to load icon set: ${r.prefix}`)}}let a=i7(i,r.name);if(!a)throw new Error(`Icon not found: ${t}`);return a},"getRegisteredIconData"),nH=o(async t=>{try{return await rH(t),!0}catch{return!1}},"isIconAvailable"),_s=o(async(t,e,r)=>{let n;try{n=await rH(t,e?.fallbackPrefix)}catch(s){X.error(s),n=AA}let i=s7(n,e),a=l7(o7(i.body),{...i.attributes,...r});return sr(a,Qt())},"getIconSVG")});function B3(t){for(var e=[],r=1;r{"use strict";o(B3,"dedent")});var F3,yd,iH,$3=M(()=>{"use strict";F3=/^-{3}\s*[\n\r](.*?)[\n\r]-{3}\s*[\n\r]+/s,yd=/%{2}{\s*(?:(\w+)\s*:|(\w+))\s*(?:(\w+)|((?:(?!}%{2}).|\r?\n)*))?\s*(?:}%{2})?/gi,iH=/\s*%%.*\n/gm});var A0,DA=M(()=>{"use strict";A0=class extends Error{static{o(this,"UnknownDiagramError")}constructor(e){super(e),this.name="UnknownDiagramError"}}});var gu,_0,tv,LA,aH,vd=M(()=>{"use strict";pt();$3();DA();gu={},_0=o(function(t,e){t=t.replace(F3,"").replace(yd,"").replace(iH,` +`);for(let[r,{detector:n}]of Object.entries(gu))if(n(t,e))return r;throw new A0(`No diagram type detected matching given configuration for text: ${t}`)},"detectType"),tv=o((...t)=>{for(let{id:e,detector:r,loader:n}of t)LA(e,r,n)},"registerLazyLoadedDiagrams"),LA=o((t,e,r)=>{gu[t]&&X.warn(`Detector with key ${t} already exists. Overwriting.`),gu[t]={detector:e,loader:r},X.debug(`Detector with key ${t} added${r?" with loader":""}`)},"addDetector"),aH=o(t=>gu[t].loader,"getDiagramLoader")});var rv,sH,RA=M(()=>{"use strict";rv=(function(){var t=o(function(He,Le,Ie,Ne){for(Ie=Ie||{},Ne=He.length;Ne--;Ie[He[Ne]]=Le);return Ie},"o"),e=[1,24],r=[1,25],n=[1,26],i=[1,27],a=[1,28],s=[1,63],l=[1,64],u=[1,65],h=[1,66],f=[1,67],d=[1,68],p=[1,69],m=[1,29],g=[1,30],y=[1,31],v=[1,32],x=[1,33],b=[1,34],T=[1,35],S=[1,36],w=[1,37],k=[1,38],C=[1,39],A=[1,40],L=[1,41],I=[1,42],R=[1,43],E=[1,44],_=[1,45],D=[1,46],O=[1,47],N=[1,48],P=[1,50],B=[1,51],F=[1,52],V=[1,53],$=[1,54],U=[1,55],j=[1,56],ee=[1,57],q=[1,58],oe=[1,59],Q=[1,60],ue=[14,42],te=[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],re=[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],J=[1,82],K=[1,83],ae=[1,84],Z=[1,85],de=[12,14,42],ne=[12,14,33,42],Te=[12,14,33,42,76,77,79,80],W=[12,33],Ve=[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],pe={trace:o(function(){},"trace"),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:o(function(Le,Ie,Ne,Ce,Fe,fe,xe){var Y=fe.length-1;switch(Fe){case 3:Ce.setDirection("TB");break;case 4:Ce.setDirection("BT");break;case 5:Ce.setDirection("RL");break;case 6:Ce.setDirection("LR");break;case 8:case 9:case 10:case 11:case 12:Ce.setC4Type(fe[Y-3]);break;case 19:Ce.setTitle(fe[Y].substring(6)),this.$=fe[Y].substring(6);break;case 20:Ce.setAccDescription(fe[Y].substring(15)),this.$=fe[Y].substring(15);break;case 21:this.$=fe[Y].trim(),Ce.setTitle(this.$);break;case 22:case 23:this.$=fe[Y].trim(),Ce.setAccDescription(this.$);break;case 28:fe[Y].splice(2,0,"ENTERPRISE"),Ce.addPersonOrSystemBoundary(...fe[Y]),this.$=fe[Y];break;case 29:fe[Y].splice(2,0,"SYSTEM"),Ce.addPersonOrSystemBoundary(...fe[Y]),this.$=fe[Y];break;case 30:Ce.addPersonOrSystemBoundary(...fe[Y]),this.$=fe[Y];break;case 31:fe[Y].splice(2,0,"CONTAINER"),Ce.addContainerBoundary(...fe[Y]),this.$=fe[Y];break;case 32:Ce.addDeploymentNode("node",...fe[Y]),this.$=fe[Y];break;case 33:Ce.addDeploymentNode("nodeL",...fe[Y]),this.$=fe[Y];break;case 34:Ce.addDeploymentNode("nodeR",...fe[Y]),this.$=fe[Y];break;case 35:Ce.popBoundaryParseStack();break;case 39:Ce.addPersonOrSystem("person",...fe[Y]),this.$=fe[Y];break;case 40:Ce.addPersonOrSystem("external_person",...fe[Y]),this.$=fe[Y];break;case 41:Ce.addPersonOrSystem("system",...fe[Y]),this.$=fe[Y];break;case 42:Ce.addPersonOrSystem("system_db",...fe[Y]),this.$=fe[Y];break;case 43:Ce.addPersonOrSystem("system_queue",...fe[Y]),this.$=fe[Y];break;case 44:Ce.addPersonOrSystem("external_system",...fe[Y]),this.$=fe[Y];break;case 45:Ce.addPersonOrSystem("external_system_db",...fe[Y]),this.$=fe[Y];break;case 46:Ce.addPersonOrSystem("external_system_queue",...fe[Y]),this.$=fe[Y];break;case 47:Ce.addContainer("container",...fe[Y]),this.$=fe[Y];break;case 48:Ce.addContainer("container_db",...fe[Y]),this.$=fe[Y];break;case 49:Ce.addContainer("container_queue",...fe[Y]),this.$=fe[Y];break;case 50:Ce.addContainer("external_container",...fe[Y]),this.$=fe[Y];break;case 51:Ce.addContainer("external_container_db",...fe[Y]),this.$=fe[Y];break;case 52:Ce.addContainer("external_container_queue",...fe[Y]),this.$=fe[Y];break;case 53:Ce.addComponent("component",...fe[Y]),this.$=fe[Y];break;case 54:Ce.addComponent("component_db",...fe[Y]),this.$=fe[Y];break;case 55:Ce.addComponent("component_queue",...fe[Y]),this.$=fe[Y];break;case 56:Ce.addComponent("external_component",...fe[Y]),this.$=fe[Y];break;case 57:Ce.addComponent("external_component_db",...fe[Y]),this.$=fe[Y];break;case 58:Ce.addComponent("external_component_queue",...fe[Y]),this.$=fe[Y];break;case 60:Ce.addRel("rel",...fe[Y]),this.$=fe[Y];break;case 61:Ce.addRel("birel",...fe[Y]),this.$=fe[Y];break;case 62:Ce.addRel("rel_u",...fe[Y]),this.$=fe[Y];break;case 63:Ce.addRel("rel_d",...fe[Y]),this.$=fe[Y];break;case 64:Ce.addRel("rel_l",...fe[Y]),this.$=fe[Y];break;case 65:Ce.addRel("rel_r",...fe[Y]),this.$=fe[Y];break;case 66:Ce.addRel("rel_b",...fe[Y]),this.$=fe[Y];break;case 67:fe[Y].splice(0,1),Ce.addRel("rel",...fe[Y]),this.$=fe[Y];break;case 68:Ce.updateElStyle("update_el_style",...fe[Y]),this.$=fe[Y];break;case 69:Ce.updateRelStyle("update_rel_style",...fe[Y]),this.$=fe[Y];break;case 70:Ce.updateLayoutConfig("update_layout_config",...fe[Y]),this.$=fe[Y];break;case 71:this.$=[fe[Y]];break;case 72:fe[Y].unshift(fe[Y-1]),this.$=fe[Y];break;case 73:case 75:this.$=fe[Y].trim();break;case 74:let he={};he[fe[Y-1].trim()]=fe[Y].trim(),this.$=he;break;case 76:this.$="";break}},"anonymous"),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:e,23:r,24:n,26:i,28:a,29:49,30:61,32:62,34:s,36:l,37:u,38:h,39:f,40:d,41:p,43:23,44:m,45:g,46:y,47:v,48:x,49:b,50:T,51:S,52:w,53:k,54:C,55:A,56:L,57:I,58:R,59:E,60:_,61:D,62:O,63:N,64:P,65:B,66:F,67:V,68:$,69:U,70:j,71:ee,72:q,73:oe,74:Q},{13:70,19:20,20:21,21:22,22:e,23:r,24:n,26:i,28:a,29:49,30:61,32:62,34:s,36:l,37:u,38:h,39:f,40:d,41:p,43:23,44:m,45:g,46:y,47:v,48:x,49:b,50:T,51:S,52:w,53:k,54:C,55:A,56:L,57:I,58:R,59:E,60:_,61:D,62:O,63:N,64:P,65:B,66:F,67:V,68:$,69:U,70:j,71:ee,72:q,73:oe,74:Q},{13:71,19:20,20:21,21:22,22:e,23:r,24:n,26:i,28:a,29:49,30:61,32:62,34:s,36:l,37:u,38:h,39:f,40:d,41:p,43:23,44:m,45:g,46:y,47:v,48:x,49:b,50:T,51:S,52:w,53:k,54:C,55:A,56:L,57:I,58:R,59:E,60:_,61:D,62:O,63:N,64:P,65:B,66:F,67:V,68:$,69:U,70:j,71:ee,72:q,73:oe,74:Q},{13:72,19:20,20:21,21:22,22:e,23:r,24:n,26:i,28:a,29:49,30:61,32:62,34:s,36:l,37:u,38:h,39:f,40:d,41:p,43:23,44:m,45:g,46:y,47:v,48:x,49:b,50:T,51:S,52:w,53:k,54:C,55:A,56:L,57:I,58:R,59:E,60:_,61:D,62:O,63:N,64:P,65:B,66:F,67:V,68:$,69:U,70:j,71:ee,72:q,73:oe,74:Q},{13:73,19:20,20:21,21:22,22:e,23:r,24:n,26:i,28:a,29:49,30:61,32:62,34:s,36:l,37:u,38:h,39:f,40:d,41:p,43:23,44:m,45:g,46:y,47:v,48:x,49:b,50:T,51:S,52:w,53:k,54:C,55:A,56:L,57:I,58:R,59:E,60:_,61:D,62:O,63:N,64:P,65:B,66:F,67:V,68:$,69:U,70:j,71:ee,72:q,73:oe,74:Q},{14:[1,74]},t(ue,[2,13],{43:23,29:49,30:61,32:62,20:75,34:s,36:l,37:u,38:h,39:f,40:d,41:p,44:m,45:g,46:y,47:v,48:x,49:b,50:T,51:S,52:w,53:k,54:C,55:A,56:L,57:I,58:R,59:E,60:_,61:D,62:O,63:N,64:P,65:B,66:F,67:V,68:$,69:U,70:j,71:ee,72:q,73:oe,74:Q}),t(ue,[2,14]),t(te,[2,16],{12:[1,76]}),t(ue,[2,36],{12:[1,77]}),t(re,[2,19]),t(re,[2,20]),{25:[1,78]},{27:[1,79]},t(re,[2,23]),{35:80,75:81,76:J,77:K,79:ae,80:Z},{35:86,75:81,76:J,77:K,79:ae,80:Z},{35:87,75:81,76:J,77:K,79:ae,80:Z},{35:88,75:81,76:J,77:K,79:ae,80:Z},{35:89,75:81,76:J,77:K,79:ae,80:Z},{35:90,75:81,76:J,77:K,79:ae,80:Z},{35:91,75:81,76:J,77:K,79:ae,80:Z},{35:92,75:81,76:J,77:K,79:ae,80:Z},{35:93,75:81,76:J,77:K,79:ae,80:Z},{35:94,75:81,76:J,77:K,79:ae,80:Z},{35:95,75:81,76:J,77:K,79:ae,80:Z},{35:96,75:81,76:J,77:K,79:ae,80:Z},{35:97,75:81,76:J,77:K,79:ae,80:Z},{35:98,75:81,76:J,77:K,79:ae,80:Z},{35:99,75:81,76:J,77:K,79:ae,80:Z},{35:100,75:81,76:J,77:K,79:ae,80:Z},{35:101,75:81,76:J,77:K,79:ae,80:Z},{35:102,75:81,76:J,77:K,79:ae,80:Z},{35:103,75:81,76:J,77:K,79:ae,80:Z},{35:104,75:81,76:J,77:K,79:ae,80:Z},t(de,[2,59]),{35:105,75:81,76:J,77:K,79:ae,80:Z},{35:106,75:81,76:J,77:K,79:ae,80:Z},{35:107,75:81,76:J,77:K,79:ae,80:Z},{35:108,75:81,76:J,77:K,79:ae,80:Z},{35:109,75:81,76:J,77:K,79:ae,80:Z},{35:110,75:81,76:J,77:K,79:ae,80:Z},{35:111,75:81,76:J,77:K,79:ae,80:Z},{35:112,75:81,76:J,77:K,79:ae,80:Z},{35:113,75:81,76:J,77:K,79:ae,80:Z},{35:114,75:81,76:J,77:K,79:ae,80:Z},{35:115,75:81,76:J,77:K,79:ae,80:Z},{20:116,29:49,30:61,32:62,34:s,36:l,37:u,38:h,39:f,40:d,41:p,43:23,44:m,45:g,46:y,47:v,48:x,49:b,50:T,51:S,52:w,53:k,54:C,55:A,56:L,57:I,58:R,59:E,60:_,61:D,62:O,63:N,64:P,65:B,66:F,67:V,68:$,69:U,70:j,71:ee,72:q,73:oe,74:Q},{12:[1,118],33:[1,117]},{35:119,75:81,76:J,77:K,79:ae,80:Z},{35:120,75:81,76:J,77:K,79:ae,80:Z},{35:121,75:81,76:J,77:K,79:ae,80:Z},{35:122,75:81,76:J,77:K,79:ae,80:Z},{35:123,75:81,76:J,77:K,79:ae,80:Z},{35:124,75:81,76:J,77:K,79:ae,80:Z},{35:125,75:81,76:J,77:K,79:ae,80:Z},{14:[1,126]},{14:[1,127]},{14:[1,128]},{14:[1,129]},{1:[2,8]},t(ue,[2,15]),t(te,[2,17],{21:22,19:130,22:e,23:r,24:n,26:i,28:a}),t(ue,[2,37],{19:20,20:21,21:22,43:23,29:49,30:61,32:62,13:131,22:e,23:r,24:n,26:i,28:a,34:s,36:l,37:u,38:h,39:f,40:d,41:p,44:m,45:g,46:y,47:v,48:x,49:b,50:T,51:S,52:w,53:k,54:C,55:A,56:L,57:I,58:R,59:E,60:_,61:D,62:O,63:N,64:P,65:B,66:F,67:V,68:$,69:U,70:j,71:ee,72:q,73:oe,74:Q}),t(re,[2,21]),t(re,[2,22]),t(de,[2,39]),t(ne,[2,71],{75:81,35:132,76:J,77:K,79:ae,80:Z}),t(Te,[2,73]),{78:[1,133]},t(Te,[2,75]),t(Te,[2,76]),t(de,[2,40]),t(de,[2,41]),t(de,[2,42]),t(de,[2,43]),t(de,[2,44]),t(de,[2,45]),t(de,[2,46]),t(de,[2,47]),t(de,[2,48]),t(de,[2,49]),t(de,[2,50]),t(de,[2,51]),t(de,[2,52]),t(de,[2,53]),t(de,[2,54]),t(de,[2,55]),t(de,[2,56]),t(de,[2,57]),t(de,[2,58]),t(de,[2,60]),t(de,[2,61]),t(de,[2,62]),t(de,[2,63]),t(de,[2,64]),t(de,[2,65]),t(de,[2,66]),t(de,[2,67]),t(de,[2,68]),t(de,[2,69]),t(de,[2,70]),{31:134,42:[1,135]},{12:[1,136]},{33:[1,137]},t(W,[2,28]),t(W,[2,29]),t(W,[2,30]),t(W,[2,31]),t(W,[2,32]),t(W,[2,33]),t(W,[2,34]),{1:[2,9]},{1:[2,10]},{1:[2,11]},{1:[2,12]},t(te,[2,18]),t(ue,[2,38]),t(ne,[2,72]),t(Te,[2,74]),t(de,[2,24]),t(de,[2,35]),t(Ve,[2,25]),t(Ve,[2,26],{12:[1,138]}),t(Ve,[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:o(function(Le,Ie){if(Ie.recoverable)this.trace(Le);else{var Ne=new Error(Le);throw Ne.hash=Ie,Ne}},"parseError"),parse:o(function(Le){var Ie=this,Ne=[0],Ce=[],Fe=[null],fe=[],xe=this.table,Y="",he=0,z=0,se=0,le=2,ke=1,ve=fe.slice.call(arguments,1),ye=Object.create(this.lexer),Re={yy:{}};for(var _e in this.yy)Object.prototype.hasOwnProperty.call(this.yy,_e)&&(Re.yy[_e]=this.yy[_e]);ye.setInput(Le,Re.yy),Re.yy.lexer=ye,Re.yy.parser=this,typeof ye.yylloc>"u"&&(ye.yylloc={});var ze=ye.yylloc;fe.push(ze);var Ke=ye.options&&ye.options.ranges;typeof Re.yy.parseError=="function"?this.parseError=Re.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function xt(ft){Ne.length=Ne.length-2*ft,Fe.length=Fe.length-ft,fe.length=fe.length-ft}o(xt,"popStack");function We(){var ft;return ft=Ce.pop()||ye.lex()||ke,typeof ft!="number"&&(ft instanceof Array&&(Ce=ft,ft=Ce.pop()),ft=Ie.symbols_[ft]||ft),ft}o(We,"lex");for(var Oe,et,Ue,lt,Gt,vt,Lt={},dt,nt,bt,wt;;){if(Ue=Ne[Ne.length-1],this.defaultActions[Ue]?lt=this.defaultActions[Ue]:((Oe===null||typeof Oe>"u")&&(Oe=We()),lt=xe[Ue]&&xe[Ue][Oe]),typeof lt>"u"||!lt.length||!lt[0]){var yt="";wt=[];for(dt in xe[Ue])this.terminals_[dt]&&dt>le&&wt.push("'"+this.terminals_[dt]+"'");ye.showPosition?yt="Parse error on line "+(he+1)+`: +`+ye.showPosition()+` +Expecting `+wt.join(", ")+", got '"+(this.terminals_[Oe]||Oe)+"'":yt="Parse error on line "+(he+1)+": Unexpected "+(Oe==ke?"end of input":"'"+(this.terminals_[Oe]||Oe)+"'"),this.parseError(yt,{text:ye.match,token:this.terminals_[Oe]||Oe,line:ye.yylineno,loc:ze,expected:wt})}if(lt[0]instanceof Array&<.length>1)throw new Error("Parse Error: multiple actions possible at state: "+Ue+", token: "+Oe);switch(lt[0]){case 1:Ne.push(Oe),Fe.push(ye.yytext),fe.push(ye.yylloc),Ne.push(lt[1]),Oe=null,et?(Oe=et,et=null):(z=ye.yyleng,Y=ye.yytext,he=ye.yylineno,ze=ye.yylloc,se>0&&se--);break;case 2:if(nt=this.productions_[lt[1]][1],Lt.$=Fe[Fe.length-nt],Lt._$={first_line:fe[fe.length-(nt||1)].first_line,last_line:fe[fe.length-1].last_line,first_column:fe[fe.length-(nt||1)].first_column,last_column:fe[fe.length-1].last_column},Ke&&(Lt._$.range=[fe[fe.length-(nt||1)].range[0],fe[fe.length-1].range[1]]),vt=this.performAction.apply(Lt,[Y,z,he,Re.yy,lt[1],Fe,fe].concat(ve)),typeof vt<"u")return vt;nt&&(Ne=Ne.slice(0,-1*nt*2),Fe=Fe.slice(0,-1*nt),fe=fe.slice(0,-1*nt)),Ne.push(this.productions_[lt[1]][0]),Fe.push(Lt.$),fe.push(Lt._$),bt=xe[Ne[Ne.length-2]][Ne[Ne.length-1]],Ne.push(bt);break;case 3:return!0}}return!0},"parse")},Be=(function(){var He={EOF:1,parseError:o(function(Ie,Ne){if(this.yy.parser)this.yy.parser.parseError(Ie,Ne);else throw new Error(Ie)},"parseError"),setInput:o(function(Le,Ie){return this.yy=Ie||this.yy||{},this._input=Le,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},"setInput"),input:o(function(){var Le=this._input[0];this.yytext+=Le,this.yyleng++,this.offset++,this.match+=Le,this.matched+=Le;var Ie=Le.match(/(?:\r\n?|\n).*/g);return Ie?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),Le},"input"),unput:o(function(Le){var Ie=Le.length,Ne=Le.split(/(?:\r\n?|\n)/g);this._input=Le+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-Ie),this.offset-=Ie;var Ce=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),Ne.length-1&&(this.yylineno-=Ne.length-1);var Fe=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:Ne?(Ne.length===Ce.length?this.yylloc.first_column:0)+Ce[Ce.length-Ne.length].length-Ne[0].length:this.yylloc.first_column-Ie},this.options.ranges&&(this.yylloc.range=[Fe[0],Fe[0]+this.yyleng-Ie]),this.yyleng=this.yytext.length,this},"unput"),more:o(function(){return this._more=!0,this},"more"),reject:o(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},"reject"),less:o(function(Le){this.unput(this.match.slice(Le))},"less"),pastInput:o(function(){var Le=this.matched.substr(0,this.matched.length-this.match.length);return(Le.length>20?"...":"")+Le.substr(-20).replace(/\n/g,"")},"pastInput"),upcomingInput:o(function(){var Le=this.match;return Le.length<20&&(Le+=this._input.substr(0,20-Le.length)),(Le.substr(0,20)+(Le.length>20?"...":"")).replace(/\n/g,"")},"upcomingInput"),showPosition:o(function(){var Le=this.pastInput(),Ie=new Array(Le.length+1).join("-");return Le+this.upcomingInput()+` +`+Ie+"^"},"showPosition"),test_match:o(function(Le,Ie){var Ne,Ce,Fe;if(this.options.backtrack_lexer&&(Fe={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&&(Fe.yylloc.range=this.yylloc.range.slice(0))),Ce=Le[0].match(/(?:\r\n?|\n).*/g),Ce&&(this.yylineno+=Ce.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:Ce?Ce[Ce.length-1].length-Ce[Ce.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+Le[0].length},this.yytext+=Le[0],this.match+=Le[0],this.matches=Le,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(Le[0].length),this.matched+=Le[0],Ne=this.performAction.call(this,this.yy,this,Ie,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),Ne)return Ne;if(this._backtrack){for(var fe in Fe)this[fe]=Fe[fe];return!1}return!1},"test_match"),next:o(function(){if(this.done)return this.EOF;this._input||(this.done=!0);var Le,Ie,Ne,Ce;this._more||(this.yytext="",this.match="");for(var Fe=this._currentRules(),fe=0;feIe[0].length)){if(Ie=Ne,Ce=fe,this.options.backtrack_lexer){if(Le=this.test_match(Ne,Fe[fe]),Le!==!1)return Le;if(this._backtrack){Ie=!1;continue}else return!1}else if(!this.options.flex)break}return Ie?(Le=this.test_match(Ie,Fe[Ce]),Le!==!1?Le:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text. +`+this.showPosition(),{text:"",token:null,line:this.yylineno})},"next"),lex:o(function(){var Ie=this.next();return Ie||this.lex()},"lex"),begin:o(function(Ie){this.conditionStack.push(Ie)},"begin"),popState:o(function(){var Ie=this.conditionStack.length-1;return Ie>0?this.conditionStack.pop():this.conditionStack[0]},"popState"),_currentRules:o(function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},"_currentRules"),topState:o(function(Ie){return Ie=this.conditionStack.length-1-Math.abs(Ie||0),Ie>=0?this.conditionStack[Ie]:"INITIAL"},"topState"),pushState:o(function(Ie){this.begin(Ie)},"pushState"),stateStackSize:o(function(){return this.conditionStack.length},"stateStackSize"),options:{},performAction:o(function(Ie,Ne,Ce,Fe){var fe=Fe;switch(Ce){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;break;case 7:return this.popState(),"acc_title_value";break;case 8:return this.begin("acc_descr"),26;break;case 9:return this.popState(),"acc_descr_value";break;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;break;case 23:return this.begin("person"),44;break;case 24:return this.begin("system_ext_queue"),51;break;case 25:return this.begin("system_ext_db"),50;break;case 26:return this.begin("system_ext"),49;break;case 27:return this.begin("system_queue"),48;break;case 28:return this.begin("system_db"),47;break;case 29:return this.begin("system"),46;break;case 30:return this.begin("boundary"),37;break;case 31:return this.begin("enterprise_boundary"),34;break;case 32:return this.begin("system_boundary"),36;break;case 33:return this.begin("container_ext_queue"),57;break;case 34:return this.begin("container_ext_db"),56;break;case 35:return this.begin("container_ext"),55;break;case 36:return this.begin("container_queue"),54;break;case 37:return this.begin("container_db"),53;break;case 38:return this.begin("container"),52;break;case 39:return this.begin("container_boundary"),38;break;case 40:return this.begin("component_ext_queue"),63;break;case 41:return this.begin("component_ext_db"),62;break;case 42:return this.begin("component_ext"),61;break;case 43:return this.begin("component_queue"),60;break;case 44:return this.begin("component_db"),59;break;case 45:return this.begin("component"),58;break;case 46:return this.begin("node"),39;break;case 47:return this.begin("node"),39;break;case 48:return this.begin("node_l"),40;break;case 49:return this.begin("node_r"),41;break;case 50:return this.begin("rel"),64;break;case 51:return this.begin("birel"),65;break;case 52:return this.begin("rel_u"),66;break;case 53:return this.begin("rel_u"),66;break;case 54:return this.begin("rel_d"),67;break;case 55:return this.begin("rel_d"),67;break;case 56:return this.begin("rel_l"),68;break;case 57:return this.begin("rel_l"),68;break;case 58:return this.begin("rel_r"),69;break;case 59:return this.begin("rel_r"),69;break;case 60:return this.begin("rel_b"),70;break;case 61:return this.begin("rel_index"),71;break;case 62:return this.begin("update_el_style"),72;break;case 63:return this.begin("update_rel_style"),73;break;case 64:return this.begin("update_layout_config"),74;break;case 65:return"EOF_IN_STRUCT";case 66:return this.begin("attribute"),"ATTRIBUTE_EMPTY";break;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";break;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}},"anonymous"),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 He})();pe.lexer=Be;function Ye(){this.yy={}}return o(Ye,"Parser"),Ye.prototype=pe,pe.Parser=Ye,new Ye})();rv.parser=rv;sH=rv});var Jwe,eke,mn,ic,Ei=M(()=>{"use strict";pt();Jwe=o(function(t,e){for(let r of e)t.attr(r[0],r[1])},"d3Attrs"),eke=o(function(t,e,r){let n=new Map;return r?(n.set("width","100%"),n.set("style",`max-width: ${e}px;`)):(n.set("height",t),n.set("width",e)),n},"calculateSvgSizeAttrs"),mn=o(function(t,e,r,n){let i=eke(e,r,n);Jwe(t,i)},"configureSvgSize"),ic=o(function(t,e,r,n){let i=e.node().getBBox(),a=i.width,s=i.height;X.info(`SVG bounds: ${a}x${s}`,i);let l=0,u=0;X.info(`Graph bounds: ${l}x${u}`,t),l=a+r*2,u=s+r*2,X.info(`Calculated bounds: ${l}x${u}`),mn(e,u,l,n);let h=`${i.x-r} ${i.y-r} ${i.width+2*r} ${i.height+2*r}`;e.attr("viewBox",h)},"setupGraphViewbox")});var z3,tke,oH,lH,NA=M(()=>{"use strict";pt();z3={},tke=o((t,e,r)=>{let n="";return t in z3&&z3[t]?n=z3[t](r):X.warn(`No theme found for ${t}`),` & { + font-family: ${r.fontFamily}; + font-size: ${r.fontSize}; + fill: ${r.textColor} + } + @keyframes edge-animation-frame { + from { + stroke-dashoffset: 0; + } + } + @keyframes dash { + to { + stroke-dashoffset: 0; + } + } + & .edge-animation-slow { + stroke-dasharray: 9,5 !important; + stroke-dashoffset: 900; + animation: dash 50s linear infinite; + stroke-linecap: round; + } + & .edge-animation-fast { + stroke-dasharray: 9,5 !important; + stroke-dashoffset: 900; + animation: dash 20s linear infinite; + stroke-linecap: round; + } + /* Classes common for multiple diagrams */ + + & .error-icon { + fill: ${r.errorBkgColor}; + } + & .error-text { + fill: ${r.errorTextColor}; + stroke: ${r.errorTextColor}; + } + + & .edge-thickness-normal { + stroke-width: 1px; + } + & .edge-thickness-thick { + stroke-width: 3.5px + } + & .edge-pattern-solid { + stroke-dasharray: 0; + } + & .edge-thickness-invisible { + stroke-width: 0; + fill: none; + } + & .edge-pattern-dashed{ + stroke-dasharray: 3; + } + .edge-pattern-dotted { + stroke-dasharray: 2; + } + + & .marker { + fill: ${r.lineColor}; + stroke: ${r.lineColor}; + } + & .marker.cross { + stroke: ${r.lineColor}; + } + + & svg { + font-family: ${r.fontFamily}; + font-size: ${r.fontSize}; + } + & p { + margin: 0 + } + + ${n} + + ${e} +`},"getStyles"),oH=o((t,e)=>{e!==void 0&&(z3[t]=e)},"addStylesForDiagram"),lH=tke});var nv={};dr(nv,{clear:()=>Sr,getAccDescription:()=>Or,getAccTitle:()=>Mr,getDiagramTitle:()=>Pr,setAccDescription:()=>Ir,setAccTitle:()=>Rr,setDiagramTitle:()=>$r});var MA,IA,OA,PA,Sr,Rr,Mr,Ir,Or,$r,Pr,ci=M(()=>{"use strict";gr();qn();MA="",IA="",OA="",PA=o(t=>sr(t,Qt()),"sanitizeText"),Sr=o(()=>{MA="",OA="",IA=""},"clear"),Rr=o(t=>{MA=PA(t).replace(/^\s+/g,"")},"setAccTitle"),Mr=o(()=>MA,"getAccTitle"),Ir=o(t=>{OA=PA(t).replace(/\n\s+/g,` +`)},"setAccDescription"),Or=o(()=>OA,"getAccDescription"),$r=o(t=>{IA=PA(t)},"setDiagramTitle"),Pr=o(()=>IA,"getDiagramTitle")});var cH,rke,ge,iv,V3,av,FA,nke,G3,xd,sv,BA,Xt=M(()=>{"use strict";vd();pt();qn();gr();Ei();NA();ci();cH=X,rke=Ly,ge=Qt,iv=i3,V3=gh,av=o(t=>sr(t,ge()),"sanitizeText"),FA=ic,nke=o(()=>nv,"getCommonDb"),G3={},xd=o((t,e,r)=>{G3[t]&&cH.warn(`Diagram with id ${t} already registered. Overwriting.`),G3[t]=e,r&&LA(t,r),oH(t,e.styles),e.injectUtils?.(cH,rke,ge,av,FA,nke(),()=>{})},"registerDiagram"),sv=o(t=>{if(t in G3)return G3[t];throw new BA(t)},"getDiagram"),BA=class extends Error{static{o(this,"DiagramNotFoundError")}constructor(e){super(`Diagram ${e} not found.`)}}});var ml,Eh,ns,pl,ac,ov,$A,zA,U3,H3,uH,ike,ake,ske,oke,lke,cke,uke,hke,fke,dke,pke,mke,gke,yke,vke,xke,bke,hH,Tke,wke,fH,kke,Eke,Ske,Cke,Sh,Ake,_ke,Dke,Lke,Rke,lv,GA=M(()=>{"use strict";Xt();gr();ci();ml=[],Eh=[""],ns="global",pl="",ac=[{alias:"global",label:{text:"global"},type:{text:"global"},tags:null,link:null,parentBoundary:""}],ov=[],$A="",zA=!1,U3=4,H3=2,ike=o(function(){return uH},"getC4Type"),ake=o(function(t){uH=sr(t,ge())},"setC4Type"),ske=o(function(t,e,r,n,i,a,s,l,u){if(t==null||e===void 0||e===null||r===void 0||r===null||n===void 0||n===null)return;let h={},f=ov.find(d=>d.from===e&&d.to===r);if(f?h=f:ov.push(h),h.type=t,h.from=e,h.to=r,h.label={text:n},i==null)h.techn={text:""};else if(typeof i=="object"){let[d,p]=Object.entries(i)[0];h[d]={text:p}}else h.techn={text:i};if(a==null)h.descr={text:""};else if(typeof a=="object"){let[d,p]=Object.entries(a)[0];h[d]={text:p}}else h.descr={text:a};if(typeof s=="object"){let[d,p]=Object.entries(s)[0];h[d]=p}else h.sprite=s;if(typeof l=="object"){let[d,p]=Object.entries(l)[0];h[d]=p}else h.tags=l;if(typeof u=="object"){let[d,p]=Object.entries(u)[0];h[d]=p}else h.link=u;h.wrap=Sh()},"addRel"),oke=o(function(t,e,r,n,i,a,s){if(e===null||r===null)return;let l={},u=ml.find(h=>h.alias===e);if(u&&e===u.alias?l=u:(l.alias=e,ml.push(l)),r==null?l.label={text:""}:l.label={text:r},n==null)l.descr={text:""};else if(typeof n=="object"){let[h,f]=Object.entries(n)[0];l[h]={text:f}}else l.descr={text:n};if(typeof i=="object"){let[h,f]=Object.entries(i)[0];l[h]=f}else l.sprite=i;if(typeof a=="object"){let[h,f]=Object.entries(a)[0];l[h]=f}else l.tags=a;if(typeof s=="object"){let[h,f]=Object.entries(s)[0];l[h]=f}else l.link=s;l.typeC4Shape={text:t},l.parentBoundary=ns,l.wrap=Sh()},"addPersonOrSystem"),lke=o(function(t,e,r,n,i,a,s,l){if(e===null||r===null)return;let u={},h=ml.find(f=>f.alias===e);if(h&&e===h.alias?u=h:(u.alias=e,ml.push(u)),r==null?u.label={text:""}:u.label={text:r},n==null)u.techn={text:""};else if(typeof n=="object"){let[f,d]=Object.entries(n)[0];u[f]={text:d}}else u.techn={text:n};if(i==null)u.descr={text:""};else if(typeof i=="object"){let[f,d]=Object.entries(i)[0];u[f]={text:d}}else u.descr={text:i};if(typeof a=="object"){let[f,d]=Object.entries(a)[0];u[f]=d}else u.sprite=a;if(typeof s=="object"){let[f,d]=Object.entries(s)[0];u[f]=d}else u.tags=s;if(typeof l=="object"){let[f,d]=Object.entries(l)[0];u[f]=d}else u.link=l;u.wrap=Sh(),u.typeC4Shape={text:t},u.parentBoundary=ns},"addContainer"),cke=o(function(t,e,r,n,i,a,s,l){if(e===null||r===null)return;let u={},h=ml.find(f=>f.alias===e);if(h&&e===h.alias?u=h:(u.alias=e,ml.push(u)),r==null?u.label={text:""}:u.label={text:r},n==null)u.techn={text:""};else if(typeof n=="object"){let[f,d]=Object.entries(n)[0];u[f]={text:d}}else u.techn={text:n};if(i==null)u.descr={text:""};else if(typeof i=="object"){let[f,d]=Object.entries(i)[0];u[f]={text:d}}else u.descr={text:i};if(typeof a=="object"){let[f,d]=Object.entries(a)[0];u[f]=d}else u.sprite=a;if(typeof s=="object"){let[f,d]=Object.entries(s)[0];u[f]=d}else u.tags=s;if(typeof l=="object"){let[f,d]=Object.entries(l)[0];u[f]=d}else u.link=l;u.wrap=Sh(),u.typeC4Shape={text:t},u.parentBoundary=ns},"addComponent"),uke=o(function(t,e,r,n,i){if(t===null||e===null)return;let a={},s=ac.find(l=>l.alias===t);if(s&&t===s.alias?a=s:(a.alias=t,ac.push(a)),e==null?a.label={text:""}:a.label={text:e},r==null)a.type={text:"system"};else if(typeof r=="object"){let[l,u]=Object.entries(r)[0];a[l]={text:u}}else a.type={text:r};if(typeof n=="object"){let[l,u]=Object.entries(n)[0];a[l]=u}else a.tags=n;if(typeof i=="object"){let[l,u]=Object.entries(i)[0];a[l]=u}else a.link=i;a.parentBoundary=ns,a.wrap=Sh(),pl=ns,ns=t,Eh.push(pl)},"addPersonOrSystemBoundary"),hke=o(function(t,e,r,n,i){if(t===null||e===null)return;let a={},s=ac.find(l=>l.alias===t);if(s&&t===s.alias?a=s:(a.alias=t,ac.push(a)),e==null?a.label={text:""}:a.label={text:e},r==null)a.type={text:"container"};else if(typeof r=="object"){let[l,u]=Object.entries(r)[0];a[l]={text:u}}else a.type={text:r};if(typeof n=="object"){let[l,u]=Object.entries(n)[0];a[l]=u}else a.tags=n;if(typeof i=="object"){let[l,u]=Object.entries(i)[0];a[l]=u}else a.link=i;a.parentBoundary=ns,a.wrap=Sh(),pl=ns,ns=t,Eh.push(pl)},"addContainerBoundary"),fke=o(function(t,e,r,n,i,a,s,l){if(e===null||r===null)return;let u={},h=ac.find(f=>f.alias===e);if(h&&e===h.alias?u=h:(u.alias=e,ac.push(u)),r==null?u.label={text:""}:u.label={text:r},n==null)u.type={text:"node"};else if(typeof n=="object"){let[f,d]=Object.entries(n)[0];u[f]={text:d}}else u.type={text:n};if(i==null)u.descr={text:""};else if(typeof i=="object"){let[f,d]=Object.entries(i)[0];u[f]={text:d}}else u.descr={text:i};if(typeof s=="object"){let[f,d]=Object.entries(s)[0];u[f]=d}else u.tags=s;if(typeof l=="object"){let[f,d]=Object.entries(l)[0];u[f]=d}else u.link=l;u.nodeType=t,u.parentBoundary=ns,u.wrap=Sh(),pl=ns,ns=e,Eh.push(pl)},"addDeploymentNode"),dke=o(function(){ns=pl,Eh.pop(),pl=Eh.pop(),Eh.push(pl)},"popBoundaryParseStack"),pke=o(function(t,e,r,n,i,a,s,l,u,h,f){let d=ml.find(p=>p.alias===e);if(!(d===void 0&&(d=ac.find(p=>p.alias===e),d===void 0))){if(r!=null)if(typeof r=="object"){let[p,m]=Object.entries(r)[0];d[p]=m}else d.bgColor=r;if(n!=null)if(typeof n=="object"){let[p,m]=Object.entries(n)[0];d[p]=m}else d.fontColor=n;if(i!=null)if(typeof i=="object"){let[p,m]=Object.entries(i)[0];d[p]=m}else d.borderColor=i;if(a!=null)if(typeof a=="object"){let[p,m]=Object.entries(a)[0];d[p]=m}else d.shadowing=a;if(s!=null)if(typeof s=="object"){let[p,m]=Object.entries(s)[0];d[p]=m}else d.shape=s;if(l!=null)if(typeof l=="object"){let[p,m]=Object.entries(l)[0];d[p]=m}else d.sprite=l;if(u!=null)if(typeof u=="object"){let[p,m]=Object.entries(u)[0];d[p]=m}else d.techn=u;if(h!=null)if(typeof h=="object"){let[p,m]=Object.entries(h)[0];d[p]=m}else d.legendText=h;if(f!=null)if(typeof f=="object"){let[p,m]=Object.entries(f)[0];d[p]=m}else d.legendSprite=f}},"updateElStyle"),mke=o(function(t,e,r,n,i,a,s){let l=ov.find(u=>u.from===e&&u.to===r);if(l!==void 0){if(n!=null)if(typeof n=="object"){let[u,h]=Object.entries(n)[0];l[u]=h}else l.textColor=n;if(i!=null)if(typeof i=="object"){let[u,h]=Object.entries(i)[0];l[u]=h}else l.lineColor=i;if(a!=null)if(typeof a=="object"){let[u,h]=Object.entries(a)[0];l[u]=parseInt(h)}else l.offsetX=parseInt(a);if(s!=null)if(typeof s=="object"){let[u,h]=Object.entries(s)[0];l[u]=parseInt(h)}else l.offsetY=parseInt(s)}},"updateRelStyle"),gke=o(function(t,e,r){let n=U3,i=H3;if(typeof e=="object"){let a=Object.values(e)[0];n=parseInt(a)}else n=parseInt(e);if(typeof r=="object"){let a=Object.values(r)[0];i=parseInt(a)}else i=parseInt(r);n>=1&&(U3=n),i>=1&&(H3=i)},"updateLayoutConfig"),yke=o(function(){return U3},"getC4ShapeInRow"),vke=o(function(){return H3},"getC4BoundaryInRow"),xke=o(function(){return ns},"getCurrentBoundaryParse"),bke=o(function(){return pl},"getParentBoundaryParse"),hH=o(function(t){return t==null?ml:ml.filter(e=>e.parentBoundary===t)},"getC4ShapeArray"),Tke=o(function(t){return ml.find(e=>e.alias===t)},"getC4Shape"),wke=o(function(t){return Object.keys(hH(t))},"getC4ShapeKeys"),fH=o(function(t){return t==null?ac:ac.filter(e=>e.parentBoundary===t)},"getBoundaries"),kke=fH,Eke=o(function(){return ov},"getRels"),Ske=o(function(){return $A},"getTitle"),Cke=o(function(t){zA=t},"setWrap"),Sh=o(function(){return zA},"autoWrap"),Ake=o(function(){ml=[],ac=[{alias:"global",label:{text:"global"},type:{text:"global"},tags:null,link:null,parentBoundary:""}],pl="",ns="global",Eh=[""],ov=[],Eh=[""],$A="",zA=!1,U3=4,H3=2},"clear"),_ke={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},Dke={FILLED:0,OPEN:1},Lke={LEFTOF:0,RIGHTOF:1,OVER:2},Rke=o(function(t){$A=sr(t,ge())},"setTitle"),lv={addPersonOrSystem:oke,addPersonOrSystemBoundary:uke,addContainer:lke,addContainerBoundary:hke,addComponent:cke,addDeploymentNode:fke,popBoundaryParseStack:dke,addRel:ske,updateElStyle:pke,updateRelStyle:mke,updateLayoutConfig:gke,autoWrap:Sh,setWrap:Cke,getC4ShapeArray:hH,getC4Shape:Tke,getC4ShapeKeys:wke,getBoundaries:fH,getBoundarys:kke,getCurrentBoundaryParse:xke,getParentBoundaryParse:bke,getRels:Eke,getTitle:Ske,getC4Type:ike,getC4ShapeInRow:yke,getC4BoundaryInRow:vke,setAccTitle:Rr,getAccTitle:Mr,getAccDescription:Or,setAccDescription:Ir,getConfig:o(()=>ge().c4,"getConfig"),clear:Ake,LINETYPE:_ke,ARROWTYPE:Dke,PLACEMENT:Lke,setTitle:Rke,setC4Type:ake}});function bd(t,e){return t==null||e==null?NaN:te?1:t>=e?0:NaN}var VA=M(()=>{"use strict";o(bd,"ascending")});function UA(t,e){return t==null||e==null?NaN:et?1:e>=t?0:NaN}var dH=M(()=>{"use strict";o(UA,"descending")});function Td(t){let e,r,n;t.length!==2?(e=bd,r=o((l,u)=>bd(t(l),u),"compare2"),n=o((l,u)=>t(l)-u,"delta")):(e=t===bd||t===UA?t:Nke,r=t,n=t);function i(l,u,h=0,f=l.length){if(h>>1;r(l[d],u)<0?h=d+1:f=d}while(h>>1;r(l[d],u)<=0?h=d+1:f=d}while(hh&&n(l[d-1],u)>-n(l[d],u)?d-1:d}return o(s,"center"),{left:i,center:s,right:a}}function Nke(){return 0}var HA=M(()=>{"use strict";VA();dH();o(Td,"bisector");o(Nke,"zero")});function qA(t){return t===null?NaN:+t}var pH=M(()=>{"use strict";o(qA,"number")});var mH,gH,Mke,Ike,WA,yH=M(()=>{"use strict";VA();HA();pH();mH=Td(bd),gH=mH.right,Mke=mH.left,Ike=Td(qA).center,WA=gH});function vH({_intern:t,_key:e},r){let n=e(r);return t.has(n)?t.get(n):r}function Oke({_intern:t,_key:e},r){let n=e(r);return t.has(n)?t.get(n):(t.set(n,r),r)}function Pke({_intern:t,_key:e},r){let n=e(r);return t.has(n)&&(r=t.get(n),t.delete(n)),r}function Bke(t){return t!==null&&typeof t=="object"?t.valueOf():t}var D0,xH=M(()=>{"use strict";D0=class extends Map{static{o(this,"InternMap")}constructor(e,r=Bke){if(super(),Object.defineProperties(this,{_intern:{value:new Map},_key:{value:r}}),e!=null)for(let[n,i]of e)this.set(n,i)}get(e){return super.get(vH(this,e))}has(e){return super.has(vH(this,e))}set(e,r){return super.set(Oke(this,e),r)}delete(e){return super.delete(Pke(this,e))}};o(vH,"intern_get");o(Oke,"intern_set");o(Pke,"intern_delete");o(Bke,"keyof")});function q3(t,e,r){let n=(e-t)/Math.max(0,r),i=Math.floor(Math.log10(n)),a=n/Math.pow(10,i),s=a>=Fke?10:a>=$ke?5:a>=zke?2:1,l,u,h;return i<0?(h=Math.pow(10,-i)/s,l=Math.round(t*h),u=Math.round(e*h),l/he&&--u,h=-h):(h=Math.pow(10,i)*s,l=Math.round(t/h),u=Math.round(e/h),l*he&&--u),u0))return[];if(t===e)return[t];let n=e=i))return[];let l=a-i+1,u=new Array(l);if(n)if(s<0)for(let h=0;h{"use strict";Fke=Math.sqrt(50),$ke=Math.sqrt(10),zke=Math.sqrt(2);o(q3,"tickSpec");o(W3,"ticks");o(cv,"tickIncrement");o(L0,"tickStep")});function Y3(t,e){let r;if(e===void 0)for(let n of t)n!=null&&(r=n)&&(r=n);else{let n=-1;for(let i of t)(i=e(i,++n,t))!=null&&(r=i)&&(r=i)}return r}var TH=M(()=>{"use strict";o(Y3,"max")});function X3(t,e){let r;if(e===void 0)for(let n of t)n!=null&&(r>n||r===void 0&&n>=n)&&(r=n);else{let n=-1;for(let i of t)(i=e(i,++n,t))!=null&&(r>i||r===void 0&&i>=i)&&(r=i)}return r}var wH=M(()=>{"use strict";o(X3,"min")});function j3(t,e,r){t=+t,e=+e,r=(i=arguments.length)<2?(e=t,t=0,1):i<3?1:+r;for(var n=-1,i=Math.max(0,Math.ceil((e-t)/r))|0,a=new Array(i);++n{"use strict";o(j3,"range")});var Ch=M(()=>{"use strict";yH();HA();TH();wH();kH();bH();xH()});function YA(t){return t}var EH=M(()=>{"use strict";o(YA,"default")});function Gke(t){return"translate("+t+",0)"}function Vke(t){return"translate(0,"+t+")"}function Uke(t){return e=>+t(e)}function Hke(t,e){return e=Math.max(0,t.bandwidth()-e*2)/2,t.round()&&(e=Math.round(e)),r=>+t(r)+e}function qke(){return!this.__axis}function CH(t,e){var r=[],n=null,i=null,a=6,s=6,l=3,u=typeof window<"u"&&window.devicePixelRatio>1?0:.5,h=t===Q3||t===K3?-1:1,f=t===K3||t===XA?"x":"y",d=t===Q3||t===jA?Gke:Vke;function p(m){var g=n??(e.ticks?e.ticks.apply(e,r):e.domain()),y=i??(e.tickFormat?e.tickFormat.apply(e,r):YA),v=Math.max(a,0)+l,x=e.range(),b=+x[0]+u,T=+x[x.length-1]+u,S=(e.bandwidth?Hke:Uke)(e.copy(),u),w=m.selection?m.selection():m,k=w.selectAll(".domain").data([null]),C=w.selectAll(".tick").data(g,e).order(),A=C.exit(),L=C.enter().append("g").attr("class","tick"),I=C.select("line"),R=C.select("text");k=k.merge(k.enter().insert("path",".tick").attr("class","domain").attr("stroke","currentColor")),C=C.merge(L),I=I.merge(L.append("line").attr("stroke","currentColor").attr(f+"2",h*a)),R=R.merge(L.append("text").attr("fill","currentColor").attr(f,h*v).attr("dy",t===Q3?"0em":t===jA?"0.71em":"0.32em")),m!==w&&(k=k.transition(m),C=C.transition(m),I=I.transition(m),R=R.transition(m),A=A.transition(m).attr("opacity",SH).attr("transform",function(E){return isFinite(E=S(E))?d(E+u):this.getAttribute("transform")}),L.attr("opacity",SH).attr("transform",function(E){var _=this.parentNode.__axis;return d((_&&isFinite(_=_(E))?_:S(E))+u)})),A.remove(),k.attr("d",t===K3||t===XA?s?"M"+h*s+","+b+"H"+u+"V"+T+"H"+h*s:"M"+u+","+b+"V"+T:s?"M"+b+","+h*s+"V"+u+"H"+T+"V"+h*s:"M"+b+","+u+"H"+T),C.attr("opacity",1).attr("transform",function(E){return d(S(E)+u)}),I.attr(f+"2",h*a),R.attr(f,h*v).text(y),w.filter(qke).attr("fill","none").attr("font-size",10).attr("font-family","sans-serif").attr("text-anchor",t===XA?"start":t===K3?"end":"middle"),w.each(function(){this.__axis=S})}return o(p,"axis"),p.scale=function(m){return arguments.length?(e=m,p):e},p.ticks=function(){return r=Array.from(arguments),p},p.tickArguments=function(m){return arguments.length?(r=m==null?[]:Array.from(m),p):r.slice()},p.tickValues=function(m){return arguments.length?(n=m==null?null:Array.from(m),p):n&&n.slice()},p.tickFormat=function(m){return arguments.length?(i=m,p):i},p.tickSize=function(m){return arguments.length?(a=s=+m,p):a},p.tickSizeInner=function(m){return arguments.length?(a=+m,p):a},p.tickSizeOuter=function(m){return arguments.length?(s=+m,p):s},p.tickPadding=function(m){return arguments.length?(l=+m,p):l},p.offset=function(m){return arguments.length?(u=+m,p):u},p}function KA(t){return CH(Q3,t)}function QA(t){return CH(jA,t)}var Q3,XA,jA,K3,SH,AH=M(()=>{"use strict";EH();Q3=1,XA=2,jA=3,K3=4,SH=1e-6;o(Gke,"translateX");o(Vke,"translateY");o(Uke,"number");o(Hke,"center");o(qke,"entering");o(CH,"axis");o(KA,"axisTop");o(QA,"axisBottom")});var _H=M(()=>{"use strict";AH()});function LH(){for(var t=0,e=arguments.length,r={},n;t=0&&(n=r.slice(i+1),r=r.slice(0,i)),r&&!e.hasOwnProperty(r))throw new Error("unknown type: "+r);return{type:r,name:n}})}function Xke(t,e){for(var r=0,n=t.length,i;r{"use strict";Wke={value:o(()=>{},"value")};o(LH,"dispatch");o(Z3,"Dispatch");o(Yke,"parseTypenames");Z3.prototype=LH.prototype={constructor:Z3,on:o(function(t,e){var r=this._,n=Yke(t+"",r),i,a=-1,s=n.length;if(arguments.length<2){for(;++a0)for(var r=new Array(i),n=0,i,a;n{"use strict";RH()});var J3,e8,t8=M(()=>{"use strict";J3="http://www.w3.org/1999/xhtml",e8={svg:"http://www.w3.org/2000/svg",xhtml:J3,xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/"}});function sc(t){var e=t+="",r=e.indexOf(":");return r>=0&&(e=t.slice(0,r))!=="xmlns"&&(t=t.slice(r+1)),e8.hasOwnProperty(e)?{space:e8[e],local:t}:t}var e5=M(()=>{"use strict";t8();o(sc,"default")});function jke(t){return function(){var e=this.ownerDocument,r=this.namespaceURI;return r===J3&&e.documentElement.namespaceURI===J3?e.createElement(t):e.createElementNS(r,t)}}function Kke(t){return function(){return this.ownerDocument.createElementNS(t.space,t.local)}}function uv(t){var e=sc(t);return(e.local?Kke:jke)(e)}var r8=M(()=>{"use strict";e5();t8();o(jke,"creatorInherit");o(Kke,"creatorFixed");o(uv,"default")});function Qke(){}function Ah(t){return t==null?Qke:function(){return this.querySelector(t)}}var t5=M(()=>{"use strict";o(Qke,"none");o(Ah,"default")});function n8(t){typeof t!="function"&&(t=Ah(t));for(var e=this._groups,r=e.length,n=new Array(r),i=0;i{"use strict";gl();t5();o(n8,"default")});function i8(t){return t==null?[]:Array.isArray(t)?t:Array.from(t)}var MH=M(()=>{"use strict";o(i8,"array")});function Zke(){return[]}function R0(t){return t==null?Zke:function(){return this.querySelectorAll(t)}}var a8=M(()=>{"use strict";o(Zke,"empty");o(R0,"default")});function Jke(t){return function(){return i8(t.apply(this,arguments))}}function s8(t){typeof t=="function"?t=Jke(t):t=R0(t);for(var e=this._groups,r=e.length,n=[],i=[],a=0;a{"use strict";gl();MH();a8();o(Jke,"arrayAll");o(s8,"default")});function N0(t){return function(){return this.matches(t)}}function r5(t){return function(e){return e.matches(t)}}var hv=M(()=>{"use strict";o(N0,"default");o(r5,"childMatcher")});function tEe(t){return function(){return eEe.call(this.children,t)}}function rEe(){return this.firstElementChild}function o8(t){return this.select(t==null?rEe:tEe(typeof t=="function"?t:r5(t)))}var eEe,OH=M(()=>{"use strict";hv();eEe=Array.prototype.find;o(tEe,"childFind");o(rEe,"childFirst");o(o8,"default")});function iEe(){return Array.from(this.children)}function aEe(t){return function(){return nEe.call(this.children,t)}}function l8(t){return this.selectAll(t==null?iEe:aEe(typeof t=="function"?t:r5(t)))}var nEe,PH=M(()=>{"use strict";hv();nEe=Array.prototype.filter;o(iEe,"children");o(aEe,"childrenFilter");o(l8,"default")});function c8(t){typeof t!="function"&&(t=N0(t));for(var e=this._groups,r=e.length,n=new Array(r),i=0;i{"use strict";gl();hv();o(c8,"default")});function fv(t){return new Array(t.length)}var u8=M(()=>{"use strict";o(fv,"default")});function h8(){return new ui(this._enter||this._groups.map(fv),this._parents)}function dv(t,e){this.ownerDocument=t.ownerDocument,this.namespaceURI=t.namespaceURI,this._next=null,this._parent=t,this.__data__=e}var f8=M(()=>{"use strict";u8();gl();o(h8,"default");o(dv,"EnterNode");dv.prototype={constructor:dv,appendChild:o(function(t){return this._parent.insertBefore(t,this._next)},"appendChild"),insertBefore:o(function(t,e){return this._parent.insertBefore(t,e)},"insertBefore"),querySelector:o(function(t){return this._parent.querySelector(t)},"querySelector"),querySelectorAll:o(function(t){return this._parent.querySelectorAll(t)},"querySelectorAll")}});function d8(t){return function(){return t}}var FH=M(()=>{"use strict";o(d8,"default")});function sEe(t,e,r,n,i,a){for(var s=0,l,u=e.length,h=a.length;s=T&&(T=b+1);!(w=v[T])&&++T{"use strict";gl();f8();FH();o(sEe,"bindIndex");o(oEe,"bindKey");o(lEe,"datum");o(p8,"default");o(cEe,"arraylike")});function m8(){return new ui(this._exit||this._groups.map(fv),this._parents)}var zH=M(()=>{"use strict";u8();gl();o(m8,"default")});function g8(t,e,r){var n=this.enter(),i=this,a=this.exit();return typeof t=="function"?(n=t(n),n&&(n=n.selection())):n=n.append(t+""),e!=null&&(i=e(i),i&&(i=i.selection())),r==null?a.remove():r(a),n&&i?n.merge(i).order():i}var GH=M(()=>{"use strict";o(g8,"default")});function y8(t){for(var e=t.selection?t.selection():t,r=this._groups,n=e._groups,i=r.length,a=n.length,s=Math.min(i,a),l=new Array(i),u=0;u{"use strict";gl();o(y8,"default")});function v8(){for(var t=this._groups,e=-1,r=t.length;++e=0;)(s=n[i])&&(a&&s.compareDocumentPosition(a)^4&&a.parentNode.insertBefore(s,a),a=s);return this}var UH=M(()=>{"use strict";o(v8,"default")});function x8(t){t||(t=uEe);function e(d,p){return d&&p?t(d.__data__,p.__data__):!d-!p}o(e,"compareNode");for(var r=this._groups,n=r.length,i=new Array(n),a=0;ae?1:t>=e?0:NaN}var HH=M(()=>{"use strict";gl();o(x8,"default");o(uEe,"ascending")});function b8(){var t=arguments[0];return arguments[0]=this,t.apply(null,arguments),this}var qH=M(()=>{"use strict";o(b8,"default")});function T8(){return Array.from(this)}var WH=M(()=>{"use strict";o(T8,"default")});function w8(){for(var t=this._groups,e=0,r=t.length;e{"use strict";o(w8,"default")});function k8(){let t=0;for(let e of this)++t;return t}var XH=M(()=>{"use strict";o(k8,"default")});function E8(){return!this.node()}var jH=M(()=>{"use strict";o(E8,"default")});function S8(t){for(var e=this._groups,r=0,n=e.length;r{"use strict";o(S8,"default")});function hEe(t){return function(){this.removeAttribute(t)}}function fEe(t){return function(){this.removeAttributeNS(t.space,t.local)}}function dEe(t,e){return function(){this.setAttribute(t,e)}}function pEe(t,e){return function(){this.setAttributeNS(t.space,t.local,e)}}function mEe(t,e){return function(){var r=e.apply(this,arguments);r==null?this.removeAttribute(t):this.setAttribute(t,r)}}function gEe(t,e){return function(){var r=e.apply(this,arguments);r==null?this.removeAttributeNS(t.space,t.local):this.setAttributeNS(t.space,t.local,r)}}function C8(t,e){var r=sc(t);if(arguments.length<2){var n=this.node();return r.local?n.getAttributeNS(r.space,r.local):n.getAttribute(r)}return this.each((e==null?r.local?fEe:hEe:typeof e=="function"?r.local?gEe:mEe:r.local?pEe:dEe)(r,e))}var QH=M(()=>{"use strict";e5();o(hEe,"attrRemove");o(fEe,"attrRemoveNS");o(dEe,"attrConstant");o(pEe,"attrConstantNS");o(mEe,"attrFunction");o(gEe,"attrFunctionNS");o(C8,"default")});function pv(t){return t.ownerDocument&&t.ownerDocument.defaultView||t.document&&t||t.defaultView}var A8=M(()=>{"use strict";o(pv,"default")});function yEe(t){return function(){this.style.removeProperty(t)}}function vEe(t,e,r){return function(){this.style.setProperty(t,e,r)}}function xEe(t,e,r){return function(){var n=e.apply(this,arguments);n==null?this.style.removeProperty(t):this.style.setProperty(t,n,r)}}function _8(t,e,r){return arguments.length>1?this.each((e==null?yEe:typeof e=="function"?xEe:vEe)(t,e,r??"")):_h(this.node(),t)}function _h(t,e){return t.style.getPropertyValue(e)||pv(t).getComputedStyle(t,null).getPropertyValue(e)}var D8=M(()=>{"use strict";A8();o(yEe,"styleRemove");o(vEe,"styleConstant");o(xEe,"styleFunction");o(_8,"default");o(_h,"styleValue")});function bEe(t){return function(){delete this[t]}}function TEe(t,e){return function(){this[t]=e}}function wEe(t,e){return function(){var r=e.apply(this,arguments);r==null?delete this[t]:this[t]=r}}function L8(t,e){return arguments.length>1?this.each((e==null?bEe:typeof e=="function"?wEe:TEe)(t,e)):this.node()[t]}var ZH=M(()=>{"use strict";o(bEe,"propertyRemove");o(TEe,"propertyConstant");o(wEe,"propertyFunction");o(L8,"default")});function JH(t){return t.trim().split(/^|\s+/)}function R8(t){return t.classList||new eq(t)}function eq(t){this._node=t,this._names=JH(t.getAttribute("class")||"")}function tq(t,e){for(var r=R8(t),n=-1,i=e.length;++n{"use strict";o(JH,"classArray");o(R8,"classList");o(eq,"ClassList");eq.prototype={add:o(function(t){var e=this._names.indexOf(t);e<0&&(this._names.push(t),this._node.setAttribute("class",this._names.join(" ")))},"add"),remove:o(function(t){var e=this._names.indexOf(t);e>=0&&(this._names.splice(e,1),this._node.setAttribute("class",this._names.join(" ")))},"remove"),contains:o(function(t){return this._names.indexOf(t)>=0},"contains")};o(tq,"classedAdd");o(rq,"classedRemove");o(kEe,"classedTrue");o(EEe,"classedFalse");o(SEe,"classedFunction");o(N8,"default")});function CEe(){this.textContent=""}function AEe(t){return function(){this.textContent=t}}function _Ee(t){return function(){var e=t.apply(this,arguments);this.textContent=e??""}}function M8(t){return arguments.length?this.each(t==null?CEe:(typeof t=="function"?_Ee:AEe)(t)):this.node().textContent}var iq=M(()=>{"use strict";o(CEe,"textRemove");o(AEe,"textConstant");o(_Ee,"textFunction");o(M8,"default")});function DEe(){this.innerHTML=""}function LEe(t){return function(){this.innerHTML=t}}function REe(t){return function(){var e=t.apply(this,arguments);this.innerHTML=e??""}}function I8(t){return arguments.length?this.each(t==null?DEe:(typeof t=="function"?REe:LEe)(t)):this.node().innerHTML}var aq=M(()=>{"use strict";o(DEe,"htmlRemove");o(LEe,"htmlConstant");o(REe,"htmlFunction");o(I8,"default")});function NEe(){this.nextSibling&&this.parentNode.appendChild(this)}function O8(){return this.each(NEe)}var sq=M(()=>{"use strict";o(NEe,"raise");o(O8,"default")});function MEe(){this.previousSibling&&this.parentNode.insertBefore(this,this.parentNode.firstChild)}function P8(){return this.each(MEe)}var oq=M(()=>{"use strict";o(MEe,"lower");o(P8,"default")});function B8(t){var e=typeof t=="function"?t:uv(t);return this.select(function(){return this.appendChild(e.apply(this,arguments))})}var lq=M(()=>{"use strict";r8();o(B8,"default")});function IEe(){return null}function F8(t,e){var r=typeof t=="function"?t:uv(t),n=e==null?IEe:typeof e=="function"?e:Ah(e);return this.select(function(){return this.insertBefore(r.apply(this,arguments),n.apply(this,arguments)||null)})}var cq=M(()=>{"use strict";r8();t5();o(IEe,"constantNull");o(F8,"default")});function OEe(){var t=this.parentNode;t&&t.removeChild(this)}function $8(){return this.each(OEe)}var uq=M(()=>{"use strict";o(OEe,"remove");o($8,"default")});function PEe(){var t=this.cloneNode(!1),e=this.parentNode;return e?e.insertBefore(t,this.nextSibling):t}function BEe(){var t=this.cloneNode(!0),e=this.parentNode;return e?e.insertBefore(t,this.nextSibling):t}function z8(t){return this.select(t?BEe:PEe)}var hq=M(()=>{"use strict";o(PEe,"selection_cloneShallow");o(BEe,"selection_cloneDeep");o(z8,"default")});function G8(t){return arguments.length?this.property("__data__",t):this.node().__data__}var fq=M(()=>{"use strict";o(G8,"default")});function FEe(t){return function(e){t.call(this,e,this.__data__)}}function $Ee(t){return t.trim().split(/^|\s+/).map(function(e){var r="",n=e.indexOf(".");return n>=0&&(r=e.slice(n+1),e=e.slice(0,n)),{type:e,name:r}})}function zEe(t){return function(){var e=this.__on;if(e){for(var r=0,n=-1,i=e.length,a;r{"use strict";o(FEe,"contextListener");o($Ee,"parseTypenames");o(zEe,"onRemove");o(GEe,"onAdd");o(V8,"default")});function pq(t,e,r){var n=pv(t),i=n.CustomEvent;typeof i=="function"?i=new i(e,r):(i=n.document.createEvent("Event"),r?(i.initEvent(e,r.bubbles,r.cancelable),i.detail=r.detail):i.initEvent(e,!1,!1)),t.dispatchEvent(i)}function VEe(t,e){return function(){return pq(this,t,e)}}function UEe(t,e){return function(){return pq(this,t,e.apply(this,arguments))}}function U8(t,e){return this.each((typeof e=="function"?UEe:VEe)(t,e))}var mq=M(()=>{"use strict";A8();o(pq,"dispatchEvent");o(VEe,"dispatchConstant");o(UEe,"dispatchFunction");o(U8,"default")});function*H8(){for(var t=this._groups,e=0,r=t.length;e{"use strict";o(H8,"default")});function ui(t,e){this._groups=t,this._parents=e}function yq(){return new ui([[document.documentElement]],q8)}function HEe(){return this}var q8,yu,gl=M(()=>{"use strict";NH();IH();OH();PH();BH();$H();f8();zH();GH();VH();UH();HH();qH();WH();YH();XH();jH();KH();QH();D8();ZH();nq();iq();aq();sq();oq();lq();cq();uq();hq();fq();dq();mq();gq();q8=[null];o(ui,"Selection");o(yq,"selection");o(HEe,"selection_selection");ui.prototype=yq.prototype={constructor:ui,select:n8,selectAll:s8,selectChild:o8,selectChildren:l8,filter:c8,data:p8,enter:h8,exit:m8,join:g8,merge:y8,selection:HEe,order:v8,sort:x8,call:b8,nodes:T8,node:w8,size:k8,empty:E8,each:S8,attr:C8,style:_8,property:L8,classed:N8,text:M8,html:I8,raise:O8,lower:P8,append:B8,insert:F8,remove:$8,clone:z8,datum:G8,on:V8,dispatch:U8,[Symbol.iterator]:H8};yu=yq});function qe(t){return typeof t=="string"?new ui([[document.querySelector(t)]],[document.documentElement]):new ui([[t]],q8)}var vq=M(()=>{"use strict";gl();o(qe,"default")});var yl=M(()=>{"use strict";hv();e5();vq();gl();t5();a8();D8()});var xq=M(()=>{"use strict"});function Dh(t,e,r){t.prototype=e.prototype=r,r.constructor=t}function M0(t,e){var r=Object.create(t.prototype);for(var n in e)r[n]=e[n];return r}var W8=M(()=>{"use strict";o(Dh,"default");o(M0,"extend")});function Lh(){}function Tq(){return this.rgb().formatHex()}function ZEe(){return this.rgb().formatHex8()}function JEe(){return _q(this).formatHsl()}function wq(){return this.rgb().formatRgb()}function xl(t){var e,r;return t=(t+"").trim().toLowerCase(),(e=qEe.exec(t))?(r=e[1].length,e=parseInt(e[1],16),r===6?kq(e):r===3?new la(e>>8&15|e>>4&240,e>>4&15|e&240,(e&15)<<4|e&15,1):r===8?n5(e>>24&255,e>>16&255,e>>8&255,(e&255)/255):r===4?n5(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=WEe.exec(t))?new la(e[1],e[2],e[3],1):(e=YEe.exec(t))?new la(e[1]*255/100,e[2]*255/100,e[3]*255/100,1):(e=XEe.exec(t))?n5(e[1],e[2],e[3],e[4]):(e=jEe.exec(t))?n5(e[1]*255/100,e[2]*255/100,e[3]*255/100,e[4]):(e=KEe.exec(t))?Cq(e[1],e[2]/100,e[3]/100,1):(e=QEe.exec(t))?Cq(e[1],e[2]/100,e[3]/100,e[4]):bq.hasOwnProperty(t)?kq(bq[t]):t==="transparent"?new la(NaN,NaN,NaN,0):null}function kq(t){return new la(t>>16&255,t>>8&255,t&255,1)}function n5(t,e,r,n){return n<=0&&(t=e=r=NaN),new la(t,e,r,n)}function X8(t){return t instanceof Lh||(t=xl(t)),t?(t=t.rgb(),new la(t.r,t.g,t.b,t.opacity)):new la}function O0(t,e,r,n){return arguments.length===1?X8(t):new la(t,e,r,n??1)}function la(t,e,r,n){this.r=+t,this.g=+e,this.b=+r,this.opacity=+n}function Eq(){return`#${wd(this.r)}${wd(this.g)}${wd(this.b)}`}function eSe(){return`#${wd(this.r)}${wd(this.g)}${wd(this.b)}${wd((isNaN(this.opacity)?1:this.opacity)*255)}`}function Sq(){let t=s5(this.opacity);return`${t===1?"rgb(":"rgba("}${kd(this.r)}, ${kd(this.g)}, ${kd(this.b)}${t===1?")":`, ${t})`}`}function s5(t){return isNaN(t)?1:Math.max(0,Math.min(1,t))}function kd(t){return Math.max(0,Math.min(255,Math.round(t)||0))}function wd(t){return t=kd(t),(t<16?"0":"")+t.toString(16)}function Cq(t,e,r,n){return n<=0?t=e=r=NaN:r<=0||r>=1?t=e=NaN:e<=0&&(t=NaN),new vl(t,e,r,n)}function _q(t){if(t instanceof vl)return new vl(t.h,t.s,t.l,t.opacity);if(t instanceof Lh||(t=xl(t)),!t)return new vl;if(t instanceof vl)return t;t=t.rgb();var e=t.r/255,r=t.g/255,n=t.b/255,i=Math.min(e,r,n),a=Math.max(e,r,n),s=NaN,l=a-i,u=(a+i)/2;return l?(e===a?s=(r-n)/l+(r0&&u<1?0:s,new vl(s,l,u,t.opacity)}function Dq(t,e,r,n){return arguments.length===1?_q(t):new vl(t,e,r,n??1)}function vl(t,e,r,n){this.h=+t,this.s=+e,this.l=+r,this.opacity=+n}function Aq(t){return t=(t||0)%360,t<0?t+360:t}function i5(t){return Math.max(0,Math.min(1,t||0))}function Y8(t,e,r){return(t<60?e+(r-e)*t/60:t<180?r:t<240?e+(r-e)*(240-t)/60:e)*255}var mv,a5,I0,gv,oc,qEe,WEe,YEe,XEe,jEe,KEe,QEe,bq,j8=M(()=>{"use strict";W8();o(Lh,"Color");mv=.7,a5=1/mv,I0="\\s*([+-]?\\d+)\\s*",gv="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)\\s*",oc="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)%\\s*",qEe=/^#([0-9a-f]{3,8})$/,WEe=new RegExp(`^rgb\\(${I0},${I0},${I0}\\)$`),YEe=new RegExp(`^rgb\\(${oc},${oc},${oc}\\)$`),XEe=new RegExp(`^rgba\\(${I0},${I0},${I0},${gv}\\)$`),jEe=new RegExp(`^rgba\\(${oc},${oc},${oc},${gv}\\)$`),KEe=new RegExp(`^hsl\\(${gv},${oc},${oc}\\)$`),QEe=new RegExp(`^hsla\\(${gv},${oc},${oc},${gv}\\)$`),bq={aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074};Dh(Lh,xl,{copy(t){return Object.assign(new this.constructor,this,t)},displayable(){return this.rgb().displayable()},hex:Tq,formatHex:Tq,formatHex8:ZEe,formatHsl:JEe,formatRgb:wq,toString:wq});o(Tq,"color_formatHex");o(ZEe,"color_formatHex8");o(JEe,"color_formatHsl");o(wq,"color_formatRgb");o(xl,"color");o(kq,"rgbn");o(n5,"rgba");o(X8,"rgbConvert");o(O0,"rgb");o(la,"Rgb");Dh(la,O0,M0(Lh,{brighter(t){return t=t==null?a5:Math.pow(a5,t),new la(this.r*t,this.g*t,this.b*t,this.opacity)},darker(t){return t=t==null?mv:Math.pow(mv,t),new la(this.r*t,this.g*t,this.b*t,this.opacity)},rgb(){return this},clamp(){return new la(kd(this.r),kd(this.g),kd(this.b),s5(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:Eq,formatHex:Eq,formatHex8:eSe,formatRgb:Sq,toString:Sq}));o(Eq,"rgb_formatHex");o(eSe,"rgb_formatHex8");o(Sq,"rgb_formatRgb");o(s5,"clampa");o(kd,"clampi");o(wd,"hex");o(Cq,"hsla");o(_q,"hslConvert");o(Dq,"hsl");o(vl,"Hsl");Dh(vl,Dq,M0(Lh,{brighter(t){return t=t==null?a5:Math.pow(a5,t),new vl(this.h,this.s,this.l*t,this.opacity)},darker(t){return t=t==null?mv:Math.pow(mv,t),new vl(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,r=this.l,n=r+(r<.5?r:1-r)*e,i=2*r-n;return new la(Y8(t>=240?t-240:t+120,i,n),Y8(t,i,n),Y8(t<120?t+240:t-120,i,n),this.opacity)},clamp(){return new vl(Aq(this.h),i5(this.s),i5(this.l),s5(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(){let t=s5(this.opacity);return`${t===1?"hsl(":"hsla("}${Aq(this.h)}, ${i5(this.s)*100}%, ${i5(this.l)*100}%${t===1?")":`, ${t})`}`}}));o(Aq,"clamph");o(i5,"clampt");o(Y8,"hsl2rgb")});var Lq,Rq,Nq=M(()=>{"use strict";Lq=Math.PI/180,Rq=180/Math.PI});function Fq(t){if(t instanceof lc)return new lc(t.l,t.a,t.b,t.opacity);if(t instanceof vu)return $q(t);t instanceof la||(t=X8(t));var e=J8(t.r),r=J8(t.g),n=J8(t.b),i=K8((.2225045*e+.7168786*r+.0606169*n)/Iq),a,s;return e===r&&r===n?a=s=i:(a=K8((.4360747*e+.3850649*r+.1430804*n)/Mq),s=K8((.0139322*e+.0971045*r+.7141733*n)/Oq)),new lc(116*i-16,500*(a-i),200*(i-s),t.opacity)}function e_(t,e,r,n){return arguments.length===1?Fq(t):new lc(t,e,r,n??1)}function lc(t,e,r,n){this.l=+t,this.a=+e,this.b=+r,this.opacity=+n}function K8(t){return t>tSe?Math.pow(t,1/3):t/Bq+Pq}function Q8(t){return t>P0?t*t*t:Bq*(t-Pq)}function Z8(t){return 255*(t<=.0031308?12.92*t:1.055*Math.pow(t,1/2.4)-.055)}function J8(t){return(t/=255)<=.04045?t/12.92:Math.pow((t+.055)/1.055,2.4)}function rSe(t){if(t instanceof vu)return new vu(t.h,t.c,t.l,t.opacity);if(t instanceof lc||(t=Fq(t)),t.a===0&&t.b===0)return new vu(NaN,0{"use strict";W8();j8();Nq();o5=18,Mq=.96422,Iq=1,Oq=.82521,Pq=4/29,P0=6/29,Bq=3*P0*P0,tSe=P0*P0*P0;o(Fq,"labConvert");o(e_,"lab");o(lc,"Lab");Dh(lc,e_,M0(Lh,{brighter(t){return new lc(this.l+o5*(t??1),this.a,this.b,this.opacity)},darker(t){return new lc(this.l-o5*(t??1),this.a,this.b,this.opacity)},rgb(){var t=(this.l+16)/116,e=isNaN(this.a)?t:t+this.a/500,r=isNaN(this.b)?t:t-this.b/200;return e=Mq*Q8(e),t=Iq*Q8(t),r=Oq*Q8(r),new la(Z8(3.1338561*e-1.6168667*t-.4906146*r),Z8(-.9787684*e+1.9161415*t+.033454*r),Z8(.0719453*e-.2289914*t+1.4052427*r),this.opacity)}}));o(K8,"xyz2lab");o(Q8,"lab2xyz");o(Z8,"lrgb2rgb");o(J8,"rgb2lrgb");o(rSe,"hclConvert");o(yv,"hcl");o(vu,"Hcl");o($q,"hcl2lab");Dh(vu,yv,M0(Lh,{brighter(t){return new vu(this.h,this.c,this.l+o5*(t??1),this.opacity)},darker(t){return new vu(this.h,this.c,this.l-o5*(t??1),this.opacity)},rgb(){return $q(this).rgb()}}))});var B0=M(()=>{"use strict";j8();zq()});function t_(t,e,r,n,i){var a=t*t,s=a*t;return((1-3*t+3*a-s)*e+(4-6*a+3*s)*r+(1+3*t+3*a-3*s)*n+s*i)/6}function r_(t){var e=t.length-1;return function(r){var n=r<=0?r=0:r>=1?(r=1,e-1):Math.floor(r*e),i=t[n],a=t[n+1],s=n>0?t[n-1]:2*i-a,l=n{"use strict";o(t_,"basis");o(r_,"default")});function i_(t){var e=t.length;return function(r){var n=Math.floor(((r%=1)<0?++r:r)*e),i=t[(n+e-1)%e],a=t[n%e],s=t[(n+1)%e],l=t[(n+2)%e];return t_((r-n/e)*e,i,a,s,l)}}var Gq=M(()=>{"use strict";n_();o(i_,"default")});var F0,a_=M(()=>{"use strict";F0=o(t=>()=>t,"default")});function Vq(t,e){return function(r){return t+r*e}}function nSe(t,e,r){return t=Math.pow(t,r),e=Math.pow(e,r)-t,r=1/r,function(n){return Math.pow(t+n*e,r)}}function Uq(t,e){var r=e-t;return r?Vq(t,r>180||r<-180?r-360*Math.round(r/360):r):F0(isNaN(t)?e:t)}function Hq(t){return(t=+t)==1?xu:function(e,r){return r-e?nSe(e,r,t):F0(isNaN(e)?r:e)}}function xu(t,e){var r=e-t;return r?Vq(t,r):F0(isNaN(t)?e:t)}var s_=M(()=>{"use strict";a_();o(Vq,"linear");o(nSe,"exponential");o(Uq,"hue");o(Hq,"gamma");o(xu,"nogamma")});function qq(t){return function(e){var r=e.length,n=new Array(r),i=new Array(r),a=new Array(r),s,l;for(s=0;s{"use strict";B0();n_();Gq();s_();Ed=o((function t(e){var r=Hq(e);function n(i,a){var s=r((i=O0(i)).r,(a=O0(a)).r),l=r(i.g,a.g),u=r(i.b,a.b),h=xu(i.opacity,a.opacity);return function(f){return i.r=s(f),i.g=l(f),i.b=u(f),i.opacity=h(f),i+""}}return o(n,"rgb"),n.gamma=t,n}),"rgbGamma")(1);o(qq,"rgbSpline");iSe=qq(r_),aSe=qq(i_)});function l_(t,e){e||(e=[]);var r=t?Math.min(e.length,t.length):0,n=e.slice(),i;return function(a){for(i=0;i{"use strict";o(l_,"default");o(Wq,"isNumberArray")});function Xq(t,e){var r=e?e.length:0,n=t?Math.min(r,t.length):0,i=new Array(n),a=new Array(r),s;for(s=0;s{"use strict";l5();o(Xq,"genericArray")});function c_(t,e){var r=new Date;return t=+t,e=+e,function(n){return r.setTime(t*(1-n)+e*n),r}}var Kq=M(()=>{"use strict";o(c_,"default")});function Wi(t,e){return t=+t,e=+e,function(r){return t*(1-r)+e*r}}var vv=M(()=>{"use strict";o(Wi,"default")});function u_(t,e){var r={},n={},i;(t===null||typeof t!="object")&&(t={}),(e===null||typeof e!="object")&&(e={});for(i in e)i in t?r[i]=Rh(t[i],e[i]):n[i]=e[i];return function(a){for(i in r)n[i]=r[i](a);return n}}var Qq=M(()=>{"use strict";l5();o(u_,"default")});function sSe(t){return function(){return t}}function oSe(t){return function(e){return t(e)+""}}function $0(t,e){var r=f_.lastIndex=h_.lastIndex=0,n,i,a,s=-1,l=[],u=[];for(t=t+"",e=e+"";(n=f_.exec(t))&&(i=h_.exec(e));)(a=i.index)>r&&(a=e.slice(r,a),l[s]?l[s]+=a:l[++s]=a),(n=n[0])===(i=i[0])?l[s]?l[s]+=i:l[++s]=i:(l[++s]=null,u.push({i:s,x:Wi(n,i)})),r=h_.lastIndex;return r{"use strict";vv();f_=/[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,h_=new RegExp(f_.source,"g");o(sSe,"zero");o(oSe,"one");o($0,"default")});function Rh(t,e){var r=typeof e,n;return e==null||r==="boolean"?F0(e):(r==="number"?Wi:r==="string"?(n=xl(e))?(e=n,Ed):$0:e instanceof xl?Ed:e instanceof Date?c_:Wq(e)?l_:Array.isArray(e)?Xq:typeof e.valueOf!="function"&&typeof e.toString!="function"||isNaN(e)?u_:Wi)(t,e)}var l5=M(()=>{"use strict";B0();o_();jq();Kq();vv();Qq();d_();a_();Yq();o(Rh,"default")});function c5(t,e){return t=+t,e=+e,function(r){return Math.round(t*(1-r)+e*r)}}var Zq=M(()=>{"use strict";o(c5,"default")});function h5(t,e,r,n,i,a){var s,l,u;return(s=Math.sqrt(t*t+e*e))&&(t/=s,e/=s),(u=t*r+e*n)&&(r-=t*u,n-=e*u),(l=Math.sqrt(r*r+n*n))&&(r/=l,n/=l,u/=l),t*n{"use strict";Jq=180/Math.PI,u5={translateX:0,translateY:0,rotate:0,skewX:0,scaleX:1,scaleY:1};o(h5,"default")});function tW(t){let e=new(typeof DOMMatrix=="function"?DOMMatrix:WebKitCSSMatrix)(t+"");return e.isIdentity?u5:h5(e.a,e.b,e.c,e.d,e.e,e.f)}function rW(t){return t==null?u5:(f5||(f5=document.createElementNS("http://www.w3.org/2000/svg","g")),f5.setAttribute("transform",t),(t=f5.transform.baseVal.consolidate())?(t=t.matrix,h5(t.a,t.b,t.c,t.d,t.e,t.f)):u5)}var f5,nW=M(()=>{"use strict";eW();o(tW,"parseCss");o(rW,"parseSvg")});function iW(t,e,r,n){function i(h){return h.length?h.pop()+" ":""}o(i,"pop");function a(h,f,d,p,m,g){if(h!==d||f!==p){var y=m.push("translate(",null,e,null,r);g.push({i:y-4,x:Wi(h,d)},{i:y-2,x:Wi(f,p)})}else(d||p)&&m.push("translate("+d+e+p+r)}o(a,"translate");function s(h,f,d,p){h!==f?(h-f>180?f+=360:f-h>180&&(h+=360),p.push({i:d.push(i(d)+"rotate(",null,n)-2,x:Wi(h,f)})):f&&d.push(i(d)+"rotate("+f+n)}o(s,"rotate");function l(h,f,d,p){h!==f?p.push({i:d.push(i(d)+"skewX(",null,n)-2,x:Wi(h,f)}):f&&d.push(i(d)+"skewX("+f+n)}o(l,"skewX");function u(h,f,d,p,m,g){if(h!==d||f!==p){var y=m.push(i(m)+"scale(",null,",",null,")");g.push({i:y-4,x:Wi(h,d)},{i:y-2,x:Wi(f,p)})}else(d!==1||p!==1)&&m.push(i(m)+"scale("+d+","+p+")")}return o(u,"scale"),function(h,f){var d=[],p=[];return h=t(h),f=t(f),a(h.translateX,h.translateY,f.translateX,f.translateY,d,p),s(h.rotate,f.rotate,d,p),l(h.skewX,f.skewX,d,p),u(h.scaleX,h.scaleY,f.scaleX,f.scaleY,d,p),h=f=null,function(m){for(var g=-1,y=p.length,v;++g{"use strict";vv();nW();o(iW,"interpolateTransform");p_=iW(tW,"px, ","px)","deg)"),m_=iW(rW,", ",")",")")});function sW(t){return function(e,r){var n=t((e=yv(e)).h,(r=yv(r)).h),i=xu(e.c,r.c),a=xu(e.l,r.l),s=xu(e.opacity,r.opacity);return function(l){return e.h=n(l),e.c=i(l),e.l=a(l),e.opacity=s(l),e+""}}}var g_,lSe,oW=M(()=>{"use strict";B0();s_();o(sW,"hcl");g_=sW(Uq),lSe=sW(xu)});var z0=M(()=>{"use strict";l5();vv();Zq();d_();aW();o_();oW()});function Ev(){return Sd||(uW(cSe),Sd=wv.now()+m5)}function cSe(){Sd=0}function kv(){this._call=this._time=this._next=null}function g5(t,e,r){var n=new kv;return n.restart(t,e,r),n}function hW(){Ev(),++G0;for(var t=d5,e;t;)(e=Sd-t._time)>=0&&t._call.call(void 0,e),t=t._next;--G0}function lW(){Sd=(p5=wv.now())+m5,G0=bv=0;try{hW()}finally{G0=0,hSe(),Sd=0}}function uSe(){var t=wv.now(),e=t-p5;e>cW&&(m5-=e,p5=t)}function hSe(){for(var t,e=d5,r,n=1/0;e;)e._call?(n>e._time&&(n=e._time),t=e,e=e._next):(r=e._next,e._next=null,e=t?t._next=r:d5=r);Tv=t,y_(n)}function y_(t){if(!G0){bv&&(bv=clearTimeout(bv));var e=t-Sd;e>24?(t<1/0&&(bv=setTimeout(lW,t-wv.now()-m5)),xv&&(xv=clearInterval(xv))):(xv||(p5=wv.now(),xv=setInterval(uSe,cW)),G0=1,uW(lW))}}var G0,bv,xv,cW,d5,Tv,p5,Sd,m5,wv,uW,v_=M(()=>{"use strict";G0=0,bv=0,xv=0,cW=1e3,p5=0,Sd=0,m5=0,wv=typeof performance=="object"&&performance.now?performance:Date,uW=typeof window=="object"&&window.requestAnimationFrame?window.requestAnimationFrame.bind(window):function(t){setTimeout(t,17)};o(Ev,"now");o(cSe,"clearNow");o(kv,"Timer");kv.prototype=g5.prototype={constructor:kv,restart:o(function(t,e,r){if(typeof t!="function")throw new TypeError("callback is not a function");r=(r==null?Ev():+r)+(e==null?0:+e),!this._next&&Tv!==this&&(Tv?Tv._next=this:d5=this,Tv=this),this._call=t,this._time=r,y_()},"restart"),stop:o(function(){this._call&&(this._call=null,this._time=1/0,y_())},"stop")};o(g5,"timer");o(hW,"timerFlush");o(lW,"wake");o(uSe,"poke");o(hSe,"nap");o(y_,"sleep")});function Sv(t,e,r){var n=new kv;return e=e==null?0:+e,n.restart(i=>{n.stop(),t(i+e)},e,r),n}var fW=M(()=>{"use strict";v_();o(Sv,"default")});var y5=M(()=>{"use strict";v_();fW()});function bu(t,e,r,n,i,a){var s=t.__transition;if(!s)t.__transition={};else if(r in s)return;pSe(t,r,{name:e,index:n,group:i,on:fSe,tween:dSe,time:a.time,delay:a.delay,duration:a.duration,ease:a.ease,timer:null,state:mW})}function Av(t,e){var r=Oi(t,e);if(r.state>mW)throw new Error("too late; already scheduled");return r}function ca(t,e){var r=Oi(t,e);if(r.state>v5)throw new Error("too late; already running");return r}function Oi(t,e){var r=t.__transition;if(!r||!(r=r[e]))throw new Error("transition not found");return r}function pSe(t,e,r){var n=t.__transition,i;n[e]=r,r.timer=g5(a,0,r.time);function a(h){r.state=dW,r.timer.restart(s,r.delay,r.time),r.delay<=h&&s(h-r.delay)}o(a,"schedule");function s(h){var f,d,p,m;if(r.state!==dW)return u();for(f in n)if(m=n[f],m.name===r.name){if(m.state===v5)return Sv(s);m.state===pW?(m.state=Cv,m.timer.stop(),m.on.call("interrupt",t,t.__data__,m.index,m.group),delete n[f]):+f{"use strict";JA();y5();fSe=ZA("start","end","cancel","interrupt"),dSe=[],mW=0,dW=1,x5=2,v5=3,pW=4,b5=5,Cv=6;o(bu,"default");o(Av,"init");o(ca,"set");o(Oi,"get");o(pSe,"create")});function _v(t,e){var r=t.__transition,n,i,a=!0,s;if(r){e=e==null?null:e+"";for(s in r){if((n=r[s]).name!==e){a=!1;continue}i=n.state>x5&&n.state{"use strict";Ds();o(_v,"default")});function x_(t){return this.each(function(){_v(this,t)})}var yW=M(()=>{"use strict";gW();o(x_,"default")});function mSe(t,e){var r,n;return function(){var i=ca(this,t),a=i.tween;if(a!==r){n=r=a;for(var s=0,l=n.length;s{"use strict";Ds();o(mSe,"tweenRemove");o(gSe,"tweenFunction");o(b_,"default");o(V0,"tweenValue")});function Lv(t,e){var r;return(typeof e=="number"?Wi:e instanceof xl?Ed:(r=xl(e))?(e=r,Ed):$0)(t,e)}var T_=M(()=>{"use strict";B0();z0();o(Lv,"default")});function ySe(t){return function(){this.removeAttribute(t)}}function vSe(t){return function(){this.removeAttributeNS(t.space,t.local)}}function xSe(t,e,r){var n,i=r+"",a;return function(){var s=this.getAttribute(t);return s===i?null:s===n?a:a=e(n=s,r)}}function bSe(t,e,r){var n,i=r+"",a;return function(){var s=this.getAttributeNS(t.space,t.local);return s===i?null:s===n?a:a=e(n=s,r)}}function TSe(t,e,r){var n,i,a;return function(){var s,l=r(this),u;return l==null?void this.removeAttribute(t):(s=this.getAttribute(t),u=l+"",s===u?null:s===n&&u===i?a:(i=u,a=e(n=s,l)))}}function wSe(t,e,r){var n,i,a;return function(){var s,l=r(this),u;return l==null?void this.removeAttributeNS(t.space,t.local):(s=this.getAttributeNS(t.space,t.local),u=l+"",s===u?null:s===n&&u===i?a:(i=u,a=e(n=s,l)))}}function w_(t,e){var r=sc(t),n=r==="transform"?m_:Lv;return this.attrTween(t,typeof e=="function"?(r.local?wSe:TSe)(r,n,V0(this,"attr."+t,e)):e==null?(r.local?vSe:ySe)(r):(r.local?bSe:xSe)(r,n,e))}var vW=M(()=>{"use strict";z0();yl();Dv();T_();o(ySe,"attrRemove");o(vSe,"attrRemoveNS");o(xSe,"attrConstant");o(bSe,"attrConstantNS");o(TSe,"attrFunction");o(wSe,"attrFunctionNS");o(w_,"default")});function kSe(t,e){return function(r){this.setAttribute(t,e.call(this,r))}}function ESe(t,e){return function(r){this.setAttributeNS(t.space,t.local,e.call(this,r))}}function SSe(t,e){var r,n;function i(){var a=e.apply(this,arguments);return a!==n&&(r=(n=a)&&ESe(t,a)),r}return o(i,"tween"),i._value=e,i}function CSe(t,e){var r,n;function i(){var a=e.apply(this,arguments);return a!==n&&(r=(n=a)&&kSe(t,a)),r}return o(i,"tween"),i._value=e,i}function k_(t,e){var r="attr."+t;if(arguments.length<2)return(r=this.tween(r))&&r._value;if(e==null)return this.tween(r,null);if(typeof e!="function")throw new Error;var n=sc(t);return this.tween(r,(n.local?SSe:CSe)(n,e))}var xW=M(()=>{"use strict";yl();o(kSe,"attrInterpolate");o(ESe,"attrInterpolateNS");o(SSe,"attrTweenNS");o(CSe,"attrTween");o(k_,"default")});function ASe(t,e){return function(){Av(this,t).delay=+e.apply(this,arguments)}}function _Se(t,e){return e=+e,function(){Av(this,t).delay=e}}function E_(t){var e=this._id;return arguments.length?this.each((typeof t=="function"?ASe:_Se)(e,t)):Oi(this.node(),e).delay}var bW=M(()=>{"use strict";Ds();o(ASe,"delayFunction");o(_Se,"delayConstant");o(E_,"default")});function DSe(t,e){return function(){ca(this,t).duration=+e.apply(this,arguments)}}function LSe(t,e){return e=+e,function(){ca(this,t).duration=e}}function S_(t){var e=this._id;return arguments.length?this.each((typeof t=="function"?DSe:LSe)(e,t)):Oi(this.node(),e).duration}var TW=M(()=>{"use strict";Ds();o(DSe,"durationFunction");o(LSe,"durationConstant");o(S_,"default")});function RSe(t,e){if(typeof e!="function")throw new Error;return function(){ca(this,t).ease=e}}function C_(t){var e=this._id;return arguments.length?this.each(RSe(e,t)):Oi(this.node(),e).ease}var wW=M(()=>{"use strict";Ds();o(RSe,"easeConstant");o(C_,"default")});function NSe(t,e){return function(){var r=e.apply(this,arguments);if(typeof r!="function")throw new Error;ca(this,t).ease=r}}function A_(t){if(typeof t!="function")throw new Error;return this.each(NSe(this._id,t))}var kW=M(()=>{"use strict";Ds();o(NSe,"easeVarying");o(A_,"default")});function __(t){typeof t!="function"&&(t=N0(t));for(var e=this._groups,r=e.length,n=new Array(r),i=0;i{"use strict";yl();Cd();o(__,"default")});function D_(t){if(t._id!==this._id)throw new Error;for(var e=this._groups,r=t._groups,n=e.length,i=r.length,a=Math.min(n,i),s=new Array(n),l=0;l{"use strict";Cd();o(D_,"default")});function MSe(t){return(t+"").trim().split(/^|\s+/).every(function(e){var r=e.indexOf(".");return r>=0&&(e=e.slice(0,r)),!e||e==="start"})}function ISe(t,e,r){var n,i,a=MSe(e)?Av:ca;return function(){var s=a(this,t),l=s.on;l!==n&&(i=(n=l).copy()).on(e,r),s.on=i}}function L_(t,e){var r=this._id;return arguments.length<2?Oi(this.node(),r).on.on(t):this.each(ISe(r,t,e))}var CW=M(()=>{"use strict";Ds();o(MSe,"start");o(ISe,"onFunction");o(L_,"default")});function OSe(t){return function(){var e=this.parentNode;for(var r in this.__transition)if(+r!==t)return;e&&e.removeChild(this)}}function R_(){return this.on("end.remove",OSe(this._id))}var AW=M(()=>{"use strict";o(OSe,"removeFunction");o(R_,"default")});function N_(t){var e=this._name,r=this._id;typeof t!="function"&&(t=Ah(t));for(var n=this._groups,i=n.length,a=new Array(i),s=0;s{"use strict";yl();Cd();Ds();o(N_,"default")});function M_(t){var e=this._name,r=this._id;typeof t!="function"&&(t=R0(t));for(var n=this._groups,i=n.length,a=[],s=[],l=0;l{"use strict";yl();Cd();Ds();o(M_,"default")});function I_(){return new PSe(this._groups,this._parents)}var PSe,LW=M(()=>{"use strict";yl();PSe=yu.prototype.constructor;o(I_,"default")});function BSe(t,e){var r,n,i;return function(){var a=_h(this,t),s=(this.style.removeProperty(t),_h(this,t));return a===s?null:a===r&&s===n?i:i=e(r=a,n=s)}}function RW(t){return function(){this.style.removeProperty(t)}}function FSe(t,e,r){var n,i=r+"",a;return function(){var s=_h(this,t);return s===i?null:s===n?a:a=e(n=s,r)}}function $Se(t,e,r){var n,i,a;return function(){var s=_h(this,t),l=r(this),u=l+"";return l==null&&(u=l=(this.style.removeProperty(t),_h(this,t))),s===u?null:s===n&&u===i?a:(i=u,a=e(n=s,l))}}function zSe(t,e){var r,n,i,a="style."+e,s="end."+a,l;return function(){var u=ca(this,t),h=u.on,f=u.value[a]==null?l||(l=RW(e)):void 0;(h!==r||i!==f)&&(n=(r=h).copy()).on(s,i=f),u.on=n}}function O_(t,e,r){var n=(t+="")=="transform"?p_:Lv;return e==null?this.styleTween(t,BSe(t,n)).on("end.style."+t,RW(t)):typeof e=="function"?this.styleTween(t,$Se(t,n,V0(this,"style."+t,e))).each(zSe(this._id,t)):this.styleTween(t,FSe(t,n,e),r).on("end.style."+t,null)}var NW=M(()=>{"use strict";z0();yl();Ds();Dv();T_();o(BSe,"styleNull");o(RW,"styleRemove");o(FSe,"styleConstant");o($Se,"styleFunction");o(zSe,"styleMaybeRemove");o(O_,"default")});function GSe(t,e,r){return function(n){this.style.setProperty(t,e.call(this,n),r)}}function VSe(t,e,r){var n,i;function a(){var s=e.apply(this,arguments);return s!==i&&(n=(i=s)&&GSe(t,s,r)),n}return o(a,"tween"),a._value=e,a}function P_(t,e,r){var n="style."+(t+="");if(arguments.length<2)return(n=this.tween(n))&&n._value;if(e==null)return this.tween(n,null);if(typeof e!="function")throw new Error;return this.tween(n,VSe(t,e,r??""))}var MW=M(()=>{"use strict";o(GSe,"styleInterpolate");o(VSe,"styleTween");o(P_,"default")});function USe(t){return function(){this.textContent=t}}function HSe(t){return function(){var e=t(this);this.textContent=e??""}}function B_(t){return this.tween("text",typeof t=="function"?HSe(V0(this,"text",t)):USe(t==null?"":t+""))}var IW=M(()=>{"use strict";Dv();o(USe,"textConstant");o(HSe,"textFunction");o(B_,"default")});function qSe(t){return function(e){this.textContent=t.call(this,e)}}function WSe(t){var e,r;function n(){var i=t.apply(this,arguments);return i!==r&&(e=(r=i)&&qSe(i)),e}return o(n,"tween"),n._value=t,n}function F_(t){var e="text";if(arguments.length<1)return(e=this.tween(e))&&e._value;if(t==null)return this.tween(e,null);if(typeof t!="function")throw new Error;return this.tween(e,WSe(t))}var OW=M(()=>{"use strict";o(qSe,"textInterpolate");o(WSe,"textTween");o(F_,"default")});function $_(){for(var t=this._name,e=this._id,r=T5(),n=this._groups,i=n.length,a=0;a{"use strict";Cd();Ds();o($_,"default")});function z_(){var t,e,r=this,n=r._id,i=r.size();return new Promise(function(a,s){var l={value:s},u={value:o(function(){--i===0&&a()},"value")};r.each(function(){var h=ca(this,n),f=h.on;f!==t&&(e=(t=f).copy(),e._.cancel.push(l),e._.interrupt.push(l),e._.end.push(u)),h.on=e}),i===0&&a()})}var BW=M(()=>{"use strict";Ds();o(z_,"default")});function is(t,e,r,n){this._groups=t,this._parents=e,this._name=r,this._id=n}function FW(t){return yu().transition(t)}function T5(){return++YSe}var YSe,Tu,Cd=M(()=>{"use strict";yl();vW();xW();bW();TW();wW();kW();EW();SW();CW();AW();_W();DW();LW();NW();MW();IW();OW();PW();Dv();BW();YSe=0;o(is,"Transition");o(FW,"transition");o(T5,"newId");Tu=yu.prototype;is.prototype=FW.prototype={constructor:is,select:N_,selectAll:M_,selectChild:Tu.selectChild,selectChildren:Tu.selectChildren,filter:__,merge:D_,selection:I_,transition:$_,call:Tu.call,nodes:Tu.nodes,node:Tu.node,size:Tu.size,empty:Tu.empty,each:Tu.each,on:L_,attr:w_,attrTween:k_,style:O_,styleTween:P_,text:B_,textTween:F_,remove:R_,tween:b_,delay:E_,duration:S_,ease:C_,easeVarying:A_,end:z_,[Symbol.iterator]:Tu[Symbol.iterator]}});function w5(t){return((t*=2)<=1?t*t*t:(t-=2)*t*t+2)/2}var $W=M(()=>{"use strict";o(w5,"cubicInOut")});var G_=M(()=>{"use strict";$W()});function jSe(t,e){for(var r;!(r=t.__transition)||!(r=r[e]);)if(!(t=t.parentNode))throw new Error(`transition ${e} not found`);return r}function V_(t){var e,r;t instanceof is?(e=t._id,t=t._name):(e=T5(),(r=XSe).time=Ev(),t=t==null?null:t+"");for(var n=this._groups,i=n.length,a=0;a{"use strict";Cd();Ds();G_();y5();XSe={time:null,delay:0,duration:250,ease:w5};o(jSe,"inherit");o(V_,"default")});var GW=M(()=>{"use strict";yl();yW();zW();yu.prototype.interrupt=x_;yu.prototype.transition=V_});var k5=M(()=>{"use strict";GW()});var VW=M(()=>{"use strict"});var UW=M(()=>{"use strict"});var HW=M(()=>{"use strict"});function qW(t){return[+t[0],+t[1]]}function KSe(t){return[qW(t[0]),qW(t[1])]}function U_(t){return{type:t}}var p1t,m1t,g1t,y1t,v1t,x1t,WW=M(()=>{"use strict";k5();VW();UW();HW();({abs:p1t,max:m1t,min:g1t}=Math);o(qW,"number1");o(KSe,"number2");y1t={name:"x",handles:["w","e"].map(U_),input:o(function(t,e){return t==null?null:[[+t[0],e[0][1]],[+t[1],e[1][1]]]},"input"),output:o(function(t){return t&&[t[0][0],t[1][0]]},"output")},v1t={name:"y",handles:["n","s"].map(U_),input:o(function(t,e){return t==null?null:[[e[0][0],+t[0]],[e[1][0],+t[1]]]},"input"),output:o(function(t){return t&&[t[0][1],t[1][1]]},"output")},x1t={name:"xy",handles:["n","w","e","s","nw","ne","sw","se"].map(U_),input:o(function(t){return t==null?null:KSe(t)},"input"),output:o(function(t){return t},"output")};o(U_,"type")});var YW=M(()=>{"use strict";WW()});function XW(t){this._+=t[0];for(let e=1,r=t.length;e=0))throw new Error(`invalid digits: ${t}`);if(e>15)return XW;let r=10**e;return function(n){this._+=n[0];for(let i=1,a=n.length;i{"use strict";H_=Math.PI,q_=2*H_,Ad=1e-6,QSe=q_-Ad;o(XW,"append");o(ZSe,"appendRound");_d=class{static{o(this,"Path")}constructor(e){this._x0=this._y0=this._x1=this._y1=null,this._="",this._append=e==null?XW:ZSe(e)}moveTo(e,r){this._append`M${this._x0=this._x1=+e},${this._y0=this._y1=+r}`}closePath(){this._x1!==null&&(this._x1=this._x0,this._y1=this._y0,this._append`Z`)}lineTo(e,r){this._append`L${this._x1=+e},${this._y1=+r}`}quadraticCurveTo(e,r,n,i){this._append`Q${+e},${+r},${this._x1=+n},${this._y1=+i}`}bezierCurveTo(e,r,n,i,a,s){this._append`C${+e},${+r},${+n},${+i},${this._x1=+a},${this._y1=+s}`}arcTo(e,r,n,i,a){if(e=+e,r=+r,n=+n,i=+i,a=+a,a<0)throw new Error(`negative radius: ${a}`);let s=this._x1,l=this._y1,u=n-e,h=i-r,f=s-e,d=l-r,p=f*f+d*d;if(this._x1===null)this._append`M${this._x1=e},${this._y1=r}`;else if(p>Ad)if(!(Math.abs(d*u-h*f)>Ad)||!a)this._append`L${this._x1=e},${this._y1=r}`;else{let m=n-s,g=i-l,y=u*u+h*h,v=m*m+g*g,x=Math.sqrt(y),b=Math.sqrt(p),T=a*Math.tan((H_-Math.acos((y+p-v)/(2*x*b)))/2),S=T/b,w=T/x;Math.abs(S-1)>Ad&&this._append`L${e+S*f},${r+S*d}`,this._append`A${a},${a},0,0,${+(d*m>f*g)},${this._x1=e+w*u},${this._y1=r+w*h}`}}arc(e,r,n,i,a,s){if(e=+e,r=+r,n=+n,s=!!s,n<0)throw new Error(`negative radius: ${n}`);let l=n*Math.cos(i),u=n*Math.sin(i),h=e+l,f=r+u,d=1^s,p=s?i-a:a-i;this._x1===null?this._append`M${h},${f}`:(Math.abs(this._x1-h)>Ad||Math.abs(this._y1-f)>Ad)&&this._append`L${h},${f}`,n&&(p<0&&(p=p%q_+q_),p>QSe?this._append`A${n},${n},0,1,${d},${e-l},${r-u}A${n},${n},0,1,${d},${this._x1=h},${this._y1=f}`:p>Ad&&this._append`A${n},${n},0,${+(p>=H_)},${d},${this._x1=e+n*Math.cos(a)},${this._y1=r+n*Math.sin(a)}`)}rect(e,r,n,i){this._append`M${this._x0=this._x1=+e},${this._y0=this._y1=+r}h${n=+n}v${+i}h${-n}Z`}toString(){return this._}};o(jW,"path");jW.prototype=_d.prototype});var W_=M(()=>{"use strict";KW()});var QW=M(()=>{"use strict"});var ZW=M(()=>{"use strict"});var JW=M(()=>{"use strict"});var eY=M(()=>{"use strict"});var tY=M(()=>{"use strict"});var rY=M(()=>{"use strict"});var nY=M(()=>{"use strict"});function Y_(t){return Math.abs(t=Math.round(t))>=1e21?t.toLocaleString("en").replace(/,/g,""):t.toString(10)}function Dd(t,e){if((r=(t=e?t.toExponential(e-1):t.toExponential()).indexOf("e"))<0)return null;var r,n=t.slice(0,r);return[n.length>1?n[0]+n.slice(2):n,+t.slice(r+1)]}var Rv=M(()=>{"use strict";o(Y_,"default");o(Dd,"formatDecimalParts")});function bl(t){return t=Dd(Math.abs(t)),t?t[1]:NaN}var Nv=M(()=>{"use strict";Rv();o(bl,"default")});function X_(t,e){return function(r,n){for(var i=r.length,a=[],s=0,l=t[0],u=0;i>0&&l>0&&(u+l+1>n&&(l=Math.max(1,n-u)),a.push(r.substring(i-=l,i+l)),!((u+=l+1)>n));)l=t[s=(s+1)%t.length];return a.reverse().join(e)}}var iY=M(()=>{"use strict";o(X_,"default")});function j_(t){return function(e){return e.replace(/[0-9]/g,function(r){return t[+r]})}}var aY=M(()=>{"use strict";o(j_,"default")});function Nh(t){if(!(e=JSe.exec(t)))throw new Error("invalid format: "+t);var e;return new E5({fill:e[1],align:e[2],sign:e[3],symbol:e[4],zero:e[5],width:e[6],comma:e[7],precision:e[8]&&e[8].slice(1),trim:e[9],type:e[10]})}function E5(t){this.fill=t.fill===void 0?" ":t.fill+"",this.align=t.align===void 0?">":t.align+"",this.sign=t.sign===void 0?"-":t.sign+"",this.symbol=t.symbol===void 0?"":t.symbol+"",this.zero=!!t.zero,this.width=t.width===void 0?void 0:+t.width,this.comma=!!t.comma,this.precision=t.precision===void 0?void 0:+t.precision,this.trim=!!t.trim,this.type=t.type===void 0?"":t.type+""}var JSe,K_=M(()=>{"use strict";JSe=/^(?:(.)?([<>=^]))?([+\-( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i;o(Nh,"formatSpecifier");Nh.prototype=E5.prototype;o(E5,"FormatSpecifier");E5.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 Q_(t){e:for(var e=t.length,r=1,n=-1,i;r0&&(n=0);break}return n>0?t.slice(0,n)+t.slice(i+1):t}var sY=M(()=>{"use strict";o(Q_,"default")});function J_(t,e){var r=Dd(t,e);if(!r)return t+"";var n=r[0],i=r[1],a=i-(Z_=Math.max(-8,Math.min(8,Math.floor(i/3)))*3)+1,s=n.length;return a===s?n:a>s?n+new Array(a-s+1).join("0"):a>0?n.slice(0,a)+"."+n.slice(a):"0."+new Array(1-a).join("0")+Dd(t,Math.max(0,e+a-1))[0]}var Z_,eD=M(()=>{"use strict";Rv();o(J_,"default")});function S5(t,e){var r=Dd(t,e);if(!r)return t+"";var n=r[0],i=r[1];return i<0?"0."+new Array(-i).join("0")+n:n.length>i+1?n.slice(0,i+1)+"."+n.slice(i+1):n+new Array(i-n.length+2).join("0")}var oY=M(()=>{"use strict";Rv();o(S5,"default")});var tD,lY=M(()=>{"use strict";Rv();eD();oY();tD={"%":o((t,e)=>(t*100).toFixed(e),"%"),b:o(t=>Math.round(t).toString(2),"b"),c:o(t=>t+"","c"),d:Y_,e:o((t,e)=>t.toExponential(e),"e"),f:o((t,e)=>t.toFixed(e),"f"),g:o((t,e)=>t.toPrecision(e),"g"),o:o(t=>Math.round(t).toString(8),"o"),p:o((t,e)=>S5(t*100,e),"p"),r:S5,s:J_,X:o(t=>Math.round(t).toString(16).toUpperCase(),"X"),x:o(t=>Math.round(t).toString(16),"x")}});function C5(t){return t}var cY=M(()=>{"use strict";o(C5,"default")});function rD(t){var e=t.grouping===void 0||t.thousands===void 0?C5:X_(uY.call(t.grouping,Number),t.thousands+""),r=t.currency===void 0?"":t.currency[0]+"",n=t.currency===void 0?"":t.currency[1]+"",i=t.decimal===void 0?".":t.decimal+"",a=t.numerals===void 0?C5:j_(uY.call(t.numerals,String)),s=t.percent===void 0?"%":t.percent+"",l=t.minus===void 0?"\u2212":t.minus+"",u=t.nan===void 0?"NaN":t.nan+"";function h(d){d=Nh(d);var p=d.fill,m=d.align,g=d.sign,y=d.symbol,v=d.zero,x=d.width,b=d.comma,T=d.precision,S=d.trim,w=d.type;w==="n"?(b=!0,w="g"):tD[w]||(T===void 0&&(T=12),S=!0,w="g"),(v||p==="0"&&m==="=")&&(v=!0,p="0",m="=");var k=y==="$"?r:y==="#"&&/[boxX]/.test(w)?"0"+w.toLowerCase():"",C=y==="$"?n:/[%p]/.test(w)?s:"",A=tD[w],L=/[defgprs%]/.test(w);T=T===void 0?6:/[gprs]/.test(w)?Math.max(1,Math.min(21,T)):Math.max(0,Math.min(20,T));function I(R){var E=k,_=C,D,O,N;if(w==="c")_=A(R)+_,R="";else{R=+R;var P=R<0||1/R<0;if(R=isNaN(R)?u:A(Math.abs(R),T),S&&(R=Q_(R)),P&&+R==0&&g!=="+"&&(P=!1),E=(P?g==="("?g:l:g==="-"||g==="("?"":g)+E,_=(w==="s"?hY[8+Z_/3]:"")+_+(P&&g==="("?")":""),L){for(D=-1,O=R.length;++DN||N>57){_=(N===46?i+R.slice(D+1):R.slice(D))+_,R=R.slice(0,D);break}}}b&&!v&&(R=e(R,1/0));var B=E.length+R.length+_.length,F=B>1)+E+R+_+F.slice(B);break;default:R=F+E+R+_;break}return a(R)}return o(I,"format"),I.toString=function(){return d+""},I}o(h,"newFormat");function f(d,p){var m=h((d=Nh(d),d.type="f",d)),g=Math.max(-8,Math.min(8,Math.floor(bl(p)/3)))*3,y=Math.pow(10,-g),v=hY[8+g/3];return function(x){return m(y*x)+v}}return o(f,"formatPrefix"),{format:h,formatPrefix:f}}var uY,hY,fY=M(()=>{"use strict";Nv();iY();aY();K_();sY();lY();eD();cY();uY=Array.prototype.map,hY=["y","z","a","f","p","n","\xB5","m","","k","M","G","T","P","E","Z","Y"];o(rD,"default")});function nD(t){return A5=rD(t),cc=A5.format,_5=A5.formatPrefix,A5}var A5,cc,_5,dY=M(()=>{"use strict";fY();nD({thousands:",",grouping:[3],currency:["$",""]});o(nD,"defaultLocale")});function D5(t){return Math.max(0,-bl(Math.abs(t)))}var pY=M(()=>{"use strict";Nv();o(D5,"default")});function L5(t,e){return Math.max(0,Math.max(-8,Math.min(8,Math.floor(bl(e)/3)))*3-bl(Math.abs(t)))}var mY=M(()=>{"use strict";Nv();o(L5,"default")});function R5(t,e){return t=Math.abs(t),e=Math.abs(e)-t,Math.max(0,bl(e)-bl(t))+1}var gY=M(()=>{"use strict";Nv();o(R5,"default")});var iD=M(()=>{"use strict";dY();K_();pY();mY();gY()});var yY=M(()=>{"use strict"});function e6e(t){var e=0,r=t.children,n=r&&r.length;if(!n)e=1;else for(;--n>=0;)e+=r[n].value;t.value=e}function aD(){return this.eachAfter(e6e)}var vY=M(()=>{"use strict";o(e6e,"count");o(aD,"default")});function sD(t,e){let r=-1;for(let n of this)t.call(e,n,++r,this);return this}var xY=M(()=>{"use strict";o(sD,"default")});function oD(t,e){for(var r=this,n=[r],i,a,s=-1;r=n.pop();)if(t.call(e,r,++s,this),i=r.children)for(a=i.length-1;a>=0;--a)n.push(i[a]);return this}var bY=M(()=>{"use strict";o(oD,"default")});function lD(t,e){for(var r=this,n=[r],i=[],a,s,l,u=-1;r=n.pop();)if(i.push(r),a=r.children)for(s=0,l=a.length;s{"use strict";o(lD,"default")});function cD(t,e){let r=-1;for(let n of this)if(t.call(e,n,++r,this))return n}var wY=M(()=>{"use strict";o(cD,"default")});function uD(t){return this.eachAfter(function(e){for(var r=+t(e.data)||0,n=e.children,i=n&&n.length;--i>=0;)r+=n[i].value;e.value=r})}var kY=M(()=>{"use strict";o(uD,"default")});function hD(t){return this.eachBefore(function(e){e.children&&e.children.sort(t)})}var EY=M(()=>{"use strict";o(hD,"default")});function fD(t){for(var e=this,r=t6e(e,t),n=[e];e!==r;)e=e.parent,n.push(e);for(var i=n.length;t!==r;)n.splice(i,0,t),t=t.parent;return n}function t6e(t,e){if(t===e)return t;var r=t.ancestors(),n=e.ancestors(),i=null;for(t=r.pop(),e=n.pop();t===e;)i=t,t=r.pop(),e=n.pop();return i}var SY=M(()=>{"use strict";o(fD,"default");o(t6e,"leastCommonAncestor")});function dD(){for(var t=this,e=[t];t=t.parent;)e.push(t);return e}var CY=M(()=>{"use strict";o(dD,"default")});function pD(){return Array.from(this)}var AY=M(()=>{"use strict";o(pD,"default")});function mD(){var t=[];return this.eachBefore(function(e){e.children||t.push(e)}),t}var _Y=M(()=>{"use strict";o(mD,"default")});function gD(){var t=this,e=[];return t.each(function(r){r!==t&&e.push({source:r.parent,target:r})}),e}var DY=M(()=>{"use strict";o(gD,"default")});function*yD(){var t=this,e,r=[t],n,i,a;do for(e=r.reverse(),r=[];t=e.pop();)if(yield t,n=t.children)for(i=0,a=n.length;i{"use strict";o(yD,"default")});function U0(t,e){t instanceof Map?(t=[void 0,t],e===void 0&&(e=i6e)):e===void 0&&(e=n6e);for(var r=new Mv(t),n,i=[r],a,s,l,u;n=i.pop();)if((s=e(n.data))&&(u=(s=Array.from(s)).length))for(n.children=s,l=u-1;l>=0;--l)i.push(a=s[l]=new Mv(s[l])),a.parent=n,a.depth=n.depth+1;return r.eachBefore(s6e)}function r6e(){return U0(this).eachBefore(a6e)}function n6e(t){return t.children}function i6e(t){return Array.isArray(t)?t[1]:null}function a6e(t){t.data.value!==void 0&&(t.value=t.data.value),t.data=t.data.data}function s6e(t){var e=0;do t.height=e;while((t=t.parent)&&t.height<++e)}function Mv(t){this.data=t,this.depth=this.height=0,this.parent=null}var RY=M(()=>{"use strict";vY();xY();bY();TY();wY();kY();EY();SY();CY();AY();_Y();DY();LY();o(U0,"hierarchy");o(r6e,"node_copy");o(n6e,"objectChildren");o(i6e,"mapChildren");o(a6e,"copyData");o(s6e,"computeHeight");o(Mv,"Node");Mv.prototype=U0.prototype={constructor:Mv,count:aD,each:sD,eachAfter:lD,eachBefore:oD,find:cD,sum:uD,sort:hD,path:fD,ancestors:dD,descendants:pD,leaves:mD,links:gD,copy:r6e,[Symbol.iterator]:yD}});function NY(t){if(typeof t!="function")throw new Error;return t}var MY=M(()=>{"use strict";o(NY,"required")});function H0(){return 0}function Ld(t){return function(){return t}}var IY=M(()=>{"use strict";o(H0,"constantZero");o(Ld,"default")});function vD(t){t.x0=Math.round(t.x0),t.y0=Math.round(t.y0),t.x1=Math.round(t.x1),t.y1=Math.round(t.y1)}var OY=M(()=>{"use strict";o(vD,"default")});function xD(t,e,r,n,i){for(var a=t.children,s,l=-1,u=a.length,h=t.value&&(n-e)/t.value;++l{"use strict";o(xD,"default")});function bD(t,e,r,n,i){for(var a=t.children,s,l=-1,u=a.length,h=t.value&&(i-r)/t.value;++l{"use strict";o(bD,"default")});function l6e(t,e,r,n,i,a){for(var s=[],l=e.children,u,h,f=0,d=0,p=l.length,m,g,y=e.value,v,x,b,T,S,w,k;fb&&(b=h),k=v*v*w,T=Math.max(b/k,k/x),T>S){v-=h;break}S=T}s.push(u={value:v,dice:m{"use strict";PY();BY();o6e=(1+Math.sqrt(5))/2;o(l6e,"squarifyRatio");FY=o((function t(e){function r(n,i,a,s,l){l6e(e,n,i,a,s,l)}return o(r,"squarify"),r.ratio=function(n){return t((n=+n)>1?n:1)},r}),"custom")(o6e)});function N5(){var t=FY,e=!1,r=1,n=1,i=[0],a=H0,s=H0,l=H0,u=H0,h=H0;function f(p){return p.x0=p.y0=0,p.x1=r,p.y1=n,p.eachBefore(d),i=[0],e&&p.eachBefore(vD),p}o(f,"treemap");function d(p){var m=i[p.depth],g=p.x0+m,y=p.y0+m,v=p.x1-m,x=p.y1-m;v{"use strict";OY();$Y();MY();IY();o(N5,"default")});var GY=M(()=>{"use strict";RY();zY()});var VY=M(()=>{"use strict"});var UY=M(()=>{"use strict"});function Mh(t,e){switch(arguments.length){case 0:break;case 1:this.range(t);break;default:this.range(e).domain(t);break}return this}var Iv=M(()=>{"use strict";o(Mh,"initRange")});function no(){var t=new D0,e=[],r=[],n=TD;function i(a){let s=t.get(a);if(s===void 0){if(n!==TD)return n;t.set(a,s=e.push(a)-1)}return r[s%r.length]}return o(i,"scale"),i.domain=function(a){if(!arguments.length)return e.slice();e=[],t=new D0;for(let s of a)t.has(s)||t.set(s,e.push(s)-1);return i},i.range=function(a){return arguments.length?(r=Array.from(a),i):r.slice()},i.unknown=function(a){return arguments.length?(n=a,i):n},i.copy=function(){return no(e,r).unknown(n)},Mh.apply(i,arguments),i}var TD,wD=M(()=>{"use strict";Ch();Iv();TD=Symbol("implicit");o(no,"ordinal")});function q0(){var t=no().unknown(void 0),e=t.domain,r=t.range,n=0,i=1,a,s,l=!1,u=0,h=0,f=.5;delete t.unknown;function d(){var p=e().length,m=i{"use strict";Ch();Iv();wD();o(q0,"band")});function kD(t){return function(){return t}}var qY=M(()=>{"use strict";o(kD,"constants")});function ED(t){return+t}var WY=M(()=>{"use strict";o(ED,"number")});function W0(t){return t}function SD(t,e){return(e-=t=+t)?function(r){return(r-t)/e}:kD(isNaN(e)?NaN:.5)}function c6e(t,e){var r;return t>e&&(r=t,t=e,e=r),function(n){return Math.max(t,Math.min(e,n))}}function u6e(t,e,r){var n=t[0],i=t[1],a=e[0],s=e[1];return i2?h6e:u6e,u=h=null,d}o(f,"rescale");function d(p){return p==null||isNaN(p=+p)?a:(u||(u=l(t.map(n),e,r)))(n(s(p)))}return o(d,"scale"),d.invert=function(p){return s(i((h||(h=l(e,t.map(n),Wi)))(p)))},d.domain=function(p){return arguments.length?(t=Array.from(p,ED),f()):t.slice()},d.range=function(p){return arguments.length?(e=Array.from(p),f()):e.slice()},d.rangeRound=function(p){return e=Array.from(p),r=c5,f()},d.clamp=function(p){return arguments.length?(s=p?!0:W0,f()):s!==W0},d.interpolate=function(p){return arguments.length?(r=p,f()):r},d.unknown=function(p){return arguments.length?(a=p,d):a},function(p,m){return n=p,i=m,f()}}function Ov(){return f6e()(W0,W0)}var YY,CD=M(()=>{"use strict";Ch();z0();qY();WY();YY=[0,1];o(W0,"identity");o(SD,"normalize");o(c6e,"clamper");o(u6e,"bimap");o(h6e,"polymap");o(M5,"copy");o(f6e,"transformer");o(Ov,"continuous")});function AD(t,e,r,n){var i=L0(t,e,r),a;switch(n=Nh(n??",f"),n.type){case"s":{var s=Math.max(Math.abs(t),Math.abs(e));return n.precision==null&&!isNaN(a=L5(i,s))&&(n.precision=a),_5(n,s)}case"":case"e":case"g":case"p":case"r":{n.precision==null&&!isNaN(a=R5(i,Math.max(Math.abs(t),Math.abs(e))))&&(n.precision=a-(n.type==="e"));break}case"f":case"%":{n.precision==null&&!isNaN(a=D5(i))&&(n.precision=a-(n.type==="%")*2);break}}return cc(n)}var XY=M(()=>{"use strict";Ch();iD();o(AD,"tickFormat")});function d6e(t){var e=t.domain;return t.ticks=function(r){var n=e();return W3(n[0],n[n.length-1],r??10)},t.tickFormat=function(r,n){var i=e();return AD(i[0],i[i.length-1],r??10,n)},t.nice=function(r){r==null&&(r=10);var n=e(),i=0,a=n.length-1,s=n[i],l=n[a],u,h,f=10;for(l0;){if(h=cv(s,l,r),h===u)return n[i]=s,n[a]=l,e(n);if(h>0)s=Math.floor(s/h)*h,l=Math.ceil(l/h)*h;else if(h<0)s=Math.ceil(s*h)/h,l=Math.floor(l*h)/h;else break;u=h}return t},t}function Tl(){var t=Ov();return t.copy=function(){return M5(t,Tl())},Mh.apply(t,arguments),d6e(t)}var jY=M(()=>{"use strict";Ch();CD();Iv();XY();o(d6e,"linearish");o(Tl,"linear")});function _D(t,e){t=t.slice();var r=0,n=t.length-1,i=t[r],a=t[n],s;return a{"use strict";o(_D,"nice")});function En(t,e,r,n){function i(a){return t(a=arguments.length===0?new Date:new Date(+a)),a}return o(i,"interval"),i.floor=a=>(t(a=new Date(+a)),a),i.ceil=a=>(t(a=new Date(a-1)),e(a,1),t(a),a),i.round=a=>{let s=i(a),l=i.ceil(a);return a-s(e(a=new Date(+a),s==null?1:Math.floor(s)),a),i.range=(a,s,l)=>{let u=[];if(a=i.ceil(a),l=l==null?1:Math.floor(l),!(a0))return u;let h;do u.push(h=new Date(+a)),e(a,l),t(a);while(hEn(s=>{if(s>=s)for(;t(s),!a(s);)s.setTime(s-1)},(s,l)=>{if(s>=s)if(l<0)for(;++l<=0;)for(;e(s,-1),!a(s););else for(;--l>=0;)for(;e(s,1),!a(s););}),r&&(i.count=(a,s)=>(DD.setTime(+a),LD.setTime(+s),t(DD),t(LD),Math.floor(r(DD,LD))),i.every=a=>(a=Math.floor(a),!isFinite(a)||!(a>0)?null:a>1?i.filter(n?s=>n(s)%a===0:s=>i.count(0,s)%a===0):i)),i}var DD,LD,wu=M(()=>{"use strict";DD=new Date,LD=new Date;o(En,"timeInterval")});var uc,QY,RD=M(()=>{"use strict";wu();uc=En(()=>{},(t,e)=>{t.setTime(+t+e)},(t,e)=>e-t);uc.every=t=>(t=Math.floor(t),!isFinite(t)||!(t>0)?null:t>1?En(e=>{e.setTime(Math.floor(e/t)*t)},(e,r)=>{e.setTime(+e+r*t)},(e,r)=>(r-e)/t):uc);QY=uc.range});var io,ZY,ND=M(()=>{"use strict";wu();io=En(t=>{t.setTime(t-t.getMilliseconds())},(t,e)=>{t.setTime(+t+e*1e3)},(t,e)=>(e-t)/1e3,t=>t.getUTCSeconds()),ZY=io.range});var ku,p6e,I5,m6e,MD=M(()=>{"use strict";wu();ku=En(t=>{t.setTime(t-t.getMilliseconds()-t.getSeconds()*1e3)},(t,e)=>{t.setTime(+t+e*6e4)},(t,e)=>(e-t)/6e4,t=>t.getMinutes()),p6e=ku.range,I5=En(t=>{t.setUTCSeconds(0,0)},(t,e)=>{t.setTime(+t+e*6e4)},(t,e)=>(e-t)/6e4,t=>t.getUTCMinutes()),m6e=I5.range});var Eu,g6e,O5,y6e,ID=M(()=>{"use strict";wu();Eu=En(t=>{t.setTime(t-t.getMilliseconds()-t.getSeconds()*1e3-t.getMinutes()*6e4)},(t,e)=>{t.setTime(+t+e*36e5)},(t,e)=>(e-t)/36e5,t=>t.getHours()),g6e=Eu.range,O5=En(t=>{t.setUTCMinutes(0,0,0)},(t,e)=>{t.setTime(+t+e*36e5)},(t,e)=>(e-t)/36e5,t=>t.getUTCHours()),y6e=O5.range});var Ro,v6e,Bv,x6e,P5,b6e,OD=M(()=>{"use strict";wu();Ro=En(t=>t.setHours(0,0,0,0),(t,e)=>t.setDate(t.getDate()+e),(t,e)=>(e-t-(e.getTimezoneOffset()-t.getTimezoneOffset())*6e4)/864e5,t=>t.getDate()-1),v6e=Ro.range,Bv=En(t=>{t.setUTCHours(0,0,0,0)},(t,e)=>{t.setUTCDate(t.getUTCDate()+e)},(t,e)=>(e-t)/864e5,t=>t.getUTCDate()-1),x6e=Bv.range,P5=En(t=>{t.setUTCHours(0,0,0,0)},(t,e)=>{t.setUTCDate(t.getUTCDate()+e)},(t,e)=>(e-t)/864e5,t=>Math.floor(t/864e5)),b6e=P5.range});function Md(t){return En(e=>{e.setDate(e.getDate()-(e.getDay()+7-t)%7),e.setHours(0,0,0,0)},(e,r)=>{e.setDate(e.getDate()+r*7)},(e,r)=>(r-e-(r.getTimezoneOffset()-e.getTimezoneOffset())*6e4)/6048e5)}function Id(t){return En(e=>{e.setUTCDate(e.getUTCDate()-(e.getUTCDay()+7-t)%7),e.setUTCHours(0,0,0,0)},(e,r)=>{e.setUTCDate(e.getUTCDate()+r*7)},(e,r)=>(r-e)/6048e5)}var wl,Ih,B5,F5,fc,$5,z5,eX,T6e,w6e,k6e,E6e,S6e,C6e,Od,Y0,tX,rX,Oh,nX,iX,aX,A6e,_6e,D6e,L6e,R6e,N6e,PD=M(()=>{"use strict";wu();o(Md,"timeWeekday");wl=Md(0),Ih=Md(1),B5=Md(2),F5=Md(3),fc=Md(4),$5=Md(5),z5=Md(6),eX=wl.range,T6e=Ih.range,w6e=B5.range,k6e=F5.range,E6e=fc.range,S6e=$5.range,C6e=z5.range;o(Id,"utcWeekday");Od=Id(0),Y0=Id(1),tX=Id(2),rX=Id(3),Oh=Id(4),nX=Id(5),iX=Id(6),aX=Od.range,A6e=Y0.range,_6e=tX.range,D6e=rX.range,L6e=Oh.range,R6e=nX.range,N6e=iX.range});var Su,M6e,G5,I6e,BD=M(()=>{"use strict";wu();Su=En(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()),M6e=Su.range,G5=En(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()),I6e=G5.range});var ao,O6e,kl,P6e,FD=M(()=>{"use strict";wu();ao=En(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());ao.every=t=>!isFinite(t=Math.floor(t))||!(t>0)?null:En(e=>{e.setFullYear(Math.floor(e.getFullYear()/t)*t),e.setMonth(0,1),e.setHours(0,0,0,0)},(e,r)=>{e.setFullYear(e.getFullYear()+r*t)});O6e=ao.range,kl=En(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());kl.every=t=>!isFinite(t=Math.floor(t))||!(t>0)?null:En(e=>{e.setUTCFullYear(Math.floor(e.getUTCFullYear()/t)*t),e.setUTCMonth(0,1),e.setUTCHours(0,0,0,0)},(e,r)=>{e.setUTCFullYear(e.getUTCFullYear()+r*t)});P6e=kl.range});function oX(t,e,r,n,i,a){let s=[[io,1,1e3],[io,5,5*1e3],[io,15,15*1e3],[io,30,30*1e3],[a,1,6e4],[a,5,5*6e4],[a,15,15*6e4],[a,30,30*6e4],[i,1,36e5],[i,3,3*36e5],[i,6,6*36e5],[i,12,12*36e5],[n,1,864e5],[n,2,2*864e5],[r,1,6048e5],[e,1,2592e6],[e,3,3*2592e6],[t,1,31536e6]];function l(h,f,d){let p=fv).right(s,p);if(m===s.length)return t.every(L0(h/31536e6,f/31536e6,d));if(m===0)return uc.every(Math.max(L0(h,f,d),1));let[g,y]=s[p/s[m-1][2]{"use strict";Ch();RD();ND();MD();ID();OD();PD();BD();FD();o(oX,"ticker");[F6e,$6e]=oX(kl,G5,Od,P5,O5,I5),[$D,zD]=oX(ao,Su,wl,Ro,Eu,ku)});var V5=M(()=>{"use strict";RD();ND();MD();ID();OD();PD();BD();FD();lX()});function GD(t){if(0<=t.y&&t.y<100){var e=new Date(-1,t.m,t.d,t.H,t.M,t.S,t.L);return e.setFullYear(t.y),e}return new Date(t.y,t.m,t.d,t.H,t.M,t.S,t.L)}function VD(t){if(0<=t.y&&t.y<100){var e=new Date(Date.UTC(-1,t.m,t.d,t.H,t.M,t.S,t.L));return e.setUTCFullYear(t.y),e}return new Date(Date.UTC(t.y,t.m,t.d,t.H,t.M,t.S,t.L))}function Fv(t,e,r){return{y:t,m:e,d:r,H:0,M:0,S:0,L:0}}function UD(t){var e=t.dateTime,r=t.date,n=t.time,i=t.periods,a=t.days,s=t.shortDays,l=t.months,u=t.shortMonths,h=$v(i),f=zv(i),d=$v(a),p=zv(a),m=$v(s),g=zv(s),y=$v(l),v=zv(l),x=$v(u),b=zv(u),T={a:P,A:B,b:F,B:V,c:null,d:pX,e:pX,f:lCe,g:vCe,G:bCe,H:aCe,I:sCe,j:oCe,L:xX,m:cCe,M:uCe,p:$,q:U,Q:yX,s:vX,S:hCe,u:fCe,U:dCe,V:pCe,w:mCe,W:gCe,x:null,X:null,y:yCe,Y:xCe,Z:TCe,"%":gX},S={a:j,A:ee,b:q,B:oe,c:null,d:mX,e:mX,f:SCe,g:OCe,G:BCe,H:wCe,I:kCe,j:ECe,L:TX,m:CCe,M:ACe,p:Q,q:ue,Q:yX,s:vX,S:_Ce,u:DCe,U:LCe,V:RCe,w:NCe,W:MCe,x:null,X:null,y:ICe,Y:PCe,Z:FCe,"%":gX},w={a:I,A:R,b:E,B:_,c:D,d:fX,e:fX,f:tCe,g:hX,G:uX,H:dX,I:dX,j:Q6e,L:eCe,m:K6e,M:Z6e,p:L,q:j6e,Q:nCe,s:iCe,S:J6e,u:H6e,U:q6e,V:W6e,w:U6e,W:Y6e,x:O,X:N,y:hX,Y:uX,Z:X6e,"%":rCe};T.x=k(r,T),T.X=k(n,T),T.c=k(e,T),S.x=k(r,S),S.X=k(n,S),S.c=k(e,S);function k(te,re){return function(J){var K=[],ae=-1,Z=0,de=te.length,ne,Te,W;for(J instanceof Date||(J=new Date(+J));++ae53)return null;"w"in K||(K.w=1),"Z"in K?(Z=VD(Fv(K.y,0,1)),de=Z.getUTCDay(),Z=de>4||de===0?Y0.ceil(Z):Y0(Z),Z=Bv.offset(Z,(K.V-1)*7),K.y=Z.getUTCFullYear(),K.m=Z.getUTCMonth(),K.d=Z.getUTCDate()+(K.w+6)%7):(Z=GD(Fv(K.y,0,1)),de=Z.getDay(),Z=de>4||de===0?Ih.ceil(Z):Ih(Z),Z=Ro.offset(Z,(K.V-1)*7),K.y=Z.getFullYear(),K.m=Z.getMonth(),K.d=Z.getDate()+(K.w+6)%7)}else("W"in K||"U"in K)&&("w"in K||(K.w="u"in K?K.u%7:"W"in K?1:0),de="Z"in K?VD(Fv(K.y,0,1)).getUTCDay():GD(Fv(K.y,0,1)).getDay(),K.m=0,K.d="W"in K?(K.w+6)%7+K.W*7-(de+5)%7:K.w+K.U*7-(de+6)%7);return"Z"in K?(K.H+=K.Z/100|0,K.M+=K.Z%100,VD(K)):GD(K)}}o(C,"newParse");function A(te,re,J,K){for(var ae=0,Z=re.length,de=J.length,ne,Te;ae=de)return-1;if(ne=re.charCodeAt(ae++),ne===37){if(ne=re.charAt(ae++),Te=w[ne in cX?re.charAt(ae++):ne],!Te||(K=Te(te,J,K))<0)return-1}else if(ne!=J.charCodeAt(K++))return-1}return K}o(A,"parseSpecifier");function L(te,re,J){var K=h.exec(re.slice(J));return K?(te.p=f.get(K[0].toLowerCase()),J+K[0].length):-1}o(L,"parsePeriod");function I(te,re,J){var K=m.exec(re.slice(J));return K?(te.w=g.get(K[0].toLowerCase()),J+K[0].length):-1}o(I,"parseShortWeekday");function R(te,re,J){var K=d.exec(re.slice(J));return K?(te.w=p.get(K[0].toLowerCase()),J+K[0].length):-1}o(R,"parseWeekday");function E(te,re,J){var K=x.exec(re.slice(J));return K?(te.m=b.get(K[0].toLowerCase()),J+K[0].length):-1}o(E,"parseShortMonth");function _(te,re,J){var K=y.exec(re.slice(J));return K?(te.m=v.get(K[0].toLowerCase()),J+K[0].length):-1}o(_,"parseMonth");function D(te,re,J){return A(te,e,re,J)}o(D,"parseLocaleDateTime");function O(te,re,J){return A(te,r,re,J)}o(O,"parseLocaleDate");function N(te,re,J){return A(te,n,re,J)}o(N,"parseLocaleTime");function P(te){return s[te.getDay()]}o(P,"formatShortWeekday");function B(te){return a[te.getDay()]}o(B,"formatWeekday");function F(te){return u[te.getMonth()]}o(F,"formatShortMonth");function V(te){return l[te.getMonth()]}o(V,"formatMonth");function $(te){return i[+(te.getHours()>=12)]}o($,"formatPeriod");function U(te){return 1+~~(te.getMonth()/3)}o(U,"formatQuarter");function j(te){return s[te.getUTCDay()]}o(j,"formatUTCShortWeekday");function ee(te){return a[te.getUTCDay()]}o(ee,"formatUTCWeekday");function q(te){return u[te.getUTCMonth()]}o(q,"formatUTCShortMonth");function oe(te){return l[te.getUTCMonth()]}o(oe,"formatUTCMonth");function Q(te){return i[+(te.getUTCHours()>=12)]}o(Q,"formatUTCPeriod");function ue(te){return 1+~~(te.getUTCMonth()/3)}return o(ue,"formatUTCQuarter"),{format:o(function(te){var re=k(te+="",T);return re.toString=function(){return te},re},"format"),parse:o(function(te){var re=C(te+="",!1);return re.toString=function(){return te},re},"parse"),utcFormat:o(function(te){var re=k(te+="",S);return re.toString=function(){return te},re},"utcFormat"),utcParse:o(function(te){var re=C(te+="",!0);return re.toString=function(){return te},re},"utcParse")}}function Kr(t,e,r){var n=t<0?"-":"",i=(n?-t:t)+"",a=i.length;return n+(a[e.toLowerCase(),r]))}function U6e(t,e,r){var n=Yi.exec(e.slice(r,r+1));return n?(t.w=+n[0],r+n[0].length):-1}function H6e(t,e,r){var n=Yi.exec(e.slice(r,r+1));return n?(t.u=+n[0],r+n[0].length):-1}function q6e(t,e,r){var n=Yi.exec(e.slice(r,r+2));return n?(t.U=+n[0],r+n[0].length):-1}function W6e(t,e,r){var n=Yi.exec(e.slice(r,r+2));return n?(t.V=+n[0],r+n[0].length):-1}function Y6e(t,e,r){var n=Yi.exec(e.slice(r,r+2));return n?(t.W=+n[0],r+n[0].length):-1}function uX(t,e,r){var n=Yi.exec(e.slice(r,r+4));return n?(t.y=+n[0],r+n[0].length):-1}function hX(t,e,r){var n=Yi.exec(e.slice(r,r+2));return n?(t.y=+n[0]+(+n[0]>68?1900:2e3),r+n[0].length):-1}function X6e(t,e,r){var n=/^(Z)|([+-]\d\d)(?::?(\d\d))?/.exec(e.slice(r,r+6));return n?(t.Z=n[1]?0:-(n[2]+(n[3]||"00")),r+n[0].length):-1}function j6e(t,e,r){var n=Yi.exec(e.slice(r,r+1));return n?(t.q=n[0]*3-3,r+n[0].length):-1}function K6e(t,e,r){var n=Yi.exec(e.slice(r,r+2));return n?(t.m=n[0]-1,r+n[0].length):-1}function fX(t,e,r){var n=Yi.exec(e.slice(r,r+2));return n?(t.d=+n[0],r+n[0].length):-1}function Q6e(t,e,r){var n=Yi.exec(e.slice(r,r+3));return n?(t.m=0,t.d=+n[0],r+n[0].length):-1}function dX(t,e,r){var n=Yi.exec(e.slice(r,r+2));return n?(t.H=+n[0],r+n[0].length):-1}function Z6e(t,e,r){var n=Yi.exec(e.slice(r,r+2));return n?(t.M=+n[0],r+n[0].length):-1}function J6e(t,e,r){var n=Yi.exec(e.slice(r,r+2));return n?(t.S=+n[0],r+n[0].length):-1}function eCe(t,e,r){var n=Yi.exec(e.slice(r,r+3));return n?(t.L=+n[0],r+n[0].length):-1}function tCe(t,e,r){var n=Yi.exec(e.slice(r,r+6));return n?(t.L=Math.floor(n[0]/1e3),r+n[0].length):-1}function rCe(t,e,r){var n=z6e.exec(e.slice(r,r+1));return n?r+n[0].length:-1}function nCe(t,e,r){var n=Yi.exec(e.slice(r));return n?(t.Q=+n[0],r+n[0].length):-1}function iCe(t,e,r){var n=Yi.exec(e.slice(r));return n?(t.s=+n[0],r+n[0].length):-1}function pX(t,e){return Kr(t.getDate(),e,2)}function aCe(t,e){return Kr(t.getHours(),e,2)}function sCe(t,e){return Kr(t.getHours()%12||12,e,2)}function oCe(t,e){return Kr(1+Ro.count(ao(t),t),e,3)}function xX(t,e){return Kr(t.getMilliseconds(),e,3)}function lCe(t,e){return xX(t,e)+"000"}function cCe(t,e){return Kr(t.getMonth()+1,e,2)}function uCe(t,e){return Kr(t.getMinutes(),e,2)}function hCe(t,e){return Kr(t.getSeconds(),e,2)}function fCe(t){var e=t.getDay();return e===0?7:e}function dCe(t,e){return Kr(wl.count(ao(t)-1,t),e,2)}function bX(t){var e=t.getDay();return e>=4||e===0?fc(t):fc.ceil(t)}function pCe(t,e){return t=bX(t),Kr(fc.count(ao(t),t)+(ao(t).getDay()===4),e,2)}function mCe(t){return t.getDay()}function gCe(t,e){return Kr(Ih.count(ao(t)-1,t),e,2)}function yCe(t,e){return Kr(t.getFullYear()%100,e,2)}function vCe(t,e){return t=bX(t),Kr(t.getFullYear()%100,e,2)}function xCe(t,e){return Kr(t.getFullYear()%1e4,e,4)}function bCe(t,e){var r=t.getDay();return t=r>=4||r===0?fc(t):fc.ceil(t),Kr(t.getFullYear()%1e4,e,4)}function TCe(t){var e=t.getTimezoneOffset();return(e>0?"-":(e*=-1,"+"))+Kr(e/60|0,"0",2)+Kr(e%60,"0",2)}function mX(t,e){return Kr(t.getUTCDate(),e,2)}function wCe(t,e){return Kr(t.getUTCHours(),e,2)}function kCe(t,e){return Kr(t.getUTCHours()%12||12,e,2)}function ECe(t,e){return Kr(1+Bv.count(kl(t),t),e,3)}function TX(t,e){return Kr(t.getUTCMilliseconds(),e,3)}function SCe(t,e){return TX(t,e)+"000"}function CCe(t,e){return Kr(t.getUTCMonth()+1,e,2)}function ACe(t,e){return Kr(t.getUTCMinutes(),e,2)}function _Ce(t,e){return Kr(t.getUTCSeconds(),e,2)}function DCe(t){var e=t.getUTCDay();return e===0?7:e}function LCe(t,e){return Kr(Od.count(kl(t)-1,t),e,2)}function wX(t){var e=t.getUTCDay();return e>=4||e===0?Oh(t):Oh.ceil(t)}function RCe(t,e){return t=wX(t),Kr(Oh.count(kl(t),t)+(kl(t).getUTCDay()===4),e,2)}function NCe(t){return t.getUTCDay()}function MCe(t,e){return Kr(Y0.count(kl(t)-1,t),e,2)}function ICe(t,e){return Kr(t.getUTCFullYear()%100,e,2)}function OCe(t,e){return t=wX(t),Kr(t.getUTCFullYear()%100,e,2)}function PCe(t,e){return Kr(t.getUTCFullYear()%1e4,e,4)}function BCe(t,e){var r=t.getUTCDay();return t=r>=4||r===0?Oh(t):Oh.ceil(t),Kr(t.getUTCFullYear()%1e4,e,4)}function FCe(){return"+0000"}function gX(){return"%"}function yX(t){return+t}function vX(t){return Math.floor(+t/1e3)}var cX,Yi,z6e,G6e,kX=M(()=>{"use strict";V5();o(GD,"localDate");o(VD,"utcDate");o(Fv,"newDate");o(UD,"formatLocale");cX={"-":"",_:" ",0:"0"},Yi=/^\s*\d+/,z6e=/^%/,G6e=/[\\^$*+?|[\]().{}]/g;o(Kr,"pad");o(V6e,"requote");o($v,"formatRe");o(zv,"formatLookup");o(U6e,"parseWeekdayNumberSunday");o(H6e,"parseWeekdayNumberMonday");o(q6e,"parseWeekNumberSunday");o(W6e,"parseWeekNumberISO");o(Y6e,"parseWeekNumberMonday");o(uX,"parseFullYear");o(hX,"parseYear");o(X6e,"parseZone");o(j6e,"parseQuarter");o(K6e,"parseMonthNumber");o(fX,"parseDayOfMonth");o(Q6e,"parseDayOfYear");o(dX,"parseHour24");o(Z6e,"parseMinutes");o(J6e,"parseSeconds");o(eCe,"parseMilliseconds");o(tCe,"parseMicroseconds");o(rCe,"parseLiteralPercent");o(nCe,"parseUnixTimestamp");o(iCe,"parseUnixTimestampSeconds");o(pX,"formatDayOfMonth");o(aCe,"formatHour24");o(sCe,"formatHour12");o(oCe,"formatDayOfYear");o(xX,"formatMilliseconds");o(lCe,"formatMicroseconds");o(cCe,"formatMonthNumber");o(uCe,"formatMinutes");o(hCe,"formatSeconds");o(fCe,"formatWeekdayNumberMonday");o(dCe,"formatWeekNumberSunday");o(bX,"dISO");o(pCe,"formatWeekNumberISO");o(mCe,"formatWeekdayNumberSunday");o(gCe,"formatWeekNumberMonday");o(yCe,"formatYear");o(vCe,"formatYearISO");o(xCe,"formatFullYear");o(bCe,"formatFullYearISO");o(TCe,"formatZone");o(mX,"formatUTCDayOfMonth");o(wCe,"formatUTCHour24");o(kCe,"formatUTCHour12");o(ECe,"formatUTCDayOfYear");o(TX,"formatUTCMilliseconds");o(SCe,"formatUTCMicroseconds");o(CCe,"formatUTCMonthNumber");o(ACe,"formatUTCMinutes");o(_Ce,"formatUTCSeconds");o(DCe,"formatUTCWeekdayNumberMonday");o(LCe,"formatUTCWeekNumberSunday");o(wX,"UTCdISO");o(RCe,"formatUTCWeekNumberISO");o(NCe,"formatUTCWeekdayNumberSunday");o(MCe,"formatUTCWeekNumberMonday");o(ICe,"formatUTCYear");o(OCe,"formatUTCYearISO");o(PCe,"formatUTCFullYear");o(BCe,"formatUTCFullYearISO");o(FCe,"formatUTCZone");o(gX,"formatLiteralPercent");o(yX,"formatUnixTimestamp");o(vX,"formatUnixTimestampSeconds")});function HD(t){return X0=UD(t),Pd=X0.format,EX=X0.parse,SX=X0.utcFormat,CX=X0.utcParse,X0}var X0,Pd,EX,SX,CX,AX=M(()=>{"use strict";kX();HD({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"]});o(HD,"defaultLocale")});var qD=M(()=>{"use strict";AX()});function $Ce(t){return new Date(t)}function zCe(t){return t instanceof Date?+t:+new Date(+t)}function _X(t,e,r,n,i,a,s,l,u,h){var f=Ov(),d=f.invert,p=f.domain,m=h(".%L"),g=h(":%S"),y=h("%I:%M"),v=h("%I %p"),x=h("%a %d"),b=h("%b %d"),T=h("%B"),S=h("%Y");function w(k){return(u(k){"use strict";V5();qD();CD();Iv();KY();o($Ce,"date");o(zCe,"number");o(_X,"calendar");o(U5,"time")});var LX=M(()=>{"use strict";HY();jY();wD();DX()});function WD(t){for(var e=t.length/6|0,r=new Array(e),n=0;n{"use strict";o(WD,"default")});var YD,NX=M(()=>{"use strict";RX();YD=WD("4e79a7f28e2ce1575976b7b259a14fedc949af7aa1ff9da79c755fbab0ab")});var MX=M(()=>{"use strict";NX()});function zn(t){return o(function(){return t},"constant")}var H5=M(()=>{"use strict";o(zn,"default")});function OX(t){return t>1?0:t<-1?j0:Math.acos(t)}function jD(t){return t>=1?Gv:t<=-1?-Gv:Math.asin(t)}var XD,ua,Ph,IX,q5,El,Bd,Xi,j0,Gv,K0,W5=M(()=>{"use strict";XD=Math.abs,ua=Math.atan2,Ph=Math.cos,IX=Math.max,q5=Math.min,El=Math.sin,Bd=Math.sqrt,Xi=1e-12,j0=Math.PI,Gv=j0/2,K0=2*j0;o(OX,"acos");o(jD,"asin")});function Y5(t){let e=3;return t.digits=function(r){if(!arguments.length)return e;if(r==null)e=null;else{let n=Math.floor(r);if(!(n>=0))throw new RangeError(`invalid digits: ${r}`);e=n}return t},()=>new _d(e)}var KD=M(()=>{"use strict";W_();o(Y5,"withPath")});function GCe(t){return t.innerRadius}function VCe(t){return t.outerRadius}function UCe(t){return t.startAngle}function HCe(t){return t.endAngle}function qCe(t){return t&&t.padAngle}function WCe(t,e,r,n,i,a,s,l){var u=r-t,h=n-e,f=s-i,d=l-a,p=d*u-f*h;if(!(p*pD*D+O*O&&(A=I,L=R),{cx:A,cy:L,x01:-f,y01:-d,x11:A*(i/w-1),y11:L*(i/w-1)}}function Sl(){var t=GCe,e=VCe,r=zn(0),n=null,i=UCe,a=HCe,s=qCe,l=null,u=Y5(h);function h(){var f,d,p=+t.apply(this,arguments),m=+e.apply(this,arguments),g=i.apply(this,arguments)-Gv,y=a.apply(this,arguments)-Gv,v=XD(y-g),x=y>g;if(l||(l=f=u()),mXi))l.moveTo(0,0);else if(v>K0-Xi)l.moveTo(m*Ph(g),m*El(g)),l.arc(0,0,m,g,y,!x),p>Xi&&(l.moveTo(p*Ph(y),p*El(y)),l.arc(0,0,p,y,g,x));else{var b=g,T=y,S=g,w=y,k=v,C=v,A=s.apply(this,arguments)/2,L=A>Xi&&(n?+n.apply(this,arguments):Bd(p*p+m*m)),I=q5(XD(m-p)/2,+r.apply(this,arguments)),R=I,E=I,_,D;if(L>Xi){var O=jD(L/p*El(A)),N=jD(L/m*El(A));(k-=O*2)>Xi?(O*=x?1:-1,S+=O,w-=O):(k=0,S=w=(g+y)/2),(C-=N*2)>Xi?(N*=x?1:-1,b+=N,T-=N):(C=0,b=T=(g+y)/2)}var P=m*Ph(b),B=m*El(b),F=p*Ph(w),V=p*El(w);if(I>Xi){var $=m*Ph(T),U=m*El(T),j=p*Ph(S),ee=p*El(S),q;if(vXi?E>Xi?(_=X5(j,ee,P,B,m,E,x),D=X5($,U,F,V,m,E,x),l.moveTo(_.cx+_.x01,_.cy+_.y01),EXi)||!(k>Xi)?l.lineTo(F,V):R>Xi?(_=X5(F,V,$,U,p,-R,x),D=X5(P,B,j,ee,p,-R,x),l.lineTo(_.cx+_.x01,_.cy+_.y01),R{"use strict";H5();W5();KD();o(GCe,"arcInnerRadius");o(VCe,"arcOuterRadius");o(UCe,"arcStartAngle");o(HCe,"arcEndAngle");o(qCe,"arcPadAngle");o(WCe,"intersect");o(X5,"cornerTangents");o(Sl,"default")});function Vv(t){return typeof t=="object"&&"length"in t?t:Array.from(t)}var nbt,QD=M(()=>{"use strict";nbt=Array.prototype.slice;o(Vv,"default")});function BX(t){this._context=t}function Cu(t){return new BX(t)}var ZD=M(()=>{"use strict";o(BX,"Linear");BX.prototype={areaStart:o(function(){this._line=0},"areaStart"),areaEnd:o(function(){this._line=NaN},"areaEnd"),lineStart:o(function(){this._point=0},"lineStart"),lineEnd:o(function(){(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},"lineEnd"),point:o(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}},"point")};o(Cu,"default")});function FX(t){return t[0]}function $X(t){return t[1]}var zX=M(()=>{"use strict";o(FX,"x");o($X,"y")});function Cl(t,e){var r=zn(!0),n=null,i=Cu,a=null,s=Y5(l);t=typeof t=="function"?t:t===void 0?FX:zn(t),e=typeof e=="function"?e:e===void 0?$X:zn(e);function l(u){var h,f=(u=Vv(u)).length,d,p=!1,m;for(n==null&&(a=i(m=s())),h=0;h<=f;++h)!(h{"use strict";QD();H5();ZD();KD();zX();o(Cl,"default")});function JD(t,e){return et?1:e>=t?0:NaN}var VX=M(()=>{"use strict";o(JD,"default")});function eL(t){return t}var UX=M(()=>{"use strict";o(eL,"default")});function j5(){var t=eL,e=JD,r=null,n=zn(0),i=zn(K0),a=zn(0);function s(l){var u,h=(l=Vv(l)).length,f,d,p=0,m=new Array(h),g=new Array(h),y=+n.apply(this,arguments),v=Math.min(K0,Math.max(-K0,i.apply(this,arguments)-y)),x,b=Math.min(Math.abs(v)/h,a.apply(this,arguments)),T=b*(v<0?-1:1),S;for(u=0;u0&&(p+=S);for(e!=null?m.sort(function(w,k){return e(g[w],g[k])}):r!=null&&m.sort(function(w,k){return r(l[w],l[k])}),u=0,d=p?(v-h*T)/p:0;u0?S*d:0)+T,g[f]={data:l[f],index:u,value:S,startAngle:y,endAngle:x,padAngle:b};return g}return o(s,"pie"),s.value=function(l){return arguments.length?(t=typeof l=="function"?l:zn(+l),s):t},s.sortValues=function(l){return arguments.length?(e=l,r=null,s):e},s.sort=function(l){return arguments.length?(r=l,e=null,s):r},s.startAngle=function(l){return arguments.length?(n=typeof l=="function"?l:zn(+l),s):n},s.endAngle=function(l){return arguments.length?(i=typeof l=="function"?l:zn(+l),s):i},s.padAngle=function(l){return arguments.length?(a=typeof l=="function"?l:zn(+l),s):a},s}var HX=M(()=>{"use strict";QD();H5();VX();UX();W5();o(j5,"default")});function Uv(t){return new K5(t,!0)}function Hv(t){return new K5(t,!1)}var K5,qX=M(()=>{"use strict";K5=class{static{o(this,"Bump")}constructor(e,r){this._context=e,this._x=r}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,r){switch(e=+e,r=+r,this._point){case 0:{this._point=1,this._line?this._context.lineTo(e,r):this._context.moveTo(e,r);break}case 1:this._point=2;default:{this._x?this._context.bezierCurveTo(this._x0=(this._x0+e)/2,this._y0,this._x0,r,e,r):this._context.bezierCurveTo(this._x0,this._y0=(this._y0+r)/2,e,this._y0,e,r);break}}this._x0=e,this._y0=r}};o(Uv,"bumpX");o(Hv,"bumpY")});function so(){}var qv=M(()=>{"use strict";o(so,"default")});function Q0(t,e,r){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+r)/6)}function Wv(t){this._context=t}function No(t){return new Wv(t)}var Yv=M(()=>{"use strict";o(Q0,"point");o(Wv,"Basis");Wv.prototype={areaStart:o(function(){this._line=0},"areaStart"),areaEnd:o(function(){this._line=NaN},"areaEnd"),lineStart:o(function(){this._x0=this._x1=this._y0=this._y1=NaN,this._point=0},"lineStart"),lineEnd:o(function(){switch(this._point){case 3:Q0(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},"lineEnd"),point:o(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:Q0(this,t,e);break}this._x0=this._x1,this._x1=t,this._y0=this._y1,this._y1=e},"point")};o(No,"default")});function WX(t){this._context=t}function Q5(t){return new WX(t)}var YX=M(()=>{"use strict";qv();Yv();o(WX,"BasisClosed");WX.prototype={areaStart:so,areaEnd:so,lineStart:o(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},"lineStart"),lineEnd:o(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}}},"lineEnd"),point:o(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:Q0(this,t,e);break}this._x0=this._x1,this._x1=t,this._y0=this._y1,this._y1=e},"point")};o(Q5,"default")});function XX(t){this._context=t}function Z5(t){return new XX(t)}var jX=M(()=>{"use strict";Yv();o(XX,"BasisOpen");XX.prototype={areaStart:o(function(){this._line=0},"areaStart"),areaEnd:o(function(){this._line=NaN},"areaEnd"),lineStart:o(function(){this._x0=this._x1=this._y0=this._y1=NaN,this._point=0},"lineStart"),lineEnd:o(function(){(this._line||this._line!==0&&this._point===3)&&this._context.closePath(),this._line=1-this._line},"lineEnd"),point:o(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 r=(this._x0+4*this._x1+t)/6,n=(this._y0+4*this._y1+e)/6;this._line?this._context.lineTo(r,n):this._context.moveTo(r,n);break;case 3:this._point=4;default:Q0(this,t,e);break}this._x0=this._x1,this._x1=t,this._y0=this._y1,this._y1=e},"point")};o(Z5,"default")});function KX(t,e){this._basis=new Wv(t),this._beta=e}var tL,QX=M(()=>{"use strict";Yv();o(KX,"Bundle");KX.prototype={lineStart:o(function(){this._x=[],this._y=[],this._basis.lineStart()},"lineStart"),lineEnd:o(function(){var t=this._x,e=this._y,r=t.length-1;if(r>0)for(var n=t[0],i=e[0],a=t[r]-n,s=e[r]-i,l=-1,u;++l<=r;)u=l/r,this._basis.point(this._beta*t[l]+(1-this._beta)*(n+u*a),this._beta*e[l]+(1-this._beta)*(i+u*s));this._x=this._y=null,this._basis.lineEnd()},"lineEnd"),point:o(function(t,e){this._x.push(+t),this._y.push(+e)},"point")};tL=o((function t(e){function r(n){return e===1?new Wv(n):new KX(n,e)}return o(r,"bundle"),r.beta=function(n){return t(+n)},r}),"custom")(.85)});function Z0(t,e,r){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-r),t._x2,t._y2)}function J5(t,e){this._context=t,this._k=(1-e)/6}var Xv,jv=M(()=>{"use strict";o(Z0,"point");o(J5,"Cardinal");J5.prototype={areaStart:o(function(){this._line=0},"areaStart"),areaEnd:o(function(){this._line=NaN},"areaEnd"),lineStart:o(function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._point=0},"lineStart"),lineEnd:o(function(){switch(this._point){case 2:this._context.lineTo(this._x2,this._y2);break;case 3:Z0(this,this._x1,this._y1);break}(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},"lineEnd"),point:o(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:Z0(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},"point")};Xv=o((function t(e){function r(n){return new J5(n,e)}return o(r,"cardinal"),r.tension=function(n){return t(+n)},r}),"custom")(0)});function eT(t,e){this._context=t,this._k=(1-e)/6}var rL,nL=M(()=>{"use strict";qv();jv();o(eT,"CardinalClosed");eT.prototype={areaStart:so,areaEnd:so,lineStart:o(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},"lineStart"),lineEnd:o(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}}},"lineEnd"),point:o(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:Z0(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},"point")};rL=o((function t(e){function r(n){return new eT(n,e)}return o(r,"cardinal"),r.tension=function(n){return t(+n)},r}),"custom")(0)});function tT(t,e){this._context=t,this._k=(1-e)/6}var iL,aL=M(()=>{"use strict";jv();o(tT,"CardinalOpen");tT.prototype={areaStart:o(function(){this._line=0},"areaStart"),areaEnd:o(function(){this._line=NaN},"areaEnd"),lineStart:o(function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._point=0},"lineStart"),lineEnd:o(function(){(this._line||this._line!==0&&this._point===3)&&this._context.closePath(),this._line=1-this._line},"lineEnd"),point:o(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:Z0(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},"point")};iL=o((function t(e){function r(n){return new tT(n,e)}return o(r,"cardinal"),r.tension=function(n){return t(+n)},r}),"custom")(0)});function Kv(t,e,r){var n=t._x1,i=t._y1,a=t._x2,s=t._y2;if(t._l01_a>Xi){var l=2*t._l01_2a+3*t._l01_a*t._l12_a+t._l12_2a,u=3*t._l01_a*(t._l01_a+t._l12_a);n=(n*l-t._x0*t._l12_2a+t._x2*t._l01_2a)/u,i=(i*l-t._y0*t._l12_2a+t._y2*t._l01_2a)/u}if(t._l23_a>Xi){var h=2*t._l23_2a+3*t._l23_a*t._l12_a+t._l12_2a,f=3*t._l23_a*(t._l23_a+t._l12_a);a=(a*h+t._x1*t._l23_2a-e*t._l12_2a)/f,s=(s*h+t._y1*t._l23_2a-r*t._l12_2a)/f}t._context.bezierCurveTo(n,i,a,s,t._x2,t._y2)}function ZX(t,e){this._context=t,this._alpha=e}var Qv,rT=M(()=>{"use strict";W5();jv();o(Kv,"point");o(ZX,"CatmullRom");ZX.prototype={areaStart:o(function(){this._line=0},"areaStart"),areaEnd:o(function(){this._line=NaN},"areaEnd"),lineStart:o(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},"lineStart"),lineEnd:o(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},"lineEnd"),point:o(function(t,e){if(t=+t,e=+e,this._point){var r=this._x2-t,n=this._y2-e;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(r*r+n*n,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:Kv(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},"point")};Qv=o((function t(e){function r(n){return e?new ZX(n,e):new J5(n,0)}return o(r,"catmullRom"),r.alpha=function(n){return t(+n)},r}),"custom")(.5)});function JX(t,e){this._context=t,this._alpha=e}var sL,ej=M(()=>{"use strict";nL();qv();rT();o(JX,"CatmullRomClosed");JX.prototype={areaStart:so,areaEnd:so,lineStart:o(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},"lineStart"),lineEnd:o(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}}},"lineEnd"),point:o(function(t,e){if(t=+t,e=+e,this._point){var r=this._x2-t,n=this._y2-e;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(r*r+n*n,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:Kv(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},"point")};sL=o((function t(e){function r(n){return e?new JX(n,e):new eT(n,0)}return o(r,"catmullRom"),r.alpha=function(n){return t(+n)},r}),"custom")(.5)});function tj(t,e){this._context=t,this._alpha=e}var oL,rj=M(()=>{"use strict";aL();rT();o(tj,"CatmullRomOpen");tj.prototype={areaStart:o(function(){this._line=0},"areaStart"),areaEnd:o(function(){this._line=NaN},"areaEnd"),lineStart:o(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},"lineStart"),lineEnd:o(function(){(this._line||this._line!==0&&this._point===3)&&this._context.closePath(),this._line=1-this._line},"lineEnd"),point:o(function(t,e){if(t=+t,e=+e,this._point){var r=this._x2-t,n=this._y2-e;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(r*r+n*n,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:Kv(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},"point")};oL=o((function t(e){function r(n){return e?new tj(n,e):new tT(n,0)}return o(r,"catmullRom"),r.alpha=function(n){return t(+n)},r}),"custom")(.5)});function nj(t){this._context=t}function nT(t){return new nj(t)}var ij=M(()=>{"use strict";qv();o(nj,"LinearClosed");nj.prototype={areaStart:so,areaEnd:so,lineStart:o(function(){this._point=0},"lineStart"),lineEnd:o(function(){this._point&&this._context.closePath()},"lineEnd"),point:o(function(t,e){t=+t,e=+e,this._point?this._context.lineTo(t,e):(this._point=1,this._context.moveTo(t,e))},"point")};o(nT,"default")});function aj(t){return t<0?-1:1}function sj(t,e,r){var n=t._x1-t._x0,i=e-t._x1,a=(t._y1-t._y0)/(n||i<0&&-0),s=(r-t._y1)/(i||n<0&&-0),l=(a*i+s*n)/(n+i);return(aj(a)+aj(s))*Math.min(Math.abs(a),Math.abs(s),.5*Math.abs(l))||0}function oj(t,e){var r=t._x1-t._x0;return r?(3*(t._y1-t._y0)/r-e)/2:e}function lL(t,e,r){var n=t._x0,i=t._y0,a=t._x1,s=t._y1,l=(a-n)/3;t._context.bezierCurveTo(n+l,i+l*e,a-l,s-l*r,a,s)}function iT(t){this._context=t}function lj(t){this._context=new cj(t)}function cj(t){this._context=t}function Zv(t){return new iT(t)}function Jv(t){return new lj(t)}var uj=M(()=>{"use strict";o(aj,"sign");o(sj,"slope3");o(oj,"slope2");o(lL,"point");o(iT,"MonotoneX");iT.prototype={areaStart:o(function(){this._line=0},"areaStart"),areaEnd:o(function(){this._line=NaN},"areaEnd"),lineStart:o(function(){this._x0=this._x1=this._y0=this._y1=this._t0=NaN,this._point=0},"lineStart"),lineEnd:o(function(){switch(this._point){case 2:this._context.lineTo(this._x1,this._y1);break;case 3:lL(this,this._t0,oj(this,this._t0));break}(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},"lineEnd"),point:o(function(t,e){var r=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,lL(this,oj(this,r=sj(this,t,e)),r);break;default:lL(this,this._t0,r=sj(this,t,e));break}this._x0=this._x1,this._x1=t,this._y0=this._y1,this._y1=e,this._t0=r}},"point")};o(lj,"MonotoneY");(lj.prototype=Object.create(iT.prototype)).point=function(t,e){iT.prototype.point.call(this,e,t)};o(cj,"ReflectContext");cj.prototype={moveTo:o(function(t,e){this._context.moveTo(e,t)},"moveTo"),closePath:o(function(){this._context.closePath()},"closePath"),lineTo:o(function(t,e){this._context.lineTo(e,t)},"lineTo"),bezierCurveTo:o(function(t,e,r,n,i,a){this._context.bezierCurveTo(e,t,n,r,a,i)},"bezierCurveTo")};o(Zv,"monotoneX");o(Jv,"monotoneY")});function fj(t){this._context=t}function hj(t){var e,r=t.length-1,n,i=new Array(r),a=new Array(r),s=new Array(r);for(i[0]=0,a[0]=2,s[0]=t[0]+2*t[1],e=1;e=0;--e)i[e]=(s[e]-i[e+1])/a[e];for(a[r-1]=(t[r]+i[r-1])/2,e=0;e{"use strict";o(fj,"Natural");fj.prototype={areaStart:o(function(){this._line=0},"areaStart"),areaEnd:o(function(){this._line=NaN},"areaEnd"),lineStart:o(function(){this._x=[],this._y=[]},"lineStart"),lineEnd:o(function(){var t=this._x,e=this._y,r=t.length;if(r)if(this._line?this._context.lineTo(t[0],e[0]):this._context.moveTo(t[0],e[0]),r===2)this._context.lineTo(t[1],e[1]);else for(var n=hj(t),i=hj(e),a=0,s=1;s{"use strict";o(aT,"Step");aT.prototype={areaStart:o(function(){this._line=0},"areaStart"),areaEnd:o(function(){this._line=NaN},"areaEnd"),lineStart:o(function(){this._x=this._y=NaN,this._point=0},"lineStart"),lineEnd:o(function(){0=0&&(this._t=1-this._t,this._line=1-this._line)},"lineEnd"),point:o(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 r=this._x*(1-this._t)+t*this._t;this._context.lineTo(r,this._y),this._context.lineTo(r,e)}break}}this._x=t,this._y=e},"point")};o(em,"default");o(e2,"stepBefore");o(t2,"stepAfter")});var mj=M(()=>{"use strict";PX();GX();HX();YX();jX();Yv();qX();QX();nL();aL();jv();ej();rj();rT();ij();ZD();uj();dj();pj()});var gj=M(()=>{"use strict"});var yj=M(()=>{"use strict"});function Bh(t,e,r){this.k=t,this.x=e,this.y=r}function uL(t){for(;!t.__zoom;)if(!(t=t.parentNode))return cL;return t.__zoom}var cL,hL=M(()=>{"use strict";o(Bh,"Transform");Bh.prototype={constructor:Bh,scale:o(function(t){return t===1?this:new Bh(this.k*t,this.x,this.y)},"scale"),translate:o(function(t,e){return t===0&e===0?this:new Bh(this.k,this.x+this.k*t,this.y+this.k*e)},"translate"),apply:o(function(t){return[t[0]*this.k+this.x,t[1]*this.k+this.y]},"apply"),applyX:o(function(t){return t*this.k+this.x},"applyX"),applyY:o(function(t){return t*this.k+this.y},"applyY"),invert:o(function(t){return[(t[0]-this.x)/this.k,(t[1]-this.y)/this.k]},"invert"),invertX:o(function(t){return(t-this.x)/this.k},"invertX"),invertY:o(function(t){return(t-this.y)/this.k},"invertY"),rescaleX:o(function(t){return t.copy().domain(t.range().map(this.invertX,this).map(t.invert,t))},"rescaleX"),rescaleY:o(function(t){return t.copy().domain(t.range().map(this.invertY,this).map(t.invert,t))},"rescaleY"),toString:o(function(){return"translate("+this.x+","+this.y+") scale("+this.k+")"},"toString")};cL=new Bh(1,0,0);uL.prototype=Bh.prototype;o(uL,"transform")});var vj=M(()=>{"use strict"});var xj=M(()=>{"use strict";k5();gj();yj();hL();vj()});var bj=M(()=>{"use strict";xj();hL()});var yr=M(()=>{"use strict";Ch();_H();YW();QW();B0();ZW();JW();JA();xq();eY();G_();tY();nY();iD();yY();GY();z0();W_();VY();rY();UY();LX();MX();yl();mj();V5();qD();y5();k5();bj()});var Tj=sa(ji=>{"use strict";Object.defineProperty(ji,"__esModule",{value:!0});ji.BLANK_URL=ji.relativeFirstCharacters=ji.whitespaceEscapeCharsRegex=ji.urlSchemeRegex=ji.ctrlCharactersRegex=ji.htmlCtrlEntityRegex=ji.htmlEntitiesRegex=ji.invalidProtocolRegex=void 0;ji.invalidProtocolRegex=/^([^\w]*)(javascript|data|vbscript)/im;ji.htmlEntitiesRegex=/&#(\w+)(^\w|;)?/g;ji.htmlCtrlEntityRegex=/&(newline|tab);/gi;ji.ctrlCharactersRegex=/[\u0000-\u001F\u007F-\u009F\u2000-\u200D\uFEFF]/gim;ji.urlSchemeRegex=/^.+(:|:)/gim;ji.whitespaceEscapeCharsRegex=/(\\|%5[cC])((%(6[eE]|72|74))|[nrt])/g;ji.relativeFirstCharacters=[".","/"];ji.BLANK_URL="about:blank"});var tm=sa(sT=>{"use strict";Object.defineProperty(sT,"__esModule",{value:!0});sT.sanitizeUrl=void 0;var Ma=Tj();function YCe(t){return Ma.relativeFirstCharacters.indexOf(t[0])>-1}o(YCe,"isRelativeUrlWithoutProtocol");function XCe(t){var e=t.replace(Ma.ctrlCharactersRegex,"");return e.replace(Ma.htmlEntitiesRegex,function(r,n){return String.fromCharCode(n)})}o(XCe,"decodeHtmlCharacters");function jCe(t){return URL.canParse(t)}o(jCe,"isValidUrl");function wj(t){try{return decodeURIComponent(t)}catch{return t}}o(wj,"decodeURI");function KCe(t){if(!t)return Ma.BLANK_URL;var e,r=wj(t.trim());do r=XCe(r).replace(Ma.htmlCtrlEntityRegex,"").replace(Ma.ctrlCharactersRegex,"").replace(Ma.whitespaceEscapeCharsRegex,"").trim(),r=wj(r),e=r.match(Ma.ctrlCharactersRegex)||r.match(Ma.htmlEntitiesRegex)||r.match(Ma.htmlCtrlEntityRegex)||r.match(Ma.whitespaceEscapeCharsRegex);while(e&&e.length>0);var n=r;if(!n)return Ma.BLANK_URL;if(YCe(n))return n;var i=n.trimStart(),a=i.match(Ma.urlSchemeRegex);if(!a)return n;var s=a[0].toLowerCase().trim();if(Ma.invalidProtocolRegex.test(s))return Ma.BLANK_URL;var l=i.replace(/\\/g,"/");if(s==="mailto:"||s.includes("://"))return l;if(s==="http:"||s==="https:"){if(!jCe(l))return Ma.BLANK_URL;var u=new URL(l);return u.protocol=u.protocol.toLowerCase(),u.hostname=u.hostname.toLowerCase(),u.toString()}return l}o(KCe,"sanitizeUrl");sT.sanitizeUrl=KCe});var fL,Fd,oT,kj,lT,cT,ha,r2,n2=M(()=>{"use strict";fL=La(tm(),1);gr();Fd=o((t,e)=>{let r=t.append("rect");if(r.attr("x",e.x),r.attr("y",e.y),r.attr("fill",e.fill),r.attr("stroke",e.stroke),r.attr("width",e.width),r.attr("height",e.height),e.name&&r.attr("name",e.name),e.rx&&r.attr("rx",e.rx),e.ry&&r.attr("ry",e.ry),e.attrs!==void 0)for(let n in e.attrs)r.attr(n,e.attrs[n]);return e.class&&r.attr("class",e.class),r},"drawRect"),oT=o((t,e)=>{let r={x:e.startx,y:e.starty,width:e.stopx-e.startx,height:e.stopy-e.starty,fill:e.fill,stroke:e.stroke,class:"rect"};Fd(t,r).lower()},"drawBackgroundRect"),kj=o((t,e)=>{let r=e.text.replace(pd," "),n=t.append("text");n.attr("x",e.x),n.attr("y",e.y),n.attr("class","legend"),n.style("text-anchor",e.anchor),e.class&&n.attr("class",e.class);let i=n.append("tspan");return i.attr("x",e.x+e.textMargin*2),i.text(r),n},"drawText"),lT=o((t,e,r,n)=>{let i=t.append("image");i.attr("x",e),i.attr("y",r);let a=(0,fL.sanitizeUrl)(n);i.attr("xlink:href",a)},"drawImage"),cT=o((t,e,r,n)=>{let i=t.append("use");i.attr("x",e),i.attr("y",r);let a=(0,fL.sanitizeUrl)(n);i.attr("xlink:href",`#${a}`)},"drawEmbeddedImage"),ha=o(()=>({x:0,y:0,width:100,height:100,fill:"#EDF2AE",stroke:"#666",anchor:"start",rx:0,ry:0}),"getNoteRect"),r2=o(()=>({x:0,y:0,width:100,height:100,"text-anchor":"start",style:"#666",textMargin:0,rx:0,ry:0,tspan:!0}),"getTextObj")});var Ej,dL,Sj,QCe,ZCe,JCe,e7e,t7e,r7e,n7e,i7e,a7e,s7e,o7e,l7e,Au,Al,Cj=M(()=>{"use strict";gr();n2();Ej=La(tm(),1),dL=o(function(t,e){return Fd(t,e)},"drawRect"),Sj=o(function(t,e,r,n,i,a){let s=t.append("image");s.attr("width",e),s.attr("height",r),s.attr("x",n),s.attr("y",i);let l=a.startsWith("data:image/png;base64")?a:(0,Ej.sanitizeUrl)(a);s.attr("xlink:href",l)},"drawImage"),QCe=o((t,e,r)=>{let n=t.append("g"),i=0;for(let a of e){let s=a.textColor?a.textColor:"#444444",l=a.lineColor?a.lineColor:"#444444",u=a.offsetX?parseInt(a.offsetX):0,h=a.offsetY?parseInt(a.offsetY):0,f="";if(i===0){let p=n.append("line");p.attr("x1",a.startPoint.x),p.attr("y1",a.startPoint.y),p.attr("x2",a.endPoint.x),p.attr("y2",a.endPoint.y),p.attr("stroke-width","1"),p.attr("stroke",l),p.style("fill","none"),a.type!=="rel_b"&&p.attr("marker-end","url("+f+"#arrowhead)"),(a.type==="birel"||a.type==="rel_b")&&p.attr("marker-start","url("+f+"#arrowend)"),i=-1}else{let p=n.append("path");p.attr("fill","none").attr("stroke-width","1").attr("stroke",l).attr("d","Mstartx,starty Qcontrolx,controly stopx,stopy ".replaceAll("startx",a.startPoint.x).replaceAll("starty",a.startPoint.y).replaceAll("controlx",a.startPoint.x+(a.endPoint.x-a.startPoint.x)/2-(a.endPoint.x-a.startPoint.x)/4).replaceAll("controly",a.startPoint.y+(a.endPoint.y-a.startPoint.y)/2).replaceAll("stopx",a.endPoint.x).replaceAll("stopy",a.endPoint.y)),a.type!=="rel_b"&&p.attr("marker-end","url("+f+"#arrowhead)"),(a.type==="birel"||a.type==="rel_b")&&p.attr("marker-start","url("+f+"#arrowend)")}let d=r.messageFont();Au(r)(a.label.text,n,Math.min(a.startPoint.x,a.endPoint.x)+Math.abs(a.endPoint.x-a.startPoint.x)/2+u,Math.min(a.startPoint.y,a.endPoint.y)+Math.abs(a.endPoint.y-a.startPoint.y)/2+h,a.label.width,a.label.height,{fill:s},d),a.techn&&a.techn.text!==""&&(d=r.messageFont(),Au(r)("["+a.techn.text+"]",n,Math.min(a.startPoint.x,a.endPoint.x)+Math.abs(a.endPoint.x-a.startPoint.x)/2+u,Math.min(a.startPoint.y,a.endPoint.y)+Math.abs(a.endPoint.y-a.startPoint.y)/2+r.messageFontSize+5+h,Math.max(a.label.width,a.techn.width),a.techn.height,{fill:s,"font-style":"italic"},d))}},"drawRels"),ZCe=o(function(t,e,r){let n=t.append("g"),i=e.bgColor?e.bgColor:"none",a=e.borderColor?e.borderColor:"#444444",s=e.fontColor?e.fontColor:"black",l={"stroke-width":1,"stroke-dasharray":"7.0,7.0"};e.nodeType&&(l={"stroke-width":1});let u={x:e.x,y:e.y,fill:i,stroke:a,width:e.width,height:e.height,rx:2.5,ry:2.5,attrs:l};dL(n,u);let h=r.boundaryFont();h.fontWeight="bold",h.fontSize=h.fontSize+2,h.fontColor=s,Au(r)(e.label.text,n,e.x,e.y+e.label.Y,e.width,e.height,{fill:"#444444"},h),e.type&&e.type.text!==""&&(h=r.boundaryFont(),h.fontColor=s,Au(r)(e.type.text,n,e.x,e.y+e.type.Y,e.width,e.height,{fill:"#444444"},h)),e.descr&&e.descr.text!==""&&(h=r.boundaryFont(),h.fontSize=h.fontSize-2,h.fontColor=s,Au(r)(e.descr.text,n,e.x,e.y+e.descr.Y,e.width,e.height,{fill:"#444444"},h))},"drawBoundary"),JCe=o(function(t,e,r){let n=e.bgColor?e.bgColor:r[e.typeC4Shape.text+"_bg_color"],i=e.borderColor?e.borderColor:r[e.typeC4Shape.text+"_border_color"],a=e.fontColor?e.fontColor:"#FFFFFF",s="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAIAAADYYG7QAAACD0lEQVR4Xu2YoU4EMRCGT+4j8Ai8AhaH4QHgAUjQuFMECUgMIUgwJAgMhgQsAYUiJCiQIBBY+EITsjfTdme6V24v4c8vyGbb+ZjOtN0bNcvjQXmkH83WvYBWto6PLm6v7p7uH1/w2fXD+PBycX1Pv2l3IdDm/vn7x+dXQiAubRzoURa7gRZWd0iGRIiJbOnhnfYBQZNJjNbuyY2eJG8fkDE3bbG4ep6MHUAsgYxmE3nVs6VsBWJSGccsOlFPmLIViMzLOB7pCVO2AtHJMohH7Fh6zqitQK7m0rJvAVYgGcEpe//PLdDz65sM4pF9N7ICcXDKIB5Nv6j7tD0NoSdM2QrU9Gg0ewE1LqBhHR3BBdvj2vapnidjHxD/q6vd7Pvhr31AwcY8eXMTXAKECZZJFXuEq27aLgQK5uLMohCenGGuGewOxSjBvYBqeG6B+Nqiblggdjnc+ZXDy+FNFpFzw76O3UBAROuXh6FoiAcf5g9eTvUgzy0nWg6I8cXHRUpg5bOVBCo+KDpFajOf23GgPme7RSQ+lacIENUgJ6gg1k6HjgOlqnLqip4tEuhv0hNEMXUD0clyXE3p6pZA0S2nnvTlXwLJEZWlb7cTQH1+USgTN4VhAenm/wea1OCAOmqo6fE1WCb9WSKBah+rbUWPWAmE2Rvk0ApiB45eOyNAzU8xcTvj8KvkKEoOaIYeHNA3ZuygAvFMUO0AAAAASUVORK5CYII=";switch(e.typeC4Shape.text){case"person":s="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":s="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAIAAADYYG7QAAAB6ElEQVR4Xu2YLY+EMBCG9+dWr0aj0Wg0Go1Go0+j8Xdv2uTCvv1gpt0ebHKPuhDaeW4605Z9mJvx4AdXUyTUdd08z+u6flmWZRnHsWkafk9DptAwDPu+f0eAYtu2PEaGWuj5fCIZrBAC2eLBAnRCsEkkxmeaJp7iDJ2QMDdHsLg8SxKFEJaAo8lAXnmuOFIhTMpxxKATebo4UiFknuNo4OniSIXQyRxEA3YsnjGCVEjVXD7yLUAqxBGUyPv/Y4W2beMgGuS7kVQIBycH0fD+oi5pezQETxdHKmQKGk1eQEYldK+jw5GxPfZ9z7Mk0Qnhf1W1m3w//EUn5BDmSZsbR44QQLBEqrBHqOrmSKaQAxdnLArCrxZcM7A7ZKs4ioRq8LFC+NpC3WCBJsvpVw5edm9iEXFuyNfxXAgSwfrFQ1c0iNda8AdejvUgnktOtJQQxmcfFzGglc5WVCj7oDgFqU18boeFSs52CUh8LE8BIVQDT1ABrB0HtgSEYlX5doJnCwv9TXocKCaKbnwhdDKPq4lf3SwU3HLq4V/+WYhHVMa/3b4IlfyikAduCkcBc7mQ3/z/Qq/cTuikhkzB12Ae/mcJC9U+Vo8Ej1gWAtgbeGgFsAMHr50BIWOLCbezvhpBFUdY6EJuJ/QDW0XoMX60zZ0AAAAASUVORK5CYII=";break}let l=t.append("g");l.attr("class","person-man");let u=ha();switch(e.typeC4Shape.text){case"person":case"external_person":case"system":case"external_system":case"container":case"external_container":case"component":case"external_component":u.x=e.x,u.y=e.y,u.fill=n,u.width=e.width,u.height=e.height,u.stroke=i,u.rx=2.5,u.ry=2.5,u.attrs={"stroke-width":.5},dL(l,u);break;case"system_db":case"external_system_db":case"container_db":case"external_container_db":case"component_db":case"external_component_db":l.append("path").attr("fill",n).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",e.x).replaceAll("starty",e.y).replaceAll("half",e.width/2).replaceAll("height",e.height)),l.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",e.x).replaceAll("starty",e.y).replaceAll("half",e.width/2));break;case"system_queue":case"external_system_queue":case"container_queue":case"external_container_queue":case"component_queue":case"external_component_queue":l.append("path").attr("fill",n).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",e.x).replaceAll("starty",e.y).replaceAll("width",e.width).replaceAll("half",e.height/2)),l.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",e.x+e.width).replaceAll("starty",e.y).replaceAll("half",e.height/2));break}let h=l7e(r,e.typeC4Shape.text);switch(l.append("text").attr("fill",a).attr("font-family",h.fontFamily).attr("font-size",h.fontSize-2).attr("font-style","italic").attr("lengthAdjust","spacing").attr("textLength",e.typeC4Shape.width).attr("x",e.x+e.width/2-e.typeC4Shape.width/2).attr("y",e.y+e.typeC4Shape.Y).text("<<"+e.typeC4Shape.text+">>"),e.typeC4Shape.text){case"person":case"external_person":Sj(l,48,48,e.x+e.width/2-24,e.y+e.image.Y,s);break}let f=r[e.typeC4Shape.text+"Font"]();return f.fontWeight="bold",f.fontSize=f.fontSize+2,f.fontColor=a,Au(r)(e.label.text,l,e.x,e.y+e.label.Y,e.width,e.height,{fill:a},f),f=r[e.typeC4Shape.text+"Font"](),f.fontColor=a,e.techn&&e.techn?.text!==""?Au(r)(e.techn.text,l,e.x,e.y+e.techn.Y,e.width,e.height,{fill:a,"font-style":"italic"},f):e.type&&e.type.text!==""&&Au(r)(e.type.text,l,e.x,e.y+e.type.Y,e.width,e.height,{fill:a,"font-style":"italic"},f),e.descr&&e.descr.text!==""&&(f=r.personFont(),f.fontColor=a,Au(r)(e.descr.text,l,e.x,e.y+e.descr.Y,e.width,e.height,{fill:a},f)),e.height},"drawC4Shape"),e7e=o(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")},"insertDatabaseIcon"),t7e=o(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")},"insertComputerIcon"),r7e=o(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")},"insertClockIcon"),n7e=o(function(t){t.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")},"insertArrowHead"),i7e=o(function(t){t.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")},"insertArrowEnd"),a7e=o(function(t){t.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")},"insertArrowFilledHead"),s7e=o(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)},"insertDynamicNumber"),o7e=o(function(t){let r=t.append("defs").append("marker").attr("id","crosshead").attr("markerWidth",15).attr("markerHeight",8).attr("orient","auto").attr("refX",16).attr("refY",4);r.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"),r.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")},"insertArrowCrossHead"),l7e=o((t,e)=>({fontFamily:t[e+"FontFamily"],fontSize:t[e+"FontSize"],fontWeight:t[e+"FontWeight"]}),"getC4ShapeFont"),Au=(function(){function t(i,a,s,l,u,h,f){let d=a.append("text").attr("x",s+u/2).attr("y",l+h/2+5).style("text-anchor","middle").text(i);n(d,f)}o(t,"byText");function e(i,a,s,l,u,h,f,d){let{fontSize:p,fontFamily:m,fontWeight:g}=d,y=i.split(tt.lineBreakRegex);for(let v=0;v{"use strict";c7e=typeof global=="object"&&global&&global.Object===Object&&global,hT=c7e});var u7e,h7e,hi,Mo=M(()=>{"use strict";pL();u7e=typeof self=="object"&&self&&self.Object===Object&&self,h7e=hT||u7e||Function("return this")(),hi=h7e});var f7e,Ki,$d=M(()=>{"use strict";Mo();f7e=hi.Symbol,Ki=f7e});function m7e(t){var e=d7e.call(t,i2),r=t[i2];try{t[i2]=void 0;var n=!0}catch{}var i=p7e.call(t);return n&&(e?t[i2]=r:delete t[i2]),i}var Aj,d7e,p7e,i2,_j,Dj=M(()=>{"use strict";$d();Aj=Object.prototype,d7e=Aj.hasOwnProperty,p7e=Aj.toString,i2=Ki?Ki.toStringTag:void 0;o(m7e,"getRawTag");_j=m7e});function v7e(t){return y7e.call(t)}var g7e,y7e,Lj,Rj=M(()=>{"use strict";g7e=Object.prototype,y7e=g7e.toString;o(v7e,"objectToString");Lj=v7e});function T7e(t){return t==null?t===void 0?b7e:x7e:Nj&&Nj in Object(t)?_j(t):Lj(t)}var x7e,b7e,Nj,fa,_u=M(()=>{"use strict";$d();Dj();Rj();x7e="[object Null]",b7e="[object Undefined]",Nj=Ki?Ki.toStringTag:void 0;o(T7e,"baseGetTag");fa=T7e});function w7e(t){var e=typeof t;return t!=null&&(e=="object"||e=="function")}var Sn,oo=M(()=>{"use strict";o(w7e,"isObject");Sn=w7e});function A7e(t){if(!Sn(t))return!1;var e=fa(t);return e==E7e||e==S7e||e==k7e||e==C7e}var k7e,E7e,S7e,C7e,Si,a2=M(()=>{"use strict";_u();oo();k7e="[object AsyncFunction]",E7e="[object Function]",S7e="[object GeneratorFunction]",C7e="[object Proxy]";o(A7e,"isFunction");Si=A7e});var _7e,fT,Mj=M(()=>{"use strict";Mo();_7e=hi["__core-js_shared__"],fT=_7e});function D7e(t){return!!Ij&&Ij in t}var Ij,Oj,Pj=M(()=>{"use strict";Mj();Ij=(function(){var t=/[^.]+$/.exec(fT&&fT.keys&&fT.keys.IE_PROTO||"");return t?"Symbol(src)_1."+t:""})();o(D7e,"isMasked");Oj=D7e});function N7e(t){if(t!=null){try{return R7e.call(t)}catch{}try{return t+""}catch{}}return""}var L7e,R7e,Du,mL=M(()=>{"use strict";L7e=Function.prototype,R7e=L7e.toString;o(N7e,"toSource");Du=N7e});function z7e(t){if(!Sn(t)||Oj(t))return!1;var e=Si(t)?$7e:I7e;return e.test(Du(t))}var M7e,I7e,O7e,P7e,B7e,F7e,$7e,Bj,Fj=M(()=>{"use strict";a2();Pj();oo();mL();M7e=/[\\^$.*+?()[\]{}|]/g,I7e=/^\[object .+?Constructor\]$/,O7e=Function.prototype,P7e=Object.prototype,B7e=O7e.toString,F7e=P7e.hasOwnProperty,$7e=RegExp("^"+B7e.call(F7e).replace(M7e,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");o(z7e,"baseIsNative");Bj=z7e});function G7e(t,e){return t?.[e]}var $j,zj=M(()=>{"use strict";o(G7e,"getValue");$j=G7e});function V7e(t,e){var r=$j(t,e);return Bj(r)?r:void 0}var Ls,Fh=M(()=>{"use strict";Fj();zj();o(V7e,"getNative");Ls=V7e});var U7e,Lu,s2=M(()=>{"use strict";Fh();U7e=Ls(Object,"create"),Lu=U7e});function H7e(){this.__data__=Lu?Lu(null):{},this.size=0}var Gj,Vj=M(()=>{"use strict";s2();o(H7e,"hashClear");Gj=H7e});function q7e(t){var e=this.has(t)&&delete this.__data__[t];return this.size-=e?1:0,e}var Uj,Hj=M(()=>{"use strict";o(q7e,"hashDelete");Uj=q7e});function j7e(t){var e=this.__data__;if(Lu){var r=e[t];return r===W7e?void 0:r}return X7e.call(e,t)?e[t]:void 0}var W7e,Y7e,X7e,qj,Wj=M(()=>{"use strict";s2();W7e="__lodash_hash_undefined__",Y7e=Object.prototype,X7e=Y7e.hasOwnProperty;o(j7e,"hashGet");qj=j7e});function Z7e(t){var e=this.__data__;return Lu?e[t]!==void 0:Q7e.call(e,t)}var K7e,Q7e,Yj,Xj=M(()=>{"use strict";s2();K7e=Object.prototype,Q7e=K7e.hasOwnProperty;o(Z7e,"hashHas");Yj=Z7e});function eAe(t,e){var r=this.__data__;return this.size+=this.has(t)?0:1,r[t]=Lu&&e===void 0?J7e:e,this}var J7e,jj,Kj=M(()=>{"use strict";s2();J7e="__lodash_hash_undefined__";o(eAe,"hashSet");jj=eAe});function rm(t){var e=-1,r=t==null?0:t.length;for(this.clear();++e{"use strict";Vj();Hj();Wj();Xj();Kj();o(rm,"Hash");rm.prototype.clear=Gj;rm.prototype.delete=Uj;rm.prototype.get=qj;rm.prototype.has=Yj;rm.prototype.set=jj;gL=rm});function tAe(){this.__data__=[],this.size=0}var Zj,Jj=M(()=>{"use strict";o(tAe,"listCacheClear");Zj=tAe});function rAe(t,e){return t===e||t!==t&&e!==e}var Io,zd=M(()=>{"use strict";o(rAe,"eq");Io=rAe});function nAe(t,e){for(var r=t.length;r--;)if(Io(t[r][0],e))return r;return-1}var $h,o2=M(()=>{"use strict";zd();o(nAe,"assocIndexOf");$h=nAe});function sAe(t){var e=this.__data__,r=$h(e,t);if(r<0)return!1;var n=e.length-1;return r==n?e.pop():aAe.call(e,r,1),--this.size,!0}var iAe,aAe,eK,tK=M(()=>{"use strict";o2();iAe=Array.prototype,aAe=iAe.splice;o(sAe,"listCacheDelete");eK=sAe});function oAe(t){var e=this.__data__,r=$h(e,t);return r<0?void 0:e[r][1]}var rK,nK=M(()=>{"use strict";o2();o(oAe,"listCacheGet");rK=oAe});function lAe(t){return $h(this.__data__,t)>-1}var iK,aK=M(()=>{"use strict";o2();o(lAe,"listCacheHas");iK=lAe});function cAe(t,e){var r=this.__data__,n=$h(r,t);return n<0?(++this.size,r.push([t,e])):r[n][1]=e,this}var sK,oK=M(()=>{"use strict";o2();o(cAe,"listCacheSet");sK=cAe});function nm(t){var e=-1,r=t==null?0:t.length;for(this.clear();++e{"use strict";Jj();tK();nK();aK();oK();o(nm,"ListCache");nm.prototype.clear=Zj;nm.prototype.delete=eK;nm.prototype.get=rK;nm.prototype.has=iK;nm.prototype.set=sK;zh=nm});var uAe,Gh,dT=M(()=>{"use strict";Fh();Mo();uAe=Ls(hi,"Map"),Gh=uAe});function hAe(){this.size=0,this.__data__={hash:new gL,map:new(Gh||zh),string:new gL}}var lK,cK=M(()=>{"use strict";Qj();l2();dT();o(hAe,"mapCacheClear");lK=hAe});function fAe(t){var e=typeof t;return e=="string"||e=="number"||e=="symbol"||e=="boolean"?t!=="__proto__":t===null}var uK,hK=M(()=>{"use strict";o(fAe,"isKeyable");uK=fAe});function dAe(t,e){var r=t.__data__;return uK(e)?r[typeof e=="string"?"string":"hash"]:r.map}var Vh,c2=M(()=>{"use strict";hK();o(dAe,"getMapData");Vh=dAe});function pAe(t){var e=Vh(this,t).delete(t);return this.size-=e?1:0,e}var fK,dK=M(()=>{"use strict";c2();o(pAe,"mapCacheDelete");fK=pAe});function mAe(t){return Vh(this,t).get(t)}var pK,mK=M(()=>{"use strict";c2();o(mAe,"mapCacheGet");pK=mAe});function gAe(t){return Vh(this,t).has(t)}var gK,yK=M(()=>{"use strict";c2();o(gAe,"mapCacheHas");gK=gAe});function yAe(t,e){var r=Vh(this,t),n=r.size;return r.set(t,e),this.size+=r.size==n?0:1,this}var vK,xK=M(()=>{"use strict";c2();o(yAe,"mapCacheSet");vK=yAe});function im(t){var e=-1,r=t==null?0:t.length;for(this.clear();++e{"use strict";cK();dK();mK();yK();xK();o(im,"MapCache");im.prototype.clear=lK;im.prototype.delete=fK;im.prototype.get=pK;im.prototype.has=gK;im.prototype.set=vK;Gd=im});function yL(t,e){if(typeof t!="function"||e!=null&&typeof e!="function")throw new TypeError(vAe);var r=o(function(){var n=arguments,i=e?e.apply(this,n):n[0],a=r.cache;if(a.has(i))return a.get(i);var s=t.apply(this,n);return r.cache=a.set(i,s)||a,s},"memoized");return r.cache=new(yL.Cache||Gd),r}var vAe,am,vL=M(()=>{"use strict";pT();vAe="Expected a function";o(yL,"memoize");yL.Cache=Gd;am=yL});function xAe(){this.__data__=new zh,this.size=0}var bK,TK=M(()=>{"use strict";l2();o(xAe,"stackClear");bK=xAe});function bAe(t){var e=this.__data__,r=e.delete(t);return this.size=e.size,r}var wK,kK=M(()=>{"use strict";o(bAe,"stackDelete");wK=bAe});function TAe(t){return this.__data__.get(t)}var EK,SK=M(()=>{"use strict";o(TAe,"stackGet");EK=TAe});function wAe(t){return this.__data__.has(t)}var CK,AK=M(()=>{"use strict";o(wAe,"stackHas");CK=wAe});function EAe(t,e){var r=this.__data__;if(r instanceof zh){var n=r.__data__;if(!Gh||n.length{"use strict";l2();dT();pT();kAe=200;o(EAe,"stackSet");_K=EAe});function sm(t){var e=this.__data__=new zh(t);this.size=e.size}var dc,u2=M(()=>{"use strict";l2();TK();kK();SK();AK();DK();o(sm,"Stack");sm.prototype.clear=bK;sm.prototype.delete=wK;sm.prototype.get=EK;sm.prototype.has=CK;sm.prototype.set=_K;dc=sm});var SAe,om,xL=M(()=>{"use strict";Fh();SAe=(function(){try{var t=Ls(Object,"defineProperty");return t({},"",{}),t}catch{}})(),om=SAe});function CAe(t,e,r){e=="__proto__"&&om?om(t,e,{configurable:!0,enumerable:!0,value:r,writable:!0}):t[e]=r}var pc,lm=M(()=>{"use strict";xL();o(CAe,"baseAssignValue");pc=CAe});function AAe(t,e,r){(r!==void 0&&!Io(t[e],r)||r===void 0&&!(e in t))&&pc(t,e,r)}var h2,bL=M(()=>{"use strict";lm();zd();o(AAe,"assignMergeValue");h2=AAe});function _Ae(t){return function(e,r,n){for(var i=-1,a=Object(e),s=n(e),l=s.length;l--;){var u=s[t?l:++i];if(r(a[u],u,a)===!1)break}return e}}var LK,RK=M(()=>{"use strict";o(_Ae,"createBaseFor");LK=_Ae});var DAe,cm,mT=M(()=>{"use strict";RK();DAe=LK(),cm=DAe});function RAe(t,e){if(e)return t.slice();var r=t.length,n=IK?IK(r):new t.constructor(r);return t.copy(n),n}var OK,NK,LAe,MK,IK,gT,TL=M(()=>{"use strict";Mo();OK=typeof exports=="object"&&exports&&!exports.nodeType&&exports,NK=OK&&typeof module=="object"&&module&&!module.nodeType&&module,LAe=NK&&NK.exports===OK,MK=LAe?hi.Buffer:void 0,IK=MK?MK.allocUnsafe:void 0;o(RAe,"cloneBuffer");gT=RAe});var NAe,um,wL=M(()=>{"use strict";Mo();NAe=hi.Uint8Array,um=NAe});function MAe(t){var e=new t.constructor(t.byteLength);return new um(e).set(new um(t)),e}var hm,yT=M(()=>{"use strict";wL();o(MAe,"cloneArrayBuffer");hm=MAe});function IAe(t,e){var r=e?hm(t.buffer):t.buffer;return new t.constructor(r,t.byteOffset,t.length)}var vT,kL=M(()=>{"use strict";yT();o(IAe,"cloneTypedArray");vT=IAe});function OAe(t,e){var r=-1,n=t.length;for(e||(e=Array(n));++r{"use strict";o(OAe,"copyArray");xT=OAe});var PK,PAe,BK,FK=M(()=>{"use strict";oo();PK=Object.create,PAe=(function(){function t(){}return o(t,"object"),function(e){if(!Sn(e))return{};if(PK)return PK(e);t.prototype=e;var r=new t;return t.prototype=void 0,r}})(),BK=PAe});function BAe(t,e){return function(r){return t(e(r))}}var bT,SL=M(()=>{"use strict";o(BAe,"overArg");bT=BAe});var FAe,fm,TT=M(()=>{"use strict";SL();FAe=bT(Object.getPrototypeOf,Object),fm=FAe});function zAe(t){var e=t&&t.constructor,r=typeof e=="function"&&e.prototype||$Ae;return t===r}var $Ae,mc,dm=M(()=>{"use strict";$Ae=Object.prototype;o(zAe,"isPrototype");mc=zAe});function GAe(t){return typeof t.constructor=="function"&&!mc(t)?BK(fm(t)):{}}var wT,CL=M(()=>{"use strict";FK();TT();dm();o(GAe,"initCloneObject");wT=GAe});function VAe(t){return t!=null&&typeof t=="object"}var ai,Oo=M(()=>{"use strict";o(VAe,"isObjectLike");ai=VAe});function HAe(t){return ai(t)&&fa(t)==UAe}var UAe,AL,$K=M(()=>{"use strict";_u();Oo();UAe="[object Arguments]";o(HAe,"baseIsArguments");AL=HAe});var zK,qAe,WAe,YAe,_l,pm=M(()=>{"use strict";$K();Oo();zK=Object.prototype,qAe=zK.hasOwnProperty,WAe=zK.propertyIsEnumerable,YAe=AL((function(){return arguments})())?AL:function(t){return ai(t)&&qAe.call(t,"callee")&&!WAe.call(t,"callee")},_l=YAe});var XAe,Bt,Yn=M(()=>{"use strict";XAe=Array.isArray,Bt=XAe});function KAe(t){return typeof t=="number"&&t>-1&&t%1==0&&t<=jAe}var jAe,mm,kT=M(()=>{"use strict";jAe=9007199254740991;o(KAe,"isLength");mm=KAe});function QAe(t){return t!=null&&mm(t.length)&&!Si(t)}var fi,Po=M(()=>{"use strict";a2();kT();o(QAe,"isArrayLike");fi=QAe});function ZAe(t){return ai(t)&&fi(t)}var Vd,ET=M(()=>{"use strict";Po();Oo();o(ZAe,"isArrayLikeObject");Vd=ZAe});function JAe(){return!1}var GK,VK=M(()=>{"use strict";o(JAe,"stubFalse");GK=JAe});var qK,UK,e8e,HK,t8e,r8e,Dl,gm=M(()=>{"use strict";Mo();VK();qK=typeof exports=="object"&&exports&&!exports.nodeType&&exports,UK=qK&&typeof module=="object"&&module&&!module.nodeType&&module,e8e=UK&&UK.exports===qK,HK=e8e?hi.Buffer:void 0,t8e=HK?HK.isBuffer:void 0,r8e=t8e||GK,Dl=r8e});function l8e(t){if(!ai(t)||fa(t)!=n8e)return!1;var e=fm(t);if(e===null)return!0;var r=s8e.call(e,"constructor")&&e.constructor;return typeof r=="function"&&r instanceof r&&WK.call(r)==o8e}var n8e,i8e,a8e,WK,s8e,o8e,YK,XK=M(()=>{"use strict";_u();TT();Oo();n8e="[object Object]",i8e=Function.prototype,a8e=Object.prototype,WK=i8e.toString,s8e=a8e.hasOwnProperty,o8e=WK.call(Object);o(l8e,"isPlainObject");YK=l8e});function M8e(t){return ai(t)&&mm(t.length)&&!!Gn[fa(t)]}var c8e,u8e,h8e,f8e,d8e,p8e,m8e,g8e,y8e,v8e,x8e,b8e,T8e,w8e,k8e,E8e,S8e,C8e,A8e,_8e,D8e,L8e,R8e,N8e,Gn,jK,KK=M(()=>{"use strict";_u();kT();Oo();c8e="[object Arguments]",u8e="[object Array]",h8e="[object Boolean]",f8e="[object Date]",d8e="[object Error]",p8e="[object Function]",m8e="[object Map]",g8e="[object Number]",y8e="[object Object]",v8e="[object RegExp]",x8e="[object Set]",b8e="[object String]",T8e="[object WeakMap]",w8e="[object ArrayBuffer]",k8e="[object DataView]",E8e="[object Float32Array]",S8e="[object Float64Array]",C8e="[object Int8Array]",A8e="[object Int16Array]",_8e="[object Int32Array]",D8e="[object Uint8Array]",L8e="[object Uint8ClampedArray]",R8e="[object Uint16Array]",N8e="[object Uint32Array]",Gn={};Gn[E8e]=Gn[S8e]=Gn[C8e]=Gn[A8e]=Gn[_8e]=Gn[D8e]=Gn[L8e]=Gn[R8e]=Gn[N8e]=!0;Gn[c8e]=Gn[u8e]=Gn[w8e]=Gn[h8e]=Gn[k8e]=Gn[f8e]=Gn[d8e]=Gn[p8e]=Gn[m8e]=Gn[g8e]=Gn[y8e]=Gn[v8e]=Gn[x8e]=Gn[b8e]=Gn[T8e]=!1;o(M8e,"baseIsTypedArray");jK=M8e});function I8e(t){return function(e){return t(e)}}var Bo,Ud=M(()=>{"use strict";o(I8e,"baseUnary");Bo=I8e});var QK,f2,O8e,_L,P8e,Fo,d2=M(()=>{"use strict";pL();QK=typeof exports=="object"&&exports&&!exports.nodeType&&exports,f2=QK&&typeof module=="object"&&module&&!module.nodeType&&module,O8e=f2&&f2.exports===QK,_L=O8e&&hT.process,P8e=(function(){try{var t=f2&&f2.require&&f2.require("util").types;return t||_L&&_L.binding&&_L.binding("util")}catch{}})(),Fo=P8e});var ZK,B8e,Uh,p2=M(()=>{"use strict";KK();Ud();d2();ZK=Fo&&Fo.isTypedArray,B8e=ZK?Bo(ZK):jK,Uh=B8e});function F8e(t,e){if(!(e==="constructor"&&typeof t[e]=="function")&&e!="__proto__")return t[e]}var m2,DL=M(()=>{"use strict";o(F8e,"safeGet");m2=F8e});function G8e(t,e,r){var n=t[e];(!(z8e.call(t,e)&&Io(n,r))||r===void 0&&!(e in t))&&pc(t,e,r)}var $8e,z8e,gc,ym=M(()=>{"use strict";lm();zd();$8e=Object.prototype,z8e=$8e.hasOwnProperty;o(G8e,"assignValue");gc=G8e});function V8e(t,e,r,n){var i=!r;r||(r={});for(var a=-1,s=e.length;++a{"use strict";ym();lm();o(V8e,"copyObject");$o=V8e});function U8e(t,e){for(var r=-1,n=Array(t);++r{"use strict";o(U8e,"baseTimes");JK=U8e});function W8e(t,e){var r=typeof t;return e=e??H8e,!!e&&(r=="number"||r!="symbol"&&q8e.test(t))&&t>-1&&t%1==0&&t{"use strict";H8e=9007199254740991,q8e=/^(?:0|[1-9]\d*)$/;o(W8e,"isIndex");Hh=W8e});function j8e(t,e){var r=Bt(t),n=!r&&_l(t),i=!r&&!n&&Dl(t),a=!r&&!n&&!i&&Uh(t),s=r||n||i||a,l=s?JK(t.length,String):[],u=l.length;for(var h in t)(e||X8e.call(t,h))&&!(s&&(h=="length"||i&&(h=="offset"||h=="parent")||a&&(h=="buffer"||h=="byteLength"||h=="byteOffset")||Hh(h,u)))&&l.push(h);return l}var Y8e,X8e,ST,LL=M(()=>{"use strict";eQ();pm();Yn();gm();g2();p2();Y8e=Object.prototype,X8e=Y8e.hasOwnProperty;o(j8e,"arrayLikeKeys");ST=j8e});function K8e(t){var e=[];if(t!=null)for(var r in Object(t))e.push(r);return e}var tQ,rQ=M(()=>{"use strict";o(K8e,"nativeKeysIn");tQ=K8e});function J8e(t){if(!Sn(t))return tQ(t);var e=mc(t),r=[];for(var n in t)n=="constructor"&&(e||!Z8e.call(t,n))||r.push(n);return r}var Q8e,Z8e,nQ,iQ=M(()=>{"use strict";oo();dm();rQ();Q8e=Object.prototype,Z8e=Q8e.hasOwnProperty;o(J8e,"baseKeysIn");nQ=J8e});function e_e(t){return fi(t)?ST(t,!0):nQ(t)}var Rs,qh=M(()=>{"use strict";LL();iQ();Po();o(e_e,"keysIn");Rs=e_e});function t_e(t){return $o(t,Rs(t))}var aQ,sQ=M(()=>{"use strict";Hd();qh();o(t_e,"toPlainObject");aQ=t_e});function r_e(t,e,r,n,i,a,s){var l=m2(t,r),u=m2(e,r),h=s.get(u);if(h){h2(t,r,h);return}var f=a?a(l,u,r+"",t,e,s):void 0,d=f===void 0;if(d){var p=Bt(u),m=!p&&Dl(u),g=!p&&!m&&Uh(u);f=u,p||m||g?Bt(l)?f=l:Vd(l)?f=xT(l):m?(d=!1,f=gT(u,!0)):g?(d=!1,f=vT(u,!0)):f=[]:YK(u)||_l(u)?(f=l,_l(l)?f=aQ(l):(!Sn(l)||Si(l))&&(f=wT(u))):d=!1}d&&(s.set(u,f),i(f,u,n,a,s),s.delete(u)),h2(t,r,f)}var oQ,lQ=M(()=>{"use strict";bL();TL();kL();EL();CL();pm();Yn();ET();gm();a2();oo();XK();p2();DL();sQ();o(r_e,"baseMergeDeep");oQ=r_e});function cQ(t,e,r,n,i){t!==e&&cm(e,function(a,s){if(i||(i=new dc),Sn(a))oQ(t,e,s,r,cQ,n,i);else{var l=n?n(m2(t,s),a,s+"",t,e,i):void 0;l===void 0&&(l=a),h2(t,s,l)}},Rs)}var uQ,hQ=M(()=>{"use strict";u2();bL();mT();lQ();oo();qh();DL();o(cQ,"baseMerge");uQ=cQ});function n_e(t){return t}var Qi,Ru=M(()=>{"use strict";o(n_e,"identity");Qi=n_e});function i_e(t,e,r){switch(r.length){case 0:return t.call(e);case 1:return t.call(e,r[0]);case 2:return t.call(e,r[0],r[1]);case 3:return t.call(e,r[0],r[1],r[2])}return t.apply(e,r)}var fQ,dQ=M(()=>{"use strict";o(i_e,"apply");fQ=i_e});function a_e(t,e,r){return e=pQ(e===void 0?t.length-1:e,0),function(){for(var n=arguments,i=-1,a=pQ(n.length-e,0),s=Array(a);++i{"use strict";dQ();pQ=Math.max;o(a_e,"overRest");CT=a_e});function s_e(t){return function(){return t}}var Ns,NL=M(()=>{"use strict";o(s_e,"constant");Ns=s_e});var o_e,mQ,gQ=M(()=>{"use strict";NL();xL();Ru();o_e=om?function(t,e){return om(t,"toString",{configurable:!0,enumerable:!1,value:Ns(e),writable:!0})}:Qi,mQ=o_e});function h_e(t){var e=0,r=0;return function(){var n=u_e(),i=c_e-(n-r);if(r=n,i>0){if(++e>=l_e)return arguments[0]}else e=0;return t.apply(void 0,arguments)}}var l_e,c_e,u_e,yQ,vQ=M(()=>{"use strict";l_e=800,c_e=16,u_e=Date.now;o(h_e,"shortOut");yQ=h_e});var f_e,AT,ML=M(()=>{"use strict";gQ();vQ();f_e=yQ(mQ),AT=f_e});function d_e(t,e){return AT(CT(t,e,Qi),t+"")}var yc,vm=M(()=>{"use strict";Ru();RL();ML();o(d_e,"baseRest");yc=d_e});function p_e(t,e,r){if(!Sn(r))return!1;var n=typeof e;return(n=="number"?fi(r)&&Hh(e,r.length):n=="string"&&e in r)?Io(r[e],t):!1}var lo,qd=M(()=>{"use strict";zd();Po();g2();oo();o(p_e,"isIterateeCall");lo=p_e});function m_e(t){return yc(function(e,r){var n=-1,i=r.length,a=i>1?r[i-1]:void 0,s=i>2?r[2]:void 0;for(a=t.length>3&&typeof a=="function"?(i--,a):void 0,s&&lo(r[0],r[1],s)&&(a=i<3?void 0:a,i=1),e=Object(e);++n{"use strict";vm();qd();o(m_e,"createAssigner");_T=m_e});var g_e,Wh,OL=M(()=>{"use strict";hQ();IL();g_e=_T(function(t,e,r){uQ(t,e,r)}),Wh=g_e});function FL(t,e){if(!t)return e;let r=`curve${t.charAt(0).toUpperCase()+t.slice(1)}`;return y_e[r]??e}function T_e(t,e){let r=t.trim();if(r)return e.securityLevel!=="loose"?(0,TQ.sanitizeUrl)(r):r}function EQ(t,e){return!t||!e?0:Math.sqrt(Math.pow(e.x-t.x,2)+Math.pow(e.y-t.y,2))}function k_e(t){let e,r=0;t.forEach(i=>{r+=EQ(i,e),e=i});let n=r/2;return $L(t,n)}function E_e(t){return t.length===1?t[0]:k_e(t)}function C_e(t,e,r){let n=structuredClone(r);X.info("our points",n),e!=="start_left"&&e!=="start_right"&&n.reverse();let i=25+t,a=$L(n,i),s=10+t*.5,l=Math.atan2(n[0].y-a.y,n[0].x-a.x),u={x:0,y:0};return e==="start_left"?(u.x=Math.sin(l+Math.PI)*s+(n[0].x+a.x)/2,u.y=-Math.cos(l+Math.PI)*s+(n[0].y+a.y)/2):e==="end_right"?(u.x=Math.sin(l-Math.PI)*s+(n[0].x+a.x)/2-5,u.y=-Math.cos(l-Math.PI)*s+(n[0].y+a.y)/2-5):e==="end_left"?(u.x=Math.sin(l)*s+(n[0].x+a.x)/2-5,u.y=-Math.cos(l)*s+(n[0].y+a.y)/2-5):(u.x=Math.sin(l)*s+(n[0].x+a.x)/2,u.y=-Math.cos(l)*s+(n[0].y+a.y)/2),u}function zL(t){let e="",r="";for(let n of t)n!==void 0&&(n.startsWith("color:")||n.startsWith("text-align:")?r=r+n+";":e=e+n+";");return{style:e,labelStyle:r}}function A_e(t){let e="",r="0123456789abcdef",n=r.length;for(let i=0;iMath.round(parseFloat(a)).toString());return i.includes(r.toString())||i.includes(n.toString())}var TQ,BL,y_e,v_e,x_e,wQ,kQ,b_e,w_e,xQ,$L,S_e,bQ,GL,VL,__e,D_e,UL,L_e,HL,PL,DT,R_e,N_e,vc,qt,SQ,Ji,xc,tr=M(()=>{"use strict";TQ=La(tm(),1);yr();gr();S7();pt();vd();v0();vL();OL();$3();BL="\u200B",y_e={curveBasis:No,curveBasisClosed:Q5,curveBasisOpen:Z5,curveBumpX:Uv,curveBumpY:Hv,curveBundle:tL,curveCardinalClosed:rL,curveCardinalOpen:iL,curveCardinal:Xv,curveCatmullRomClosed:sL,curveCatmullRomOpen:oL,curveCatmullRom:Qv,curveLinear:Cu,curveLinearClosed:nT,curveMonotoneX:Zv,curveMonotoneY:Jv,curveNatural:J0,curveStep:em,curveStepAfter:t2,curveStepBefore:e2},v_e=/\s*(?:(\w+)(?=:):|(\w+))\s*(?:(\w+)|((?:(?!}%{2}).|\r?\n)*))?\s*(?:}%{2})?/gi,x_e=o(function(t,e){let r=wQ(t,/(?:init\b)|(?:initialize\b)/),n={};if(Array.isArray(r)){let s=r.map(l=>l.args);b0(s),n=Rn(n,[...s])}else n=r.args;if(!n)return;let i=_0(t,e),a="config";return n[a]!==void 0&&(i==="flowchart-v2"&&(i="flowchart"),n[i]=n[a],delete n[a]),n},"detectInit"),wQ=o(function(t,e=null){try{let r=new RegExp(`[%]{2}(?![{]${v_e.source})(?=[}][%]{2}).* +`,"ig");t=t.trim().replace(r,"").replace(/'/gm,'"'),X.debug(`Detecting diagram directive${e!==null?" type:"+e:""} based on the text:${t}`);let n,i=[];for(;(n=yd.exec(t))!==null;)if(n.index===yd.lastIndex&&yd.lastIndex++,n&&!e||e&&n[1]?.match(e)||e&&n[2]?.match(e)){let a=n[1]?n[1]:n[2],s=n[3]?n[3].trim():n[4]?JSON.parse(n[4].trim()):null;i.push({type:a,args:s})}return i.length===0?{type:t,args:null}:i.length===1?i[0]:i}catch(r){return X.error(`ERROR: ${r.message} - Unable to parse directive type: '${e}' based on the text: '${t}'`),{type:void 0,args:null}}},"detectDirective"),kQ=o(function(t){return t.replace(yd,"")},"removeDirectives"),b_e=o(function(t,e){for(let[r,n]of e.entries())if(n.match(t))return r;return-1},"isSubstringInArray");o(FL,"interpolateToCurve");o(T_e,"formatUrl");w_e=o((t,...e)=>{let r=t.split("."),n=r.length-1,i=r[n],a=window;for(let s=0;s{let r=Math.pow(10,e);return Math.round(t*r)/r},"roundNumber"),$L=o((t,e)=>{let r,n=e;for(let i of t){if(r){let a=EQ(i,r);if(a===0)return r;if(a=1)return{x:i.x,y:i.y};if(s>0&&s<1)return{x:xQ((1-s)*r.x+s*i.x,5),y:xQ((1-s)*r.y+s*i.y,5)}}}r=i}throw new Error("Could not find a suitable point for the given distance")},"calculatePoint"),S_e=o((t,e,r)=>{X.info(`our points ${JSON.stringify(e)}`),e[0]!==r&&(e=e.reverse());let i=$L(e,25),a=t?10:5,s=Math.atan2(e[0].y-i.y,e[0].x-i.x),l={x:0,y:0};return l.x=Math.sin(s)*a+(e[0].x+i.x)/2,l.y=-Math.cos(s)*a+(e[0].y+i.y)/2,l},"calcCardinalityPosition");o(C_e,"calcTerminalLabelPosition");o(zL,"getStylesFromArray");bQ=0,GL=o(()=>(bQ++,"id-"+Math.random().toString(36).substr(2,12)+"-"+bQ),"generateId");o(A_e,"makeRandomHex");VL=o(t=>A_e(t.length),"random"),__e=o(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:""}},"getTextObj"),D_e=o(function(t,e){let r=e.text.replace(tt.lineBreakRegex," "),[,n]=vc(e.fontSize),i=t.append("text");i.attr("x",e.x),i.attr("y",e.y),i.style("text-anchor",e.anchor),i.style("font-family",e.fontFamily),i.style("font-size",n),i.style("font-weight",e.fontWeight),i.attr("fill",e.fill),e.class!==void 0&&i.attr("class",e.class);let a=i.append("tspan");return a.attr("x",e.x+e.textMargin*2),a.attr("fill",e.fill),a.text(r),i},"drawSimpleText"),UL=am((t,e,r)=>{if(!t||(r=Object.assign({fontSize:12,fontWeight:400,fontFamily:"Arial",joinWith:"
"},r),tt.lineBreakRegex.test(t)))return t;let n=t.split(" ").filter(Boolean),i=[],a="";return n.forEach((s,l)=>{let u=Zi(`${s} `,r),h=Zi(a,r);if(u>e){let{hyphenatedStrings:p,remainingWord:m}=L_e(s,e,"-",r);i.push(a,...p),a=m}else h+u>=e?(i.push(a),a=s):a=[a,s].filter(Boolean).join(" ");l+1===n.length&&i.push(a)}),i.filter(s=>s!=="").join(r.joinWith)},(t,e,r)=>`${t}${e}${r.fontSize}${r.fontWeight}${r.fontFamily}${r.joinWith}`),L_e=am((t,e,r="-",n)=>{n=Object.assign({fontSize:12,fontWeight:400,fontFamily:"Arial",margin:0},n);let i=[...t],a=[],s="";return i.forEach((l,u)=>{let h=`${s}${l}`;if(Zi(h,n)>=e){let d=u+1,p=i.length===d,m=`${h}${r}`;a.push(p?h:m),s=""}else s=h}),{hyphenatedStrings:a,remainingWord:s}},(t,e,r="-",n)=>`${t}${e}${r}${n.fontSize}${n.fontWeight}${n.fontFamily}`);o(LT,"calculateTextHeight");o(Zi,"calculateTextWidth");HL=am((t,e)=>{let{fontSize:r=12,fontFamily:n="Arial",fontWeight:i=400}=e;if(!t)return{width:0,height:0};let[,a]=vc(r),s=["sans-serif",n],l=t.split(tt.lineBreakRegex),u=[],h=qe("body");if(!h.remove)return{width:0,height:0,lineHeight:0};let f=h.append("svg");for(let p of s){let m=0,g={width:0,height:0,lineHeight:0};for(let y of l){let v=__e();v.text=y||BL;let x=D_e(f,v).style("font-size",a).style("font-weight",i).style("font-family",p),b=(x._groups||x)[0][0].getBBox();if(b.width===0&&b.height===0)throw new Error("svg element not in render tree");g.width=Math.round(Math.max(g.width,b.width)),m=Math.round(b.height),g.height+=m,g.lineHeight=Math.round(Math.max(g.lineHeight,m))}u.push(g)}f.remove();let d=isNaN(u[1].height)||isNaN(u[1].width)||isNaN(u[1].lineHeight)||u[0].height>u[1].height&&u[0].width>u[1].width&&u[0].lineHeight>u[1].lineHeight?0:1;return u[d]},(t,e)=>`${t}${e.fontSize}${e.fontWeight}${e.fontFamily}`),PL=class{constructor(e=!1,r){this.count=0;this.count=r?r.length:0,this.next=e?()=>this.count++:()=>Date.now()}static{o(this,"InitIDGenerator")}},R_e=o(function(t){return DT=DT||document.createElement("div"),t=escape(t).replace(/%26/g,"&").replace(/%23/g,"#").replace(/%3B/g,";"),DT.innerHTML=t,unescape(DT.textContent)},"entityDecode");o(qL,"isDetailedError");N_e=o((t,e,r,n)=>{if(!n)return;let i=t.node()?.getBBox();i&&t.append("text").text(n).attr("text-anchor","middle").attr("x",i.x+i.width/2).attr("y",-r).attr("class",e)},"insertTitle"),vc=o(t=>{if(typeof t=="number")return[t,t+"px"];let e=parseInt(t??"",10);return Number.isNaN(e)?[void 0,void 0]:t===String(e)?[e,t+"px"]:[e,t]},"parseFontSize");o(Vn,"cleanAndMerge");qt={assignWithDepth:Rn,wrapLabel:UL,calculateTextHeight:LT,calculateTextWidth:Zi,calculateTextDimensions:HL,cleanAndMerge:Vn,detectInit:x_e,detectDirective:wQ,isSubstringInArray:b_e,interpolateToCurve:FL,calcLabelPosition:E_e,calcCardinalityPosition:S_e,calcTerminalLabelPosition:C_e,formatUrl:T_e,getStylesFromArray:zL,generateId:GL,random:VL,runFunc:w_e,entityDecode:R_e,insertTitle:N_e,isLabelCoordinateInPath:M_e,parseFontSize:vc,InitIDGenerator:PL},SQ=o(function(t){let e=t;return e=e.replace(/style.*:\S*#.*;/g,function(r){return r.substring(0,r.length-1)}),e=e.replace(/classDef.*:\S*#.*;/g,function(r){return r.substring(0,r.length-1)}),e=e.replace(/#\w+;/g,function(r){let n=r.substring(1,r.length-1);return/^\+?\d+$/.test(n)?"\uFB02\xB0\xB0"+n+"\xB6\xDF":"\uFB02\xB0"+n+"\xB6\xDF"}),e},"encodeEntities"),Ji=o(function(t){return t.replace(/fl°°/g,"&#").replace(/fl°/g,"&").replace(/¶ß/g,";")},"decodeEntities"),xc=o((t,e,{counter:r=0,prefix:n,suffix:i},a)=>a||`${n?`${n}_`:""}${t}_${e}_${r}${i?`_${i}`:""}`,"getEdgeId");o(Cn,"handleUndefinedAttr");o(M_e,"isLabelCoordinateInPath")});function Ll(t,e,r,n,i){if(!e[t].width)if(r)e[t].text=UL(e[t].text,i,n),e[t].textLines=e[t].text.split(tt.lineBreakRegex).length,e[t].width=i,e[t].height=LT(e[t].text,n);else{let a=e[t].text.split(tt.lineBreakRegex);e[t].textLines=a.length;let s=0;e[t].height=0,e[t].width=0;for(let l of a)e[t].width=Math.max(Zi(l,n),e[t].width),s=LT(l,n),e[t].height=e[t].height+s}}function LQ(t,e,r,n,i){let a=new IT(i);a.data.widthLimit=r.data.widthLimit/Math.min(WL,n.length);for(let[s,l]of n.entries()){let u=0;l.image={width:0,height:0,Y:0},l.sprite&&(l.image.width=48,l.image.height=48,l.image.Y=u,u=l.image.Y+l.image.height);let h=l.wrap&&Wt.wrap,f=RT(Wt);if(f.fontSize=f.fontSize+2,f.fontWeight="bold",Ll("label",l,h,f,a.data.widthLimit),l.label.Y=u+8,u=l.label.Y+l.label.height,l.type&&l.type.text!==""){l.type.text="["+l.type.text+"]";let g=RT(Wt);Ll("type",l,h,g,a.data.widthLimit),l.type.Y=u+5,u=l.type.Y+l.type.height}if(l.descr&&l.descr.text!==""){let g=RT(Wt);g.fontSize=g.fontSize-2,Ll("descr",l,h,g,a.data.widthLimit),l.descr.Y=u+20,u=l.descr.Y+l.descr.height}if(s==0||s%WL===0){let g=r.data.startx+Wt.diagramMarginX,y=r.data.stopy+Wt.diagramMarginY+u;a.setData(g,g,y,y)}else{let g=a.data.stopx!==a.data.startx?a.data.stopx+Wt.diagramMarginX:a.data.startx,y=a.data.starty;a.setData(g,g,y,y)}a.name=l.alias;let d=i.db.getC4ShapeArray(l.alias),p=i.db.getC4ShapeKeys(l.alias);p.length>0&&DQ(a,t,d,p),e=l.alias;let m=i.db.getBoundaries(e);m.length>0&&LQ(t,e,a,m,i),l.alias!=="global"&&_Q(t,l,a),r.data.stopy=Math.max(a.data.stopy+Wt.c4ShapeMargin,r.data.stopy),r.data.stopx=Math.max(a.data.stopx+Wt.c4ShapeMargin,r.data.stopx),NT=Math.max(NT,r.data.stopx),MT=Math.max(MT,r.data.stopy)}}var NT,MT,AQ,WL,Wt,IT,YL,y2,RT,I_e,_Q,DQ,Ms,CQ,O_e,P_e,B_e,XL,RQ=M(()=>{"use strict";yr();Cj();pt();RA();gr();GA();Xt();v0();tr();Ei();NT=0,MT=0,AQ=4,WL=2;rv.yy=lv;Wt={},IT=class{static{o(this,"Bounds")}constructor(e){this.name="",this.data={},this.data.startx=void 0,this.data.stopx=void 0,this.data.starty=void 0,this.data.stopy=void 0,this.data.widthLimit=void 0,this.nextData={},this.nextData.startx=void 0,this.nextData.stopx=void 0,this.nextData.starty=void 0,this.nextData.stopy=void 0,this.nextData.cnt=0,YL(e.db.getConfig())}setData(e,r,n,i){this.nextData.startx=this.data.startx=e,this.nextData.stopx=this.data.stopx=r,this.nextData.starty=this.data.starty=n,this.nextData.stopy=this.data.stopy=i}updateVal(e,r,n,i){e[r]===void 0?e[r]=n:e[r]=i(n,e[r])}insert(e){this.nextData.cnt=this.nextData.cnt+1;let r=this.nextData.startx===this.nextData.stopx?this.nextData.stopx+e.margin:this.nextData.stopx+e.margin*2,n=r+e.width,i=this.nextData.starty+e.margin*2,a=i+e.height;(r>=this.data.widthLimit||n>=this.data.widthLimit||this.nextData.cnt>AQ)&&(r=this.nextData.startx+e.margin+Wt.nextLinePaddingX,i=this.nextData.stopy+e.margin*2,this.nextData.stopx=n=r+e.width,this.nextData.starty=this.nextData.stopy,this.nextData.stopy=a=i+e.height,this.nextData.cnt=1),e.x=r,e.y=i,this.updateVal(this.data,"startx",r,Math.min),this.updateVal(this.data,"starty",i,Math.min),this.updateVal(this.data,"stopx",n,Math.max),this.updateVal(this.data,"stopy",a,Math.max),this.updateVal(this.nextData,"startx",r,Math.min),this.updateVal(this.nextData,"starty",i,Math.min),this.updateVal(this.nextData,"stopx",n,Math.max),this.updateVal(this.nextData,"stopy",a,Math.max)}init(e){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},YL(e.db.getConfig())}bumpLastMargin(e){this.data.stopx+=e,this.data.stopy+=e}},YL=o(function(t){Rn(Wt,t),t.fontFamily&&(Wt.personFontFamily=Wt.systemFontFamily=Wt.messageFontFamily=t.fontFamily),t.fontSize&&(Wt.personFontSize=Wt.systemFontSize=Wt.messageFontSize=t.fontSize),t.fontWeight&&(Wt.personFontWeight=Wt.systemFontWeight=Wt.messageFontWeight=t.fontWeight)},"setConf"),y2=o((t,e)=>({fontFamily:t[e+"FontFamily"],fontSize:t[e+"FontSize"],fontWeight:t[e+"FontWeight"]}),"c4ShapeFont"),RT=o(t=>({fontFamily:t.boundaryFontFamily,fontSize:t.boundaryFontSize,fontWeight:t.boundaryFontWeight}),"boundaryFont"),I_e=o(t=>({fontFamily:t.messageFontFamily,fontSize:t.messageFontSize,fontWeight:t.messageFontWeight}),"messageFont");o(Ll,"calcC4ShapeTextWH");_Q=o(function(t,e,r){e.x=r.data.startx,e.y=r.data.starty,e.width=r.data.stopx-r.data.startx,e.height=r.data.stopy-r.data.starty,e.label.y=Wt.c4ShapeMargin-35;let n=e.wrap&&Wt.wrap,i=RT(Wt);i.fontSize=i.fontSize+2,i.fontWeight="bold";let a=Zi(e.label.text,i);Ll("label",e,n,i,a),Al.drawBoundary(t,e,Wt)},"drawBoundary"),DQ=o(function(t,e,r,n){let i=0;for(let a of n){i=0;let s=r[a],l=y2(Wt,s.typeC4Shape.text);switch(l.fontSize=l.fontSize-2,s.typeC4Shape.width=Zi("\xAB"+s.typeC4Shape.text+"\xBB",l),s.typeC4Shape.height=l.fontSize+2,s.typeC4Shape.Y=Wt.c4ShapePadding,i=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=i,i=s.image.Y+s.image.height;break}s.sprite&&(s.image.width=48,s.image.height=48,s.image.Y=i,i=s.image.Y+s.image.height);let u=s.wrap&&Wt.wrap,h=Wt.width-Wt.c4ShapePadding*2,f=y2(Wt,s.typeC4Shape.text);if(f.fontSize=f.fontSize+2,f.fontWeight="bold",Ll("label",s,u,f,h),s.label.Y=i+8,i=s.label.Y+s.label.height,s.type&&s.type.text!==""){s.type.text="["+s.type.text+"]";let m=y2(Wt,s.typeC4Shape.text);Ll("type",s,u,m,h),s.type.Y=i+5,i=s.type.Y+s.type.height}else if(s.techn&&s.techn.text!==""){s.techn.text="["+s.techn.text+"]";let m=y2(Wt,s.techn.text);Ll("techn",s,u,m,h),s.techn.Y=i+5,i=s.techn.Y+s.techn.height}let d=i,p=s.label.width;if(s.descr&&s.descr.text!==""){let m=y2(Wt,s.typeC4Shape.text);Ll("descr",s,u,m,h),s.descr.Y=i+20,i=s.descr.Y+s.descr.height,p=Math.max(s.label.width,s.descr.width),d=i-s.descr.textLines*5}p=p+Wt.c4ShapePadding,s.width=Math.max(s.width||Wt.width,p,Wt.width),s.height=Math.max(s.height||Wt.height,d,Wt.height),s.margin=s.margin||Wt.c4ShapeMargin,t.insert(s),Al.drawC4Shape(e,s,Wt)}t.bumpLastMargin(Wt.c4ShapeMargin)},"drawC4ShapeArray"),Ms=class{static{o(this,"Point")}constructor(e,r){this.x=e,this.y=r}},CQ=o(function(t,e){let r=t.x,n=t.y,i=e.x,a=e.y,s=r+t.width/2,l=n+t.height/2,u=Math.abs(r-i),h=Math.abs(n-a),f=h/u,d=t.height/t.width,p=null;return n==a&&ri?p=new Ms(r,l):r==i&&na&&(p=new Ms(s,n)),r>i&&n=f?p=new Ms(r,l+f*t.width/2):p=new Ms(s-u/h*t.height/2,n+t.height):r=f?p=new Ms(r+t.width,l+f*t.width/2):p=new Ms(s+u/h*t.height/2,n+t.height):ra?d>=f?p=new Ms(r+t.width,l-f*t.width/2):p=new Ms(s+t.height/2*u/h,n):r>i&&n>a&&(d>=f?p=new Ms(r,l-t.width/2*f):p=new Ms(s-t.height/2*u/h,n)),p},"getIntersectPoint"),O_e=o(function(t,e){let r={x:0,y:0};r.x=e.x+e.width/2,r.y=e.y+e.height/2;let n=CQ(t,r);r.x=t.x+t.width/2,r.y=t.y+t.height/2;let i=CQ(e,r);return{startPoint:n,endPoint:i}},"getIntersectPoints"),P_e=o(function(t,e,r,n){let i=0;for(let a of e){i=i+1;let s=a.wrap&&Wt.wrap,l=I_e(Wt);n.db.getC4Type()==="C4Dynamic"&&(a.label.text=i+": "+a.label.text);let h=Zi(a.label.text,l);Ll("label",a,s,l,h),a.techn&&a.techn.text!==""&&(h=Zi(a.techn.text,l),Ll("techn",a,s,l,h)),a.descr&&a.descr.text!==""&&(h=Zi(a.descr.text,l),Ll("descr",a,s,l,h));let f=r(a.from),d=r(a.to),p=O_e(f,d);a.startPoint=p.startPoint,a.endPoint=p.endPoint}Al.drawRels(t,e,Wt)},"drawRels");o(LQ,"drawInsideBoundary");B_e=o(function(t,e,r,n){Wt=ge().c4;let i=ge().securityLevel,a;i==="sandbox"&&(a=qe("#i"+e));let s=i==="sandbox"?qe(a.nodes()[0].contentDocument.body):qe("body"),l=n.db;n.db.setWrap(Wt.wrap),AQ=l.getC4ShapeInRow(),WL=l.getC4BoundaryInRow(),X.debug(`C:${JSON.stringify(Wt,null,2)}`);let u=i==="sandbox"?s.select(`[id="${e}"]`):qe(`[id="${e}"]`);Al.insertComputerIcon(u),Al.insertDatabaseIcon(u),Al.insertClockIcon(u);let h=new IT(n);h.setData(Wt.diagramMarginX,Wt.diagramMarginX,Wt.diagramMarginY,Wt.diagramMarginY),h.data.widthLimit=screen.availWidth,NT=Wt.diagramMarginX,MT=Wt.diagramMarginY;let f=n.db.getTitle(),d=n.db.getBoundaries("");LQ(u,"",h,d,n),Al.insertArrowHead(u),Al.insertArrowEnd(u),Al.insertArrowCrossHead(u),Al.insertArrowFilledHead(u),P_e(u,n.db.getRels(),n.db.getC4Shape,n),h.data.stopx=NT,h.data.stopy=MT;let p=h.data,g=p.stopy-p.starty+2*Wt.diagramMarginY,v=p.stopx-p.startx+2*Wt.diagramMarginX;f&&u.append("text").text(f).attr("x",(p.stopx-p.startx)/2-4*Wt.diagramMarginX).attr("y",p.starty+Wt.diagramMarginY),mn(u,g,v,Wt.useMaxWidth);let x=f?60:0;u.attr("viewBox",p.startx-Wt.diagramMarginX+" -"+(Wt.diagramMarginY+x)+" "+v+" "+(g+x)),X.debug("models:",p)},"draw"),XL={drawPersonOrSystemArray:DQ,drawBoundary:_Q,setConf:YL,draw:B_e}});var F_e,NQ,MQ=M(()=>{"use strict";F_e=o(t=>`.person { + stroke: ${t.personBorder}; + fill: ${t.personBkg}; + } +`,"getStyles"),NQ=F_e});var IQ={};dr(IQ,{diagram:()=>$_e});var $_e,OQ=M(()=>{"use strict";RA();GA();RQ();MQ();$_e={parser:sH,db:lv,renderer:XL,styles:NQ,init:o(({c4:t,wrap:e})=>{XL.setConf(t),lv.setWrap(e)},"init")}});function ZQ(t){return typeof t>"u"||t===null}function U_e(t){return typeof t=="object"&&t!==null}function H_e(t){return Array.isArray(t)?t:ZQ(t)?[]:[t]}function q_e(t,e){var r,n,i,a;if(e)for(a=Object.keys(e),r=0,n=a.length;rl&&(a=" ... ",e=n-l+a.length),r-n>l&&(s=" ...",r=n+l-s.length),{str:a+t.slice(e,r).replace(/\t/g,"\u2192")+s,pos:n-e+a.length}}function KL(t,e){return Pi.repeat(" ",e-t.length)+t}function eDe(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 r=/\r?\n|\r|\0/g,n=[0],i=[],a,s=-1;a=r.exec(t.buffer);)i.push(a.index),n.push(a.index+a[0].length),t.position<=a.index&&s<0&&(s=n.length-2);s<0&&(s=n.length-1);var l="",u,h,f=Math.min(t.line+e.linesAfter,i.length).toString().length,d=e.maxLength-(e.indent+f+3);for(u=1;u<=e.linesBefore&&!(s-u<0);u++)h=jL(t.buffer,n[s-u],i[s-u],t.position-(n[s]-n[s-u]),d),l=Pi.repeat(" ",e.indent)+KL((t.line-u+1).toString(),f)+" | "+h.str+` +`+l;for(h=jL(t.buffer,n[s],i[s],t.position,d),l+=Pi.repeat(" ",e.indent)+KL((t.line+1).toString(),f)+" | "+h.str+` +`,l+=Pi.repeat("-",e.indent+f+3+h.pos)+`^ +`,u=1;u<=e.linesAfter&&!(s+u>=i.length);u++)h=jL(t.buffer,n[s+u],i[s+u],t.position-(n[s]-n[s+u]),d),l+=Pi.repeat(" ",e.indent)+KL((t.line+u+1).toString(),f)+" | "+h.str+` +`;return l.replace(/\n$/,"")}function iDe(t){var e={};return t!==null&&Object.keys(t).forEach(function(r){t[r].forEach(function(n){e[String(n)]=r})}),e}function aDe(t,e){if(e=e||{},Object.keys(e).forEach(function(r){if(rDe.indexOf(r)===-1)throw new Is('Unknown option "'+r+'" 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(r){return r},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=iDe(e.styleAliases||null),nDe.indexOf(this.kind)===-1)throw new Is('Unknown kind "'+this.kind+'" is specified for "'+t+'" YAML type.')}function BQ(t,e){var r=[];return t[e].forEach(function(n){var i=r.length;r.forEach(function(a,s){a.tag===n.tag&&a.kind===n.kind&&a.multi===n.multi&&(i=s)}),r[i]=n}),r}function sDe(){var t={scalar:{},sequence:{},mapping:{},fallback:{},multi:{scalar:[],sequence:[],mapping:[],fallback:[]}},e,r;function n(i){i.multi?(t.multi[i.kind].push(i),t.multi.fallback.push(i)):t[i.kind][i.tag]=t.fallback[i.tag]=i}for(o(n,"collectType"),e=0,r=arguments.length;e=0&&(e=e.slice(1)),e===".inf"?r===1?Number.POSITIVE_INFINITY:Number.NEGATIVE_INFINITY:e===".nan"?NaN:r*parseFloat(e,10)}function RDe(t,e){var r;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(Pi.isNegativeZero(t))return"-0.0";return r=t.toString(10),LDe.test(r)?r.replace("e",".e"):r}function NDe(t){return Object.prototype.toString.call(t)==="[object Number]"&&(t%1!==0||Pi.isNegativeZero(t))}function ODe(t){return t===null?!1:tZ.exec(t)!==null||rZ.exec(t)!==null}function PDe(t){var e,r,n,i,a,s,l,u=0,h=null,f,d,p;if(e=tZ.exec(t),e===null&&(e=rZ.exec(t)),e===null)throw new Error("Date resolve error");if(r=+e[1],n=+e[2]-1,i=+e[3],!e[4])return new Date(Date.UTC(r,n,i));if(a=+e[4],s=+e[5],l=+e[6],e[7]){for(u=e[7].slice(0,3);u.length<3;)u+="0";u=+u}return e[9]&&(f=+e[10],d=+(e[11]||0),h=(f*60+d)*6e4,e[9]==="-"&&(h=-h)),p=new Date(Date.UTC(r,n,i,a,s,l,u)),h&&p.setTime(p.getTime()-h),p}function BDe(t){return t.toISOString()}function $De(t){return t==="<<"||t===null}function GDe(t){if(t===null)return!1;var e,r,n=0,i=t.length,a=n9;for(r=0;r64)){if(e<0)return!1;n+=6}return n%8===0}function VDe(t){var e,r,n=t.replace(/[\r\n=]/g,""),i=n.length,a=n9,s=0,l=[];for(e=0;e>16&255),l.push(s>>8&255),l.push(s&255)),s=s<<6|a.indexOf(n.charAt(e));return r=i%4*6,r===0?(l.push(s>>16&255),l.push(s>>8&255),l.push(s&255)):r===18?(l.push(s>>10&255),l.push(s>>2&255)):r===12&&l.push(s>>4&255),new Uint8Array(l)}function UDe(t){var e="",r=0,n,i,a=t.length,s=n9;for(n=0;n>18&63],e+=s[r>>12&63],e+=s[r>>6&63],e+=s[r&63]),r=(r<<8)+t[n];return i=a%3,i===0?(e+=s[r>>18&63],e+=s[r>>12&63],e+=s[r>>6&63],e+=s[r&63]):i===2?(e+=s[r>>10&63],e+=s[r>>4&63],e+=s[r<<2&63],e+=s[64]):i===1&&(e+=s[r>>2&63],e+=s[r<<4&63],e+=s[64],e+=s[64]),e}function HDe(t){return Object.prototype.toString.call(t)==="[object Uint8Array]"}function XDe(t){if(t===null)return!0;var e=[],r,n,i,a,s,l=t;for(r=0,n=l.length;r>10)+55296,(t-65536&1023)+56320)}function dLe(t,e){this.input=t,this.filename=e.filename||null,this.schema=e.schema||nZ,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 uZ(t,e){var r={name:t.filename,buffer:t.input.slice(0,-1),position:t.position,line:t.line,column:t.position-t.lineStart};return r.snippet=tDe(r),new Is(e,r)}function Zt(t,e){throw uZ(t,e)}function BT(t,e){t.onWarning&&t.onWarning.call(null,uZ(t,e))}function Yh(t,e,r,n){var i,a,s,l;if(e1&&(t.result+=Pi.repeat(` +`,e-1))}function pLe(t,e,r){var n,i,a,s,l,u,h,f,d=t.kind,p=t.result,m;if(m=t.input.charCodeAt(t.position),Os(m)||bm(m)||m===35||m===38||m===42||m===33||m===124||m===62||m===39||m===34||m===37||m===64||m===96||(m===63||m===45)&&(i=t.input.charCodeAt(t.position+1),Os(i)||r&&bm(i)))return!1;for(t.kind="scalar",t.result="",a=s=t.position,l=!1;m!==0;){if(m===58){if(i=t.input.charCodeAt(t.position+1),Os(i)||r&&bm(i))break}else if(m===35){if(n=t.input.charCodeAt(t.position-1),Os(n))break}else{if(t.position===t.lineStart&&zT(t)||r&&bm(m))break;if(bc(m))if(u=t.line,h=t.lineStart,f=t.lineIndent,Ci(t,!1,-1),t.lineIndent>=e){l=!0,m=t.input.charCodeAt(t.position);continue}else{t.position=s,t.line=u,t.lineStart=h,t.lineIndent=f;break}}l&&(Yh(t,a,s,!1),a9(t,t.line-u),a=s=t.position,l=!1),Yd(m)||(s=t.position+1),m=t.input.charCodeAt(++t.position)}return Yh(t,a,s,!1),t.result?!0:(t.kind=d,t.result=p,!1)}function mLe(t,e){var r,n,i;if(r=t.input.charCodeAt(t.position),r!==39)return!1;for(t.kind="scalar",t.result="",t.position++,n=i=t.position;(r=t.input.charCodeAt(t.position))!==0;)if(r===39)if(Yh(t,n,t.position,!0),r=t.input.charCodeAt(++t.position),r===39)n=t.position,t.position++,i=t.position;else return!0;else bc(r)?(Yh(t,n,i,!0),a9(t,Ci(t,!1,e)),n=i=t.position):t.position===t.lineStart&&zT(t)?Zt(t,"unexpected end of the document within a single quoted scalar"):(t.position++,i=t.position);Zt(t,"unexpected end of the stream within a single quoted scalar")}function gLe(t,e){var r,n,i,a,s,l;if(l=t.input.charCodeAt(t.position),l!==34)return!1;for(t.kind="scalar",t.result="",t.position++,r=n=t.position;(l=t.input.charCodeAt(t.position))!==0;){if(l===34)return Yh(t,r,t.position,!0),t.position++,!0;if(l===92){if(Yh(t,r,t.position,!0),l=t.input.charCodeAt(++t.position),bc(l))Ci(t,!1,e);else if(l<256&&lZ[l])t.result+=cZ[l],t.position++;else if((s=uLe(l))>0){for(i=s,a=0;i>0;i--)l=t.input.charCodeAt(++t.position),(s=cLe(l))>=0?a=(a<<4)+s:Zt(t,"expected hexadecimal character");t.result+=fLe(a),t.position++}else Zt(t,"unknown escape sequence");r=n=t.position}else bc(l)?(Yh(t,r,n,!0),a9(t,Ci(t,!1,e)),r=n=t.position):t.position===t.lineStart&&zT(t)?Zt(t,"unexpected end of the document within a double quoted scalar"):(t.position++,n=t.position)}Zt(t,"unexpected end of the stream within a double quoted scalar")}function yLe(t,e){var r=!0,n,i,a,s=t.tag,l,u=t.anchor,h,f,d,p,m,g=Object.create(null),y,v,x,b;if(b=t.input.charCodeAt(t.position),b===91)f=93,m=!1,l=[];else if(b===123)f=125,m=!0,l={};else return!1;for(t.anchor!==null&&(t.anchorMap[t.anchor]=l),b=t.input.charCodeAt(++t.position);b!==0;){if(Ci(t,!0,e),b=t.input.charCodeAt(t.position),b===f)return t.position++,t.tag=s,t.anchor=u,t.kind=m?"mapping":"sequence",t.result=l,!0;r?b===44&&Zt(t,"expected the node content, but found ','"):Zt(t,"missed comma between flow collection entries"),v=y=x=null,d=p=!1,b===63&&(h=t.input.charCodeAt(t.position+1),Os(h)&&(d=p=!0,t.position++,Ci(t,!0,e))),n=t.line,i=t.lineStart,a=t.position,wm(t,e,OT,!1,!0),v=t.tag,y=t.result,Ci(t,!0,e),b=t.input.charCodeAt(t.position),(p||t.line===n)&&b===58&&(d=!0,b=t.input.charCodeAt(++t.position),Ci(t,!0,e),wm(t,e,OT,!1,!0),x=t.result),m?Tm(t,l,g,v,y,x,n,i,a):d?l.push(Tm(t,null,g,v,y,x,n,i,a)):l.push(y),Ci(t,!0,e),b=t.input.charCodeAt(t.position),b===44?(r=!0,b=t.input.charCodeAt(++t.position)):r=!1}Zt(t,"unexpected end of the stream within a flow collection")}function vLe(t,e){var r,n,i=QL,a=!1,s=!1,l=e,u=0,h=!1,f,d;if(d=t.input.charCodeAt(t.position),d===124)n=!1;else if(d===62)n=!0;else return!1;for(t.kind="scalar",t.result="";d!==0;)if(d=t.input.charCodeAt(++t.position),d===43||d===45)QL===i?i=d===43?FQ:aLe:Zt(t,"repeat of a chomping mode identifier");else if((f=hLe(d))>=0)f===0?Zt(t,"bad explicit indentation width of a block scalar; it cannot be less than one"):s?Zt(t,"repeat of an indentation width identifier"):(l=e+f-1,s=!0);else break;if(Yd(d)){do d=t.input.charCodeAt(++t.position);while(Yd(d));if(d===35)do d=t.input.charCodeAt(++t.position);while(!bc(d)&&d!==0)}for(;d!==0;){for(i9(t),t.lineIndent=0,d=t.input.charCodeAt(t.position);(!s||t.lineIndentl&&(l=t.lineIndent),bc(d)){u++;continue}if(t.lineIndente)&&u!==0)Zt(t,"bad indentation of a sequence entry");else if(t.lineIndente)&&(v&&(s=t.line,l=t.lineStart,u=t.position),wm(t,e,PT,!0,i)&&(v?g=t.result:y=t.result),v||(Tm(t,d,p,m,g,y,s,l,u),m=g=y=null),Ci(t,!0,-1),b=t.input.charCodeAt(t.position)),(t.line===a||t.lineIndent>e)&&b!==0)Zt(t,"bad indentation of a mapping entry");else if(t.lineIndente?u=1:t.lineIndent===e?u=0:t.lineIndente?u=1:t.lineIndent===e?u=0:t.lineIndent tag; it should be "scalar", not "'+t.kind+'"'),d=0,p=t.implicitTypes.length;d"),t.result!==null&&g.kind!==t.kind&&Zt(t,"unacceptable node kind for !<"+t.tag+'> tag; it should be "'+g.kind+'", not "'+t.kind+'"'),g.resolve(t.result,t.tag)?(t.result=g.construct(t.result,t.tag),t.anchor!==null&&(t.anchorMap[t.anchor]=t.result)):Zt(t,"cannot resolve a node with !<"+t.tag+"> explicit tag")}return t.listener!==null&&t.listener("close",t),t.tag!==null||t.anchor!==null||f}function kLe(t){var e=t.position,r,n,i,a=!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&&(Ci(t,!0,-1),s=t.input.charCodeAt(t.position),!(t.lineIndent>0||s!==37));){for(a=!0,s=t.input.charCodeAt(++t.position),r=t.position;s!==0&&!Os(s);)s=t.input.charCodeAt(++t.position);for(n=t.input.slice(r,t.position),i=[],n.length<1&&Zt(t,"directive name must not be less than one character in length");s!==0;){for(;Yd(s);)s=t.input.charCodeAt(++t.position);if(s===35){do s=t.input.charCodeAt(++t.position);while(s!==0&&!bc(s));break}if(bc(s))break;for(r=t.position;s!==0&&!Os(s);)s=t.input.charCodeAt(++t.position);i.push(t.input.slice(r,t.position))}s!==0&&i9(t),Xh.call(GQ,n)?GQ[n](t,n,i):BT(t,'unknown document directive "'+n+'"')}if(Ci(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,Ci(t,!0,-1)):a&&Zt(t,"directives end mark is expected"),wm(t,t.lineIndent-1,PT,!1,!0),Ci(t,!0,-1),t.checkLineBreaks&&oLe.test(t.input.slice(e,t.position))&&BT(t,"non-ASCII line breaks are interpreted as content"),t.documents.push(t.result),t.position===t.lineStart&&zT(t)){t.input.charCodeAt(t.position)===46&&(t.position+=3,Ci(t,!0,-1));return}if(t.position"u"&&(r=e,e=null);var n=hZ(t,r);if(typeof e!="function")return n;for(var i=0,a=n.length;i=55296&&r<=56319&&e+1=56320&&n<=57343)?(r-55296)*1024+n-56320+65536:r}function bZ(t){var e=/^\n* /;return e.test(t)}function JLe(t,e,r,n,i,a,s,l){var u,h=0,f=null,d=!1,p=!1,m=n!==-1,g=-1,y=QLe(v2(t,0))&&ZLe(v2(t,t.length-1));if(e||s)for(u=0;u=65536?u+=2:u++){if(h=v2(t,u),!w2(h))return xm;y=y&&WQ(h,f,l),f=h}else{for(u=0;u=65536?u+=2:u++){if(h=v2(t,u),h===b2)d=!0,m&&(p=p||u-g-1>n&&t[g+1]!==" ",g=u);else if(!w2(h))return xm;y=y&&WQ(h,f,l),f=h}p=p||m&&u-g-1>n&&t[g+1]!==" "}return!d&&!p?y&&!s&&!i(t)?TZ:a===T2?xm:t9:r>9&&bZ(t)?xm:s?a===T2?xm:t9:p?kZ:wZ}function e9e(t,e,r,n,i){t.dump=(function(){if(e.length===0)return t.quotingType===T2?'""':"''";if(!t.noCompatMode&&(HLe.indexOf(e)!==-1||qLe.test(e)))return t.quotingType===T2?'"'+e+'"':"'"+e+"'";var a=t.indent*Math.max(1,r),s=t.lineWidth===-1?-1:Math.max(Math.min(t.lineWidth,40),t.lineWidth-a),l=n||t.flowLevel>-1&&r>=t.flowLevel;function u(h){return KLe(t,h)}switch(o(u,"testAmbiguity"),JLe(e,l,t.indent,s,u,t.quotingType,t.forceQuotes&&!n,i)){case TZ:return e;case t9:return"'"+e.replace(/'/g,"''")+"'";case wZ:return"|"+YQ(e,t.indent)+XQ(HQ(e,a));case kZ:return">"+YQ(e,t.indent)+XQ(HQ(t9e(e,s),a));case xm:return'"'+r9e(e)+'"';default:throw new Is("impossible error: invalid scalar style")}})()}function YQ(t,e){var r=bZ(t)?String(e):"",n=t[t.length-1]===` +`,i=n&&(t[t.length-2]===` +`||t===` +`),a=i?"+":n?"":"-";return r+a+` +`}function XQ(t){return t[t.length-1]===` +`?t.slice(0,-1):t}function t9e(t,e){for(var r=/(\n+)([^\n]*)/g,n=(function(){var h=t.indexOf(` +`);return h=h!==-1?h:t.length,r.lastIndex=h,jQ(t.slice(0,h),e)})(),i=t[0]===` +`||t[0]===" ",a,s;s=r.exec(t);){var l=s[1],u=s[2];a=u[0]===" ",n+=l+(!i&&!a&&u!==""?` +`:"")+jQ(u,e),i=a}return n}function jQ(t,e){if(t===""||t[0]===" ")return t;for(var r=/ [^ ]/g,n,i=0,a,s=0,l=0,u="";n=r.exec(t);)l=n.index,l-i>e&&(a=s>i?s:l,u+=` +`+t.slice(i,a),i=a+1),s=l;return u+=` +`,t.length-i>e&&s>i?u+=t.slice(i,s)+` +`+t.slice(s+1):u+=t.slice(i),u.slice(1)}function r9e(t){for(var e="",r=0,n,i=0;i=65536?i+=2:i++)r=v2(t,i),n=Oa[r],!n&&w2(r)?(e+=t[i],r>=65536&&(e+=t[i+1])):e+=n||YLe(r);return e}function n9e(t,e,r){var n="",i=t.tag,a,s,l;for(a=0,s=r.length;a"u"&&Nu(t,e,null,!1,!1))&&(n!==""&&(n+=","+(t.condenseFlow?"":" ")),n+=t.dump);t.tag=i,t.dump="["+n+"]"}function KQ(t,e,r,n){var i="",a=t.tag,s,l,u;for(s=0,l=r.length;s"u"&&Nu(t,e+1,null,!0,!0,!1,!0))&&((!n||i!=="")&&(i+=e9(t,e)),t.dump&&b2===t.dump.charCodeAt(0)?i+="-":i+="- ",i+=t.dump);t.tag=a,t.dump=i||"[]"}function i9e(t,e,r){var n="",i=t.tag,a=Object.keys(r),s,l,u,h,f;for(s=0,l=a.length;s1024&&(f+="? "),f+=t.dump+(t.condenseFlow?'"':"")+":"+(t.condenseFlow?"":" "),Nu(t,e,h,!1,!1)&&(f+=t.dump,n+=f));t.tag=i,t.dump="{"+n+"}"}function a9e(t,e,r,n){var i="",a=t.tag,s=Object.keys(r),l,u,h,f,d,p;if(t.sortKeys===!0)s.sort();else if(typeof t.sortKeys=="function")s.sort(t.sortKeys);else if(t.sortKeys)throw new Is("sortKeys must be a boolean or a function");for(l=0,u=s.length;l1024,d&&(t.dump&&b2===t.dump.charCodeAt(0)?p+="?":p+="? "),p+=t.dump,d&&(p+=e9(t,e)),Nu(t,e+1,f,!0,d)&&(t.dump&&b2===t.dump.charCodeAt(0)?p+=":":p+=": ",p+=t.dump,i+=p));t.tag=a,t.dump=i||"{}"}function QQ(t,e,r){var n,i,a,s,l,u;for(i=r?t.explicitTypes:t.implicitTypes,a=0,s=i.length;a tag resolver accepts not "'+u+'" style');t.dump=n}return!0}return!1}function Nu(t,e,r,n,i,a,s){t.tag=null,t.dump=r,QQ(t,r,!1)||QQ(t,r,!0);var l=dZ.call(t.dump),u=n,h;n&&(n=t.flowLevel<0||t.flowLevel>e);var f=l==="[object Object]"||l==="[object Array]",d,p;if(f&&(d=t.duplicates.indexOf(r),p=d!==-1),(t.tag!==null&&t.tag!=="?"||p||t.indent!==2&&e>0)&&(i=!1),p&&t.usedDuplicates[d])t.dump="*ref_"+d;else{if(f&&p&&!t.usedDuplicates[d]&&(t.usedDuplicates[d]=!0),l==="[object Object]")n&&Object.keys(t.dump).length!==0?(a9e(t,e,t.dump,i),p&&(t.dump="&ref_"+d+t.dump)):(i9e(t,e,t.dump),p&&(t.dump="&ref_"+d+" "+t.dump));else if(l==="[object Array]")n&&t.dump.length!==0?(t.noArrayIndent&&!s&&e>0?KQ(t,e-1,t.dump,i):KQ(t,e,t.dump,i),p&&(t.dump="&ref_"+d+t.dump)):(n9e(t,e,t.dump),p&&(t.dump="&ref_"+d+" "+t.dump));else if(l==="[object String]")t.tag!=="?"&&e9e(t,t.dump,e,a,u);else{if(l==="[object Undefined]")return!1;if(t.skipInvalid)return!1;throw new Is("unacceptable kind of an object to dump "+l)}t.tag!==null&&t.tag!=="?"&&(h=encodeURI(t.tag[0]==="!"?t.tag.slice(1):t.tag).replace(/!/g,"%21"),t.tag[0]==="!"?h="!"+h:h.slice(0,18)==="tag:yaml.org,2002:"?h="!!"+h.slice(18):h="!<"+h+">",t.dump=h+" "+t.dump)}return!0}function s9e(t,e){var r=[],n=[],i,a;for(r9(t,r,n),i=0,a=n.length;i{"use strict";o(ZQ,"isNothing");o(U_e,"isObject");o(H_e,"toArray");o(q_e,"extend");o(W_e,"repeat");o(Y_e,"isNegativeZero");X_e=ZQ,j_e=U_e,K_e=H_e,Q_e=W_e,Z_e=Y_e,J_e=q_e,Pi={isNothing:X_e,isObject:j_e,toArray:K_e,repeat:Q_e,isNegativeZero:Z_e,extend:J_e};o(JQ,"formatError");o(x2,"YAMLException$1");x2.prototype=Object.create(Error.prototype);x2.prototype.constructor=x2;x2.prototype.toString=o(function(e){return this.name+": "+JQ(this,e)},"toString");Is=x2;o(jL,"getLine");o(KL,"padStart");o(eDe,"makeSnippet");tDe=eDe,rDe=["kind","multi","resolve","construct","instanceOf","predicate","represent","representName","defaultStyle","styleAliases"],nDe=["scalar","sequence","mapping"];o(iDe,"compileStyleAliases");o(aDe,"Type$1");Ia=aDe;o(BQ,"compileList");o(sDe,"compileMap");o(ZL,"Schema$1");ZL.prototype.extend=o(function(e){var r=[],n=[];if(e instanceof Ia)n.push(e);else if(Array.isArray(e))n=n.concat(e);else if(e&&(Array.isArray(e.implicit)||Array.isArray(e.explicit)))e.implicit&&(r=r.concat(e.implicit)),e.explicit&&(n=n.concat(e.explicit));else throw new Is("Schema.extend argument should be a Type, [ Type ], or a schema definition ({ implicit: [...], explicit: [...] })");r.forEach(function(a){if(!(a instanceof Ia))throw new Is("Specified list of YAML types (or a single Type object) contains a non-Type object.");if(a.loadKind&&a.loadKind!=="scalar")throw new Is("There is a non-scalar type in the implicit list of a schema. Implicit resolving of such types is not supported.");if(a.multi)throw new Is("There is a multi type in the implicit list of a schema. Multi tags can only be listed as explicit.")}),n.forEach(function(a){if(!(a instanceof Ia))throw new Is("Specified list of YAML types (or a single Type object) contains a non-Type object.")});var i=Object.create(ZL.prototype);return i.implicit=(this.implicit||[]).concat(r),i.explicit=(this.explicit||[]).concat(n),i.compiledImplicit=BQ(i,"implicit"),i.compiledExplicit=BQ(i,"explicit"),i.compiledTypeMap=sDe(i.compiledImplicit,i.compiledExplicit),i},"extend");oDe=ZL,lDe=new Ia("tag:yaml.org,2002:str",{kind:"scalar",construct:o(function(t){return t!==null?t:""},"construct")}),cDe=new Ia("tag:yaml.org,2002:seq",{kind:"sequence",construct:o(function(t){return t!==null?t:[]},"construct")}),uDe=new Ia("tag:yaml.org,2002:map",{kind:"mapping",construct:o(function(t){return t!==null?t:{}},"construct")}),hDe=new oDe({explicit:[lDe,cDe,uDe]});o(fDe,"resolveYamlNull");o(dDe,"constructYamlNull");o(pDe,"isNull");mDe=new Ia("tag:yaml.org,2002:null",{kind:"scalar",resolve:fDe,construct:dDe,predicate:pDe,represent:{canonical:o(function(){return"~"},"canonical"),lowercase:o(function(){return"null"},"lowercase"),uppercase:o(function(){return"NULL"},"uppercase"),camelcase:o(function(){return"Null"},"camelcase"),empty:o(function(){return""},"empty")},defaultStyle:"lowercase"});o(gDe,"resolveYamlBoolean");o(yDe,"constructYamlBoolean");o(vDe,"isBoolean");xDe=new Ia("tag:yaml.org,2002:bool",{kind:"scalar",resolve:gDe,construct:yDe,predicate:vDe,represent:{lowercase:o(function(t){return t?"true":"false"},"lowercase"),uppercase:o(function(t){return t?"TRUE":"FALSE"},"uppercase"),camelcase:o(function(t){return t?"True":"False"},"camelcase")},defaultStyle:"lowercase"});o(bDe,"isHexCode");o(TDe,"isOctCode");o(wDe,"isDecCode");o(kDe,"resolveYamlInteger");o(EDe,"constructYamlInteger");o(SDe,"isInteger");CDe=new Ia("tag:yaml.org,2002:int",{kind:"scalar",resolve:kDe,construct:EDe,predicate:SDe,represent:{binary:o(function(t){return t>=0?"0b"+t.toString(2):"-0b"+t.toString(2).slice(1)},"binary"),octal:o(function(t){return t>=0?"0o"+t.toString(8):"-0o"+t.toString(8).slice(1)},"octal"),decimal:o(function(t){return t.toString(10)},"decimal"),hexadecimal:o(function(t){return t>=0?"0x"+t.toString(16).toUpperCase():"-0x"+t.toString(16).toUpperCase().slice(1)},"hexadecimal")},defaultStyle:"decimal",styleAliases:{binary:[2,"bin"],octal:[8,"oct"],decimal:[10,"dec"],hexadecimal:[16,"hex"]}}),ADe=new RegExp("^(?:[-+]?(?:[0-9][0-9_]*)(?:\\.[0-9_]*)?(?:[eE][-+]?[0-9]+)?|\\.[0-9_]+(?:[eE][-+]?[0-9]+)?|[-+]?\\.(?:inf|Inf|INF)|\\.(?:nan|NaN|NAN))$");o(_De,"resolveYamlFloat");o(DDe,"constructYamlFloat");LDe=/^[-+]?[0-9]+e/;o(RDe,"representYamlFloat");o(NDe,"isFloat");MDe=new Ia("tag:yaml.org,2002:float",{kind:"scalar",resolve:_De,construct:DDe,predicate:NDe,represent:RDe,defaultStyle:"lowercase"}),eZ=hDe.extend({implicit:[mDe,xDe,CDe,MDe]}),IDe=eZ,tZ=new RegExp("^([0-9][0-9][0-9][0-9])-([0-9][0-9])-([0-9][0-9])$"),rZ=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]))?))?$");o(ODe,"resolveYamlTimestamp");o(PDe,"constructYamlTimestamp");o(BDe,"representYamlTimestamp");FDe=new Ia("tag:yaml.org,2002:timestamp",{kind:"scalar",resolve:ODe,construct:PDe,instanceOf:Date,represent:BDe});o($De,"resolveYamlMerge");zDe=new Ia("tag:yaml.org,2002:merge",{kind:"scalar",resolve:$De}),n9=`ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/= +\r`;o(GDe,"resolveYamlBinary");o(VDe,"constructYamlBinary");o(UDe,"representYamlBinary");o(HDe,"isBinary");qDe=new Ia("tag:yaml.org,2002:binary",{kind:"scalar",resolve:GDe,construct:VDe,predicate:HDe,represent:UDe}),WDe=Object.prototype.hasOwnProperty,YDe=Object.prototype.toString;o(XDe,"resolveYamlOmap");o(jDe,"constructYamlOmap");KDe=new Ia("tag:yaml.org,2002:omap",{kind:"sequence",resolve:XDe,construct:jDe}),QDe=Object.prototype.toString;o(ZDe,"resolveYamlPairs");o(JDe,"constructYamlPairs");eLe=new Ia("tag:yaml.org,2002:pairs",{kind:"sequence",resolve:ZDe,construct:JDe}),tLe=Object.prototype.hasOwnProperty;o(rLe,"resolveYamlSet");o(nLe,"constructYamlSet");iLe=new Ia("tag:yaml.org,2002:set",{kind:"mapping",resolve:rLe,construct:nLe}),nZ=IDe.extend({implicit:[FDe,zDe],explicit:[qDe,KDe,eLe,iLe]}),Xh=Object.prototype.hasOwnProperty,OT=1,iZ=2,aZ=3,PT=4,QL=1,aLe=2,FQ=3,sLe=/[\x00-\x08\x0B\x0C\x0E-\x1F\x7F-\x84\x86-\x9F\uFFFE\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/,oLe=/[\x85\u2028\u2029]/,lLe=/[,\[\]\{\}]/,sZ=/^(?:!|!!|![a-z\-]+!)$/i,oZ=/^(?:!|[^,\[\]\{\}])(?:%[0-9a-f]{2}|[0-9a-z\-#;\/\?:@&=\+\$,_\.!~\*'\(\)\[\]])*$/i;o($Q,"_class");o(bc,"is_EOL");o(Yd,"is_WHITE_SPACE");o(Os,"is_WS_OR_EOL");o(bm,"is_FLOW_INDICATOR");o(cLe,"fromHexCode");o(uLe,"escapedHexLen");o(hLe,"fromDecimalCode");o(zQ,"simpleEscapeSequence");o(fLe,"charFromCodepoint");lZ=new Array(256),cZ=new Array(256);for(Wd=0;Wd<256;Wd++)lZ[Wd]=zQ(Wd)?1:0,cZ[Wd]=zQ(Wd);o(dLe,"State$1");o(uZ,"generateError");o(Zt,"throwError");o(BT,"throwWarning");GQ={YAML:o(function(e,r,n){var i,a,s;e.version!==null&&Zt(e,"duplication of %YAML directive"),n.length!==1&&Zt(e,"YAML directive accepts exactly one argument"),i=/^([0-9]+)\.([0-9]+)$/.exec(n[0]),i===null&&Zt(e,"ill-formed argument of the YAML directive"),a=parseInt(i[1],10),s=parseInt(i[2],10),a!==1&&Zt(e,"unacceptable YAML version of the document"),e.version=n[0],e.checkLineBreaks=s<2,s!==1&&s!==2&&BT(e,"unsupported YAML version of the document")},"handleYamlDirective"),TAG:o(function(e,r,n){var i,a;n.length!==2&&Zt(e,"TAG directive accepts exactly two arguments"),i=n[0],a=n[1],sZ.test(i)||Zt(e,"ill-formed tag handle (first argument) of the TAG directive"),Xh.call(e.tagMap,i)&&Zt(e,'there is a previously declared suffix for "'+i+'" tag handle'),oZ.test(a)||Zt(e,"ill-formed tag prefix (second argument) of the TAG directive");try{a=decodeURIComponent(a)}catch{Zt(e,"tag prefix is malformed: "+a)}e.tagMap[i]=a},"handleTagDirective")};o(Yh,"captureSegment");o(VQ,"mergeMappings");o(Tm,"storeMappingPair");o(i9,"readLineBreak");o(Ci,"skipSeparationSpace");o(zT,"testDocumentSeparator");o(a9,"writeFoldedLines");o(pLe,"readPlainScalar");o(mLe,"readSingleQuotedScalar");o(gLe,"readDoubleQuotedScalar");o(yLe,"readFlowCollection");o(vLe,"readBlockScalar");o(UQ,"readBlockSequence");o(xLe,"readBlockMapping");o(bLe,"readTagProperty");o(TLe,"readAnchorProperty");o(wLe,"readAlias");o(wm,"composeNode");o(kLe,"readDocument");o(hZ,"loadDocuments");o(ELe,"loadAll$1");o(SLe,"load$1");CLe=ELe,ALe=SLe,fZ={loadAll:CLe,load:ALe},dZ=Object.prototype.toString,pZ=Object.prototype.hasOwnProperty,s9=65279,_Le=9,b2=10,DLe=13,LLe=32,RLe=33,NLe=34,JL=35,MLe=37,ILe=38,OLe=39,PLe=42,mZ=44,BLe=45,FT=58,FLe=61,$Le=62,zLe=63,GLe=64,gZ=91,yZ=93,VLe=96,vZ=123,ULe=124,xZ=125,Oa={};Oa[0]="\\0";Oa[7]="\\a";Oa[8]="\\b";Oa[9]="\\t";Oa[10]="\\n";Oa[11]="\\v";Oa[12]="\\f";Oa[13]="\\r";Oa[27]="\\e";Oa[34]='\\"';Oa[92]="\\\\";Oa[133]="\\N";Oa[160]="\\_";Oa[8232]="\\L";Oa[8233]="\\P";HLe=["y","Y","yes","Yes","YES","on","On","ON","n","N","no","No","NO","off","Off","OFF"],qLe=/^[-+]?[0-9_]+(?::[0-9_]+)+(?:\.[0-9_]*)?$/;o(WLe,"compileStyleMap");o(YLe,"encodeHex");XLe=1,T2=2;o(jLe,"State");o(HQ,"indentString");o(e9,"generateNextLine");o(KLe,"testImplicitResolving");o($T,"isWhitespace");o(w2,"isPrintable");o(qQ,"isNsCharOrWhitespace");o(WQ,"isPlainSafe");o(QLe,"isPlainSafeFirst");o(ZLe,"isPlainSafeLast");o(v2,"codePointAt");o(bZ,"needIndentIndicator");TZ=1,t9=2,wZ=3,kZ=4,xm=5;o(JLe,"chooseScalarStyle");o(e9e,"writeScalar");o(YQ,"blockHeader");o(XQ,"dropEndingNewline");o(t9e,"foldString");o(jQ,"foldLine");o(r9e,"escapeString");o(n9e,"writeFlowSequence");o(KQ,"writeBlockSequence");o(i9e,"writeFlowMapping");o(a9e,"writeBlockMapping");o(QQ,"detectType");o(Nu,"writeNode");o(s9e,"getDuplicateReferences");o(r9,"inspectNode");o(o9e,"dump$1");l9e=o9e,c9e={dump:l9e};o(o9,"renamed");jh=eZ,Kh=fZ.load,N6t=fZ.loadAll,M6t=c9e.dump,I6t=o9("safeLoad","load"),O6t=o9("safeLoadAll","loadAll"),P6t=o9("safeDump","dump")});function h9(){return{async:!1,breaks:!1,extensions:null,gfm:!0,hooks:null,pedantic:!1,renderer:null,silent:!1,tokenizer:null,walkTokens:null}}function DZ(t){jd=t}function on(t,e=""){let r=typeof t=="string"?t:t.source,n={replace:o((i,a)=>{let s=typeof a=="string"?a:a.source;return s=s.replace(as.caret,"$1"),r=r.replace(i,s),n},"replace"),getRegex:o(()=>new RegExp(r,e),"getRegex")};return n}function Tc(t,e){if(e){if(as.escapeTest.test(t))return t.replace(as.escapeReplace,SZ)}else if(as.escapeTestNoEncode.test(t))return t.replace(as.escapeReplaceNoEncode,SZ);return t}function CZ(t){try{t=encodeURI(t).replace(as.percentDecode,"%")}catch{return null}return t}function AZ(t,e){let r=t.replace(as.findPipe,(a,s,l)=>{let u=!1,h=s;for(;--h>=0&&l[h]==="\\";)u=!u;return u?"|":" |"}),n=r.split(as.splitPipe),i=0;if(n[0].trim()||n.shift(),n.length>0&&!n.at(-1)?.trim()&&n.pop(),e)if(n.length>e)n.splice(e);else for(;n.length0?-2:-1}function _Z(t,e,r,n,i){let a=e.href,s=e.title||null,l=t[1].replace(i.other.outputLinkReplace,"$1");n.state.inLink=!0;let u={type:t[0].charAt(0)==="!"?"image":"link",raw:r,href:a,title:s,text:l,tokens:n.inlineTokens(l)};return n.state.inLink=!1,u}function H9e(t,e,r){let n=t.match(r.other.indentCodeCompensation);if(n===null)return e;let i=n[1];return e.split(` +`).map(a=>{let s=a.match(r.other.beginningSpace);if(s===null)return a;let[l]=s;return l.length>=i.length?a.slice(i.length):a}).join(` +`)}function nn(t,e){return Xd.parse(t,e)}var jd,A2,as,u9e,h9e,f9e,_2,d9e,f9,LZ,RZ,p9e,d9,m9e,p9,g9e,y9e,WT,m9,v9e,NZ,x9e,g9,EZ,b9e,T9e,w9e,k9e,MZ,E9e,YT,y9,IZ,S9e,OZ,C9e,A9e,_9e,PZ,D9e,L9e,BZ,R9e,N9e,M9e,I9e,O9e,P9e,B9e,UT,F9e,FZ,$Z,$9e,v9,z9e,l9,G9e,VT,E2,V9e,SZ,HT,Mu,qT,x9,Iu,C2,q9e,Xd,F6t,$6t,z6t,G6t,V6t,U6t,H6t,zZ=M(()=>{"use strict";o(h9,"L");jd=h9();o(DZ,"G");A2={exec:o(()=>null,"exec")};o(on,"h");as={codeRemoveIndent:/^(?: {1,4}| {0,3}\t)/gm,outputLinkReplace:/\\([\[\]])/g,indentCodeCompensation:/^(\s+)(?:```)/,beginningSpace:/^\s+/,endingHash:/#$/,startingSpaceChar:/^ /,endingSpaceChar:/ $/,nonSpaceChar:/[^ ]/,newLineCharGlobal:/\n/g,tabCharGlobal:/\t/g,multipleSpaceGlobal:/\s+/g,blankLine:/^[ \t]*$/,doubleBlankLine:/\n[ \t]*\n[ \t]*$/,blockquoteStart:/^ {0,3}>/,blockquoteSetextReplace:/\n {0,3}((?:=+|-+) *)(?=\n|$)/g,blockquoteSetextReplace2:/^ {0,3}>[ \t]?/gm,listReplaceTabs:/^\t+/,listReplaceNesting:/^ {1,4}(?=( {4})*[^ ])/g,listIsTask:/^\[[ xX]\] /,listReplaceTask:/^\[[ xX]\] +/,anyLine:/\n.*\n/,hrefBrackets:/^<(.*)>$/,tableDelimiter:/[:|]/,tableAlignChars:/^\||\| *$/g,tableRowBlankLine:/\n[ \t]*$/,tableAlignRight:/^ *-+: *$/,tableAlignCenter:/^ *:-+: *$/,tableAlignLeft:/^ *:-+ *$/,startATag:/^
/i,startPreScriptTag:/^<(pre|code|kbd|script)(\s|>)/i,endPreScriptTag:/^<\/(pre|code|kbd|script)(\s|>)/i,startAngleBracket:/^$/,pedanticHrefTitle:/^([^'"]*[^\s])\s+(['"])(.*)\2/,unicodeAlphaNumeric:/[\p{L}\p{N}]/u,escapeTest:/[&<>"']/,escapeReplace:/[&<>"']/g,escapeTestNoEncode:/[<>"']|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/,escapeReplaceNoEncode:/[<>"']|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/g,unescapeTest:/&(#(?:\d+)|(?:#x[0-9A-Fa-f]+)|(?:\w+));?/ig,caret:/(^|[^\[])\^/g,percentDecode:/%25/g,findPipe:/\|/g,splitPipe:/ \|/,slashPipe:/\\\|/g,carriageReturn:/\r\n|\r/g,spaceLine:/^ +$/gm,notSpaceStart:/^\S*/,endingNewline:/\n$/,listItemRegex:o(t=>new RegExp(`^( {0,3}${t})((?:[ ][^\\n]*)?(?:\\n|$))`),"listItemRegex"),nextBulletRegex:o(t=>new RegExp(`^ {0,${Math.min(3,t-1)}}(?:[*+-]|\\d{1,9}[.)])((?:[ ][^\\n]*)?(?:\\n|$))`),"nextBulletRegex"),hrRegex:o(t=>new RegExp(`^ {0,${Math.min(3,t-1)}}((?:- *){3,}|(?:_ *){3,}|(?:\\* *){3,})(?:\\n+|$)`),"hrRegex"),fencesBeginRegex:o(t=>new RegExp(`^ {0,${Math.min(3,t-1)}}(?:\`\`\`|~~~)`),"fencesBeginRegex"),headingBeginRegex:o(t=>new RegExp(`^ {0,${Math.min(3,t-1)}}#`),"headingBeginRegex"),htmlBeginRegex:o(t=>new RegExp(`^ {0,${Math.min(3,t-1)}}<(?:[a-z].*>|!--)`,"i"),"htmlBeginRegex")},u9e=/^(?:[ \t]*(?:\n|$))+/,h9e=/^((?: {4}| {0,3}\t)[^\n]+(?:\n(?:[ \t]*(?:\n|$))*)?)+/,f9e=/^ {0,3}(`{3,}(?=[^`\n]*(?:\n|$))|~{3,})([^\n]*)(?:\n|$)(?:|([\s\S]*?)(?:\n|$))(?: {0,3}\1[~`]* *(?=\n|$)|$)/,_2=/^ {0,3}((?:-[\t ]*){3,}|(?:_[ \t]*){3,}|(?:\*[ \t]*){3,})(?:\n+|$)/,d9e=/^ {0,3}(#{1,6})(?=\s|$)(.*)(?:\n+|$)/,f9=/(?:[*+-]|\d{1,9}[.)])/,LZ=/^(?!bull |blockCode|fences|blockquote|heading|html|table)((?:.|\n(?!\s*?\n|bull |blockCode|fences|blockquote|heading|html|table))+?)\n {0,3}(=+|-+) *(?:\n+|$)/,RZ=on(LZ).replace(/bull/g,f9).replace(/blockCode/g,/(?: {4}| {0,3}\t)/).replace(/fences/g,/ {0,3}(?:`{3,}|~{3,})/).replace(/blockquote/g,/ {0,3}>/).replace(/heading/g,/ {0,3}#{1,6}/).replace(/html/g,/ {0,3}<[^\n>]+>\n/).replace(/\|table/g,"").getRegex(),p9e=on(LZ).replace(/bull/g,f9).replace(/blockCode/g,/(?: {4}| {0,3}\t)/).replace(/fences/g,/ {0,3}(?:`{3,}|~{3,})/).replace(/blockquote/g,/ {0,3}>/).replace(/heading/g,/ {0,3}#{1,6}/).replace(/html/g,/ {0,3}<[^\n>]+>\n/).replace(/table/g,/ {0,3}\|?(?:[:\- ]*\|)+[\:\- ]*\n/).getRegex(),d9=/^([^\n]+(?:\n(?!hr|heading|lheading|blockquote|fences|list|html|table| +\n)[^\n]+)*)/,m9e=/^[^\n]+/,p9=/(?!\s*\])(?:\\[\s\S]|[^\[\]\\])+/,g9e=on(/^ {0,3}\[(label)\]: *(?:\n[ \t]*)?([^<\s][^\s]*|<.*?>)(?:(?: +(?:\n[ \t]*)?| *\n[ \t]*)(title))? *(?:\n+|$)/).replace("label",p9).replace("title",/(?:"(?:\\"?|[^"\\])*"|'[^'\n]*(?:\n[^'\n]+)*\n?'|\([^()]*\))/).getRegex(),y9e=on(/^( {0,3}bull)([ \t][^\n]+?)?(?:\n|$)/).replace(/bull/g,f9).getRegex(),WT="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|search|section|summary|table|tbody|td|tfoot|th|thead|title|tr|track|ul",m9=/|$))/,v9e=on("^ {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|$))","i").replace("comment",m9).replace("tag",WT).replace("attribute",/ +[a-zA-Z:_][\w.:-]*(?: *= *"[^"\n]*"| *= *'[^'\n]*'| *= *[^\s"'=<>`]+)?/).getRegex(),NZ=on(d9).replace("hr",_2).replace("heading"," {0,3}#{1,6}(?:\\s|$)").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",WT).getRegex(),x9e=on(/^( {0,3}> ?(paragraph|[^\n]*)(?:\n|$))+/).replace("paragraph",NZ).getRegex(),g9={blockquote:x9e,code:h9e,def:g9e,fences:f9e,heading:d9e,hr:_2,html:v9e,lheading:RZ,list:y9e,newline:u9e,paragraph:NZ,table:A2,text:m9e},EZ=on("^ *([^\\n ].*)\\n {0,3}((?:\\| *)?:?-+:? *(?:\\| *:?-+:? *)*(?:\\| *)?)(?:\\n((?:(?! *\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\n|$))*)\\n*|$)").replace("hr",_2).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("blockquote"," {0,3}>").replace("code","(?: {4}| {0,3} )[^\\n]").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html",")|<(?:script|pre|style|textarea|!--)").replace("tag",WT).getRegex(),b9e={...g9,lheading:p9e,table:EZ,paragraph:on(d9).replace("hr",_2).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("|lheading","").replace("table",EZ).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",WT).getRegex()},T9e={...g9,html:on(`^ *(?:comment *(?:\\n|\\s*$)|<(tag)[\\s\\S]+? *(?:\\n{2,}|\\s*$)|\\s]*)*?/?> *(?:\\n{2,}|\\s*$))`).replace("comment",m9).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:A2,lheading:/^(.+?)\n {0,3}(=+|-+) *(?:\n+|$)/,paragraph:on(d9).replace("hr",_2).replace("heading",` *#{1,6} *[^ +]`).replace("lheading",RZ).replace("|table","").replace("blockquote"," {0,3}>").replace("|fences","").replace("|list","").replace("|html","").replace("|tag","").getRegex()},w9e=/^\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/,k9e=/^(`+)([^`]|[^`][\s\S]*?[^`])\1(?!`)/,MZ=/^( {2,}|\\)\n(?!\s*$)/,E9e=/^(`+|[^`])(?:(?= {2,}\n)|[\s\S]*?(?:(?=[\\]*?>/g,PZ=/^(?:\*+(?:((?!\*)punct)|[^\s*]))|^_+(?:((?!_)punct)|([^\s_]))/,D9e=on(PZ,"u").replace(/punct/g,YT).getRegex(),L9e=on(PZ,"u").replace(/punct/g,OZ).getRegex(),BZ="^[^_*]*?__[^_*]*?\\*[^_*]*?(?=__)|[^*]+(?=[^*])|(?!\\*)punct(\\*+)(?=[\\s]|$)|notPunctSpace(\\*+)(?!\\*)(?=punctSpace|$)|(?!\\*)punctSpace(\\*+)(?=notPunctSpace)|[\\s](\\*+)(?!\\*)(?=punct)|(?!\\*)punct(\\*+)(?!\\*)(?=punct)|notPunctSpace(\\*+)(?=notPunctSpace)",R9e=on(BZ,"gu").replace(/notPunctSpace/g,IZ).replace(/punctSpace/g,y9).replace(/punct/g,YT).getRegex(),N9e=on(BZ,"gu").replace(/notPunctSpace/g,A9e).replace(/punctSpace/g,C9e).replace(/punct/g,OZ).getRegex(),M9e=on("^[^_*]*?\\*\\*[^_*]*?_[^_*]*?(?=\\*\\*)|[^_]+(?=[^_])|(?!_)punct(_+)(?=[\\s]|$)|notPunctSpace(_+)(?!_)(?=punctSpace|$)|(?!_)punctSpace(_+)(?=notPunctSpace)|[\\s](_+)(?!_)(?=punct)|(?!_)punct(_+)(?!_)(?=punct)","gu").replace(/notPunctSpace/g,IZ).replace(/punctSpace/g,y9).replace(/punct/g,YT).getRegex(),I9e=on(/\\(punct)/,"gu").replace(/punct/g,YT).getRegex(),O9e=on(/^<(scheme:[^\s\x00-\x1f<>]*|email)>/).replace("scheme",/[a-zA-Z][a-zA-Z0-9+.-]{1,31}/).replace("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])?)+(?![-_])/).getRegex(),P9e=on(m9).replace("(?:-->|$)","-->").getRegex(),B9e=on("^comment|^|^<[a-zA-Z][\\w-]*(?:attribute)*?\\s*/?>|^<\\?[\\s\\S]*?\\?>|^|^").replace("comment",P9e).replace("attribute",/\s+[a-zA-Z:_][\w.:-]*(?:\s*=\s*"[^"]*"|\s*=\s*'[^']*'|\s*=\s*[^\s"'=<>`]+)?/).getRegex(),UT=/(?:\[(?:\\[\s\S]|[^\[\]\\])*\]|\\[\s\S]|`[^`]*`|[^\[\]\\`])*?/,F9e=on(/^!?\[(label)\]\(\s*(href)(?:(?:[ \t]*(?:\n[ \t]*)?)(title))?\s*\)/).replace("label",UT).replace("href",/<(?:\\.|[^\n<>\\])+>|[^ \t\n\x00-\x1f]*/).replace("title",/"(?:\\"?|[^"\\])*"|'(?:\\'?|[^'\\])*'|\((?:\\\)?|[^)\\])*\)/).getRegex(),FZ=on(/^!?\[(label)\]\[(ref)\]/).replace("label",UT).replace("ref",p9).getRegex(),$Z=on(/^!?\[(ref)\](?:\[\])?/).replace("ref",p9).getRegex(),$9e=on("reflink|nolink(?!\\()","g").replace("reflink",FZ).replace("nolink",$Z).getRegex(),v9={_backpedal:A2,anyPunctuation:I9e,autolink:O9e,blockSkip:_9e,br:MZ,code:k9e,del:A2,emStrongLDelim:D9e,emStrongRDelimAst:R9e,emStrongRDelimUnd:M9e,escape:w9e,link:F9e,nolink:$Z,punctuation:S9e,reflink:FZ,reflinkSearch:$9e,tag:B9e,text:E9e,url:A2},z9e={...v9,link:on(/^!?\[(label)\]\((.*?)\)/).replace("label",UT).getRegex(),reflink:on(/^!?\[(label)\]\s*\[([^\]]*)\]/).replace("label",UT).getRegex()},l9={...v9,emStrongRDelimAst:N9e,emStrongLDelim:L9e,url:on(/^((?:ftp|https?):\/\/|www\.)(?:[a-zA-Z0-9\-]+\.?)+[^\s<]*|^email/,"i").replace("email",/[A-Za-z0-9._+-]+(@)[a-zA-Z0-9-_]+(?:\.[a-zA-Z0-9-_]*[a-zA-Z0-9])+(?![-_])/).getRegex(),_backpedal:/(?:[^?!.,:;*_'"~()&]+|\([^)]*\)|&(?![a-zA-Z0-9]+;$)|[?!.,:;*_'"~)]+(?!$))+/,del:/^(~~?)(?=[^\s~])((?:\\[\s\S]|[^\\])*?(?:\\[\s\S]|[^\s~\\]))\1(?=[^~]|$)/,text:/^([`~]+|[^`~])(?:(?= {2,}\n)|(?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@)|[\s\S]*?(?:(?=[\\":">",'"':""","'":"'"},SZ=o(t=>V9e[t],"ke");o(Tc,"w");o(CZ,"J");o(AZ,"V");o(S2,"z");o(U9e,"ge");o(_Z,"fe");o(H9e,"Je");HT=class{static{o(this,"y")}options;rules;lexer;constructor(t){this.options=t||jd}space(t){let e=this.rules.block.newline.exec(t);if(e&&e[0].length>0)return{type:"space",raw:e[0]}}code(t){let e=this.rules.block.code.exec(t);if(e){let r=e[0].replace(this.rules.other.codeRemoveIndent,"");return{type:"code",raw:e[0],codeBlockStyle:"indented",text:this.options.pedantic?r:S2(r,` +`)}}}fences(t){let e=this.rules.block.fences.exec(t);if(e){let r=e[0],n=H9e(r,e[3]||"",this.rules);return{type:"code",raw:r,lang:e[2]?e[2].trim().replace(this.rules.inline.anyPunctuation,"$1"):e[2],text:n}}}heading(t){let e=this.rules.block.heading.exec(t);if(e){let r=e[2].trim();if(this.rules.other.endingHash.test(r)){let n=S2(r,"#");(this.options.pedantic||!n||this.rules.other.endingSpaceChar.test(n))&&(r=n.trim())}return{type:"heading",raw:e[0],depth:e[1].length,text:r,tokens:this.lexer.inline(r)}}}hr(t){let e=this.rules.block.hr.exec(t);if(e)return{type:"hr",raw:S2(e[0],` +`)}}blockquote(t){let e=this.rules.block.blockquote.exec(t);if(e){let r=S2(e[0],` +`).split(` +`),n="",i="",a=[];for(;r.length>0;){let s=!1,l=[],u;for(u=0;u1,i={type:"list",raw:"",ordered:n,start:n?+r.slice(0,-1):"",loose:!1,items:[]};r=n?`\\d{1,9}\\${r.slice(-1)}`:`\\${r}`,this.options.pedantic&&(r=n?r:"[*+-]");let a=this.rules.other.listItemRegex(r),s=!1;for(;t;){let u=!1,h="",f="";if(!(e=a.exec(t))||this.rules.block.hr.test(t))break;h=e[0],t=t.substring(h.length);let d=e[2].split(` +`,1)[0].replace(this.rules.other.listReplaceTabs,x=>" ".repeat(3*x.length)),p=t.split(` +`,1)[0],m=!d.trim(),g=0;if(this.options.pedantic?(g=2,f=d.trimStart()):m?g=e[1].length+1:(g=e[2].search(this.rules.other.nonSpaceChar),g=g>4?1:g,f=d.slice(g),g+=e[1].length),m&&this.rules.other.blankLine.test(p)&&(h+=p+` +`,t=t.substring(p.length+1),u=!0),!u){let x=this.rules.other.nextBulletRegex(g),b=this.rules.other.hrRegex(g),T=this.rules.other.fencesBeginRegex(g),S=this.rules.other.headingBeginRegex(g),w=this.rules.other.htmlBeginRegex(g);for(;t;){let k=t.split(` +`,1)[0],C;if(p=k,this.options.pedantic?(p=p.replace(this.rules.other.listReplaceNesting," "),C=p):C=p.replace(this.rules.other.tabCharGlobal," "),T.test(p)||S.test(p)||w.test(p)||x.test(p)||b.test(p))break;if(C.search(this.rules.other.nonSpaceChar)>=g||!p.trim())f+=` +`+C.slice(g);else{if(m||d.replace(this.rules.other.tabCharGlobal," ").search(this.rules.other.nonSpaceChar)>=4||T.test(d)||S.test(d)||b.test(d))break;f+=` +`+p}!m&&!p.trim()&&(m=!0),h+=k+` +`,t=t.substring(k.length+1),d=C.slice(g)}}i.loose||(s?i.loose=!0:this.rules.other.doubleBlankLine.test(h)&&(s=!0));let y=null,v;this.options.gfm&&(y=this.rules.other.listIsTask.exec(f),y&&(v=y[0]!=="[ ] ",f=f.replace(this.rules.other.listReplaceTask,""))),i.items.push({type:"list_item",raw:h,task:!!y,checked:v,loose:!1,text:f,tokens:[]}),i.raw+=h}let l=i.items.at(-1);if(l)l.raw=l.raw.trimEnd(),l.text=l.text.trimEnd();else return;i.raw=i.raw.trimEnd();for(let u=0;ud.type==="space"),f=h.length>0&&h.some(d=>this.rules.other.anyLine.test(d.raw));i.loose=f}if(i.loose)for(let u=0;u({text:l,tokens:this.lexer.inline(l),header:!1,align:a.align[u]})));return a}}lheading(t){let e=this.rules.block.lheading.exec(t);if(e)return{type:"heading",raw:e[0],depth:e[2].charAt(0)==="="?1:2,text:e[1],tokens:this.lexer.inline(e[1])}}paragraph(t){let e=this.rules.block.paragraph.exec(t);if(e){let r=e[1].charAt(e[1].length-1)===` +`?e[1].slice(0,-1):e[1];return{type:"paragraph",raw:e[0],text:r,tokens:this.lexer.inline(r)}}}text(t){let e=this.rules.block.text.exec(t);if(e)return{type:"text",raw:e[0],text:e[0],tokens:this.lexer.inline(e[0])}}escape(t){let e=this.rules.inline.escape.exec(t);if(e)return{type:"escape",raw:e[0],text:e[1]}}tag(t){let e=this.rules.inline.tag.exec(t);if(e)return!this.lexer.state.inLink&&this.rules.other.startATag.test(e[0])?this.lexer.state.inLink=!0:this.lexer.state.inLink&&this.rules.other.endATag.test(e[0])&&(this.lexer.state.inLink=!1),!this.lexer.state.inRawBlock&&this.rules.other.startPreScriptTag.test(e[0])?this.lexer.state.inRawBlock=!0:this.lexer.state.inRawBlock&&this.rules.other.endPreScriptTag.test(e[0])&&(this.lexer.state.inRawBlock=!1),{type:"html",raw:e[0],inLink:this.lexer.state.inLink,inRawBlock:this.lexer.state.inRawBlock,block:!1,text:e[0]}}link(t){let e=this.rules.inline.link.exec(t);if(e){let r=e[2].trim();if(!this.options.pedantic&&this.rules.other.startAngleBracket.test(r)){if(!this.rules.other.endAngleBracket.test(r))return;let a=S2(r.slice(0,-1),"\\");if((r.length-a.length)%2===0)return}else{let a=U9e(e[2],"()");if(a===-2)return;if(a>-1){let s=(e[0].indexOf("!")===0?5:4)+e[1].length+a;e[2]=e[2].substring(0,a),e[0]=e[0].substring(0,s).trim(),e[3]=""}}let n=e[2],i="";if(this.options.pedantic){let a=this.rules.other.pedanticHrefTitle.exec(n);a&&(n=a[1],i=a[3])}else i=e[3]?e[3].slice(1,-1):"";return n=n.trim(),this.rules.other.startAngleBracket.test(n)&&(this.options.pedantic&&!this.rules.other.endAngleBracket.test(r)?n=n.slice(1):n=n.slice(1,-1)),_Z(e,{href:n&&n.replace(this.rules.inline.anyPunctuation,"$1"),title:i&&i.replace(this.rules.inline.anyPunctuation,"$1")},e[0],this.lexer,this.rules)}}reflink(t,e){let r;if((r=this.rules.inline.reflink.exec(t))||(r=this.rules.inline.nolink.exec(t))){let n=(r[2]||r[1]).replace(this.rules.other.multipleSpaceGlobal," "),i=e[n.toLowerCase()];if(!i){let a=r[0].charAt(0);return{type:"text",raw:a,text:a}}return _Z(r,i,r[0],this.lexer,this.rules)}}emStrong(t,e,r=""){let n=this.rules.inline.emStrongLDelim.exec(t);if(!(!n||n[3]&&r.match(this.rules.other.unicodeAlphaNumeric))&&(!(n[1]||n[2])||!r||this.rules.inline.punctuation.exec(r))){let i=[...n[0]].length-1,a,s,l=i,u=0,h=n[0][0]==="*"?this.rules.inline.emStrongRDelimAst:this.rules.inline.emStrongRDelimUnd;for(h.lastIndex=0,e=e.slice(-1*t.length+i);(n=h.exec(e))!=null;){if(a=n[1]||n[2]||n[3]||n[4]||n[5]||n[6],!a)continue;if(s=[...a].length,n[3]||n[4]){l+=s;continue}else if((n[5]||n[6])&&i%3&&!((i+s)%3)){u+=s;continue}if(l-=s,l>0)continue;s=Math.min(s,s+l+u);let f=[...n[0]][0].length,d=t.slice(0,i+n.index+f+s);if(Math.min(i,s)%2){let m=d.slice(1,-1);return{type:"em",raw:d,text:m,tokens:this.lexer.inlineTokens(m)}}let p=d.slice(2,-2);return{type:"strong",raw:d,text:p,tokens:this.lexer.inlineTokens(p)}}}}codespan(t){let e=this.rules.inline.code.exec(t);if(e){let r=e[2].replace(this.rules.other.newLineCharGlobal," "),n=this.rules.other.nonSpaceChar.test(r),i=this.rules.other.startingSpaceChar.test(r)&&this.rules.other.endingSpaceChar.test(r);return n&&i&&(r=r.substring(1,r.length-1)),{type:"codespan",raw:e[0],text:r}}}br(t){let e=this.rules.inline.br.exec(t);if(e)return{type:"br",raw:e[0]}}del(t){let e=this.rules.inline.del.exec(t);if(e)return{type:"del",raw:e[0],text:e[2],tokens:this.lexer.inlineTokens(e[2])}}autolink(t){let e=this.rules.inline.autolink.exec(t);if(e){let r,n;return e[2]==="@"?(r=e[1],n="mailto:"+r):(r=e[1],n=r),{type:"link",raw:e[0],text:r,href:n,tokens:[{type:"text",raw:r,text:r}]}}}url(t){let e;if(e=this.rules.inline.url.exec(t)){let r,n;if(e[2]==="@")r=e[0],n="mailto:"+r;else{let i;do i=e[0],e[0]=this.rules.inline._backpedal.exec(e[0])?.[0]??"";while(i!==e[0]);r=e[0],e[1]==="www."?n="http://"+e[0]:n=e[0]}return{type:"link",raw:e[0],text:r,href:n,tokens:[{type:"text",raw:r,text:r}]}}}inlineText(t){let e=this.rules.inline.text.exec(t);if(e){let r=this.lexer.state.inRawBlock;return{type:"text",raw:e[0],text:e[0],escaped:r}}}},Mu=class c9{static{o(this,"l")}tokens;options;state;tokenizer;inlineQueue;constructor(e){this.tokens=[],this.tokens.links=Object.create(null),this.options=e||jd,this.options.tokenizer=this.options.tokenizer||new HT,this.tokenizer=this.options.tokenizer,this.tokenizer.options=this.options,this.tokenizer.lexer=this,this.inlineQueue=[],this.state={inLink:!1,inRawBlock:!1,top:!0};let r={other:as,block:VT.normal,inline:E2.normal};this.options.pedantic?(r.block=VT.pedantic,r.inline=E2.pedantic):this.options.gfm&&(r.block=VT.gfm,this.options.breaks?r.inline=E2.breaks:r.inline=E2.gfm),this.tokenizer.rules=r}static get rules(){return{block:VT,inline:E2}}static lex(e,r){return new c9(r).lex(e)}static lexInline(e,r){return new c9(r).inlineTokens(e)}lex(e){e=e.replace(as.carriageReturn,` +`),this.blockTokens(e,this.tokens);for(let r=0;r(i=s.call({lexer:this},e,r))?(e=e.substring(i.raw.length),r.push(i),!0):!1))continue;if(i=this.tokenizer.space(e)){e=e.substring(i.raw.length);let s=r.at(-1);i.raw.length===1&&s!==void 0?s.raw+=` +`:r.push(i);continue}if(i=this.tokenizer.code(e)){e=e.substring(i.raw.length);let s=r.at(-1);s?.type==="paragraph"||s?.type==="text"?(s.raw+=(s.raw.endsWith(` +`)?"":` +`)+i.raw,s.text+=` +`+i.text,this.inlineQueue.at(-1).src=s.text):r.push(i);continue}if(i=this.tokenizer.fences(e)){e=e.substring(i.raw.length),r.push(i);continue}if(i=this.tokenizer.heading(e)){e=e.substring(i.raw.length),r.push(i);continue}if(i=this.tokenizer.hr(e)){e=e.substring(i.raw.length),r.push(i);continue}if(i=this.tokenizer.blockquote(e)){e=e.substring(i.raw.length),r.push(i);continue}if(i=this.tokenizer.list(e)){e=e.substring(i.raw.length),r.push(i);continue}if(i=this.tokenizer.html(e)){e=e.substring(i.raw.length),r.push(i);continue}if(i=this.tokenizer.def(e)){e=e.substring(i.raw.length);let s=r.at(-1);s?.type==="paragraph"||s?.type==="text"?(s.raw+=(s.raw.endsWith(` +`)?"":` +`)+i.raw,s.text+=` +`+i.raw,this.inlineQueue.at(-1).src=s.text):this.tokens.links[i.tag]||(this.tokens.links[i.tag]={href:i.href,title:i.title},r.push(i));continue}if(i=this.tokenizer.table(e)){e=e.substring(i.raw.length),r.push(i);continue}if(i=this.tokenizer.lheading(e)){e=e.substring(i.raw.length),r.push(i);continue}let a=e;if(this.options.extensions?.startBlock){let s=1/0,l=e.slice(1),u;this.options.extensions.startBlock.forEach(h=>{u=h.call({lexer:this},l),typeof u=="number"&&u>=0&&(s=Math.min(s,u))}),s<1/0&&s>=0&&(a=e.substring(0,s+1))}if(this.state.top&&(i=this.tokenizer.paragraph(a))){let s=r.at(-1);n&&s?.type==="paragraph"?(s.raw+=(s.raw.endsWith(` +`)?"":` +`)+i.raw,s.text+=` +`+i.text,this.inlineQueue.pop(),this.inlineQueue.at(-1).src=s.text):r.push(i),n=a.length!==e.length,e=e.substring(i.raw.length);continue}if(i=this.tokenizer.text(e)){e=e.substring(i.raw.length);let s=r.at(-1);s?.type==="text"?(s.raw+=(s.raw.endsWith(` +`)?"":` +`)+i.raw,s.text+=` +`+i.text,this.inlineQueue.pop(),this.inlineQueue.at(-1).src=s.text):r.push(i);continue}if(e){let s="Infinite loop on byte: "+e.charCodeAt(0);if(this.options.silent){console.error(s);break}else throw new Error(s)}}return this.state.top=!0,r}inline(e,r=[]){return this.inlineQueue.push({src:e,tokens:r}),r}inlineTokens(e,r=[]){let n=e,i=null;if(this.tokens.links){let l=Object.keys(this.tokens.links);if(l.length>0)for(;(i=this.tokenizer.rules.inline.reflinkSearch.exec(n))!=null;)l.includes(i[0].slice(i[0].lastIndexOf("[")+1,-1))&&(n=n.slice(0,i.index)+"["+"a".repeat(i[0].length-2)+"]"+n.slice(this.tokenizer.rules.inline.reflinkSearch.lastIndex))}for(;(i=this.tokenizer.rules.inline.anyPunctuation.exec(n))!=null;)n=n.slice(0,i.index)+"++"+n.slice(this.tokenizer.rules.inline.anyPunctuation.lastIndex);for(;(i=this.tokenizer.rules.inline.blockSkip.exec(n))!=null;)n=n.slice(0,i.index)+"["+"a".repeat(i[0].length-2)+"]"+n.slice(this.tokenizer.rules.inline.blockSkip.lastIndex);n=this.options.hooks?.emStrongMask?.call({lexer:this},n)??n;let a=!1,s="";for(;e;){a||(s=""),a=!1;let l;if(this.options.extensions?.inline?.some(h=>(l=h.call({lexer:this},e,r))?(e=e.substring(l.raw.length),r.push(l),!0):!1))continue;if(l=this.tokenizer.escape(e)){e=e.substring(l.raw.length),r.push(l);continue}if(l=this.tokenizer.tag(e)){e=e.substring(l.raw.length),r.push(l);continue}if(l=this.tokenizer.link(e)){e=e.substring(l.raw.length),r.push(l);continue}if(l=this.tokenizer.reflink(e,this.tokens.links)){e=e.substring(l.raw.length);let h=r.at(-1);l.type==="text"&&h?.type==="text"?(h.raw+=l.raw,h.text+=l.text):r.push(l);continue}if(l=this.tokenizer.emStrong(e,n,s)){e=e.substring(l.raw.length),r.push(l);continue}if(l=this.tokenizer.codespan(e)){e=e.substring(l.raw.length),r.push(l);continue}if(l=this.tokenizer.br(e)){e=e.substring(l.raw.length),r.push(l);continue}if(l=this.tokenizer.del(e)){e=e.substring(l.raw.length),r.push(l);continue}if(l=this.tokenizer.autolink(e)){e=e.substring(l.raw.length),r.push(l);continue}if(!this.state.inLink&&(l=this.tokenizer.url(e))){e=e.substring(l.raw.length),r.push(l);continue}let u=e;if(this.options.extensions?.startInline){let h=1/0,f=e.slice(1),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&&(u=e.substring(0,h+1))}if(l=this.tokenizer.inlineText(u)){e=e.substring(l.raw.length),l.raw.slice(-1)!=="_"&&(s=l.raw.slice(-1)),a=!0;let h=r.at(-1);h?.type==="text"?(h.raw+=l.raw,h.text+=l.text):r.push(l);continue}if(e){let h="Infinite loop on byte: "+e.charCodeAt(0);if(this.options.silent){console.error(h);break}else throw new Error(h)}}return r}},qT=class{static{o(this,"P")}options;parser;constructor(t){this.options=t||jd}space(t){return""}code({text:t,lang:e,escaped:r}){let n=(e||"").match(as.notSpaceStart)?.[0],i=t.replace(as.endingNewline,"")+` +`;return n?'
'+(r?i:Tc(i,!0))+`
+`:"
"+(r?i:Tc(i,!0))+`
+`}blockquote({tokens:t}){return`
+${this.parser.parse(t)}
+`}html({text:t}){return t}def(t){return""}heading({tokens:t,depth:e}){return`${this.parser.parseInline(t)} +`}hr(t){return`
+`}list(t){let e=t.ordered,r=t.start,n="";for(let s=0;s +`+n+" +`}listitem(t){let e="";if(t.task){let r=this.checkbox({checked:!!t.checked});t.loose?t.tokens[0]?.type==="paragraph"?(t.tokens[0].text=r+" "+t.tokens[0].text,t.tokens[0].tokens&&t.tokens[0].tokens.length>0&&t.tokens[0].tokens[0].type==="text"&&(t.tokens[0].tokens[0].text=r+" "+Tc(t.tokens[0].tokens[0].text),t.tokens[0].tokens[0].escaped=!0)):t.tokens.unshift({type:"text",raw:r+" ",text:r+" ",escaped:!0}):e+=r+" "}return e+=this.parser.parse(t.tokens,!!t.loose),`
  • ${e}
  • +`}checkbox({checked:t}){return"'}paragraph({tokens:t}){return`

    ${this.parser.parseInline(t)}

    +`}table(t){let e="",r="";for(let i=0;i${n}`),` + +`+e+` +`+n+`
    +`}tablerow({text:t}){return` +${t} +`}tablecell(t){let e=this.parser.parseInline(t.tokens),r=t.header?"th":"td";return(t.align?`<${r} align="${t.align}">`:`<${r}>`)+e+` +`}strong({tokens:t}){return`${this.parser.parseInline(t)}`}em({tokens:t}){return`${this.parser.parseInline(t)}`}codespan({text:t}){return`${Tc(t,!0)}`}br(t){return"
    "}del({tokens:t}){return`${this.parser.parseInline(t)}`}link({href:t,title:e,tokens:r}){let n=this.parser.parseInline(r),i=CZ(t);if(i===null)return n;t=i;let a='
    ",a}image({href:t,title:e,text:r,tokens:n}){n&&(r=this.parser.parseInline(n,this.parser.textRenderer));let i=CZ(t);if(i===null)return Tc(r);t=i;let a=`${r}{let s=i[a].flat(1/0);r=r.concat(this.walkTokens(s,e))}):i.tokens&&(r=r.concat(this.walkTokens(i.tokens,e)))}}return r}use(...t){let e=this.defaults.extensions||{renderers:{},childTokens:{}};return t.forEach(r=>{let n={...r};if(n.async=this.defaults.async||n.async||!1,r.extensions&&(r.extensions.forEach(i=>{if(!i.name)throw new Error("extension name required");if("renderer"in i){let a=e.renderers[i.name];a?e.renderers[i.name]=function(...s){let l=i.renderer.apply(this,s);return l===!1&&(l=a.apply(this,s)),l}:e.renderers[i.name]=i.renderer}if("tokenizer"in i){if(!i.level||i.level!=="block"&&i.level!=="inline")throw new Error("extension level must be 'block' or 'inline'");let a=e[i.level];a?a.unshift(i.tokenizer):e[i.level]=[i.tokenizer],i.start&&(i.level==="block"?e.startBlock?e.startBlock.push(i.start):e.startBlock=[i.start]:i.level==="inline"&&(e.startInline?e.startInline.push(i.start):e.startInline=[i.start]))}"childTokens"in i&&i.childTokens&&(e.childTokens[i.name]=i.childTokens)}),n.extensions=e),r.renderer){let i=this.defaults.renderer||new qT(this.defaults);for(let a in r.renderer){if(!(a in i))throw new Error(`renderer '${a}' does not exist`);if(["options","parser"].includes(a))continue;let s=a,l=r.renderer[s],u=i[s];i[s]=(...h)=>{let f=l.apply(i,h);return f===!1&&(f=u.apply(i,h)),f||""}}n.renderer=i}if(r.tokenizer){let i=this.defaults.tokenizer||new HT(this.defaults);for(let a in r.tokenizer){if(!(a in i))throw new Error(`tokenizer '${a}' does not exist`);if(["options","rules","lexer"].includes(a))continue;let s=a,l=r.tokenizer[s],u=i[s];i[s]=(...h)=>{let f=l.apply(i,h);return f===!1&&(f=u.apply(i,h)),f}}n.tokenizer=i}if(r.hooks){let i=this.defaults.hooks||new C2;for(let a in r.hooks){if(!(a in i))throw new Error(`hook '${a}' does not exist`);if(["options","block"].includes(a))continue;let s=a,l=r.hooks[s],u=i[s];C2.passThroughHooks.has(a)?i[s]=h=>{if(this.defaults.async&&C2.passThroughHooksRespectAsync.has(a))return Promise.resolve(l.call(i,h)).then(d=>u.call(i,d));let f=l.call(i,h);return u.call(i,f)}:i[s]=(...h)=>{let f=l.apply(i,h);return f===!1&&(f=u.apply(i,h)),f}}n.hooks=i}if(r.walkTokens){let i=this.defaults.walkTokens,a=r.walkTokens;n.walkTokens=function(s){let l=[];return l.push(a.call(this,s)),i&&(l=l.concat(i.call(this,s))),l}}this.defaults={...this.defaults,...n}}),this}setOptions(t){return this.defaults={...this.defaults,...t},this}lexer(t,e){return Mu.lex(t,e??this.defaults)}parser(t,e){return Iu.parse(t,e??this.defaults)}parseMarkdown(t){return(e,r)=>{let n={...r},i={...this.defaults,...n},a=this.onError(!!i.silent,!!i.async);if(this.defaults.async===!0&&n.async===!1)return a(new Error("marked(): The async option was set to true by an extension. Remove async: false from the parse options object to return a Promise."));if(typeof e>"u"||e===null)return a(new Error("marked(): input parameter is undefined or null"));if(typeof e!="string")return a(new Error("marked(): input parameter is of type "+Object.prototype.toString.call(e)+", string expected"));i.hooks&&(i.hooks.options=i,i.hooks.block=t);let s=i.hooks?i.hooks.provideLexer():t?Mu.lex:Mu.lexInline,l=i.hooks?i.hooks.provideParser():t?Iu.parse:Iu.parseInline;if(i.async)return Promise.resolve(i.hooks?i.hooks.preprocess(e):e).then(u=>s(u,i)).then(u=>i.hooks?i.hooks.processAllTokens(u):u).then(u=>i.walkTokens?Promise.all(this.walkTokens(u,i.walkTokens)).then(()=>u):u).then(u=>l(u,i)).then(u=>i.hooks?i.hooks.postprocess(u):u).catch(a);try{i.hooks&&(e=i.hooks.preprocess(e));let u=s(e,i);i.hooks&&(u=i.hooks.processAllTokens(u)),i.walkTokens&&this.walkTokens(u,i.walkTokens);let h=l(u,i);return i.hooks&&(h=i.hooks.postprocess(h)),h}catch(u){return a(u)}}}onError(t,e){return r=>{if(r.message+=` +Please report this to https://github.com/markedjs/marked.`,t){let n="

    An error occurred:

    "+Tc(r.message+"",!0)+"
    ";return e?Promise.resolve(n):n}if(e)return Promise.reject(r);throw r}}},Xd=new q9e;o(nn,"d");nn.options=nn.setOptions=function(t){return Xd.setOptions(t),nn.defaults=Xd.defaults,DZ(nn.defaults),nn};nn.getDefaults=h9;nn.defaults=jd;nn.use=function(...t){return Xd.use(...t),nn.defaults=Xd.defaults,DZ(nn.defaults),nn};nn.walkTokens=function(t,e){return Xd.walkTokens(t,e)};nn.parseInline=Xd.parseInline;nn.Parser=Iu;nn.parser=Iu.parse;nn.Renderer=qT;nn.TextRenderer=x9;nn.Lexer=Mu;nn.lexer=Mu.lex;nn.Tokenizer=HT;nn.Hooks=C2;nn.parse=nn;F6t=nn.options,$6t=nn.setOptions,z6t=nn.use,G6t=nn.walkTokens,V6t=nn.parseInline,U6t=Iu.parse,H6t=Mu.lex});function W9e(t,{markdownAutoWrap:e}){let n=t.replace(//g,` +`).replace(/\n{2,}/g,` +`),i=B3(n);return e===!1?i.replace(/ /g," "):i}function GZ(t,e={}){let r=W9e(t,e),n=nn.lexer(r),i=[[]],a=0;function s(l,u="normal"){l.type==="text"?l.text.split(` +`).forEach((f,d)=>{d!==0&&(a++,i.push([])),f.split(" ").forEach(p=>{p=p.replace(/'/g,"'"),p&&i[a].push({content:p,type:u})})}):l.type==="strong"||l.type==="em"?l.tokens.forEach(h=>{s(h,l.type)}):l.type==="html"&&i[a].push({content:l.text,type:"normal"})}return o(s,"processNode"),n.forEach(l=>{l.type==="paragraph"?l.tokens?.forEach(u=>{s(u)}):l.type==="html"?i[a].push({content:l.text,type:"normal"}):i[a].push({content:l.raw,type:"normal"})}),i}function VZ(t,{markdownAutoWrap:e}={}){let r=nn.lexer(t);function n(i){return i.type==="text"?e===!1?i.text.replace(/\n */g,"
    ").replace(/ /g," "):i.text.replace(/\n */g,"
    "):i.type==="strong"?`${i.tokens?.map(n).join("")}`:i.type==="em"?`${i.tokens?.map(n).join("")}`:i.type==="paragraph"?`

    ${i.tokens?.map(n).join("")}

    `:i.type==="space"?"":i.type==="html"?`${i.text}`:i.type==="escape"?i.text:(X.warn(`Unsupported markdown: ${i.type}`),i.raw)}return o(n,"output"),r.map(n).join("")}var UZ=M(()=>{"use strict";zZ();_A();pt();o(W9e,"preprocessMarkdown");o(GZ,"markdownToLines");o(VZ,"markdownToHTML")});function Y9e(t){return Intl.Segmenter?[...new Intl.Segmenter().segment(t)].map(e=>e.segment):[...t]}function X9e(t,e){let r=Y9e(e.content);return HZ(t,[],r,e.type)}function HZ(t,e,r,n){if(r.length===0)return[{content:e.join(""),type:n},{content:"",type:n}];let[i,...a]=r,s=[...e,i];return t([{content:s.join(""),type:n}])?HZ(t,s,a,n):(e.length===0&&i&&(e.push(i),r.shift()),[{content:e.join(""),type:n},{content:r.join(""),type:n}])}function qZ(t,e){if(t.some(({content:r})=>r.includes(` +`)))throw new Error("splitLineToFitWidth does not support newlines in the line");return b9(t,e)}function b9(t,e,r=[],n=[]){if(t.length===0)return n.length>0&&r.push(n),r.length>0?r:[];let i="";t[0].content===" "&&(i=" ",t.shift());let a=t.shift()??{content:" ",type:"normal"},s=[...n];if(i!==""&&s.push({content:i,type:"normal"}),s.push(a),e(s))return b9(t,e,r,s);if(n.length>0)r.push(n),t.unshift(a);else if(a.content){let[l,u]=X9e(e,a);r.push([l]),u.content&&t.unshift(u)}return b9(t,e,r)}var WZ=M(()=>{"use strict";o(Y9e,"splitTextToChars");o(X9e,"splitWordToFitWidth");o(HZ,"splitWordToFitWidthRecursion");o(qZ,"splitLineToFitWidth");o(b9,"splitLineToFitWidthRecursion")});function YZ(t,e){e&&t.attr("style",e)}async function j9e(t,e,r,n,i=!1,a=Qt()){let s=t.append("foreignObject");s.attr("width",`${10*r}px`),s.attr("height",`${10*r}px`);let l=s.append("xhtml:div"),u=kn(e.label)?await kh(e.label.replace(tt.lineBreakRegex,` +`),a):sr(e.label,a),h=e.isNode?"nodeLabel":"edgeLabel",f=l.append("span");f.html(u),YZ(f,e.labelStyle),f.attr("class",`${h} ${n}`),YZ(l,e.labelStyle),l.style("display","table-cell"),l.style("white-space","nowrap"),l.style("line-height","1.5"),l.style("max-width",r+"px"),l.style("text-align","center"),l.attr("xmlns","http://www.w3.org/1999/xhtml"),i&&l.attr("class","labelBkg");let d=l.node().getBoundingClientRect();return d.width===r&&(l.style("display","table"),l.style("white-space","break-spaces"),l.style("width",r+"px"),d=l.node().getBoundingClientRect()),s.node()}function T9(t,e,r){return t.append("tspan").attr("class","text-outer-tspan").attr("x",0).attr("y",e*r-.1+"em").attr("dy",r+"em")}function K9e(t,e,r){let n=t.append("text"),i=T9(n,1,e);w9(i,r);let a=i.node().getComputedTextLength();return n.remove(),a}function XZ(t,e,r){let n=t.append("text"),i=T9(n,1,e);w9(i,[{content:r,type:"normal"}]);let a=i.node()?.getBoundingClientRect();return a&&n.remove(),a}function Q9e(t,e,r,n=!1){let a=e.append("g"),s=a.insert("rect").attr("class","background").attr("style","stroke: none"),l=a.append("text").attr("y","-10.1"),u=0;for(let h of r){let f=o(p=>K9e(a,1.1,p)<=t,"checkWidth"),d=f(h)?[h]:qZ(h,f);for(let p of d){let m=T9(l,u,1.1);w9(m,p),u++}}if(n){let h=l.node().getBBox(),f=2;return s.attr("x",h.x-f).attr("y",h.y-f).attr("width",h.width+2*f).attr("height",h.height+2*f),a.node()}else return l.node()}function w9(t,e){t.text(""),e.forEach((r,n)=>{let i=t.append("tspan").attr("font-style",r.type==="em"?"italic":"normal").attr("class","text-inner-tspan").attr("font-weight",r.type==="strong"?"bold":"normal");n===0?i.text(r.content):i.text(" "+r.content)})}async function k9(t,e={}){let r=[];t.replace(/(fa[bklrs]?):fa-([\w-]+)/g,(i,a,s)=>(r.push((async()=>{let l=`${a}:${s}`;return await nH(l)?await _s(l,void 0,{class:"label-icon"}):``})()),i));let n=await Promise.all(r);return t.replace(/(fa[bklrs]?):fa-([\w-]+)/g,()=>n.shift()??"")}var di,zo=M(()=>{"use strict";yr();gr();pt();UZ();tr();nc();WZ();qn();o(YZ,"applyStyle");o(j9e,"addHtmlSpan");o(T9,"createTspan");o(K9e,"computeWidthOfText");o(XZ,"computeDimensionOfText");o(Q9e,"createFormattedText");o(w9,"updateTextContentAndStyles");o(k9,"replaceIconSubstring");di=o(async(t,e="",{style:r="",isTitle:n=!1,classes:i="",useHtmlLabels:a=!0,isNode:s=!0,width:l=200,addSvgBackground:u=!1}={},h)=>{if(X.debug("XYZ createText",e,r,n,i,a,s,"addSvgBackground: ",u),a){let f=VZ(e,h),d=await k9(Ji(f),h),p=e.replace(/\\\\/g,"\\"),m={isNode:s,label:kn(e)?p:d,labelStyle:r.replace("fill:","color:")};return await j9e(t,m,l,i,u,h)}else{let f=e.replace(//g,"
    "),d=GZ(f.replace("
    ","
    "),h),p=Q9e(l,t,d,e?u:!1);if(s){/stroke:/.exec(r)&&(r=r.replace("stroke:","lineColor:"));let m=r.replace(/stroke:[^;]+;?/g,"").replace(/stroke-width:[^;]+;?/g,"").replace(/fill:[^;]+;?/g,"").replace(/color:/g,"fill:");qe(p).attr("style",m)}else{let m=r.replace(/stroke:[^;]+;?/g,"").replace(/stroke-width:[^;]+;?/g,"").replace(/fill:[^;]+;?/g,"").replace(/background:/g,"fill:");qe(p).select("rect").attr("style",m.replace(/background:/g,"fill:"));let g=r.replace(/stroke:[^;]+;?/g,"").replace(/stroke-width:[^;]+;?/g,"").replace(/fill:[^;]+;?/g,"").replace(/color:/g,"fill:");qe(p).select("text").attr("style",g)}return p}},"createText")});function Vt(t){let e=t.map((r,n)=>`${n===0?"M":"L"}${r.x},${r.y}`);return e.push("Z"),e.join(" ")}function Go(t,e,r,n,i,a){let s=[],u=r-t,h=n-e,f=u/a,d=2*Math.PI/f,p=e+h/2;for(let m=0;m<=50;m++){let g=m/50,y=t+g*u,v=p+i*Math.sin(d*(y-t));s.push({x:y,y:v})}return s}function Kd(t,e,r,n,i,a){let s=[],l=i*Math.PI/180,f=(a*Math.PI/180-l)/(n-1);for(let d=0;d{"use strict";zo();Xt();yr();Ra();gr();tr();ut=o(async(t,e,r)=>{let n,i=e.useHtmlLabels||vr(ge()?.htmlLabels);r?n=r:n="node default";let a=t.insert("g").attr("class",n).attr("id",e.domId||e.id),s=a.insert("g").attr("class","label").attr("style",Cn(e.labelStyle)),l;e.label===void 0?l="":l=typeof e.label=="string"?e.label:e.label[0];let u=await di(s,sr(Ji(l),ge()),{useHtmlLabels:i,width:e.width||ge().flowchart?.wrappingWidth,cssClasses:"markdown-node-label",style:e.labelStyle,addSvgBackground:!!e.icon||!!e.img}),h=u.getBBox(),f=(e?.padding??0)/2;if(i){let d=u.children[0],p=qe(u),m=d.getElementsByTagName("img");if(m){let g=l.replace(/]*>/g,"").trim()==="";await Promise.all([...m].map(y=>new Promise(v=>{function x(){if(y.style.display="flex",y.style.flexDirection="column",g){let b=ge().fontSize?ge().fontSize:window.getComputedStyle(document.body).fontSize,T=5,[S=ur.fontSize]=vc(b),w=S*T+"px";y.style.minWidth=w,y.style.maxWidth=w}else y.style.width="100%";v(y)}o(x,"setupImage"),setTimeout(()=>{y.complete&&x()}),y.addEventListener("error",x),y.addEventListener("load",x)})))}h=d.getBoundingClientRect(),p.attr("width",h.width),p.attr("height",h.height)}return i?s.attr("transform","translate("+-h.width/2+", "+-h.height/2+")"):s.attr("transform","translate(0, "+-h.height/2+")"),e.centerLabel&&s.attr("transform","translate("+-h.width/2+", "+-h.height/2+")"),s.insert("rect",":first-child"),{shapeSvg:a,bbox:h,halfPadding:f,label:s}},"labelHelper"),XT=o(async(t,e,r)=>{let n=r.useHtmlLabels||vr(ge()?.flowchart?.htmlLabels),i=t.insert("g").attr("class","label").attr("style",r.labelStyle||""),a=await di(i,sr(Ji(e),ge()),{useHtmlLabels:n,width:r.width||ge()?.flowchart?.wrappingWidth,style:r.labelStyle,addSvgBackground:!!r.icon||!!r.img}),s=a.getBBox(),l=r.padding/2;if(vr(ge()?.flowchart?.htmlLabels)){let u=a.children[0],h=qe(a);s=u.getBoundingClientRect(),h.attr("width",s.width),h.attr("height",s.height)}return n?i.attr("transform","translate("+-s.width/2+", "+-s.height/2+")"):i.attr("transform","translate(0, "+-s.height/2+")"),r.centerLabel&&i.attr("transform","translate("+-s.width/2+", "+-s.height/2+")"),i.insert("rect",":first-child"),{shapeSvg:t,bbox:s,halfPadding:l,label:i}},"insertLabel"),Qe=o((t,e)=>{let r=e.node().getBBox();t.width=r.width,t.height=r.height},"updateNodeBounds"),st=o((t,e)=>(t.look==="handDrawn"?"rough-node":"node")+" "+t.cssClasses+" "+(e||""),"getNodeClasses");o(Vt,"createPathFromPoints");o(Go,"generateFullSineWavePoints");o(Kd,"generateCirclePoints")});function Z9e(t,e){return t.intersect(e)}var jZ,KZ=M(()=>{"use strict";o(Z9e,"intersectNode");jZ=Z9e});function J9e(t,e,r,n){var i=t.x,a=t.y,s=i-n.x,l=a-n.y,u=Math.sqrt(e*e*l*l+r*r*s*s),h=Math.abs(e*r*s/u);n.x{"use strict";o(J9e,"intersectEllipse");jT=J9e});function eRe(t,e,r){return jT(t,e,e,r)}var QZ,ZZ=M(()=>{"use strict";E9();o(eRe,"intersectCircle");QZ=eRe});function tRe(t,e,r,n){{let i=e.y-t.y,a=t.x-e.x,s=e.x*t.y-t.x*e.y,l=i*r.x+a*r.y+s,u=i*n.x+a*n.y+s,h=1e-6;if(l!==0&&u!==0&&JZ(l,u))return;let f=n.y-r.y,d=r.x-n.x,p=n.x*r.y-r.x*n.y,m=f*t.x+d*t.y+p,g=f*e.x+d*e.y+p;if(Math.abs(m)0}var eJ,tJ=M(()=>{"use strict";o(tRe,"intersectLine");o(JZ,"sameSign");eJ=tRe});function rRe(t,e,r){let n=t.x,i=t.y,a=[],s=Number.POSITIVE_INFINITY,l=Number.POSITIVE_INFINITY;typeof e.forEach=="function"?e.forEach(function(f){s=Math.min(s,f.x),l=Math.min(l,f.y)}):(s=Math.min(s,e.x),l=Math.min(l,e.y));let u=n-t.width/2-s,h=i-t.height/2-l;for(let f=0;f1&&a.sort(function(f,d){let p=f.x-r.x,m=f.y-r.y,g=Math.sqrt(p*p+m*m),y=d.x-r.x,v=d.y-r.y,x=Math.sqrt(y*y+v*v);return g{"use strict";tJ();o(rRe,"intersectPolygon");rJ=rRe});var nRe,Qh,S9=M(()=>{"use strict";nRe=o((t,e)=>{var r=t.x,n=t.y,i=e.x-r,a=e.y-n,s=t.width/2,l=t.height/2,u,h;return Math.abs(a)*s>Math.abs(i)*l?(a<0&&(l=-l),u=a===0?0:l*i/a,h=l):(i<0&&(s=-s),u=s,h=i===0?0:s*a/i),{x:r+u,y:n+h}},"intersectRect"),Qh=nRe});var Xe,Ut=M(()=>{"use strict";KZ();ZZ();E9();nJ();S9();Xe={node:jZ,circle:QZ,ellipse:jT,polygon:rJ,rect:Qh}});var iJ,wc,iRe,D2,je,Je,aRe,$t=M(()=>{"use strict";Xt();iJ=o(t=>{let{handDrawnSeed:e}=ge();return{fill:t,hachureAngle:120,hachureGap:4,fillWeight:2,roughness:.7,stroke:t,seed:e}},"solidStateFill"),wc=o(t=>{let e=iRe([...t.cssCompiledStyles||[],...t.cssStyles||[],...t.labelStyle||[]]);return{stylesMap:e,stylesArray:[...e]}},"compileStyles"),iRe=o(t=>{let e=new Map;return t.forEach(r=>{let[n,i]=r.split(":");e.set(n.trim(),i?.trim())}),e},"styles2Map"),D2=o(t=>t==="color"||t==="font-size"||t==="font-family"||t==="font-weight"||t==="font-style"||t==="text-decoration"||t==="text-align"||t==="text-transform"||t==="line-height"||t==="letter-spacing"||t==="word-spacing"||t==="text-shadow"||t==="text-overflow"||t==="white-space"||t==="word-wrap"||t==="word-break"||t==="overflow-wrap"||t==="hyphens","isLabelStyle"),je=o(t=>{let{stylesArray:e}=wc(t),r=[],n=[],i=[],a=[];return e.forEach(s=>{let l=s[0];D2(l)?r.push(s.join(":")+" !important"):(n.push(s.join(":")+" !important"),l.includes("stroke")&&i.push(s.join(":")+" !important"),l==="fill"&&a.push(s.join(":")+" !important"))}),{labelStyles:r.join(";"),nodeStyles:n.join(";"),stylesArray:e,borderStyles:i,backgroundStyles:a}},"styles2String"),Je=o((t,e)=>{let{themeVariables:r,handDrawnSeed:n}=ge(),{nodeBorder:i,mainBkg:a}=r,{stylesMap:s}=wc(t);return Object.assign({roughness:.7,fill:s.get("fill")||a,fillStyle:"hachure",fillWeight:4,hachureGap:5.2,stroke:s.get("stroke")||i,seed:n,strokeWidth:s.get("stroke-width")?.replace("px","")||1.3,fillLineDash:[0,0],strokeLineDash:aRe(s.get("stroke-dasharray"))},e)},"userNodeOverrides"),aRe=o(t=>{if(!t)return[0,0];let e=t.trim().split(/\s+/).map(Number);if(e.length===1){let i=isNaN(e[0])?0:e[0];return[i,i]}let r=isNaN(e[0])?0:e[0],n=isNaN(e[1])?0:e[1];return[r,n]},"getStrokeDashArray")});function C9(t,e,r){if(t&&t.length){let[n,i]=e,a=Math.PI/180*r,s=Math.cos(a),l=Math.sin(a);for(let u of t){let[h,f]=u;u[0]=(h-n)*s-(f-i)*l+n,u[1]=(h-n)*l+(f-i)*s+i}}}function sRe(t,e){return t[0]===e[0]&&t[1]===e[1]}function oRe(t,e,r,n=1){let i=r,a=Math.max(e,.1),s=t[0]&&t[0][0]&&typeof t[0][0]=="number"?[t]:t,l=[0,0];if(i)for(let h of s)C9(h,l,i);let u=(function(h,f,d){let p=[];for(let b of h){let T=[...b];sRe(T[0],T[T.length-1])||T.push([T[0][0],T[0][1]]),T.length>2&&p.push(T)}let m=[];f=Math.max(f,.1);let g=[];for(let b of p)for(let T=0;Tb.yminT.ymin?1:b.xT.x?1:b.ymax===T.ymax?0:(b.ymax-T.ymax)/Math.abs(b.ymax-T.ymax))),!g.length)return m;let y=[],v=g[0].ymin,x=0;for(;y.length||g.length;){if(g.length){let b=-1;for(let T=0;Tv);T++)b=T;g.splice(0,b+1).forEach((T=>{y.push({s:v,edge:T})}))}if(y=y.filter((b=>!(b.edge.ymax<=v))),y.sort(((b,T)=>b.edge.x===T.edge.x?0:(b.edge.x-T.edge.x)/Math.abs(b.edge.x-T.edge.x))),(d!==1||x%f==0)&&y.length>1)for(let b=0;b=y.length)break;let S=y[b].edge,w=y[T].edge;m.push([[Math.round(S.x),v],[Math.round(w.x),v]])}v+=d,y.forEach((b=>{b.edge.x=b.edge.x+d*b.edge.islope})),x++}return m})(s,a,n);if(i){for(let h of s)C9(h,l,-i);(function(h,f,d){let p=[];h.forEach((m=>p.push(...m))),C9(p,f,d)})(u,l,-i)}return u}function M2(t,e){var r;let n=e.hachureAngle+90,i=e.hachureGap;i<0&&(i=4*e.strokeWidth),i=Math.round(Math.max(i,.1));let a=1;return e.roughness>=1&&(((r=e.randomizer)===null||r===void 0?void 0:r.next())||Math.random())>.7&&(a=i),oRe(t,i,n,a||1)}function iw(t){let e=t[0],r=t[1];return Math.sqrt(Math.pow(e[0]-r[0],2)+Math.pow(e[1]-r[1],2))}function _9(t,e){return t.type===e}function V9(t){let e=[],r=(function(s){let l=new Array;for(;s!=="";)if(s.match(/^([ \t\r\n,]+)/))s=s.substr(RegExp.$1.length);else if(s.match(/^([aAcChHlLmMqQsStTvVzZ])/))l[l.length]={type:lRe,text:RegExp.$1},s=s.substr(RegExp.$1.length);else{if(!s.match(/^(([-+]?[0-9]+(\.[0-9]*)?|[-+]?\.[0-9]+)([eE][-+]?[0-9]+)?)/))return[];l[l.length]={type:A9,text:`${parseFloat(RegExp.$1)}`},s=s.substr(RegExp.$1.length)}return l[l.length]={type:aJ,text:""},l})(t),n="BOD",i=0,a=r[i];for(;!_9(a,aJ);){let s=0,l=[];if(n==="BOD"){if(a.text!=="M"&&a.text!=="m")return V9("M0,0"+t);i++,s=KT[a.text],n=a.text}else _9(a,A9)?s=KT[n]:(i++,s=KT[a.text],n=a.text);if(!(i+sf%2?h+r:h+e));a.push({key:"C",data:u}),e=u[4],r=u[5];break}case"Q":a.push({key:"Q",data:[...l]}),e=l[2],r=l[3];break;case"q":{let u=l.map(((h,f)=>f%2?h+r:h+e));a.push({key:"Q",data:u}),e=u[2],r=u[3];break}case"A":a.push({key:"A",data:[...l]}),e=l[5],r=l[6];break;case"a":e+=l[5],r+=l[6],a.push({key:"A",data:[l[0],l[1],l[2],l[3],l[4],e,r]});break;case"H":a.push({key:"H",data:[...l]}),e=l[0];break;case"h":e+=l[0],a.push({key:"H",data:[e]});break;case"V":a.push({key:"V",data:[...l]}),r=l[0];break;case"v":r+=l[0],a.push({key:"V",data:[r]});break;case"S":a.push({key:"S",data:[...l]}),e=l[2],r=l[3];break;case"s":{let u=l.map(((h,f)=>f%2?h+r:h+e));a.push({key:"S",data:u}),e=u[2],r=u[3];break}case"T":a.push({key:"T",data:[...l]}),e=l[0],r=l[1];break;case"t":e+=l[0],r+=l[1],a.push({key:"T",data:[e,r]});break;case"Z":case"z":a.push({key:"Z",data:[]}),e=n,r=i}return a}function pJ(t){let e=[],r="",n=0,i=0,a=0,s=0,l=0,u=0;for(let{key:h,data:f}of t){switch(h){case"M":e.push({key:"M",data:[...f]}),[n,i]=f,[a,s]=f;break;case"C":e.push({key:"C",data:[...f]}),n=f[4],i=f[5],l=f[2],u=f[3];break;case"L":e.push({key:"L",data:[...f]}),[n,i]=f;break;case"H":n=f[0],e.push({key:"L",data:[n,i]});break;case"V":i=f[0],e.push({key:"L",data:[n,i]});break;case"S":{let d=0,p=0;r==="C"||r==="S"?(d=n+(n-l),p=i+(i-u)):(d=n,p=i),e.push({key:"C",data:[d,p,...f]}),l=f[0],u=f[1],n=f[2],i=f[3];break}case"T":{let[d,p]=f,m=0,g=0;r==="Q"||r==="T"?(m=n+(n-l),g=i+(i-u)):(m=n,g=i);let y=n+2*(m-n)/3,v=i+2*(g-i)/3,x=d+2*(m-d)/3,b=p+2*(g-p)/3;e.push({key:"C",data:[y,v,x,b,d,p]}),l=m,u=g,n=d,i=p;break}case"Q":{let[d,p,m,g]=f,y=n+2*(d-n)/3,v=i+2*(p-i)/3,x=m+2*(d-m)/3,b=g+2*(p-g)/3;e.push({key:"C",data:[y,v,x,b,m,g]}),l=d,u=p,n=m,i=g;break}case"A":{let d=Math.abs(f[0]),p=Math.abs(f[1]),m=f[2],g=f[3],y=f[4],v=f[5],x=f[6];d===0||p===0?(e.push({key:"C",data:[n,i,v,x,v,x]}),n=v,i=x):(n!==v||i!==x)&&(mJ(n,i,v,x,d,p,m,g,y).forEach((function(b){e.push({key:"C",data:b})})),n=v,i=x);break}case"Z":e.push({key:"Z",data:[]}),n=a,i=s}r=h}return e}function L2(t,e,r){return[t*Math.cos(r)-e*Math.sin(r),t*Math.sin(r)+e*Math.cos(r)]}function mJ(t,e,r,n,i,a,s,l,u,h){let f=(d=s,Math.PI*d/180);var d;let p=[],m=0,g=0,y=0,v=0;if(h)[m,g,y,v]=h;else{[t,e]=L2(t,e,-f),[r,n]=L2(r,n,-f);let _=(t-r)/2,D=(e-n)/2,O=_*_/(i*i)+D*D/(a*a);O>1&&(O=Math.sqrt(O),i*=O,a*=O);let N=i*i,P=a*a,B=N*P-N*D*D-P*_*_,F=N*D*D+P*_*_,V=(l===u?-1:1)*Math.sqrt(Math.abs(B/F));y=V*i*D/a+(t+r)/2,v=V*-a*_/i+(e+n)/2,m=Math.asin(parseFloat(((e-v)/a).toFixed(9))),g=Math.asin(parseFloat(((n-v)/a).toFixed(9))),tg&&(m-=2*Math.PI),!u&&g>m&&(g-=2*Math.PI)}let x=g-m;if(Math.abs(x)>120*Math.PI/180){let _=g,D=r,O=n;g=u&&g>m?m+120*Math.PI/180*1:m+120*Math.PI/180*-1,p=mJ(r=y+i*Math.cos(g),n=v+a*Math.sin(g),D,O,i,a,s,0,u,[g,_,y,v])}x=g-m;let b=Math.cos(m),T=Math.sin(m),S=Math.cos(g),w=Math.sin(g),k=Math.tan(x/4),C=4/3*i*k,A=4/3*a*k,L=[t,e],I=[t+C*T,e-A*b],R=[r+C*w,n-A*S],E=[r,n];if(I[0]=2*L[0]-I[0],I[1]=2*L[1]-I[1],h)return[I,R,E].concat(p);{p=[I,R,E].concat(p);let _=[];for(let D=0;D2){let i=[];for(let a=0;a2*Math.PI&&(m=0,g=2*Math.PI);let y=2*Math.PI/u.curveStepCount,v=Math.min(y/2,(g-m)/2),x=hJ(v,h,f,d,p,m,g,1,u);if(!u.disableMultiStroke){let b=hJ(v,h,f,d,p,m,g,1.5,u);x.push(...b)}return s&&(l?x.push(...Zh(h,f,h+d*Math.cos(m),f+p*Math.sin(m),u),...Zh(h,f,h+d*Math.cos(g),f+p*Math.sin(g),u)):x.push({op:"lineTo",data:[h,f]},{op:"lineTo",data:[h+d*Math.cos(m),f+p*Math.sin(m)]})),{type:"path",ops:x}}function lJ(t,e){let r=pJ(dJ(V9(t))),n=[],i=[0,0],a=[0,0];for(let{key:s,data:l}of r)switch(s){case"M":a=[l[0],l[1]],i=[l[0],l[1]];break;case"L":n.push(...Zh(a[0],a[1],l[0],l[1],e)),a=[l[0],l[1]];break;case"C":{let[u,h,f,d,p,m]=l;n.push(...hRe(u,h,f,d,p,m,a,e)),a=[p,m];break}case"Z":n.push(...Zh(a[0],a[1],i[0],i[1],e)),a=[i[0],i[1]]}return{type:"path",ops:n}}function D9(t,e){let r=[];for(let n of t)if(n.length){let i=e.maxRandomnessOffset||0,a=n.length;if(a>2){r.push({op:"move",data:[n[0][0]+or(i,e),n[0][1]+or(i,e)]});for(let s=1;s500?.4:-.0016668*u+1.233334;let f=i.maxRandomnessOffset||0;f*f*100>l&&(f=u/10);let d=f/2,p=.2+.2*vJ(i),m=i.bowing*i.maxRandomnessOffset*(n-e)/200,g=i.bowing*i.maxRandomnessOffset*(t-r)/200;m=or(m,i,h),g=or(g,i,h);let y=[],v=o(()=>or(d,i,h),"M"),x=o(()=>or(f,i,h),"k"),b=i.preserveVertices;return a&&(s?y.push({op:"move",data:[t+(b?0:v()),e+(b?0:v())]}):y.push({op:"move",data:[t+(b?0:or(f,i,h)),e+(b?0:or(f,i,h))]})),s?y.push({op:"bcurveTo",data:[m+t+(r-t)*p+v(),g+e+(n-e)*p+v(),m+t+2*(r-t)*p+v(),g+e+2*(n-e)*p+v(),r+(b?0:v()),n+(b?0:v())]}):y.push({op:"bcurveTo",data:[m+t+(r-t)*p+x(),g+e+(n-e)*p+x(),m+t+2*(r-t)*p+x(),g+e+2*(n-e)*p+x(),r+(b?0:x()),n+(b?0:x())]}),y}function QT(t,e,r){if(!t.length)return[];let n=[];n.push([t[0][0]+or(e,r),t[0][1]+or(e,r)]),n.push([t[0][0]+or(e,r),t[0][1]+or(e,r)]);for(let i=1;i3){let a=[],s=1-r.curveTightness;i.push({op:"move",data:[t[1][0],t[1][1]]});for(let l=1;l+21&&i.push(l)):i.push(l),i.push(t[e+3])}else{let u=t[e+0],h=t[e+1],f=t[e+2],d=t[e+3],p=Qd(u,h,.5),m=Qd(h,f,.5),g=Qd(f,d,.5),y=Qd(p,m,.5),v=Qd(m,g,.5),x=Qd(y,v,.5);$9([u,p,y,x],0,r,i),$9([x,v,g,d],0,r,i)}var a,s;return i}function dRe(t,e){return nw(t,0,t.length,e)}function nw(t,e,r,n,i){let a=i||[],s=t[e],l=t[r-1],u=0,h=1;for(let f=e+1;fu&&(u=d,h=f)}return Math.sqrt(u)>n?(nw(t,e,h+1,n,a),nw(t,h,r,n,a)):(a.length||a.push(s),a.push(l)),a}function L9(t,e=.15,r){let n=[],i=(t.length-1)/3;for(let a=0;a0?nw(n,0,n.length,r):n}var N2,R9,N9,M9,I9,O9,Ps,P9,lRe,A9,aJ,KT,cRe,co,Em,z9,ZT,G9,Ze,Ht=M(()=>{"use strict";o(C9,"t");o(sRe,"e");o(oRe,"s");o(M2,"n");N2=class{static{o(this,"o")}constructor(e){this.helper=e}fillPolygons(e,r){return this._fillPolygons(e,r)}_fillPolygons(e,r){let n=M2(e,r);return{type:"fillSketch",ops:this.renderLines(n,r)}}renderLines(e,r){let n=[];for(let i of e)n.push(...this.helper.doubleLineOps(i[0][0],i[0][1],i[1][0],i[1][1],r));return n}};o(iw,"a");R9=class extends N2{static{o(this,"h")}fillPolygons(e,r){let n=r.hachureGap;n<0&&(n=4*r.strokeWidth),n=Math.max(n,.1);let i=M2(e,Object.assign({},r,{hachureGap:n})),a=Math.PI/180*r.hachureAngle,s=[],l=.5*n*Math.cos(a),u=.5*n*Math.sin(a);for(let[h,f]of i)iw([h,f])&&s.push([[h[0]-l,h[1]+u],[...f]],[[h[0]+l,h[1]-u],[...f]]);return{type:"fillSketch",ops:this.renderLines(s,r)}}},N9=class extends N2{static{o(this,"r")}fillPolygons(e,r){let n=this._fillPolygons(e,r),i=Object.assign({},r,{hachureAngle:r.hachureAngle+90}),a=this._fillPolygons(e,i);return n.ops=n.ops.concat(a.ops),n}},M9=class{static{o(this,"i")}constructor(e){this.helper=e}fillPolygons(e,r){let n=M2(e,r=Object.assign({},r,{hachureAngle:0}));return this.dotsOnLines(n,r)}dotsOnLines(e,r){let n=[],i=r.hachureGap;i<0&&(i=4*r.strokeWidth),i=Math.max(i,.1);let a=r.fillWeight;a<0&&(a=r.strokeWidth/2);let s=i/4;for(let l of e){let u=iw(l),h=u/i,f=Math.ceil(h)-1,d=u-f*i,p=(l[0][0]+l[1][0])/2-i/4,m=Math.min(l[0][1],l[1][1]);for(let g=0;g{let l=iw(s),u=Math.floor(l/(n+i)),h=(l+i-u*(n+i))/2,f=s[0],d=s[1];f[0]>d[0]&&(f=s[1],d=s[0]);let p=Math.atan((d[1]-f[1])/(d[0]-f[0]));for(let m=0;m{let s=iw(a),l=Math.round(s/(2*r)),u=a[0],h=a[1];u[0]>h[0]&&(u=a[1],h=a[0]);let f=Math.atan((h[1]-u[1])/(h[0]-u[0]));for(let d=0;d2*Math.PI&&(C=0,A=2*Math.PI);let L=(A-C)/b.curveStepCount,I=[];for(let R=C;R<=A;R+=L)I.push([T+w*Math.cos(R),S+k*Math.sin(R)]);return I.push([T+w*Math.cos(A),S+k*Math.sin(A)]),I.push([T,S]),km([I],b)})(e,r,n,i,a,s,h));return h.stroke!==co&&f.push(d),this._d("arc",f,h)}curve(e,r){let n=this._o(r),i=[],a=sJ(e,n);if(n.fill&&n.fill!==co)if(n.fillStyle==="solid"){let s=sJ(e,Object.assign(Object.assign({},n),{disableMultiStroke:!0,roughness:n.roughness?n.roughness+n.fillShapeRoughnessGain:0}));i.push({type:"fillPath",ops:this._mergedShape(s.ops)})}else{let s=[],l=e;if(l.length){let u=typeof l[0][0]=="number"?[l]:l;for(let h of u)h.length<3?s.push(...h):h.length===3?s.push(...L9(fJ([h[0],h[0],h[1],h[2]]),10,(1+n.roughness)/2)):s.push(...L9(fJ(h),10,(1+n.roughness)/2))}s.length&&i.push(km([s],n))}return n.stroke!==co&&i.push(a),this._d("curve",i,n)}polygon(e,r){let n=this._o(r),i=[],a=JT(e,!0,n);return n.fill&&(n.fillStyle==="solid"?i.push(D9([e],n)):i.push(km([e],n))),n.stroke!==co&&i.push(a),this._d("polygon",i,n)}path(e,r){let n=this._o(r),i=[];if(!e)return this._d("path",i,n);e=(e||"").replace(/\n/g," ").replace(/(-\s)/g,"-").replace("/(ss)/g"," ");let a=n.fill&&n.fill!=="transparent"&&n.fill!==co,s=n.stroke!==co,l=!!(n.simplification&&n.simplification<1),u=(function(f,d,p){let m=pJ(dJ(V9(f))),g=[],y=[],v=[0,0],x=[],b=o(()=>{x.length>=4&&y.push(...L9(x,d)),x=[]},"i"),T=o(()=>{b(),y.length&&(g.push(y),y=[])},"c");for(let{key:w,data:k}of m)switch(w){case"M":T(),v=[k[0],k[1]],y.push(v);break;case"L":b(),y.push([k[0],k[1]]);break;case"C":if(!x.length){let C=y.length?y[y.length-1]:v;x.push([C[0],C[1]])}x.push([k[0],k[1]]),x.push([k[2],k[3]]),x.push([k[4],k[5]]);break;case"Z":b(),y.push([v[0],v[1]])}if(T(),!p)return g;let S=[];for(let w of g){let k=dRe(w,p);k.length&&S.push(k)}return S})(e,1,l?4-4*(n.simplification||1):(1+n.roughness)/2),h=lJ(e,n);if(a)if(n.fillStyle==="solid")if(u.length===1){let f=lJ(e,Object.assign(Object.assign({},n),{disableMultiStroke:!0,roughness:n.roughness?n.roughness+n.fillShapeRoughnessGain:0}));i.push({type:"fillPath",ops:this._mergedShape(f.ops)})}else i.push(D9(u,n));else i.push(km(u,n));return s&&(l?u.forEach((f=>{i.push(JT(f,!1,n))})):i.push(h)),this._d("path",i,n)}opsToPath(e,r){let n="";for(let i of e.ops){let a=typeof r=="number"&&r>=0?i.data.map((s=>+s.toFixed(r))):i.data;switch(i.op){case"move":n+=`M${a[0]} ${a[1]} `;break;case"bcurveTo":n+=`C${a[0]} ${a[1]}, ${a[2]} ${a[3]}, ${a[4]} ${a[5]} `;break;case"lineTo":n+=`L${a[0]} ${a[1]} `}}return n.trim()}toPaths(e){let r=e.sets||[],n=e.options||this.defaultOptions,i=[];for(let a of r){let s=null;switch(a.type){case"path":s={d:this.opsToPath(a),stroke:n.stroke,strokeWidth:n.strokeWidth,fill:co};break;case"fillPath":s={d:this.opsToPath(a),stroke:co,strokeWidth:0,fill:n.fill||co};break;case"fillSketch":s=this.fillSketch(a,n)}s&&i.push(s)}return i}fillSketch(e,r){let n=r.fillWeight;return n<0&&(n=r.strokeWidth/2),{d:this.opsToPath(e),stroke:r.fill||co,strokeWidth:n,fill:co}}_mergedShape(e){return e.filter(((r,n)=>n===0||r.op!=="move"))}},z9=class{static{o(this,"st")}constructor(e,r){this.canvas=e,this.ctx=this.canvas.getContext("2d"),this.gen=new Em(r)}draw(e){let r=e.sets||[],n=e.options||this.getDefaultOptions(),i=this.ctx,a=e.options.fixedDecimalPlaceDigits;for(let s of r)switch(s.type){case"path":i.save(),i.strokeStyle=n.stroke==="none"?"transparent":n.stroke,i.lineWidth=n.strokeWidth,n.strokeLineDash&&i.setLineDash(n.strokeLineDash),n.strokeLineDashOffset&&(i.lineDashOffset=n.strokeLineDashOffset),this._drawToContext(i,s,a),i.restore();break;case"fillPath":{i.save(),i.fillStyle=n.fill||"";let l=e.shape==="curve"||e.shape==="polygon"||e.shape==="path"?"evenodd":"nonzero";this._drawToContext(i,s,a,l),i.restore();break}case"fillSketch":this.fillSketch(i,s,n)}}fillSketch(e,r,n){let i=n.fillWeight;i<0&&(i=n.strokeWidth/2),e.save(),n.fillLineDash&&e.setLineDash(n.fillLineDash),n.fillLineDashOffset&&(e.lineDashOffset=n.fillLineDashOffset),e.strokeStyle=n.fill||"",e.lineWidth=i,this._drawToContext(e,r,n.fixedDecimalPlaceDigits),e.restore()}_drawToContext(e,r,n,i="nonzero"){e.beginPath();for(let a of r.ops){let s=typeof n=="number"&&n>=0?a.data.map((l=>+l.toFixed(n))):a.data;switch(a.op){case"move":e.moveTo(s[0],s[1]);break;case"bcurveTo":e.bezierCurveTo(s[0],s[1],s[2],s[3],s[4],s[5]);break;case"lineTo":e.lineTo(s[0],s[1])}}r.type==="fillPath"?e.fill(i):e.stroke()}get generator(){return this.gen}getDefaultOptions(){return this.gen.defaultOptions}line(e,r,n,i,a){let s=this.gen.line(e,r,n,i,a);return this.draw(s),s}rectangle(e,r,n,i,a){let s=this.gen.rectangle(e,r,n,i,a);return this.draw(s),s}ellipse(e,r,n,i,a){let s=this.gen.ellipse(e,r,n,i,a);return this.draw(s),s}circle(e,r,n,i){let a=this.gen.circle(e,r,n,i);return this.draw(a),a}linearPath(e,r){let n=this.gen.linearPath(e,r);return this.draw(n),n}polygon(e,r){let n=this.gen.polygon(e,r);return this.draw(n),n}arc(e,r,n,i,a,s,l=!1,u){let h=this.gen.arc(e,r,n,i,a,s,l,u);return this.draw(h),h}curve(e,r){let n=this.gen.curve(e,r);return this.draw(n),n}path(e,r){let n=this.gen.path(e,r);return this.draw(n),n}},ZT="http://www.w3.org/2000/svg",G9=class{static{o(this,"ot")}constructor(e,r){this.svg=e,this.gen=new Em(r)}draw(e){let r=e.sets||[],n=e.options||this.getDefaultOptions(),i=this.svg.ownerDocument||window.document,a=i.createElementNS(ZT,"g"),s=e.options.fixedDecimalPlaceDigits;for(let l of r){let u=null;switch(l.type){case"path":u=i.createElementNS(ZT,"path"),u.setAttribute("d",this.opsToPath(l,s)),u.setAttribute("stroke",n.stroke),u.setAttribute("stroke-width",n.strokeWidth+""),u.setAttribute("fill","none"),n.strokeLineDash&&u.setAttribute("stroke-dasharray",n.strokeLineDash.join(" ").trim()),n.strokeLineDashOffset&&u.setAttribute("stroke-dashoffset",`${n.strokeLineDashOffset}`);break;case"fillPath":u=i.createElementNS(ZT,"path"),u.setAttribute("d",this.opsToPath(l,s)),u.setAttribute("stroke","none"),u.setAttribute("stroke-width","0"),u.setAttribute("fill",n.fill||""),e.shape!=="curve"&&e.shape!=="polygon"||u.setAttribute("fill-rule","evenodd");break;case"fillSketch":u=this.fillSketch(i,l,n)}u&&a.appendChild(u)}return a}fillSketch(e,r,n){let i=n.fillWeight;i<0&&(i=n.strokeWidth/2);let a=e.createElementNS(ZT,"path");return a.setAttribute("d",this.opsToPath(r,n.fixedDecimalPlaceDigits)),a.setAttribute("stroke",n.fill||""),a.setAttribute("stroke-width",i+""),a.setAttribute("fill","none"),n.fillLineDash&&a.setAttribute("stroke-dasharray",n.fillLineDash.join(" ").trim()),n.fillLineDashOffset&&a.setAttribute("stroke-dashoffset",`${n.fillLineDashOffset}`),a}get generator(){return this.gen}getDefaultOptions(){return this.gen.defaultOptions}opsToPath(e,r){return this.gen.opsToPath(e,r)}line(e,r,n,i,a){let s=this.gen.line(e,r,n,i,a);return this.draw(s)}rectangle(e,r,n,i,a){let s=this.gen.rectangle(e,r,n,i,a);return this.draw(s)}ellipse(e,r,n,i,a){let s=this.gen.ellipse(e,r,n,i,a);return this.draw(s)}circle(e,r,n,i){let a=this.gen.circle(e,r,n,i);return this.draw(a)}linearPath(e,r){let n=this.gen.linearPath(e,r);return this.draw(n)}polygon(e,r){let n=this.gen.polygon(e,r);return this.draw(n)}arc(e,r,n,i,a,s,l=!1,u){let h=this.gen.arc(e,r,n,i,a,s,l,u);return this.draw(h)}curve(e,r){let n=this.gen.curve(e,r);return this.draw(n)}path(e,r){let n=this.gen.path(e,r);return this.draw(n)}},Ze={canvas:o((t,e)=>new z9(t,e),"canvas"),svg:o((t,e)=>new G9(t,e),"svg"),generator:o(t=>new Em(t),"generator"),newSeed:o(()=>Em.newSeed(),"newSeed")}});function xJ(t,e){let{labelStyles:r}=je(e);e.labelStyle=r;let n=st(e),i=n;n||(i="anchor");let a=t.insert("g").attr("class",i).attr("id",e.domId||e.id),s=1,{cssStyles:l}=e,u=Ze.svg(a),h=Je(e,{fill:"black",stroke:"none",fillStyle:"solid"});e.look!=="handDrawn"&&(h.roughness=0);let f=u.circle(0,0,s*2,h),d=a.insert(()=>f,":first-child");return d.attr("class","anchor").attr("style",Cn(l)),Qe(e,d),e.intersect=function(p){return X.info("Circle intersect",e,s,p),Xe.circle(e,s,p)},a}var bJ=M(()=>{"use strict";pt();It();Ut();$t();Ht();tr();o(xJ,"anchor")});function TJ(t,e,r,n,i,a,s){let u=(t+r)/2,h=(e+n)/2,f=Math.atan2(n-e,r-t),d=(r-t)/2,p=(n-e)/2,m=d/i,g=p/a,y=Math.sqrt(m**2+g**2);if(y>1)throw new Error("The given radii are too small to create an arc between the points.");let v=Math.sqrt(1-y**2),x=u+v*a*Math.sin(f)*(s?-1:1),b=h-v*i*Math.cos(f)*(s?-1:1),T=Math.atan2((e-b)/a,(t-x)/i),w=Math.atan2((n-b)/a,(r-x)/i)-T;s&&w<0&&(w+=2*Math.PI),!s&&w>0&&(w-=2*Math.PI);let k=[];for(let C=0;C<20;C++){let A=C/19,L=T+A*w,I=x+i*Math.cos(L),R=b+a*Math.sin(L);k.push({x:I,y:R})}return k}async function wJ(t,e){let{labelStyles:r,nodeStyles:n}=je(e);e.labelStyle=r;let{shapeSvg:i,bbox:a}=await ut(t,e,st(e)),s=a.width+e.padding+20,l=a.height+e.padding,u=l/2,h=u/(2.5+l/50),{cssStyles:f}=e,d=[{x:s/2,y:-l/2},{x:-s/2,y:-l/2},...TJ(-s/2,-l/2,-s/2,l/2,h,u,!1),{x:s/2,y:l/2},...TJ(s/2,l/2,s/2,-l/2,h,u,!0)],p=Ze.svg(i),m=Je(e,{});e.look!=="handDrawn"&&(m.roughness=0,m.fillStyle="solid");let g=Vt(d),y=p.path(g,m),v=i.insert(()=>y,":first-child");return v.attr("class","basic label-container"),f&&e.look!=="handDrawn"&&v.selectAll("path").attr("style",f),n&&e.look!=="handDrawn"&&v.selectAll("path").attr("style",n),v.attr("transform",`translate(${h/2}, 0)`),Qe(e,v),e.intersect=function(x){return Xe.polygon(e,d,x)},i}var kJ=M(()=>{"use strict";It();Ut();$t();Ht();o(TJ,"generateArcPoints");o(wJ,"bowTieRect")});function Bs(t,e,r,n){return t.insert("polygon",":first-child").attr("points",n.map(function(i){return i.x+","+i.y}).join(" ")).attr("class","label-container").attr("transform","translate("+-e/2+","+r/2+")")}var Jh=M(()=>{"use strict";o(Bs,"insertPolygonShape")});async function EJ(t,e){let{labelStyles:r,nodeStyles:n}=je(e);e.labelStyle=r;let{shapeSvg:i,bbox:a}=await ut(t,e,st(e)),s=a.height+e.padding,l=12,u=a.width+e.padding+l,h=0,f=u,d=-s,p=0,m=[{x:h+l,y:d},{x:f,y:d},{x:f,y:p},{x:h,y:p},{x:h,y:d+l},{x:h+l,y:d}],g,{cssStyles:y}=e;if(e.look==="handDrawn"){let v=Ze.svg(i),x=Je(e,{}),b=Vt(m),T=v.path(b,x);g=i.insert(()=>T,":first-child").attr("transform",`translate(${-u/2}, ${s/2})`),y&&g.attr("style",y)}else g=Bs(i,u,s,m);return n&&g.attr("style",n),Qe(e,g),e.intersect=function(v){return Xe.polygon(e,m,v)},i}var SJ=M(()=>{"use strict";It();Ut();$t();Ht();Jh();It();o(EJ,"card")});function CJ(t,e){let{nodeStyles:r}=je(e);e.label="";let n=t.insert("g").attr("class",st(e)).attr("id",e.domId??e.id),{cssStyles:i}=e,a=Math.max(28,e.width??0),s=[{x:0,y:a/2},{x:a/2,y:0},{x:0,y:-a/2},{x:-a/2,y:0}],l=Ze.svg(n),u=Je(e,{});e.look!=="handDrawn"&&(u.roughness=0,u.fillStyle="solid");let h=Vt(s),f=l.path(h,u),d=n.insert(()=>f,":first-child");return i&&e.look!=="handDrawn"&&d.selectAll("path").attr("style",i),r&&e.look!=="handDrawn"&&d.selectAll("path").attr("style",r),e.width=28,e.height=28,e.intersect=function(p){return Xe.polygon(e,s,p)},n}var AJ=M(()=>{"use strict";Ut();Ht();$t();It();o(CJ,"choice")});async function aw(t,e,r){let{labelStyles:n,nodeStyles:i}=je(e);e.labelStyle=n;let{shapeSvg:a,bbox:s,halfPadding:l}=await ut(t,e,st(e)),u=r?.padding??l,h=s.width/2+u,f,{cssStyles:d}=e;if(e.look==="handDrawn"){let p=Ze.svg(a),m=Je(e,{}),g=p.circle(0,0,h*2,m);f=a.insert(()=>g,":first-child"),f.attr("class","basic label-container").attr("style",Cn(d))}else f=a.insert("circle",":first-child").attr("class","basic label-container").attr("style",i).attr("r",h).attr("cx",0).attr("cy",0);return Qe(e,f),e.calcIntersect=function(p,m){let g=p.width/2;return Xe.circle(p,g,m)},e.intersect=function(p){return X.info("Circle intersect",e,h,p),Xe.circle(e,h,p)},a}var U9=M(()=>{"use strict";Ht();pt();tr();Ut();$t();It();o(aw,"circle")});function pRe(t){let e=Math.cos(Math.PI/4),r=Math.sin(Math.PI/4),n=t*2,i={x:n/2*e,y:n/2*r},a={x:-(n/2)*e,y:n/2*r},s={x:-(n/2)*e,y:-(n/2)*r},l={x:n/2*e,y:-(n/2)*r};return`M ${a.x},${a.y} L ${l.x},${l.y} + M ${i.x},${i.y} L ${s.x},${s.y}`}function _J(t,e){let{labelStyles:r,nodeStyles:n}=je(e);e.labelStyle=r,e.label="";let i=t.insert("g").attr("class",st(e)).attr("id",e.domId??e.id),a=Math.max(30,e?.width??0),{cssStyles:s}=e,l=Ze.svg(i),u=Je(e,{});e.look!=="handDrawn"&&(u.roughness=0,u.fillStyle="solid");let h=l.circle(0,0,a*2,u),f=pRe(a),d=l.path(f,u),p=i.insert(()=>h,":first-child");return p.insert(()=>d),s&&e.look!=="handDrawn"&&p.selectAll("path").attr("style",s),n&&e.look!=="handDrawn"&&p.selectAll("path").attr("style",n),Qe(e,p),e.intersect=function(m){return X.info("crossedCircle intersect",e,{radius:a,point:m}),Xe.circle(e,a,m)},i}var DJ=M(()=>{"use strict";pt();It();$t();Ht();Ut();o(pRe,"createLine");o(_J,"crossedCircle")});function ef(t,e,r,n=100,i=0,a=180){let s=[],l=i*Math.PI/180,f=(a*Math.PI/180-l)/(n-1);for(let d=0;dT,":first-child").attr("stroke-opacity",0),S.insert(()=>x,":first-child"),S.attr("class","text"),f&&e.look!=="handDrawn"&&S.selectAll("path").attr("style",f),n&&e.look!=="handDrawn"&&S.selectAll("path").attr("style",n),S.attr("transform",`translate(${h}, 0)`),s.attr("transform",`translate(${-l/2+h-(a.x-(a.left??0))},${-u/2+(e.padding??0)/2-(a.y-(a.top??0))})`),Qe(e,S),e.intersect=function(w){return Xe.polygon(e,p,w)},i}var RJ=M(()=>{"use strict";It();Ut();$t();Ht();o(ef,"generateCirclePoints");o(LJ,"curlyBraceLeft")});function tf(t,e,r,n=100,i=0,a=180){let s=[],l=i*Math.PI/180,f=(a*Math.PI/180-l)/(n-1);for(let d=0;dT,":first-child").attr("stroke-opacity",0),S.insert(()=>x,":first-child"),S.attr("class","text"),f&&e.look!=="handDrawn"&&S.selectAll("path").attr("style",f),n&&e.look!=="handDrawn"&&S.selectAll("path").attr("style",n),S.attr("transform",`translate(${-h}, 0)`),s.attr("transform",`translate(${-l/2+(e.padding??0)/2-(a.x-(a.left??0))},${-u/2+(e.padding??0)/2-(a.y-(a.top??0))})`),Qe(e,S),e.intersect=function(w){return Xe.polygon(e,p,w)},i}var MJ=M(()=>{"use strict";It();Ut();$t();Ht();o(tf,"generateCirclePoints");o(NJ,"curlyBraceRight")});function Pa(t,e,r,n=100,i=0,a=180){let s=[],l=i*Math.PI/180,f=(a*Math.PI/180-l)/(n-1);for(let d=0;dC,":first-child").attr("stroke-opacity",0),A.insert(()=>b,":first-child"),A.insert(()=>w,":first-child"),A.attr("class","text"),f&&e.look!=="handDrawn"&&A.selectAll("path").attr("style",f),n&&e.look!=="handDrawn"&&A.selectAll("path").attr("style",n),A.attr("transform",`translate(${h-h/4}, 0)`),s.attr("transform",`translate(${-l/2+(e.padding??0)/2-(a.x-(a.left??0))},${-u/2+(e.padding??0)/2-(a.y-(a.top??0))})`),Qe(e,A),e.intersect=function(L){return Xe.polygon(e,m,L)},i}var OJ=M(()=>{"use strict";It();Ut();$t();Ht();o(Pa,"generateCirclePoints");o(IJ,"curlyBraces")});async function PJ(t,e){let{labelStyles:r,nodeStyles:n}=je(e);e.labelStyle=r;let{shapeSvg:i,bbox:a}=await ut(t,e,st(e)),s=80,l=20,u=Math.max(s,(a.width+(e.padding??0)*2)*1.25,e?.width??0),h=Math.max(l,a.height+(e.padding??0)*2,e?.height??0),f=h/2,{cssStyles:d}=e,p=Ze.svg(i),m=Je(e,{});e.look!=="handDrawn"&&(m.roughness=0,m.fillStyle="solid");let g=u,y=h,v=g-f,x=y/4,b=[{x:v,y:0},{x,y:0},{x:0,y:y/2},{x,y},{x:v,y},...Kd(-v,-y/2,f,50,270,90)],T=Vt(b),S=p.path(T,m),w=i.insert(()=>S,":first-child");return w.attr("class","basic label-container"),d&&e.look!=="handDrawn"&&w.selectChildren("path").attr("style",d),n&&e.look!=="handDrawn"&&w.selectChildren("path").attr("style",n),w.attr("transform",`translate(${-u/2}, ${-h/2})`),Qe(e,w),e.intersect=function(k){return Xe.polygon(e,b,k)},i}var BJ=M(()=>{"use strict";It();Ut();$t();Ht();o(PJ,"curvedTrapezoid")});async function FJ(t,e){let{labelStyles:r,nodeStyles:n}=je(e);e.labelStyle=r;let{shapeSvg:i,bbox:a,label:s}=await ut(t,e,st(e)),l=Math.max(a.width+e.padding,e.width??0),u=l/2,h=u/(2.5+l/50),f=Math.max(a.height+h+e.padding,e.height??0),d,{cssStyles:p}=e;if(e.look==="handDrawn"){let m=Ze.svg(i),g=gRe(0,0,l,f,u,h),y=yRe(0,h,l,f,u,h),v=m.path(g,Je(e,{})),x=m.path(y,Je(e,{fill:"none"}));d=i.insert(()=>x,":first-child"),d=i.insert(()=>v,":first-child"),d.attr("class","basic label-container"),p&&d.attr("style",p)}else{let m=mRe(0,0,l,f,u,h);d=i.insert("path",":first-child").attr("d",m).attr("class","basic label-container").attr("style",Cn(p)).attr("style",n)}return d.attr("label-offset-y",h),d.attr("transform",`translate(${-l/2}, ${-(f/2+h)})`),Qe(e,d),s.attr("transform",`translate(${-(a.width/2)-(a.x-(a.left??0))}, ${-(a.height/2)+(e.padding??0)/1.5-(a.y-(a.top??0))})`),e.intersect=function(m){let g=Xe.rect(e,m),y=g.x-(e.x??0);if(u!=0&&(Math.abs(y)<(e.width??0)/2||Math.abs(y)==(e.width??0)/2&&Math.abs(g.y-(e.y??0))>(e.height??0)/2-h)){let v=h*h*(1-y*y/(u*u));v>0&&(v=Math.sqrt(v)),v=h-v,m.y-(e.y??0)>0&&(v=-v),g.y+=v}return g},i}var mRe,gRe,yRe,$J=M(()=>{"use strict";It();Ut();$t();Ht();tr();mRe=o((t,e,r,n,i,a)=>[`M${t},${e+a}`,`a${i},${a} 0,0,0 ${r},0`,`a${i},${a} 0,0,0 ${-r},0`,`l0,${n}`,`a${i},${a} 0,0,0 ${r},0`,`l0,${-n}`].join(" "),"createCylinderPathD"),gRe=o((t,e,r,n,i,a)=>[`M${t},${e+a}`,`M${t+r},${e+a}`,`a${i},${a} 0,0,0 ${-r},0`,`l0,${n}`,`a${i},${a} 0,0,0 ${r},0`,`l0,${-n}`].join(" "),"createOuterCylinderPathD"),yRe=o((t,e,r,n,i,a)=>[`M${t-r/2},${-n/2}`,`a${i},${a} 0,0,0 ${r},0`].join(" "),"createInnerCylinderPathD");o(FJ,"cylinder")});async function zJ(t,e){let{labelStyles:r,nodeStyles:n}=je(e);e.labelStyle=r;let{shapeSvg:i,bbox:a,label:s}=await ut(t,e,st(e)),l=a.width+e.padding,u=a.height+e.padding,h=u*.2,f=-l/2,d=-u/2-h/2,{cssStyles:p}=e,m=Ze.svg(i),g=Je(e,{});e.look!=="handDrawn"&&(g.roughness=0,g.fillStyle="solid");let y=[{x:f,y:d+h},{x:-f,y:d+h},{x:-f,y:-d},{x:f,y:-d},{x:f,y:d},{x:-f,y:d},{x:-f,y:d+h}],v=m.polygon(y.map(b=>[b.x,b.y]),g),x=i.insert(()=>v,":first-child");return x.attr("class","basic label-container"),p&&e.look!=="handDrawn"&&x.selectAll("path").attr("style",p),n&&e.look!=="handDrawn"&&x.selectAll("path").attr("style",n),s.attr("transform",`translate(${f+(e.padding??0)/2-(a.x-(a.left??0))}, ${d+h+(e.padding??0)/2-(a.y-(a.top??0))})`),Qe(e,x),e.intersect=function(b){return Xe.rect(e,b)},i}var GJ=M(()=>{"use strict";It();Ut();$t();Ht();o(zJ,"dividedRectangle")});async function VJ(t,e){let{labelStyles:r,nodeStyles:n}=je(e);e.labelStyle=r;let{shapeSvg:i,bbox:a,halfPadding:s}=await ut(t,e,st(e)),u=a.width/2+s+5,h=a.width/2+s,f,{cssStyles:d}=e;if(e.look==="handDrawn"){let p=Ze.svg(i),m=Je(e,{roughness:.2,strokeWidth:2.5}),g=Je(e,{roughness:.2,strokeWidth:1.5}),y=p.circle(0,0,u*2,m),v=p.circle(0,0,h*2,g);f=i.insert("g",":first-child"),f.attr("class",Cn(e.cssClasses)).attr("style",Cn(d)),f.node()?.appendChild(y),f.node()?.appendChild(v)}else{f=i.insert("g",":first-child");let p=f.insert("circle",":first-child"),m=f.insert("circle");f.attr("class","basic label-container").attr("style",n),p.attr("class","outer-circle").attr("style",n).attr("r",u).attr("cx",0).attr("cy",0),m.attr("class","inner-circle").attr("style",n).attr("r",h).attr("cx",0).attr("cy",0)}return Qe(e,f),e.intersect=function(p){return X.info("DoubleCircle intersect",e,u,p),Xe.circle(e,u,p)},i}var UJ=M(()=>{"use strict";pt();It();Ut();$t();Ht();tr();o(VJ,"doublecircle")});function HJ(t,e,{config:{themeVariables:r}}){let{labelStyles:n,nodeStyles:i}=je(e);e.label="",e.labelStyle=n;let a=t.insert("g").attr("class",st(e)).attr("id",e.domId??e.id),s=7,{cssStyles:l}=e,u=Ze.svg(a),{nodeBorder:h}=r,f=Je(e,{fillStyle:"solid"});e.look!=="handDrawn"&&(f.roughness=0);let d=u.circle(0,0,s*2,f),p=a.insert(()=>d,":first-child");return p.selectAll("path").attr("style",`fill: ${h} !important;`),l&&l.length>0&&e.look!=="handDrawn"&&p.selectAll("path").attr("style",l),i&&e.look!=="handDrawn"&&p.selectAll("path").attr("style",i),Qe(e,p),e.intersect=function(m){return X.info("filledCircle intersect",e,{radius:s,point:m}),Xe.circle(e,s,m)},a}var qJ=M(()=>{"use strict";Ht();pt();Ut();$t();It();o(HJ,"filledCircle")});async function WJ(t,e){let{labelStyles:r,nodeStyles:n}=je(e);e.labelStyle=r;let{shapeSvg:i,bbox:a,label:s}=await ut(t,e,st(e)),l=a.width+(e.padding??0),u=l+a.height,h=l+a.height,f=[{x:0,y:-u},{x:h,y:-u},{x:h/2,y:0}],{cssStyles:d}=e,p=Ze.svg(i),m=Je(e,{});e.look!=="handDrawn"&&(m.roughness=0,m.fillStyle="solid");let g=Vt(f),y=p.path(g,m),v=i.insert(()=>y,":first-child").attr("transform",`translate(${-u/2}, ${u/2})`);return d&&e.look!=="handDrawn"&&v.selectChildren("path").attr("style",d),n&&e.look!=="handDrawn"&&v.selectChildren("path").attr("style",n),e.width=l,e.height=u,Qe(e,v),s.attr("transform",`translate(${-a.width/2-(a.x-(a.left??0))}, ${-u/2+(e.padding??0)/2+(a.y-(a.top??0))})`),e.intersect=function(x){return X.info("Triangle intersect",e,f,x),Xe.polygon(e,f,x)},i}var YJ=M(()=>{"use strict";pt();It();Ut();$t();Ht();It();o(WJ,"flippedTriangle")});function XJ(t,e,{dir:r,config:{state:n,themeVariables:i}}){let{nodeStyles:a}=je(e);e.label="";let s=t.insert("g").attr("class",st(e)).attr("id",e.domId??e.id),{cssStyles:l}=e,u=Math.max(70,e?.width??0),h=Math.max(10,e?.height??0);r==="LR"&&(u=Math.max(10,e?.width??0),h=Math.max(70,e?.height??0));let f=-1*u/2,d=-1*h/2,p=Ze.svg(s),m=Je(e,{stroke:i.lineColor,fill:i.lineColor});e.look!=="handDrawn"&&(m.roughness=0,m.fillStyle="solid");let g=p.rectangle(f,d,u,h,m),y=s.insert(()=>g,":first-child");l&&e.look!=="handDrawn"&&y.selectAll("path").attr("style",l),a&&e.look!=="handDrawn"&&y.selectAll("path").attr("style",a),Qe(e,y);let v=n?.padding??0;return e.width&&e.height&&(e.width+=v/2||0,e.height+=v/2||0),e.intersect=function(x){return Xe.rect(e,x)},s}var jJ=M(()=>{"use strict";Ht();Ut();$t();It();o(XJ,"forkJoin")});async function KJ(t,e){let{labelStyles:r,nodeStyles:n}=je(e);e.labelStyle=r;let i=80,a=50,{shapeSvg:s,bbox:l}=await ut(t,e,st(e)),u=Math.max(i,l.width+(e.padding??0)*2,e?.width??0),h=Math.max(a,l.height+(e.padding??0)*2,e?.height??0),f=h/2,{cssStyles:d}=e,p=Ze.svg(s),m=Je(e,{});e.look!=="handDrawn"&&(m.roughness=0,m.fillStyle="solid");let g=[{x:-u/2,y:-h/2},{x:u/2-f,y:-h/2},...Kd(-u/2+f,0,f,50,90,270),{x:u/2-f,y:h/2},{x:-u/2,y:h/2}],y=Vt(g),v=p.path(y,m),x=s.insert(()=>v,":first-child");return x.attr("class","basic label-container"),d&&e.look!=="handDrawn"&&x.selectChildren("path").attr("style",d),n&&e.look!=="handDrawn"&&x.selectChildren("path").attr("style",n),Qe(e,x),e.intersect=function(b){return X.info("Pill intersect",e,{radius:f,point:b}),Xe.polygon(e,g,b)},s}var QJ=M(()=>{"use strict";pt();It();Ut();$t();Ht();o(KJ,"halfRoundedRectangle")});async function ZJ(t,e){let{labelStyles:r,nodeStyles:n}=je(e);e.labelStyle=r;let{shapeSvg:i,bbox:a}=await ut(t,e,st(e)),s=a.height+(e.padding??0),l=a.width+(e.padding??0)*2.5,{cssStyles:u}=e,h=Ze.svg(i),f=Je(e,{});e.look!=="handDrawn"&&(f.roughness=0,f.fillStyle="solid");let d=l/2,p=d/6;d=d+p;let m=s/2,g=m/2,y=d-g,v=[{x:-y,y:-m},{x:0,y:-m},{x:y,y:-m},{x:d,y:0},{x:y,y:m},{x:0,y:m},{x:-y,y:m},{x:-d,y:0}],x=Vt(v),b=h.path(x,f),T=i.insert(()=>b,":first-child");return T.attr("class","basic label-container"),u&&e.look!=="handDrawn"&&T.selectChildren("path").attr("style",u),n&&e.look!=="handDrawn"&&T.selectChildren("path").attr("style",n),e.width=l,e.height=s,Qe(e,T),e.intersect=function(S){return Xe.polygon(e,v,S)},i}var JJ=M(()=>{"use strict";It();Ut();$t();Ht();o(ZJ,"hexagon")});async function eee(t,e){let{labelStyles:r,nodeStyles:n}=je(e);e.label="",e.labelStyle=r;let{shapeSvg:i}=await ut(t,e,st(e)),a=Math.max(30,e?.width??0),s=Math.max(30,e?.height??0),{cssStyles:l}=e,u=Ze.svg(i),h=Je(e,{});e.look!=="handDrawn"&&(h.roughness=0,h.fillStyle="solid");let f=[{x:0,y:0},{x:a,y:0},{x:0,y:s},{x:a,y:s}],d=Vt(f),p=u.path(d,h),m=i.insert(()=>p,":first-child");return m.attr("class","basic label-container"),l&&e.look!=="handDrawn"&&m.selectChildren("path").attr("style",l),n&&e.look!=="handDrawn"&&m.selectChildren("path").attr("style",n),m.attr("transform",`translate(${-a/2}, ${-s/2})`),Qe(e,m),e.intersect=function(g){return X.info("Pill intersect",e,{points:f}),Xe.polygon(e,f,g)},i}var tee=M(()=>{"use strict";pt();It();Ut();$t();Ht();o(eee,"hourglass")});async function ree(t,e,{config:{themeVariables:r,flowchart:n}}){let{labelStyles:i}=je(e);e.labelStyle=i;let a=e.assetHeight??48,s=e.assetWidth??48,l=Math.max(a,s),u=n?.wrappingWidth;e.width=Math.max(l,u??0);let{shapeSvg:h,bbox:f,label:d}=await ut(t,e,"icon-shape default"),p=e.pos==="t",m=l,g=l,{nodeBorder:y}=r,{stylesMap:v}=wc(e),x=-g/2,b=-m/2,T=e.label?8:0,S=Ze.svg(h),w=Je(e,{stroke:"none",fill:"none"});e.look!=="handDrawn"&&(w.roughness=0,w.fillStyle="solid");let k=S.rectangle(x,b,g,m,w),C=Math.max(g,f.width),A=m+f.height+T,L=S.rectangle(-C/2,-A/2,C,A,{...w,fill:"transparent",stroke:"none"}),I=h.insert(()=>k,":first-child"),R=h.insert(()=>L);if(e.icon){let E=h.append("g");E.html(`${await _s(e.icon,{height:l,width:l,fallbackPrefix:""})}`);let _=E.node().getBBox(),D=_.width,O=_.height,N=_.x,P=_.y;E.attr("transform",`translate(${-D/2-N},${p?f.height/2+T/2-O/2-P:-f.height/2-T/2-O/2-P})`),E.attr("style",`color: ${v.get("stroke")??y};`)}return d.attr("transform",`translate(${-f.width/2-(f.x-(f.left??0))},${p?-A/2:A/2-f.height})`),I.attr("transform",`translate(0,${p?f.height/2+T/2:-f.height/2-T/2})`),Qe(e,R),e.intersect=function(E){if(X.info("iconSquare intersect",e,E),!e.label)return Xe.rect(e,E);let _=e.x??0,D=e.y??0,O=e.height??0,N=[];return p?N=[{x:_-f.width/2,y:D-O/2},{x:_+f.width/2,y:D-O/2},{x:_+f.width/2,y:D-O/2+f.height+T},{x:_+g/2,y:D-O/2+f.height+T},{x:_+g/2,y:D+O/2},{x:_-g/2,y:D+O/2},{x:_-g/2,y:D-O/2+f.height+T},{x:_-f.width/2,y:D-O/2+f.height+T}]:N=[{x:_-g/2,y:D-O/2},{x:_+g/2,y:D-O/2},{x:_+g/2,y:D-O/2+m},{x:_+f.width/2,y:D-O/2+m},{x:_+f.width/2/2,y:D+O/2},{x:_-f.width/2,y:D+O/2},{x:_-f.width/2,y:D-O/2+m},{x:_-g/2,y:D-O/2+m}],Xe.polygon(e,N,E)},h}var nee=M(()=>{"use strict";Ht();pt();nc();Ut();$t();It();o(ree,"icon")});async function iee(t,e,{config:{themeVariables:r,flowchart:n}}){let{labelStyles:i}=je(e);e.labelStyle=i;let a=e.assetHeight??48,s=e.assetWidth??48,l=Math.max(a,s),u=n?.wrappingWidth;e.width=Math.max(l,u??0);let{shapeSvg:h,bbox:f,label:d}=await ut(t,e,"icon-shape default"),p=20,m=e.label?8:0,g=e.pos==="t",{nodeBorder:y,mainBkg:v}=r,{stylesMap:x}=wc(e),b=Ze.svg(h),T=Je(e,{});e.look!=="handDrawn"&&(T.roughness=0,T.fillStyle="solid");let S=x.get("fill");T.stroke=S??v;let w=h.append("g");e.icon&&w.html(`${await _s(e.icon,{height:l,width:l,fallbackPrefix:""})}`);let k=w.node().getBBox(),C=k.width,A=k.height,L=k.x,I=k.y,R=Math.max(C,A)*Math.SQRT2+p*2,E=b.circle(0,0,R,T),_=Math.max(R,f.width),D=R+f.height+m,O=b.rectangle(-_/2,-D/2,_,D,{...T,fill:"transparent",stroke:"none"}),N=h.insert(()=>E,":first-child"),P=h.insert(()=>O);return w.attr("transform",`translate(${-C/2-L},${g?f.height/2+m/2-A/2-I:-f.height/2-m/2-A/2-I})`),w.attr("style",`color: ${x.get("stroke")??y};`),d.attr("transform",`translate(${-f.width/2-(f.x-(f.left??0))},${g?-D/2:D/2-f.height})`),N.attr("transform",`translate(0,${g?f.height/2+m/2:-f.height/2-m/2})`),Qe(e,P),e.intersect=function(B){return X.info("iconSquare intersect",e,B),Xe.rect(e,B)},h}var aee=M(()=>{"use strict";Ht();pt();nc();Ut();$t();It();o(iee,"iconCircle")});var Fs,Zd=M(()=>{"use strict";Fs=o((t,e,r,n,i)=>["M",t+i,e,"H",t+r-i,"A",i,i,0,0,1,t+r,e+i,"V",e+n-i,"A",i,i,0,0,1,t+r-i,e+n,"H",t+i,"A",i,i,0,0,1,t,e+n-i,"V",e+i,"A",i,i,0,0,1,t+i,e,"Z"].join(" "),"createRoundedRectPathD")});async function see(t,e,{config:{themeVariables:r,flowchart:n}}){let{labelStyles:i}=je(e);e.labelStyle=i;let a=e.assetHeight??48,s=e.assetWidth??48,l=Math.max(a,s),u=n?.wrappingWidth;e.width=Math.max(l,u??0);let{shapeSvg:h,bbox:f,halfPadding:d,label:p}=await ut(t,e,"icon-shape default"),m=e.pos==="t",g=l+d*2,y=l+d*2,{nodeBorder:v,mainBkg:x}=r,{stylesMap:b}=wc(e),T=-y/2,S=-g/2,w=e.label?8:0,k=Ze.svg(h),C=Je(e,{});e.look!=="handDrawn"&&(C.roughness=0,C.fillStyle="solid");let A=b.get("fill");C.stroke=A??x;let L=k.path(Fs(T,S,y,g,5),C),I=Math.max(y,f.width),R=g+f.height+w,E=k.rectangle(-I/2,-R/2,I,R,{...C,fill:"transparent",stroke:"none"}),_=h.insert(()=>L,":first-child").attr("class","icon-shape2"),D=h.insert(()=>E);if(e.icon){let O=h.append("g");O.html(`${await _s(e.icon,{height:l,width:l,fallbackPrefix:""})}`);let N=O.node().getBBox(),P=N.width,B=N.height,F=N.x,V=N.y;O.attr("transform",`translate(${-P/2-F},${m?f.height/2+w/2-B/2-V:-f.height/2-w/2-B/2-V})`),O.attr("style",`color: ${b.get("stroke")??v};`)}return p.attr("transform",`translate(${-f.width/2-(f.x-(f.left??0))},${m?-R/2:R/2-f.height})`),_.attr("transform",`translate(0,${m?f.height/2+w/2:-f.height/2-w/2})`),Qe(e,D),e.intersect=function(O){if(X.info("iconSquare intersect",e,O),!e.label)return Xe.rect(e,O);let N=e.x??0,P=e.y??0,B=e.height??0,F=[];return m?F=[{x:N-f.width/2,y:P-B/2},{x:N+f.width/2,y:P-B/2},{x:N+f.width/2,y:P-B/2+f.height+w},{x:N+y/2,y:P-B/2+f.height+w},{x:N+y/2,y:P+B/2},{x:N-y/2,y:P+B/2},{x:N-y/2,y:P-B/2+f.height+w},{x:N-f.width/2,y:P-B/2+f.height+w}]:F=[{x:N-y/2,y:P-B/2},{x:N+y/2,y:P-B/2},{x:N+y/2,y:P-B/2+g},{x:N+f.width/2,y:P-B/2+g},{x:N+f.width/2/2,y:P+B/2},{x:N-f.width/2,y:P+B/2},{x:N-f.width/2,y:P-B/2+g},{x:N-y/2,y:P-B/2+g}],Xe.polygon(e,F,O)},h}var oee=M(()=>{"use strict";Ht();pt();nc();Ut();$t();Zd();It();o(see,"iconRounded")});async function lee(t,e,{config:{themeVariables:r,flowchart:n}}){let{labelStyles:i}=je(e);e.labelStyle=i;let a=e.assetHeight??48,s=e.assetWidth??48,l=Math.max(a,s),u=n?.wrappingWidth;e.width=Math.max(l,u??0);let{shapeSvg:h,bbox:f,halfPadding:d,label:p}=await ut(t,e,"icon-shape default"),m=e.pos==="t",g=l+d*2,y=l+d*2,{nodeBorder:v,mainBkg:x}=r,{stylesMap:b}=wc(e),T=-y/2,S=-g/2,w=e.label?8:0,k=Ze.svg(h),C=Je(e,{});e.look!=="handDrawn"&&(C.roughness=0,C.fillStyle="solid");let A=b.get("fill");C.stroke=A??x;let L=k.path(Fs(T,S,y,g,.1),C),I=Math.max(y,f.width),R=g+f.height+w,E=k.rectangle(-I/2,-R/2,I,R,{...C,fill:"transparent",stroke:"none"}),_=h.insert(()=>L,":first-child"),D=h.insert(()=>E);if(e.icon){let O=h.append("g");O.html(`${await _s(e.icon,{height:l,width:l,fallbackPrefix:""})}`);let N=O.node().getBBox(),P=N.width,B=N.height,F=N.x,V=N.y;O.attr("transform",`translate(${-P/2-F},${m?f.height/2+w/2-B/2-V:-f.height/2-w/2-B/2-V})`),O.attr("style",`color: ${b.get("stroke")??v};`)}return p.attr("transform",`translate(${-f.width/2-(f.x-(f.left??0))},${m?-R/2:R/2-f.height})`),_.attr("transform",`translate(0,${m?f.height/2+w/2:-f.height/2-w/2})`),Qe(e,D),e.intersect=function(O){if(X.info("iconSquare intersect",e,O),!e.label)return Xe.rect(e,O);let N=e.x??0,P=e.y??0,B=e.height??0,F=[];return m?F=[{x:N-f.width/2,y:P-B/2},{x:N+f.width/2,y:P-B/2},{x:N+f.width/2,y:P-B/2+f.height+w},{x:N+y/2,y:P-B/2+f.height+w},{x:N+y/2,y:P+B/2},{x:N-y/2,y:P+B/2},{x:N-y/2,y:P-B/2+f.height+w},{x:N-f.width/2,y:P-B/2+f.height+w}]:F=[{x:N-y/2,y:P-B/2},{x:N+y/2,y:P-B/2},{x:N+y/2,y:P-B/2+g},{x:N+f.width/2,y:P-B/2+g},{x:N+f.width/2/2,y:P+B/2},{x:N-f.width/2,y:P+B/2},{x:N-f.width/2,y:P-B/2+g},{x:N-y/2,y:P-B/2+g}],Xe.polygon(e,F,O)},h}var cee=M(()=>{"use strict";Ht();pt();nc();Ut();Zd();$t();It();o(lee,"iconSquare")});async function uee(t,e,{config:{flowchart:r}}){let n=new Image;n.src=e?.img??"",await n.decode();let i=Number(n.naturalWidth.toString().replace("px","")),a=Number(n.naturalHeight.toString().replace("px",""));e.imageAspectRatio=i/a;let{labelStyles:s}=je(e);e.labelStyle=s;let l=r?.wrappingWidth;e.defaultWidth=r?.wrappingWidth;let u=Math.max(e.label?l??0:0,e?.assetWidth??i),h=e.constraint==="on"&&e?.assetHeight?e.assetHeight*e.imageAspectRatio:u,f=e.constraint==="on"?h/e.imageAspectRatio:e?.assetHeight??a;e.width=Math.max(h,l??0);let{shapeSvg:d,bbox:p,label:m}=await ut(t,e,"image-shape default"),g=e.pos==="t",y=-h/2,v=-f/2,x=e.label?8:0,b=Ze.svg(d),T=Je(e,{});e.look!=="handDrawn"&&(T.roughness=0,T.fillStyle="solid");let S=b.rectangle(y,v,h,f,T),w=Math.max(h,p.width),k=f+p.height+x,C=b.rectangle(-w/2,-k/2,w,k,{...T,fill:"none",stroke:"none"}),A=d.insert(()=>S,":first-child"),L=d.insert(()=>C);if(e.img){let I=d.append("image");I.attr("href",e.img),I.attr("width",h),I.attr("height",f),I.attr("preserveAspectRatio","none"),I.attr("transform",`translate(${-h/2},${g?k/2-f:-k/2})`)}return m.attr("transform",`translate(${-p.width/2-(p.x-(p.left??0))},${g?-f/2-p.height/2-x/2:f/2-p.height/2+x/2})`),A.attr("transform",`translate(0,${g?p.height/2+x/2:-p.height/2-x/2})`),Qe(e,L),e.intersect=function(I){if(X.info("iconSquare intersect",e,I),!e.label)return Xe.rect(e,I);let R=e.x??0,E=e.y??0,_=e.height??0,D=[];return g?D=[{x:R-p.width/2,y:E-_/2},{x:R+p.width/2,y:E-_/2},{x:R+p.width/2,y:E-_/2+p.height+x},{x:R+h/2,y:E-_/2+p.height+x},{x:R+h/2,y:E+_/2},{x:R-h/2,y:E+_/2},{x:R-h/2,y:E-_/2+p.height+x},{x:R-p.width/2,y:E-_/2+p.height+x}]:D=[{x:R-h/2,y:E-_/2},{x:R+h/2,y:E-_/2},{x:R+h/2,y:E-_/2+f},{x:R+p.width/2,y:E-_/2+f},{x:R+p.width/2/2,y:E+_/2},{x:R-p.width/2,y:E+_/2},{x:R-p.width/2,y:E-_/2+f},{x:R-h/2,y:E-_/2+f}],Xe.polygon(e,D,I)},d}var hee=M(()=>{"use strict";Ht();pt();Ut();$t();It();o(uee,"imageSquare")});async function fee(t,e){let{labelStyles:r,nodeStyles:n}=je(e);e.labelStyle=r;let{shapeSvg:i,bbox:a}=await ut(t,e,st(e)),s=Math.max(a.width+(e.padding??0)*2,e?.width??0),l=Math.max(a.height+(e.padding??0)*2,e?.height??0),u=[{x:0,y:0},{x:s,y:0},{x:s+3*l/6,y:-l},{x:-3*l/6,y:-l}],h,{cssStyles:f}=e;if(e.look==="handDrawn"){let d=Ze.svg(i),p=Je(e,{}),m=Vt(u),g=d.path(m,p);h=i.insert(()=>g,":first-child").attr("transform",`translate(${-s/2}, ${l/2})`),f&&h.attr("style",f)}else h=Bs(i,s,l,u);return n&&h.attr("style",n),e.width=s,e.height=l,Qe(e,h),e.intersect=function(d){return Xe.polygon(e,u,d)},i}var dee=M(()=>{"use strict";It();Ut();$t();Ht();Jh();o(fee,"inv_trapezoid")});async function Jd(t,e,r){let{labelStyles:n,nodeStyles:i}=je(e);e.labelStyle=n;let{shapeSvg:a,bbox:s}=await ut(t,e,st(e)),l=Math.max(s.width+r.labelPaddingX*2,e?.width||0),u=Math.max(s.height+r.labelPaddingY*2,e?.height||0),h=-l/2,f=-u/2,d,{rx:p,ry:m}=e,{cssStyles:g}=e;if(r?.rx&&r.ry&&(p=r.rx,m=r.ry),e.look==="handDrawn"){let y=Ze.svg(a),v=Je(e,{}),x=p||m?y.path(Fs(h,f,l,u,p||0),v):y.rectangle(h,f,l,u,v);d=a.insert(()=>x,":first-child"),d.attr("class","basic label-container").attr("style",Cn(g))}else d=a.insert("rect",":first-child"),d.attr("class","basic label-container").attr("style",i).attr("rx",Cn(p)).attr("ry",Cn(m)).attr("x",h).attr("y",f).attr("width",l).attr("height",u);return Qe(e,d),e.calcIntersect=function(y,v){return Xe.rect(y,v)},e.intersect=function(y){return Xe.rect(e,y)},a}var I2=M(()=>{"use strict";It();Ut();Zd();$t();Ht();tr();o(Jd,"drawRect")});async function pee(t,e){let{shapeSvg:r,bbox:n,label:i}=await ut(t,e,"label"),a=r.insert("rect",":first-child");return a.attr("width",.1).attr("height",.1),r.attr("class","label edgeLabel"),i.attr("transform",`translate(${-(n.width/2)-(n.x-(n.left??0))}, ${-(n.height/2)-(n.y-(n.top??0))})`),Qe(e,a),e.intersect=function(u){return Xe.rect(e,u)},r}var mee=M(()=>{"use strict";I2();It();Ut();o(pee,"labelRect")});async function gee(t,e){let{labelStyles:r,nodeStyles:n}=je(e);e.labelStyle=r;let{shapeSvg:i,bbox:a}=await ut(t,e,st(e)),s=Math.max(a.width+(e.padding??0),e?.width??0),l=Math.max(a.height+(e.padding??0),e?.height??0),u=[{x:0,y:0},{x:s+3*l/6,y:0},{x:s,y:-l},{x:-(3*l)/6,y:-l}],h,{cssStyles:f}=e;if(e.look==="handDrawn"){let d=Ze.svg(i),p=Je(e,{}),m=Vt(u),g=d.path(m,p);h=i.insert(()=>g,":first-child").attr("transform",`translate(${-s/2}, ${l/2})`),f&&h.attr("style",f)}else h=Bs(i,s,l,u);return n&&h.attr("style",n),e.width=s,e.height=l,Qe(e,h),e.intersect=function(d){return Xe.polygon(e,u,d)},i}var yee=M(()=>{"use strict";It();Ut();$t();Ht();Jh();o(gee,"lean_left")});async function vee(t,e){let{labelStyles:r,nodeStyles:n}=je(e);e.labelStyle=r;let{shapeSvg:i,bbox:a}=await ut(t,e,st(e)),s=Math.max(a.width+(e.padding??0),e?.width??0),l=Math.max(a.height+(e.padding??0),e?.height??0),u=[{x:-3*l/6,y:0},{x:s,y:0},{x:s+3*l/6,y:-l},{x:0,y:-l}],h,{cssStyles:f}=e;if(e.look==="handDrawn"){let d=Ze.svg(i),p=Je(e,{}),m=Vt(u),g=d.path(m,p);h=i.insert(()=>g,":first-child").attr("transform",`translate(${-s/2}, ${l/2})`),f&&h.attr("style",f)}else h=Bs(i,s,l,u);return n&&h.attr("style",n),e.width=s,e.height=l,Qe(e,h),e.intersect=function(d){return Xe.polygon(e,u,d)},i}var xee=M(()=>{"use strict";It();Ut();$t();Ht();Jh();o(vee,"lean_right")});function bee(t,e){let{labelStyles:r,nodeStyles:n}=je(e);e.label="",e.labelStyle=r;let i=t.insert("g").attr("class",st(e)).attr("id",e.domId??e.id),{cssStyles:a}=e,s=Math.max(35,e?.width??0),l=Math.max(35,e?.height??0),u=7,h=[{x:s,y:0},{x:0,y:l+u/2},{x:s-2*u,y:l+u/2},{x:0,y:2*l},{x:s,y:l-u/2},{x:2*u,y:l-u/2}],f=Ze.svg(i),d=Je(e,{});e.look!=="handDrawn"&&(d.roughness=0,d.fillStyle="solid");let p=Vt(h),m=f.path(p,d),g=i.insert(()=>m,":first-child");return a&&e.look!=="handDrawn"&&g.selectAll("path").attr("style",a),n&&e.look!=="handDrawn"&&g.selectAll("path").attr("style",n),g.attr("transform",`translate(-${s/2},${-l})`),Qe(e,g),e.intersect=function(y){return X.info("lightningBolt intersect",e,y),Xe.polygon(e,h,y)},i}var Tee=M(()=>{"use strict";pt();It();$t();Ht();Ut();It();o(bee,"lightningBolt")});async function wee(t,e){let{labelStyles:r,nodeStyles:n}=je(e);e.labelStyle=r;let{shapeSvg:i,bbox:a,label:s}=await ut(t,e,st(e)),l=Math.max(a.width+(e.padding??0),e.width??0),u=l/2,h=u/(2.5+l/50),f=Math.max(a.height+h+(e.padding??0),e.height??0),d=f*.1,p,{cssStyles:m}=e;if(e.look==="handDrawn"){let g=Ze.svg(i),y=xRe(0,0,l,f,u,h,d),v=bRe(0,h,l,f,u,h),x=Je(e,{}),b=g.path(y,x),T=g.path(v,x);i.insert(()=>T,":first-child").attr("class","line"),p=i.insert(()=>b,":first-child"),p.attr("class","basic label-container"),m&&p.attr("style",m)}else{let g=vRe(0,0,l,f,u,h,d);p=i.insert("path",":first-child").attr("d",g).attr("class","basic label-container").attr("style",Cn(m)).attr("style",n)}return p.attr("label-offset-y",h),p.attr("transform",`translate(${-l/2}, ${-(f/2+h)})`),Qe(e,p),s.attr("transform",`translate(${-(a.width/2)-(a.x-(a.left??0))}, ${-(a.height/2)+h-(a.y-(a.top??0))})`),e.intersect=function(g){let y=Xe.rect(e,g),v=y.x-(e.x??0);if(u!=0&&(Math.abs(v)<(e.width??0)/2||Math.abs(v)==(e.width??0)/2&&Math.abs(y.y-(e.y??0))>(e.height??0)/2-h)){let x=h*h*(1-v*v/(u*u));x>0&&(x=Math.sqrt(x)),x=h-x,g.y-(e.y??0)>0&&(x=-x),y.y+=x}return y},i}var vRe,xRe,bRe,kee=M(()=>{"use strict";It();Ut();$t();Ht();tr();vRe=o((t,e,r,n,i,a,s)=>[`M${t},${e+a}`,`a${i},${a} 0,0,0 ${r},0`,`a${i},${a} 0,0,0 ${-r},0`,`l0,${n}`,`a${i},${a} 0,0,0 ${r},0`,`l0,${-n}`,`M${t},${e+a+s}`,`a${i},${a} 0,0,0 ${r},0`].join(" "),"createCylinderPathD"),xRe=o((t,e,r,n,i,a,s)=>[`M${t},${e+a}`,`M${t+r},${e+a}`,`a${i},${a} 0,0,0 ${-r},0`,`l0,${n}`,`a${i},${a} 0,0,0 ${r},0`,`l0,${-n}`,`M${t},${e+a+s}`,`a${i},${a} 0,0,0 ${r},0`].join(" "),"createOuterCylinderPathD"),bRe=o((t,e,r,n,i,a)=>[`M${t-r/2},${-n/2}`,`a${i},${a} 0,0,0 ${r},0`].join(" "),"createInnerCylinderPathD");o(wee,"linedCylinder")});async function Eee(t,e){let{labelStyles:r,nodeStyles:n}=je(e);e.labelStyle=r;let{shapeSvg:i,bbox:a,label:s}=await ut(t,e,st(e)),l=Math.max(a.width+(e.padding??0)*2,e?.width??0),u=Math.max(a.height+(e.padding??0)*2,e?.height??0),h=u/4,f=u+h,{cssStyles:d}=e,p=Ze.svg(i),m=Je(e,{});e.look!=="handDrawn"&&(m.roughness=0,m.fillStyle="solid");let g=[{x:-l/2-l/2*.1,y:-f/2},{x:-l/2-l/2*.1,y:f/2},...Go(-l/2-l/2*.1,f/2,l/2+l/2*.1,f/2,h,.8),{x:l/2+l/2*.1,y:-f/2},{x:-l/2-l/2*.1,y:-f/2},{x:-l/2,y:-f/2},{x:-l/2,y:f/2*1.1},{x:-l/2,y:-f/2}],y=p.polygon(g.map(x=>[x.x,x.y]),m),v=i.insert(()=>y,":first-child");return v.attr("class","basic label-container"),d&&e.look!=="handDrawn"&&v.selectAll("path").attr("style",d),n&&e.look!=="handDrawn"&&v.selectAll("path").attr("style",n),v.attr("transform",`translate(0,${-h/2})`),s.attr("transform",`translate(${-l/2+(e.padding??0)+l/2*.1/2-(a.x-(a.left??0))},${-u/2+(e.padding??0)-h/2-(a.y-(a.top??0))})`),Qe(e,v),e.intersect=function(x){return Xe.polygon(e,g,x)},i}var See=M(()=>{"use strict";It();Ut();Ht();$t();o(Eee,"linedWaveEdgedRect")});async function Cee(t,e){let{labelStyles:r,nodeStyles:n}=je(e);e.labelStyle=r;let{shapeSvg:i,bbox:a,label:s}=await ut(t,e,st(e)),l=Math.max(a.width+(e.padding??0)*2,e?.width??0),u=Math.max(a.height+(e.padding??0)*2,e?.height??0),h=5,f=-l/2,d=-u/2,{cssStyles:p}=e,m=Ze.svg(i),g=Je(e,{}),y=[{x:f-h,y:d+h},{x:f-h,y:d+u+h},{x:f+l-h,y:d+u+h},{x:f+l-h,y:d+u},{x:f+l,y:d+u},{x:f+l,y:d+u-h},{x:f+l+h,y:d+u-h},{x:f+l+h,y:d-h},{x:f+h,y:d-h},{x:f+h,y:d},{x:f,y:d},{x:f,y:d+h}],v=[{x:f,y:d+h},{x:f+l-h,y:d+h},{x:f+l-h,y:d+u},{x:f+l,y:d+u},{x:f+l,y:d},{x:f,y:d}];e.look!=="handDrawn"&&(g.roughness=0,g.fillStyle="solid");let x=Vt(y),b=m.path(x,g),T=Vt(v),S=m.path(T,{...g,fill:"none"}),w=i.insert(()=>S,":first-child");return w.insert(()=>b,":first-child"),w.attr("class","basic label-container"),p&&e.look!=="handDrawn"&&w.selectAll("path").attr("style",p),n&&e.look!=="handDrawn"&&w.selectAll("path").attr("style",n),s.attr("transform",`translate(${-(a.width/2)-h-(a.x-(a.left??0))}, ${-(a.height/2)+h-(a.y-(a.top??0))})`),Qe(e,w),e.intersect=function(k){return Xe.polygon(e,y,k)},i}var Aee=M(()=>{"use strict";It();$t();Ht();Ut();o(Cee,"multiRect")});async function _ee(t,e){let{labelStyles:r,nodeStyles:n}=je(e);e.labelStyle=r;let{shapeSvg:i,bbox:a,label:s}=await ut(t,e,st(e)),l=Math.max(a.width+(e.padding??0)*2,e?.width??0),u=Math.max(a.height+(e.padding??0)*2,e?.height??0),h=u/4,f=u+h,d=-l/2,p=-f/2,m=5,{cssStyles:g}=e,y=Go(d-m,p+f+m,d+l-m,p+f+m,h,.8),v=y?.[y.length-1],x=[{x:d-m,y:p+m},{x:d-m,y:p+f+m},...y,{x:d+l-m,y:v.y-m},{x:d+l,y:v.y-m},{x:d+l,y:v.y-2*m},{x:d+l+m,y:v.y-2*m},{x:d+l+m,y:p-m},{x:d+m,y:p-m},{x:d+m,y:p},{x:d,y:p},{x:d,y:p+m}],b=[{x:d,y:p+m},{x:d+l-m,y:p+m},{x:d+l-m,y:v.y-m},{x:d+l,y:v.y-m},{x:d+l,y:p},{x:d,y:p}],T=Ze.svg(i),S=Je(e,{});e.look!=="handDrawn"&&(S.roughness=0,S.fillStyle="solid");let w=Vt(x),k=T.path(w,S),C=Vt(b),A=T.path(C,S),L=i.insert(()=>k,":first-child");return L.insert(()=>A),L.attr("class","basic label-container"),g&&e.look!=="handDrawn"&&L.selectAll("path").attr("style",g),n&&e.look!=="handDrawn"&&L.selectAll("path").attr("style",n),L.attr("transform",`translate(0,${-h/2})`),s.attr("transform",`translate(${-(a.width/2)-m-(a.x-(a.left??0))}, ${-(a.height/2)+m-h/2-(a.y-(a.top??0))})`),Qe(e,L),e.intersect=function(I){return Xe.polygon(e,x,I)},i}var Dee=M(()=>{"use strict";It();Ut();Ht();$t();o(_ee,"multiWaveEdgedRectangle")});async function Lee(t,e,{config:{themeVariables:r}}){let{labelStyles:n,nodeStyles:i}=je(e);e.labelStyle=n,e.useHtmlLabels||Qt().flowchart?.htmlLabels!==!1||(e.centerLabel=!0);let{shapeSvg:s,bbox:l,label:u}=await ut(t,e,st(e)),h=Math.max(l.width+(e.padding??0)*2,e?.width??0),f=Math.max(l.height+(e.padding??0)*2,e?.height??0),d=-h/2,p=-f/2,{cssStyles:m}=e,g=Ze.svg(s),y=Je(e,{fill:r.noteBkgColor,stroke:r.noteBorderColor});e.look!=="handDrawn"&&(y.roughness=0,y.fillStyle="solid");let v=g.rectangle(d,p,h,f,y),x=s.insert(()=>v,":first-child");return x.attr("class","basic label-container"),m&&e.look!=="handDrawn"&&x.selectAll("path").attr("style",m),i&&e.look!=="handDrawn"&&x.selectAll("path").attr("style",i),u.attr("transform",`translate(${-l.width/2-(l.x-(l.left??0))}, ${-(l.height/2)-(l.y-(l.top??0))})`),Qe(e,x),e.intersect=function(b){return Xe.rect(e,b)},s}var Ree=M(()=>{"use strict";Ht();Ut();$t();It();qn();o(Lee,"note")});async function Nee(t,e){let{labelStyles:r,nodeStyles:n}=je(e);e.labelStyle=r;let{shapeSvg:i,bbox:a}=await ut(t,e,st(e)),s=a.width+e.padding,l=a.height+e.padding,u=s+l,h=.5,f=[{x:u/2,y:0},{x:u,y:-u/2},{x:u/2,y:-u},{x:0,y:-u/2}],d,{cssStyles:p}=e;if(e.look==="handDrawn"){let m=Ze.svg(i),g=Je(e,{}),y=TRe(0,0,u),v=m.path(y,g);d=i.insert(()=>v,":first-child").attr("transform",`translate(${-u/2+h}, ${u/2})`),p&&d.attr("style",p)}else d=Bs(i,u,u,f),d.attr("transform",`translate(${-u/2+h}, ${u/2})`);return n&&d.attr("style",n),Qe(e,d),e.calcIntersect=function(m,g){let y=m.width,v=[{x:y/2,y:0},{x:y,y:-y/2},{x:y/2,y:-y},{x:0,y:-y/2}],x=Xe.polygon(m,v,g);return{x:x.x-.5,y:x.y-.5}},e.intersect=function(m){return this.calcIntersect(e,m)},i}var TRe,Mee=M(()=>{"use strict";It();Ut();$t();Ht();Jh();TRe=o((t,e,r)=>[`M${t+r/2},${e}`,`L${t+r},${e-r/2}`,`L${t+r/2},${e-r}`,`L${t},${e-r/2}`,"Z"].join(" "),"createDecisionBoxPathD");o(Nee,"question")});async function Iee(t,e){let{labelStyles:r,nodeStyles:n}=je(e);e.labelStyle=r;let{shapeSvg:i,bbox:a,label:s}=await ut(t,e,st(e)),l=Math.max(a.width+(e.padding??0),e?.width??0),u=Math.max(a.height+(e.padding??0),e?.height??0),h=-l/2,f=-u/2,d=f/2,p=[{x:h+d,y:f},{x:h,y:0},{x:h+d,y:-f},{x:-h,y:-f},{x:-h,y:f}],{cssStyles:m}=e,g=Ze.svg(i),y=Je(e,{});e.look!=="handDrawn"&&(y.roughness=0,y.fillStyle="solid");let v=Vt(p),x=g.path(v,y),b=i.insert(()=>x,":first-child");return b.attr("class","basic label-container"),m&&e.look!=="handDrawn"&&b.selectAll("path").attr("style",m),n&&e.look!=="handDrawn"&&b.selectAll("path").attr("style",n),b.attr("transform",`translate(${-d/2},0)`),s.attr("transform",`translate(${-d/2-a.width/2-(a.x-(a.left??0))}, ${-(a.height/2)-(a.y-(a.top??0))})`),Qe(e,b),e.intersect=function(T){return Xe.polygon(e,p,T)},i}var Oee=M(()=>{"use strict";It();Ut();$t();Ht();o(Iee,"rect_left_inv_arrow")});function wRe(t,e){e&&t.attr("style",e)}async function kRe(t){let e=qe(document.createElementNS("http://www.w3.org/2000/svg","foreignObject")),r=e.append("xhtml:div"),n=ge(),i=t.label;t.label&&kn(t.label)&&(i=await kh(t.label.replace(tt.lineBreakRegex,` +`),n));let s='"+i+"";return r.html(sr(s,n)),wRe(r,t.labelStyle),r.style("display","inline-block"),r.style("padding-right","1px"),r.style("white-space","nowrap"),r.attr("xmlns","http://www.w3.org/1999/xhtml"),e.node()}var ERe,kc,sw=M(()=>{"use strict";yr();Xt();gr();pt();tr();o(wRe,"applyStyle");o(kRe,"addHtmlLabel");ERe=o(async(t,e,r,n)=>{let i=t||"";if(typeof i=="object"&&(i=i[0]),vr(ge().flowchart.htmlLabels)){i=i.replace(/\\n|\n/g,"
    "),X.info("vertexText"+i);let a={isNode:n,label:Ji(i).replace(/fa[blrs]?:fa-[\w-]+/g,l=>``),labelStyle:e&&e.replace("fill:","color:")};return await kRe(a)}else{let a=document.createElementNS("http://www.w3.org/2000/svg","text");a.setAttribute("style",e.replace("color:","fill:"));let s=[];typeof i=="string"?s=i.split(/\\n|\n|/gi):Array.isArray(i)?s=i:s=[];for(let l of s){let u=document.createElementNS("http://www.w3.org/2000/svg","tspan");u.setAttributeNS("http://www.w3.org/XML/1998/namespace","xml:space","preserve"),u.setAttribute("dy","1em"),u.setAttribute("x","0"),r?u.setAttribute("class","title-row"):u.setAttribute("class","row"),u.textContent=l.trim(),a.appendChild(u)}return a}},"createLabel"),kc=ERe});async function Pee(t,e){let{labelStyles:r,nodeStyles:n}=je(e);e.labelStyle=r;let i;e.cssClasses?i="node "+e.cssClasses:i="node default";let a=t.insert("g").attr("class",i).attr("id",e.domId||e.id),s=a.insert("g"),l=a.insert("g").attr("class","label").attr("style",n),u=e.description,h=e.label,f=l.node().appendChild(await kc(h,e.labelStyle,!0,!0)),d={width:0,height:0};if(vr(ge()?.flowchart?.htmlLabels)){let A=f.children[0],L=qe(f);d=A.getBoundingClientRect(),L.attr("width",d.width),L.attr("height",d.height)}X.info("Text 2",u);let p=u||[],m=f.getBBox(),g=l.node().appendChild(await kc(p.join?p.join("
    "):p,e.labelStyle,!0,!0)),y=g.children[0],v=qe(g);d=y.getBoundingClientRect(),v.attr("width",d.width),v.attr("height",d.height);let x=(e.padding||0)/2;qe(g).attr("transform","translate( "+(d.width>m.width?0:(m.width-d.width)/2)+", "+(m.height+x+5)+")"),qe(f).attr("transform","translate( "+(d.width(X.debug("Rough node insert CXC",I),R),":first-child"),k=a.insert(()=>(X.debug("Rough node insert CXC",I),I),":first-child")}else k=s.insert("rect",":first-child"),C=s.insert("line"),k.attr("class","outer title-state").attr("style",n).attr("x",-d.width/2-x).attr("y",-d.height/2-x).attr("width",d.width+(e.padding||0)).attr("height",d.height+(e.padding||0)),C.attr("class","divider").attr("x1",-d.width/2-x).attr("x2",d.width/2+x).attr("y1",-d.height/2-x+m.height+x).attr("y2",-d.height/2-x+m.height+x);return Qe(e,k),e.intersect=function(A){return Xe.rect(e,A)},a}var Bee=M(()=>{"use strict";yr();gr();It();sw();Ut();$t();Ht();Xt();Zd();pt();o(Pee,"rectWithTitle")});function ow(t,e,r,n,i,a,s){let u=(t+r)/2,h=(e+n)/2,f=Math.atan2(n-e,r-t),d=(r-t)/2,p=(n-e)/2,m=d/i,g=p/a,y=Math.sqrt(m**2+g**2);if(y>1)throw new Error("The given radii are too small to create an arc between the points.");let v=Math.sqrt(1-y**2),x=u+v*a*Math.sin(f)*(s?-1:1),b=h-v*i*Math.cos(f)*(s?-1:1),T=Math.atan2((e-b)/a,(t-x)/i),w=Math.atan2((n-b)/a,(r-x)/i)-T;s&&w<0&&(w+=2*Math.PI),!s&&w>0&&(w-=2*Math.PI);let k=[];for(let C=0;C<20;C++){let A=C/19,L=T+A*w,I=x+i*Math.cos(L),R=b+a*Math.sin(L);k.push({x:I,y:R})}return k}async function Fee(t,e){let{labelStyles:r,nodeStyles:n}=je(e);e.labelStyle=r;let{shapeSvg:i,bbox:a}=await ut(t,e,st(e)),s=e?.padding??0,l=e?.padding??0,u=(e?.width?e?.width:a.width)+s*2,h=(e?.height?e?.height:a.height)+l*2,f=e.radius||5,d=e.taper||5,{cssStyles:p}=e,m=Ze.svg(i),g=Je(e,{});e.stroke&&(g.stroke=e.stroke),e.look!=="handDrawn"&&(g.roughness=0,g.fillStyle="solid");let y=[{x:-u/2+d,y:-h/2},{x:u/2-d,y:-h/2},...ow(u/2-d,-h/2,u/2,-h/2+d,f,f,!0),{x:u/2,y:-h/2+d},{x:u/2,y:h/2-d},...ow(u/2,h/2-d,u/2-d,h/2,f,f,!0),{x:u/2-d,y:h/2},{x:-u/2+d,y:h/2},...ow(-u/2+d,h/2,-u/2,h/2-d,f,f,!0),{x:-u/2,y:h/2-d},{x:-u/2,y:-h/2+d},...ow(-u/2,-h/2+d,-u/2+d,-h/2,f,f,!0)],v=Vt(y),x=m.path(v,g),b=i.insert(()=>x,":first-child");return b.attr("class","basic label-container outer-path"),p&&e.look!=="handDrawn"&&b.selectChildren("path").attr("style",p),n&&e.look!=="handDrawn"&&b.selectChildren("path").attr("style",n),Qe(e,b),e.intersect=function(T){return Xe.polygon(e,y,T)},i}var $ee=M(()=>{"use strict";It();Ut();$t();Ht();o(ow,"generateArcPoints");o(Fee,"roundedRect")});async function zee(t,e){let{labelStyles:r,nodeStyles:n}=je(e);e.labelStyle=r;let{shapeSvg:i,bbox:a,label:s}=await ut(t,e,st(e)),l=e?.padding??0,u=Math.max(a.width+(e.padding??0)*2,e?.width??0),h=Math.max(a.height+(e.padding??0)*2,e?.height??0),f=-a.width/2-l,d=-a.height/2-l,{cssStyles:p}=e,m=Ze.svg(i),g=Je(e,{});e.look!=="handDrawn"&&(g.roughness=0,g.fillStyle="solid");let y=[{x:f,y:d},{x:f+u+8,y:d},{x:f+u+8,y:d+h},{x:f-8,y:d+h},{x:f-8,y:d},{x:f,y:d},{x:f,y:d+h}],v=m.polygon(y.map(b=>[b.x,b.y]),g),x=i.insert(()=>v,":first-child");return x.attr("class","basic label-container").attr("style",Cn(p)),n&&e.look!=="handDrawn"&&x.selectAll("path").attr("style",n),p&&e.look!=="handDrawn"&&x.selectAll("path").attr("style",n),s.attr("transform",`translate(${-u/2+4+(e.padding??0)-(a.x-(a.left??0))},${-h/2+(e.padding??0)-(a.y-(a.top??0))})`),Qe(e,x),e.intersect=function(b){return Xe.rect(e,b)},i}var Gee=M(()=>{"use strict";It();Ut();$t();Ht();tr();o(zee,"shadedProcess")});async function Vee(t,e){let{labelStyles:r,nodeStyles:n}=je(e);e.labelStyle=r;let{shapeSvg:i,bbox:a,label:s}=await ut(t,e,st(e)),l=Math.max(a.width+(e.padding??0)*2,e?.width??0),u=Math.max(a.height+(e.padding??0)*2,e?.height??0),h=-l/2,f=-u/2,{cssStyles:d}=e,p=Ze.svg(i),m=Je(e,{});e.look!=="handDrawn"&&(m.roughness=0,m.fillStyle="solid");let g=[{x:h,y:f},{x:h,y:f+u},{x:h+l,y:f+u},{x:h+l,y:f-u/2}],y=Vt(g),v=p.path(y,m),x=i.insert(()=>v,":first-child");return x.attr("class","basic label-container"),d&&e.look!=="handDrawn"&&x.selectChildren("path").attr("style",d),n&&e.look!=="handDrawn"&&x.selectChildren("path").attr("style",n),x.attr("transform",`translate(0, ${u/4})`),s.attr("transform",`translate(${-l/2+(e.padding??0)-(a.x-(a.left??0))}, ${-u/4+(e.padding??0)-(a.y-(a.top??0))})`),Qe(e,x),e.intersect=function(b){return Xe.polygon(e,g,b)},i}var Uee=M(()=>{"use strict";It();Ut();$t();Ht();o(Vee,"slopedRect")});async function Hee(t,e){let r={rx:0,ry:0,classes:"",labelPaddingX:e.labelPaddingX??(e?.padding||0)*2,labelPaddingY:(e?.padding||0)*1};return Jd(t,e,r)}var qee=M(()=>{"use strict";I2();o(Hee,"squareRect")});async function Wee(t,e){let{labelStyles:r,nodeStyles:n}=je(e);e.labelStyle=r;let{shapeSvg:i,bbox:a}=await ut(t,e,st(e)),s=a.height+e.padding,l=a.width+s/4+e.padding,u=s/2,{cssStyles:h}=e,f=Ze.svg(i),d=Je(e,{});e.look!=="handDrawn"&&(d.roughness=0,d.fillStyle="solid");let p=[{x:-l/2+u,y:-s/2},{x:l/2-u,y:-s/2},...Kd(-l/2+u,0,u,50,90,270),{x:l/2-u,y:s/2},...Kd(l/2-u,0,u,50,270,450)],m=Vt(p),g=f.path(m,d),y=i.insert(()=>g,":first-child");return y.attr("class","basic label-container outer-path"),h&&e.look!=="handDrawn"&&y.selectChildren("path").attr("style",h),n&&e.look!=="handDrawn"&&y.selectChildren("path").attr("style",n),Qe(e,y),e.intersect=function(v){return Xe.polygon(e,p,v)},i}var Yee=M(()=>{"use strict";It();Ut();$t();Ht();o(Wee,"stadium")});async function Xee(t,e){return Jd(t,e,{rx:5,ry:5,classes:"flowchart-node"})}var jee=M(()=>{"use strict";I2();o(Xee,"state")});function Kee(t,e,{config:{themeVariables:r}}){let{labelStyles:n,nodeStyles:i}=je(e);e.labelStyle=n;let{cssStyles:a}=e,{lineColor:s,stateBorder:l,nodeBorder:u}=r,h=t.insert("g").attr("class","node default").attr("id",e.domId||e.id),f=Ze.svg(h),d=Je(e,{});e.look!=="handDrawn"&&(d.roughness=0,d.fillStyle="solid");let p=f.circle(0,0,14,{...d,stroke:s,strokeWidth:2}),m=l??u,g=f.circle(0,0,5,{...d,fill:m,stroke:m,strokeWidth:2,fillStyle:"solid"}),y=h.insert(()=>p,":first-child");return y.insert(()=>g),a&&y.selectAll("path").attr("style",a),i&&y.selectAll("path").attr("style",i),Qe(e,y),e.intersect=function(v){return Xe.circle(e,7,v)},h}var Qee=M(()=>{"use strict";Ht();Ut();$t();It();o(Kee,"stateEnd")});function Zee(t,e,{config:{themeVariables:r}}){let{lineColor:n}=r,i=t.insert("g").attr("class","node default").attr("id",e.domId||e.id),a;if(e.look==="handDrawn"){let l=Ze.svg(i).circle(0,0,14,iJ(n));a=i.insert(()=>l),a.attr("class","state-start").attr("r",7).attr("width",14).attr("height",14)}else a=i.insert("circle",":first-child"),a.attr("class","state-start").attr("r",7).attr("width",14).attr("height",14);return Qe(e,a),e.intersect=function(s){return Xe.circle(e,7,s)},i}var Jee=M(()=>{"use strict";Ht();Ut();$t();It();o(Zee,"stateStart")});async function ete(t,e){let{labelStyles:r,nodeStyles:n}=je(e);e.labelStyle=r;let{shapeSvg:i,bbox:a}=await ut(t,e,st(e)),s=(e?.padding||0)/2,l=a.width+e.padding,u=a.height+e.padding,h=-a.width/2-s,f=-a.height/2-s,d=[{x:0,y:0},{x:l,y:0},{x:l,y:-u},{x:0,y:-u},{x:0,y:0},{x:-8,y:0},{x:l+8,y:0},{x:l+8,y:-u},{x:-8,y:-u},{x:-8,y:0}];if(e.look==="handDrawn"){let p=Ze.svg(i),m=Je(e,{}),g=p.rectangle(h-8,f,l+16,u,m),y=p.line(h,f,h,f+u,m),v=p.line(h+l,f,h+l,f+u,m);i.insert(()=>y,":first-child"),i.insert(()=>v,":first-child");let x=i.insert(()=>g,":first-child"),{cssStyles:b}=e;x.attr("class","basic label-container").attr("style",Cn(b)),Qe(e,x)}else{let p=Bs(i,l,u,d);n&&p.attr("style",n),Qe(e,p)}return e.intersect=function(p){return Xe.polygon(e,d,p)},i}var tte=M(()=>{"use strict";It();Ut();$t();Ht();Jh();tr();o(ete,"subroutine")});async function rte(t,e){let{labelStyles:r,nodeStyles:n}=je(e);e.labelStyle=r;let{shapeSvg:i,bbox:a}=await ut(t,e,st(e)),s=Math.max(a.width+(e.padding??0)*2,e?.width??0),l=Math.max(a.height+(e.padding??0)*2,e?.height??0),u=-s/2,h=-l/2,f=.2*l,d=.2*l,{cssStyles:p}=e,m=Ze.svg(i),g=Je(e,{}),y=[{x:u-f/2,y:h},{x:u+s+f/2,y:h},{x:u+s+f/2,y:h+l},{x:u-f/2,y:h+l}],v=[{x:u+s-f/2,y:h+l},{x:u+s+f/2,y:h+l},{x:u+s+f/2,y:h+l-d}];e.look!=="handDrawn"&&(g.roughness=0,g.fillStyle="solid");let x=Vt(y),b=m.path(x,g),T=Vt(v),S=m.path(T,{...g,fillStyle:"solid"}),w=i.insert(()=>S,":first-child");return w.insert(()=>b,":first-child"),w.attr("class","basic label-container"),p&&e.look!=="handDrawn"&&w.selectAll("path").attr("style",p),n&&e.look!=="handDrawn"&&w.selectAll("path").attr("style",n),Qe(e,w),e.intersect=function(k){return Xe.polygon(e,y,k)},i}var nte=M(()=>{"use strict";It();$t();Ht();Ut();o(rte,"taggedRect")});async function ite(t,e){let{labelStyles:r,nodeStyles:n}=je(e);e.labelStyle=r;let{shapeSvg:i,bbox:a,label:s}=await ut(t,e,st(e)),l=Math.max(a.width+(e.padding??0)*2,e?.width??0),u=Math.max(a.height+(e.padding??0)*2,e?.height??0),h=u/4,f=.2*l,d=.2*u,p=u+h,{cssStyles:m}=e,g=Ze.svg(i),y=Je(e,{});e.look!=="handDrawn"&&(y.roughness=0,y.fillStyle="solid");let v=[{x:-l/2-l/2*.1,y:p/2},...Go(-l/2-l/2*.1,p/2,l/2+l/2*.1,p/2,h,.8),{x:l/2+l/2*.1,y:-p/2},{x:-l/2-l/2*.1,y:-p/2}],x=-l/2+l/2*.1,b=-p/2-d*.4,T=[{x:x+l-f,y:(b+u)*1.4},{x:x+l,y:b+u-d},{x:x+l,y:(b+u)*.9},...Go(x+l,(b+u)*1.3,x+l-f,(b+u)*1.5,-u*.03,.5)],S=Vt(v),w=g.path(S,y),k=Vt(T),C=g.path(k,{...y,fillStyle:"solid"}),A=i.insert(()=>C,":first-child");return A.insert(()=>w,":first-child"),A.attr("class","basic label-container"),m&&e.look!=="handDrawn"&&A.selectAll("path").attr("style",m),n&&e.look!=="handDrawn"&&A.selectAll("path").attr("style",n),A.attr("transform",`translate(0,${-h/2})`),s.attr("transform",`translate(${-l/2+(e.padding??0)-(a.x-(a.left??0))},${-u/2+(e.padding??0)-h/2-(a.y-(a.top??0))})`),Qe(e,A),e.intersect=function(L){return Xe.polygon(e,v,L)},i}var ate=M(()=>{"use strict";It();Ut();Ht();$t();o(ite,"taggedWaveEdgedRectangle")});async function ste(t,e){let{labelStyles:r,nodeStyles:n}=je(e);e.labelStyle=r;let{shapeSvg:i,bbox:a}=await ut(t,e,st(e)),s=Math.max(a.width+e.padding,e?.width||0),l=Math.max(a.height+e.padding,e?.height||0),u=-s/2,h=-l/2,f=i.insert("rect",":first-child");return f.attr("class","text").attr("style",n).attr("rx",0).attr("ry",0).attr("x",u).attr("y",h).attr("width",s).attr("height",l),Qe(e,f),e.intersect=function(d){return Xe.rect(e,d)},i}var ote=M(()=>{"use strict";It();Ut();$t();o(ste,"text")});async function lte(t,e){let{labelStyles:r,nodeStyles:n}=je(e);e.labelStyle=r;let{shapeSvg:i,bbox:a,label:s,halfPadding:l}=await ut(t,e,st(e)),u=e.look==="neo"?l*2:l,h=a.height+u,f=h/2,d=f/(2.5+h/50),p=a.width+d+u,{cssStyles:m}=e,g;if(e.look==="handDrawn"){let y=Ze.svg(i),v=CRe(0,0,p,h,d,f),x=ARe(0,0,p,h,d,f),b=y.path(v,Je(e,{})),T=y.path(x,Je(e,{fill:"none"}));g=i.insert(()=>T,":first-child"),g=i.insert(()=>b,":first-child"),g.attr("class","basic label-container"),m&&g.attr("style",m)}else{let y=SRe(0,0,p,h,d,f);g=i.insert("path",":first-child").attr("d",y).attr("class","basic label-container").attr("style",Cn(m)).attr("style",n),g.attr("class","basic label-container"),m&&g.selectAll("path").attr("style",m),n&&g.selectAll("path").attr("style",n)}return g.attr("label-offset-x",d),g.attr("transform",`translate(${-p/2}, ${h/2} )`),s.attr("transform",`translate(${-(a.width/2)-d-(a.x-(a.left??0))}, ${-(a.height/2)-(a.y-(a.top??0))})`),Qe(e,g),e.intersect=function(y){let v=Xe.rect(e,y),x=v.y-(e.y??0);if(f!=0&&(Math.abs(x)<(e.height??0)/2||Math.abs(x)==(e.height??0)/2&&Math.abs(v.x-(e.x??0))>(e.width??0)/2-d)){let b=d*d*(1-x*x/(f*f));b!=0&&(b=Math.sqrt(Math.abs(b))),b=d-b,y.x-(e.x??0)>0&&(b=-b),v.x+=b}return v},i}var SRe,CRe,ARe,cte=M(()=>{"use strict";It();$t();Ht();Ut();tr();SRe=o((t,e,r,n,i,a)=>`M${t},${e} + a${i},${a} 0,0,1 0,${-n} + l${r},0 + a${i},${a} 0,0,1 0,${n} + M${r},${-n} + a${i},${a} 0,0,0 0,${n} + l${-r},0`,"createCylinderPathD"),CRe=o((t,e,r,n,i,a)=>[`M${t},${e}`,`M${t+r},${e}`,`a${i},${a} 0,0,0 0,${-n}`,`l${-r},0`,`a${i},${a} 0,0,0 0,${n}`,`l${r},0`].join(" "),"createOuterCylinderPathD"),ARe=o((t,e,r,n,i,a)=>[`M${t+r/2},${-n/2}`,`a${i},${a} 0,0,0 0,${n}`].join(" "),"createInnerCylinderPathD");o(lte,"tiltedCylinder")});async function ute(t,e){let{labelStyles:r,nodeStyles:n}=je(e);e.labelStyle=r;let{shapeSvg:i,bbox:a}=await ut(t,e,st(e)),s=a.width+e.padding,l=a.height+e.padding,u=[{x:-3*l/6,y:0},{x:s+3*l/6,y:0},{x:s,y:-l},{x:0,y:-l}],h,{cssStyles:f}=e;if(e.look==="handDrawn"){let d=Ze.svg(i),p=Je(e,{}),m=Vt(u),g=d.path(m,p);h=i.insert(()=>g,":first-child").attr("transform",`translate(${-s/2}, ${l/2})`),f&&h.attr("style",f)}else h=Bs(i,s,l,u);return n&&h.attr("style",n),e.width=s,e.height=l,Qe(e,h),e.intersect=function(d){return Xe.polygon(e,u,d)},i}var hte=M(()=>{"use strict";It();Ut();$t();Ht();Jh();o(ute,"trapezoid")});async function fte(t,e){let{labelStyles:r,nodeStyles:n}=je(e);e.labelStyle=r;let{shapeSvg:i,bbox:a}=await ut(t,e,st(e)),s=60,l=20,u=Math.max(s,a.width+(e.padding??0)*2,e?.width??0),h=Math.max(l,a.height+(e.padding??0)*2,e?.height??0),{cssStyles:f}=e,d=Ze.svg(i),p=Je(e,{});e.look!=="handDrawn"&&(p.roughness=0,p.fillStyle="solid");let m=[{x:-u/2*.8,y:-h/2},{x:u/2*.8,y:-h/2},{x:u/2,y:-h/2*.6},{x:u/2,y:h/2},{x:-u/2,y:h/2},{x:-u/2,y:-h/2*.6}],g=Vt(m),y=d.path(g,p),v=i.insert(()=>y,":first-child");return v.attr("class","basic label-container"),f&&e.look!=="handDrawn"&&v.selectChildren("path").attr("style",f),n&&e.look!=="handDrawn"&&v.selectChildren("path").attr("style",n),Qe(e,v),e.intersect=function(x){return Xe.polygon(e,m,x)},i}var dte=M(()=>{"use strict";It();Ut();$t();Ht();o(fte,"trapezoidalPentagon")});async function pte(t,e){let{labelStyles:r,nodeStyles:n}=je(e);e.labelStyle=r;let{shapeSvg:i,bbox:a,label:s}=await ut(t,e,st(e)),l=vr(ge().flowchart?.htmlLabels),u=a.width+(e.padding??0),h=u+a.height,f=u+a.height,d=[{x:0,y:0},{x:f,y:0},{x:f/2,y:-h}],{cssStyles:p}=e,m=Ze.svg(i),g=Je(e,{});e.look!=="handDrawn"&&(g.roughness=0,g.fillStyle="solid");let y=Vt(d),v=m.path(y,g),x=i.insert(()=>v,":first-child").attr("transform",`translate(${-h/2}, ${h/2})`);return p&&e.look!=="handDrawn"&&x.selectChildren("path").attr("style",p),n&&e.look!=="handDrawn"&&x.selectChildren("path").attr("style",n),e.width=u,e.height=h,Qe(e,x),s.attr("transform",`translate(${-a.width/2-(a.x-(a.left??0))}, ${h/2-(a.height+(e.padding??0)/(l?2:1)-(a.y-(a.top??0)))})`),e.intersect=function(b){return X.info("Triangle intersect",e,d,b),Xe.polygon(e,d,b)},i}var mte=M(()=>{"use strict";pt();It();Ut();$t();Ht();It();gr();Xt();o(pte,"triangle")});async function gte(t,e){let{labelStyles:r,nodeStyles:n}=je(e);e.labelStyle=r;let{shapeSvg:i,bbox:a,label:s}=await ut(t,e,st(e)),l=Math.max(a.width+(e.padding??0)*2,e?.width??0),u=Math.max(a.height+(e.padding??0)*2,e?.height??0),h=u/8,f=u+h,{cssStyles:d}=e,m=70-l,g=m>0?m/2:0,y=Ze.svg(i),v=Je(e,{});e.look!=="handDrawn"&&(v.roughness=0,v.fillStyle="solid");let x=[{x:-l/2-g,y:f/2},...Go(-l/2-g,f/2,l/2+g,f/2,h,.8),{x:l/2+g,y:-f/2},{x:-l/2-g,y:-f/2}],b=Vt(x),T=y.path(b,v),S=i.insert(()=>T,":first-child");return S.attr("class","basic label-container"),d&&e.look!=="handDrawn"&&S.selectAll("path").attr("style",d),n&&e.look!=="handDrawn"&&S.selectAll("path").attr("style",n),S.attr("transform",`translate(0,${-h/2})`),s.attr("transform",`translate(${-l/2+(e.padding??0)-(a.x-(a.left??0))},${-u/2+(e.padding??0)-h-(a.y-(a.top??0))})`),Qe(e,S),e.intersect=function(w){return Xe.polygon(e,x,w)},i}var yte=M(()=>{"use strict";It();Ut();Ht();$t();o(gte,"waveEdgedRectangle")});async function vte(t,e){let{labelStyles:r,nodeStyles:n}=je(e);e.labelStyle=r;let{shapeSvg:i,bbox:a}=await ut(t,e,st(e)),s=100,l=50,u=Math.max(a.width+(e.padding??0)*2,e?.width??0),h=Math.max(a.height+(e.padding??0)*2,e?.height??0),f=u/h,d=u,p=h;d>p*f?p=d/f:d=p*f,d=Math.max(d,s),p=Math.max(p,l);let m=Math.min(p*.2,p/4),g=p+m*2,{cssStyles:y}=e,v=Ze.svg(i),x=Je(e,{});e.look!=="handDrawn"&&(x.roughness=0,x.fillStyle="solid");let b=[{x:-d/2,y:g/2},...Go(-d/2,g/2,d/2,g/2,m,1),{x:d/2,y:-g/2},...Go(d/2,-g/2,-d/2,-g/2,m,-1)],T=Vt(b),S=v.path(T,x),w=i.insert(()=>S,":first-child");return w.attr("class","basic label-container"),y&&e.look!=="handDrawn"&&w.selectAll("path").attr("style",y),n&&e.look!=="handDrawn"&&w.selectAll("path").attr("style",n),Qe(e,w),e.intersect=function(k){return Xe.polygon(e,b,k)},i}var xte=M(()=>{"use strict";It();Ut();$t();Ht();o(vte,"waveRectangle")});async function bte(t,e){let{labelStyles:r,nodeStyles:n}=je(e);e.labelStyle=r;let{shapeSvg:i,bbox:a,label:s}=await ut(t,e,st(e)),l=Math.max(a.width+(e.padding??0)*2,e?.width??0),u=Math.max(a.height+(e.padding??0)*2,e?.height??0),h=5,f=-l/2,d=-u/2,{cssStyles:p}=e,m=Ze.svg(i),g=Je(e,{}),y=[{x:f-h,y:d-h},{x:f-h,y:d+u},{x:f+l,y:d+u},{x:f+l,y:d-h}],v=`M${f-h},${d-h} L${f+l},${d-h} L${f+l},${d+u} L${f-h},${d+u} L${f-h},${d-h} + M${f-h},${d} L${f+l},${d} + M${f},${d-h} L${f},${d+u}`;e.look!=="handDrawn"&&(g.roughness=0,g.fillStyle="solid");let x=m.path(v,g),b=i.insert(()=>x,":first-child");return b.attr("transform",`translate(${h/2}, ${h/2})`),b.attr("class","basic label-container"),p&&e.look!=="handDrawn"&&b.selectAll("path").attr("style",p),n&&e.look!=="handDrawn"&&b.selectAll("path").attr("style",n),s.attr("transform",`translate(${-(a.width/2)+h/2-(a.x-(a.left??0))}, ${-(a.height/2)+h/2-(a.y-(a.top??0))})`),Qe(e,b),e.intersect=function(T){return Xe.polygon(e,y,T)},i}var Tte=M(()=>{"use strict";It();$t();Ht();Ut();o(bte,"windowPane")});async function H9(t,e){let r=e;if(r.alias&&(e.label=r.alias),e.look==="handDrawn"){let{themeVariables:U}=Qt(),{background:j}=U,ee={...e,id:e.id+"-background",look:"default",cssStyles:["stroke: none",`fill: ${j}`]};await H9(t,ee)}let n=Qt();e.useHtmlLabels=n.htmlLabels;let i=n.er?.diagramPadding??10,a=n.er?.entityPadding??6,{cssStyles:s}=e,{labelStyles:l,nodeStyles:u}=je(e);if(r.attributes.length===0&&e.label){let U={rx:0,ry:0,labelPaddingX:i,labelPaddingY:i*1.5,classes:""};Zi(e.label,n)+U.labelPaddingX*20){let U=d.width+i*2-(y+v+x+b);y+=U/w,v+=U/w,x>0&&(x+=U/w),b>0&&(b+=U/w)}let C=y+v+x+b,A=Ze.svg(f),L=Je(e,{});e.look!=="handDrawn"&&(L.roughness=0,L.fillStyle="solid");let I=0;g.length>0&&(I=g.reduce((U,j)=>U+(j?.rowHeight??0),0));let R=Math.max(k.width+i*2,e?.width||0,C),E=Math.max((I??0)+d.height,e?.height||0),_=-R/2,D=-E/2;f.selectAll("g:not(:first-child)").each((U,j,ee)=>{let q=qe(ee[j]),oe=q.attr("transform"),Q=0,ue=0;if(oe){let re=RegExp(/translate\(([^,]+),([^)]+)\)/).exec(oe);re&&(Q=parseFloat(re[1]),ue=parseFloat(re[2]),q.attr("class").includes("attribute-name")?Q+=y:q.attr("class").includes("attribute-keys")?Q+=y+v:q.attr("class").includes("attribute-comment")&&(Q+=y+v+x))}q.attr("transform",`translate(${_+i/2+Q}, ${ue+D+d.height+a/2})`)}),f.select(".name").attr("transform","translate("+-d.width/2+", "+(D+a/2)+")");let O=A.rectangle(_,D,R,E,L),N=f.insert(()=>O,":first-child").attr("style",s.join("")),{themeVariables:P}=Qt(),{rowEven:B,rowOdd:F,nodeBorder:V}=P;m.push(0);for(let[U,j]of g.entries()){let q=(U+1)%2===0&&j.yOffset!==0,oe=A.rectangle(_,d.height+D+j?.yOffset,R,j?.rowHeight,{...L,fill:q?B:F,stroke:V});f.insert(()=>oe,"g.label").attr("style",s.join("")).attr("class",`row-rect-${q?"even":"odd"}`)}let $=A.line(_,d.height+D,R+_,d.height+D,L);f.insert(()=>$).attr("class","divider"),$=A.line(y+_,d.height+D,y+_,E+D,L),f.insert(()=>$).attr("class","divider"),T&&($=A.line(y+v+_,d.height+D,y+v+_,E+D,L),f.insert(()=>$).attr("class","divider")),S&&($=A.line(y+v+x+_,d.height+D,y+v+x+_,E+D,L),f.insert(()=>$).attr("class","divider"));for(let U of m)$=A.line(_,d.height+D+U,R+_,d.height+D+U,L),f.insert(()=>$).attr("class","divider");if(Qe(e,N),u&&e.look!=="handDrawn"){let j=u.split(";")?.filter(ee=>ee.includes("stroke"))?.map(ee=>`${ee}`).join("; ");f.selectAll("path").attr("style",j??""),f.selectAll(".row-rect-even path").attr("style",u)}return e.intersect=function(U){return Xe.rect(e,U)},f}async function O2(t,e,r,n=0,i=0,a=[],s=""){let l=t.insert("g").attr("class",`label ${a.join(" ")}`).attr("transform",`translate(${n}, ${i})`).attr("style",s);e!==rc(e)&&(e=rc(e),e=e.replaceAll("<","<").replaceAll(">",">"));let u=l.node().appendChild(await di(l,e,{width:Zi(e,r)+100,style:s,useHtmlLabels:r.htmlLabels},r));if(e.includes("<")||e.includes(">")){let f=u.children[0];for(f.textContent=f.textContent.replaceAll("<","<").replaceAll(">",">");f.childNodes[0];)f=f.childNodes[0],f.textContent=f.textContent.replaceAll("<","<").replaceAll(">",">")}let h=u.getBBox();if(vr(r.htmlLabels)){let f=u.children[0];f.style.textAlign="start";let d=qe(u);h=f.getBoundingClientRect(),d.attr("width",h.width),d.attr("height",h.height)}return h}var wte=M(()=>{"use strict";It();Ut();$t();Ht();I2();qn();zo();gr();yr();tr();o(H9,"erBox");o(O2,"addText")});async function kte(t,e,r,n,i=r.class.padding??12){let a=n?0:3,s=t.insert("g").attr("class",st(e)).attr("id",e.domId||e.id),l=null,u=null,h=null,f=null,d=0,p=0,m=0;if(l=s.insert("g").attr("class","annotation-group text"),e.annotations.length>0){let b=e.annotations[0];await lw(l,{text:`\xAB${b}\xBB`},0),d=l.node().getBBox().height}u=s.insert("g").attr("class","label-group text"),await lw(u,e,0,["font-weight: bolder"]);let g=u.node().getBBox();p=g.height,h=s.insert("g").attr("class","members-group text");let y=0;for(let b of e.members){let T=await lw(h,b,y,[b.parseClassifier()]);y+=T+a}m=h.node().getBBox().height,m<=0&&(m=i/2),f=s.insert("g").attr("class","methods-group text");let v=0;for(let b of e.methods){let T=await lw(f,b,v,[b.parseClassifier()]);v+=T+a}let x=s.node().getBBox();if(l!==null){let b=l.node().getBBox();l.attr("transform",`translate(${-b.width/2})`)}return u.attr("transform",`translate(${-g.width/2}, ${d})`),x=s.node().getBBox(),h.attr("transform",`translate(0, ${d+p+i*2})`),x=s.node().getBBox(),f.attr("transform",`translate(0, ${d+p+(m?m+i*4:i*2)})`),x=s.node().getBBox(),{shapeSvg:s,bbox:x}}async function lw(t,e,r,n=[]){let i=t.insert("g").attr("class","label").attr("style",n.join("; ")),a=Qt(),s="useHtmlLabels"in e?e.useHtmlLabels:vr(a.htmlLabels)??!0,l="";"text"in e?l=e.text:l=e.label,!s&&l.startsWith("\\")&&(l=l.substring(1)),kn(l)&&(s=!0);let u=await di(i,av(Ji(l)),{width:Zi(l,a)+50,classes:"markdown-node-label",useHtmlLabels:s},a),h,f=1;if(s){let d=u.children[0],p=qe(u);f=d.innerHTML.split("
    ").length,d.innerHTML.includes("")&&(f+=d.innerHTML.split("").length-1);let m=d.getElementsByTagName("img");if(m){let g=l.replace(/]*>/g,"").trim()==="";await Promise.all([...m].map(y=>new Promise(v=>{function x(){if(y.style.display="flex",y.style.flexDirection="column",g){let b=a.fontSize?.toString()??window.getComputedStyle(document.body).fontSize,S=parseInt(b,10)*5+"px";y.style.minWidth=S,y.style.maxWidth=S}else y.style.width="100%";v(y)}o(x,"setupImage"),setTimeout(()=>{y.complete&&x()}),y.addEventListener("error",x),y.addEventListener("load",x)})))}h=d.getBoundingClientRect(),p.attr("width",h.width),p.attr("height",h.height)}else{n.includes("font-weight: bolder")&&qe(u).selectAll("tspan").attr("font-weight",""),f=u.children.length;let d=u.children[0];(u.textContent===""||u.textContent.includes(">"))&&(d.textContent=l[0]+l.substring(1).replaceAll(">",">").replaceAll("<","<").trim(),l[1]===" "&&(d.textContent=d.textContent[0]+" "+d.textContent.substring(1))),d.textContent==="undefined"&&(d.textContent=""),h=u.getBBox()}return i.attr("transform","translate(0,"+(-h.height/(2*f)+r)+")"),h.height}var Ete=M(()=>{"use strict";yr();qn();It();tr();Xt();zo();gr();o(kte,"textHelper");o(lw,"addText")});async function Ste(t,e){let r=ge(),n=r.class.padding??12,i=n,a=e.useHtmlLabels??vr(r.htmlLabels)??!0,s=e;s.annotations=s.annotations??[],s.members=s.members??[],s.methods=s.methods??[];let{shapeSvg:l,bbox:u}=await kte(t,e,r,a,i),{labelStyles:h,nodeStyles:f}=je(e);e.labelStyle=h,e.cssStyles=s.styles||"";let d=s.styles?.join(";")||f||"";e.cssStyles||(e.cssStyles=d.replaceAll("!important","").split(";"));let p=s.members.length===0&&s.methods.length===0&&!r.class?.hideEmptyMembersBox,m=Ze.svg(l),g=Je(e,{});e.look!=="handDrawn"&&(g.roughness=0,g.fillStyle="solid");let y=u.width,v=u.height;s.members.length===0&&s.methods.length===0?v+=i:s.members.length>0&&s.methods.length===0&&(v+=i*2);let x=-y/2,b=-v/2,T=m.rectangle(x-n,b-n-(p?n:s.members.length===0&&s.methods.length===0?-n/2:0),y+2*n,v+2*n+(p?n*2:s.members.length===0&&s.methods.length===0?-n:0),g),S=l.insert(()=>T,":first-child");S.attr("class","basic label-container");let w=S.node().getBBox();l.selectAll(".text").each((L,I,R)=>{let E=qe(R[I]),_=E.attr("transform"),D=0;if(_){let B=RegExp(/translate\(([^,]+),([^)]+)\)/).exec(_);B&&(D=parseFloat(B[2]))}let O=D+b+n-(p?n:s.members.length===0&&s.methods.length===0?-n/2:0);a||(O-=4);let N=x;(E.attr("class").includes("label-group")||E.attr("class").includes("annotation-group"))&&(N=-E.node()?.getBBox().width/2||0,l.selectAll("text").each(function(P,B,F){window.getComputedStyle(F[B]).textAnchor==="middle"&&(N=0)})),E.attr("transform",`translate(${N}, ${O})`)});let k=l.select(".annotation-group").node().getBBox().height-(p?n/2:0)||0,C=l.select(".label-group").node().getBBox().height-(p?n/2:0)||0,A=l.select(".members-group").node().getBBox().height-(p?n/2:0)||0;if(s.members.length>0||s.methods.length>0||p){let L=m.line(w.x,k+C+b+n,w.x+w.width,k+C+b+n,g);l.insert(()=>L).attr("class","divider").attr("style",d)}if(p||s.members.length>0||s.methods.length>0){let L=m.line(w.x,k+C+A+b+i*2+n,w.x+w.width,k+C+A+b+n+i*2,g);l.insert(()=>L).attr("class","divider").attr("style",d)}if(s.look!=="handDrawn"&&l.selectAll("path").attr("style",d),S.select(":nth-child(2)").attr("style",d),l.selectAll(".divider").select("path").attr("style",d),e.labelStyle?l.selectAll("span").attr("style",e.labelStyle):l.selectAll("span").attr("style",d),!a){let L=RegExp(/color\s*:\s*([^;]*)/),I=L.exec(d);if(I){let R=I[0].replace("color","fill");l.selectAll("tspan").attr("style",R)}else if(h){let R=L.exec(h);if(R){let E=R[0].replace("color","fill");l.selectAll("tspan").attr("style",E)}}}return Qe(e,S),e.intersect=function(L){return Xe.rect(e,L)},l}var Cte=M(()=>{"use strict";It();Xt();yr();Ht();$t();Ut();Ete();gr();o(Ste,"classBox")});async function Ate(t,e){let{labelStyles:r,nodeStyles:n}=je(e);e.labelStyle=r;let i=e,a=e,s=20,l=20,u="verifyMethod"in e,h=st(e),f=t.insert("g").attr("class",h).attr("id",e.domId??e.id),d;u?d=await Ou(f,`<<${i.type}>>`,0,e.labelStyle):d=await Ou(f,"<<Element>>",0,e.labelStyle);let p=d,m=await Ou(f,i.name,p,e.labelStyle+"; font-weight: bold;");if(p+=m+l,u){let k=await Ou(f,`${i.requirementId?`ID: ${i.requirementId}`:""}`,p,e.labelStyle);p+=k;let C=await Ou(f,`${i.text?`Text: ${i.text}`:""}`,p,e.labelStyle);p+=C;let A=await Ou(f,`${i.risk?`Risk: ${i.risk}`:""}`,p,e.labelStyle);p+=A,await Ou(f,`${i.verifyMethod?`Verification: ${i.verifyMethod}`:""}`,p,e.labelStyle)}else{let k=await Ou(f,`${a.type?`Type: ${a.type}`:""}`,p,e.labelStyle);p+=k,await Ou(f,`${a.docRef?`Doc Ref: ${a.docRef}`:""}`,p,e.labelStyle)}let g=(f.node()?.getBBox().width??200)+s,y=(f.node()?.getBBox().height??200)+s,v=-g/2,x=-y/2,b=Ze.svg(f),T=Je(e,{});e.look!=="handDrawn"&&(T.roughness=0,T.fillStyle="solid");let S=b.rectangle(v,x,g,y,T),w=f.insert(()=>S,":first-child");if(w.attr("class","basic label-container").attr("style",n),f.selectAll(".label").each((k,C,A)=>{let L=qe(A[C]),I=L.attr("transform"),R=0,E=0;if(I){let N=RegExp(/translate\(([^,]+),([^)]+)\)/).exec(I);N&&(R=parseFloat(N[1]),E=parseFloat(N[2]))}let _=E-y/2,D=v+s/2;(C===0||C===1)&&(D=R),L.attr("transform",`translate(${D}, ${_+s})`)}),p>d+m+l){let k=b.line(v,x+d+m+l,v+g,x+d+m+l,T);f.insert(()=>k).attr("style",n)}return Qe(e,w),e.intersect=function(k){return Xe.rect(e,k)},f}async function Ou(t,e,r,n=""){if(e==="")return 0;let i=t.insert("g").attr("class","label").attr("style",n),a=ge(),s=a.htmlLabels??!0,l=await di(i,av(Ji(e)),{width:Zi(e,a)+50,classes:"markdown-node-label",useHtmlLabels:s,style:n},a),u;if(s){let h=l.children[0],f=qe(l);u=h.getBoundingClientRect(),f.attr("width",u.width),f.attr("height",u.height)}else{let h=l.children[0];for(let f of h.children)f.textContent=f.textContent.replaceAll(">",">").replaceAll("<","<"),n&&f.setAttribute("style",n);u=l.getBBox(),u.height+=6}return i.attr("transform",`translate(${-u.width/2},${-u.height/2+r})`),u.height}var _te=M(()=>{"use strict";It();Ut();$t();Ht();tr();Xt();zo();yr();o(Ate,"requirementBox");o(Ou,"addText")});async function Dte(t,e,{config:r}){let{labelStyles:n,nodeStyles:i}=je(e);e.labelStyle=n||"";let a=10,s=e.width;e.width=(e.width??200)-10;let{shapeSvg:l,bbox:u,label:h}=await ut(t,e,st(e)),f=e.padding||10,d="",p;"ticket"in e&&e.ticket&&r?.kanban?.ticketBaseUrl&&(d=r?.kanban?.ticketBaseUrl.replace("#TICKET#",e.ticket),p=l.insert("svg:a",":first-child").attr("class","kanban-ticket-link").attr("xlink:href",d).attr("target","_blank"));let m={useHtmlLabels:e.useHtmlLabels,labelStyle:e.labelStyle||"",width:e.width,img:e.img,padding:e.padding||8,centerLabel:!1},g,y;p?{label:g,bbox:y}=await XT(p,"ticket"in e&&e.ticket||"",m):{label:g,bbox:y}=await XT(l,"ticket"in e&&e.ticket||"",m);let{label:v,bbox:x}=await XT(l,"assigned"in e&&e.assigned||"",m);e.width=s;let b=10,T=e?.width||0,S=Math.max(y.height,x.height)/2,w=Math.max(u.height+b*2,e?.height||0)+S,k=-T/2,C=-w/2;h.attr("transform","translate("+(f-T/2)+", "+(-S-u.height/2)+")"),g.attr("transform","translate("+(f-T/2)+", "+(-S+u.height/2)+")"),v.attr("transform","translate("+(f+T/2-x.width-2*a)+", "+(-S+u.height/2)+")");let A,{rx:L,ry:I}=e,{cssStyles:R}=e;if(e.look==="handDrawn"){let E=Ze.svg(l),_=Je(e,{}),D=L||I?E.path(Fs(k,C,T,w,L||0),_):E.rectangle(k,C,T,w,_);A=l.insert(()=>D,":first-child"),A.attr("class","basic label-container").attr("style",R||null)}else{A=l.insert("rect",":first-child"),A.attr("class","basic label-container __APA__").attr("style",i).attr("rx",L??5).attr("ry",I??5).attr("x",k).attr("y",C).attr("width",T).attr("height",w);let E="priority"in e&&e.priority;if(E){let _=l.append("line"),D=k+2,O=C+Math.floor((L??0)/2),N=C+w-Math.floor((L??0)/2);_.attr("x1",D).attr("y1",O).attr("x2",D).attr("y2",N).attr("stroke-width","4").attr("stroke",_Re(E))}}return Qe(e,A),e.height=w,e.intersect=function(E){return Xe.rect(e,E)},l}var _Re,Lte=M(()=>{"use strict";It();Ut();Zd();$t();Ht();_Re=o(t=>{switch(t){case"Very High":return"red";case"High":return"orange";case"Medium":return null;case"Low":return"blue";case"Very Low":return"lightblue"}},"colorFromPriority");o(Dte,"kanbanItem")});async function Rte(t,e){let{labelStyles:r,nodeStyles:n}=je(e);e.labelStyle=r;let{shapeSvg:i,bbox:a,halfPadding:s,label:l}=await ut(t,e,st(e)),u=a.width+10*s,h=a.height+8*s,f=.15*u,{cssStyles:d}=e,p=a.width+20,m=a.height+20,g=Math.max(u,p),y=Math.max(h,m);l.attr("transform",`translate(${-a.width/2}, ${-a.height/2})`);let v,x=`M0 0 + a${f},${f} 1 0,0 ${g*.25},${-1*y*.1} + a${f},${f} 1 0,0 ${g*.25},0 + a${f},${f} 1 0,0 ${g*.25},0 + a${f},${f} 1 0,0 ${g*.25},${y*.1} + + a${f},${f} 1 0,0 ${g*.15},${y*.33} + a${f*.8},${f*.8} 1 0,0 0,${y*.34} + a${f},${f} 1 0,0 ${-1*g*.15},${y*.33} + + a${f},${f} 1 0,0 ${-1*g*.25},${y*.15} + a${f},${f} 1 0,0 ${-1*g*.25},0 + a${f},${f} 1 0,0 ${-1*g*.25},0 + a${f},${f} 1 0,0 ${-1*g*.25},${-1*y*.15} + + a${f},${f} 1 0,0 ${-1*g*.1},${-1*y*.33} + a${f*.8},${f*.8} 1 0,0 0,${-1*y*.34} + a${f},${f} 1 0,0 ${g*.1},${-1*y*.33} + H0 V0 Z`;if(e.look==="handDrawn"){let b=Ze.svg(i),T=Je(e,{}),S=b.path(x,T);v=i.insert(()=>S,":first-child"),v.attr("class","basic label-container").attr("style",Cn(d))}else v=i.insert("path",":first-child").attr("class","basic label-container").attr("style",n).attr("d",x);return v.attr("transform",`translate(${-g/2}, ${-y/2})`),Qe(e,v),e.calcIntersect=function(b,T){return Xe.rect(b,T)},e.intersect=function(b){return X.info("Bang intersect",e,b),Xe.rect(e,b)},i}var Nte=M(()=>{"use strict";pt();It();Ut();$t();Ht();tr();o(Rte,"bang")});async function Mte(t,e){let{labelStyles:r,nodeStyles:n}=je(e);e.labelStyle=r;let{shapeSvg:i,bbox:a,halfPadding:s,label:l}=await ut(t,e,st(e)),u=a.width+2*s,h=a.height+2*s,f=.15*u,d=.25*u,p=.35*u,m=.2*u,{cssStyles:g}=e,y,v=`M0 0 + a${f},${f} 0 0,1 ${u*.25},${-1*u*.1} + a${p},${p} 1 0,1 ${u*.4},${-1*u*.1} + a${d},${d} 1 0,1 ${u*.35},${u*.2} + + a${f},${f} 1 0,1 ${u*.15},${h*.35} + a${m},${m} 1 0,1 ${-1*u*.15},${h*.65} + + a${d},${f} 1 0,1 ${-1*u*.25},${u*.15} + a${p},${p} 1 0,1 ${-1*u*.5},0 + a${f},${f} 1 0,1 ${-1*u*.25},${-1*u*.15} + + a${f},${f} 1 0,1 ${-1*u*.1},${-1*h*.35} + a${m},${m} 1 0,1 ${u*.1},${-1*h*.65} + H0 V0 Z`;if(e.look==="handDrawn"){let x=Ze.svg(i),b=Je(e,{}),T=x.path(v,b);y=i.insert(()=>T,":first-child"),y.attr("class","basic label-container").attr("style",Cn(g))}else y=i.insert("path",":first-child").attr("class","basic label-container").attr("style",n).attr("d",v);return l.attr("transform",`translate(${-a.width/2}, ${-a.height/2})`),y.attr("transform",`translate(${-u/2}, ${-h/2})`),Qe(e,y),e.calcIntersect=function(x,b){return Xe.rect(x,b)},e.intersect=function(x){return X.info("Cloud intersect",e,x),Xe.rect(e,x)},i}var Ite=M(()=>{"use strict";Ht();pt();tr();Ut();$t();It();o(Mte,"cloud")});async function Ote(t,e){let{labelStyles:r,nodeStyles:n}=je(e);e.labelStyle=r;let{shapeSvg:i,bbox:a,halfPadding:s,label:l}=await ut(t,e,st(e)),u=a.width+8*s,h=a.height+2*s,f=5,d=` + M${-u/2} ${h/2-f} + v${-h+2*f} + q0,-${f} ${f},-${f} + h${u-2*f} + q${f},0 ${f},${f} + v${h-2*f} + q0,${f} -${f},${f} + h${-u+2*f} + q-${f},0 -${f},-${f} + Z + `,p=i.append("path").attr("id","node-"+e.id).attr("class","node-bkg node-"+e.type).attr("style",n).attr("d",d);return i.append("line").attr("class","node-line-").attr("x1",-u/2).attr("y1",h/2).attr("x2",u/2).attr("y2",h/2),l.attr("transform",`translate(${-a.width/2}, ${-a.height/2})`),i.append(()=>l.node()),Qe(e,p),e.calcIntersect=function(m,g){return Xe.rect(m,g)},e.intersect=function(m){return Xe.rect(e,m)},i}var Pte=M(()=>{"use strict";Ut();$t();It();o(Ote,"defaultMindmapNode")});async function Bte(t,e){let r={padding:e.padding??0};return aw(t,e,r)}var Fte=M(()=>{"use strict";U9();o(Bte,"mindmapCircle")});function $te(t){return t in q9}var DRe,LRe,q9,W9=M(()=>{"use strict";bJ();kJ();SJ();AJ();U9();DJ();RJ();MJ();OJ();BJ();$J();GJ();UJ();qJ();YJ();jJ();QJ();JJ();tee();nee();aee();oee();cee();hee();dee();mee();yee();xee();Tee();kee();See();Aee();Dee();Ree();Mee();Oee();Bee();$ee();Gee();Uee();qee();Yee();jee();Qee();Jee();tte();nte();ate();ote();cte();hte();dte();mte();yte();xte();Tte();wte();Cte();_te();Lte();Nte();Ite();Pte();Fte();DRe=[{semanticName:"Process",name:"Rectangle",shortName:"rect",description:"Standard process shape",aliases:["proc","process","rectangle"],internalAliases:["squareRect"],handler:Hee},{semanticName:"Event",name:"Rounded Rectangle",shortName:"rounded",description:"Represents an event",aliases:["event"],internalAliases:["roundedRect"],handler:Fee},{semanticName:"Terminal Point",name:"Stadium",shortName:"stadium",description:"Terminal point",aliases:["terminal","pill"],handler:Wee},{semanticName:"Subprocess",name:"Framed Rectangle",shortName:"fr-rect",description:"Subprocess",aliases:["subprocess","subproc","framed-rectangle","subroutine"],handler:ete},{semanticName:"Database",name:"Cylinder",shortName:"cyl",description:"Database storage",aliases:["db","database","cylinder"],handler:FJ},{semanticName:"Start",name:"Circle",shortName:"circle",description:"Starting point",aliases:["circ"],handler:aw},{semanticName:"Bang",name:"Bang",shortName:"bang",description:"Bang",aliases:["bang"],handler:Rte},{semanticName:"Cloud",name:"Cloud",shortName:"cloud",description:"cloud",aliases:["cloud"],handler:Mte},{semanticName:"Decision",name:"Diamond",shortName:"diam",description:"Decision-making step",aliases:["decision","diamond","question"],handler:Nee},{semanticName:"Prepare Conditional",name:"Hexagon",shortName:"hex",description:"Preparation or condition step",aliases:["hexagon","prepare"],handler:ZJ},{semanticName:"Data Input/Output",name:"Lean Right",shortName:"lean-r",description:"Represents input or output",aliases:["lean-right","in-out"],internalAliases:["lean_right"],handler:vee},{semanticName:"Data Input/Output",name:"Lean Left",shortName:"lean-l",description:"Represents output or input",aliases:["lean-left","out-in"],internalAliases:["lean_left"],handler:gee},{semanticName:"Priority Action",name:"Trapezoid Base Bottom",shortName:"trap-b",description:"Priority action",aliases:["priority","trapezoid-bottom","trapezoid"],handler:ute},{semanticName:"Manual Operation",name:"Trapezoid Base Top",shortName:"trap-t",description:"Represents a manual task",aliases:["manual","trapezoid-top","inv-trapezoid"],internalAliases:["inv_trapezoid"],handler:fee},{semanticName:"Stop",name:"Double Circle",shortName:"dbl-circ",description:"Represents a stop point",aliases:["double-circle"],internalAliases:["doublecircle"],handler:VJ},{semanticName:"Text Block",name:"Text Block",shortName:"text",description:"Text block",handler:ste},{semanticName:"Card",name:"Notched Rectangle",shortName:"notch-rect",description:"Represents a card",aliases:["card","notched-rectangle"],handler:EJ},{semanticName:"Lined/Shaded Process",name:"Lined Rectangle",shortName:"lin-rect",description:"Lined process shape",aliases:["lined-rectangle","lined-process","lin-proc","shaded-process"],handler:zee},{semanticName:"Start",name:"Small Circle",shortName:"sm-circ",description:"Small starting point",aliases:["start","small-circle"],internalAliases:["stateStart"],handler:Zee},{semanticName:"Stop",name:"Framed Circle",shortName:"fr-circ",description:"Stop point",aliases:["stop","framed-circle"],internalAliases:["stateEnd"],handler:Kee},{semanticName:"Fork/Join",name:"Filled Rectangle",shortName:"fork",description:"Fork or join in process flow",aliases:["join"],internalAliases:["forkJoin"],handler:XJ},{semanticName:"Collate",name:"Hourglass",shortName:"hourglass",description:"Represents a collate operation",aliases:["hourglass","collate"],handler:eee},{semanticName:"Comment",name:"Curly Brace",shortName:"brace",description:"Adds a comment",aliases:["comment","brace-l"],handler:LJ},{semanticName:"Comment Right",name:"Curly Brace",shortName:"brace-r",description:"Adds a comment",handler:NJ},{semanticName:"Comment with braces on both sides",name:"Curly Braces",shortName:"braces",description:"Adds a comment",handler:IJ},{semanticName:"Com Link",name:"Lightning Bolt",shortName:"bolt",description:"Communication link",aliases:["com-link","lightning-bolt"],handler:bee},{semanticName:"Document",name:"Document",shortName:"doc",description:"Represents a document",aliases:["doc","document"],handler:gte},{semanticName:"Delay",name:"Half-Rounded Rectangle",shortName:"delay",description:"Represents a delay",aliases:["half-rounded-rectangle"],handler:KJ},{semanticName:"Direct Access Storage",name:"Horizontal Cylinder",shortName:"h-cyl",description:"Direct access storage",aliases:["das","horizontal-cylinder"],handler:lte},{semanticName:"Disk Storage",name:"Lined Cylinder",shortName:"lin-cyl",description:"Disk storage",aliases:["disk","lined-cylinder"],handler:wee},{semanticName:"Display",name:"Curved Trapezoid",shortName:"curv-trap",description:"Represents a display",aliases:["curved-trapezoid","display"],handler:PJ},{semanticName:"Divided Process",name:"Divided Rectangle",shortName:"div-rect",description:"Divided process shape",aliases:["div-proc","divided-rectangle","divided-process"],handler:zJ},{semanticName:"Extract",name:"Triangle",shortName:"tri",description:"Extraction process",aliases:["extract","triangle"],handler:pte},{semanticName:"Internal Storage",name:"Window Pane",shortName:"win-pane",description:"Internal storage",aliases:["internal-storage","window-pane"],handler:bte},{semanticName:"Junction",name:"Filled Circle",shortName:"f-circ",description:"Junction point",aliases:["junction","filled-circle"],handler:HJ},{semanticName:"Loop Limit",name:"Trapezoidal Pentagon",shortName:"notch-pent",description:"Loop limit step",aliases:["loop-limit","notched-pentagon"],handler:fte},{semanticName:"Manual File",name:"Flipped Triangle",shortName:"flip-tri",description:"Manual file operation",aliases:["manual-file","flipped-triangle"],handler:WJ},{semanticName:"Manual Input",name:"Sloped Rectangle",shortName:"sl-rect",description:"Manual input step",aliases:["manual-input","sloped-rectangle"],handler:Vee},{semanticName:"Multi-Document",name:"Stacked Document",shortName:"docs",description:"Multiple documents",aliases:["documents","st-doc","stacked-document"],handler:_ee},{semanticName:"Multi-Process",name:"Stacked Rectangle",shortName:"st-rect",description:"Multiple processes",aliases:["procs","processes","stacked-rectangle"],handler:Cee},{semanticName:"Stored Data",name:"Bow Tie Rectangle",shortName:"bow-rect",description:"Stored data",aliases:["stored-data","bow-tie-rectangle"],handler:wJ},{semanticName:"Summary",name:"Crossed Circle",shortName:"cross-circ",description:"Summary",aliases:["summary","crossed-circle"],handler:_J},{semanticName:"Tagged Document",name:"Tagged Document",shortName:"tag-doc",description:"Tagged document",aliases:["tag-doc","tagged-document"],handler:ite},{semanticName:"Tagged Process",name:"Tagged Rectangle",shortName:"tag-rect",description:"Tagged process",aliases:["tagged-rectangle","tag-proc","tagged-process"],handler:rte},{semanticName:"Paper Tape",name:"Flag",shortName:"flag",description:"Paper tape",aliases:["paper-tape"],handler:vte},{semanticName:"Odd",name:"Odd",shortName:"odd",description:"Odd shape",internalAliases:["rect_left_inv_arrow"],handler:Iee},{semanticName:"Lined Document",name:"Lined Document",shortName:"lin-doc",description:"Lined document",aliases:["lined-document"],handler:Eee}],LRe=o(()=>{let e=[...Object.entries({state:Xee,choice:CJ,note:Lee,rectWithTitle:Pee,labelRect:pee,iconSquare:lee,iconCircle:iee,icon:ree,iconRounded:see,imageSquare:uee,anchor:xJ,kanbanItem:Dte,mindmapCircle:Bte,defaultMindmapNode:Ote,classBox:Ste,erBox:H9,requirementBox:Ate}),...DRe.flatMap(r=>[r.shortName,..."aliases"in r?r.aliases:[],..."internalAliases"in r?r.internalAliases:[]].map(i=>[i,r.handler]))];return Object.fromEntries(e)},"generateShapeMap"),q9=LRe();o($te,"isValidShape")});var RRe,cw,zte=M(()=>{"use strict";yr();k2();Xt();pt();W9();tr();gr();ci();RRe="flowchart-",cw=class{constructor(){this.vertexCounter=0;this.config=ge();this.vertices=new Map;this.edges=[];this.classes=new Map;this.subGraphs=[];this.subGraphLookup=new Map;this.tooltips=new Map;this.subCount=0;this.firstGraphFlag=!0;this.secCount=-1;this.posCrossRef=[];this.funs=[];this.setAccTitle=Rr;this.setAccDescription=Ir;this.setDiagramTitle=$r;this.getAccTitle=Mr;this.getAccDescription=Or;this.getDiagramTitle=Pr;this.funs.push(this.setupToolTips.bind(this)),this.addVertex=this.addVertex.bind(this),this.firstGraph=this.firstGraph.bind(this),this.setDirection=this.setDirection.bind(this),this.addSubGraph=this.addSubGraph.bind(this),this.addLink=this.addLink.bind(this),this.setLink=this.setLink.bind(this),this.updateLink=this.updateLink.bind(this),this.addClass=this.addClass.bind(this),this.setClass=this.setClass.bind(this),this.destructLink=this.destructLink.bind(this),this.setClickEvent=this.setClickEvent.bind(this),this.setTooltip=this.setTooltip.bind(this),this.updateLinkInterpolate=this.updateLinkInterpolate.bind(this),this.setClickFun=this.setClickFun.bind(this),this.bindFunctions=this.bindFunctions.bind(this),this.lex={firstGraph:this.firstGraph.bind(this)},this.clear(),this.setGen("gen-2")}static{o(this,"FlowDB")}sanitizeText(e){return tt.sanitizeText(e,this.config)}lookUpDomId(e){for(let r of this.vertices.values())if(r.id===e)return r.domId;return e}addVertex(e,r,n,i,a,s,l={},u){if(!e||e.trim().length===0)return;let h;if(u!==void 0){let m;u.includes(` +`)?m=u+` +`:m=`{ +`+u+` +}`,h=Kh(m,{schema:jh})}let f=this.edges.find(m=>m.id===e);if(f){let m=h;m?.animate!==void 0&&(f.animate=m.animate),m?.animation!==void 0&&(f.animation=m.animation),m?.curve!==void 0&&(f.interpolate=m.curve);return}let d,p=this.vertices.get(e);if(p===void 0&&(p={id:e,labelType:"text",domId:RRe+e+"-"+this.vertexCounter,styles:[],classes:[]},this.vertices.set(e,p)),this.vertexCounter++,r!==void 0?(this.config=ge(),d=this.sanitizeText(r.text.trim()),p.labelType=r.type,d.startsWith('"')&&d.endsWith('"')&&(d=d.substring(1,d.length-1)),p.text=d):p.text===void 0&&(p.text=e),n!==void 0&&(p.type=n),i?.forEach(m=>{p.styles.push(m)}),a?.forEach(m=>{p.classes.push(m)}),s!==void 0&&(p.dir=s),p.props===void 0?p.props=l:l!==void 0&&Object.assign(p.props,l),h!==void 0){if(h.shape){if(h.shape!==h.shape.toLowerCase()||h.shape.includes("_"))throw new Error(`No such shape: ${h.shape}. Shape names should be lowercase.`);if(!$te(h.shape))throw new Error(`No such shape: ${h.shape}.`);p.type=h?.shape}h?.label&&(p.text=h?.label),h?.icon&&(p.icon=h?.icon,!h.label?.trim()&&p.text===e&&(p.text="")),h?.form&&(p.form=h?.form),h?.pos&&(p.pos=h?.pos),h?.img&&(p.img=h?.img,!h.label?.trim()&&p.text===e&&(p.text="")),h?.constraint&&(p.constraint=h.constraint),h.w&&(p.assetWidth=Number(h.w)),h.h&&(p.assetHeight=Number(h.h))}}addSingleLink(e,r,n,i){let l={start:e,end:r,type:void 0,text:"",labelType:"text",classes:[],isUserDefinedId:!1,interpolate:this.edges.defaultInterpolate};X.info("abc78 Got edge...",l);let u=n.text;if(u!==void 0&&(l.text=this.sanitizeText(u.text.trim()),l.text.startsWith('"')&&l.text.endsWith('"')&&(l.text=l.text.substring(1,l.text.length-1)),l.labelType=u.type),n!==void 0&&(l.type=n.type,l.stroke=n.stroke,l.length=n.length>10?10:n.length),i&&!this.edges.some(h=>h.id===i))l.id=i,l.isUserDefinedId=!0;else{let h=this.edges.filter(f=>f.start===l.start&&f.end===l.end);h.length===0?l.id=xc(l.start,l.end,{counter:0,prefix:"L"}):l.id=xc(l.start,l.end,{counter:h.length+1,prefix:"L"})}if(this.edges.length<(this.config.maxEdges??500))X.info("Pushing edge..."),this.edges.push(l);else throw new Error(`Edge limit exceeded. ${this.edges.length} edges found, but the limit is ${this.config.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.`)}isLinkData(e){return e!==null&&typeof e=="object"&&"id"in e&&typeof e.id=="string"}addLink(e,r,n){let i=this.isLinkData(n)?n.id.replace("@",""):void 0;X.info("addLink",e,r,i);for(let a of e)for(let s of r){let l=a===e[e.length-1],u=s===r[0];l&&u?this.addSingleLink(a,s,n,i):this.addSingleLink(a,s,n,void 0)}}updateLinkInterpolate(e,r){e.forEach(n=>{n==="default"?this.edges.defaultInterpolate=r:this.edges[n].interpolate=r})}updateLink(e,r){e.forEach(n=>{if(typeof n=="number"&&n>=this.edges.length)throw new Error(`The index ${n} for linkStyle is out of bounds. Valid indices for linkStyle are between 0 and ${this.edges.length-1}. (Help: Ensure that the index is within the range of existing edges.)`);n==="default"?this.edges.defaultStyle=r:(this.edges[n].style=r,(this.edges[n]?.style?.length??0)>0&&!this.edges[n]?.style?.some(i=>i?.startsWith("fill"))&&this.edges[n]?.style?.push("fill:none"))})}addClass(e,r){let n=r.join().replace(/\\,/g,"\xA7\xA7\xA7").replace(/,/g,";").replace(/§§§/g,",").split(";");e.split(",").forEach(i=>{let a=this.classes.get(i);a===void 0&&(a={id:i,styles:[],textStyles:[]},this.classes.set(i,a)),n?.forEach(s=>{if(/color/.exec(s)){let l=s.replace("fill","bgFill");a.textStyles.push(l)}a.styles.push(s)})})}setDirection(e){this.direction=e.trim(),/.*/.exec(this.direction)&&(this.direction="LR"),/.*v/.exec(this.direction)&&(this.direction="TB"),this.direction==="TD"&&(this.direction="TB")}setClass(e,r){for(let n of e.split(",")){let i=this.vertices.get(n);i&&i.classes.push(r);let a=this.edges.find(l=>l.id===n);a&&a.classes.push(r);let s=this.subGraphLookup.get(n);s&&s.classes.push(r)}}setTooltip(e,r){if(r!==void 0){r=this.sanitizeText(r);for(let n of e.split(","))this.tooltips.set(this.version==="gen-1"?this.lookUpDomId(n):n,r)}}setClickFun(e,r,n){let i=this.lookUpDomId(e);if(ge().securityLevel!=="loose"||r===void 0)return;let a=[];if(typeof n=="string"){a=n.split(/,(?=(?:(?:[^"]*"){2})*[^"]*$)/);for(let l=0;l{let l=document.querySelector(`[id="${i}"]`);l!==null&&l.addEventListener("click",()=>{qt.runFunc(r,...a)},!1)}))}setLink(e,r,n){e.split(",").forEach(i=>{let a=this.vertices.get(i);a!==void 0&&(a.link=qt.formatUrl(r,this.config),a.linkTarget=n)}),this.setClass(e,"clickable")}getTooltip(e){return this.tooltips.get(e)}setClickEvent(e,r,n){e.split(",").forEach(i=>{this.setClickFun(i,r,n)}),this.setClass(e,"clickable")}bindFunctions(e){this.funs.forEach(r=>{r(e)})}getDirection(){return this.direction?.trim()}getVertices(){return this.vertices}getEdges(){return this.edges}getClasses(){return this.classes}setupToolTips(e){let r=qe(".mermaidTooltip");(r._groups||r)[0][0]===null&&(r=qe("body").append("div").attr("class","mermaidTooltip").style("opacity",0)),qe(e).select("svg").selectAll("g.node").on("mouseover",a=>{let s=qe(a.currentTarget);if(s.attr("title")===null)return;let u=a.currentTarget?.getBoundingClientRect();r.transition().duration(200).style("opacity",".9"),r.text(s.attr("title")).style("left",window.scrollX+u.left+(u.right-u.left)/2+"px").style("top",window.scrollY+u.bottom+"px"),r.html(r.html().replace(/<br\/>/g,"
    ")),s.classed("hover",!0)}).on("mouseout",a=>{r.transition().duration(500).style("opacity",0),qe(a.currentTarget).classed("hover",!1)})}clear(e="gen-2"){this.vertices=new Map,this.classes=new Map,this.edges=[],this.funs=[this.setupToolTips.bind(this)],this.subGraphs=[],this.subGraphLookup=new Map,this.subCount=0,this.tooltips=new Map,this.firstGraphFlag=!0,this.version=e,this.config=ge(),Sr()}setGen(e){this.version=e||"gen-2"}defaultStyle(){return"fill:#ffa;stroke: #f66; stroke-width: 3px; stroke-dasharray: 5, 5;fill:#ffa;stroke: #666;"}addSubGraph(e,r,n){let i=e.text.trim(),a=n.text;e===n&&/\s/.exec(n.text)&&(i=void 0);let l=o(p=>{let m={boolean:{},number:{},string:{}},g=[],y;return{nodeList:p.filter(function(x){let b=typeof x;return x.stmt&&x.stmt==="dir"?(y=x.value,!1):x.trim()===""?!1:b in m?m[b].hasOwnProperty(x)?!1:m[b][x]=!0:g.includes(x)?!1:g.push(x)}),dir:y}},"uniq")(r.flat()),u=l.nodeList,h=l.dir,f=ge().flowchart??{};if(h=h??(f.inheritDir?this.getDirection()??ge().direction??void 0:void 0),this.version==="gen-1")for(let p=0;p2e3)return{result:!1,count:0};if(this.posCrossRef[this.secCount]=r,this.subGraphs[r].id===e)return{result:!0,count:0};let i=0,a=1;for(;i=0){let l=this.indexNodes2(e,s);if(l.result)return{result:!0,count:a+l.count};a=a+l.count}i=i+1}return{result:!1,count:a}}getDepthFirstPos(e){return this.posCrossRef[e]}indexNodes(){this.secCount=-1,this.subGraphs.length>0&&this.indexNodes2("none",this.subGraphs.length-1)}getSubGraphs(){return this.subGraphs}firstGraph(){return this.firstGraphFlag?(this.firstGraphFlag=!1,!0):!1}destructStartLink(e){let r=e.trim(),n="arrow_open";switch(r[0]){case"<":n="arrow_point",r=r.slice(1);break;case"x":n="arrow_cross",r=r.slice(1);break;case"o":n="arrow_circle",r=r.slice(1);break}let i="normal";return r.includes("=")&&(i="thick"),r.includes(".")&&(i="dotted"),{type:n,stroke:i}}countChar(e,r){let n=r.length,i=0;for(let a=0;a":i="arrow_point",r.startsWith("<")&&(i="double_"+i,n=n.slice(1));break;case"o":i="arrow_circle",r.startsWith("o")&&(i="double_"+i,n=n.slice(1));break}let a="normal",s=n.length-1;n.startsWith("=")&&(a="thick"),n.startsWith("~")&&(a="invisible");let l=this.countChar(".",n);return l&&(a="dotted",s=l),{type:i,stroke:a,length:s}}destructLink(e,r){let n=this.destructEndLink(e),i;if(r){if(i=this.destructStartLink(r),i.stroke!==n.stroke)return{type:"INVALID",stroke:"INVALID"};if(i.type==="arrow_open")i.type=n.type;else{if(i.type!==n.type)return{type:"INVALID",stroke:"INVALID"};i.type="double_"+i.type}return i.type==="double_arrow"&&(i.type="double_arrow_point"),i.length=n.length,i}return n}exists(e,r){for(let n of e)if(n.nodes.includes(r))return!0;return!1}makeUniq(e,r){let n=[];return e.nodes.forEach((i,a)=>{this.exists(r,i)||n.push(e.nodes[a])}),{nodes:n}}getTypeFromVertex(e){if(e.img)return"imageSquare";if(e.icon)return e.form==="circle"?"iconCircle":e.form==="square"?"iconSquare":e.form==="rounded"?"iconRounded":"icon";switch(e.type){case"square":case void 0:return"squareRect";case"round":return"roundedRect";case"ellipse":return"ellipse";default:return e.type}}findNode(e,r){return e.find(n=>n.id===r)}destructEdgeType(e){let r="none",n="arrow_point";switch(e){case"arrow_point":case"arrow_circle":case"arrow_cross":n=e;break;case"double_arrow_point":case"double_arrow_circle":case"double_arrow_cross":r=e.replace("double_",""),n=r;break}return{arrowTypeStart:r,arrowTypeEnd:n}}addNodeFromVertex(e,r,n,i,a,s){let l=n.get(e.id),u=i.get(e.id)??!1,h=this.findNode(r,e.id);if(h)h.cssStyles=e.styles,h.cssCompiledStyles=this.getCompiledStyles(e.classes),h.cssClasses=e.classes.join(" ");else{let f={id:e.id,label:e.text,labelStyle:"",parentId:l,padding:a.flowchart?.padding||8,cssStyles:e.styles,cssCompiledStyles:this.getCompiledStyles(["default","node",...e.classes]),cssClasses:"default "+e.classes.join(" "),dir:e.dir,domId:e.domId,look:s,link:e.link,linkTarget:e.linkTarget,tooltip:this.getTooltip(e.id),icon:e.icon,pos:e.pos,img:e.img,assetWidth:e.assetWidth,assetHeight:e.assetHeight,constraint:e.constraint};u?r.push({...f,isGroup:!0,shape:"rect"}):r.push({...f,isGroup:!1,shape:this.getTypeFromVertex(e)})}}getCompiledStyles(e){let r=[];for(let n of e){let i=this.classes.get(n);i?.styles&&(r=[...r,...i.styles??[]].map(a=>a.trim())),i?.textStyles&&(r=[...r,...i.textStyles??[]].map(a=>a.trim()))}return r}getData(){let e=ge(),r=[],n=[],i=this.getSubGraphs(),a=new Map,s=new Map;for(let h=i.length-1;h>=0;h--){let f=i[h];f.nodes.length>0&&s.set(f.id,!0);for(let d of f.nodes)a.set(d,f.id)}for(let h=i.length-1;h>=0;h--){let f=i[h];r.push({id:f.id,label:f.title,labelStyle:"",parentId:a.get(f.id),padding:8,cssCompiledStyles:this.getCompiledStyles(f.classes),cssClasses:f.classes.join(" "),shape:"rect",dir:f.dir,isGroup:!0,look:e.look})}this.getVertices().forEach(h=>{this.addNodeFromVertex(h,r,a,s,e,e.look||"classic")});let u=this.getEdges();return u.forEach((h,f)=>{let{arrowTypeStart:d,arrowTypeEnd:p}=this.destructEdgeType(h.type),m=[...u.defaultStyle??[]];h.style&&m.push(...h.style);let g={id:xc(h.start,h.end,{counter:f,prefix:"L"},h.id),isUserDefinedId:h.isUserDefinedId,start:h.start,end:h.end,type:h.type??"normal",label:h.text,labelpos:"c",thickness:h.stroke,minlen:h.length,classes:h?.stroke==="invisible"?"":"edge-thickness-normal edge-pattern-solid flowchart-link",arrowTypeStart:h?.stroke==="invisible"||h?.type==="arrow_open"?"none":d,arrowTypeEnd:h?.stroke==="invisible"||h?.type==="arrow_open"?"none":p,arrowheadStyle:"fill: #333",cssCompiledStyles:this.getCompiledStyles(h.classes),labelStyle:m,style:m,pattern:h.stroke,look:e.look,animate:h.animate,animation:h.animation,curve:h.interpolate||this.edges.defaultInterpolate||e.flowchart?.curve};n.push(g)}),{nodes:r,edges:n,other:{},config:e}}defaultConfig(){return V3.flowchart}}});var Vo,ep=M(()=>{"use strict";yr();Vo=o((t,e)=>{let r;return e==="sandbox"&&(r=qe("#i"+t)),(e==="sandbox"?qe(r.nodes()[0].contentDocument.body):qe("body")).select(`[id="${t}"]`)},"getDiagramElement")});var Pu,P2=M(()=>{"use strict";Pu=o(({flowchart:t})=>{let e=t?.subGraphTitleMargin?.top??0,r=t?.subGraphTitleMargin?.bottom??0,n=e+r;return{subGraphTitleTopMargin:e,subGraphTitleBottomMargin:r,subGraphTitleTotalMargin:n}},"getSubGraphTitleMargins")});var Gte,NRe,MRe,IRe,ORe,PRe,BRe,Vte,Sm,Ute,uw=M(()=>{"use strict";Xt();gr();pt();P2();yr();Ht();zo();S9();sw();Zd();$t();Gte=o(async(t,e)=>{X.info("Creating subgraph rect for ",e.id,e);let r=ge(),{themeVariables:n,handDrawnSeed:i}=r,{clusterBkg:a,clusterBorder:s}=n,{labelStyles:l,nodeStyles:u,borderStyles:h,backgroundStyles:f}=je(e),d=t.insert("g").attr("class","cluster "+e.cssClasses).attr("id",e.id).attr("data-look",e.look),p=vr(r.flowchart.htmlLabels),m=d.insert("g").attr("class","cluster-label "),g=await di(m,e.label,{style:e.labelStyle,useHtmlLabels:p,isNode:!0}),y=g.getBBox();if(vr(r.flowchart.htmlLabels)){let C=g.children[0],A=qe(g);y=C.getBoundingClientRect(),A.attr("width",y.width),A.attr("height",y.height)}let v=e.width<=y.width+e.padding?y.width+e.padding:e.width;e.width<=y.width+e.padding?e.diff=(v-e.width)/2-e.padding:e.diff=-e.padding;let x=e.height,b=e.x-v/2,T=e.y-x/2;X.trace("Data ",e,JSON.stringify(e));let S;if(e.look==="handDrawn"){let C=Ze.svg(d),A=Je(e,{roughness:.7,fill:a,stroke:s,fillWeight:3,seed:i}),L=C.path(Fs(b,T,v,x,0),A);S=d.insert(()=>(X.debug("Rough node insert CXC",L),L),":first-child"),S.select("path:nth-child(2)").attr("style",h.join(";")),S.select("path").attr("style",f.join(";").replace("fill","stroke"))}else S=d.insert("rect",":first-child"),S.attr("style",u).attr("rx",e.rx).attr("ry",e.ry).attr("x",b).attr("y",T).attr("width",v).attr("height",x);let{subGraphTitleTopMargin:w}=Pu(r);if(m.attr("transform",`translate(${e.x-y.width/2}, ${e.y-e.height/2+w})`),l){let C=m.select("span");C&&C.attr("style",l)}let k=S.node().getBBox();return e.offsetX=0,e.width=k.width,e.height=k.height,e.offsetY=y.height-e.padding/2,e.intersect=function(C){return Qh(e,C)},{cluster:d,labelBBox:y}},"rect"),NRe=o((t,e)=>{let r=t.insert("g").attr("class","note-cluster").attr("id",e.id),n=r.insert("rect",":first-child"),i=0*e.padding,a=i/2;n.attr("rx",e.rx).attr("ry",e.ry).attr("x",e.x-e.width/2-a).attr("y",e.y-e.height/2-a).attr("width",e.width+i).attr("height",e.height+i).attr("fill","none");let s=n.node().getBBox();return e.width=s.width,e.height=s.height,e.intersect=function(l){return Qh(e,l)},{cluster:r,labelBBox:{width:0,height:0}}},"noteGroup"),MRe=o(async(t,e)=>{let r=ge(),{themeVariables:n,handDrawnSeed:i}=r,{altBackground:a,compositeBackground:s,compositeTitleBackground:l,nodeBorder:u}=n,h=t.insert("g").attr("class",e.cssClasses).attr("id",e.id).attr("data-id",e.id).attr("data-look",e.look),f=h.insert("g",":first-child"),d=h.insert("g").attr("class","cluster-label"),p=h.append("rect"),m=d.node().appendChild(await kc(e.label,e.labelStyle,void 0,!0)),g=m.getBBox();if(vr(r.flowchart.htmlLabels)){let L=m.children[0],I=qe(m);g=L.getBoundingClientRect(),I.attr("width",g.width),I.attr("height",g.height)}let y=0*e.padding,v=y/2,x=(e.width<=g.width+e.padding?g.width+e.padding:e.width)+y;e.width<=g.width+e.padding?e.diff=(x-e.width)/2-e.padding:e.diff=-e.padding;let b=e.height+y,T=e.height+y-g.height-6,S=e.x-x/2,w=e.y-b/2;e.width=x;let k=e.y-e.height/2-v+g.height+2,C;if(e.look==="handDrawn"){let L=e.cssClasses.includes("statediagram-cluster-alt"),I=Ze.svg(h),R=e.rx||e.ry?I.path(Fs(S,w,x,b,10),{roughness:.7,fill:l,fillStyle:"solid",stroke:u,seed:i}):I.rectangle(S,w,x,b,{seed:i});C=h.insert(()=>R,":first-child");let E=I.rectangle(S,k,x,T,{fill:L?a:s,fillStyle:L?"hachure":"solid",stroke:u,seed:i});C=h.insert(()=>R,":first-child"),p=h.insert(()=>E)}else C=f.insert("rect",":first-child"),C.attr("class","outer").attr("x",S).attr("y",w).attr("width",x).attr("height",b).attr("data-look",e.look),p.attr("class","inner").attr("x",S).attr("y",k).attr("width",x).attr("height",T);d.attr("transform",`translate(${e.x-g.width/2}, ${w+1-(vr(r.flowchart.htmlLabels)?0:3)})`);let A=C.node().getBBox();return e.height=A.height,e.offsetX=0,e.offsetY=g.height-e.padding/2,e.labelBBox=g,e.intersect=function(L){return Qh(e,L)},{cluster:h,labelBBox:g}},"roundedWithTitle"),IRe=o(async(t,e)=>{X.info("Creating subgraph rect for ",e.id,e);let r=ge(),{themeVariables:n,handDrawnSeed:i}=r,{clusterBkg:a,clusterBorder:s}=n,{labelStyles:l,nodeStyles:u,borderStyles:h,backgroundStyles:f}=je(e),d=t.insert("g").attr("class","cluster "+e.cssClasses).attr("id",e.id).attr("data-look",e.look),p=vr(r.flowchart.htmlLabels),m=d.insert("g").attr("class","cluster-label "),g=await di(m,e.label,{style:e.labelStyle,useHtmlLabels:p,isNode:!0,width:e.width}),y=g.getBBox();if(vr(r.flowchart.htmlLabels)){let C=g.children[0],A=qe(g);y=C.getBoundingClientRect(),A.attr("width",y.width),A.attr("height",y.height)}let v=e.width<=y.width+e.padding?y.width+e.padding:e.width;e.width<=y.width+e.padding?e.diff=(v-e.width)/2-e.padding:e.diff=-e.padding;let x=e.height,b=e.x-v/2,T=e.y-x/2;X.trace("Data ",e,JSON.stringify(e));let S;if(e.look==="handDrawn"){let C=Ze.svg(d),A=Je(e,{roughness:.7,fill:a,stroke:s,fillWeight:4,seed:i}),L=C.path(Fs(b,T,v,x,e.rx),A);S=d.insert(()=>(X.debug("Rough node insert CXC",L),L),":first-child"),S.select("path:nth-child(2)").attr("style",h.join(";")),S.select("path").attr("style",f.join(";").replace("fill","stroke"))}else S=d.insert("rect",":first-child"),S.attr("style",u).attr("rx",e.rx).attr("ry",e.ry).attr("x",b).attr("y",T).attr("width",v).attr("height",x);let{subGraphTitleTopMargin:w}=Pu(r);if(m.attr("transform",`translate(${e.x-y.width/2}, ${e.y-e.height/2+w})`),l){let C=m.select("span");C&&C.attr("style",l)}let k=S.node().getBBox();return e.offsetX=0,e.width=k.width,e.height=k.height,e.offsetY=y.height-e.padding/2,e.intersect=function(C){return Qh(e,C)},{cluster:d,labelBBox:y}},"kanbanSection"),ORe=o((t,e)=>{let r=ge(),{themeVariables:n,handDrawnSeed:i}=r,{nodeBorder:a}=n,s=t.insert("g").attr("class",e.cssClasses).attr("id",e.id).attr("data-look",e.look),l=s.insert("g",":first-child"),u=0*e.padding,h=e.width+u;e.diff=-e.padding;let f=e.height+u,d=e.x-h/2,p=e.y-f/2;e.width=h;let m;if(e.look==="handDrawn"){let v=Ze.svg(s).rectangle(d,p,h,f,{fill:"lightgrey",roughness:.5,strokeLineDash:[5],stroke:a,seed:i});m=s.insert(()=>v,":first-child")}else m=l.insert("rect",":first-child"),m.attr("class","divider").attr("x",d).attr("y",p).attr("width",h).attr("height",f).attr("data-look",e.look);let g=m.node().getBBox();return e.height=g.height,e.offsetX=0,e.offsetY=0,e.intersect=function(y){return Qh(e,y)},{cluster:s,labelBBox:{}}},"divider"),PRe=Gte,BRe={rect:Gte,squareRect:PRe,roundedWithTitle:MRe,noteGroup:NRe,divider:ORe,kanbanSection:IRe},Vte=new Map,Sm=o(async(t,e)=>{let r=e.shape||"rect",n=await BRe[r](t,e);return Vte.set(e.id,n),n},"insertCluster"),Ute=o(()=>{Vte=new Map},"clear")});function hw(t,e){if(t===void 0||e===void 0)return{angle:0,deltaX:0,deltaY:0};t=Xn(t),e=Xn(e);let[r,n]=[t.x,t.y],[i,a]=[e.x,e.y],s=i-r,l=a-n;return{angle:Math.atan(l/s),deltaX:s,deltaY:l}}var da,Y9,Xn,fw,X9=M(()=>{"use strict";da={aggregation:17.25,extension:17.25,composition:17.25,dependency:6,lollipop:13.5,arrow_point:4},Y9={arrow_point:9,arrow_cross:12.5,arrow_circle:12.5};o(hw,"calculateDeltaAndAngle");Xn=o(t=>Array.isArray(t)?{x:t[0],y:t[1]}:t,"pointTransformer"),fw=o(t=>({x:o(function(e,r,n){let i=0,a=Xn(n[0]).x=0?1:-1)}else if(r===n.length-1&&Object.hasOwn(da,t.arrowTypeEnd)){let{angle:m,deltaX:g}=hw(n[n.length-1],n[n.length-2]);i=da[t.arrowTypeEnd]*Math.cos(m)*(g>=0?1:-1)}let s=Math.abs(Xn(e).x-Xn(n[n.length-1]).x),l=Math.abs(Xn(e).y-Xn(n[n.length-1]).y),u=Math.abs(Xn(e).x-Xn(n[0]).x),h=Math.abs(Xn(e).y-Xn(n[0]).y),f=da[t.arrowTypeStart],d=da[t.arrowTypeEnd],p=1;if(s0&&l0&&h=0?1:-1)}else if(r===n.length-1&&Object.hasOwn(da,t.arrowTypeEnd)){let{angle:m,deltaY:g}=hw(n[n.length-1],n[n.length-2]);i=da[t.arrowTypeEnd]*Math.abs(Math.sin(m))*(g>=0?1:-1)}let s=Math.abs(Xn(e).y-Xn(n[n.length-1]).y),l=Math.abs(Xn(e).x-Xn(n[n.length-1]).x),u=Math.abs(Xn(e).y-Xn(n[0]).y),h=Math.abs(Xn(e).x-Xn(n[0]).x),f=da[t.arrowTypeStart],d=da[t.arrowTypeEnd],p=1;if(s0&&l0&&h{"use strict";pt();qte=o((t,e,r,n,i,a)=>{e.arrowTypeStart&&Hte(t,"start",e.arrowTypeStart,r,n,i,a),e.arrowTypeEnd&&Hte(t,"end",e.arrowTypeEnd,r,n,i,a)},"addEdgeMarkers"),FRe={arrow_cross:{type:"cross",fill:!1},arrow_point:{type:"point",fill:!0},arrow_barb:{type:"barb",fill:!0},arrow_circle:{type:"circle",fill:!1},aggregation:{type:"aggregation",fill:!1},extension:{type:"extension",fill:!1},composition:{type:"composition",fill:!0},dependency:{type:"dependency",fill:!0},lollipop:{type:"lollipop",fill:!1},only_one:{type:"onlyOne",fill:!1},zero_or_one:{type:"zeroOrOne",fill:!1},one_or_more:{type:"oneOrMore",fill:!1},zero_or_more:{type:"zeroOrMore",fill:!1},requirement_arrow:{type:"requirement_arrow",fill:!1},requirement_contains:{type:"requirement_contains",fill:!1}},Hte=o((t,e,r,n,i,a,s)=>{let l=FRe[r];if(!l){X.warn(`Unknown arrow type: ${r}`);return}let u=l.type,f=`${i}_${a}-${u}${e==="start"?"Start":"End"}`;if(s&&s.trim()!==""){let d=s.replace(/[^\dA-Za-z]/g,"_"),p=`${f}_${d}`;if(!document.getElementById(p)){let m=document.getElementById(f);if(m){let g=m.cloneNode(!0);g.id=p,g.querySelectorAll("path, circle, line").forEach(v=>{v.setAttribute("stroke",s),l.fill&&v.setAttribute("fill",s)}),m.parentNode?.appendChild(g)}}t.attr(`marker-${e}`,`url(${n}#${p})`)}else t.attr(`marker-${e}`,`url(${n}#${f})`)},"addEdgeMarker")});function pw(t,e){ge().flowchart.htmlLabels&&t&&(t.style.width=e.length*9+"px",t.style.height="12px")}function GRe(t){let e=[],r=[];for(let n=1;n5&&Math.abs(a.y-i.y)>5||i.y===a.y&&a.x===s.x&&Math.abs(a.x-i.x)>5&&Math.abs(a.y-s.y)>5)&&(e.push(a),r.push(n))}return{cornerPoints:e,cornerPointPositions:r}}function HRe(t,e){if(t.length<2)return"";let r="",n=t.length,i=1e-5;for(let a=0;a({...i}));if(t.length>=2&&da[e.arrowTypeStart]){let i=da[e.arrowTypeStart],a=t[0],s=t[1],{angle:l}=jte(a,s),u=i*Math.cos(l),h=i*Math.sin(l);r[0].x=a.x+u,r[0].y=a.y+h}let n=t.length;if(n>=2&&da[e.arrowTypeEnd]){let i=da[e.arrowTypeEnd],a=t[n-1],s=t[n-2],{angle:l}=jte(s,a),u=i*Math.cos(l),h=i*Math.sin(l);r[n-1].x=a.x-u,r[n-1].y=a.y-h}return r}var mw,pa,Kte,dw,gw,yw,$Re,zRe,Yte,Xte,VRe,URe,vw,j9=M(()=>{"use strict";Xt();gr();pt();zo();tr();X9();P2();yr();Ht();sw();Wte();$t();mw=new Map,pa=new Map,Kte=o(()=>{mw.clear(),pa.clear()},"clear"),dw=o(t=>t?t.reduce((r,n)=>r+";"+n,""):"","getLabelStyles"),gw=o(async(t,e)=>{let r=vr(ge().flowchart.htmlLabels),{labelStyles:n}=je(e);e.labelStyle=n;let i=await di(t,e.label,{style:e.labelStyle,useHtmlLabels:r,addSvgBackground:!0,isNode:!1});X.info("abc82",e,e.labelType);let a=t.insert("g").attr("class","edgeLabel"),s=a.insert("g").attr("class","label").attr("data-id",e.id);s.node().appendChild(i);let l=i.getBBox();if(r){let h=i.children[0],f=qe(i);l=h.getBoundingClientRect(),f.attr("width",l.width),f.attr("height",l.height)}s.attr("transform","translate("+-l.width/2+", "+-l.height/2+")"),mw.set(e.id,a),e.width=l.width,e.height=l.height;let u;if(e.startLabelLeft){let h=await kc(e.startLabelLeft,dw(e.labelStyle)),f=t.insert("g").attr("class","edgeTerminals"),d=f.insert("g").attr("class","inner");u=d.node().appendChild(h);let p=h.getBBox();d.attr("transform","translate("+-p.width/2+", "+-p.height/2+")"),pa.get(e.id)||pa.set(e.id,{}),pa.get(e.id).startLeft=f,pw(u,e.startLabelLeft)}if(e.startLabelRight){let h=await kc(e.startLabelRight,dw(e.labelStyle)),f=t.insert("g").attr("class","edgeTerminals"),d=f.insert("g").attr("class","inner");u=f.node().appendChild(h),d.node().appendChild(h);let p=h.getBBox();d.attr("transform","translate("+-p.width/2+", "+-p.height/2+")"),pa.get(e.id)||pa.set(e.id,{}),pa.get(e.id).startRight=f,pw(u,e.startLabelRight)}if(e.endLabelLeft){let h=await kc(e.endLabelLeft,dw(e.labelStyle)),f=t.insert("g").attr("class","edgeTerminals"),d=f.insert("g").attr("class","inner");u=d.node().appendChild(h);let p=h.getBBox();d.attr("transform","translate("+-p.width/2+", "+-p.height/2+")"),f.node().appendChild(h),pa.get(e.id)||pa.set(e.id,{}),pa.get(e.id).endLeft=f,pw(u,e.endLabelLeft)}if(e.endLabelRight){let h=await kc(e.endLabelRight,dw(e.labelStyle)),f=t.insert("g").attr("class","edgeTerminals"),d=f.insert("g").attr("class","inner");u=d.node().appendChild(h);let p=h.getBBox();d.attr("transform","translate("+-p.width/2+", "+-p.height/2+")"),f.node().appendChild(h),pa.get(e.id)||pa.set(e.id,{}),pa.get(e.id).endRight=f,pw(u,e.endLabelRight)}return i},"insertEdgeLabel");o(pw,"setTerminalWidth");yw=o((t,e)=>{X.debug("Moving label abc88 ",t.id,t.label,mw.get(t.id),e);let r=e.updatedPath?e.updatedPath:e.originalPath,n=ge(),{subGraphTitleTotalMargin:i}=Pu(n);if(t.label){let a=mw.get(t.id),s=t.x,l=t.y;if(r){let u=qt.calcLabelPosition(r);X.debug("Moving label "+t.label+" from (",s,",",l,") to (",u.x,",",u.y,") abc88"),e.updatedPath&&(s=u.x,l=u.y)}a.attr("transform",`translate(${s}, ${l+i/2})`)}if(t.startLabelLeft){let a=pa.get(t.id).startLeft,s=t.x,l=t.y;if(r){let u=qt.calcTerminalLabelPosition(t.arrowTypeStart?10:0,"start_left",r);s=u.x,l=u.y}a.attr("transform",`translate(${s}, ${l})`)}if(t.startLabelRight){let a=pa.get(t.id).startRight,s=t.x,l=t.y;if(r){let u=qt.calcTerminalLabelPosition(t.arrowTypeStart?10:0,"start_right",r);s=u.x,l=u.y}a.attr("transform",`translate(${s}, ${l})`)}if(t.endLabelLeft){let a=pa.get(t.id).endLeft,s=t.x,l=t.y;if(r){let u=qt.calcTerminalLabelPosition(t.arrowTypeEnd?10:0,"end_left",r);s=u.x,l=u.y}a.attr("transform",`translate(${s}, ${l})`)}if(t.endLabelRight){let a=pa.get(t.id).endRight,s=t.x,l=t.y;if(r){let u=qt.calcTerminalLabelPosition(t.arrowTypeEnd?10:0,"end_right",r);s=u.x,l=u.y}a.attr("transform",`translate(${s}, ${l})`)}},"positionEdgeLabel"),$Re=o((t,e)=>{let r=t.x,n=t.y,i=Math.abs(e.x-r),a=Math.abs(e.y-n),s=t.width/2,l=t.height/2;return i>=s||a>=l},"outsideNode"),zRe=o((t,e,r)=>{X.debug(`intersection calc abc89: + outsidePoint: ${JSON.stringify(e)} + insidePoint : ${JSON.stringify(r)} + node : x:${t.x} y:${t.y} w:${t.width} h:${t.height}`);let n=t.x,i=t.y,a=Math.abs(n-r.x),s=t.width/2,l=r.xMath.abs(n-e.x)*u){let d=r.y{X.warn("abc88 cutPathAtIntersect",t,e);let r=[],n=t[0],i=!1;return t.forEach(a=>{if(X.info("abc88 checking point",a,e),!$Re(e,a)&&!i){let s=zRe(e,n,a);X.debug("abc88 inside",a,n,s),X.debug("abc88 intersection",s,e);let l=!1;r.forEach(u=>{l=l||u.x===s.x&&u.y===s.y}),r.some(u=>u.x===s.x&&u.y===s.y)?X.warn("abc88 no intersect",s,r):r.push(s),i=!0}else X.warn("abc88 outside",a,n),n=a,i||r.push(a)}),X.debug("returning points",r),r},"cutPathAtIntersect");o(GRe,"extractCornerPoints");Xte=o(function(t,e,r){let n=e.x-t.x,i=e.y-t.y,a=Math.sqrt(n*n+i*i),s=r/a;return{x:e.x-s*n,y:e.y-s*i}},"findAdjacentPoint"),VRe=o(function(t){let{cornerPointPositions:e}=GRe(t),r=[];for(let n=0;n10&&Math.abs(a.y-i.y)>=10){X.debug("Corner point fixing",Math.abs(a.x-i.x),Math.abs(a.y-i.y));let m=5;s.x===l.x?p={x:h<0?l.x-m+d:l.x+m-d,y:f<0?l.y-d:l.y+d}:p={x:h<0?l.x-d:l.x+d,y:f<0?l.y-m+d:l.y+m-d}}else X.debug("Corner point skipping fixing",Math.abs(a.x-i.x),Math.abs(a.y-i.y));r.push(p,u)}else r.push(t[n]);return r},"fixCorners"),URe=o((t,e,r)=>{let n=t-e-r,i=2,a=2,s=i+a,l=Math.floor(n/s),u=Array(l).fill(`${i} ${a}`).join(" ");return`0 ${e} ${u} ${r}`},"generateDashArray"),vw=o(function(t,e,r,n,i,a,s,l=!1){let{handDrawnSeed:u}=ge(),h=e.points,f=!1,d=i;var p=a;let m=[];for(let D in e.cssCompiledStyles)D2(D)||m.push(e.cssCompiledStyles[D]);X.debug("UIO intersect check",e.points,p.x,d.x),p.intersect&&d.intersect&&!l&&(h=h.slice(1,e.points.length-1),h.unshift(d.intersect(h[0])),X.debug("Last point UIO",e.start,"-->",e.end,h[h.length-1],p,p.intersect(h[h.length-1])),h.push(p.intersect(h[h.length-1])));let g=btoa(JSON.stringify(h));e.toCluster&&(X.info("to cluster abc88",r.get(e.toCluster)),h=Yte(e.points,r.get(e.toCluster).node),f=!0),e.fromCluster&&(X.debug("from cluster abc88",r.get(e.fromCluster),JSON.stringify(h,null,2)),h=Yte(h.reverse(),r.get(e.fromCluster).node).reverse(),f=!0);let y=h.filter(D=>!Number.isNaN(D.y));y=VRe(y);let v=No;switch(v=Cu,e.curve){case"linear":v=Cu;break;case"basis":v=No;break;case"cardinal":v=Xv;break;case"bumpX":v=Uv;break;case"bumpY":v=Hv;break;case"catmullRom":v=Qv;break;case"monotoneX":v=Zv;break;case"monotoneY":v=Jv;break;case"natural":v=J0;break;case"step":v=em;break;case"stepAfter":v=t2;break;case"stepBefore":v=e2;break;default:v=No}let{x,y:b}=fw(e),T=Cl().x(x).y(b).curve(v),S;switch(e.thickness){case"normal":S="edge-thickness-normal";break;case"thick":S="edge-thickness-thick";break;case"invisible":S="edge-thickness-invisible";break;default:S="edge-thickness-normal"}switch(e.pattern){case"solid":S+=" edge-pattern-solid";break;case"dotted":S+=" edge-pattern-dotted";break;case"dashed":S+=" edge-pattern-dashed";break;default:S+=" edge-pattern-solid"}let w,k=e.curve==="rounded"?HRe(qRe(y,e),5):T(y),C=Array.isArray(e.style)?e.style:[e.style],A=C.find(D=>D?.startsWith("stroke:")),L=!1;if(e.look==="handDrawn"){let D=Ze.svg(t);Object.assign([],y);let O=D.path(k,{roughness:.3,seed:u});S+=" transition",w=qe(O).select("path").attr("id",e.id).attr("class"," "+S+(e.classes?" "+e.classes:"")).attr("style",C?C.reduce((P,B)=>P+";"+B,""):"");let N=w.attr("d");w.attr("d",N),t.node().appendChild(w.node())}else{let D=m.join(";"),O=C?C.reduce((U,j)=>U+j+";",""):"",N="";e.animate&&(N=" edge-animation-fast"),e.animation&&(N=" edge-animation-"+e.animation);let P=(D?D+";"+O+";":O)+";"+(C?C.reduce((U,j)=>U+";"+j,""):"");w=t.append("path").attr("d",k).attr("id",e.id).attr("class"," "+S+(e.classes?" "+e.classes:"")+(N??"")).attr("style",P),A=P.match(/stroke:([^;]+)/)?.[1],L=e.animate===!0||!!e.animation||D.includes("animation");let B=w.node(),F=typeof B.getTotalLength=="function"?B.getTotalLength():0,V=Y9[e.arrowTypeStart]||0,$=Y9[e.arrowTypeEnd]||0;if(e.look==="neo"&&!L){let j=`stroke-dasharray: ${e.pattern==="dotted"||e.pattern==="dashed"?URe(F,V,$):`0 ${V} ${F-V-$} ${$}`}; stroke-dashoffset: 0;`;w.attr("style",j+w.attr("style"))}}w.attr("data-edge",!0),w.attr("data-et","edge"),w.attr("data-id",e.id),w.attr("data-points",g),e.showPoints&&y.forEach(D=>{t.append("circle").style("stroke","red").style("fill","red").attr("r",1).attr("cx",D.x).attr("cy",D.y)});let I="";(ge().flowchart.arrowMarkerAbsolute||ge().state.arrowMarkerAbsolute)&&(I=window.location.protocol+"//"+window.location.host+window.location.pathname+window.location.search,I=I.replace(/\(/g,"\\(").replace(/\)/g,"\\)")),X.info("arrowTypeStart",e.arrowTypeStart),X.info("arrowTypeEnd",e.arrowTypeEnd),qte(w,e,I,s,n,A);let R=Math.floor(h.length/2),E=h[R];qt.isLabelCoordinateInPath(E,w.attr("d"))||(f=!0);let _={};return f&&(_.updatedPath=h),_.originalPath=e.points,_},"insertEdge");o(HRe,"generateRoundedPath");o(jte,"calculateDeltaAndAngle");o(qRe,"applyMarkerOffsetsToPoints")});var WRe,YRe,XRe,jRe,KRe,QRe,ZRe,JRe,eNe,tNe,rNe,nNe,iNe,aNe,sNe,oNe,lNe,xw,K9=M(()=>{"use strict";pt();WRe=o((t,e,r,n)=>{e.forEach(i=>{lNe[i](t,r,n)})},"insertMarkers"),YRe=o((t,e,r)=>{X.trace("Making markers for ",r),t.append("defs").append("marker").attr("id",r+"_"+e+"-extensionStart").attr("class","marker extension "+e).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"),t.append("defs").append("marker").attr("id",r+"_"+e+"-extensionEnd").attr("class","marker extension "+e).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")},"extension"),XRe=o((t,e,r)=>{t.append("defs").append("marker").attr("id",r+"_"+e+"-compositionStart").attr("class","marker composition "+e).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"),t.append("defs").append("marker").attr("id",r+"_"+e+"-compositionEnd").attr("class","marker composition "+e).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")},"composition"),jRe=o((t,e,r)=>{t.append("defs").append("marker").attr("id",r+"_"+e+"-aggregationStart").attr("class","marker aggregation "+e).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"),t.append("defs").append("marker").attr("id",r+"_"+e+"-aggregationEnd").attr("class","marker aggregation "+e).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")},"aggregation"),KRe=o((t,e,r)=>{t.append("defs").append("marker").attr("id",r+"_"+e+"-dependencyStart").attr("class","marker dependency "+e).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"),t.append("defs").append("marker").attr("id",r+"_"+e+"-dependencyEnd").attr("class","marker dependency "+e).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")},"dependency"),QRe=o((t,e,r)=>{t.append("defs").append("marker").attr("id",r+"_"+e+"-lollipopStart").attr("class","marker lollipop "+e).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),t.append("defs").append("marker").attr("id",r+"_"+e+"-lollipopEnd").attr("class","marker lollipop "+e).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)},"lollipop"),ZRe=o((t,e,r)=>{t.append("marker").attr("id",r+"_"+e+"-pointEnd").attr("class","marker "+e).attr("viewBox","0 0 10 10").attr("refX",5).attr("refY",5).attr("markerUnits","userSpaceOnUse").attr("markerWidth",8).attr("markerHeight",8).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"),t.append("marker").attr("id",r+"_"+e+"-pointStart").attr("class","marker "+e).attr("viewBox","0 0 10 10").attr("refX",4.5).attr("refY",5).attr("markerUnits","userSpaceOnUse").attr("markerWidth",8).attr("markerHeight",8).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")},"point"),JRe=o((t,e,r)=>{t.append("marker").attr("id",r+"_"+e+"-circleEnd").attr("class","marker "+e).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"),t.append("marker").attr("id",r+"_"+e+"-circleStart").attr("class","marker "+e).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")},"circle"),eNe=o((t,e,r)=>{t.append("marker").attr("id",r+"_"+e+"-crossEnd").attr("class","marker cross "+e).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"),t.append("marker").attr("id",r+"_"+e+"-crossStart").attr("class","marker cross "+e).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")},"cross"),tNe=o((t,e,r)=>{t.append("defs").append("marker").attr("id",r+"_"+e+"-barbEnd").attr("refX",19).attr("refY",7).attr("markerWidth",20).attr("markerHeight",14).attr("markerUnits","userSpaceOnUse").attr("orient","auto").append("path").attr("d","M 19,7 L9,13 L14,7 L9,1 Z")},"barb"),rNe=o((t,e,r)=>{t.append("defs").append("marker").attr("id",r+"_"+e+"-onlyOneStart").attr("class","marker onlyOne "+e).attr("refX",0).attr("refY",9).attr("markerWidth",18).attr("markerHeight",18).attr("orient","auto").append("path").attr("d","M9,0 L9,18 M15,0 L15,18"),t.append("defs").append("marker").attr("id",r+"_"+e+"-onlyOneEnd").attr("class","marker onlyOne "+e).attr("refX",18).attr("refY",9).attr("markerWidth",18).attr("markerHeight",18).attr("orient","auto").append("path").attr("d","M3,0 L3,18 M9,0 L9,18")},"only_one"),nNe=o((t,e,r)=>{let n=t.append("defs").append("marker").attr("id",r+"_"+e+"-zeroOrOneStart").attr("class","marker zeroOrOne "+e).attr("refX",0).attr("refY",9).attr("markerWidth",30).attr("markerHeight",18).attr("orient","auto");n.append("circle").attr("fill","white").attr("cx",21).attr("cy",9).attr("r",6),n.append("path").attr("d","M9,0 L9,18");let i=t.append("defs").append("marker").attr("id",r+"_"+e+"-zeroOrOneEnd").attr("class","marker zeroOrOne "+e).attr("refX",30).attr("refY",9).attr("markerWidth",30).attr("markerHeight",18).attr("orient","auto");i.append("circle").attr("fill","white").attr("cx",9).attr("cy",9).attr("r",6),i.append("path").attr("d","M21,0 L21,18")},"zero_or_one"),iNe=o((t,e,r)=>{t.append("defs").append("marker").attr("id",r+"_"+e+"-oneOrMoreStart").attr("class","marker oneOrMore "+e).attr("refX",18).attr("refY",18).attr("markerWidth",45).attr("markerHeight",36).attr("orient","auto").append("path").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",r+"_"+e+"-oneOrMoreEnd").attr("class","marker oneOrMore "+e).attr("refX",27).attr("refY",18).attr("markerWidth",45).attr("markerHeight",36).attr("orient","auto").append("path").attr("d","M3,9 L3,27 M9,18 Q27,0 45,18 Q27,36 9,18")},"one_or_more"),aNe=o((t,e,r)=>{let n=t.append("defs").append("marker").attr("id",r+"_"+e+"-zeroOrMoreStart").attr("class","marker zeroOrMore "+e).attr("refX",18).attr("refY",18).attr("markerWidth",57).attr("markerHeight",36).attr("orient","auto");n.append("circle").attr("fill","white").attr("cx",48).attr("cy",18).attr("r",6),n.append("path").attr("d","M0,18 Q18,0 36,18 Q18,36 0,18");let i=t.append("defs").append("marker").attr("id",r+"_"+e+"-zeroOrMoreEnd").attr("class","marker zeroOrMore "+e).attr("refX",39).attr("refY",18).attr("markerWidth",57).attr("markerHeight",36).attr("orient","auto");i.append("circle").attr("fill","white").attr("cx",9).attr("cy",18).attr("r",6),i.append("path").attr("d","M21,18 Q39,0 57,18 Q39,36 21,18")},"zero_or_more"),sNe=o((t,e,r)=>{t.append("defs").append("marker").attr("id",r+"_"+e+"-requirement_arrowEnd").attr("refX",20).attr("refY",10).attr("markerWidth",20).attr("markerHeight",20).attr("orient","auto").append("path").attr("d",`M0,0 + L20,10 + M20,10 + L0,20`)},"requirement_arrow"),oNe=o((t,e,r)=>{let n=t.append("defs").append("marker").attr("id",r+"_"+e+"-requirement_containsStart").attr("refX",0).attr("refY",10).attr("markerWidth",20).attr("markerHeight",20).attr("orient","auto").append("g");n.append("circle").attr("cx",10).attr("cy",10).attr("r",9).attr("fill","none"),n.append("line").attr("x1",1).attr("x2",19).attr("y1",10).attr("y2",10),n.append("line").attr("y1",1).attr("y2",19).attr("x1",10).attr("x2",10)},"requirement_contains"),lNe={extension:YRe,composition:XRe,aggregation:jRe,dependency:KRe,lollipop:QRe,point:ZRe,circle:JRe,cross:eNe,barb:tNe,only_one:rNe,zero_or_one:nNe,one_or_more:iNe,zero_or_more:aNe,requirement_arrow:sNe,requirement_contains:oNe},xw=WRe});async function Cm(t,e,r){let n,i;e.shape==="rect"&&(e.rx&&e.ry?e.shape="roundedRect":e.shape="squareRect");let a=e.shape?q9[e.shape]:void 0;if(!a)throw new Error(`No such shape: ${e.shape}. Please check your syntax.`);if(e.link){let s;r.config.securityLevel==="sandbox"?s="_top":e.linkTarget&&(s=e.linkTarget||"_blank"),n=t.insert("svg:a").attr("xlink:href",e.link).attr("target",s??null),i=await a(n,e,r)}else i=await a(t,e,r),n=i;return e.tooltip&&i.attr("title",e.tooltip),bw.set(e.id,n),e.haveCallback&&n.attr("class",n.attr("class")+" clickable"),n}var bw,Qte,Zte,B2,Tw=M(()=>{"use strict";pt();W9();bw=new Map;o(Cm,"insertNode");Qte=o((t,e)=>{bw.set(e.id,t)},"setNodeElem"),Zte=o(()=>{bw.clear()},"clear"),B2=o(t=>{let e=bw.get(t.id);X.trace("Transforming node",t.diff,t,"translate("+(t.x-t.width/2-5)+", "+t.width/2+")");let r=8,n=t.diff||0;return t.clusterNode?e.attr("transform","translate("+(t.x+n-t.width/2)+", "+(t.y-t.height/2-r)+")"):e.attr("transform","translate("+t.x+", "+t.y+")"),n},"positionNode")});var Jte,ere=M(()=>{"use strict";qn();gr();pt();uw();j9();K9();Tw();It();tr();Jte={common:tt,getConfig:Qt,insertCluster:Sm,insertEdge:vw,insertEdgeLabel:gw,insertMarkers:xw,insertNode:Cm,interpolateToCurve:FL,labelHelper:ut,log:X,positionEdgeLabel:yw}});function uNe(t){return typeof t=="symbol"||ai(t)&&fa(t)==cNe}var cNe,uo,tp=M(()=>{"use strict";_u();Oo();cNe="[object Symbol]";o(uNe,"isSymbol");uo=uNe});function hNe(t,e){for(var r=-1,n=t==null?0:t.length,i=Array(n);++r{"use strict";o(hNe,"arrayMap");$s=hNe});function nre(t){if(typeof t=="string")return t;if(Bt(t))return $s(t,nre)+"";if(uo(t))return rre?rre.call(t):"";var e=t+"";return e=="0"&&1/t==-fNe?"-0":e}var fNe,tre,rre,ire,are=M(()=>{"use strict";$d();rp();Yn();tp();fNe=1/0,tre=Ki?Ki.prototype:void 0,rre=tre?tre.toString:void 0;o(nre,"baseToString");ire=nre});function pNe(t){for(var e=t.length;e--&&dNe.test(t.charAt(e)););return e}var dNe,sre,ore=M(()=>{"use strict";dNe=/\s/;o(pNe,"trimmedEndIndex");sre=pNe});function gNe(t){return t&&t.slice(0,sre(t)+1).replace(mNe,"")}var mNe,lre,cre=M(()=>{"use strict";ore();mNe=/^\s+/;o(gNe,"baseTrim");lre=gNe});function TNe(t){if(typeof t=="number")return t;if(uo(t))return ure;if(Sn(t)){var e=typeof t.valueOf=="function"?t.valueOf():t;t=Sn(e)?e+"":e}if(typeof t!="string")return t===0?t:+t;t=lre(t);var r=vNe.test(t);return r||xNe.test(t)?bNe(t.slice(2),r?2:8):yNe.test(t)?ure:+t}var ure,yNe,vNe,xNe,bNe,hre,fre=M(()=>{"use strict";cre();oo();tp();ure=NaN,yNe=/^[-+]0x[0-9a-f]+$/i,vNe=/^0b[01]+$/i,xNe=/^0o[0-7]+$/i,bNe=parseInt;o(TNe,"toNumber");hre=TNe});function kNe(t){if(!t)return t===0?t:0;if(t=hre(t),t===dre||t===-dre){var e=t<0?-1:1;return e*wNe}return t===t?t:0}var dre,wNe,Am,Q9=M(()=>{"use strict";fre();dre=1/0,wNe=17976931348623157e292;o(kNe,"toFinite");Am=kNe});function ENe(t){var e=Am(t),r=e%1;return e===e?r?e-r:e:0}var Ec,_m=M(()=>{"use strict";Q9();o(ENe,"toInteger");Ec=ENe});var SNe,ww,pre=M(()=>{"use strict";Fh();Mo();SNe=Ls(hi,"WeakMap"),ww=SNe});function CNe(){}var si,Z9=M(()=>{"use strict";o(CNe,"noop");si=CNe});function ANe(t,e){for(var r=-1,n=t==null?0:t.length;++r{"use strict";o(ANe,"arrayEach");kw=ANe});function _Ne(t,e,r,n){for(var i=t.length,a=r+(n?1:-1);n?a--:++a{"use strict";o(_Ne,"baseFindIndex");Ew=_Ne});function DNe(t){return t!==t}var mre,gre=M(()=>{"use strict";o(DNe,"baseIsNaN");mre=DNe});function LNe(t,e,r){for(var n=r-1,i=t.length;++n{"use strict";o(LNe,"strictIndexOf");yre=LNe});function RNe(t,e,r){return e===e?yre(t,e,r):Ew(t,mre,r)}var Dm,Sw=M(()=>{"use strict";eR();gre();vre();o(RNe,"baseIndexOf");Dm=RNe});function NNe(t,e){var r=t==null?0:t.length;return!!r&&Dm(t,e,0)>-1}var Cw,tR=M(()=>{"use strict";Sw();o(NNe,"arrayIncludes");Cw=NNe});var MNe,xre,bre=M(()=>{"use strict";SL();MNe=bT(Object.keys,Object),xre=MNe});function PNe(t){if(!mc(t))return xre(t);var e=[];for(var r in Object(t))ONe.call(t,r)&&r!="constructor"&&e.push(r);return e}var INe,ONe,Lm,Aw=M(()=>{"use strict";dm();bre();INe=Object.prototype,ONe=INe.hasOwnProperty;o(PNe,"baseKeys");Lm=PNe});function BNe(t){return fi(t)?ST(t):Lm(t)}var qr,Sc=M(()=>{"use strict";LL();Aw();Po();o(BNe,"keys");qr=BNe});var FNe,$Ne,zNe,ma,Tre=M(()=>{"use strict";ym();Hd();IL();Po();dm();Sc();FNe=Object.prototype,$Ne=FNe.hasOwnProperty,zNe=_T(function(t,e){if(mc(e)||fi(e)){$o(e,qr(e),t);return}for(var r in e)$Ne.call(e,r)&&gc(t,r,e[r])}),ma=zNe});function UNe(t,e){if(Bt(t))return!1;var r=typeof t;return r=="number"||r=="symbol"||r=="boolean"||t==null||uo(t)?!0:VNe.test(t)||!GNe.test(t)||e!=null&&t in Object(e)}var GNe,VNe,Rm,_w=M(()=>{"use strict";Yn();tp();GNe=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,VNe=/^\w*$/;o(UNe,"isKey");Rm=UNe});function qNe(t){var e=am(t,function(n){return r.size===HNe&&r.clear(),n}),r=e.cache;return e}var HNe,wre,kre=M(()=>{"use strict";vL();HNe=500;o(qNe,"memoizeCapped");wre=qNe});var WNe,YNe,XNe,Ere,Sre=M(()=>{"use strict";kre();WNe=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,YNe=/\\(\\)?/g,XNe=wre(function(t){var e=[];return t.charCodeAt(0)===46&&e.push(""),t.replace(WNe,function(r,n,i,a){e.push(i?a.replace(YNe,"$1"):n||r)}),e}),Ere=XNe});function jNe(t){return t==null?"":ire(t)}var Dw,rR=M(()=>{"use strict";are();o(jNe,"toString");Dw=jNe});function KNe(t,e){return Bt(t)?t:Rm(t,e)?[t]:Ere(Dw(t))}var rf,F2=M(()=>{"use strict";Yn();_w();Sre();rR();o(KNe,"castPath");rf=KNe});function ZNe(t){if(typeof t=="string"||uo(t))return t;var e=t+"";return e=="0"&&1/t==-QNe?"-0":e}var QNe,Cc,Nm=M(()=>{"use strict";tp();QNe=1/0;o(ZNe,"toKey");Cc=ZNe});function JNe(t,e){e=rf(e,t);for(var r=0,n=e.length;t!=null&&r{"use strict";F2();Nm();o(JNe,"baseGet");nf=JNe});function eMe(t,e,r){var n=t==null?void 0:nf(t,e);return n===void 0?r:n}var Cre,Are=M(()=>{"use strict";$2();o(eMe,"get");Cre=eMe});function tMe(t,e){for(var r=-1,n=e.length,i=t.length;++r{"use strict";o(tMe,"arrayPush");Mm=tMe});function rMe(t){return Bt(t)||_l(t)||!!(_re&&t&&t[_re])}var _re,Dre,Lre=M(()=>{"use strict";$d();pm();Yn();_re=Ki?Ki.isConcatSpreadable:void 0;o(rMe,"isFlattenable");Dre=rMe});function Rre(t,e,r,n,i){var a=-1,s=t.length;for(r||(r=Dre),i||(i=[]);++a0&&r(l)?e>1?Rre(l,e-1,r,n,i):Mm(i,l):n||(i[i.length]=l)}return i}var Ac,Im=M(()=>{"use strict";Lw();Lre();o(Rre,"baseFlatten");Ac=Rre});function nMe(t){var e=t==null?0:t.length;return e?Ac(t,1):[]}var Qr,Rw=M(()=>{"use strict";Im();o(nMe,"flatten");Qr=nMe});function iMe(t){return AT(CT(t,void 0,Qr),t+"")}var Nre,Mre=M(()=>{"use strict";Rw();RL();ML();o(iMe,"flatRest");Nre=iMe});function aMe(t,e,r){var n=-1,i=t.length;e<0&&(e=-e>i?0:i+e),r=r>i?i:r,r<0&&(r+=i),i=e>r?0:r-e>>>0,e>>>=0;for(var a=Array(i);++n{"use strict";o(aMe,"baseSlice");Nw=aMe});function pMe(t){return dMe.test(t)}var sMe,oMe,lMe,cMe,uMe,hMe,fMe,dMe,Ire,Ore=M(()=>{"use strict";sMe="\\ud800-\\udfff",oMe="\\u0300-\\u036f",lMe="\\ufe20-\\ufe2f",cMe="\\u20d0-\\u20ff",uMe=oMe+lMe+cMe,hMe="\\ufe0e\\ufe0f",fMe="\\u200d",dMe=RegExp("["+fMe+sMe+uMe+hMe+"]");o(pMe,"hasUnicode");Ire=pMe});function mMe(t,e,r,n){var i=-1,a=t==null?0:t.length;for(n&&a&&(r=t[++i]);++i{"use strict";o(mMe,"arrayReduce");Pre=mMe});function gMe(t,e){return t&&$o(e,qr(e),t)}var Fre,$re=M(()=>{"use strict";Hd();Sc();o(gMe,"baseAssign");Fre=gMe});function yMe(t,e){return t&&$o(e,Rs(e),t)}var zre,Gre=M(()=>{"use strict";Hd();qh();o(yMe,"baseAssignIn");zre=yMe});function vMe(t,e){for(var r=-1,n=t==null?0:t.length,i=0,a=[];++r{"use strict";o(vMe,"arrayFilter");Om=vMe});function xMe(){return[]}var Iw,iR=M(()=>{"use strict";o(xMe,"stubArray");Iw=xMe});var bMe,TMe,Vre,wMe,Pm,Ow=M(()=>{"use strict";Mw();iR();bMe=Object.prototype,TMe=bMe.propertyIsEnumerable,Vre=Object.getOwnPropertySymbols,wMe=Vre?function(t){return t==null?[]:(t=Object(t),Om(Vre(t),function(e){return TMe.call(t,e)}))}:Iw,Pm=wMe});function kMe(t,e){return $o(t,Pm(t),e)}var Ure,Hre=M(()=>{"use strict";Hd();Ow();o(kMe,"copySymbols");Ure=kMe});var EMe,SMe,Pw,aR=M(()=>{"use strict";Lw();TT();Ow();iR();EMe=Object.getOwnPropertySymbols,SMe=EMe?function(t){for(var e=[];t;)Mm(e,Pm(t)),t=fm(t);return e}:Iw,Pw=SMe});function CMe(t,e){return $o(t,Pw(t),e)}var qre,Wre=M(()=>{"use strict";Hd();aR();o(CMe,"copySymbolsIn");qre=CMe});function AMe(t,e,r){var n=e(t);return Bt(t)?n:Mm(n,r(t))}var Bw,sR=M(()=>{"use strict";Lw();Yn();o(AMe,"baseGetAllKeys");Bw=AMe});function _Me(t){return Bw(t,qr,Pm)}var z2,oR=M(()=>{"use strict";sR();Ow();Sc();o(_Me,"getAllKeys");z2=_Me});function DMe(t){return Bw(t,Rs,Pw)}var Fw,lR=M(()=>{"use strict";sR();aR();qh();o(DMe,"getAllKeysIn");Fw=DMe});var LMe,$w,Yre=M(()=>{"use strict";Fh();Mo();LMe=Ls(hi,"DataView"),$w=LMe});var RMe,zw,Xre=M(()=>{"use strict";Fh();Mo();RMe=Ls(hi,"Promise"),zw=RMe});var NMe,af,cR=M(()=>{"use strict";Fh();Mo();NMe=Ls(hi,"Set"),af=NMe});var jre,MMe,Kre,Qre,Zre,Jre,IMe,OMe,PMe,BMe,FMe,np,ho,ip=M(()=>{"use strict";Yre();dT();Xre();cR();pre();_u();mL();jre="[object Map]",MMe="[object Object]",Kre="[object Promise]",Qre="[object Set]",Zre="[object WeakMap]",Jre="[object DataView]",IMe=Du($w),OMe=Du(Gh),PMe=Du(zw),BMe=Du(af),FMe=Du(ww),np=fa;($w&&np(new $w(new ArrayBuffer(1)))!=Jre||Gh&&np(new Gh)!=jre||zw&&np(zw.resolve())!=Kre||af&&np(new af)!=Qre||ww&&np(new ww)!=Zre)&&(np=o(function(t){var e=fa(t),r=e==MMe?t.constructor:void 0,n=r?Du(r):"";if(n)switch(n){case IMe:return Jre;case OMe:return jre;case PMe:return Kre;case BMe:return Qre;case FMe:return Zre}return e},"getTag"));ho=np});function GMe(t){var e=t.length,r=new t.constructor(e);return e&&typeof t[0]=="string"&&zMe.call(t,"index")&&(r.index=t.index,r.input=t.input),r}var $Me,zMe,ene,tne=M(()=>{"use strict";$Me=Object.prototype,zMe=$Me.hasOwnProperty;o(GMe,"initCloneArray");ene=GMe});function VMe(t,e){var r=e?hm(t.buffer):t.buffer;return new t.constructor(r,t.byteOffset,t.byteLength)}var rne,nne=M(()=>{"use strict";yT();o(VMe,"cloneDataView");rne=VMe});function HMe(t){var e=new t.constructor(t.source,UMe.exec(t));return e.lastIndex=t.lastIndex,e}var UMe,ine,ane=M(()=>{"use strict";UMe=/\w*$/;o(HMe,"cloneRegExp");ine=HMe});function qMe(t){return one?Object(one.call(t)):{}}var sne,one,lne,cne=M(()=>{"use strict";$d();sne=Ki?Ki.prototype:void 0,one=sne?sne.valueOf:void 0;o(qMe,"cloneSymbol");lne=qMe});function hIe(t,e,r){var n=t.constructor;switch(e){case eIe:return hm(t);case WMe:case YMe:return new n(+t);case tIe:return rne(t,r);case rIe:case nIe:case iIe:case aIe:case sIe:case oIe:case lIe:case cIe:case uIe:return vT(t,r);case XMe:return new n;case jMe:case ZMe:return new n(t);case KMe:return ine(t);case QMe:return new n;case JMe:return lne(t)}}var WMe,YMe,XMe,jMe,KMe,QMe,ZMe,JMe,eIe,tIe,rIe,nIe,iIe,aIe,sIe,oIe,lIe,cIe,uIe,une,hne=M(()=>{"use strict";yT();nne();ane();cne();kL();WMe="[object Boolean]",YMe="[object Date]",XMe="[object Map]",jMe="[object Number]",KMe="[object RegExp]",QMe="[object Set]",ZMe="[object String]",JMe="[object Symbol]",eIe="[object ArrayBuffer]",tIe="[object DataView]",rIe="[object Float32Array]",nIe="[object Float64Array]",iIe="[object Int8Array]",aIe="[object Int16Array]",sIe="[object Int32Array]",oIe="[object Uint8Array]",lIe="[object Uint8ClampedArray]",cIe="[object Uint16Array]",uIe="[object Uint32Array]";o(hIe,"initCloneByTag");une=hIe});function dIe(t){return ai(t)&&ho(t)==fIe}var fIe,fne,dne=M(()=>{"use strict";ip();Oo();fIe="[object Map]";o(dIe,"baseIsMap");fne=dIe});var pne,pIe,mne,gne=M(()=>{"use strict";dne();Ud();d2();pne=Fo&&Fo.isMap,pIe=pne?Bo(pne):fne,mne=pIe});function gIe(t){return ai(t)&&ho(t)==mIe}var mIe,yne,vne=M(()=>{"use strict";ip();Oo();mIe="[object Set]";o(gIe,"baseIsSet");yne=gIe});var xne,yIe,bne,Tne=M(()=>{"use strict";vne();Ud();d2();xne=Fo&&Fo.isSet,yIe=xne?Bo(xne):yne,bne=yIe});function Gw(t,e,r,n,i,a){var s,l=e&vIe,u=e&xIe,h=e&bIe;if(r&&(s=i?r(t,n,i,a):r(t)),s!==void 0)return s;if(!Sn(t))return t;var f=Bt(t);if(f){if(s=ene(t),!l)return xT(t,s)}else{var d=ho(t),p=d==kne||d==SIe;if(Dl(t))return gT(t,l);if(d==Ene||d==wne||p&&!i){if(s=u||p?{}:wT(t),!l)return u?qre(t,zre(s,t)):Ure(t,Fre(s,t))}else{if(!Mn[d])return i?t:{};s=une(t,d,l)}}a||(a=new dc);var m=a.get(t);if(m)return m;a.set(t,s),bne(t)?t.forEach(function(v){s.add(Gw(v,e,r,v,t,a))}):mne(t)&&t.forEach(function(v,x){s.set(x,Gw(v,e,r,x,t,a))});var g=h?u?Fw:z2:u?Rs:qr,y=f?void 0:g(t);return kw(y||t,function(v,x){y&&(x=v,v=t[x]),gc(s,x,Gw(v,e,r,x,t,a))}),s}var vIe,xIe,bIe,wne,TIe,wIe,kIe,EIe,kne,SIe,CIe,AIe,Ene,_Ie,DIe,LIe,RIe,NIe,MIe,IIe,OIe,PIe,BIe,FIe,$Ie,zIe,GIe,VIe,UIe,Mn,Vw,uR=M(()=>{"use strict";u2();J9();ym();$re();Gre();TL();EL();Hre();Wre();oR();lR();ip();tne();hne();CL();Yn();gm();gne();oo();Tne();Sc();qh();vIe=1,xIe=2,bIe=4,wne="[object Arguments]",TIe="[object Array]",wIe="[object Boolean]",kIe="[object Date]",EIe="[object Error]",kne="[object Function]",SIe="[object GeneratorFunction]",CIe="[object Map]",AIe="[object Number]",Ene="[object Object]",_Ie="[object RegExp]",DIe="[object Set]",LIe="[object String]",RIe="[object Symbol]",NIe="[object WeakMap]",MIe="[object ArrayBuffer]",IIe="[object DataView]",OIe="[object Float32Array]",PIe="[object Float64Array]",BIe="[object Int8Array]",FIe="[object Int16Array]",$Ie="[object Int32Array]",zIe="[object Uint8Array]",GIe="[object Uint8ClampedArray]",VIe="[object Uint16Array]",UIe="[object Uint32Array]",Mn={};Mn[wne]=Mn[TIe]=Mn[MIe]=Mn[IIe]=Mn[wIe]=Mn[kIe]=Mn[OIe]=Mn[PIe]=Mn[BIe]=Mn[FIe]=Mn[$Ie]=Mn[CIe]=Mn[AIe]=Mn[Ene]=Mn[_Ie]=Mn[DIe]=Mn[LIe]=Mn[RIe]=Mn[zIe]=Mn[GIe]=Mn[VIe]=Mn[UIe]=!0;Mn[EIe]=Mn[kne]=Mn[NIe]=!1;o(Gw,"baseClone");Vw=Gw});function qIe(t){return Vw(t,HIe)}var HIe,ln,hR=M(()=>{"use strict";uR();HIe=4;o(qIe,"clone");ln=qIe});function XIe(t){return Vw(t,WIe|YIe)}var WIe,YIe,fR,Sne=M(()=>{"use strict";uR();WIe=1,YIe=4;o(XIe,"cloneDeep");fR=XIe});function jIe(t){for(var e=-1,r=t==null?0:t.length,n=0,i=[];++e{"use strict";o(jIe,"compact");_c=jIe});function QIe(t){return this.__data__.set(t,KIe),this}var KIe,Ane,_ne=M(()=>{"use strict";KIe="__lodash_hash_undefined__";o(QIe,"setCacheAdd");Ane=QIe});function ZIe(t){return this.__data__.has(t)}var Dne,Lne=M(()=>{"use strict";o(ZIe,"setCacheHas");Dne=ZIe});function Uw(t){var e=-1,r=t==null?0:t.length;for(this.__data__=new Gd;++e{"use strict";pT();_ne();Lne();o(Uw,"SetCache");Uw.prototype.add=Uw.prototype.push=Ane;Uw.prototype.has=Dne;Bm=Uw});function JIe(t,e){for(var r=-1,n=t==null?0:t.length;++r{"use strict";o(JIe,"arraySome");qw=JIe});function eOe(t,e){return t.has(e)}var Fm,Ww=M(()=>{"use strict";o(eOe,"cacheHas");Fm=eOe});function nOe(t,e,r,n,i,a){var s=r&tOe,l=t.length,u=e.length;if(l!=u&&!(s&&u>l))return!1;var h=a.get(t),f=a.get(e);if(h&&f)return h==e&&f==t;var d=-1,p=!0,m=r&rOe?new Bm:void 0;for(a.set(t,e),a.set(e,t);++d{"use strict";Hw();dR();Ww();tOe=1,rOe=2;o(nOe,"equalArrays");Yw=nOe});function iOe(t){var e=-1,r=Array(t.size);return t.forEach(function(n,i){r[++e]=[i,n]}),r}var Rne,Nne=M(()=>{"use strict";o(iOe,"mapToArray");Rne=iOe});function aOe(t){var e=-1,r=Array(t.size);return t.forEach(function(n){r[++e]=n}),r}var $m,Xw=M(()=>{"use strict";o(aOe,"setToArray");$m=aOe});function xOe(t,e,r,n,i,a,s){switch(r){case vOe:if(t.byteLength!=e.byteLength||t.byteOffset!=e.byteOffset)return!1;t=t.buffer,e=e.buffer;case yOe:return!(t.byteLength!=e.byteLength||!a(new um(t),new um(e)));case lOe:case cOe:case fOe:return Io(+t,+e);case uOe:return t.name==e.name&&t.message==e.message;case dOe:case mOe:return t==e+"";case hOe:var l=Rne;case pOe:var u=n&sOe;if(l||(l=$m),t.size!=e.size&&!u)return!1;var h=s.get(t);if(h)return h==e;n|=oOe,s.set(t,e);var f=Yw(l(t),l(e),n,i,a,s);return s.delete(t),f;case gOe:if(mR)return mR.call(t)==mR.call(e)}return!1}var sOe,oOe,lOe,cOe,uOe,hOe,fOe,dOe,pOe,mOe,gOe,yOe,vOe,Mne,mR,Ine,One=M(()=>{"use strict";$d();wL();zd();pR();Nne();Xw();sOe=1,oOe=2,lOe="[object Boolean]",cOe="[object Date]",uOe="[object Error]",hOe="[object Map]",fOe="[object Number]",dOe="[object RegExp]",pOe="[object Set]",mOe="[object String]",gOe="[object Symbol]",yOe="[object ArrayBuffer]",vOe="[object DataView]",Mne=Ki?Ki.prototype:void 0,mR=Mne?Mne.valueOf:void 0;o(xOe,"equalByTag");Ine=xOe});function kOe(t,e,r,n,i,a){var s=r&bOe,l=z2(t),u=l.length,h=z2(e),f=h.length;if(u!=f&&!s)return!1;for(var d=u;d--;){var p=l[d];if(!(s?p in e:wOe.call(e,p)))return!1}var m=a.get(t),g=a.get(e);if(m&&g)return m==e&&g==t;var y=!0;a.set(t,e),a.set(e,t);for(var v=s;++d{"use strict";oR();bOe=1,TOe=Object.prototype,wOe=TOe.hasOwnProperty;o(kOe,"equalObjects");Pne=kOe});function COe(t,e,r,n,i,a){var s=Bt(t),l=Bt(e),u=s?$ne:ho(t),h=l?$ne:ho(e);u=u==Fne?jw:u,h=h==Fne?jw:h;var f=u==jw,d=h==jw,p=u==h;if(p&&Dl(t)){if(!Dl(e))return!1;s=!0,f=!1}if(p&&!f)return a||(a=new dc),s||Uh(t)?Yw(t,e,r,n,i,a):Ine(t,e,u,r,n,i,a);if(!(r&EOe)){var m=f&&zne.call(t,"__wrapped__"),g=d&&zne.call(e,"__wrapped__");if(m||g){var y=m?t.value():t,v=g?e.value():e;return a||(a=new dc),i(y,v,r,n,a)}}return p?(a||(a=new dc),Pne(t,e,r,n,i,a)):!1}var EOe,Fne,$ne,jw,SOe,zne,Gne,Vne=M(()=>{"use strict";u2();pR();One();Bne();ip();Yn();gm();p2();EOe=1,Fne="[object Arguments]",$ne="[object Array]",jw="[object Object]",SOe=Object.prototype,zne=SOe.hasOwnProperty;o(COe,"baseIsEqualDeep");Gne=COe});function Une(t,e,r,n,i){return t===e?!0:t==null||e==null||!ai(t)&&!ai(e)?t!==t&&e!==e:Gne(t,e,r,n,Une,i)}var Kw,gR=M(()=>{"use strict";Vne();Oo();o(Une,"baseIsEqual");Kw=Une});function DOe(t,e,r,n){var i=r.length,a=i,s=!n;if(t==null)return!a;for(t=Object(t);i--;){var l=r[i];if(s&&l[2]?l[1]!==t[l[0]]:!(l[0]in t))return!1}for(;++i{"use strict";u2();gR();AOe=1,_Oe=2;o(DOe,"baseIsMatch");Hne=DOe});function LOe(t){return t===t&&!Sn(t)}var Qw,yR=M(()=>{"use strict";oo();o(LOe,"isStrictComparable");Qw=LOe});function ROe(t){for(var e=qr(t),r=e.length;r--;){var n=e[r],i=t[n];e[r]=[n,i,Qw(i)]}return e}var Wne,Yne=M(()=>{"use strict";yR();Sc();o(ROe,"getMatchData");Wne=ROe});function NOe(t,e){return function(r){return r==null?!1:r[t]===e&&(e!==void 0||t in Object(r))}}var Zw,vR=M(()=>{"use strict";o(NOe,"matchesStrictComparable");Zw=NOe});function MOe(t){var e=Wne(t);return e.length==1&&e[0][2]?Zw(e[0][0],e[0][1]):function(r){return r===t||Hne(r,t,e)}}var Xne,jne=M(()=>{"use strict";qne();Yne();vR();o(MOe,"baseMatches");Xne=MOe});function IOe(t,e){return t!=null&&e in Object(t)}var Kne,Qne=M(()=>{"use strict";o(IOe,"baseHasIn");Kne=IOe});function OOe(t,e,r){e=rf(e,t);for(var n=-1,i=e.length,a=!1;++n{"use strict";F2();pm();Yn();g2();kT();Nm();o(OOe,"hasPath");Jw=OOe});function POe(t,e){return t!=null&&Jw(t,e,Kne)}var ek,bR=M(()=>{"use strict";Qne();xR();o(POe,"hasIn");ek=POe});function $Oe(t,e){return Rm(t)&&Qw(e)?Zw(Cc(t),e):function(r){var n=Cre(r,t);return n===void 0&&n===e?ek(r,t):Kw(e,n,BOe|FOe)}}var BOe,FOe,Zne,Jne=M(()=>{"use strict";gR();Are();bR();_w();yR();vR();Nm();BOe=1,FOe=2;o($Oe,"baseMatchesProperty");Zne=$Oe});function zOe(t){return function(e){return e?.[t]}}var tk,TR=M(()=>{"use strict";o(zOe,"baseProperty");tk=zOe});function GOe(t){return function(e){return nf(e,t)}}var eie,tie=M(()=>{"use strict";$2();o(GOe,"basePropertyDeep");eie=GOe});function VOe(t){return Rm(t)?tk(Cc(t)):eie(t)}var rie,nie=M(()=>{"use strict";TR();tie();_w();Nm();o(VOe,"property");rie=VOe});function UOe(t){return typeof t=="function"?t:t==null?Qi:typeof t=="object"?Bt(t)?Zne(t[0],t[1]):Xne(t):rie(t)}var vn,ss=M(()=>{"use strict";jne();Jne();Ru();Yn();nie();o(UOe,"baseIteratee");vn=UOe});function HOe(t,e,r,n){for(var i=-1,a=t==null?0:t.length;++i{"use strict";o(HOe,"arrayAggregator");iie=HOe});function qOe(t,e){return t&&cm(t,e,qr)}var zm,rk=M(()=>{"use strict";mT();Sc();o(qOe,"baseForOwn");zm=qOe});function WOe(t,e){return function(r,n){if(r==null)return r;if(!fi(r))return t(r,n);for(var i=r.length,a=e?i:-1,s=Object(r);(e?a--:++a{"use strict";Po();o(WOe,"createBaseEach");sie=WOe});var YOe,zs,sf=M(()=>{"use strict";rk();oie();YOe=sie(zm),zs=YOe});function XOe(t,e,r,n){return zs(t,function(i,a,s){e(n,i,r(i),s)}),n}var lie,cie=M(()=>{"use strict";sf();o(XOe,"baseAggregator");lie=XOe});function jOe(t,e){return function(r,n){var i=Bt(r)?iie:lie,a=e?e():{};return i(r,t,vn(n,2),a)}}var uie,hie=M(()=>{"use strict";aie();cie();ss();Yn();o(jOe,"createAggregator");uie=jOe});var KOe,nk,fie=M(()=>{"use strict";Mo();KOe=o(function(){return hi.Date.now()},"now"),nk=KOe});var die,QOe,ZOe,of,pie=M(()=>{"use strict";vm();zd();qd();qh();die=Object.prototype,QOe=die.hasOwnProperty,ZOe=yc(function(t,e){t=Object(t);var r=-1,n=e.length,i=n>2?e[2]:void 0;for(i&&lo(e[0],e[1],i)&&(n=1);++r{"use strict";o(JOe,"arrayIncludesWith");ik=JOe});function tPe(t,e,r,n){var i=-1,a=Cw,s=!0,l=t.length,u=[],h=e.length;if(!l)return u;r&&(e=$s(e,Bo(r))),n?(a=ik,s=!1):e.length>=ePe&&(a=Fm,s=!1,e=new Bm(e));e:for(;++i{"use strict";Hw();tR();wR();rp();Ud();Ww();ePe=200;o(tPe,"baseDifference");mie=tPe});var rPe,lf,yie=M(()=>{"use strict";gie();Im();vm();ET();rPe=yc(function(t,e){return Vd(t)?mie(t,Ac(e,1,Vd,!0)):[]}),lf=rPe});function nPe(t){var e=t==null?0:t.length;return e?t[e-1]:void 0}var ga,vie=M(()=>{"use strict";o(nPe,"last");ga=nPe});function iPe(t,e,r){var n=t==null?0:t.length;return n?(e=r||e===void 0?1:Ec(e),Nw(t,e<0?0:e,n)):[]}var yi,xie=M(()=>{"use strict";nR();_m();o(iPe,"drop");yi=iPe});function aPe(t,e,r){var n=t==null?0:t.length;return n?(e=r||e===void 0?1:Ec(e),e=n-e,Nw(t,0,e<0?0:e)):[]}var Bu,bie=M(()=>{"use strict";nR();_m();o(aPe,"dropRight");Bu=aPe});function sPe(t){return typeof t=="function"?t:Qi}var Gm,ak=M(()=>{"use strict";Ru();o(sPe,"castFunction");Gm=sPe});function oPe(t,e){var r=Bt(t)?kw:zs;return r(t,Gm(e))}var Ae,sk=M(()=>{"use strict";J9();sf();ak();Yn();o(oPe,"forEach");Ae=oPe});var Tie=M(()=>{"use strict";sk()});function lPe(t,e){for(var r=-1,n=t==null?0:t.length;++r{"use strict";o(lPe,"arrayEvery");wie=lPe});function cPe(t,e){var r=!0;return zs(t,function(n,i,a){return r=!!e(n,i,a),r}),r}var Eie,Sie=M(()=>{"use strict";sf();o(cPe,"baseEvery");Eie=cPe});function uPe(t,e,r){var n=Bt(t)?wie:Eie;return r&&lo(t,e,r)&&(e=void 0),n(t,vn(e,3))}var Ba,Cie=M(()=>{"use strict";kie();Sie();ss();Yn();qd();o(uPe,"every");Ba=uPe});function hPe(t,e){var r=[];return zs(t,function(n,i,a){e(n,i,a)&&r.push(n)}),r}var ok,kR=M(()=>{"use strict";sf();o(hPe,"baseFilter");ok=hPe});function fPe(t,e){var r=Bt(t)?Om:ok;return r(t,vn(e,3))}var Zr,ER=M(()=>{"use strict";Mw();kR();ss();Yn();o(fPe,"filter");Zr=fPe});function dPe(t){return function(e,r,n){var i=Object(e);if(!fi(e)){var a=vn(r,3);e=qr(e),r=o(function(l){return a(i[l],l,i)},"predicate")}var s=t(e,r,n);return s>-1?i[a?e[s]:s]:void 0}}var Aie,_ie=M(()=>{"use strict";ss();Po();Sc();o(dPe,"createFind");Aie=dPe});function mPe(t,e,r){var n=t==null?0:t.length;if(!n)return-1;var i=r==null?0:Ec(r);return i<0&&(i=pPe(n+i,0)),Ew(t,vn(e,3),i)}var pPe,Die,Lie=M(()=>{"use strict";eR();ss();_m();pPe=Math.max;o(mPe,"findIndex");Die=mPe});var gPe,os,Rie=M(()=>{"use strict";_ie();Lie();gPe=Aie(Die),os=gPe});function yPe(t){return t&&t.length?t[0]:void 0}var ea,Nie=M(()=>{"use strict";o(yPe,"head");ea=yPe});var Mie=M(()=>{"use strict";Nie()});function vPe(t,e){var r=-1,n=fi(t)?Array(t.length):[];return zs(t,function(i,a,s){n[++r]=e(i,a,s)}),n}var lk,SR=M(()=>{"use strict";sf();Po();o(vPe,"baseMap");lk=vPe});function xPe(t,e){var r=Bt(t)?$s:lk;return r(t,vn(e,3))}var rt,Vm=M(()=>{"use strict";rp();ss();SR();Yn();o(xPe,"map");rt=xPe});function bPe(t,e){return Ac(rt(t,e),1)}var ya,CR=M(()=>{"use strict";Im();Vm();o(bPe,"flatMap");ya=bPe});function TPe(t,e){return t==null?t:cm(t,Gm(e),Rs)}var AR,Iie=M(()=>{"use strict";mT();ak();qh();o(TPe,"forIn");AR=TPe});function wPe(t,e){return t&&zm(t,Gm(e))}var _R,Oie=M(()=>{"use strict";rk();ak();o(wPe,"forOwn");_R=wPe});var kPe,EPe,SPe,DR,Pie=M(()=>{"use strict";lm();hie();kPe=Object.prototype,EPe=kPe.hasOwnProperty,SPe=uie(function(t,e,r){EPe.call(t,r)?t[r].push(e):pc(t,r,[e])}),DR=SPe});function CPe(t,e){return t>e}var Bie,Fie=M(()=>{"use strict";o(CPe,"baseGt");Bie=CPe});function DPe(t,e){return t!=null&&_Pe.call(t,e)}var APe,_Pe,$ie,zie=M(()=>{"use strict";APe=Object.prototype,_Pe=APe.hasOwnProperty;o(DPe,"baseHas");$ie=DPe});function LPe(t,e){return t!=null&&Jw(t,e,$ie)}var Ft,Gie=M(()=>{"use strict";zie();xR();o(LPe,"has");Ft=LPe});function NPe(t){return typeof t=="string"||!Bt(t)&&ai(t)&&fa(t)==RPe}var RPe,xi,ck=M(()=>{"use strict";_u();Yn();Oo();RPe="[object String]";o(NPe,"isString");xi=NPe});function MPe(t,e){return $s(e,function(r){return t[r]})}var Vie,Uie=M(()=>{"use strict";rp();o(MPe,"baseValues");Vie=MPe});function IPe(t){return t==null?[]:Vie(t,qr(t))}var kr,LR=M(()=>{"use strict";Uie();Sc();o(IPe,"values");kr=IPe});function PPe(t,e,r,n){t=fi(t)?t:kr(t),r=r&&!n?Ec(r):0;var i=t.length;return r<0&&(r=OPe(i+r,0)),xi(t)?r<=i&&t.indexOf(e,r)>-1:!!i&&Dm(t,e,r)>-1}var OPe,jn,Hie=M(()=>{"use strict";Sw();Po();ck();_m();LR();OPe=Math.max;o(PPe,"includes");jn=PPe});function FPe(t,e,r){var n=t==null?0:t.length;if(!n)return-1;var i=r==null?0:Ec(r);return i<0&&(i=BPe(n+i,0)),Dm(t,e,i)}var BPe,uk,qie=M(()=>{"use strict";Sw();_m();BPe=Math.max;o(FPe,"indexOf");uk=FPe});function UPe(t){if(t==null)return!0;if(fi(t)&&(Bt(t)||typeof t=="string"||typeof t.splice=="function"||Dl(t)||Uh(t)||_l(t)))return!t.length;var e=ho(t);if(e==$Pe||e==zPe)return!t.size;if(mc(t))return!Lm(t).length;for(var r in t)if(VPe.call(t,r))return!1;return!0}var $Pe,zPe,GPe,VPe,mr,hk=M(()=>{"use strict";Aw();ip();pm();Yn();Po();gm();dm();p2();$Pe="[object Map]",zPe="[object Set]",GPe=Object.prototype,VPe=GPe.hasOwnProperty;o(UPe,"isEmpty");mr=UPe});function qPe(t){return ai(t)&&fa(t)==HPe}var HPe,Wie,Yie=M(()=>{"use strict";_u();Oo();HPe="[object RegExp]";o(qPe,"baseIsRegExp");Wie=qPe});var Xie,WPe,Uo,jie=M(()=>{"use strict";Yie();Ud();d2();Xie=Fo&&Fo.isRegExp,WPe=Xie?Bo(Xie):Wie,Uo=WPe});function YPe(t){return t===void 0}var xr,Kie=M(()=>{"use strict";o(YPe,"isUndefined");xr=YPe});function XPe(t,e){return t{"use strict";o(XPe,"baseLt");fk=XPe});function jPe(t,e){var r={};return e=vn(e,3),zm(t,function(n,i,a){pc(r,i,e(n,i,a))}),r}var ap,Qie=M(()=>{"use strict";lm();rk();ss();o(jPe,"mapValues");ap=jPe});function KPe(t,e,r){for(var n=-1,i=t.length;++n{"use strict";tp();o(KPe,"baseExtremum");Um=KPe});function QPe(t){return t&&t.length?Um(t,Qi,Bie):void 0}var Gs,Zie=M(()=>{"use strict";dk();Fie();Ru();o(QPe,"max");Gs=QPe});function ZPe(t){return t&&t.length?Um(t,Qi,fk):void 0}var Rl,NR=M(()=>{"use strict";dk();RR();Ru();o(ZPe,"min");Rl=ZPe});function JPe(t,e){return t&&t.length?Um(t,vn(e,2),fk):void 0}var sp,Jie=M(()=>{"use strict";dk();ss();RR();o(JPe,"minBy");sp=JPe});function tBe(t){if(typeof t!="function")throw new TypeError(eBe);return function(){var e=arguments;switch(e.length){case 0:return!t.call(this);case 1:return!t.call(this,e[0]);case 2:return!t.call(this,e[0],e[1]);case 3:return!t.call(this,e[0],e[1],e[2])}return!t.apply(this,e)}}var eBe,eae,tae=M(()=>{"use strict";eBe="Expected a function";o(tBe,"negate");eae=tBe});function rBe(t,e,r,n){if(!Sn(t))return t;e=rf(e,t);for(var i=-1,a=e.length,s=a-1,l=t;l!=null&&++i{"use strict";ym();F2();g2();oo();Nm();o(rBe,"baseSet");rae=rBe});function nBe(t,e,r){for(var n=-1,i=e.length,a={};++n{"use strict";$2();nae();F2();o(nBe,"basePickBy");pk=nBe});function iBe(t,e){if(t==null)return{};var r=$s(Fw(t),function(n){return[n]});return e=vn(e),pk(t,r,function(n,i){return e(n,i[0])})}var Vs,iae=M(()=>{"use strict";rp();ss();MR();lR();o(iBe,"pickBy");Vs=iBe});function aBe(t,e){var r=t.length;for(t.sort(e);r--;)t[r]=t[r].value;return t}var aae,sae=M(()=>{"use strict";o(aBe,"baseSortBy");aae=aBe});function sBe(t,e){if(t!==e){var r=t!==void 0,n=t===null,i=t===t,a=uo(t),s=e!==void 0,l=e===null,u=e===e,h=uo(e);if(!l&&!h&&!a&&t>e||a&&s&&u&&!l&&!h||n&&s&&u||!r&&u||!i)return 1;if(!n&&!a&&!h&&t{"use strict";tp();o(sBe,"compareAscending");oae=sBe});function oBe(t,e,r){for(var n=-1,i=t.criteria,a=e.criteria,s=i.length,l=r.length;++n=l)return u;var h=r[n];return u*(h=="desc"?-1:1)}}return t.index-e.index}var cae,uae=M(()=>{"use strict";lae();o(oBe,"compareMultiple");cae=oBe});function lBe(t,e,r){e.length?e=$s(e,function(a){return Bt(a)?function(s){return nf(s,a.length===1?a[0]:a)}:a}):e=[Qi];var n=-1;e=$s(e,Bo(vn));var i=lk(t,function(a,s,l){var u=$s(e,function(h){return h(a)});return{criteria:u,index:++n,value:a}});return aae(i,function(a,s){return cae(a,s,r)})}var hae,fae=M(()=>{"use strict";rp();$2();ss();SR();sae();Ud();uae();Ru();Yn();o(lBe,"baseOrderBy");hae=lBe});var cBe,dae,pae=M(()=>{"use strict";TR();cBe=tk("length"),dae=cBe});function TBe(t){for(var e=mae.lastIndex=0;mae.test(t);)++e;return e}var gae,uBe,hBe,fBe,dBe,pBe,mBe,IR,OR,gBe,yae,vae,xae,yBe,bae,Tae,vBe,xBe,bBe,mae,wae,kae=M(()=>{"use strict";gae="\\ud800-\\udfff",uBe="\\u0300-\\u036f",hBe="\\ufe20-\\ufe2f",fBe="\\u20d0-\\u20ff",dBe=uBe+hBe+fBe,pBe="\\ufe0e\\ufe0f",mBe="["+gae+"]",IR="["+dBe+"]",OR="\\ud83c[\\udffb-\\udfff]",gBe="(?:"+IR+"|"+OR+")",yae="[^"+gae+"]",vae="(?:\\ud83c[\\udde6-\\uddff]){2}",xae="[\\ud800-\\udbff][\\udc00-\\udfff]",yBe="\\u200d",bae=gBe+"?",Tae="["+pBe+"]?",vBe="(?:"+yBe+"(?:"+[yae,vae,xae].join("|")+")"+Tae+bae+")*",xBe=Tae+bae+vBe,bBe="(?:"+[yae+IR+"?",IR,vae,xae,mBe].join("|")+")",mae=RegExp(OR+"(?="+OR+")|"+bBe+xBe,"g");o(TBe,"unicodeSize");wae=TBe});function wBe(t){return Ire(t)?wae(t):dae(t)}var Eae,Sae=M(()=>{"use strict";pae();Ore();kae();o(wBe,"stringSize");Eae=wBe});function kBe(t,e){return pk(t,e,function(r,n){return ek(t,n)})}var Cae,Aae=M(()=>{"use strict";MR();bR();o(kBe,"basePick");Cae=kBe});var EBe,op,_ae=M(()=>{"use strict";Aae();Mre();EBe=Nre(function(t,e){return t==null?{}:Cae(t,e)}),op=EBe});function ABe(t,e,r,n){for(var i=-1,a=CBe(SBe((e-t)/(r||1)),0),s=Array(a);a--;)s[n?a:++i]=t,t+=r;return s}var SBe,CBe,Dae,Lae=M(()=>{"use strict";SBe=Math.ceil,CBe=Math.max;o(ABe,"baseRange");Dae=ABe});function _Be(t){return function(e,r,n){return n&&typeof n!="number"&&lo(e,r,n)&&(r=n=void 0),e=Am(e),r===void 0?(r=e,e=0):r=Am(r),n=n===void 0?e{"use strict";Lae();qd();Q9();o(_Be,"createRange");Rae=_Be});var DBe,Ho,Mae=M(()=>{"use strict";Nae();DBe=Rae(),Ho=DBe});function LBe(t,e,r,n,i){return i(t,function(a,s,l){r=n?(n=!1,a):e(r,a,s,l)}),r}var Iae,Oae=M(()=>{"use strict";o(LBe,"baseReduce");Iae=LBe});function RBe(t,e,r){var n=Bt(t)?Pre:Iae,i=arguments.length<3;return n(t,vn(e,4),r,i,zs)}var Jr,PR=M(()=>{"use strict";Bre();sf();ss();Oae();Yn();o(RBe,"reduce");Jr=RBe});function NBe(t,e){var r=Bt(t)?Om:ok;return r(t,eae(vn(e,3)))}var cf,Pae=M(()=>{"use strict";Mw();kR();ss();Yn();tae();o(NBe,"reject");cf=NBe});function OBe(t){if(t==null)return 0;if(fi(t))return xi(t)?Eae(t):t.length;var e=ho(t);return e==MBe||e==IBe?t.size:Lm(t).length}var MBe,IBe,BR,Bae=M(()=>{"use strict";Aw();ip();Po();ck();Sae();MBe="[object Map]",IBe="[object Set]";o(OBe,"size");BR=OBe});function PBe(t,e){var r;return zs(t,function(n,i,a){return r=e(n,i,a),!r}),!!r}var Fae,$ae=M(()=>{"use strict";sf();o(PBe,"baseSome");Fae=PBe});function BBe(t,e,r){var n=Bt(t)?qw:Fae;return r&&lo(t,e,r)&&(e=void 0),n(t,vn(e,3))}var G2,zae=M(()=>{"use strict";dR();ss();$ae();Yn();qd();o(BBe,"some");G2=BBe});var FBe,Dc,Gae=M(()=>{"use strict";Im();fae();vm();qd();FBe=yc(function(t,e){if(t==null)return[];var r=e.length;return r>1&&lo(t,e[0],e[1])?e=[]:r>2&&lo(e[0],e[1],e[2])&&(e=[e[0]]),hae(t,Ac(e,1),[])}),Dc=FBe});var $Be,zBe,Vae,Uae=M(()=>{"use strict";cR();Z9();Xw();$Be=1/0,zBe=af&&1/$m(new af([,-0]))[1]==$Be?function(t){return new af(t)}:si,Vae=zBe});function VBe(t,e,r){var n=-1,i=Cw,a=t.length,s=!0,l=[],u=l;if(r)s=!1,i=ik;else if(a>=GBe){var h=e?null:Vae(t);if(h)return $m(h);s=!1,i=Fm,u=new Bm}else u=e?[]:l;e:for(;++n{"use strict";Hw();tR();wR();Ww();Uae();Xw();GBe=200;o(VBe,"baseUniq");Hm=VBe});var UBe,FR,Hae=M(()=>{"use strict";Im();vm();mk();ET();UBe=yc(function(t){return Hm(Ac(t,1,Vd,!0))}),FR=UBe});function HBe(t){return t&&t.length?Hm(t):[]}var qm,qae=M(()=>{"use strict";mk();o(HBe,"uniq");qm=HBe});function qBe(t,e){return t&&t.length?Hm(t,vn(e,2)):[]}var Wae,Yae=M(()=>{"use strict";ss();mk();o(qBe,"uniqBy");Wae=qBe});function YBe(t){var e=++WBe;return Dw(t)+e}var WBe,lp,Xae=M(()=>{"use strict";rR();WBe=0;o(YBe,"uniqueId");lp=YBe});function XBe(t,e,r){for(var n=-1,i=t.length,a=e.length,s={};++n{"use strict";o(XBe,"baseZipObject");jae=XBe});function jBe(t,e){return jae(t||[],e||[],gc)}var gk,Qae=M(()=>{"use strict";ym();Kae();o(jBe,"zipObject");gk=jBe});var Yt=M(()=>{"use strict";Tre();hR();Sne();Cne();NL();pie();yie();xie();bie();Tie();Cie();ER();Rie();Mie();CR();Rw();sk();Iie();Oie();Pie();Gie();Ru();Hie();qie();Yn();hk();a2();oo();jie();ck();Kie();Sc();vie();Vm();Qie();Zie();OL();NR();Jie();Z9();fie();_ae();iae();Mae();PR();Pae();Bae();zae();Gae();Hae();qae();Xae();LR();Qae();});function Jae(t,e){t[e]?t[e]++:t[e]=1}function ese(t,e){--t[e]||delete t[e]}function V2(t,e,r,n){var i=""+e,a=""+r;if(!t&&i>a){var s=i;i=a,a=s}return i+Zae+a+Zae+(xr(n)?KBe:n)}function QBe(t,e,r,n){var i=""+e,a=""+r;if(!t&&i>a){var s=i;i=a,a=s}var l={v:i,w:a};return n&&(l.name=n),l}function $R(t,e){return V2(t,e.v,e.w,e.name)}var KBe,cp,Zae,cn,yk=M(()=>{"use strict";Yt();KBe="\0",cp="\0",Zae="",cn=class{static{o(this,"Graph")}constructor(e={}){this._isDirected=Object.prototype.hasOwnProperty.call(e,"directed")?e.directed:!0,this._isMultigraph=Object.prototype.hasOwnProperty.call(e,"multigraph")?e.multigraph:!1,this._isCompound=Object.prototype.hasOwnProperty.call(e,"compound")?e.compound:!1,this._label=void 0,this._defaultNodeLabelFn=Ns(void 0),this._defaultEdgeLabelFn=Ns(void 0),this._nodes={},this._isCompound&&(this._parent={},this._children={},this._children[cp]={}),this._in={},this._preds={},this._out={},this._sucs={},this._edgeObjs={},this._edgeLabels={}}isDirected(){return this._isDirected}isMultigraph(){return this._isMultigraph}isCompound(){return this._isCompound}setGraph(e){return this._label=e,this}graph(){return this._label}setDefaultNodeLabel(e){return Si(e)||(e=Ns(e)),this._defaultNodeLabelFn=e,this}nodeCount(){return this._nodeCount}nodes(){return qr(this._nodes)}sources(){var e=this;return Zr(this.nodes(),function(r){return mr(e._in[r])})}sinks(){var e=this;return Zr(this.nodes(),function(r){return mr(e._out[r])})}setNodes(e,r){var n=arguments,i=this;return Ae(e,function(a){n.length>1?i.setNode(a,r):i.setNode(a)}),this}setNode(e,r){return Object.prototype.hasOwnProperty.call(this._nodes,e)?(arguments.length>1&&(this._nodes[e]=r),this):(this._nodes[e]=arguments.length>1?r:this._defaultNodeLabelFn(e),this._isCompound&&(this._parent[e]=cp,this._children[e]={},this._children[cp][e]=!0),this._in[e]={},this._preds[e]={},this._out[e]={},this._sucs[e]={},++this._nodeCount,this)}node(e){return this._nodes[e]}hasNode(e){return Object.prototype.hasOwnProperty.call(this._nodes,e)}removeNode(e){if(Object.prototype.hasOwnProperty.call(this._nodes,e)){var r=o(n=>this.removeEdge(this._edgeObjs[n]),"removeEdge");delete this._nodes[e],this._isCompound&&(this._removeFromParentsChildList(e),delete this._parent[e],Ae(this.children(e),n=>{this.setParent(n)}),delete this._children[e]),Ae(qr(this._in[e]),r),delete this._in[e],delete this._preds[e],Ae(qr(this._out[e]),r),delete this._out[e],delete this._sucs[e],--this._nodeCount}return this}setParent(e,r){if(!this._isCompound)throw new Error("Cannot set parent in a non-compound graph");if(xr(r))r=cp;else{r+="";for(var n=r;!xr(n);n=this.parent(n))if(n===e)throw new Error("Setting "+r+" as parent of "+e+" would create a cycle");this.setNode(r)}return this.setNode(e),this._removeFromParentsChildList(e),this._parent[e]=r,this._children[r][e]=!0,this}_removeFromParentsChildList(e){delete this._children[this._parent[e]][e]}parent(e){if(this._isCompound){var r=this._parent[e];if(r!==cp)return r}}children(e){if(xr(e)&&(e=cp),this._isCompound){var r=this._children[e];if(r)return qr(r)}else{if(e===cp)return this.nodes();if(this.hasNode(e))return[]}}predecessors(e){var r=this._preds[e];if(r)return qr(r)}successors(e){var r=this._sucs[e];if(r)return qr(r)}neighbors(e){var r=this.predecessors(e);if(r)return FR(r,this.successors(e))}isLeaf(e){var r;return this.isDirected()?r=this.successors(e):r=this.neighbors(e),r.length===0}filterNodes(e){var r=new this.constructor({directed:this._isDirected,multigraph:this._isMultigraph,compound:this._isCompound});r.setGraph(this.graph());var n=this;Ae(this._nodes,function(s,l){e(l)&&r.setNode(l,s)}),Ae(this._edgeObjs,function(s){r.hasNode(s.v)&&r.hasNode(s.w)&&r.setEdge(s,n.edge(s))});var i={};function a(s){var l=n.parent(s);return l===void 0||r.hasNode(l)?(i[s]=l,l):l in i?i[l]:a(l)}return o(a,"findParent"),this._isCompound&&Ae(r.nodes(),function(s){r.setParent(s,a(s))}),r}setDefaultEdgeLabel(e){return Si(e)||(e=Ns(e)),this._defaultEdgeLabelFn=e,this}edgeCount(){return this._edgeCount}edges(){return kr(this._edgeObjs)}setPath(e,r){var n=this,i=arguments;return Jr(e,function(a,s){return i.length>1?n.setEdge(a,s,r):n.setEdge(a,s),s}),this}setEdge(){var e,r,n,i,a=!1,s=arguments[0];typeof s=="object"&&s!==null&&"v"in s?(e=s.v,r=s.w,n=s.name,arguments.length===2&&(i=arguments[1],a=!0)):(e=s,r=arguments[1],n=arguments[3],arguments.length>2&&(i=arguments[2],a=!0)),e=""+e,r=""+r,xr(n)||(n=""+n);var l=V2(this._isDirected,e,r,n);if(Object.prototype.hasOwnProperty.call(this._edgeLabels,l))return a&&(this._edgeLabels[l]=i),this;if(!xr(n)&&!this._isMultigraph)throw new Error("Cannot set a named edge when isMultigraph = false");this.setNode(e),this.setNode(r),this._edgeLabels[l]=a?i:this._defaultEdgeLabelFn(e,r,n);var u=QBe(this._isDirected,e,r,n);return e=u.v,r=u.w,Object.freeze(u),this._edgeObjs[l]=u,Jae(this._preds[r],e),Jae(this._sucs[e],r),this._in[r][l]=u,this._out[e][l]=u,this._edgeCount++,this}edge(e,r,n){var i=arguments.length===1?$R(this._isDirected,arguments[0]):V2(this._isDirected,e,r,n);return this._edgeLabels[i]}hasEdge(e,r,n){var i=arguments.length===1?$R(this._isDirected,arguments[0]):V2(this._isDirected,e,r,n);return Object.prototype.hasOwnProperty.call(this._edgeLabels,i)}removeEdge(e,r,n){var i=arguments.length===1?$R(this._isDirected,arguments[0]):V2(this._isDirected,e,r,n),a=this._edgeObjs[i];return a&&(e=a.v,r=a.w,delete this._edgeLabels[i],delete this._edgeObjs[i],ese(this._preds[r],e),ese(this._sucs[e],r),delete this._in[r][i],delete this._out[e][i],this._edgeCount--),this}inEdges(e,r){var n=this._in[e];if(n){var i=kr(n);return r?Zr(i,function(a){return a.v===r}):i}}outEdges(e,r){var n=this._out[e];if(n){var i=kr(n);return r?Zr(i,function(a){return a.w===r}):i}}nodeEdges(e,r){var n=this.inEdges(e,r);if(n)return n.concat(this.outEdges(e,r))}};cn.prototype._nodeCount=0;cn.prototype._edgeCount=0;o(Jae,"incrementOrInitEntry");o(ese,"decrementOrRemoveEntry");o(V2,"edgeArgsToId");o(QBe,"edgeArgsToObj");o($R,"edgeObjToId")});var qo=M(()=>{"use strict";yk()});function tse(t){t._prev._next=t._next,t._next._prev=t._prev,delete t._next,delete t._prev}function ZBe(t,e){if(t!=="_next"&&t!=="_prev")return e}var xk,rse=M(()=>{"use strict";xk=class{static{o(this,"List")}constructor(){var e={};e._next=e._prev=e,this._sentinel=e}dequeue(){var e=this._sentinel,r=e._prev;if(r!==e)return tse(r),r}enqueue(e){var r=this._sentinel;e._prev&&e._next&&tse(e),e._next=r._next,r._next._prev=e,r._next=e,e._prev=r}toString(){for(var e=[],r=this._sentinel,n=r._prev;n!==r;)e.push(JSON.stringify(n,ZBe)),n=n._prev;return"["+e.join(", ")+"]"}};o(tse,"unlink");o(ZBe,"filterOutLinks")});function nse(t,e){if(t.nodeCount()<=1)return[];var r=tFe(t,e||JBe),n=eFe(r.graph,r.buckets,r.zeroIdx);return Qr(rt(n,function(i){return t.outEdges(i.v,i.w)}))}function eFe(t,e,r){for(var n=[],i=e[e.length-1],a=e[0],s;t.nodeCount();){for(;s=a.dequeue();)zR(t,e,r,s);for(;s=i.dequeue();)zR(t,e,r,s);if(t.nodeCount()){for(var l=e.length-2;l>0;--l)if(s=e[l].dequeue(),s){n=n.concat(zR(t,e,r,s,!0));break}}}return n}function zR(t,e,r,n,i){var a=i?[]:void 0;return Ae(t.inEdges(n.v),function(s){var l=t.edge(s),u=t.node(s.v);i&&a.push({v:s.v,w:s.w}),u.out-=l,GR(e,r,u)}),Ae(t.outEdges(n.v),function(s){var l=t.edge(s),u=s.w,h=t.node(u);h.in-=l,GR(e,r,h)}),t.removeNode(n.v),a}function tFe(t,e){var r=new cn,n=0,i=0;Ae(t.nodes(),function(l){r.setNode(l,{v:l,in:0,out:0})}),Ae(t.edges(),function(l){var u=r.edge(l.v,l.w)||0,h=e(l),f=u+h;r.setEdge(l.v,l.w,f),i=Math.max(i,r.node(l.v).out+=h),n=Math.max(n,r.node(l.w).in+=h)});var a=Ho(i+n+3).map(function(){return new xk}),s=n+1;return Ae(r.nodes(),function(l){GR(a,s,r.node(l))}),{graph:r,buckets:a,zeroIdx:s}}function GR(t,e,r){r.out?r.in?t[r.out-r.in+e].enqueue(r):t[t.length-1].enqueue(r):t[0].enqueue(r)}var JBe,ise=M(()=>{"use strict";Yt();qo();rse();JBe=Ns(1);o(nse,"greedyFAS");o(eFe,"doGreedyFAS");o(zR,"removeNode");o(tFe,"buildState");o(GR,"assignBucket")});function ase(t){var e=t.graph().acyclicer==="greedy"?nse(t,r(t)):rFe(t);Ae(e,function(n){var i=t.edge(n);t.removeEdge(n),i.forwardName=n.name,i.reversed=!0,t.setEdge(n.w,n.v,i,lp("rev"))});function r(n){return function(i){return n.edge(i).weight}}o(r,"weightFn")}function rFe(t){var e=[],r={},n={};function i(a){Object.prototype.hasOwnProperty.call(n,a)||(n[a]=!0,r[a]=!0,Ae(t.outEdges(a),function(s){Object.prototype.hasOwnProperty.call(r,s.w)?e.push(s):i(s.w)}),delete r[a])}return o(i,"dfs"),Ae(t.nodes(),i),e}function sse(t){Ae(t.edges(),function(e){var r=t.edge(e);if(r.reversed){t.removeEdge(e);var n=r.forwardName;delete r.reversed,delete r.forwardName,t.setEdge(e.w,e.v,r,n)}})}var VR=M(()=>{"use strict";Yt();ise();o(ase,"run");o(rFe,"dfsFAS");o(sse,"undo")});function Lc(t,e,r,n){var i;do i=lp(n);while(t.hasNode(i));return r.dummy=e,t.setNode(i,r),i}function lse(t){var e=new cn().setGraph(t.graph());return Ae(t.nodes(),function(r){e.setNode(r,t.node(r))}),Ae(t.edges(),function(r){var n=e.edge(r.v,r.w)||{weight:0,minlen:1},i=t.edge(r);e.setEdge(r.v,r.w,{weight:n.weight+i.weight,minlen:Math.max(n.minlen,i.minlen)})}),e}function bk(t){var e=new cn({multigraph:t.isMultigraph()}).setGraph(t.graph());return Ae(t.nodes(),function(r){t.children(r).length||e.setNode(r,t.node(r))}),Ae(t.edges(),function(r){e.setEdge(r,t.edge(r))}),e}function UR(t,e){var r=t.x,n=t.y,i=e.x-r,a=e.y-n,s=t.width/2,l=t.height/2;if(!i&&!a)throw new Error("Not possible to find intersection inside of the rectangle");var u,h;return Math.abs(a)*s>Math.abs(i)*l?(a<0&&(l=-l),u=l*i/a,h=l):(i<0&&(s=-s),u=s,h=s*a/i),{x:r+u,y:n+h}}function uf(t){var e=rt(Ho(qR(t)+1),function(){return[]});return Ae(t.nodes(),function(r){var n=t.node(r),i=n.rank;xr(i)||(e[i][n.order]=r)}),e}function cse(t){var e=Rl(rt(t.nodes(),function(r){return t.node(r).rank}));Ae(t.nodes(),function(r){var n=t.node(r);Ft(n,"rank")&&(n.rank-=e)})}function use(t){var e=Rl(rt(t.nodes(),function(a){return t.node(a).rank})),r=[];Ae(t.nodes(),function(a){var s=t.node(a).rank-e;r[s]||(r[s]=[]),r[s].push(a)});var n=0,i=t.graph().nodeRankFactor;Ae(r,function(a,s){xr(a)&&s%i!==0?--n:n&&Ae(a,function(l){t.node(l).rank+=n})})}function HR(t,e,r,n){var i={width:0,height:0};return arguments.length>=4&&(i.rank=r,i.order=n),Lc(t,"border",i,e)}function qR(t){return Gs(rt(t.nodes(),function(e){var r=t.node(e).rank;if(!xr(r))return r}))}function hse(t,e){var r={lhs:[],rhs:[]};return Ae(t,function(n){e(n)?r.lhs.push(n):r.rhs.push(n)}),r}function fse(t,e){var r=nk();try{return e()}finally{console.log(t+" time: "+(nk()-r)+"ms")}}function dse(t,e){return e()}var Rc=M(()=>{"use strict";Yt();qo();o(Lc,"addDummyNode");o(lse,"simplify");o(bk,"asNonCompoundGraph");o(UR,"intersectRect");o(uf,"buildLayerMatrix");o(cse,"normalizeRanks");o(use,"removeEmptyRanks");o(HR,"addBorderNode");o(qR,"maxRank");o(hse,"partition");o(fse,"time");o(dse,"notime")});function mse(t){function e(r){var n=t.children(r),i=t.node(r);if(n.length&&Ae(n,e),Object.prototype.hasOwnProperty.call(i,"minRank")){i.borderLeft=[],i.borderRight=[];for(var a=i.minRank,s=i.maxRank+1;a{"use strict";Yt();Rc();o(mse,"addBorderSegments");o(pse,"addBorderNode")});function vse(t){var e=t.graph().rankdir.toLowerCase();(e==="lr"||e==="rl")&&bse(t)}function xse(t){var e=t.graph().rankdir.toLowerCase();(e==="bt"||e==="rl")&&nFe(t),(e==="lr"||e==="rl")&&(iFe(t),bse(t))}function bse(t){Ae(t.nodes(),function(e){yse(t.node(e))}),Ae(t.edges(),function(e){yse(t.edge(e))})}function yse(t){var e=t.width;t.width=t.height,t.height=e}function nFe(t){Ae(t.nodes(),function(e){WR(t.node(e))}),Ae(t.edges(),function(e){var r=t.edge(e);Ae(r.points,WR),Object.prototype.hasOwnProperty.call(r,"y")&&WR(r)})}function WR(t){t.y=-t.y}function iFe(t){Ae(t.nodes(),function(e){YR(t.node(e))}),Ae(t.edges(),function(e){var r=t.edge(e);Ae(r.points,YR),Object.prototype.hasOwnProperty.call(r,"x")&&YR(r)})}function YR(t){var e=t.x;t.x=t.y,t.y=e}var Tse=M(()=>{"use strict";Yt();o(vse,"adjust");o(xse,"undo");o(bse,"swapWidthHeight");o(yse,"swapWidthHeightOne");o(nFe,"reverseY");o(WR,"reverseYOne");o(iFe,"swapXY");o(YR,"swapXYOne")});function wse(t){t.graph().dummyChains=[],Ae(t.edges(),function(e){sFe(t,e)})}function sFe(t,e){var r=e.v,n=t.node(r).rank,i=e.w,a=t.node(i).rank,s=e.name,l=t.edge(e),u=l.labelRank;if(a!==n+1){t.removeEdge(e);var h=void 0,f,d;for(d=0,++n;n{"use strict";Yt();Rc();o(wse,"run");o(sFe,"normalizeEdge");o(kse,"undo")});function U2(t){var e={};function r(n){var i=t.node(n);if(Object.prototype.hasOwnProperty.call(e,n))return i.rank;e[n]=!0;var a=Rl(rt(t.outEdges(n),function(s){return r(s.w)-t.edge(s).minlen}));return(a===Number.POSITIVE_INFINITY||a===void 0||a===null)&&(a=0),i.rank=a}o(r,"dfs"),Ae(t.sources(),r)}function up(t,e){return t.node(e.w).rank-t.node(e.v).rank-t.edge(e).minlen}var Tk=M(()=>{"use strict";Yt();o(U2,"longestPath");o(up,"slack")});function wk(t){var e=new cn({directed:!1}),r=t.nodes()[0],n=t.nodeCount();e.setNode(r,{});for(var i,a;oFe(e,t){"use strict";Yt();qo();Tk();o(wk,"feasibleTree");o(oFe,"tightTree");o(lFe,"findMinSlackEdge");o(cFe,"shiftRanks")});var Sse=M(()=>{"use strict"});var KR=M(()=>{"use strict"});var pjt,QR=M(()=>{"use strict";Yt();KR();pjt=Ns(1)});var Cse=M(()=>{"use strict";QR()});var ZR=M(()=>{"use strict"});var Ase=M(()=>{"use strict";ZR()});var Sjt,_se=M(()=>{"use strict";Yt();Sjt=Ns(1)});function JR(t){var e={},r={},n=[];function i(a){if(Object.prototype.hasOwnProperty.call(r,a))throw new H2;Object.prototype.hasOwnProperty.call(e,a)||(r[a]=!0,e[a]=!0,Ae(t.predecessors(a),i),delete r[a],n.push(a))}if(o(i,"visit"),Ae(t.sinks(),i),BR(e)!==t.nodeCount())throw new H2;return n}function H2(){}var eN=M(()=>{"use strict";Yt();JR.CycleException=H2;o(JR,"topsort");o(H2,"CycleException");H2.prototype=new Error});var Dse=M(()=>{"use strict";eN()});function kk(t,e,r){Bt(e)||(e=[e]);var n=(t.isDirected()?t.successors:t.neighbors).bind(t),i=[],a={};return Ae(e,function(s){if(!t.hasNode(s))throw new Error("Graph does not have node: "+s);Lse(t,s,r==="post",a,n,i)}),i}function Lse(t,e,r,n,i,a){Object.prototype.hasOwnProperty.call(n,e)||(n[e]=!0,r||a.push(e),Ae(i(e),function(s){Lse(t,s,r,n,i,a)}),r&&a.push(e))}var tN=M(()=>{"use strict";Yt();o(kk,"dfs");o(Lse,"doDfs")});function rN(t,e){return kk(t,e,"post")}var Rse=M(()=>{"use strict";tN();o(rN,"postorder")});function nN(t,e){return kk(t,e,"pre")}var Nse=M(()=>{"use strict";tN();o(nN,"preorder")});var Mse=M(()=>{"use strict";KR();yk()});var Ise=M(()=>{"use strict";Sse();QR();Cse();Ase();_se();Dse();Rse();Nse();Mse();ZR();eN()});function ff(t){t=lse(t),U2(t);var e=wk(t);aN(e),iN(e,t);for(var r,n;r=Fse(e);)n=$se(e,t,r),zse(e,t,r,n)}function iN(t,e){var r=rN(t,t.nodes());r=r.slice(0,r.length-1),Ae(r,function(n){pFe(t,e,n)})}function pFe(t,e,r){var n=t.node(r),i=n.parent;t.edge(r,i).cutvalue=Pse(t,e,r)}function Pse(t,e,r){var n=t.node(r),i=n.parent,a=!0,s=e.edge(r,i),l=0;return s||(a=!1,s=e.edge(i,r)),l=s.weight,Ae(e.nodeEdges(r),function(u){var h=u.v===r,f=h?u.w:u.v;if(f!==i){var d=h===a,p=e.edge(u).weight;if(l+=d?p:-p,gFe(t,r,f)){var m=t.edge(r,f).cutvalue;l+=d?-m:m}}}),l}function aN(t,e){arguments.length<2&&(e=t.nodes()[0]),Bse(t,{},1,e)}function Bse(t,e,r,n,i){var a=r,s=t.node(n);return e[n]=!0,Ae(t.neighbors(n),function(l){Object.prototype.hasOwnProperty.call(e,l)||(r=Bse(t,e,r,l,n))}),s.low=a,s.lim=r++,i?s.parent=i:delete s.parent,r}function Fse(t){return os(t.edges(),function(e){return t.edge(e).cutvalue<0})}function $se(t,e,r){var n=r.v,i=r.w;e.hasEdge(n,i)||(n=r.w,i=r.v);var a=t.node(n),s=t.node(i),l=a,u=!1;a.lim>s.lim&&(l=s,u=!0);var h=Zr(e.edges(),function(f){return u===Ose(t,t.node(f.v),l)&&u!==Ose(t,t.node(f.w),l)});return sp(h,function(f){return up(e,f)})}function zse(t,e,r,n){var i=r.v,a=r.w;t.removeEdge(i,a),t.setEdge(n.v,n.w,{}),aN(t),iN(t,e),mFe(t,e)}function mFe(t,e){var r=os(t.nodes(),function(i){return!e.node(i).parent}),n=nN(t,r);n=n.slice(1),Ae(n,function(i){var a=t.node(i).parent,s=e.edge(i,a),l=!1;s||(s=e.edge(a,i),l=!0),e.node(i).rank=e.node(a).rank+(l?s.minlen:-s.minlen)})}function gFe(t,e,r){return t.hasEdge(e,r)}function Ose(t,e,r){return r.low<=e.lim&&e.lim<=r.lim}var Gse=M(()=>{"use strict";Yt();Ise();Rc();jR();Tk();ff.initLowLimValues=aN;ff.initCutValues=iN;ff.calcCutValue=Pse;ff.leaveEdge=Fse;ff.enterEdge=$se;ff.exchangeEdges=zse;o(ff,"networkSimplex");o(iN,"initCutValues");o(pFe,"assignCutValue");o(Pse,"calcCutValue");o(aN,"initLowLimValues");o(Bse,"dfsAssignLowLim");o(Fse,"leaveEdge");o($se,"enterEdge");o(zse,"exchangeEdges");o(mFe,"updateRanks");o(gFe,"isTreeEdge");o(Ose,"isDescendant")});function sN(t){switch(t.graph().ranker){case"network-simplex":Vse(t);break;case"tight-tree":vFe(t);break;case"longest-path":yFe(t);break;default:Vse(t)}}function vFe(t){U2(t),wk(t)}function Vse(t){ff(t)}var yFe,oN=M(()=>{"use strict";jR();Gse();Tk();o(sN,"rank");yFe=U2;o(vFe,"tightTreeRanker");o(Vse,"networkSimplexRanker")});function Use(t){var e=Lc(t,"root",{},"_root"),r=xFe(t),n=Gs(kr(r))-1,i=2*n+1;t.graph().nestingRoot=e,Ae(t.edges(),function(s){t.edge(s).minlen*=i});var a=bFe(t)+1;Ae(t.children(),function(s){Hse(t,e,i,a,n,r,s)}),t.graph().nodeRankFactor=i}function Hse(t,e,r,n,i,a,s){var l=t.children(s);if(!l.length){s!==e&&t.setEdge(e,s,{weight:0,minlen:r});return}var u=HR(t,"_bt"),h=HR(t,"_bb"),f=t.node(s);t.setParent(u,s),f.borderTop=u,t.setParent(h,s),f.borderBottom=h,Ae(l,function(d){Hse(t,e,r,n,i,a,d);var p=t.node(d),m=p.borderTop?p.borderTop:d,g=p.borderBottom?p.borderBottom:d,y=p.borderTop?n:2*n,v=m!==g?1:i-a[s]+1;t.setEdge(u,m,{weight:y,minlen:v,nestingEdge:!0}),t.setEdge(g,h,{weight:y,minlen:v,nestingEdge:!0})}),t.parent(s)||t.setEdge(e,u,{weight:0,minlen:i+a[s]})}function xFe(t){var e={};function r(n,i){var a=t.children(n);a&&a.length&&Ae(a,function(s){r(s,i+1)}),e[n]=i}return o(r,"dfs"),Ae(t.children(),function(n){r(n,1)}),e}function bFe(t){return Jr(t.edges(),function(e,r){return e+t.edge(r).weight},0)}function qse(t){var e=t.graph();t.removeNode(e.nestingRoot),delete e.nestingRoot,Ae(t.edges(),function(r){var n=t.edge(r);n.nestingEdge&&t.removeEdge(r)})}var Wse=M(()=>{"use strict";Yt();Rc();o(Use,"run");o(Hse,"dfs");o(xFe,"treeDepths");o(bFe,"sumWeights");o(qse,"cleanup")});function Yse(t,e,r){var n={},i;Ae(r,function(a){for(var s=t.parent(a),l,u;s;){if(l=t.parent(s),l?(u=n[l],n[l]=s):(u=i,i=s),u&&u!==s){e.setEdge(u,s);return}s=l}})}var Xse=M(()=>{"use strict";Yt();o(Yse,"addSubgraphConstraints")});function jse(t,e,r){var n=wFe(t),i=new cn({compound:!0}).setGraph({root:n}).setDefaultNodeLabel(function(a){return t.node(a)});return Ae(t.nodes(),function(a){var s=t.node(a),l=t.parent(a);(s.rank===e||s.minRank<=e&&e<=s.maxRank)&&(i.setNode(a),i.setParent(a,l||n),Ae(t[r](a),function(u){var h=u.v===a?u.w:u.v,f=i.edge(h,a),d=xr(f)?0:f.weight;i.setEdge(h,a,{weight:t.edge(u).weight+d})}),Object.prototype.hasOwnProperty.call(s,"minRank")&&i.setNode(a,{borderLeft:s.borderLeft[e],borderRight:s.borderRight[e]}))}),i}function wFe(t){for(var e;t.hasNode(e=lp("_root")););return e}var Kse=M(()=>{"use strict";Yt();qo();o(jse,"buildLayerGraph");o(wFe,"createRootNode")});function Qse(t,e){for(var r=0,n=1;n0;)f%2&&(d+=l[f+1]),f=f-1>>1,l[f]+=h.weight;u+=h.weight*d})),u}var Zse=M(()=>{"use strict";Yt();o(Qse,"crossCount");o(kFe,"twoLayerCrossCount")});function Jse(t){var e={},r=Zr(t.nodes(),function(l){return!t.children(l).length}),n=Gs(rt(r,function(l){return t.node(l).rank})),i=rt(Ho(n+1),function(){return[]});function a(l){if(!Ft(e,l)){e[l]=!0;var u=t.node(l);i[u.rank].push(l),Ae(t.successors(l),a)}}o(a,"dfs");var s=Dc(r,function(l){return t.node(l).rank});return Ae(s,a),i}var eoe=M(()=>{"use strict";Yt();o(Jse,"initOrder")});function toe(t,e){return rt(e,function(r){var n=t.inEdges(r);if(n.length){var i=Jr(n,function(a,s){var l=t.edge(s),u=t.node(s.v);return{sum:a.sum+l.weight*u.order,weight:a.weight+l.weight}},{sum:0,weight:0});return{v:r,barycenter:i.sum/i.weight,weight:i.weight}}else return{v:r}})}var roe=M(()=>{"use strict";Yt();o(toe,"barycenter")});function noe(t,e){var r={};Ae(t,function(i,a){var s=r[i.v]={indegree:0,in:[],out:[],vs:[i.v],i:a};xr(i.barycenter)||(s.barycenter=i.barycenter,s.weight=i.weight)}),Ae(e.edges(),function(i){var a=r[i.v],s=r[i.w];!xr(a)&&!xr(s)&&(s.indegree++,a.out.push(r[i.w]))});var n=Zr(r,function(i){return!i.indegree});return EFe(n)}function EFe(t){var e=[];function r(a){return function(s){s.merged||(xr(s.barycenter)||xr(a.barycenter)||s.barycenter>=a.barycenter)&&SFe(a,s)}}o(r,"handleIn");function n(a){return function(s){s.in.push(a),--s.indegree===0&&t.push(s)}}for(o(n,"handleOut");t.length;){var i=t.pop();e.push(i),Ae(i.in.reverse(),r(i)),Ae(i.out,n(i))}return rt(Zr(e,function(a){return!a.merged}),function(a){return op(a,["vs","i","barycenter","weight"])})}function SFe(t,e){var r=0,n=0;t.weight&&(r+=t.barycenter*t.weight,n+=t.weight),e.weight&&(r+=e.barycenter*e.weight,n+=e.weight),t.vs=e.vs.concat(t.vs),t.barycenter=r/n,t.weight=n,t.i=Math.min(e.i,t.i),e.merged=!0}var ioe=M(()=>{"use strict";Yt();o(noe,"resolveConflicts");o(EFe,"doResolveConflicts");o(SFe,"mergeEntries")});function soe(t,e){var r=hse(t,function(f){return Object.prototype.hasOwnProperty.call(f,"barycenter")}),n=r.lhs,i=Dc(r.rhs,function(f){return-f.i}),a=[],s=0,l=0,u=0;n.sort(CFe(!!e)),u=aoe(a,i,u),Ae(n,function(f){u+=f.vs.length,a.push(f.vs),s+=f.barycenter*f.weight,l+=f.weight,u=aoe(a,i,u)});var h={vs:Qr(a)};return l&&(h.barycenter=s/l,h.weight=l),h}function aoe(t,e,r){for(var n;e.length&&(n=ga(e)).i<=r;)e.pop(),t.push(n.vs),r++;return r}function CFe(t){return function(e,r){return e.barycenterr.barycenter?1:t?r.i-e.i:e.i-r.i}}var ooe=M(()=>{"use strict";Yt();Rc();o(soe,"sort");o(aoe,"consumeUnsortable");o(CFe,"compareWithBias")});function lN(t,e,r,n){var i=t.children(e),a=t.node(e),s=a?a.borderLeft:void 0,l=a?a.borderRight:void 0,u={};s&&(i=Zr(i,function(g){return g!==s&&g!==l}));var h=toe(t,i);Ae(h,function(g){if(t.children(g.v).length){var y=lN(t,g.v,r,n);u[g.v]=y,Object.prototype.hasOwnProperty.call(y,"barycenter")&&_Fe(g,y)}});var f=noe(h,r);AFe(f,u);var d=soe(f,n);if(s&&(d.vs=Qr([s,d.vs,l]),t.predecessors(s).length)){var p=t.node(t.predecessors(s)[0]),m=t.node(t.predecessors(l)[0]);Object.prototype.hasOwnProperty.call(d,"barycenter")||(d.barycenter=0,d.weight=0),d.barycenter=(d.barycenter*d.weight+p.order+m.order)/(d.weight+2),d.weight+=2}return d}function AFe(t,e){Ae(t,function(r){r.vs=Qr(r.vs.map(function(n){return e[n]?e[n].vs:n}))})}function _Fe(t,e){xr(t.barycenter)?(t.barycenter=e.barycenter,t.weight=e.weight):(t.barycenter=(t.barycenter*t.weight+e.barycenter*e.weight)/(t.weight+e.weight),t.weight+=e.weight)}var loe=M(()=>{"use strict";Yt();roe();ioe();ooe();o(lN,"sortSubgraph");o(AFe,"expandSubgraphs");o(_Fe,"mergeBarycenters")});function hoe(t){var e=qR(t),r=coe(t,Ho(1,e+1),"inEdges"),n=coe(t,Ho(e-1,-1,-1),"outEdges"),i=Jse(t);uoe(t,i);for(var a=Number.POSITIVE_INFINITY,s,l=0,u=0;u<4;++l,++u){DFe(l%2?r:n,l%4>=2),i=uf(t);var h=Qse(t,i);h{"use strict";Yt();qo();Rc();Xse();Kse();Zse();eoe();loe();o(hoe,"order");o(coe,"buildLayerGraphs");o(DFe,"sweepLayerGraphs");o(uoe,"assignOrder")});function doe(t){var e=RFe(t);Ae(t.graph().dummyChains,function(r){for(var n=t.node(r),i=n.edgeObj,a=LFe(t,e,i.v,i.w),s=a.path,l=a.lca,u=0,h=s[u],f=!0;r!==i.w;){if(n=t.node(r),f){for(;(h=s[u])!==l&&t.node(h).maxRanks||l>e[u].lim));for(h=u,u=n;(u=t.parent(u))!==h;)a.push(u);return{path:i.concat(a.reverse()),lca:h}}function RFe(t){var e={},r=0;function n(i){var a=r;Ae(t.children(i),n),e[i]={low:a,lim:r++}}return o(n,"dfs"),Ae(t.children(),n),e}var poe=M(()=>{"use strict";Yt();o(doe,"parentDummyChains");o(LFe,"findPath");o(RFe,"postorder")});function NFe(t,e){var r={};function n(i,a){var s=0,l=0,u=i.length,h=ga(a);return Ae(a,function(f,d){var p=IFe(t,f),m=p?t.node(p).order:u;(p||f===h)&&(Ae(a.slice(l,d+1),function(g){Ae(t.predecessors(g),function(y){var v=t.node(y),x=v.order;(xh)&&moe(r,p,f)})})}o(n,"scan");function i(a,s){var l=-1,u,h=0;return Ae(s,function(f,d){if(t.node(f).dummy==="border"){var p=t.predecessors(f);p.length&&(u=t.node(p[0]).order,n(s,h,d,l,u),h=d,l=u)}n(s,h,s.length,u,a.length)}),s}return o(i,"visitLayer"),Jr(e,i),r}function IFe(t,e){if(t.node(e).dummy)return os(t.predecessors(e),function(r){return t.node(r).dummy})}function moe(t,e,r){if(e>r){var n=e;e=r,r=n}Object.prototype.hasOwnProperty.call(t,e)||Object.defineProperty(t,e,{enumerable:!0,configurable:!0,value:{},writable:!0});var i=t[e];Object.defineProperty(i,r,{enumerable:!0,configurable:!0,value:!0,writable:!0})}function OFe(t,e,r){if(e>r){var n=e;e=r,r=n}return!!t[e]&&Object.prototype.hasOwnProperty.call(t[e],r)}function PFe(t,e,r,n){var i={},a={},s={};return Ae(e,function(l){Ae(l,function(u,h){i[u]=u,a[u]=u,s[u]=h})}),Ae(e,function(l){var u=-1;Ae(l,function(h){var f=n(h);if(f.length){f=Dc(f,function(y){return s[y]});for(var d=(f.length-1)/2,p=Math.floor(d),m=Math.ceil(d);p<=m;++p){var g=f[p];a[h]===h&&u{"use strict";Yt();qo();Rc();o(NFe,"findType1Conflicts");o(MFe,"findType2Conflicts");o(IFe,"findOtherInnerSegmentNode");o(moe,"addConflict");o(OFe,"hasConflict");o(PFe,"verticalAlignment");o(BFe,"horizontalCompaction");o(FFe,"buildBlockGraph");o($Fe,"findSmallestWidthAlignment");o(zFe,"alignCoordinates");o(GFe,"balance");o(goe,"positionX");o(VFe,"sep");o(UFe,"width")});function voe(t){t=bk(t),HFe(t),_R(goe(t),function(e,r){t.node(r).x=e})}function HFe(t){var e=uf(t),r=t.graph().ranksep,n=0;Ae(e,function(i){var a=Gs(rt(i,function(s){return t.node(s).height}));Ae(i,function(s){t.node(s).y=n+a/2}),n+=a+r})}var xoe=M(()=>{"use strict";Yt();Rc();yoe();o(voe,"position");o(HFe,"positionY")});function q2(t,e){var r=e&&e.debugTiming?fse:dse;r("layout",()=>{var n=r(" buildLayoutGraph",()=>t$e(t));r(" runLayout",()=>qFe(n,r)),r(" updateInputGraph",()=>WFe(t,n))})}function qFe(t,e){e(" makeSpaceForEdgeLabels",()=>r$e(t)),e(" removeSelfEdges",()=>h$e(t)),e(" acyclic",()=>ase(t)),e(" nestingGraph.run",()=>Use(t)),e(" rank",()=>sN(bk(t))),e(" injectEdgeLabelProxies",()=>n$e(t)),e(" removeEmptyRanks",()=>use(t)),e(" nestingGraph.cleanup",()=>qse(t)),e(" normalizeRanks",()=>cse(t)),e(" assignRankMinMax",()=>i$e(t)),e(" removeEdgeLabelProxies",()=>a$e(t)),e(" normalize.run",()=>wse(t)),e(" parentDummyChains",()=>doe(t)),e(" addBorderSegments",()=>mse(t)),e(" order",()=>hoe(t)),e(" insertSelfEdges",()=>f$e(t)),e(" adjustCoordinateSystem",()=>vse(t)),e(" position",()=>voe(t)),e(" positionSelfEdges",()=>d$e(t)),e(" removeBorderNodes",()=>u$e(t)),e(" normalize.undo",()=>kse(t)),e(" fixupEdgeLabelCoords",()=>l$e(t)),e(" undoCoordinateSystem",()=>xse(t)),e(" translateGraph",()=>s$e(t)),e(" assignNodeIntersects",()=>o$e(t)),e(" reversePoints",()=>c$e(t)),e(" acyclic.undo",()=>sse(t))}function WFe(t,e){Ae(t.nodes(),function(r){var n=t.node(r),i=e.node(r);n&&(n.x=i.x,n.y=i.y,e.children(r).length&&(n.width=i.width,n.height=i.height))}),Ae(t.edges(),function(r){var n=t.edge(r),i=e.edge(r);n.points=i.points,Object.prototype.hasOwnProperty.call(i,"x")&&(n.x=i.x,n.y=i.y)}),t.graph().width=e.graph().width,t.graph().height=e.graph().height}function t$e(t){var e=new cn({multigraph:!0,compound:!0}),r=uN(t.graph());return e.setGraph(Wh({},XFe,cN(r,YFe),op(r,jFe))),Ae(t.nodes(),function(n){var i=uN(t.node(n));e.setNode(n,of(cN(i,KFe),QFe)),e.setParent(n,t.parent(n))}),Ae(t.edges(),function(n){var i=uN(t.edge(n));e.setEdge(n,Wh({},JFe,cN(i,ZFe),op(i,e$e)))}),e}function r$e(t){var e=t.graph();e.ranksep/=2,Ae(t.edges(),function(r){var n=t.edge(r);n.minlen*=2,n.labelpos.toLowerCase()!=="c"&&(e.rankdir==="TB"||e.rankdir==="BT"?n.width+=n.labeloffset:n.height+=n.labeloffset)})}function n$e(t){Ae(t.edges(),function(e){var r=t.edge(e);if(r.width&&r.height){var n=t.node(e.v),i=t.node(e.w),a={rank:(i.rank-n.rank)/2+n.rank,e};Lc(t,"edge-proxy",a,"_ep")}})}function i$e(t){var e=0;Ae(t.nodes(),function(r){var n=t.node(r);n.borderTop&&(n.minRank=t.node(n.borderTop).rank,n.maxRank=t.node(n.borderBottom).rank,e=Gs(e,n.maxRank))}),t.graph().maxRank=e}function a$e(t){Ae(t.nodes(),function(e){var r=t.node(e);r.dummy==="edge-proxy"&&(t.edge(r.e).labelRank=r.rank,t.removeNode(e))})}function s$e(t){var e=Number.POSITIVE_INFINITY,r=0,n=Number.POSITIVE_INFINITY,i=0,a=t.graph(),s=a.marginx||0,l=a.marginy||0;function u(h){var f=h.x,d=h.y,p=h.width,m=h.height;e=Math.min(e,f-p/2),r=Math.max(r,f+p/2),n=Math.min(n,d-m/2),i=Math.max(i,d+m/2)}o(u,"getExtremes"),Ae(t.nodes(),function(h){u(t.node(h))}),Ae(t.edges(),function(h){var f=t.edge(h);Object.prototype.hasOwnProperty.call(f,"x")&&u(f)}),e-=s,n-=l,Ae(t.nodes(),function(h){var f=t.node(h);f.x-=e,f.y-=n}),Ae(t.edges(),function(h){var f=t.edge(h);Ae(f.points,function(d){d.x-=e,d.y-=n}),Object.prototype.hasOwnProperty.call(f,"x")&&(f.x-=e),Object.prototype.hasOwnProperty.call(f,"y")&&(f.y-=n)}),a.width=r-e+s,a.height=i-n+l}function o$e(t){Ae(t.edges(),function(e){var r=t.edge(e),n=t.node(e.v),i=t.node(e.w),a,s;r.points?(a=r.points[0],s=r.points[r.points.length-1]):(r.points=[],a=i,s=n),r.points.unshift(UR(n,a)),r.points.push(UR(i,s))})}function l$e(t){Ae(t.edges(),function(e){var r=t.edge(e);if(Object.prototype.hasOwnProperty.call(r,"x"))switch((r.labelpos==="l"||r.labelpos==="r")&&(r.width-=r.labeloffset),r.labelpos){case"l":r.x-=r.width/2+r.labeloffset;break;case"r":r.x+=r.width/2+r.labeloffset;break}})}function c$e(t){Ae(t.edges(),function(e){var r=t.edge(e);r.reversed&&r.points.reverse()})}function u$e(t){Ae(t.nodes(),function(e){if(t.children(e).length){var r=t.node(e),n=t.node(r.borderTop),i=t.node(r.borderBottom),a=t.node(ga(r.borderLeft)),s=t.node(ga(r.borderRight));r.width=Math.abs(s.x-a.x),r.height=Math.abs(i.y-n.y),r.x=a.x+r.width/2,r.y=n.y+r.height/2}}),Ae(t.nodes(),function(e){t.node(e).dummy==="border"&&t.removeNode(e)})}function h$e(t){Ae(t.edges(),function(e){if(e.v===e.w){var r=t.node(e.v);r.selfEdges||(r.selfEdges=[]),r.selfEdges.push({e,label:t.edge(e)}),t.removeEdge(e)}})}function f$e(t){var e=uf(t);Ae(e,function(r){var n=0;Ae(r,function(i,a){var s=t.node(i);s.order=a+n,Ae(s.selfEdges,function(l){Lc(t,"selfedge",{width:l.label.width,height:l.label.height,rank:s.rank,order:a+ ++n,e:l.e,label:l.label},"_se")}),delete s.selfEdges})})}function d$e(t){Ae(t.nodes(),function(e){var r=t.node(e);if(r.dummy==="selfedge"){var n=t.node(r.e.v),i=n.x+n.width/2,a=n.y,s=r.x-i,l=n.height/2;t.setEdge(r.e,r.label),t.removeNode(e),r.label.points=[{x:i+2*s/3,y:a-l},{x:i+5*s/6,y:a-l},{x:i+s,y:a},{x:i+5*s/6,y:a+l},{x:i+2*s/3,y:a+l}],r.label.x=r.x,r.label.y=r.y}})}function cN(t,e){return ap(op(t,e),Number)}function uN(t){var e={};return Ae(t,function(r,n){e[n.toLowerCase()]=r}),e}var YFe,XFe,jFe,KFe,QFe,ZFe,JFe,e$e,boe=M(()=>{"use strict";Yt();qo();gse();Tse();VR();XR();oN();Wse();foe();poe();xoe();Rc();o(q2,"layout");o(qFe,"runLayout");o(WFe,"updateInputGraph");YFe=["nodesep","edgesep","ranksep","marginx","marginy"],XFe={ranksep:50,edgesep:20,nodesep:50,rankdir:"tb"},jFe=["acyclicer","ranker","rankdir","align"],KFe=["width","height"],QFe={width:0,height:0},ZFe=["minlen","weight","width","height","labeloffset"],JFe={minlen:1,weight:1,width:0,height:0,labeloffset:10,labelpos:"r"},e$e=["labelpos"];o(t$e,"buildLayoutGraph");o(r$e,"makeSpaceForEdgeLabels");o(n$e,"injectEdgeLabelProxies");o(i$e,"assignRankMinMax");o(a$e,"removeEdgeLabelProxies");o(s$e,"translateGraph");o(o$e,"assignNodeIntersects");o(l$e,"fixupEdgeLabelCoords");o(c$e,"reversePointsForReversedEdges");o(u$e,"removeBorderNodes");o(h$e,"removeSelfEdges");o(f$e,"insertSelfEdges");o(d$e,"positionSelfEdges");o(cN,"selectNumberAttrs");o(uN,"canonicalize")});var hN=M(()=>{"use strict";VR();boe();XR();oN()});function Wo(t){var e={options:{directed:t.isDirected(),multigraph:t.isMultigraph(),compound:t.isCompound()},nodes:p$e(t),edges:m$e(t)};return xr(t.graph())||(e.value=ln(t.graph())),e}function p$e(t){return rt(t.nodes(),function(e){var r=t.node(e),n=t.parent(e),i={v:e};return xr(r)||(i.value=r),xr(n)||(i.parent=n),i})}function m$e(t){return rt(t.edges(),function(e){var r=t.edge(e),n={v:e.v,w:e.w};return xr(e.name)||(n.name=e.name),xr(r)||(n.value=r),n})}var fN=M(()=>{"use strict";Yt();yk();o(Wo,"write");o(p$e,"writeNodes");o(m$e,"writeEdges")});var Er,hp,koe,Eoe,Ek,g$e,Soe,Coe,y$e,Wm,woe,Aoe,_oe,Doe,Loe,Roe=M(()=>{"use strict";pt();qo();fN();Er=new Map,hp=new Map,koe=new Map,Eoe=o(()=>{hp.clear(),koe.clear(),Er.clear()},"clear"),Ek=o((t,e)=>{let r=hp.get(e)||[];return X.trace("In isDescendant",e," ",t," = ",r.includes(t)),r.includes(t)},"isDescendant"),g$e=o((t,e)=>{let r=hp.get(e)||[];return X.info("Descendants of ",e," is ",r),X.info("Edge is ",t),t.v===e||t.w===e?!1:r?r.includes(t.v)||Ek(t.v,e)||Ek(t.w,e)||r.includes(t.w):(X.debug("Tilt, ",e,",not in descendants"),!1)},"edgeInCluster"),Soe=o((t,e,r,n)=>{X.warn("Copying children of ",t,"root",n,"data",e.node(t),n);let i=e.children(t)||[];t!==n&&i.push(t),X.warn("Copying (nodes) clusterId",t,"nodes",i),i.forEach(a=>{if(e.children(a).length>0)Soe(a,e,r,n);else{let s=e.node(a);X.info("cp ",a," to ",n," with parent ",t),r.setNode(a,s),n!==e.parent(a)&&(X.warn("Setting parent",a,e.parent(a)),r.setParent(a,e.parent(a))),t!==n&&a!==t?(X.debug("Setting parent",a,t),r.setParent(a,t)):(X.info("In copy ",t,"root",n,"data",e.node(t),n),X.debug("Not Setting parent for node=",a,"cluster!==rootId",t!==n,"node!==clusterId",a!==t));let l=e.edges(a);X.debug("Copying Edges",l),l.forEach(u=>{X.info("Edge",u);let h=e.edge(u.v,u.w,u.name);X.info("Edge data",h,n);try{g$e(u,n)?(X.info("Copying as ",u.v,u.w,h,u.name),r.setEdge(u.v,u.w,h,u.name),X.info("newGraph edges ",r.edges(),r.edge(r.edges()[0]))):X.info("Skipping copy of edge ",u.v,"-->",u.w," rootId: ",n," clusterId:",t)}catch(f){X.error(f)}})}X.debug("Removing node",a),e.removeNode(a)})},"copy"),Coe=o((t,e)=>{let r=e.children(t),n=[...r];for(let i of r)koe.set(i,t),n=[...n,...Coe(i,e)];return n},"extractDescendants"),y$e=o((t,e,r)=>{let n=t.edges().filter(u=>u.v===e||u.w===e),i=t.edges().filter(u=>u.v===r||u.w===r),a=n.map(u=>({v:u.v===e?r:u.v,w:u.w===e?e:u.w})),s=i.map(u=>({v:u.v,w:u.w}));return a.filter(u=>s.some(h=>u.v===h.v&&u.w===h.w))},"findCommonEdges"),Wm=o((t,e,r)=>{let n=e.children(t);if(X.trace("Searching children of id ",t,n),n.length<1)return t;let i;for(let a of n){let s=Wm(a,e,r),l=y$e(e,r,s);if(s)if(l.length>0)i=s;else return s}return i},"findNonClusterChild"),woe=o(t=>!Er.has(t)||!Er.get(t).externalConnections?t:Er.has(t)?Er.get(t).id:t,"getAnchorId"),Aoe=o((t,e)=>{if(!t||e>10){X.debug("Opting out, no graph ");return}else X.debug("Opting in, graph ");t.nodes().forEach(function(r){t.children(r).length>0&&(X.warn("Cluster identified",r," Replacement id in edges: ",Wm(r,t,r)),hp.set(r,Coe(r,t)),Er.set(r,{id:Wm(r,t,r),clusterData:t.node(r)}))}),t.nodes().forEach(function(r){let n=t.children(r),i=t.edges();n.length>0?(X.debug("Cluster identified",r,hp),i.forEach(a=>{let s=Ek(a.v,r),l=Ek(a.w,r);s^l&&(X.warn("Edge: ",a," leaves cluster ",r),X.warn("Descendants of XXX ",r,": ",hp.get(r)),Er.get(r).externalConnections=!0)})):X.debug("Not a cluster ",r,hp)});for(let r of Er.keys()){let n=Er.get(r).id,i=t.parent(n);i!==r&&Er.has(i)&&!Er.get(i).externalConnections&&(Er.get(r).id=i)}t.edges().forEach(function(r){let n=t.edge(r);X.warn("Edge "+r.v+" -> "+r.w+": "+JSON.stringify(r)),X.warn("Edge "+r.v+" -> "+r.w+": "+JSON.stringify(t.edge(r)));let i=r.v,a=r.w;if(X.warn("Fix XXX",Er,"ids:",r.v,r.w,"Translating: ",Er.get(r.v)," --- ",Er.get(r.w)),Er.get(r.v)||Er.get(r.w)){if(X.warn("Fixing and trying - removing XXX",r.v,r.w,r.name),i=woe(r.v),a=woe(r.w),t.removeEdge(r.v,r.w,r.name),i!==r.v){let s=t.parent(i);Er.get(s).externalConnections=!0,n.fromCluster=r.v}if(a!==r.w){let s=t.parent(a);Er.get(s).externalConnections=!0,n.toCluster=r.w}X.warn("Fix Replacing with XXX",i,a,r.name),t.setEdge(i,a,n,r.name)}}),X.warn("Adjusted Graph",Wo(t)),_oe(t,0),X.trace(Er)},"adjustClustersAndEdges"),_oe=o((t,e)=>{if(X.warn("extractor - ",e,Wo(t),t.children("D")),e>10){X.error("Bailing out");return}let r=t.nodes(),n=!1;for(let i of r){let a=t.children(i);n=n||a.length>0}if(!n){X.debug("Done, no node has children",t.nodes());return}X.debug("Nodes = ",r,e);for(let i of r)if(X.debug("Extracting node",i,Er,Er.has(i)&&!Er.get(i).externalConnections,!t.parent(i),t.node(i),t.children("D")," Depth ",e),!Er.has(i))X.debug("Not a cluster",i,e);else if(!Er.get(i).externalConnections&&t.children(i)&&t.children(i).length>0){X.warn("Cluster without external connections, without a parent and with children",i,e);let s=t.graph().rankdir==="TB"?"LR":"TB";Er.get(i)?.clusterData?.dir&&(s=Er.get(i).clusterData.dir,X.warn("Fixing dir",Er.get(i).clusterData.dir,s));let l=new cn({multigraph:!0,compound:!0}).setGraph({rankdir:s,nodesep:50,ranksep:50,marginx:8,marginy:8}).setDefaultEdgeLabel(function(){return{}});X.warn("Old graph before copy",Wo(t)),Soe(i,t,l,i),t.setNode(i,{clusterNode:!0,id:i,clusterData:Er.get(i).clusterData,label:Er.get(i).label,graph:l}),X.warn("New graph after copy node: (",i,")",Wo(l)),X.debug("Old graph after copy",Wo(t))}else X.warn("Cluster ** ",i," **not meeting the criteria !externalConnections:",!Er.get(i).externalConnections," no parent: ",!t.parent(i)," children ",t.children(i)&&t.children(i).length>0,t.children("D"),e),X.debug(Er);r=t.nodes(),X.warn("New list of nodes",r);for(let i of r){let a=t.node(i);X.warn(" Now next level",i,a),a?.clusterNode&&_oe(a.graph,e+1)}},"extractor"),Doe=o((t,e)=>{if(e.length===0)return[];let r=Object.assign([],e);return e.forEach(n=>{let i=t.children(n),a=Doe(t,i);r=[...r,...a]}),r},"sorter"),Loe=o(t=>Doe(t,t.children()),"sortNodesByHierarchy")});var Moe={};dr(Moe,{render:()=>v$e});var Noe,v$e,Ioe=M(()=>{"use strict";hN();fN();qo();K9();It();Roe();Tw();uw();j9();pt();P2();Xt();Noe=o(async(t,e,r,n,i,a)=>{X.warn("Graph in recursive render:XAX",Wo(e),i);let s=e.graph().rankdir;X.trace("Dir in recursive render - dir:",s);let l=t.insert("g").attr("class","root");e.nodes()?X.info("Recursive render XXX",e.nodes()):X.info("No nodes found for",e),e.edges().length>0&&X.info("Recursive edges",e.edge(e.edges()[0]));let u=l.insert("g").attr("class","clusters"),h=l.insert("g").attr("class","edgePaths"),f=l.insert("g").attr("class","edgeLabels"),d=l.insert("g").attr("class","nodes");await Promise.all(e.nodes().map(async function(y){let v=e.node(y);if(i!==void 0){let x=JSON.parse(JSON.stringify(i.clusterData));X.trace(`Setting data for parent cluster XXX + Node.id = `,y,` + data=`,x.height,` +Parent cluster`,i.height),e.setNode(i.id,x),e.parent(y)||(X.trace("Setting parent",y,i.id),e.setParent(y,i.id,x))}if(X.info("(Insert) Node XXX"+y+": "+JSON.stringify(e.node(y))),v?.clusterNode){X.info("Cluster identified XBX",y,v.width,e.node(y));let{ranksep:x,nodesep:b}=e.graph();v.graph.setGraph({...v.graph.graph(),ranksep:x+25,nodesep:b});let T=await Noe(d,v.graph,r,n,e.node(y),a),S=T.elem;Qe(v,S),v.diff=T.diff||0,X.info("New compound node after recursive render XAX",y,"width",v.width,"height",v.height),Qte(S,v)}else e.children(y).length>0?(X.trace("Cluster - the non recursive path XBX",y,v.id,v,v.width,"Graph:",e),X.trace(Wm(v.id,e)),Er.set(v.id,{id:Wm(v.id,e),node:v})):(X.trace("Node - the non recursive path XAX",y,d,e.node(y),s),await Cm(d,e.node(y),{config:a,dir:s}))})),await o(async()=>{let y=e.edges().map(async function(v){let x=e.edge(v.v,v.w,v.name);X.info("Edge "+v.v+" -> "+v.w+": "+JSON.stringify(v)),X.info("Edge "+v.v+" -> "+v.w+": ",v," ",JSON.stringify(e.edge(v))),X.info("Fix",Er,"ids:",v.v,v.w,"Translating: ",Er.get(v.v),Er.get(v.w)),await gw(f,x)});await Promise.all(y)},"processEdges")(),X.info("Graph before layout:",JSON.stringify(Wo(e))),X.info("############################################# XXX"),X.info("### Layout ### XXX"),X.info("############################################# XXX"),q2(e),X.info("Graph after layout:",JSON.stringify(Wo(e)));let m=0,{subGraphTitleTotalMargin:g}=Pu(a);return await Promise.all(Loe(e).map(async function(y){let v=e.node(y);if(X.info("Position XBX => "+y+": ("+v.x,","+v.y,") width: ",v.width," height: ",v.height),v?.clusterNode)v.y+=g,X.info("A tainted cluster node XBX1",y,v.id,v.width,v.height,v.x,v.y,e.parent(y)),Er.get(v.id).node=v,B2(v);else if(e.children(y).length>0){X.info("A pure cluster node XBX1",y,v.id,v.x,v.y,v.width,v.height,e.parent(y)),v.height+=g,e.node(v.parentId);let x=v?.padding/2||0,b=v?.labelBBox?.height||0,T=b-x||0;X.debug("OffsetY",T,"labelHeight",b,"halfPadding",x),await Sm(u,v),Er.get(v.id).node=v}else{let x=e.node(v.parentId);v.y+=g/2,X.info("A regular node XBX1 - using the padding",v.id,"parent",v.parentId,v.width,v.height,v.x,v.y,"offsetY",v.offsetY,"parent",x,x?.offsetY,v),B2(v)}})),e.edges().forEach(function(y){let v=e.edge(y);X.info("Edge "+y.v+" -> "+y.w+": "+JSON.stringify(v),v),v.points.forEach(S=>S.y+=g/2);let x=e.node(y.v);var b=e.node(y.w);let T=vw(h,v,Er,r,x,b,n);yw(v,T)}),e.nodes().forEach(function(y){let v=e.node(y);X.info(y,v.type,v.diff),v.isGroup&&(m=v.diff)}),X.warn("Returning from recursive render XAX",l,m),{elem:l,diff:m}},"recursiveRender"),v$e=o(async(t,e)=>{let r=new cn({multigraph:!0,compound:!0}).setGraph({rankdir:t.direction,nodesep:t.config?.nodeSpacing||t.config?.flowchart?.nodeSpacing||t.nodeSpacing,ranksep:t.config?.rankSpacing||t.config?.flowchart?.rankSpacing||t.rankSpacing,marginx:8,marginy:8}).setDefaultEdgeLabel(function(){return{}}),n=e.select("g");xw(n,t.markers,t.type,t.diagramId),Zte(),Kte(),Ute(),Eoe(),t.nodes.forEach(a=>{r.setNode(a.id,{...a}),a.parentId&&r.setParent(a.id,a.parentId)}),X.debug("Edges:",t.edges),t.edges.forEach(a=>{if(a.start===a.end){let s=a.start,l=s+"---"+s+"---1",u=s+"---"+s+"---2",h=r.node(s);r.setNode(l,{domId:l,id:l,parentId:h.parentId,labelStyle:"",label:"",padding:0,shape:"labelRect",style:"",width:10,height:10}),r.setParent(l,h.parentId),r.setNode(u,{domId:u,id:u,parentId:h.parentId,labelStyle:"",padding:0,shape:"labelRect",label:"",style:"",width:10,height:10}),r.setParent(u,h.parentId);let f=structuredClone(a),d=structuredClone(a),p=structuredClone(a);f.label="",f.arrowTypeEnd="none",f.id=s+"-cyclic-special-1",d.arrowTypeStart="none",d.arrowTypeEnd="none",d.id=s+"-cyclic-special-mid",p.label="",h.isGroup&&(f.fromCluster=s,p.toCluster=s),p.id=s+"-cyclic-special-2",p.arrowTypeStart="none",r.setEdge(s,l,f,s+"-cyclic-special-0"),r.setEdge(l,u,d,s+"-cyclic-special-1"),r.setEdge(u,s,p,s+"-cyct.length)&&(e=t.length);for(var r=0,n=Array(e);r=t.length?{done:!0}:{done:!1,value:t[n++]}},"n"),e:o(function(u){throw u},"e"),f:i}}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 a,s=!0,l=!1;return{s:o(function(){r=r.call(t)},"s"),n:o(function(){var u=r.next();return s=u.done,u},"n"),e:o(function(u){l=!0,a=u},"e"),f:o(function(){try{s||r.return==null||r.return()}finally{if(l)throw a}},"f")}}function cue(t,e,r){return(e=uue(e))in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}function w$e(t){if(typeof Symbol<"u"&&t[Symbol.iterator]!=null||t["@@iterator"]!=null)return Array.from(t)}function k$e(t,e){var r=t==null?null:typeof Symbol<"u"&&t[Symbol.iterator]||t["@@iterator"];if(r!=null){var n,i,a,s,l=[],u=!0,h=!1;try{if(a=(r=r.call(t)).next,e===0){if(Object(r)!==r)return;u=!1}else for(;!(u=(n=a.call(r)).done)&&(l.push(n.value),l.length!==e);u=!0);}catch(f){h=!0,i=f}finally{try{if(!u&&r.return!=null&&(s=r.return(),Object(s)!==s))return}finally{if(h)throw i}}return l}}function E$e(){throw new TypeError(`Invalid attempt to destructure non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function S$e(){throw new TypeError(`Invalid attempt to spread non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function _i(t,e){return x$e(t)||k$e(t,e)||cI(t,e)||E$e()}function jk(t){return b$e(t)||w$e(t)||cI(t)||S$e()}function C$e(t,e){if(typeof t!="object"||!t)return t;var r=t[Symbol.toPrimitive];if(r!==void 0){var n=r.call(t,e);if(typeof n!="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}function uue(t){var e=C$e(t,"string");return typeof e=="symbol"?e:e+""}function $i(t){"@babel/helpers - typeof";return $i=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},$i(t)}function cI(t,e){if(t){if(typeof t=="string")return UM(t,e);var r={}.toString.call(t).slice(8,-1);return r==="Object"&&t.constructor&&(r=t.constructor.name),r==="Map"||r==="Set"?Array.from(t):r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?UM(t,e):void 0}}function yx(t){return t&&t.__esModule&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t}function vx(){if(Boe)return dN;Boe=1;function t(e){var r=typeof e;return e!=null&&(r=="object"||r=="function")}return o(t,"isObject"),dN=t,dN}function j$e(){if(Foe)return pN;Foe=1;var t=typeof Sk=="object"&&Sk&&Sk.Object===Object&&Sk;return pN=t,pN}function uE(){if($oe)return mN;$oe=1;var t=j$e(),e=typeof self=="object"&&self&&self.Object===Object&&self,r=t||e||Function("return this")();return mN=r,mN}function K$e(){if(zoe)return gN;zoe=1;var t=uE(),e=o(function(){return t.Date.now()},"now");return gN=e,gN}function Q$e(){if(Goe)return yN;Goe=1;var t=/\s/;function e(r){for(var n=r.length;n--&&t.test(r.charAt(n)););return n}return o(e,"trimmedEndIndex"),yN=e,yN}function Z$e(){if(Voe)return vN;Voe=1;var t=Q$e(),e=/^\s+/;function r(n){return n&&n.slice(0,t(n)+1).replace(e,"")}return o(r,"baseTrim"),vN=r,vN}function fI(){if(Uoe)return xN;Uoe=1;var t=uE(),e=t.Symbol;return xN=e,xN}function J$e(){if(Hoe)return bN;Hoe=1;var t=fI(),e=Object.prototype,r=e.hasOwnProperty,n=e.toString,i=t?t.toStringTag:void 0;function a(s){var l=r.call(s,i),u=s[i];try{s[i]=void 0;var h=!0}catch{}var f=n.call(s);return h&&(l?s[i]=u:delete s[i]),f}return o(a,"getRawTag"),bN=a,bN}function eze(){if(qoe)return TN;qoe=1;var t=Object.prototype,e=t.toString;function r(n){return e.call(n)}return o(r,"objectToString"),TN=r,TN}function xue(){if(Woe)return wN;Woe=1;var t=fI(),e=J$e(),r=eze(),n="[object Null]",i="[object Undefined]",a=t?t.toStringTag:void 0;function s(l){return l==null?l===void 0?i:n:a&&a in Object(l)?e(l):r(l)}return o(s,"baseGetTag"),wN=s,wN}function tze(){if(Yoe)return kN;Yoe=1;function t(e){return e!=null&&typeof e=="object"}return o(t,"isObjectLike"),kN=t,kN}function xx(){if(Xoe)return EN;Xoe=1;var t=xue(),e=tze(),r="[object Symbol]";function n(i){return typeof i=="symbol"||e(i)&&t(i)==r}return o(n,"isSymbol"),EN=n,EN}function rze(){if(joe)return SN;joe=1;var t=Z$e(),e=vx(),r=xx(),n=NaN,i=/^[-+]0x[0-9a-f]+$/i,a=/^0b[01]+$/i,s=/^0o[0-7]+$/i,l=parseInt;function u(h){if(typeof h=="number")return h;if(r(h))return n;if(e(h)){var f=typeof h.valueOf=="function"?h.valueOf():h;h=e(f)?f+"":f}if(typeof h!="string")return h===0?h:+h;h=t(h);var d=a.test(h);return d||s.test(h)?l(h.slice(2),d?2:8):i.test(h)?n:+h}return o(u,"toNumber"),SN=u,SN}function nze(){if(Koe)return CN;Koe=1;var t=vx(),e=K$e(),r=rze(),n="Expected a function",i=Math.max,a=Math.min;function s(l,u,h){var f,d,p,m,g,y,v=0,x=!1,b=!1,T=!0;if(typeof l!="function")throw new TypeError(n);u=r(u)||0,t(h)&&(x=!!h.leading,b="maxWait"in h,p=b?i(r(h.maxWait)||0,u):p,T="trailing"in h?!!h.trailing:T);function S(_){var D=f,O=d;return f=d=void 0,v=_,m=l.apply(O,D),m}o(S,"invokeFunc");function w(_){return v=_,g=setTimeout(A,u),x?S(_):m}o(w,"leadingEdge");function k(_){var D=_-y,O=_-v,N=u-D;return b?a(N,p-O):N}o(k,"remainingWait");function C(_){var D=_-y,O=_-v;return y===void 0||D>=u||D<0||b&&O>=p}o(C,"shouldInvoke");function A(){var _=e();if(C(_))return L(_);g=setTimeout(A,k(_))}o(A,"timerExpired");function L(_){return g=void 0,T&&f?S(_):(f=d=void 0,m)}o(L,"trailingEdge");function I(){g!==void 0&&clearTimeout(g),v=0,f=y=d=g=void 0}o(I,"cancel");function R(){return g===void 0?m:L(e())}o(R,"flush");function E(){var _=e(),D=C(_);if(f=arguments,d=this,y=_,D){if(g===void 0)return w(y);if(b)return clearTimeout(g),g=setTimeout(A,u),S(y)}return g===void 0&&(g=setTimeout(A,u)),m}return o(E,"debounced"),E.cancel=I,E.flush=R,E}return o(s,"debounce"),CN=s,CN}function lze(t,e,r,n,i){var a=i*Math.PI/180,s=Math.cos(a)*(t-r)-Math.sin(a)*(e-n)+r,l=Math.sin(a)*(t-r)+Math.cos(a)*(e-n)+n;return{x:s,y:l}}function uze(t,e,r){if(r===0)return t;var n=(e.x1+e.x2)/2,i=(e.y1+e.y2)/2,a=e.w/e.h,s=1/a,l=lze(t.x,t.y,n,i,r),u=cze(l.x,l.y,n,i,a,s);return{x:u.x,y:u.y}}function Tze(){return tle||(tle=1,(function(t,e){(function(){var r,n,i,a,s,l,u,h,f,d,p,m,g,y,v;i=Math.floor,d=Math.min,n=o(function(x,b){return xb?1:0},"defaultCmp"),f=o(function(x,b,T,S,w){var k;if(T==null&&(T=0),w==null&&(w=n),T<0)throw new Error("lo must be non-negative");for(S==null&&(S=x.length);TI;0<=I?L++:L--)A.push(L);return A}).apply(this).reverse(),C=[],S=0,w=k.length;SR;0<=R?++A:--A)E.push(s(x,T));return E},"nsmallest"),y=o(function(x,b,T,S){var w,k,C;for(S==null&&(S=n),w=x[T];T>b;){if(C=T-1>>1,k=x[C],S(w,k)<0){x[T]=k,T=C;continue}break}return x[T]=w},"_siftdown"),v=o(function(x,b,T){var S,w,k,C,A;for(T==null&&(T=n),w=x.length,A=b,k=x[b],S=2*b+1;S-1}return o(e,"listCacheHas"),tM=e,tM}function pVe(){if(Vle)return rM;Vle=1;var t=gE();function e(r,n){var i=this.__data__,a=t(i,r);return a<0?(++this.size,i.push([r,n])):i[a][1]=n,this}return o(e,"listCacheSet"),rM=e,rM}function mVe(){if(Ule)return nM;Ule=1;var t=uVe(),e=hVe(),r=fVe(),n=dVe(),i=pVe();function a(s){var l=-1,u=s==null?0:s.length;for(this.clear();++l-1&&n%1==0&&n0;){var f=i.shift();e(f),a.add(f.id()),l&&n(i,a,f)}return t}function Kue(t,e,r){if(r.isParent())for(var n=r._private.children,i=0;i0&&arguments[0]!==void 0?arguments[0]:SUe,e=arguments.length>1?arguments[1]:void 0,r=0;r0?E=D:R=D;while(Math.abs(_)>s&&++O=a?b(I,O):N===0?O:S(I,R,R+h)}o(w,"getTForX");var k=!1;function C(){k=!0,(t!==e||r!==n)&&T()}o(C,"precompute");var A=o(function(R){return k||C(),t===e&&r===n?R:R===0?0:R===1?1:v(w(R),e,n)},"f");A.getControlPoints=function(){return[{x:t,y:e},{x:r,y:n}]};var L="generateBezier("+[t,e,r,n]+")";return A.toString=function(){return L},A}function Nce(t,e,r,n,i){if(n===1||e===r)return r;var a=i(e,r,n);return t==null||((t.roundValue||t.color)&&(a=Math.round(a)),t.min!==void 0&&(a=Math.max(a,t.min)),t.max!==void 0&&(a=Math.min(a,t.max))),a}function Mce(t,e){return t.pfValue!=null||t.value!=null?t.pfValue!=null&&(e==null||e.type.units!=="%")?t.pfValue:t.value:t}function jm(t,e,r,n,i){var a=i!=null?i.type:null;r<0?r=0:r>1&&(r=1);var s=Mce(t,i),l=Mce(e,i);if(At(s)&&At(l))return Nce(a,s,l,r,n);if(An(s)&&An(l)){for(var u=[],h=0;h0?(m==="spring"&&g.push(s.duration),s.easingImpl=Uk[m].apply(null,g)):s.easingImpl=Uk[m]}var y=s.easingImpl,v;if(s.duration===0?v=1:v=(r-u)/s.duration,s.applying&&(v=s.progress),v<0?v=0:v>1&&(v=1),s.delay==null){var x=s.startPosition,b=s.position;if(b&&i&&!t.locked()){var T={};j2(x.x,b.x)&&(T.x=jm(x.x,b.x,v,y)),j2(x.y,b.y)&&(T.y=jm(x.y,b.y,v,y)),t.position(T)}var S=s.startPan,w=s.pan,k=a.pan,C=w!=null&&n;C&&(j2(S.x,w.x)&&(k.x=jm(S.x,w.x,v,y)),j2(S.y,w.y)&&(k.y=jm(S.y,w.y,v,y)),t.emit("pan"));var A=s.startZoom,L=s.zoom,I=L!=null&&n;I&&(j2(A,L)&&(a.zoom=lx(a.minZoom,jm(A,L,v,y),a.maxZoom)),t.emit("zoom")),(C||I)&&t.emit("viewport");var R=s.style;if(R&&R.length>0&&i){for(var E=0;E=0;C--){var A=k[C];A()}k.splice(0,k.length)},"callbacks"),b=m.length-1;b>=0;b--){var T=m[b],S=T._private;if(S.stopped){m.splice(b,1),S.hooked=!1,S.playing=!1,S.started=!1,x(S.frames);continue}!S.playing&&!S.applying||(S.playing&&S.applying&&(S.applying=!1),S.started||$Ue(f,T,t),FUe(f,T,t,d),S.applying&&(S.applying=!1),x(S.frames),S.step!=null&&S.step(t),T.completed()&&(m.splice(b,1),S.hooked=!1,S.playing=!1,S.started=!1,x(S.completes)),y=!0)}return!d&&m.length===0&&g.length===0&&n.push(f),y}o(i,"stepOne");for(var a=!1,s=0;s0?e.notify("draw",r):e.notify("draw")),r.unmerge(n),e.emit("step")}function phe(t){this.options=ir({},YUe,XUe,t)}function mhe(t){this.options=ir({},jUe,t)}function ghe(t){this.options=ir({},KUe,t)}function EE(t){this.options=ir({},QUe,t),this.options.layout=this;var e=this.options.eles.nodes(),r=this.options.eles.edges(),n=r.filter(function(i){var a=i.source().data("id"),s=i.target().data("id"),l=e.some(function(h){return h.data("id")===a}),u=e.some(function(h){return h.data("id")===s});return!l||!u});this.options.eles=this.options.eles.not(n)}function bhe(t){this.options=ir({},fHe,t)}function _I(t){this.options=ir({},dHe,t)}function The(t){this.options=ir({},pHe,t)}function whe(t){this.options=ir({},mHe,t)}function khe(t){this.options=t,this.notifications=0}function Che(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 LI(t,e,r,n){var i=arguments.length>4&&arguments[4]!==void 0?arguments[4]:!0;return n===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}:(vHe(t,e,r,n,i),{cx:eI,cy:tI,radius:gp,startX:Ehe,startY:She,stopX:rI,stopY:nI,startAngle:Ic.ang+Math.PI/2*vp,endAngle:Yo.ang-Math.PI/2*vp,counterClockwise:Wk})}function Ahe(t){var e=[];if(t!=null){for(var r=0;r5&&arguments[5]!==void 0?arguments[5]:5,s=Math.min(a,n/2,i/2);t.beginPath(),t.moveTo(e+s,r),t.lineTo(e+n-s,r),t.quadraticCurveTo(e+n,r,e+n,r+s),t.lineTo(e+n,r+i-s),t.quadraticCurveTo(e+n,r+i,e+n-s,r+i),t.lineTo(e+s,r+i),t.quadraticCurveTo(e,r+i,e,r+i-s),t.lineTo(e,r+s),t.quadraticCurveTo(e,r,e+s,r),t.closePath()}function eue(t,e,r){var n=t.createShader(e);if(t.shaderSource(n,r),t.compileShader(n),!t.getShaderParameter(n,t.COMPILE_STATUS))throw new Error(t.getShaderInfoLog(n));return n}function oqe(t,e,r){var n=eue(t,t.VERTEX_SHADER,e),i=eue(t,t.FRAGMENT_SHADER,r),a=t.createProgram();if(t.attachShader(a,n),t.attachShader(a,i),t.linkProgram(a),!t.getProgramParameter(a,t.LINK_STATUS))throw new Error("Could not initialize shaders");return a}function lqe(t,e,r){r===void 0&&(r=e);var n=t.makeOffscreenCanvas(e,r),i=n.context=n.getContext("2d");return n.clear=function(){return i.clearRect(0,0,n.width,n.height)},n.clear(),n}function MI(t){var e=t.pixelRatio,r=t.cy.zoom(),n=t.cy.pan();return{zoom:r*e,pan:{x:n.x*e,y:n.y*e}}}function cqe(t){var e=t.pixelRatio,r=t.cy.zoom();return r*e}function uqe(t,e,r,n,i){var a=n*r+e.x,s=i*r+e.y;return s=Math.round(t.canvasHeight-s),[a,s]}function hqe(t){return t.pstyle("background-fill").value!=="solid"||t.pstyle("background-image").strValue!=="none"?!1:t.pstyle("border-width").value===0||t.pstyle("border-opacity").value===0?!0:t.pstyle("border-style").value==="solid"}function fqe(t,e){if(t.length!==e.length)return!1;for(var r=0;r>0&255)/255,r[1]=(t>>8&255)/255,r[2]=(t>>16&255)/255,r[3]=(t>>24&255)/255,r}function dqe(t){return t[0]+(t[1]<<8)+(t[2]<<16)+(t[3]<<24)}function pqe(t,e){var r=t.createTexture();return r.buffer=function(n){t.bindTexture(t.TEXTURE_2D,r),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_S,t.CLAMP_TO_EDGE),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_T,t.CLAMP_TO_EDGE),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MAG_FILTER,t.LINEAR),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MIN_FILTER,t.LINEAR_MIPMAP_NEAREST),t.pixelStorei(t.UNPACK_PREMULTIPLY_ALPHA_WEBGL,!0),t.texImage2D(t.TEXTURE_2D,0,t.RGBA,t.RGBA,t.UNSIGNED_BYTE,n),t.generateMipmap(t.TEXTURE_2D),t.bindTexture(t.TEXTURE_2D,null)},r.deleteTexture=function(){t.deleteTexture(r)},r}function zhe(t,e){switch(e){case"float":return[1,t.FLOAT,4];case"vec2":return[2,t.FLOAT,4];case"vec3":return[3,t.FLOAT,4];case"vec4":return[4,t.FLOAT,4];case"int":return[1,t.INT,4];case"ivec2":return[2,t.INT,4]}}function Ghe(t,e,r){switch(e){case t.FLOAT:return new Float32Array(r);case t.INT:return new Int32Array(r)}}function mqe(t,e,r,n,i,a){switch(e){case t.FLOAT:return new Float32Array(r.buffer,a*n,i);case t.INT:return new Int32Array(r.buffer,a*n,i)}}function gqe(t,e,r,n){var i=zhe(t,e),a=_i(i,2),s=a[0],l=a[1],u=Ghe(t,l,n),h=t.createBuffer();return t.bindBuffer(t.ARRAY_BUFFER,h),t.bufferData(t.ARRAY_BUFFER,u,t.STATIC_DRAW),l===t.FLOAT?t.vertexAttribPointer(r,s,l,!1,0,0):l===t.INT&&t.vertexAttribIPointer(r,s,l,0,0),t.enableVertexAttribArray(r),t.bindBuffer(t.ARRAY_BUFFER,null),h}function Mc(t,e,r,n){var i=zhe(t,r),a=_i(i,3),s=a[0],l=a[1],u=a[2],h=Ghe(t,l,e*s),f=s*u,d=t.createBuffer();t.bindBuffer(t.ARRAY_BUFFER,d),t.bufferData(t.ARRAY_BUFFER,e*f,t.DYNAMIC_DRAW),t.enableVertexAttribArray(n),l===t.FLOAT?t.vertexAttribPointer(n,s,l,!1,f,0):l===t.INT&&t.vertexAttribIPointer(n,s,l,f,0),t.vertexAttribDivisor(n,1),t.bindBuffer(t.ARRAY_BUFFER,null);for(var p=new Array(e),m=0;mOhe?(Mqe(t),e.call(t,a)):(Iqe(t),qhe(t,a,ix.SCREEN)))}}{var r=t.matchCanvasSize;t.matchCanvasSize=function(a){r.call(t,a),t.pickingFrameBuffer.setFramebufferAttachmentSizes(t.canvasWidth,t.canvasHeight),t.pickingFrameBuffer.needsDraw=!0}}t.findNearestElements=function(a,s,l,u){return zqe(t,a,s)};{var n=t.invalidateCachedZSortedEles;t.invalidateCachedZSortedEles=function(){n.call(t),t.pickingFrameBuffer.needsDraw=!0}}{var i=t.notify;t.notify=function(a,s){i.call(t,a,s),a==="viewport"||a==="bounds"?t.pickingFrameBuffer.needsDraw=!0:a==="background"&&t.drawing.invalidate(s,{type:"node-body"})}}}function Mqe(t){var e=t.data.contexts[t.WEBGL];e.clear(e.COLOR_BUFFER_BIT|e.DEPTH_BUFFER_BIT)}function Iqe(t){var e=o(function(n){n.save(),n.setTransform(1,0,0,1,0,0),n.clearRect(0,0,t.canvasWidth,t.canvasHeight),n.restore()},"clear");e(t.data.contexts[t.NODE]),e(t.data.contexts[t.DRAG])}function Oqe(t){var e=t.canvasWidth,r=t.canvasHeight,n=MI(t),i=n.pan,a=n.zoom,s=BM();Xk(s,s,[i.x,i.y]),aI(s,s,[a,a]);var l=BM();bqe(l,e,r);var u=BM();return xqe(u,l,s),u}function Hhe(t,e){var r=t.canvasWidth,n=t.canvasHeight,i=MI(t),a=i.pan,s=i.zoom;e.setTransform(1,0,0,1,0,0),e.clearRect(0,0,r,n),e.translate(a.x,a.y),e.scale(s,s)}function Pqe(t,e){t.drawSelectionRectangle(e,function(r){return Hhe(t,r)})}function Bqe(t){var e=t.data.contexts[t.NODE];e.save(),Hhe(t,e),e.strokeStyle="rgba(0, 0, 0, 0.3)",e.beginPath(),e.moveTo(-1e3,0),e.lineTo(1e3,0),e.stroke(),e.beginPath(),e.moveTo(0,-1e3),e.lineTo(0,1e3),e.stroke(),e.restore()}function Fqe(t){var e=o(function(i,a,s){for(var l=i.atlasManager.getAtlasCollection(a),u=t.data.contexts[t.NODE],h=l.atlases,f=0;f=0&&S.add(C)}return S}function zqe(t,e,r){var n=$qe(t,e,r),i=t.getCachedZSortedEles(),a,s,l=qs(n),u;try{for(l.s();!(u=l.n()).done;){var h=u.value,f=i[h];if(!a&&f.isNode()&&(a=f),!s&&f.isEdge()&&(s=f),a&&s)break}}catch(d){l.e(d)}finally{l.f()}return[a,s].filter(Boolean)}function VM(t,e,r){var n=t.drawing;e+=1,r.isNode()?(n.drawNode(r,e,"node-underlay"),n.drawNode(r,e,"node-body"),n.drawTexture(r,e,"label"),n.drawNode(r,e,"node-overlay")):(n.drawEdgeLine(r,e),n.drawEdgeArrow(r,e,"source"),n.drawEdgeArrow(r,e,"target"),n.drawTexture(r,e,"label"),n.drawTexture(r,e,"edge-source-label"),n.drawTexture(r,e,"edge-target-label"))}function qhe(t,e,r){var n;t.webglDebug&&(n=performance.now());var i=t.drawing,a=0;if(r.screen&&t.data.canvasNeedsRedraw[t.SELECT_BOX]&&Pqe(t,e),t.data.canvasNeedsRedraw[t.NODE]||r.picking){var s=t.data.contexts[t.WEBGL];r.screen?(s.clearColor(0,0,0,0),s.enable(s.BLEND),s.blendFunc(s.ONE,s.ONE_MINUS_SRC_ALPHA)):s.disable(s.BLEND),s.clear(s.COLOR_BUFFER_BIT|s.DEPTH_BUFFER_BIT),s.viewport(0,0,s.canvas.width,s.canvas.height);var l=Oqe(t),u=t.getCachedZSortedEles();if(a=u.length,i.startFrame(l,r),r.screen){for(var h=0;h{"use strict";o(UM,"_arrayLikeToArray");o(x$e,"_arrayWithHoles");o(b$e,"_arrayWithoutHoles");o(Af,"_classCallCheck");o(T$e,"_defineProperties");o(_f,"_createClass");o(qs,"_createForOfIteratorHelper");o(cue,"_defineProperty$1");o(w$e,"_iterableToArray");o(k$e,"_iterableToArrayLimit");o(E$e,"_nonIterableRest");o(S$e,"_nonIterableSpread");o(_i,"_slicedToArray");o(jk,"_toConsumableArray");o(C$e,"_toPrimitive");o(uue,"_toPropertyKey");o($i,"_typeof");o(cI,"_unsupportedIterableToArray");Bi=typeof window>"u"?null:window,Ooe=Bi?Bi.navigator:null;Bi&&Bi.document;A$e=$i(""),hue=$i({}),_$e=$i(function(){}),D$e=typeof HTMLElement>"u"?"undefined":$i(HTMLElement),mx=o(function(e){return e&&e.instanceString&&oi(e.instanceString)?e.instanceString():null},"instanceStr"),Jt=o(function(e){return e!=null&&$i(e)==A$e},"string"),oi=o(function(e){return e!=null&&$i(e)===_$e},"fn"),An=o(function(e){return!fo(e)&&(Array.isArray?Array.isArray(e):e!=null&&e instanceof Array)},"array"),Yr=o(function(e){return e!=null&&$i(e)===hue&&!An(e)&&e.constructor===Object},"plainObject"),L$e=o(function(e){return e!=null&&$i(e)===hue},"object"),At=o(function(e){return e!=null&&$i(e)===$i(1)&&!isNaN(e)},"number"),R$e=o(function(e){return At(e)&&Math.floor(e)===e},"integer"),Kk=o(function(e){if(D$e!=="undefined")return e!=null&&e instanceof HTMLElement},"htmlElement"),fo=o(function(e){return gx(e)||fue(e)},"elementOrCollection"),gx=o(function(e){return mx(e)==="collection"&&e._private.single},"element"),fue=o(function(e){return mx(e)==="collection"&&!e._private.single},"collection"),uI=o(function(e){return mx(e)==="core"},"core"),due=o(function(e){return mx(e)==="stylesheet"},"stylesheet"),N$e=o(function(e){return mx(e)==="event"},"event"),Tf=o(function(e){return e==null?!0:!!(e===""||e.match(/^\s+$/))},"emptyString"),M$e=o(function(e){return typeof HTMLElement>"u"?!1:e instanceof HTMLElement},"domElement"),I$e=o(function(e){return Yr(e)&&At(e.x1)&&At(e.x2)&&At(e.y1)&&At(e.y2)},"boundingBox"),O$e=o(function(e){return L$e(e)&&oi(e.then)},"promise"),P$e=o(function(){return Ooe&&Ooe.userAgent.match(/msie|trident|edge/i)},"ms"),lg=o(function(e,r){r||(r=o(function(){if(arguments.length===1)return arguments[0];if(arguments.length===0)return"undefined";for(var a=[],s=0;sr?1:0},"ascending"),U$e=o(function(e,r){return-1*mue(e,r)},"descending"),ir=Object.assign!=null?Object.assign.bind(Object):function(t){for(var e=arguments,r=1;r1&&(v-=1),v<1/6?g+(y-g)*6*v:v<1/2?y:v<2/3?g+(y-g)*(2/3-v)*6:g}o(f,"hue2rgb");var d=new RegExp("^"+$$e+"$").exec(e);if(d){if(n=parseInt(d[1]),n<0?n=(360- -1*n%360)%360:n>360&&(n=n%360),n/=360,i=parseFloat(d[2]),i<0||i>100||(i=i/100,a=parseFloat(d[3]),a<0||a>100)||(a=a/100,s=d[4],s!==void 0&&(s=parseFloat(s),s<0||s>1)))return;if(i===0)l=u=h=Math.round(a*255);else{var p=a<.5?a*(1+i):a+i-a*i,m=2*a-p;l=Math.round(255*f(m,p,n+1/3)),u=Math.round(255*f(m,p,n)),h=Math.round(255*f(m,p,n-1/3))}r=[l,u,h,s]}return r},"hsl2tuple"),W$e=o(function(e){var r,n=new RegExp("^"+B$e+"$").exec(e);if(n){r=[];for(var i=[],a=1;a<=3;a++){var s=n[a];if(s[s.length-1]==="%"&&(i[a]=!0),s=parseFloat(s),i[a]&&(s=s/100*255),s<0||s>255)return;r.push(Math.floor(s))}var l=i[1]||i[2]||i[3],u=i[1]&&i[2]&&i[3];if(l&&!u)return;var h=n[4];if(h!==void 0){if(h=parseFloat(h),h<0||h>1)return;r.push(h)}}return r},"rgb2tuple"),Y$e=o(function(e){return X$e[e.toLowerCase()]},"colorname2tuple"),gue=o(function(e){return(An(e)?e:null)||Y$e(e)||H$e(e)||W$e(e)||q$e(e)},"color2tuple"),X$e={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]},yue=o(function(e){for(var r=e.map,n=e.keys,i=n.length,a=0;a1&&arguments[1]!==void 0?arguments[1]:yp,n=r,i;i=e.next(),!i.done;)n=n*Tue+i.value|0;return n},"hashIterableInts"),ax=o(function(e){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:yp;return r*Tue+e|0},"hashInt"),sx=o(function(e){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:eg;return(r<<5)+r+e|0},"hashIntAlt"),sze=o(function(e,r){return e*2097152+r},"combineHashes"),df=o(function(e){return e[0]*2097152+e[1]},"combineHashesArray"),Ck=o(function(e,r){return[ax(e[0],r[0]),sx(e[1],r[1])]},"hashArrays"),Qoe=o(function(e,r){var n={value:0,done:!1},i=0,a=e.length,s={next:o(function(){return i=0;i--)e[i]===r&&e.splice(i,1)},"removeFromArray"),mI=o(function(e){e.splice(0,e.length)},"clearArray"),gze=o(function(e,r){for(var n=0;n"u"?"undefined":$i(Set))!==vze?Set:xze,hE=o(function(e,r){var n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0;if(e===void 0||r===void 0||!uI(e)){Kn("An element must have a core reference and parameters set");return}var i=r.group;if(i==null&&(r.data&&r.data.source!=null&&r.data.target!=null?i="edges":i="nodes"),i!=="nodes"&&i!=="edges"){Kn("An element must be of type `nodes` or `edges`; you specified `"+i+"`");return}this.length=1,this[0]=this;var a=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:i,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?i==="edges":!!r.pannable,active:!1,classes:new hg,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(a.position.x==null&&(a.position.x=0),a.position.y==null&&(a.position.y=0),r.renderedPosition){var s=r.renderedPosition,l=e.pan(),u=e.zoom();a.position={x:(s.x-l.x)/u,y:(s.y-l.y)/u}}var h=[];An(r.classes)?h=r.classes:Jt(r.classes)&&(h=r.classes.split(/\s+/));for(var f=0,d=h.length;f0;){var k=b.pop(),C=v(k),A=k.id();if(p[A]=C,C!==1/0)for(var L=k.neighborhood().intersect(g),I=0;I0)for(B.unshift(P);d[V];){var $=d[V];B.unshift($.edge),B.unshift($.node),F=$.node,V=F.id()}return l.spawn(B)},"pathTo")}},"dijkstra")},Cze={kruskal:o(function(e){e=e||function(T){return 1};for(var r=this.byGroup(),n=r.nodes,i=r.edges,a=n.length,s=new Array(a),l=n,u=o(function(S){for(var w=0;w0;){if(w(),C++,S===f){for(var A=[],L=a,I=f,R=x[I];A.unshift(L),R!=null&&A.unshift(R),L=v[I],L!=null;)I=L.id(),R=x[I];return{found:!0,distance:d[S],path:this.spawn(A),steps:C}}m[S]=!0;for(var E=T._private.edges,_=0;_R&&(g[I]=R,b[I]=L,T[I]=w),!a){var E=L*f+A;!a&&g[E]>R&&(g[E]=R,b[E]=A,T[E]=w)}}}for(var _=0;_1&&arguments[1]!==void 0?arguments[1]:s,pe=T(W),Be=[],Ye=pe;;){if(Ye==null)return r.spawn();var He=b(Ye),Le=He.edge,Ie=He.pred;if(Be.unshift(Ye[0]),Ye.same(Ve)&&Be.length>0)break;Le!=null&&Be.unshift(Le),Ye=Ie}return u.spawn(Be)},"pathTo"),k=0;k=0;f--){var d=h[f],p=d[1],m=d[2];(r[p]===l&&r[m]===u||r[p]===u&&r[m]===l)&&h.splice(f,1)}for(var g=0;gi;){var a=Math.floor(Math.random()*r.length);r=Ize(a,e,r),n--}return r},"contractUntil"),Oze={kargerStein:o(function(){var e=this,r=this.byGroup(),n=r.nodes,i=r.edges;i.unmergeBy(function(B){return B.isLoop()});var a=n.length,s=i.length,l=Math.ceil(Math.pow(Math.log(a)/Math.LN2,2)),u=Math.floor(a/Mze);if(a<2){Kn("At least 2 nodes are required for Karger-Stein algorithm");return}for(var h=[],f=0;f1&&arguments[1]!==void 0?arguments[1]:0,n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:e.length,i=1/0,a=r;a1&&arguments[1]!==void 0?arguments[1]:0,n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:e.length,i=-1/0,a=r;a1&&arguments[1]!==void 0?arguments[1]:0,n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:e.length,i=0,a=0,s=r;s1&&arguments[1]!==void 0?arguments[1]:0,n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:e.length,i=arguments.length>3&&arguments[3]!==void 0?arguments[3]:!0,a=arguments.length>4&&arguments[4]!==void 0?arguments[4]:!0,s=arguments.length>5&&arguments[5]!==void 0?arguments[5]:!0;i?e=e.slice(r,n):(n0&&e.splice(0,r));for(var l=0,u=e.length-1;u>=0;u--){var h=e[u];s?isFinite(h)||(e[u]=-1/0,l++):e.splice(u,1)}a&&e.sort(function(p,m){return p-m});var f=e.length,d=Math.floor(f/2);return f%2!==0?e[d+1+l]:(e[d-1+l]+e[d+l])/2},"median"),Gze=o(function(e){return Math.PI*e/180},"deg2rad"),Ak=o(function(e,r){return Math.atan2(r,e)-Math.PI/2},"getAngleFromDisp"),gI=Math.log2||function(t){return Math.log(t)/Math.log(2)},yI=o(function(e){return e>0?1:e<0?-1:0},"signum"),Tp=o(function(e,r){return Math.sqrt(mp(e,r))},"dist"),mp=o(function(e,r){var n=r.x-e.x,i=r.y-e.y;return n*n+i*i},"sqdist"),Vze=o(function(e){for(var r=e.length,n=0,i=0;i=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}}},"makeBoundingBox"),Hze=o(function(e){return{x1:e.x1,x2:e.x2,w:e.w,y1:e.y1,y2:e.y2,h:e.h}},"copyBoundingBox"),qze=o(function(e){e.x1=1/0,e.y1=1/0,e.x2=-1/0,e.y2=-1/0,e.w=0,e.h=0},"clearBoundingBox"),Wze=o(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},"updateBoundingBox"),Due=o(function(e,r,n){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,n),e.y2=Math.max(e.y2,n),e.h=e.y2-e.y1},"expandBoundingBoxByPoint"),$k=o(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},"expandBoundingBox"),zk=o(function(e){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:[0],n,i,a,s;if(r.length===1)n=i=a=s=r[0];else if(r.length===2)n=a=r[0],s=i=r[1];else if(r.length===4){var l=_i(r,4);n=l[0],i=l[1],a=l[2],s=l[3]}return e.x1-=s,e.x2+=i,e.y1-=n,e.y2+=a,e.w=e.x2-e.x1,e.h=e.y2-e.y1,e},"expandBoundingBoxSides"),nle=o(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},"assignBoundingBox"),vI=o(function(e,r){return!(e.x1>r.x2||r.x1>e.x2||e.x2r.y2||r.y1>e.y2)},"boundingBoxesIntersect"),yf=o(function(e,r,n){return e.x1<=r&&r<=e.x2&&e.y1<=n&&n<=e.y2},"inBoundingBox"),ile=o(function(e,r){return yf(e,r.x,r.y)},"pointInBoundingBox"),Lue=o(function(e,r){return yf(e,r.x1,r.y1)&&yf(e,r.x2,r.y2)},"boundingBoxInBoundingBox"),Yze=(LN=Math.hypot)!==null&&LN!==void 0?LN:function(t,e){return Math.sqrt(t*t+e*e)};o(Xze,"inflatePolygon");o(jze,"miterBox");Rue=o(function(e,r,n,i,a,s,l){var u=arguments.length>7&&arguments[7]!==void 0?arguments[7]:"auto",h=u==="auto"?kf(a,s):u,f=a/2,d=s/2;h=Math.min(h,f,d);var p=h!==f,m=h!==d,g;if(p){var y=n-f+h-l,v=i-d-l,x=n+f-h+l,b=v;if(g=vf(e,r,n,i,y,v,x,b,!1),g.length>0)return g}if(m){var T=n+f+l,S=i-d+h-l,w=T,k=i+d-h+l;if(g=vf(e,r,n,i,T,S,w,k,!1),g.length>0)return g}if(p){var C=n-f+h-l,A=i+d+l,L=n+f-h+l,I=A;if(g=vf(e,r,n,i,C,A,L,I,!1),g.length>0)return g}if(m){var R=n-f-l,E=i-d+h-l,_=R,D=i+d-h+l;if(g=vf(e,r,n,i,R,E,_,D,!1),g.length>0)return g}var O;{var N=n-f+h,P=i-d+h;if(O=J2(e,r,n,i,N,P,h+l),O.length>0&&O[0]<=N&&O[1]<=P)return[O[0],O[1]]}{var B=n+f-h,F=i-d+h;if(O=J2(e,r,n,i,B,F,h+l),O.length>0&&O[0]>=B&&O[1]<=F)return[O[0],O[1]]}{var V=n+f-h,$=i+d-h;if(O=J2(e,r,n,i,V,$,h+l),O.length>0&&O[0]>=V&&O[1]>=$)return[O[0],O[1]]}{var U=n-f+h,j=i+d-h;if(O=J2(e,r,n,i,U,j,h+l),O.length>0&&O[0]<=U&&O[1]>=j)return[O[0],O[1]]}return[]},"roundRectangleIntersectLine"),Kze=o(function(e,r,n,i,a,s,l){var u=l,h=Math.min(n,a),f=Math.max(n,a),d=Math.min(i,s),p=Math.max(i,s);return h-u<=e&&e<=f+u&&d-u<=r&&r<=p+u},"inLineVicinity"),Qze=o(function(e,r,n,i,a,s,l,u,h){var f={x1:Math.min(n,l,a)-h,x2:Math.max(n,l,a)+h,y1:Math.min(i,u,s)-h,y2:Math.max(i,u,s)+h};return!(ef.x2||rf.y2)},"inBezierVicinity"),Zze=o(function(e,r,n,i){n-=i;var a=r*r-4*e*n;if(a<0)return[];var s=Math.sqrt(a),l=2*e,u=(-r+s)/l,h=(-r-s)/l;return[u,h]},"solveQuadratic"),Jze=o(function(e,r,n,i,a){var s=1e-5;e===0&&(e=s),r/=e,n/=e,i/=e;var l,u,h,f,d,p,m,g;if(u=(3*n-r*r)/9,h=-(27*i)+r*(9*n-2*(r*r)),h/=54,l=u*u*u+h*h,a[1]=0,m=r/3,l>0){d=h+Math.sqrt(l),d=d<0?-Math.pow(-d,1/3):Math.pow(d,1/3),p=h-Math.sqrt(l),p=p<0?-Math.pow(-p,1/3):Math.pow(p,1/3),a[0]=-m+d+p,m+=(d+p)/2,a[4]=a[2]=-m,m=Math.sqrt(3)*(-p+d)/2,a[3]=m,a[5]=-m;return}if(a[5]=a[3]=0,l===0){g=h<0?-Math.pow(-h,1/3):Math.pow(h,1/3),a[0]=-m+2*g,a[4]=a[2]=-(g+m);return}u=-u,f=u*u*u,f=Math.acos(h/Math.sqrt(f)),g=2*Math.sqrt(u),a[0]=-m+g*Math.cos(f/3),a[2]=-m+g*Math.cos((f+2*Math.PI)/3),a[4]=-m+g*Math.cos((f+4*Math.PI)/3)},"solveCubic"),eGe=o(function(e,r,n,i,a,s,l,u){var h=1*n*n-4*n*a+2*n*l+4*a*a-4*a*l+l*l+i*i-4*i*s+2*i*u+4*s*s-4*s*u+u*u,f=9*n*a-3*n*n-3*n*l-6*a*a+3*a*l+9*i*s-3*i*i-3*i*u-6*s*s+3*s*u,d=3*n*n-6*n*a+n*l-n*e+2*a*a+2*a*e-l*e+3*i*i-6*i*s+i*u-i*r+2*s*s+2*s*r-u*r,p=1*n*a-n*n+n*e-a*e+i*s-i*i+i*r-s*r,m=[];Jze(h,f,d,p,m);for(var g=1e-7,y=[],v=0;v<6;v+=2)Math.abs(m[v+1])=0&&m[v]<=1&&y.push(m[v]);y.push(1),y.push(0);for(var x=-1,b,T,S,w=0;w=0?Sh?(e-a)*(e-a)+(r-s)*(r-s):f-p},"sqdistToFiniteLine"),Hs=o(function(e,r,n){for(var i,a,s,l,u,h=0,f=0;f=e&&e>=s||i<=e&&e<=s)u=(e-i)/(s-i)*(l-a)+a,u>r&&h++;else continue;return h%2!==0},"pointInsidePolygonPoints"),Vu=o(function(e,r,n,i,a,s,l,u,h){var f=new Array(n.length),d;u[0]!=null?(d=Math.atan(u[1]/u[0]),u[0]<0?d=d+Math.PI/2:d=-d-Math.PI/2):d=u;for(var p=Math.cos(-d),m=Math.sin(-d),g=0;g0){var v=eE(f,-h);y=Jk(v)}else y=f;return Hs(e,r,y)},"pointInsidePolygon"),rGe=o(function(e,r,n,i,a,s,l,u){for(var h=new Array(n.length*2),f=0;f=0&&v<=1&&b.push(v),x>=0&&x<=1&&b.push(x),b.length===0)return[];var T=b[0]*u[0]+e,S=b[0]*u[1]+r;if(b.length>1){if(b[0]==b[1])return[T,S];var w=b[1]*u[0]+e,k=b[1]*u[1]+r;return[T,S,w,k]}else return[T,S]},"intersectLineCircle"),RN=o(function(e,r,n){return r<=e&&e<=n||n<=e&&e<=r?e:e<=r&&r<=n||n<=r&&r<=e?r:n},"midOfThree"),vf=o(function(e,r,n,i,a,s,l,u,h){var f=e-a,d=n-e,p=l-a,m=r-s,g=i-r,y=u-s,v=p*m-y*f,x=d*m-g*f,b=y*d-p*g;if(b!==0){var T=v/b,S=x/b,w=.001,k=0-w,C=1+w;return k<=T&&T<=C&&k<=S&&S<=C?[e+T*d,r+T*g]:h?[e+T*d,r+T*g]:[]}else return v===0||x===0?RN(e,n,l)===l?[l,u]:RN(e,n,a)===a?[a,s]:RN(a,l,n)===n?[n,i]:[]:[]},"finiteLinesIntersect"),iGe=o(function(e,r,n,i,a){var s=[],l=i/2,u=a/2,h=r,f=n;s.push({x:h+l*e[0],y:f+u*e[1]});for(var d=1;d0){var y=eE(d,-u);m=Jk(y)}else m=d}else m=n;for(var v,x,b,T,S=0;S2){for(var g=[f[0],f[1]],y=Math.pow(g[0]-e,2)+Math.pow(g[1]-r,2),v=1;vf&&(f=S)},"set"),get:o(function(T){return h[T]},"get")},p=0;p0?O=D.edgesTo(_)[0]:O=_.edgesTo(D)[0];var N=i(O);_=_.id(),C[_]>C[R]+N&&(C[_]=C[R]+N,A.nodes.indexOf(_)<0?A.push(_):A.updateItem(_),k[_]=0,w[_]=[]),C[_]==C[R]+N&&(k[_]=k[_]+k[R],w[_].push(R))}else for(var P=0;P0;){for(var $=S.pop(),U=0;U0&&l.push(n[u]);l.length!==0&&a.push(i.collection(l))}return a},"assign"),xGe=o(function(e,r){for(var n=0;n5&&arguments[5]!==void 0?arguments[5]:wGe,l=i,u,h,f=0;f=2?W2(e,r,n,0,cle,kGe):W2(e,r,n,0,lle)},"euclidean"),squaredEuclidean:o(function(e,r,n){return W2(e,r,n,0,cle)},"squaredEuclidean"),manhattan:o(function(e,r,n){return W2(e,r,n,0,lle)},"manhattan"),max:o(function(e,r,n){return W2(e,r,n,-1/0,EGe)},"max")};cg["squared-euclidean"]=cg.squaredEuclidean;cg.squaredeuclidean=cg.squaredEuclidean;o(dE,"clusteringDistance");SGe=ba({k:2,m:2,sensitivityThreshold:1e-4,distance:"euclidean",maxIterations:10,attributes:[],testMode:!1,testCentroids:null}),bI=o(function(e){return SGe(e)},"setOptions"),tE=o(function(e,r,n,i,a){var s=a!=="kMedoids",l=s?function(d){return n[d]}:function(d){return i[d](n)},u=o(function(p){return i[p](r)},"getQ"),h=n,f=r;return dE(e,i.length,l,u,h,f)},"getDist"),MN=o(function(e,r,n){for(var i=n.length,a=new Array(i),s=new Array(i),l=new Array(r),u=null,h=0;hn)return!1}return!0},"haveMatricesConverged"),_Ge=o(function(e,r,n){for(var i=0;il&&(l=r[h][f],u=f);a[u].push(e[h])}for(var d=0;d=a.threshold||a.mode==="dendrogram"&&e.length===1)return!1;var g=r[s],y=r[i[s]],v;a.mode==="dendrogram"?v={left:g,right:y,key:g.key}:v={value:g.value.concat(y.value),key:g.key},e[g.index]=v,e.splice(y.index,1),r[g.key]=v;for(var x=0;xn[y.key][b.key]&&(u=n[y.key][b.key])):a.linkage==="max"?(u=n[g.key][b.key],n[g.key][b.key]0&&i.push(a);return i},"findExemplars"),mle=o(function(e,r,n){for(var i=[],a=0;al&&(s=h,l=r[a*e+h])}s>0&&i.push(s)}for(var f=0;fh&&(u=f,h=d)}n[a]=s[u]}return i=mle(e,r,n),i},"assign"),gle=o(function(e){for(var r=this.cy(),n=this.nodes(),i=zGe(e),a={},s=0;s=R?(E=R,R=D,_=O):D>E&&(E=D);for(var N=0;N0?1:0;C[L%i.minIterations*l+U]=j,$+=j}if($>0&&(L>=i.minIterations-1||L==i.maxIterations-1)){for(var ee=0,q=0;q1||k>1)&&(l=!0),d[T]=[],b.outgoers().forEach(function(A){A.isEdge()&&d[T].push(A.id())})}else p[T]=[void 0,b.target().id()]}):s.forEach(function(b){var T=b.id();if(b.isNode()){var S=b.degree(!0);S%2&&(u?h?l=!0:h=T:u=T),d[T]=[],b.connectedEdges().forEach(function(w){return d[T].push(w.id())})}else p[T]=[b.source().id(),b.target().id()]});var m={found:!1,trail:void 0};if(l)return m;if(h&&u)if(a){if(f&&h!=f)return m;f=h}else{if(f&&h!=f&&u!=f)return m;f||(f=h)}else f||(f=s[0].id());var g=o(function(T){for(var S=T,w=[T],k,C,A;d[S].length;)k=d[S].shift(),C=p[k][0],A=p[k][1],S!=A?(d[A]=d[A].filter(function(L){return L!=k}),S=A):!a&&S!=C&&(d[C]=d[C].filter(function(L){return L!=k}),S=C),w.unshift(k),w.unshift(S);return w},"walk"),y=[],v=[];for(v=g(f);v.length!=1;)d[v[0]].length==0?(y.unshift(s.getElementById(v.shift())),y.unshift(s.getElementById(v.shift()))):v=g(v.shift()).concat(v);y.unshift(s.getElementById(v.shift()));for(var x in d)if(d[x].length)return m;return m.found=!0,m.trail=this.spawn(y,!0),m},"hierholzer")},Dk=o(function(){var e=this,r={},n=0,i=0,a=[],s=[],l={},u=o(function(p,m){for(var g=s.length-1,y=[],v=e.spawn();s[g].x!=p||s[g].y!=m;)y.push(s.pop().edge),g--;y.push(s.pop().edge),y.forEach(function(x){var b=x.connectedNodes().intersection(e);v.merge(x),b.forEach(function(T){var S=T.id(),w=T.connectedEdges().intersection(e);v.merge(T),r[S].cutVertex?v.merge(w.filter(function(k){return k.isLoop()})):v.merge(w)})}),a.push(v)},"buildComponent"),h=o(function(p,m,g){p===g&&(i+=1),r[m]={id:n,low:n++,cutVertex:!1};var y=e.getElementById(m).connectedEdges().intersection(e);if(y.size()===0)a.push(e.spawn(e.getElementById(m)));else{var v,x,b,T;y.forEach(function(S){v=S.source().id(),x=S.target().id(),b=v===m?x:v,b!==g&&(T=S.id(),l[T]||(l[T]=!0,s.push({x:m,y:b,edge:S})),b in r?r[m].low=Math.min(r[m].low,r[b].id):(h(p,b,m),r[m].low=Math.min(r[m].low,r[b].low),r[m].id<=r[b].low&&(r[m].cutVertex=!0,u(m,b))))})}},"biconnectedSearch");e.forEach(function(d){if(d.isNode()){var p=d.id();p in r||(i=0,h(p,p),r[p].cutVertex=i>1)}});var f=Object.keys(r).filter(function(d){return r[d].cutVertex}).map(function(d){return e.getElementById(d)});return{cut:e.spawn(f),components:a}},"hopcroftTarjanBiconnected"),XGe={hopcroftTarjanBiconnected:Dk,htbc:Dk,htb:Dk,hopcroftTarjanBiconnectedComponents:Dk},Lk=o(function(){var e=this,r={},n=0,i=[],a=[],s=e.spawn(e),l=o(function(h){a.push(h),r[h]={index:n,low:n++,explored:!1};var f=e.getElementById(h).connectedEdges().intersection(e);if(f.forEach(function(y){var v=y.target().id();v!==h&&(v in r||l(v),r[v].explored||(r[h].low=Math.min(r[h].low,r[v].low)))}),r[h].index===r[h].low){for(var d=e.spawn();;){var p=a.pop();if(d.merge(e.getElementById(p)),r[p].low=r[h].index,r[p].explored=!0,p===h)break}var m=d.edgesWith(d),g=d.merge(m);i.push(g),s=s.difference(g)}},"stronglyConnectedSearch");return e.forEach(function(u){if(u.isNode()){var h=u.id();h in r||l(h)}}),{cut:s,components:i}},"tarjanStronglyConnected"),jGe={tarjanStronglyConnected:Lk,tsc:Lk,tscc:Lk,tarjanStronglyConnectedComponents:Lk},Fue={};[ox,Sze,Cze,_ze,Lze,Nze,Oze,lGe,ag,sg,WM,TGe,IGe,FGe,qGe,YGe,XGe,jGe].forEach(function(t){ir(Fue,t)});$ue=0,zue=1,Gue=2,Il=o(function(e){if(!(this instanceof Il))return new Il(e);this.id="Thenable/1.0.7",this.state=$ue,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))},"api");Il.prototype={fulfill:o(function(e){return yle(this,zue,"fulfillValue",e)},"fulfill"),reject:o(function(e){return yle(this,Gue,"rejectReason",e)},"reject"),then:o(function(e,r){var n=this,i=new Il;return n.onFulfilled.push(xle(e,i,"fulfill")),n.onRejected.push(xle(r,i,"reject")),Vue(n),i.proxy},"then")};yle=o(function(e,r,n,i){return e.state===$ue&&(e.state=r,e[n]=i,Vue(e)),e},"deliver"),Vue=o(function(e){e.state===zue?vle(e,"onFulfilled",e.fulfillValue):e.state===Gue&&vle(e,"onRejected",e.rejectReason)},"execute"),vle=o(function(e,r,n){if(e[r].length!==0){var i=e[r];e[r]=[];var a=o(function(){for(var l=0;l0},"animatedImpl")},"animated"),clearQueue:o(function(){return o(function(){var r=this,n=r.length!==void 0,i=n?r:[r],a=this._private.cy||this;if(!a.styleEnabled())return this;for(var s=0;s0&&this.spawn(i).updateStyle().emit("class"),r},"classes"),addClass:o(function(e){return this.toggleClass(e,!0)},"addClass"),hasClass:o(function(e){var r=this[0];return r!=null&&r._private.classes.has(e)},"hasClass"),toggleClass:o(function(e,r){An(e)||(e=e.match(/\S+/g)||[]);for(var n=this,i=r===void 0,a=[],s=0,l=n.length;s0&&this.spawn(a).updateStyle().emit("class"),n},"toggleClass"),removeClass:o(function(e){return this.toggleClass(e,!1)},"removeClass"),flashClass:o(function(e,r){var n=this;if(r==null)r=250;else if(r===0)return n;return n.addClass(e),setTimeout(function(){n.removeClass(e)},r),n},"flashClass")};Gk.className=Gk.classNames=Gk.classes;Wr={metaChar:"[\\!\\\"\\#\\$\\%\\&\\'\\(\\)\\*\\+\\,\\.\\/\\:\\;\\<\\=\\>\\?\\@\\[\\]\\^\\`\\{\\|\\}\\~]",comparatorOp:"=|\\!=|>|>=|<|<=|\\$=|\\^=|\\*=",boolOp:"\\?|\\!|\\^",string:`"(?:\\\\"|[^"])*"|'(?:\\\\'|[^'])*'`,number:Fi,meta:"degree|indegree|outdegree",separator:"\\s*,\\s*",descendant:"\\s+",child:"\\s+>\\s+",subject:"\\$",group:"node|edge|\\*",directedEdge:"\\s+->\\s+",undirectedEdge:"\\s+<->\\s+"};Wr.variable="(?:[\\w-.]|(?:\\\\"+Wr.metaChar+"))+";Wr.className="(?:[\\w-]|(?:\\\\"+Wr.metaChar+"))+";Wr.value=Wr.string+"|"+Wr.number;Wr.id=Wr.variable;(function(){var t,e,r;for(t=Wr.comparatorOp.split("|"),r=0;r=0)&&e!=="="&&(Wr.comparatorOp+="|\\!"+e)})();xn=o(function(){return{checks:[]}},"newQuery"),zt={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},KM=[{selector:":selected",matches:o(function(e){return e.selected()},"matches")},{selector:":unselected",matches:o(function(e){return!e.selected()},"matches")},{selector:":selectable",matches:o(function(e){return e.selectable()},"matches")},{selector:":unselectable",matches:o(function(e){return!e.selectable()},"matches")},{selector:":locked",matches:o(function(e){return e.locked()},"matches")},{selector:":unlocked",matches:o(function(e){return!e.locked()},"matches")},{selector:":visible",matches:o(function(e){return e.visible()},"matches")},{selector:":hidden",matches:o(function(e){return!e.visible()},"matches")},{selector:":transparent",matches:o(function(e){return e.transparent()},"matches")},{selector:":grabbed",matches:o(function(e){return e.grabbed()},"matches")},{selector:":free",matches:o(function(e){return!e.grabbed()},"matches")},{selector:":removed",matches:o(function(e){return e.removed()},"matches")},{selector:":inside",matches:o(function(e){return!e.removed()},"matches")},{selector:":grabbable",matches:o(function(e){return e.grabbable()},"matches")},{selector:":ungrabbable",matches:o(function(e){return!e.grabbable()},"matches")},{selector:":animated",matches:o(function(e){return e.animated()},"matches")},{selector:":unanimated",matches:o(function(e){return!e.animated()},"matches")},{selector:":parent",matches:o(function(e){return e.isParent()},"matches")},{selector:":childless",matches:o(function(e){return e.isChildless()},"matches")},{selector:":child",matches:o(function(e){return e.isChild()},"matches")},{selector:":orphan",matches:o(function(e){return e.isOrphan()},"matches")},{selector:":nonorphan",matches:o(function(e){return e.isChild()},"matches")},{selector:":compound",matches:o(function(e){return e.isNode()?e.isParent():e.source().isParent()||e.target().isParent()},"matches")},{selector:":loop",matches:o(function(e){return e.isLoop()},"matches")},{selector:":simple",matches:o(function(e){return e.isSimple()},"matches")},{selector:":active",matches:o(function(e){return e.active()},"matches")},{selector:":inactive",matches:o(function(e){return!e.active()},"matches")},{selector:":backgrounding",matches:o(function(e){return e.backgrounding()},"matches")},{selector:":nonbackgrounding",matches:o(function(e){return!e.backgrounding()},"matches")}].sort(function(t,e){return U$e(t.selector,e.selector)}),WVe=(function(){for(var t={},e,r=0;r0&&f.edgeCount>0)return hn("The selector `"+e+"` is invalid because it uses both a compound selector and an edge selector"),!1;if(f.edgeCount>1)return hn("The selector `"+e+"` is invalid because it uses multiple edge selectors"),!1;f.edgeCount===1&&hn("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},"parse"),ZVe=o(function(){if(this.toStringCache!=null)return this.toStringCache;for(var e=o(function(f){return f??""},"clean"),r=o(function(f){return Jt(f)?'"'+f+'"':e(f)},"cleanVal"),n=o(function(f){return" "+f+" "},"space"),i=o(function(f,d){var p=f.type,m=f.value;switch(p){case zt.GROUP:{var g=e(m);return g.substring(0,g.length-1)}case zt.DATA_COMPARE:{var y=f.field,v=f.operator;return"["+y+n(e(v))+r(m)+"]"}case zt.DATA_BOOL:{var x=f.operator,b=f.field;return"["+e(x)+b+"]"}case zt.DATA_EXIST:{var T=f.field;return"["+T+"]"}case zt.META_COMPARE:{var S=f.operator,w=f.field;return"[["+w+n(e(S))+r(m)+"]]"}case zt.STATE:return m;case zt.ID:return"#"+m;case zt.CLASS:return"."+m;case zt.PARENT:case zt.CHILD:return a(f.parent,d)+n(">")+a(f.child,d);case zt.ANCESTOR:case zt.DESCENDANT:return a(f.ancestor,d)+" "+a(f.descendant,d);case zt.COMPOUND_SPLIT:{var k=a(f.left,d),C=a(f.subject,d),A=a(f.right,d);return k+(k.length>0?" ":"")+C+A}case zt.TRUE:return""}},"checkToString"),a=o(function(f,d){return f.checks.reduce(function(p,m,g){return p+(d===f&&g===0?"$":"")+i(m,d)},"")},"queryToString"),s="",l=0;l1&&l=0&&(r=r.replace("!",""),d=!0),r.indexOf("@")>=0&&(r=r.replace("@",""),f=!0),(a||l||f)&&(u=!a&&!s?"":""+e,h=""+n),f&&(e=u=u.toLowerCase(),n=h=h.toLowerCase()),r){case"*=":i=u.indexOf(h)>=0;break;case"$=":i=u.indexOf(h,u.length-h.length)>=0;break;case"^=":i=u.indexOf(h)===0;break;case"=":i=e===n;break;case">":p=!0,i=e>n;break;case">=":p=!0,i=e>=n;break;case"<":p=!0,i=e1&&arguments[1]!==void 0?arguments[1]:!0;return EI(this,t,e,Kue)};o(Que,"addParent");ug.forEachUp=function(t){var e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0;return EI(this,t,e,Que)};o(sUe,"addParentAndChildren");ug.forEachUpAndDown=function(t){var e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0;return EI(this,t,e,sUe)};ug.ancestors=ug.parents;ux=Zue={data:un.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:un.removeData({field:"data",event:"data",triggerFnName:"trigger",triggerEvent:!0,immutableKeys:{id:!0,source:!0,target:!0,parent:!0},updateStyle:!0}),scratch:un.data({field:"scratch",bindingEvent:"scratch",allowBinding:!0,allowSetting:!0,settingEvent:"scratch",settingTriggersEvent:!0,triggerFnName:"trigger",allowGetting:!0,updateStyle:!0}),removeScratch:un.removeData({field:"scratch",event:"scratch",triggerFnName:"trigger",triggerEvent:!0,updateStyle:!0}),rscratch:un.data({field:"rscratch",allowBinding:!1,allowSetting:!0,settingTriggersEvent:!1,allowGetting:!0}),removeRscratch:un.removeData({field:"rscratch",triggerEvent:!1}),id:o(function(){var e=this[0];if(e)return e._private.data.id},"id")};ux.attr=ux.data;ux.removeAttr=ux.removeData;oUe=Zue,vE={};o(RM,"defineDegreeFunction");ir(vE,{degree:RM(function(t,e){return e.source().same(e.target())?2:1}),indegree:RM(function(t,e){return e.target().same(t)?1:0}),outdegree:RM(function(t,e){return e.source().same(t)?1:0})});o(Xm,"defineDegreeBoundsFunction");ir(vE,{minDegree:Xm("degree",function(t,e){return te}),minIndegree:Xm("indegree",function(t,e){return te}),minOutdegree:Xm("outdegree",function(t,e){return te})});ir(vE,{totalDegree:o(function(e){for(var r=0,n=this.nodes(),i=0;i0,p=d;d&&(f=f[0]);var m=p?f.position():{x:0,y:0};r!==void 0?h.position(e,r+m[e]):a!==void 0&&h.position({x:a.x+m.x,y:a.y+m.y})}else{var g=n.position(),y=l?n.parent():null,v=y&&y.length>0,x=v;v&&(y=y[0]);var b=x?y.position():{x:0,y:0};return a={x:g.x-b.x,y:g.y-b.y},e===void 0?a:a[e]}else if(!s)return;return this},"relativePosition")};Ml.modelPosition=Ml.point=Ml.position;Ml.modelPositions=Ml.points=Ml.positions;Ml.renderedPoint=Ml.renderedPosition;Ml.relativePoint=Ml.relativePosition;lUe=Jue;og=Df={};Df.renderedBoundingBox=function(t){var e=this.boundingBox(t),r=this.cy(),n=r.zoom(),i=r.pan(),a=e.x1*n+i.x,s=e.x2*n+i.x,l=e.y1*n+i.y,u=e.y2*n+i.y;return{x1:a,x2:s,y1:l,y2:u,w:s-a,h:u-l}};Df.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 n=r._private;n.compoundBoundsClean=!1,n.bbCache=null,t||r.emitAndNotify("bounds")}}),this)};Df.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(s){if(!s.isParent())return;var l=s._private,u=s.children(),h=s.pstyle("compound-sizing-wrt-labels").value==="include",f={width:{val:s.pstyle("min-width").pfValue,left:s.pstyle("min-width-bias-left"),right:s.pstyle("min-width-bias-right")},height:{val:s.pstyle("min-height").pfValue,top:s.pstyle("min-height-bias-top"),bottom:s.pstyle("min-height-bias-bottom")}},d=u.boundingBox({includeLabels:h,includeOverlays:!1,useCache:!1}),p=l.position;(d.w===0||d.h===0)&&(d={w:s.pstyle("width").pfValue,h:s.pstyle("height").pfValue},d.x1=p.x-d.w/2,d.x2=p.x+d.w/2,d.y1=p.y-d.h/2,d.y2=p.y+d.h/2);function m(L,I,R){var E=0,_=0,D=I+R;return L>0&&D>0&&(E=I/D*L,_=R/D*L),{biasDiff:E,biasComplementDiff:_}}o(m,"computeBiasValues");function g(L,I,R,E){if(R.units==="%")switch(E){case"width":return L>0?R.pfValue*L:0;case"height":return I>0?R.pfValue*I:0;case"average":return L>0&&I>0?R.pfValue*(L+I)/2:0;case"min":return L>0&&I>0?L>I?R.pfValue*I:R.pfValue*L:0;case"max":return L>0&&I>0?L>I?R.pfValue*L:R.pfValue*I:0;default:return 0}else return R.units==="px"?R.pfValue:0}o(g,"computePaddingValues");var y=f.width.left.value;f.width.left.units==="px"&&f.width.val>0&&(y=y*100/f.width.val);var v=f.width.right.value;f.width.right.units==="px"&&f.width.val>0&&(v=v*100/f.width.val);var x=f.height.top.value;f.height.top.units==="px"&&f.height.val>0&&(x=x*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 T=m(f.width.val-d.w,y,v),S=T.biasDiff,w=T.biasComplementDiff,k=m(f.height.val-d.h,x,b),C=k.biasDiff,A=k.biasComplementDiff;l.autoPadding=g(d.w,d.h,s.pstyle("padding"),s.pstyle("padding-relative-to").value),l.autoWidth=Math.max(d.w,f.width.val),p.x=(-S+d.x1+d.x2+w)/2,l.autoHeight=Math.max(d.h,f.height.val),p.y=(-C+d.y1+d.y2+A)/2}o(r,"update");for(var n=0;ne.x2?i:e.x2,e.y1=ne.y2?a:e.y2,e.w=e.x2-e.x1,e.h=e.y2-e.y1)},"updateBounds"),mf=o(function(e,r){return r==null?e:Nl(e,r.x1,r.y1,r.x2,r.y2)},"updateBoundsFromBox"),Y2=o(function(e,r,n){return Us(e,r,n)},"prefixedProperty"),Rk=o(function(e,r,n){if(!r.cy().headless()){var i=r._private,a=i.rstyle,s=a.arrowWidth/2,l=r.pstyle(n+"-arrow-shape").value,u,h;if(l!=="none"){n==="source"?(u=a.srcX,h=a.srcY):n==="target"?(u=a.tgtX,h=a.tgtY):(u=a.midX,h=a.midY);var f=i.arrowBounds=i.arrowBounds||{},d=f[n]=f[n]||{};d.x1=u-s,d.y1=h-s,d.x2=u+s,d.y2=h+s,d.w=d.x2-d.x1,d.h=d.y2-d.y1,$k(d,1),Nl(e,d.x1,d.y1,d.x2,d.y2)}}},"updateBoundsFromArrow"),NM=o(function(e,r,n){if(!r.cy().headless()){var i;n?i=n+"-":i="";var a=r._private,s=a.rstyle,l=r.pstyle(i+"label").strValue;if(l){var u=r.pstyle("text-halign"),h=r.pstyle("text-valign"),f=Y2(s,"labelWidth",n),d=Y2(s,"labelHeight",n),p=Y2(s,"labelX",n),m=Y2(s,"labelY",n),g=r.pstyle(i+"text-margin-x").pfValue,y=r.pstyle(i+"text-margin-y").pfValue,v=r.isEdge(),x=r.pstyle(i+"text-rotation"),b=r.pstyle("text-outline-width").pfValue,T=r.pstyle("text-border-width").pfValue,S=T/2,w=r.pstyle("text-background-padding").pfValue,k=2,C=d,A=f,L=A/2,I=C/2,R,E,_,D;if(v)R=p-L,E=p+L,_=m-I,D=m+I;else{switch(u.value){case"left":R=p-A,E=p;break;case"center":R=p-L,E=p+L;break;case"right":R=p,E=p+A;break}switch(h.value){case"top":_=m-C,D=m;break;case"center":_=m-I,D=m+I;break;case"bottom":_=m,D=m+C;break}}var O=g-Math.max(b,S)-w-k,N=g+Math.max(b,S)+w+k,P=y-Math.max(b,S)-w-k,B=y+Math.max(b,S)+w+k;R+=O,E+=N,_+=P,D+=B;var F=n||"main",V=a.labelBounds,$=V[F]=V[F]||{};$.x1=R,$.y1=_,$.x2=E,$.y2=D,$.w=E-R,$.h=D-_,$.leftPad=O,$.rightPad=N,$.topPad=P,$.botPad=B;var U=v&&x.strValue==="autorotate",j=x.pfValue!=null&&x.pfValue!==0;if(U||j){var ee=U?Y2(a.rstyle,"labelAngle",n):x.pfValue,q=Math.cos(ee),oe=Math.sin(ee),Q=(R+E)/2,ue=(_+D)/2;if(!v){switch(u.value){case"left":Q=E;break;case"right":Q=R;break}switch(h.value){case"top":ue=D;break;case"bottom":ue=_;break}}var te=o(function(Te,W){return Te=Te-Q,W=W-ue,{x:Te*q-W*oe+Q,y:Te*oe+W*q+ue}},"rotate"),re=te(R,_),J=te(R,D),K=te(E,_),ae=te(E,D);R=Math.min(re.x,J.x,K.x,ae.x),E=Math.max(re.x,J.x,K.x,ae.x),_=Math.min(re.y,J.y,K.y,ae.y),D=Math.max(re.y,J.y,K.y,ae.y)}var Z=F+"Rot",de=V[Z]=V[Z]||{};de.x1=R,de.y1=_,de.x2=E,de.y2=D,de.w=E-R,de.h=D-_,Nl(e,R,_,E,D),Nl(a.labelBounds.all,R,_,E,D)}return e}},"updateBoundsFromLabel"),vce=o(function(e,r){if(!r.cy().headless()){var n=r.pstyle("outline-opacity").value,i=r.pstyle("outline-width").value,a=r.pstyle("outline-offset").value,s=i+a;the(e,r,n,s,"outside",s/2)}},"updateBoundsFromOutline"),the=o(function(e,r,n,i,a,s){if(!(n===0||i<=0||a==="inside")){var l=r.cy(),u=r.pstyle("shape").value,h=l.renderer().nodeShapes[u],f=r.position(),d=f.x,p=f.y,m=r.width(),g=r.height();if(h.hasMiterBounds){a==="center"&&(i/=2);var y=h.miterBounds(d,p,m,g,i);mf(e,y)}else s!=null&&s>0&&zk(e,[s,s,s,s])}},"updateBoundsFromMiter"),cUe=o(function(e,r){if(!r.cy().headless()){var n=r.pstyle("border-opacity").value,i=r.pstyle("border-width").pfValue,a=r.pstyle("border-position").value;the(e,r,n,i,a)}},"updateBoundsFromMiterBorder"),uUe=o(function(e,r){var n=e._private.cy,i=n.styleEnabled(),a=n.headless(),s=cs(),l=e._private,u=e.isNode(),h=e.isEdge(),f,d,p,m,g,y,v=l.rstyle,x=u&&i?e.pstyle("bounds-expansion").pfValue:[0],b=o(function(ne){return ne.pstyle("display").value!=="none"},"isDisplayed"),T=!i||b(e)&&(!h||b(e.source())&&b(e.target()));if(T){var S=0,w=0;i&&r.includeOverlays&&(S=e.pstyle("overlay-opacity").value,S!==0&&(w=e.pstyle("overlay-padding").value));var k=0,C=0;i&&r.includeUnderlays&&(k=e.pstyle("underlay-opacity").value,k!==0&&(C=e.pstyle("underlay-padding").value));var A=Math.max(w,C),L=0,I=0;if(i&&(L=e.pstyle("width").pfValue,I=L/2),u&&r.includeNodes){var R=e.position();g=R.x,y=R.y;var E=e.outerWidth(),_=E/2,D=e.outerHeight(),O=D/2;f=g-_,d=g+_,p=y-O,m=y+O,Nl(s,f,p,d,m),i&&vce(s,e),i&&r.includeOutlines&&!a&&vce(s,e),i&&cUe(s,e)}else if(h&&r.includeEdges)if(i&&!a){var N=e.pstyle("curve-style").strValue;if(f=Math.min(v.srcX,v.midX,v.tgtX),d=Math.max(v.srcX,v.midX,v.tgtX),p=Math.min(v.srcY,v.midY,v.tgtY),m=Math.max(v.srcY,v.midY,v.tgtY),f-=I,d+=I,p-=I,m+=I,Nl(s,f,p,d,m),N==="haystack"){var P=v.haystackPts;if(P&&P.length===2){if(f=P[0].x,p=P[0].y,d=P[1].x,m=P[1].y,f>d){var B=f;f=d,d=B}if(p>m){var F=p;p=m,m=F}Nl(s,f-I,p-I,d+I,m+I)}}else if(N==="bezier"||N==="unbundled-bezier"||gf(N,"segments")||gf(N,"taxi")){var V;switch(N){case"bezier":case"unbundled-bezier":V=v.bezierPts;break;case"segments":case"taxi":case"round-segments":case"round-taxi":V=v.linePts;break}if(V!=null)for(var $=0;$d){var Q=f;f=d,d=Q}if(p>m){var ue=p;p=m,m=ue}f-=I,d+=I,p-=I,m+=I,Nl(s,f,p,d,m)}if(i&&r.includeEdges&&h&&(Rk(s,e,"mid-source"),Rk(s,e,"mid-target"),Rk(s,e,"source"),Rk(s,e,"target")),i){var te=e.pstyle("ghost").value==="yes";if(te){var re=e.pstyle("ghost-offset-x").pfValue,J=e.pstyle("ghost-offset-y").pfValue;Nl(s,s.x1+re,s.y1+J,s.x2+re,s.y2+J)}}var K=l.bodyBounds=l.bodyBounds||{};nle(K,s),zk(K,x),$k(K,1),i&&(f=s.x1,d=s.x2,p=s.y1,m=s.y2,Nl(s,f-A,p-A,d+A,m+A));var ae=l.overlayBounds=l.overlayBounds||{};nle(ae,s),zk(ae,x),$k(ae,1);var Z=l.labelBounds=l.labelBounds||{};Z.all!=null?qze(Z.all):Z.all=cs(),i&&r.includeLabels&&(r.includeMainLabels&&NM(s,e,null),h&&(r.includeSourceLabels&&NM(s,e,"source"),r.includeTargetLabels&&NM(s,e,"target")))}return s.x1=Xo(s.x1),s.y1=Xo(s.y1),s.x2=Xo(s.x2),s.y2=Xo(s.y2),s.w=Xo(s.x2-s.x1),s.h=Xo(s.y2-s.y1),s.w>0&&s.h>0&&T&&(zk(s,x),$k(s,1)),s},"boundingBoxImpl"),rhe=o(function(e){var r=0,n=o(function(s){return(s?1:0)<=0;l--)s(l);return this};Cf.removeAllListeners=function(){return this.removeListener("*")};Cf.emit=Cf.trigger=function(t,e,r){var n=this.listeners,i=n.length;return this.emitting++,An(e)||(e=[e]),CUe(this,function(a,s){r!=null&&(n=[{event:s.event,type:s.type,namespace:s.namespace,callback:r}],i=n.length);for(var l=o(function(){var f=n[u];if(f.type===s.type&&(!f.namespace||f.namespace===s.namespace||f.namespace===EUe)&&a.eventMatches(a.context,f,s)){var d=[s];e!=null&&gze(d,e),a.beforeEmit(a.context,f,s),f.conf&&f.conf.one&&(a.listeners=a.listeners.filter(function(g){return g!==f}));var p=a.callbackContext(a.context,f,s),m=f.callback.apply(p,d);a.afterEmit(a.context,f,s),m===!1&&(s.stopPropagation(),s.preventDefault())}},"_loop2"),u=0;u1&&!s){var l=this.length-1,u=this[l],h=u._private.data.id;this[l]=void 0,this[e]=u,a.set(h,{ele:u,index:e})}return this.length--,this},"unmergeAt"),unmergeOne:o(function(e){e=e[0];var r=this._private,n=e._private.data.id,i=r.map,a=i.get(n);if(!a)return this;var s=a.index;return this.unmergeAt(s),this},"unmergeOne"),unmerge:o(function(e){var r=this._private.cy;if(!e)return this;if(e&&Jt(e)){var n=e;e=r.mutableElements().filter(n)}for(var i=0;i=0;r--){var n=this[r];e(n)&&this.unmergeAt(r)}return this},"unmergeBy"),map:o(function(e,r){for(var n=[],i=this,a=0;an&&(n=u,i=l)}return{value:n,ele:i}},"max"),min:o(function(e,r){for(var n=1/0,i,a=this,s=0;s=0&&a"u"?"undefined":$i(Symbol))!=e&&$i(Symbol.iterator)!=e;r&&(rE[Symbol.iterator]=function(){var n=this,i={value:void 0,done:!1},a=0,s=this.length;return cue({next:o(function(){return a1&&arguments[1]!==void 0?arguments[1]:!0,n=this[0],i=n.cy();if(i.styleEnabled()&&n){n._private.styleDirty&&(n._private.styleDirty=!1,i.style().apply(n));var a=n._private.style[e];return a??(r?i.style().getDefaultProperty(e):null)}},"parsedStyle"),numericStyle:o(function(e){var r=this[0];if(r.cy().styleEnabled()&&r){var n=r.pstyle(e);return n.pfValue!==void 0?n.pfValue:n.value}},"numericStyle"),numericStyleUnits:o(function(e){var r=this[0];if(r.cy().styleEnabled()&&r)return r.pstyle(e).units},"numericStyleUnits"),renderedStyle:o(function(e){var r=this.cy();if(!r.styleEnabled())return this;var n=this[0];if(n)return r.style().getRenderedStyle(n,e)},"renderedStyle"),style:o(function(e,r){var n=this.cy();if(!n.styleEnabled())return this;var i=!1,a=n.style();if(Yr(e)){var s=e;a.applyBypass(this,s,i),this.emitAndNotify("style")}else if(Jt(e))if(r===void 0){var l=this[0];return l?a.getStylePropertyValue(l,e):void 0}else a.applyBypass(this,e,r,i),this.emitAndNotify("style");else if(e===void 0){var u=this[0];return u?a.getRawStyle(u):void 0}return this},"style"),removeStyle:o(function(e){var r=this.cy();if(!r.styleEnabled())return this;var n=!1,i=r.style(),a=this;if(e===void 0)for(var s=0;s0&&e.push(f[0]),e.push(l[0])}return this.spawn(e,!0).filter(t)},"neighborhood"),closedNeighborhood:o(function(e){return this.neighborhood().add(this).filter(e)},"closedNeighborhood"),openNeighborhood:o(function(e){return this.neighborhood(e)},"openNeighborhood")});Fa.neighbourhood=Fa.neighborhood;Fa.closedNeighbourhood=Fa.closedNeighborhood;Fa.openNeighbourhood=Fa.openNeighborhood;ir(Fa,{source:jo(o(function(e){var r=this[0],n;return r&&(n=r._private.source||r.cy().collection()),n&&e?n.filter(e):n},"sourceImpl"),"source"),target:jo(o(function(e){var r=this[0],n;return r&&(n=r._private.target||r.cy().collection()),n&&e?n.filter(e):n},"targetImpl"),"target"),sources:Dce({attr:"source"}),targets:Dce({attr:"target"})});o(Dce,"defineSourceFunction");ir(Fa,{edgesWith:jo(Lce(),"edgesWith"),edgesTo:jo(Lce({thisIsSrc:!0}),"edgesTo")});o(Lce,"defineEdgesWithFunction");ir(Fa,{connectedEdges:jo(function(t){for(var e=[],r=this,n=0;n0);return s},"components"),component:o(function(){var e=this[0];return e.cy().mutableElements().components(e)[0]},"component")});Fa.componentsOf=Fa.components;xa=o(function(e,r){var n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!1,i=arguments.length>3&&arguments[3]!==void 0?arguments[3]:!1;if(e===void 0){Kn("A collection must have a reference to the core");return}var a=new zu,s=!1;if(!r)r=[];else if(r.length>0&&Yr(r[0])&&!gx(r[0])){s=!0;for(var l=[],u=new hg,h=0,f=r.length;h0&&arguments[0]!==void 0?arguments[0]:!0,e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0,r=this,n=r.cy(),i=n._private,a=[],s=[],l,u=0,h=r.length;u0){for(var F=l.length===r.length?r:new xa(n,l),V=0;V0&&arguments[0]!==void 0?arguments[0]:!0,e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0,r=this,n=[],i={},a=r._private.cy;function s(D){for(var O=D._private.edges,N=0;N0&&(t?R.emitAndNotify("remove"):e&&R.emit("remove"));for(var E=0;Ef&&Math.abs(g.v)>f;);return p?function(y){return u[y*(u.length-1)|0]}:h},"springRK4Factory")})(),In=o(function(e,r,n,i){var a=PUe(e,r,n,i);return function(s,l,u){return s+(l-s)*a(u)}},"cubicBezier"),Uk={linear:o(function(e,r,n){return e+(r-e)*n},"linear"),ease:In(.25,.1,.25,1),"ease-in":In(.42,0,1,1),"ease-out":In(0,0,.58,1),"ease-in-out":In(.42,0,.58,1),"ease-in-sine":In(.47,0,.745,.715),"ease-out-sine":In(.39,.575,.565,1),"ease-in-out-sine":In(.445,.05,.55,.95),"ease-in-quad":In(.55,.085,.68,.53),"ease-out-quad":In(.25,.46,.45,.94),"ease-in-out-quad":In(.455,.03,.515,.955),"ease-in-cubic":In(.55,.055,.675,.19),"ease-out-cubic":In(.215,.61,.355,1),"ease-in-out-cubic":In(.645,.045,.355,1),"ease-in-quart":In(.895,.03,.685,.22),"ease-out-quart":In(.165,.84,.44,1),"ease-in-out-quart":In(.77,0,.175,1),"ease-in-quint":In(.755,.05,.855,.06),"ease-out-quint":In(.23,1,.32,1),"ease-in-out-quint":In(.86,0,.07,1),"ease-in-expo":In(.95,.05,.795,.035),"ease-out-expo":In(.19,1,.22,1),"ease-in-out-expo":In(1,0,0,1),"ease-in-circ":In(.6,.04,.98,.335),"ease-out-circ":In(.075,.82,.165,1),"ease-in-out-circ":In(.785,.135,.15,.86),spring:o(function(e,r,n){if(n===0)return Uk.linear;var i=BUe(e,r,n);return function(a,s,l){return a+(s-a)*i(l)}},"spring"),"cubic-bezier":In};o(Nce,"getEasedValue");o(Mce,"getValue");o(jm,"ease");o(FUe,"step$1");o(j2,"valid");o($Ue,"startAnimation");o(Ice,"stepAll");zUe={animate:un.animate(),animation:un.animation(),animated:un.animated(),clearQueue:un.clearQueue(),delay:un.delay(),delayAnimation:un.delayAnimation(),stop:un.stop(),addToAnimationPool:o(function(e){var r=this;r.styleEnabled()&&r._private.aniEles.merge(e)},"addToAnimationPool"),stopAnimationLoop:o(function(){this._private.animationsRunning=!1},"stopAnimationLoop"),startAnimationLoop:o(function(){var e=this;if(e._private.animationsRunning=!0,!e.styleEnabled())return;function r(){e._private.animationsRunning&&Qk(o(function(a){Ice(a,e),r()},"animationStep"))}o(r,"headlessStep");var n=e.renderer();n&&n.beforeRender?n.beforeRender(o(function(a,s){Ice(s,e)},"rendererAnimationStep"),n.beforeRenderPriorities.animations):r()},"startAnimationLoop")},GUe={qualifierCompare:o(function(e,r){return e==null||r==null?e==null&&r==null:e.sameText(r)},"qualifierCompare"),eventMatches:o(function(e,r,n){var i=r.qualifier;return i!=null?e!==n.target&&gx(n.target)&&i.matches(n.target):!0},"eventMatches"),addEventFields:o(function(e,r){r.cy=e,r.target=e},"addEventFields"),callbackContext:o(function(e,r,n){return r.qualifier!=null?n.target:e},"callbackContext")},Ik=o(function(e){return Jt(e)?new Ef(e):e},"argSelector"),dhe={createEmitter:o(function(){var e=this._private;return e.emitter||(e.emitter=new xE(GUe,this)),this},"createEmitter"),emitter:o(function(){return this._private.emitter},"emitter"),on:o(function(e,r,n){return this.emitter().on(e,Ik(r),n),this},"on"),removeListener:o(function(e,r,n){return this.emitter().removeListener(e,Ik(r),n),this},"removeListener"),removeAllListeners:o(function(){return this.emitter().removeAllListeners(),this},"removeAllListeners"),one:o(function(e,r,n){return this.emitter().one(e,Ik(r),n),this},"one"),once:o(function(e,r,n){return this.emitter().one(e,Ik(r),n),this},"once"),emit:o(function(e,r){return this.emitter().emit(e,r),this},"emit"),emitAndNotify:o(function(e,r){return this.emit(e),this.notify(e,r),this},"emitAndNotify")};un.eventAliasesOn(dhe);ZM={png:o(function(e){var r=this._private.renderer;return e=e||{},r.png(e)},"png"),jpg:o(function(e){var r=this._private.renderer;return e=e||{},e.bg=e.bg||"#fff",r.jpg(e)},"jpg")};ZM.jpeg=ZM.jpg;Hk={layout:o(function(e){var r=this;if(e==null){Kn("Layout options must be specified to make a layout");return}if(e.name==null){Kn("A `name` must be specified to make a layout");return}var n=e.name,i=r.extension("layout",n);if(i==null){Kn("No such layout `"+n+"` found. Did you forget to import it and `cytoscape.use()` it?");return}var a;Jt(e.eles)?a=r.$(e.eles):a=e.eles!=null?e.eles:r.$();var s=new i(ir({},e,{cy:r,eles:a}));return s},"layout")};Hk.createLayout=Hk.makeLayout=Hk.layout;VUe={notify:o(function(e,r){var n=this._private;if(this.batching()){n.batchNotifications=n.batchNotifications||{};var i=n.batchNotifications[e]=n.batchNotifications[e]||this.collection();r!=null&&i.merge(r);return}if(n.notificationsEnabled){var a=this.renderer();this.destroyed()||!a||a.notify(e,r)}},"notify"),notifications:o(function(e){var r=this._private;return e===void 0?r.notificationsEnabled:(r.notificationsEnabled=!!e,this)},"notifications"),noNotifications:o(function(e){this.notifications(!1),e(),this.notifications(!0)},"noNotifications"),batching:o(function(){return this._private.batchCount>0},"batching"),startBatch:o(function(){var e=this._private;return e.batchCount==null&&(e.batchCount=0),e.batchCount===0&&(e.batchStyleEles=this.collection(),e.batchNotifications={}),e.batchCount++,this},"startBatch"),endBatch:o(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(n){var i=e.batchNotifications[n];i.empty()?r.notify(n):r.notify(n,i)})}return this},"endBatch"),batch:o(function(e){return this.startBatch(),e(),this.endBatch(),this},"batch"),batchData:o(function(e){var r=this;return this.batch(function(){for(var n=Object.keys(e),i=0;i0;)r.removeChild(r.childNodes[0]);e._private.renderer=null,e.mutableElements().forEach(function(n){var i=n._private;i.rscratch={},i.rstyle={},i.animation.current=[],i.animation.queue=[]})},"destroyRenderer"),onRender:o(function(e){return this.on("render",e)},"onRender"),offRender:o(function(e){return this.off("render",e)},"offRender")};JM.invalidateDimensions=JM.resize;qk={collection:o(function(e,r){return Jt(e)?this.$(e):fo(e)?e.collection():An(e)?(r||(r={}),new xa(this,e,r.unique,r.removed)):new xa(this)},"collection"),nodes:o(function(e){var r=this.$(function(n){return n.isNode()});return e?r.filter(e):r},"nodes"),edges:o(function(e){var r=this.$(function(n){return n.isEdge()});return e?r.filter(e):r},"edges"),$:o(function(e){var r=this._private.elements;return e?r.filter(e):r.spawnSelf()},"$"),mutableElements:o(function(){return this._private.elements},"mutableElements")};qk.elements=qk.filter=qk.$;na={},rx="t",HUe="f";na.apply=function(t){for(var e=this,r=e._private,n=r.cy,i=n.collection(),a=0;a0;if(p||d&&m){var g=void 0;p&&m||p?g=h.properties:m&&(g=h.mappedProperties);for(var y=0;y1&&(S=1),l.color){var k=n.valueMin[0],C=n.valueMax[0],A=n.valueMin[1],L=n.valueMax[1],I=n.valueMin[2],R=n.valueMax[2],E=n.valueMin[3]==null?1:n.valueMin[3],_=n.valueMax[3]==null?1:n.valueMax[3],D=[Math.round(k+(C-k)*S),Math.round(A+(L-A)*S),Math.round(I+(R-I)*S),Math.round(E+(_-E)*S)];a={bypass:n.bypass,name:n.name,value:D,strValue:"rgb("+D[0]+", "+D[1]+", "+D[2]+")"}}else if(l.number){var O=n.valueMin+(n.valueMax-n.valueMin)*S;a=this.parse(n.name,O,n.bypass,p)}else return!1;if(!a)return y(),!1;a.mapping=n,n=a;break}case s.data:{for(var N=n.field.split("."),P=d.data,B=0;B0&&a>0){for(var l={},u=!1,h=0;h0?t.delayAnimation(s).play().promise().then(T):T()}).then(function(){return t.animation({style:l,duration:a,easing:t.pstyle("transition-timing-function").value,queue:!1}).play().promise()}).then(function(){r.removeBypasses(t,i),t.emitAndNotify("style"),n.transitioning=!1})}else n.transitioning&&(this.removeBypasses(t,i),t.emitAndNotify("style"),n.transitioning=!1)};na.checkTrigger=function(t,e,r,n,i,a){var s=this.properties[e],l=i(s);t.removed()||l!=null&&l(r,n,t)&&a(s)};na.checkZOrderTrigger=function(t,e,r,n){var i=this;this.checkTrigger(t,e,r,n,function(a){return a.triggersZOrder},function(){i._private.cy.notify("zorder",t)})};na.checkBoundsTrigger=function(t,e,r,n){this.checkTrigger(t,e,r,n,function(i){return i.triggersBounds},function(i){t.dirtyCompoundBoundsCache(),t.dirtyBoundingBoxCache()})};na.checkConnectedEdgesBoundsTrigger=function(t,e,r,n){this.checkTrigger(t,e,r,n,function(i){return i.triggersBoundsOfConnectedEdges},function(i){t.connectedEdges().forEach(function(a){a.dirtyBoundingBoxCache()})})};na.checkParallelEdgesBoundsTrigger=function(t,e,r,n){this.checkTrigger(t,e,r,n,function(i){return i.triggersBoundsOfParallelEdges},function(i){t.parallelEdges().forEach(function(a){a.dirtyBoundingBoxCache()})})};na.checkTriggers=function(t,e,r,n){t.dirtyStyleCache(),this.checkZOrderTrigger(t,e,r,n),this.checkBoundsTrigger(t,e,r,n),this.checkConnectedEdgesBoundsTrigger(t,e,r,n),this.checkParallelEdgesBoundsTrigger(t,e,r,n)};kx={};kx.applyBypass=function(t,e,r,n){var i=this,a=[],s=!0;if(e==="*"||e==="**"){if(r!==void 0)for(var l=0;li.length?n=n.substr(i.length):n=""}o(l,"removeSelAndBlockFromRemaining");function u(){a.length>s.length?a=a.substr(s.length):a=""}for(o(u,"removePropAndValFromRem");;){var h=n.match(/^\s*$/);if(h)break;var f=n.match(/^\s*((?:.|\s)+?)\s*\{((?:.|\s)+?)\}/);if(!f){hn("Halting stylesheet parsing: String stylesheet contains more to parse but no selector and block found in: "+n);break}i=f[0];var d=f[1];if(d!=="core"){var p=new Ef(d);if(p.invalid){hn("Skipping parsing of block: Invalid selector found in string stylesheet: "+d),l();continue}}var m=f[2],g=!1;a=m;for(var y=[];;){var v=a.match(/^\s*$/);if(v)break;var x=a.match(/^\s*(.+?)\s*:\s*(.+?)(?:\s*;|\s*$)/);if(!x){hn("Skipping parsing of block: Invalid formatting of style property and value definitions found in:"+m),g=!0;break}s=x[0];var b=x[1],T=x[2],S=e.properties[b];if(!S){hn("Skipping property: Invalid property name in: "+s),u();continue}var w=r.parse(b,T);if(!w){hn("Skipping property: Invalid property definition in: "+s),u();continue}y.push({name:b,val:T}),u()}if(g){l();break}r.selector(d);for(var k=0;k=7&&e[0]==="d"&&(f=new RegExp(l.data.regex).exec(e))){if(r)return!1;var p=l.data;return{name:t,value:f,strValue:""+e,mapped:p,field:f[1],bypass:r}}else if(e.length>=10&&e[0]==="m"&&(d=new RegExp(l.mapData.regex).exec(e))){if(r||h.multiple)return!1;var m=l.mapData;if(!(h.color||h.number))return!1;var g=this.parse(t,d[4]);if(!g||g.mapped)return!1;var y=this.parse(t,d[5]);if(!y||y.mapped)return!1;if(g.pfValue===y.pfValue||g.strValue===y.strValue)return hn("`"+t+": "+e+"` is not a valid mapper because the output range is zero; converting to `"+t+": "+g.strValue+"`"),this.parse(t,g.strValue);if(h.color){var v=g.value,x=y.value,b=v[0]===x[0]&&v[1]===x[1]&&v[2]===x[2]&&(v[3]===x[3]||(v[3]==null||v[3]===1)&&(x[3]==null||x[3]===1));if(b)return!1}return{name:t,value:d,strValue:""+e,mapped:m,field:d[1],fieldMin:parseFloat(d[2]),fieldMax:parseFloat(d[3]),valueMin:g.value,valueMax:y.value,bypass:r}}}if(h.multiple&&n!=="multiple"){var T;if(u?T=e.split(/\s+/):An(e)?T=e:T=[e],h.evenMultiple&&T.length%2!==0)return null;for(var S=[],w=[],k=[],C="",A=!1,L=0;L0?" ":"")+I.strValue}return h.validate&&!h.validate(S,w)?null:h.singleEnum&&A?S.length===1&&Jt(S[0])?{name:t,value:S[0],strValue:S[0],bypass:r}:null:{name:t,value:S,pfValue:k,strValue:C,bypass:r,units:w}}var R=o(function(){for(var te=0;teh.max||h.strictMax&&e===h.max))return null;var N={name:t,value:e,strValue:""+e+(E||""),units:E,bypass:r};return h.unitless||E!=="px"&&E!=="em"?N.pfValue=e:N.pfValue=E==="px"||!E?e:this.getEmSizeInPixels()*e,(E==="ms"||E==="s")&&(N.pfValue=E==="ms"?e:1e3*e),(E==="deg"||E==="rad")&&(N.pfValue=E==="rad"?e:Gze(e)),E==="%"&&(N.pfValue=e/100),N}else if(h.propList){var P=[],B=""+e;if(B!=="none"){for(var F=B.split(/\s*,\s*|\s+/),V=0;V0&&l>0&&!isNaN(n.w)&&!isNaN(n.h)&&n.w>0&&n.h>0){u=Math.min((s-2*r)/n.w,(l-2*r)/n.h),u=u>this._private.maxZoom?this._private.maxZoom:u,u=u=n.minZoom&&(n.maxZoom=r),this},"zoomRange"),minZoom:o(function(e){return e===void 0?this._private.minZoom:this.zoomRange({min:e})},"minZoom"),maxZoom:o(function(e){return e===void 0?this._private.maxZoom:this.zoomRange({max:e})},"maxZoom"),getZoomedViewport:o(function(e){var r=this._private,n=r.pan,i=r.zoom,a,s,l=!1;if(r.zoomingEnabled||(l=!0),At(e)?s=e:Yr(e)&&(s=e.level,e.position!=null?a=fE(e.position,i,n):e.renderedPosition!=null&&(a=e.renderedPosition),a!=null&&!r.panningEnabled&&(l=!0)),s=s>r.maxZoom?r.maxZoom:s,s=sr.maxZoom||!r.zoomingEnabled?s=!0:(r.zoom=u,a.push("zoom"))}if(i&&(!s||!e.cancelOnFailedZoom)&&r.panningEnabled){var h=e.pan;At(h.x)&&(r.pan.x=h.x,l=!1),At(h.y)&&(r.pan.y=h.y,l=!1),l||a.push("pan")}return a.length>0&&(a.push("viewport"),this.emit(a.join(" ")),this.notify("viewport")),this},"viewport"),center:o(function(e){var r=this.getCenterPan(e);return r&&(this._private.pan=r,this.emit("pan viewport"),this.notify("viewport")),this},"center"),getCenterPan:o(function(e,r){if(this._private.panningEnabled){if(Jt(e)){var n=e;e=this.mutableElements().filter(n)}else fo(e)||(e=this.mutableElements());if(e.length!==0){var i=e.boundingBox(),a=this.width(),s=this.height();r=r===void 0?this._private.zoom:r;var l={x:(a-r*(i.x1+i.x2))/2,y:(s-r*(i.y1+i.y2))/2};return l}}},"getCenterPan"),reset:o(function(){return!this._private.panningEnabled||!this._private.zoomingEnabled?this:(this.viewport({pan:{x:0,y:0},zoom:1}),this)},"reset"),invalidateSize:o(function(){this._private.sizeCache=null},"invalidateSize"),size:o(function(){var e=this._private,r=e.container,n=this;return e.sizeCache=e.sizeCache||(r?(function(){var i=n.window().getComputedStyle(r),a=o(function(l){return parseFloat(i.getPropertyValue(l))},"val");return{width:r.clientWidth-a("padding-left")-a("padding-right"),height:r.clientHeight-a("padding-top")-a("padding-bottom")}})():{width:1,height:1})},"size"),width:o(function(){return this.size().width},"width"),height:o(function(){return this.size().height},"height"),extent:o(function(){var e=this._private.pan,r=this._private.zoom,n=this.renderedExtent(),i={x1:(n.x1-e.x)/r,x2:(n.x2-e.x)/r,y1:(n.y1-e.y)/r,y2:(n.y2-e.y)/r};return i.w=i.x2-i.x1,i.h=i.y2-i.y1,i},"extent"),renderedExtent:o(function(){var e=this.width(),r=this.height();return{x1:0,y1:0,x2:e,y2:r,w:e,h:r}},"renderedExtent"),multiClickDebounceTime:o(function(e){if(e)this._private.multiClickDebounceTime=e;else return this._private.multiClickDebounceTime;return this},"multiClickDebounceTime")};kp.centre=kp.center;kp.autolockNodes=kp.autolock;kp.autoungrabifyNodes=kp.autoungrabify;fx={data:un.data({field:"data",bindingEvent:"data",allowBinding:!0,allowSetting:!0,settingEvent:"data",settingTriggersEvent:!0,triggerFnName:"trigger",allowGetting:!0,updateStyle:!0}),removeData:un.removeData({field:"data",event:"data",triggerFnName:"trigger",triggerEvent:!0,updateStyle:!0}),scratch:un.data({field:"scratch",bindingEvent:"scratch",allowBinding:!0,allowSetting:!0,settingEvent:"scratch",settingTriggersEvent:!0,triggerFnName:"trigger",allowGetting:!0,updateStyle:!0}),removeScratch:un.removeData({field:"scratch",event:"scratch",triggerFnName:"trigger",triggerEvent:!0,updateStyle:!0})};fx.attr=fx.data;fx.removeAttr=fx.removeData;dx=o(function(e){var r=this;e=ir({},e);var n=e.container;n&&!Kk(n)&&Kk(n[0])&&(n=n[0]);var i=n?n._cyreg:null;i=i||{},i&&i.cy&&(i.cy.destroy(),i={});var a=i.readies=i.readies||[];n&&(n._cyreg=i),i.cy=r;var s=Bi!==void 0&&n!==void 0&&!e.headless,l=e;l.layout=ir({name:s?"grid":"null"},l.layout),l.renderer=ir({name:s?"canvas":"null"},l.renderer);var u=o(function(g,y,v){return y!==void 0?y:v!==void 0?v:g},"defVal"),h=this._private={container:n,ready:!1,options:l,elements:new xa(this),listeners:[],aniEles:new xa(this),data:l.data||{},scratch:{},layout:null,renderer:null,destroyed:!1,notificationsEnabled:!0,minZoom:1e-50,maxZoom:1e50,zoomingEnabled:u(!0,l.zoomingEnabled),userZoomingEnabled:u(!0,l.userZoomingEnabled),panningEnabled:u(!0,l.panningEnabled),userPanningEnabled:u(!0,l.userPanningEnabled),boxSelectionEnabled:u(!0,l.boxSelectionEnabled),autolock:u(!1,l.autolock,l.autolockNodes),autoungrabify:u(!1,l.autoungrabify,l.autoungrabifyNodes),autounselectify:u(!1,l.autounselectify),styleEnabled:l.styleEnabled===void 0?s:l.styleEnabled,zoom:At(l.zoom)?l.zoom:1,pan:{x:Yr(l.pan)&&At(l.pan.x)?l.pan.x:0,y:Yr(l.pan)&&At(l.pan.y)?l.pan.y:0},animation:{current:[],queue:[]},hasCompoundNodes:!1,multiClickDebounceTime:u(250,l.multiClickDebounceTime)};this.createEmitter(),this.selectionType(l.selectionType),this.zoomRange({min:l.minZoom,max:l.maxZoom});var f=o(function(g,y){var v=g.some(O$e);if(v)return fg.all(g).then(y);y(g)},"loadExtData");h.styleEnabled&&r.setStyle([]);var d=ir({},l,l.renderer);r.initRenderer(d);var p=o(function(g,y,v){r.notifications(!1);var x=r.mutableElements();x.length>0&&x.remove(),g!=null&&(Yr(g)||An(g))&&r.add(g),r.one("layoutready",function(T){r.notifications(!0),r.emit(T),r.one("load",y),r.emitAndNotify("load")}).one("layoutstop",function(){r.one("done",v),r.emit("done")});var b=ir({},r._private.options.layout);b.eles=r.elements(),r.layout(b).run()},"setElesAndLayout");f([l.style,l.elements],function(m){var g=m[0],y=m[1];h.styleEnabled&&r.style().append(g),p(y,function(){r.startAnimationLoop(),h.ready=!0,oi(l.ready)&&r.on("ready",l.ready);for(var v=0;v0,l=!!t.boundingBox,u=cs(l?t.boundingBox:structuredClone(e.extent())),h;if(fo(t.roots))h=t.roots;else if(An(t.roots)){for(var f=[],d=0;d0;){var D=_(),O=L(D,R);if(O)D.outgoers().filter(function(Ve){return Ve.isNode()&&r.has(Ve)}).forEach(E);else if(O===null){hn("Detected double maximal shift for node `"+D.id()+"`. Bailing maximal adjustment due to cycle. Use `options.maximal: true` only on DAGs.");break}}}var N=0;if(t.avoidOverlap)for(var P=0;P0&&x[0].length<=3?Le/2:0),Ne=2*Math.PI/x[Ye].length*He;return Ye===0&&x[0].length===1&&(Ie=1),{x:K.x+Ie*Math.cos(Ne),y:K.y+Ie*Math.sin(Ne)}}else{var Ce=x[Ye].length,Fe=Math.max(Ce===1?0:l?(u.w-t.padding*2-ae.w)/((t.grid?de:Ce)-1):(u.w-t.padding*2-ae.w)/((t.grid?de:Ce)+1),N),fe={x:K.x+(He+1-(Ce+1)/2)*Fe,y:K.y+(Ye+1-(q+1)/2)*Z};return fe}},"getPositionTopBottom"),Te={downward:0,leftward:90,upward:180,rightward:-90};Object.keys(Te).indexOf(t.direction)===-1&&Kn("Invalid direction '".concat(t.direction,"' specified for breadthfirst layout. Valid values are: ").concat(Object.keys(Te).join(", ")));var W=o(function(pe){return uze(ne(pe),u,Te[t.direction])},"getPosition");return r.nodes().layoutPositions(this,t,W),this};jUe={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:o(function(e,r){return!0},"animateFilter"),ready:void 0,stop:void 0,transform:o(function(e,r){return r},"transform")};o(mhe,"CircleLayout");mhe.prototype.run=function(){var t=this.options,e=t,r=t.cy,n=e.eles,i=e.counterclockwise!==void 0?!e.counterclockwise:e.clockwise,a=n.nodes().not(":parent");e.sort&&(a=a.sort(e.sort));for(var s=cs(e.boundingBox?e.boundingBox:{x1:0,y1:0,w:r.width(),h:r.height()}),l={x:s.x1+s.w/2,y:s.y1+s.h/2},u=e.sweep===void 0?2*Math.PI-2*Math.PI/a.length:e.sweep,h=u/Math.max(1,a.length-1),f,d=0,p=0;p1&&e.avoidOverlap){d*=1.75;var x=Math.cos(h)-Math.cos(0),b=Math.sin(h)-Math.sin(0),T=Math.sqrt(d*d/(x*x+b*b));f=Math.max(T,f)}var S=o(function(k,C){var A=e.startAngle+C*h*(i?1:-1),L=f*Math.cos(A),I=f*Math.sin(A),R={x:l.x+L,y:l.y+I};return R},"getPos");return n.nodes().layoutPositions(this,e,S),this};KUe={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:o(function(e){return e.degree()},"concentric"),levelWidth:o(function(e){return e.maxDegree()/4},"levelWidth"),animate:!1,animationDuration:500,animationEasing:void 0,animateFilter:o(function(e,r){return!0},"animateFilter"),ready:void 0,stop:void 0,transform:o(function(e,r){return r},"transform")};o(ghe,"ConcentricLayout");ghe.prototype.run=function(){for(var t=this.options,e=t,r=e.counterclockwise!==void 0?!e.counterclockwise:e.clockwise,n=t.cy,i=e.eles,a=i.nodes().not(":parent"),s=cs(e.boundingBox?e.boundingBox:{x1:0,y1:0,w:n.width(),h:n.height()}),l={x:s.x1+s.w/2,y:s.y1+s.h/2},u=[],h=0,f=0;f0){var w=Math.abs(b[0].value-S.value);w>=v&&(b=[],x.push(b))}b.push(S)}var k=h+e.minNodeSpacing;if(!e.avoidOverlap){var C=x.length>0&&x[0].length>1,A=Math.min(s.w,s.h)/2-k,L=A/(x.length+C?1:0);k=Math.min(k,L)}for(var I=0,R=0;R1&&e.avoidOverlap){var O=Math.cos(D)-Math.cos(0),N=Math.sin(D)-Math.sin(0),P=Math.sqrt(k*k/(O*O+N*N));I=Math.max(P,I)}E.r=I,I+=k}if(e.equidistant){for(var B=0,F=0,V=0;V=t.numIter||(nHe(n,t),n.temperature=n.temperature*t.coolingFactor,n.temperature=t.animationThreshold&&a(),Qk(f)}},"frame");f()}else{for(;h;)h=s(u),u++;Bce(n,t),l()}return this};EE.prototype.stop=function(){return this.stopped=!0,this.thread&&this.thread.stop(),this.emit("layoutstop"),this};EE.prototype.destroy=function(){return this.thread&&this.thread.stop(),this};ZUe=o(function(e,r,n){for(var i=n.eles.edges(),a=n.eles.nodes(),s=cs(n.boundingBox?n.boundingBox:{x1:0,y1:0,w:e.width(),h:e.height()}),l={isCompound:e.hasCompoundNodes(),layoutNodes:[],idToIndex:{},nodeSize:a.size(),graphSet:[],indexToGraph:[],layoutEdges:[],edgeSize:i.size(),temperature:n.initialTemp,clientWidth:s.w,clientHeight:s.h,boundingBox:s},u=n.eles.components(),h={},f=0;f0){l.graphSet.push(A);for(var f=0;fi.count?0:i.graph},"findLCA"),yhe=o(function(e,r,n,i){var a=i.graphSet[n];if(-10)var d=i.nodeOverlap*f,p=Math.sqrt(l*l+u*u),m=d*l/p,g=d*u/p;else var y=iE(e,l,u),v=iE(r,-1*l,-1*u),x=v.x-y.x,b=v.y-y.y,T=x*x+b*b,p=Math.sqrt(T),d=(e.nodeRepulsion+r.nodeRepulsion)/T,m=d*x/p,g=d*b/p;e.isLocked||(e.offsetX-=m,e.offsetY-=g),r.isLocked||(r.offsetX+=m,r.offsetY+=g)}},"nodeRepulsion"),sHe=o(function(e,r,n,i){if(n>0)var a=e.maxX-r.minX;else var a=r.maxX-e.minX;if(i>0)var s=e.maxY-r.minY;else var s=r.maxY-e.minY;return a>=0&&s>=0?Math.sqrt(a*a+s*s):0},"nodesOverlap"),iE=o(function(e,r,n){var i=e.positionX,a=e.positionY,s=e.height||1,l=e.width||1,u=n/r,h=s/l,f={};return r===0&&0n?(f.x=i,f.y=a+s/2,f):0r&&-1*h<=u&&u<=h?(f.x=i-l/2,f.y=a-l*n/2/r,f):0=h)?(f.x=i+s*r/2/n,f.y=a+s/2,f):(0>n&&(u<=-1*h||u>=h)&&(f.x=i-s*r/2/n,f.y=a-s/2),f)},"findClippingPoint"),oHe=o(function(e,r){for(var n=0;nn){var v=r.gravity*m/y,x=r.gravity*g/y;p.offsetX+=v,p.offsetY+=x}}}}},"calculateGravityForces"),cHe=o(function(e,r){var n=[],i=0,a=-1;for(n.push.apply(n,e.graphSet[0]),a+=e.graphSet[0].length;i<=a;){var s=n[i++],l=e.idToIndex[s],u=e.layoutNodes[l],h=u.children;if(0n)var a={x:n*e/i,y:n*r/i};else var a={x:e,y:r};return a},"limitForce"),xhe=o(function(e,r){var n=e.parentId;if(n!=null){var i=r.layoutNodes[r.idToIndex[n]],a=!1;if((i.maxX==null||e.maxX+i.padRight>i.maxX)&&(i.maxX=e.maxX+i.padRight,a=!0),(i.minX==null||e.minX-i.padLefti.maxY)&&(i.maxY=e.maxY+i.padBottom,a=!0),(i.minY==null||e.minY-i.padTopx&&(g+=v+r.componentSpacing,m=0,y=0,v=0)}}},"separateComponents"),fHe={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:o(function(e){},"position"),sort:void 0,animate:!1,animationDuration:500,animationEasing:void 0,animateFilter:o(function(e,r){return!0},"animateFilter"),ready:void 0,stop:void 0,transform:o(function(e,r){return r},"transform")};o(bhe,"GridLayout");bhe.prototype.run=function(){var t=this.options,e=t,r=t.cy,n=e.eles,i=n.nodes().not(":parent");e.sort&&(i=i.sort(e.sort));var a=cs(e.boundingBox?e.boundingBox:{x1:0,y1:0,w:r.width(),h:r.height()});if(a.h===0||a.w===0)n.nodes().layoutPositions(this,e,function(j){return{x:a.x1,y:a.y1}});else{var s=i.size(),l=Math.sqrt(s*a.h/a.w),u=Math.round(l),h=Math.round(a.w/a.h*l),f=o(function(ee){if(ee==null)return Math.min(u,h);var q=Math.min(u,h);q==u?u=ee:h=ee},"small"),d=o(function(ee){if(ee==null)return Math.max(u,h);var q=Math.max(u,h);q==u?u=ee:h=ee},"large"),p=e.rows,m=e.cols!=null?e.cols:e.columns;if(p!=null&&m!=null)u=p,h=m;else if(p!=null&&m==null)u=p,h=Math.ceil(s/u);else if(p==null&&m!=null)h=m,u=Math.ceil(s/h);else if(h*u>s){var g=f(),y=d();(g-1)*y>=s?f(g-1):(y-1)*g>=s&&d(y-1)}else for(;h*u=s?d(x+1):f(v+1)}var b=a.w/h,T=a.h/u;if(e.condense&&(b=0,T=0),e.avoidOverlap)for(var S=0;S=h&&(O=0,D++)},"moveToNextCell"),P={},B=0;B(O=tGe(t,e,N[P],N[P+1],N[P+2],N[P+3])))return v(C,O),!0}else if(L.edgeType==="bezier"||L.edgeType==="multibezier"||L.edgeType==="self"||L.edgeType==="compound"){for(var N=L.allpts,P=0;P+5(O=eGe(t,e,N[P],N[P+1],N[P+2],N[P+3],N[P+4],N[P+5])))return v(C,O),!0}for(var B=B||A.source,F=F||A.target,V=i.getArrowWidth(I,R),$=[{name:"source",x:L.arrowStartX,y:L.arrowStartY,angle:L.srcArrowAngle},{name:"target",x:L.arrowEndX,y:L.arrowEndY,angle:L.tgtArrowAngle},{name:"mid-source",x:L.midX,y:L.midY,angle:L.midsrcArrowAngle},{name:"mid-target",x:L.midX,y:L.midY,angle:L.midtgtArrowAngle}],P=0;P<$.length;P++){var U=$[P],j=a.arrowShapes[C.pstyle(U.name+"-arrow-shape").value],ee=C.pstyle("width").pfValue;if(j.roughCollide(t,e,V,U.angle,{x:U.x,y:U.y},ee,f)&&j.collide(t,e,V,U.angle,{x:U.x,y:U.y},ee,f))return v(C),!0}h&&l.length>0&&(x(B),x(F))}o(b,"checkEdge");function T(C,A,L){return Us(C,A,L)}o(T,"preprop");function S(C,A){var L=C._private,I=p,R;A?R=A+"-":R="",C.boundingBox();var E=L.labelBounds[A||"main"],_=C.pstyle(R+"label").value,D=C.pstyle("text-events").strValue==="yes";if(!(!D||!_)){var O=T(L.rscratch,"labelX",A),N=T(L.rscratch,"labelY",A),P=T(L.rscratch,"labelAngle",A),B=C.pstyle(R+"text-margin-x").pfValue,F=C.pstyle(R+"text-margin-y").pfValue,V=E.x1-I-B,$=E.x2+I-B,U=E.y1-I-F,j=E.y2+I-F;if(P){var ee=Math.cos(P),q=Math.sin(P),oe=o(function(ae,Z){return ae=ae-O,Z=Z-N,{x:ae*ee-Z*q+O,y:ae*q+Z*ee+N}},"rotate"),Q=oe(V,U),ue=oe(V,j),te=oe($,U),re=oe($,j),J=[Q.x+B,Q.y+F,te.x+B,te.y+F,re.x+B,re.y+F,ue.x+B,ue.y+F];if(Hs(t,e,J))return v(C),!0}else if(yf(E,t,e))return v(C),!0}}o(S,"checkLabel");for(var w=s.length-1;w>=0;w--){var k=s[w];k.isNode()?x(k)||S(k):b(k)||S(k)||S(k,"source")||S(k,"target")}return l};Sp.getAllInBox=function(t,e,r,n){var i=this.getCachedZSortedEles().interactive,a=this.cy.zoom(),s=2/a,l=[],u=Math.min(t,r),h=Math.max(t,r),f=Math.min(e,n),d=Math.max(e,n);t=u,r=h,e=f,n=d;var p=cs({x1:t,y1:e,x2:r,y2:n}),m=[{x:p.x1,y:p.y1},{x:p.x2,y:p.y1},{x:p.x2,y:p.y2},{x:p.x1,y:p.y2}],g=[[m[0],m[1]],[m[1],m[2]],[m[2],m[3]],[m[3],m[0]]];function y(ae,Z,de){return Us(ae,Z,de)}o(y,"preprop");function v(ae,Z){var de=ae._private,ne=s,Te="";ae.boundingBox();var W=de.labelBounds.main;if(!W)return null;var Ve=y(de.rscratch,"labelX",Z),pe=y(de.rscratch,"labelY",Z),Be=y(de.rscratch,"labelAngle",Z),Ye=ae.pstyle(Te+"text-margin-x").pfValue,He=ae.pstyle(Te+"text-margin-y").pfValue,Le=W.x1-ne-Ye,Ie=W.x2+ne-Ye,Ne=W.y1-ne-He,Ce=W.y2+ne-He;if(Be){var Fe=Math.cos(Be),fe=Math.sin(Be),xe=o(function(he,z){return he=he-Ve,z=z-pe,{x:he*Fe-z*fe+Ve,y:he*fe+z*Fe+pe}},"rotate");return[xe(Le,Ne),xe(Ie,Ne),xe(Ie,Ce),xe(Le,Ce)]}else return[{x:Le,y:Ne},{x:Ie,y:Ne},{x:Ie,y:Ce},{x:Le,y:Ce}]}o(v,"getRotatedLabelBox");function x(ae,Z,de,ne){function Te(W,Ve,pe){return(pe.y-W.y)*(Ve.x-W.x)>(Ve.y-W.y)*(pe.x-W.x)}return o(Te,"ccw"),Te(ae,de,ne)!==Te(Z,de,ne)&&Te(ae,Z,de)!==Te(ae,Z,ne)}o(x,"doLinesIntersect");for(var b=0;b0?-(Math.PI-e.ang):Math.PI+e.ang},"invertVec"),vHe=o(function(e,r,n,i,a){if(e!==Vce?Uce(r,e,Ic):yHe(Yo,Ic),Uce(r,n,Yo),zce=Ic.nx*Yo.ny-Ic.ny*Yo.nx,Gce=Ic.nx*Yo.nx-Ic.ny*-Yo.ny,Fu=Math.asin(Math.max(-1,Math.min(1,zce))),Math.abs(Fu)<1e-6){eI=r.x,tI=r.y,gp=Qm=0;return}vp=1,Wk=!1,Gce<0?Fu<0?Fu=Math.PI+Fu:(Fu=Math.PI-Fu,vp=-1,Wk=!0):Fu>0&&(vp=-1,Wk=!0),r.radius!==void 0?Qm=r.radius:Qm=i,fp=Fu/2,Ok=Math.min(Ic.len/2,Yo.len/2),a?(Nc=Math.abs(Math.cos(fp)*Qm/Math.sin(fp)),Nc>Ok?(Nc=Ok,gp=Math.abs(Nc*Math.sin(fp)/Math.cos(fp))):gp=Qm):(Nc=Math.min(Ok,Qm),gp=Math.abs(Nc*Math.sin(fp)/Math.cos(fp))),rI=r.x+Yo.nx*Nc,nI=r.y+Yo.ny*Nc,eI=rI-Yo.ny*gp*vp,tI=nI+Yo.nx*gp*vp,Ehe=r.x+Ic.nx*Nc,She=r.y+Ic.ny*Nc,Vce=r},"calcCornerArc");o(Che,"drawPreparedRoundCorner");o(LI,"getRoundCorner");px=.01,xHe=Math.sqrt(2*px),za={};za.findMidptPtsEtc=function(t,e){var r=e.posPts,n=e.intersectionPts,i=e.vectorNormInverse,a,s=t.pstyle("source-endpoint"),l=t.pstyle("target-endpoint"),u=s.units!=null&&l.units!=null,h=o(function(w,k,C,A){var L=A-k,I=C-w,R=Math.sqrt(I*I+L*L);return{x:-L/R,y:I/R}},"recalcVectorNormInverse"),f=t.pstyle("edge-distances").value;switch(f){case"node-position":a=r;break;case"intersection":a=n;break;case"endpoints":{if(u){var d=this.manualEndptToPx(t.source()[0],s),p=_i(d,2),m=p[0],g=p[1],y=this.manualEndptToPx(t.target()[0],l),v=_i(y,2),x=v[0],b=v[1],T={x1:m,y1:g,x2:x,y2:b};i=h(m,g,x,b),a=T}else hn("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).")),a=n;break}}return{midptPts:a,vectorNormInverse:i}};za.findHaystackPoints=function(t){for(var e=0;e0?Math.max(z-se,0):Math.min(z+se,0)},"subDWH"),_=E(I,A),D=E(R,L),O=!1;b===h?x=Math.abs(_)>Math.abs(D)?i:n:b===u||b===l?(x=n,O=!0):(b===a||b===s)&&(x=i,O=!0);var N=x===n,P=N?D:_,B=N?R:I,F=yI(B),V=!1;!(O&&(S||k))&&(b===l&&B<0||b===u&&B>0||b===a&&B>0||b===s&&B<0)&&(F*=-1,P=F*Math.abs(P),V=!0);var $;if(S){var U=w<0?1+w:w;$=U*P}else{var j=w<0?P:0;$=j+w*F}var ee=o(function(z){return Math.abs(z)=Math.abs(P)},"getIsTooClose"),q=ee($),oe=ee(Math.abs(P)-Math.abs($)),Q=q||oe;if(Q&&!V)if(N){var ue=Math.abs(B)<=p/2,te=Math.abs(I)<=m/2;if(ue){var re=(f.x1+f.x2)/2,J=f.y1,K=f.y2;r.segpts=[re,J,re,K]}else if(te){var ae=(f.y1+f.y2)/2,Z=f.x1,de=f.x2;r.segpts=[Z,ae,de,ae]}else r.segpts=[f.x1,f.y2]}else{var ne=Math.abs(B)<=d/2,Te=Math.abs(R)<=g/2;if(ne){var W=(f.y1+f.y2)/2,Ve=f.x1,pe=f.x2;r.segpts=[Ve,W,pe,W]}else if(Te){var Be=(f.x1+f.x2)/2,Ye=f.y1,He=f.y2;r.segpts=[Be,Ye,Be,He]}else r.segpts=[f.x2,f.y1]}else if(N){var Le=f.y1+$+(v?p/2*F:0),Ie=f.x1,Ne=f.x2;r.segpts=[Ie,Le,Ne,Le]}else{var Ce=f.x1+$+(v?d/2*F:0),Fe=f.y1,fe=f.y2;r.segpts=[Ce,Fe,Ce,fe]}if(r.isRound){var xe=t.pstyle("taxi-radius").value,Y=t.pstyle("radius-type").value[0]==="arc-radius";r.radii=new Array(r.segpts.length/2).fill(xe),r.isArcRadius=new Array(r.segpts.length/2).fill(Y)}};za.tryToCorrectInvalidPoints=function(t,e){var r=t._private.rscratch;if(r.edgeType==="bezier"){var n=e.srcPos,i=e.tgtPos,a=e.srcW,s=e.srcH,l=e.tgtW,u=e.tgtH,h=e.srcShape,f=e.tgtShape,d=e.srcCornerRadius,p=e.tgtCornerRadius,m=e.srcRs,g=e.tgtRs,y=!At(r.startX)||!At(r.startY),v=!At(r.arrowStartX)||!At(r.arrowStartY),x=!At(r.endX)||!At(r.endY),b=!At(r.arrowEndX)||!At(r.arrowEndY),T=3,S=this.getArrowWidth(t.pstyle("width").pfValue,t.pstyle("arrow-scale").value)*this.arrowShapeWidth,w=T*S,k=Tp({x:r.ctrlpts[0],y:r.ctrlpts[1]},{x:r.startX,y:r.startY}),C=kB.poolIndex()){var F=P;P=B,B=F}var V=_.srcPos=P.position(),$=_.tgtPos=B.position(),U=_.srcW=P.outerWidth(),j=_.srcH=P.outerHeight(),ee=_.tgtW=B.outerWidth(),q=_.tgtH=B.outerHeight(),oe=_.srcShape=r.nodeShapes[e.getNodeShape(P)],Q=_.tgtShape=r.nodeShapes[e.getNodeShape(B)],ue=_.srcCornerRadius=P.pstyle("corner-radius").value==="auto"?"auto":P.pstyle("corner-radius").pfValue,te=_.tgtCornerRadius=B.pstyle("corner-radius").value==="auto"?"auto":B.pstyle("corner-radius").pfValue,re=_.tgtRs=B._private.rscratch,J=_.srcRs=P._private.rscratch;_.dirCounts={north:0,west:0,south:0,east:0,northwest:0,southwest:0,northeast:0,southeast:0};for(var K=0;K<_.eles.length;K++){var ae=_.eles[K],Z=ae[0]._private.rscratch,de=ae.pstyle("curve-style").value,ne=de==="unbundled-bezier"||gf(de,"segments")||gf(de,"taxi"),Te=!P.same(ae.source());if(!_.calculatedIntersection&&P!==B&&(_.hasBezier||_.hasUnbundled)){_.calculatedIntersection=!0;var W=oe.intersectLine(V.x,V.y,U,j,$.x,$.y,0,ue,J),Ve=_.srcIntn=W,pe=Q.intersectLine($.x,$.y,ee,q,V.x,V.y,0,te,re),Be=_.tgtIntn=pe,Ye=_.intersectionPts={x1:W[0],x2:pe[0],y1:W[1],y2:pe[1]},He=_.posPts={x1:V.x,x2:$.x,y1:V.y,y2:$.y},Le=pe[1]-W[1],Ie=pe[0]-W[0],Ne=Math.sqrt(Ie*Ie+Le*Le);At(Ne)&&Ne>=xHe||(Ne=Math.sqrt(Math.max(Ie*Ie,px)+Math.max(Le*Le,px)));var Ce=_.vector={x:Ie,y:Le},Fe=_.vectorNorm={x:Ce.x/Ne,y:Ce.y/Ne},fe={x:-Fe.y,y:Fe.x};_.nodesOverlap=!At(Ne)||Q.checkPoint(W[0],W[1],0,ee,q,$.x,$.y,te,re)||oe.checkPoint(pe[0],pe[1],0,U,j,V.x,V.y,ue,J),_.vectorNormInverse=fe,D={nodesOverlap:_.nodesOverlap,dirCounts:_.dirCounts,calculatedIntersection:!0,hasBezier:_.hasBezier,hasUnbundled:_.hasUnbundled,eles:_.eles,srcPos:$,srcRs:re,tgtPos:V,tgtRs:J,srcW:ee,srcH:q,tgtW:U,tgtH:j,srcIntn:Be,tgtIntn:Ve,srcShape:Q,tgtShape:oe,posPts:{x1:He.x2,y1:He.y2,x2:He.x1,y2:He.y1},intersectionPts:{x1:Ye.x2,y1:Ye.y2,x2:Ye.x1,y2:Ye.y1},vector:{x:-Ce.x,y:-Ce.y},vectorNorm:{x:-Fe.x,y:-Fe.y},vectorNormInverse:{x:-fe.x,y:-fe.y}}}var xe=Te?D:_;Z.nodesOverlap=xe.nodesOverlap,Z.srcIntn=xe.srcIntn,Z.tgtIntn=xe.tgtIntn,Z.isRound=de.startsWith("round"),i&&(P.isParent()||P.isChild()||B.isParent()||B.isChild())&&(P.parents().anySame(B)||B.parents().anySame(P)||P.same(B)&&P.isParent())?e.findCompoundLoopPoints(ae,xe,K,ne):P===B?e.findLoopPoints(ae,xe,K,ne):de.endsWith("segments")?e.findSegmentsPoints(ae,xe):de.endsWith("taxi")?e.findTaxiPoints(ae,xe):de==="straight"||!ne&&_.eles.length%2===1&&K===Math.floor(_.eles.length/2)?e.findStraightEdgePoints(ae):e.findBezierPoints(ae,xe,K,ne,Te),e.findEndpoints(ae),e.tryToCorrectInvalidPoints(ae,xe),e.checkForInvalidEdgeWarning(ae),e.storeAllpts(ae),e.storeEdgeProjections(ae),e.calculateArrowAngles(ae),e.recalculateEdgeLabelProjections(ae),e.calculateLabelAngles(ae)}},"_loop"),C=0;C0){var W=h,Ve=mp(W,tg(s)),pe=mp(W,tg(Te)),Be=Ve;if(pe2){var Ye=mp(W,{x:Te[2],y:Te[3]});Ye0){var le=f,ke=mp(le,tg(s)),ve=mp(le,tg(se)),ye=ke;if(ve2){var Re=mp(le,{x:se[2],y:se[3]});Re=g||C){v={cp:S,segment:k};break}}if(v)break}var A=v.cp,L=v.segment,I=(g-x)/L.length,R=L.t1-L.t0,E=m?L.t0+R*I:L.t1-R*I;E=lx(0,E,1),e=ig(A.p0,A.p1,A.p2,E),p=THe(A.p0,A.p1,A.p2,E);break}case"straight":case"segments":case"haystack":{for(var _=0,D,O,N,P,B=n.allpts.length,F=0;F+3=g));F+=2);var V=g-O,$=V/D;$=lx(0,$,1),e=Uze(N,P,$),p=Dhe(N,P);break}}s("labelX",d,e.x),s("labelY",d,e.y),s("labelAutoAngle",d,p)}},"calculateEndProjection");h("source"),h("target"),this.applyLabelDimensions(t)}};Bc.applyLabelDimensions=function(t){this.applyPrefixedLabelDimensions(t),t.isEdge()&&(this.applyPrefixedLabelDimensions(t,"source"),this.applyPrefixedLabelDimensions(t,"target"))};Bc.applyPrefixedLabelDimensions=function(t,e){var r=t._private,n=this.getLabelText(t,e),i=bp(n,t._private.labelDimsKey);if(Us(r.rscratch,"prefixedLabelDimsKey",e)!==i){$u(r.rscratch,"prefixedLabelDimsKey",e,i);var a=this.calculateLabelDimensions(t,n),s=t.pstyle("line-height").pfValue,l=t.pstyle("text-wrap").strValue,u=Us(r.rscratch,"labelWrapCachedLines",e)||[],h=l!=="wrap"?1:Math.max(u.length,1),f=a.height/h,d=f*s,p=a.width,m=a.height+(h-1)*(s-1)*f;$u(r.rstyle,"labelWidth",e,p),$u(r.rscratch,"labelWidth",e,p),$u(r.rstyle,"labelHeight",e,m),$u(r.rscratch,"labelHeight",e,m),$u(r.rscratch,"labelLineHeight",e,d)}};Bc.getLabelText=function(t,e){var r=t._private,n=e?e+"-":"",i=t.pstyle(n+"label").strValue,a=t.pstyle("text-transform").value,s=o(function(j,ee){return ee?($u(r.rscratch,j,e,ee),ee):Us(r.rscratch,j,e)},"rscratch");if(!i)return"";a=="none"||(a=="uppercase"?i=i.toUpperCase():a=="lowercase"&&(i=i.toLowerCase()));var l=t.pstyle("text-wrap").value;if(l==="wrap"){var u=s("labelKey");if(u!=null&&s("labelWrapKey")===u)return s("labelWrapCachedText");for(var h="\u200B",f=i.split(` +`),d=t.pstyle("text-max-width").pfValue,p=t.pstyle("text-overflow-wrap").value,m=p==="anywhere",g=[],y=/[\s\u200b]+|$/g,v=0;vd){var w=x.matchAll(y),k="",C=0,A=qs(w),L;try{for(A.s();!(L=A.n()).done;){var I=L.value,R=I[0],E=x.substring(C,I.index);C=I.index+R.length;var _=k.length===0?E:k+E+R,D=this.calculateLabelDimensions(t,_),O=D.width;O<=d?k+=E+R:(k&&g.push(k),k=E+R)}}catch(U){A.e(U)}finally{A.f()}k.match(/^[\s\u200b]+$/)||g.push(k)}else g.push(x)}s("labelWrapCachedLines",g),i=s("labelWrapCachedText",g.join(` +`)),s("labelWrapKey",u)}else if(l==="ellipsis"){var N=t.pstyle("text-max-width").pfValue,P="",B="\u2026",F=!1;if(this.calculateLabelDimensions(t,i).widthN)break;P+=i[V],V===i.length-1&&(F=!0)}return F||(P+=B),P}return i};Bc.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};Bc.calculateLabelDimensions=function(t,e){var r=this,n=r.cy.window(),i=n.document,a=0,s=t.pstyle("font-style").strValue,l=t.pstyle("font-size").pfValue,u=t.pstyle("font-family").strValue,h=t.pstyle("font-weight").strValue,f=this.labelCalcCanvas,d=this.labelCalcCanvasContext;if(!f){f=this.labelCalcCanvas=i.createElement("canvas"),d=this.labelCalcCanvasContext=f.getContext("2d");var p=f.style;p.position="absolute",p.left="-9999px",p.top="-9999px",p.zIndex="-1",p.visibility="hidden",p.pointerEvents="none"}d.font="".concat(s," ").concat(h," ").concat(l,"px ").concat(u);for(var m=0,g=0,y=e.split(` +`),v=0;v1&&arguments[1]!==void 0?arguments[1]:!0;if(e.merge(s),l)for(var u=0;u=t.desktopTapThreshold2}var bt=a(z);lt&&(t.hoverData.tapholdCancelled=!0);var wt=o(function(){var Se=t.hoverData.dragDelta=t.hoverData.dragDelta||[];Se.length===0?(Se.push(et[0]),Se.push(et[1])):(Se[0]+=et[0],Se[1]+=et[1])},"updateDragDelta");le=!0,i(xt,["mousemove","vmousemove","tapdrag"],z,{x:Re[0],y:Re[1]});var yt=o(function(Se){return{originalEvent:z,type:Se,position:{x:Re[0],y:Re[1]}}},"makeEvent"),ft=o(function(){t.data.bgActivePosistion=void 0,t.hoverData.selecting||ke.emit(yt("boxstart")),Ke[4]=1,t.hoverData.selecting=!0,t.redrawHint("select",!0),t.redraw()},"goIntoBoxMode");if(t.hoverData.which===3){if(lt){var Ur=yt("cxtdrag");Oe?Oe.emit(Ur):ke.emit(Ur),t.hoverData.cxtDragged=!0,(!t.hoverData.cxtOver||xt!==t.hoverData.cxtOver)&&(t.hoverData.cxtOver&&t.hoverData.cxtOver.emit(yt("cxtdragout")),t.hoverData.cxtOver=xt,xt&&xt.emit(yt("cxtdragover")))}}else if(t.hoverData.dragging){if(le=!0,ke.panningEnabled()&&ke.userPanningEnabled()){var _t;if(t.hoverData.justStartedPan){var bn=t.hoverData.mdownPos;_t={x:(Re[0]-bn[0])*ve,y:(Re[1]-bn[1])*ve},t.hoverData.justStartedPan=!1}else _t={x:et[0]*ve,y:et[1]*ve};ke.panBy(_t),ke.emit(yt("dragpan")),t.hoverData.dragged=!0}Re=t.projectIntoViewport(z.clientX,z.clientY)}else if(Ke[4]==1&&(Oe==null||Oe.pannable())){if(lt){if(!t.hoverData.dragging&&ke.boxSelectionEnabled()&&(bt||!ke.panningEnabled()||!ke.userPanningEnabled()))ft();else if(!t.hoverData.selecting&&ke.panningEnabled()&&ke.userPanningEnabled()){var Br=s(Oe,t.hoverData.downs);Br&&(t.hoverData.dragging=!0,t.hoverData.justStartedPan=!0,Ke[4]=0,t.data.bgActivePosistion=tg(_e),t.redrawHint("select",!0),t.redraw())}Oe&&Oe.pannable()&&Oe.active()&&Oe.unactivate()}}else{if(Oe&&Oe.pannable()&&Oe.active()&&Oe.unactivate(),(!Oe||!Oe.grabbed())&&xt!=We&&(We&&i(We,["mouseout","tapdragout"],z,{x:Re[0],y:Re[1]}),xt&&i(xt,["mouseover","tapdragover"],z,{x:Re[0],y:Re[1]}),t.hoverData.last=xt),Oe)if(lt){if(ke.boxSelectionEnabled()&&bt)Oe&&Oe.grabbed()&&(x(Ue),Oe.emit(yt("freeon")),Ue.emit(yt("free")),t.dragData.didDrag&&(Oe.emit(yt("dragfreeon")),Ue.emit(yt("dragfree")))),ft();else if(Oe&&Oe.grabbed()&&t.nodeIsDraggable(Oe)){var cr=!t.dragData.didDrag;cr&&t.redrawHint("eles",!0),t.dragData.didDrag=!0,t.hoverData.draggingEles||y(Ue,{inDragLayer:!0});var ar={x:0,y:0};if(At(et[0])&&At(et[1])&&(ar.x+=et[0],ar.y+=et[1],cr)){var _r=t.hoverData.dragDelta;_r&&At(_r[0])&&At(_r[1])&&(ar.x+=_r[0],ar.y+=_r[1])}t.hoverData.draggingEles=!0,Ue.silentShift(ar).emit(yt("position")).emit(yt("drag")),t.redrawHint("drag",!0),t.redraw()}}else wt();le=!0}if(Ke[2]=Re[0],Ke[3]=Re[1],le)return z.stopPropagation&&z.stopPropagation(),z.preventDefault&&z.preventDefault(),!1}},"mousemoveHandler"),!1);var E,_,D;t.registerBinding(e,"mouseup",o(function(z){if(!(t.hoverData.which===1&&z.which!==1&&t.hoverData.capture)){var se=t.hoverData.capture;if(se){t.hoverData.capture=!1;var le=t.cy,ke=t.projectIntoViewport(z.clientX,z.clientY),ve=t.selection,ye=t.findNearestElement(ke[0],ke[1],!0,!1),Re=t.dragData.possibleDragElements,_e=t.hoverData.down,ze=a(z);t.data.bgActivePosistion&&(t.redrawHint("select",!0),t.redraw()),t.hoverData.tapholdCancelled=!0,t.data.bgActivePosistion=void 0,_e&&_e.unactivate();var Ke=o(function(Gt){return{originalEvent:z,type:Gt,position:{x:ke[0],y:ke[1]}}},"makeEvent");if(t.hoverData.which===3){var xt=Ke("cxttapend");if(_e?_e.emit(xt):le.emit(xt),!t.hoverData.cxtDragged){var We=Ke("cxttap");_e?_e.emit(We):le.emit(We)}t.hoverData.cxtDragged=!1,t.hoverData.which=null}else if(t.hoverData.which===1){if(i(ye,["mouseup","tapend","vmouseup"],z,{x:ke[0],y:ke[1]}),!t.dragData.didDrag&&!t.hoverData.dragged&&!t.hoverData.selecting&&!t.hoverData.isOverThresholdDrag&&(i(_e,["click","tap","vclick"],z,{x:ke[0],y:ke[1]}),_=!1,z.timeStamp-D<=le.multiClickDebounceTime()?(E&&clearTimeout(E),_=!0,D=null,i(_e,["dblclick","dbltap","vdblclick"],z,{x:ke[0],y:ke[1]})):(E=setTimeout(function(){_||i(_e,["oneclick","onetap","voneclick"],z,{x:ke[0],y:ke[1]})},le.multiClickDebounceTime()),D=z.timeStamp)),_e==null&&!t.dragData.didDrag&&!t.hoverData.selecting&&!t.hoverData.dragged&&!a(z)&&(le.$(r).unselect(["tapunselect"]),Re.length>0&&t.redrawHint("eles",!0),t.dragData.possibleDragElements=Re=le.collection()),ye==_e&&!t.dragData.didDrag&&!t.hoverData.selecting&&ye!=null&&ye._private.selectable&&(t.hoverData.dragging||(le.selectionType()==="additive"||ze?ye.selected()?ye.unselect(["tapunselect"]):ye.select(["tapselect"]):ze||(le.$(r).unmerge(ye).unselect(["tapunselect"]),ye.select(["tapselect"]))),t.redrawHint("eles",!0)),t.hoverData.selecting){var Oe=le.collection(t.getAllInBox(ve[0],ve[1],ve[2],ve[3]));t.redrawHint("select",!0),Oe.length>0&&t.redrawHint("eles",!0),le.emit(Ke("boxend"));var et=o(function(Gt){return Gt.selectable()&&!Gt.selected()},"eleWouldBeSelected");le.selectionType()==="additive"||ze||le.$(r).unmerge(Oe).unselect(),Oe.emit(Ke("box")).stdFilter(et).select().emit(Ke("boxselect")),t.redraw()}if(t.hoverData.dragging&&(t.hoverData.dragging=!1,t.redrawHint("select",!0),t.redrawHint("eles",!0),t.redraw()),!ve[4]){t.redrawHint("drag",!0),t.redrawHint("eles",!0);var Ue=_e&&_e.grabbed();x(Re),Ue&&(_e.emit(Ke("freeon")),Re.emit(Ke("free")),t.dragData.didDrag&&(_e.emit(Ke("dragfreeon")),Re.emit(Ke("dragfree"))))}}ve[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}}},"mouseupHandler"),!1);var O=[],N=4,P,B=1e5,F=o(function(z,se){for(var le=0;le=N){var ke=O;if(P=F(ke,5),!P){var ve=Math.abs(ke[0]);P=V(ke)&&ve>5}if(P)for(var ye=0;ye5&&(le=yI(le)*5),We=le/-250,P&&(We/=B,We*=3),We=We*t.wheelSensitivity;var Oe=z.deltaMode===1;Oe&&(We*=33);var et=Re.zoom()*Math.pow(10,We);z.type==="gesturechange"&&(et=t.gestureStartZoom*z.scale),Re.zoom({level:et,renderedPosition:{x:xt[0],y:xt[1]}}),Re.emit({type:z.type==="gesturechange"?"pinchzoom":"scrollzoom",originalEvent:z,position:{x:Ke[0],y:Ke[1]}})}}}},"wheelHandler");t.registerBinding(t.container,"wheel",$,!0),t.registerBinding(e,"scroll",o(function(z){t.scrollingPage=!0,clearTimeout(t.scrollingPageTimeout),t.scrollingPageTimeout=setTimeout(function(){t.scrollingPage=!1},250)},"scrollHandler"),!0),t.registerBinding(t.container,"gesturestart",o(function(z){t.gestureStartZoom=t.cy.zoom(),t.hasTouchStarted||z.preventDefault()},"gestureStartHandler"),!0),t.registerBinding(t.container,"gesturechange",function(he){t.hasTouchStarted||$(he)},!0),t.registerBinding(t.container,"mouseout",o(function(z){var se=t.projectIntoViewport(z.clientX,z.clientY);t.cy.emit({originalEvent:z,type:"mouseout",position:{x:se[0],y:se[1]}})},"mouseOutHandler"),!1),t.registerBinding(t.container,"mouseover",o(function(z){var se=t.projectIntoViewport(z.clientX,z.clientY);t.cy.emit({originalEvent:z,type:"mouseover",position:{x:se[0],y:se[1]}})},"mouseOverHandler"),!1);var U,j,ee,q,oe,Q,ue,te,re,J,K,ae,Z,de=o(function(z,se,le,ke){return Math.sqrt((le-z)*(le-z)+(ke-se)*(ke-se))},"distance"),ne=o(function(z,se,le,ke){return(le-z)*(le-z)+(ke-se)*(ke-se)},"distanceSq"),Te;t.registerBinding(t.container,"touchstart",Te=o(function(z){if(t.hasTouchStarted=!0,!!I(z)){T(),t.touchData.capture=!0,t.data.bgActivePosistion=void 0;var se=t.cy,le=t.touchData.now,ke=t.touchData.earlier;if(z.touches[0]){var ve=t.projectIntoViewport(z.touches[0].clientX,z.touches[0].clientY);le[0]=ve[0],le[1]=ve[1]}if(z.touches[1]){var ve=t.projectIntoViewport(z.touches[1].clientX,z.touches[1].clientY);le[2]=ve[0],le[3]=ve[1]}if(z.touches[2]){var ve=t.projectIntoViewport(z.touches[2].clientX,z.touches[2].clientY);le[4]=ve[0],le[5]=ve[1]}var ye=o(function(bt){return{originalEvent:z,type:bt,position:{x:le[0],y:le[1]}}},"makeEvent");if(z.touches[1]){t.touchData.singleTouchMoved=!0,x(t.dragData.touchDragEles);var Re=t.findContainerClientCoords();re=Re[0],J=Re[1],K=Re[2],ae=Re[3],U=z.touches[0].clientX-re,j=z.touches[0].clientY-J,ee=z.touches[1].clientX-re,q=z.touches[1].clientY-J,Z=0<=U&&U<=K&&0<=ee&&ee<=K&&0<=j&&j<=ae&&0<=q&&q<=ae;var _e=se.pan(),ze=se.zoom();oe=de(U,j,ee,q),Q=ne(U,j,ee,q),ue=[(U+ee)/2,(j+q)/2],te=[(ue[0]-_e.x)/ze,(ue[1]-_e.y)/ze];var Ke=200,xt=Ke*Ke;if(Q=1){for(var vt=t.touchData.startPosition=[null,null,null,null,null,null],Lt=0;Lt=t.touchTapThreshold2}if(se&&t.touchData.cxt){z.preventDefault();var Lt=z.touches[0].clientX-re,dt=z.touches[0].clientY-J,nt=z.touches[1].clientX-re,bt=z.touches[1].clientY-J,wt=ne(Lt,dt,nt,bt),yt=wt/Q,ft=150,Ur=ft*ft,_t=1.5,bn=_t*_t;if(yt>=bn||wt>=Ur){t.touchData.cxt=!1,t.data.bgActivePosistion=void 0,t.redrawHint("select",!0);var Br=ze("cxttapend");t.touchData.start?(t.touchData.start.unactivate().emit(Br),t.touchData.start=null):ke.emit(Br)}}if(se&&t.touchData.cxt){var Br=ze("cxtdrag");t.data.bgActivePosistion=void 0,t.redrawHint("select",!0),t.touchData.start?t.touchData.start.emit(Br):ke.emit(Br),t.touchData.start&&(t.touchData.start._private.grabbed=!1),t.touchData.cxtDragged=!0;var cr=t.findNearestElement(ve[0],ve[1],!0,!0);(!t.touchData.cxtOver||cr!==t.touchData.cxtOver)&&(t.touchData.cxtOver&&t.touchData.cxtOver.emit(ze("cxtdragout")),t.touchData.cxtOver=cr,cr&&cr.emit(ze("cxtdragover")))}else if(se&&z.touches[2]&&ke.boxSelectionEnabled())z.preventDefault(),t.data.bgActivePosistion=void 0,this.lastThreeTouch=+new Date,t.touchData.selecting||ke.emit(ze("boxstart")),t.touchData.selecting=!0,t.touchData.didSelect=!0,le[4]=1,!le||le.length===0||le[0]===void 0?(le[0]=(ve[0]+ve[2]+ve[4])/3,le[1]=(ve[1]+ve[3]+ve[5])/3,le[2]=(ve[0]+ve[2]+ve[4])/3+1,le[3]=(ve[1]+ve[3]+ve[5])/3+1):(le[2]=(ve[0]+ve[2]+ve[4])/3,le[3]=(ve[1]+ve[3]+ve[5])/3),t.redrawHint("select",!0),t.redraw();else if(se&&z.touches[1]&&!t.touchData.didSelect&&ke.zoomingEnabled()&&ke.panningEnabled()&&ke.userZoomingEnabled()&&ke.userPanningEnabled()){z.preventDefault(),t.data.bgActivePosistion=void 0,t.redrawHint("select",!0);var ar=t.dragData.touchDragEles;if(ar){t.redrawHint("drag",!0);for(var _r=0;_r0&&!t.hoverData.draggingEles&&!t.swipePanning&&t.data.bgActivePosistion!=null&&(t.data.bgActivePosistion=void 0,t.redrawHint("select",!0),t.redraw())}},"touchmoveHandler"),!1);var Ve;t.registerBinding(e,"touchcancel",Ve=o(function(z){var se=t.touchData.start;t.touchData.capture=!1,se&&se.unactivate()},"touchcancelHandler"));var pe,Be,Ye,He;if(t.registerBinding(e,"touchend",pe=o(function(z){var se=t.touchData.start,le=t.touchData.capture;if(le)z.touches.length===0&&(t.touchData.capture=!1),z.preventDefault();else return;var ke=t.selection;t.swipePanning=!1,t.hoverData.draggingEles=!1;var ve=t.cy,ye=ve.zoom(),Re=t.touchData.now,_e=t.touchData.earlier;if(z.touches[0]){var ze=t.projectIntoViewport(z.touches[0].clientX,z.touches[0].clientY);Re[0]=ze[0],Re[1]=ze[1]}if(z.touches[1]){var ze=t.projectIntoViewport(z.touches[1].clientX,z.touches[1].clientY);Re[2]=ze[0],Re[3]=ze[1]}if(z.touches[2]){var ze=t.projectIntoViewport(z.touches[2].clientX,z.touches[2].clientY);Re[4]=ze[0],Re[5]=ze[1]}var Ke=o(function(Ur){return{originalEvent:z,type:Ur,position:{x:Re[0],y:Re[1]}}},"makeEvent");se&&se.unactivate();var xt;if(t.touchData.cxt){if(xt=Ke("cxttapend"),se?se.emit(xt):ve.emit(xt),!t.touchData.cxtDragged){var We=Ke("cxttap");se?se.emit(We):ve.emit(We)}t.touchData.start&&(t.touchData.start._private.grabbed=!1),t.touchData.cxt=!1,t.touchData.start=null,t.redraw();return}if(!z.touches[2]&&ve.boxSelectionEnabled()&&t.touchData.selecting){t.touchData.selecting=!1;var Oe=ve.collection(t.getAllInBox(ke[0],ke[1],ke[2],ke[3]));ke[0]=void 0,ke[1]=void 0,ke[2]=void 0,ke[3]=void 0,ke[4]=0,t.redrawHint("select",!0),ve.emit(Ke("boxend"));var et=o(function(Ur){return Ur.selectable()&&!Ur.selected()},"eleWouldBeSelected");Oe.emit(Ke("box")).stdFilter(et).select().emit(Ke("boxselect")),Oe.nonempty()&&t.redrawHint("eles",!0),t.redraw()}if(se?.unactivate(),z.touches[2])t.data.bgActivePosistion=void 0,t.redrawHint("select",!0);else if(!z.touches[1]){if(!z.touches[0]){if(!z.touches[0]){t.data.bgActivePosistion=void 0,t.redrawHint("select",!0);var Ue=t.dragData.touchDragEles;if(se!=null){var lt=se._private.grabbed;x(Ue),t.redrawHint("drag",!0),t.redrawHint("eles",!0),lt&&(se.emit(Ke("freeon")),Ue.emit(Ke("free")),t.dragData.didDrag&&(se.emit(Ke("dragfreeon")),Ue.emit(Ke("dragfree")))),i(se,["touchend","tapend","vmouseup","tapdragout"],z,{x:Re[0],y:Re[1]}),se.unactivate(),t.touchData.start=null}else{var Gt=t.findNearestElement(Re[0],Re[1],!0,!0);i(Gt,["touchend","tapend","vmouseup","tapdragout"],z,{x:Re[0],y:Re[1]})}var vt=t.touchData.startPosition[0]-Re[0],Lt=vt*vt,dt=t.touchData.startPosition[1]-Re[1],nt=dt*dt,bt=Lt+nt,wt=bt*ye*ye;t.touchData.singleTouchMoved||(se||ve.$(":selected").unselect(["tapunselect"]),i(se,["tap","vclick"],z,{x:Re[0],y:Re[1]}),Be=!1,z.timeStamp-He<=ve.multiClickDebounceTime()?(Ye&&clearTimeout(Ye),Be=!0,He=null,i(se,["dbltap","vdblclick"],z,{x:Re[0],y:Re[1]})):(Ye=setTimeout(function(){Be||i(se,["onetap","voneclick"],z,{x:Re[0],y:Re[1]})},ve.multiClickDebounceTime()),He=z.timeStamp)),se!=null&&!t.dragData.didDrag&&se._private.selectable&&wt"u"){var Le=[],Ie=o(function(z){return{clientX:z.clientX,clientY:z.clientY,force:1,identifier:z.pointerId,pageX:z.pageX,pageY:z.pageY,radiusX:z.width/2,radiusY:z.height/2,screenX:z.screenX,screenY:z.screenY,target:z.target}},"makeTouch"),Ne=o(function(z){return{event:z,touch:Ie(z)}},"makePointer"),Ce=o(function(z){Le.push(Ne(z))},"addPointer"),Fe=o(function(z){for(var se=0;se0)return U[0]}return null},"getCurveT"),g=Object.keys(p),y=0;y0?m:Rue(a,s,e,r,n,i,l,u)},"intersectLine"),checkPoint:o(function(e,r,n,i,a,s,l,u){u=u==="auto"?kf(i,a):u;var h=2*u;if(Vu(e,r,this.points,s,l,i,a-h,[0,-1],n)||Vu(e,r,this.points,s,l,i-h,a,[0,-1],n))return!0;var f=i/2+2*n,d=a/2+2*n,p=[s-f,l-d,s-f,l,s+f,l,s+f,l-d];return!!(Hs(e,r,p)||xp(e,r,h,h,s+i/2-u,l+a/2-u,n)||xp(e,r,h,h,s-i/2+u,l+a/2-u,n))},"checkPoint")}};Uu.registerNodeShapes=function(){var t=this.nodeShapes={},e=this;this.generateEllipse(),this.generatePolygon("triangle",ls(3,0)),this.generateRoundPolygon("round-triangle",ls(3,0)),this.generatePolygon("rectangle",ls(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",ls(5,0)),this.generateRoundPolygon("round-pentagon",ls(5,0)),this.generatePolygon("hexagon",ls(6,0)),this.generateRoundPolygon("round-hexagon",ls(6,0)),this.generatePolygon("heptagon",ls(7,0)),this.generateRoundPolygon("round-heptagon",ls(7,0)),this.generatePolygon("octagon",ls(8,0)),this.generateRoundPolygon("round-octagon",ls(8,0));var n=new Array(20);{var i=HM(5,0),a=HM(5,Math.PI/5),s=.5*(3-Math.sqrt(5));s*=1.57;for(var l=0;l=e.deqFastCost*S)break}else if(h){if(b>=e.deqCost*m||b>=e.deqAvgCost*p)break}else if(T>=e.deqNoDrawCost*OM)break;var w=e.deq(n,v,y);if(w.length>0)for(var k=0;k0&&(e.onDeqd(n,g),!h&&e.shouldRedraw(n,g,v,y)&&a())},"dequeue"),l=e.priority||pI;i.beforeRender(s,l(n))}},"setupDequeueingImpl")},"setupDequeueing")},kHe=(function(){function t(e){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:Zk;Af(this,t),this.idsByKey=new zu,this.keyForId=new zu,this.cachesByLvl=new zu,this.lvls=[],this.getKey=e,this.doesEleInvalidateKey=r}return o(t,"ElementTextureCacheLookup"),_f(t,[{key:"getIdsFor",value:o(function(r){r==null&&Kn("Can not get id list for null key");var n=this.idsByKey,i=this.idsByKey.get(r);return i||(i=new hg,n.set(r,i)),i},"getIdsFor")},{key:"addIdForKey",value:o(function(r,n){r!=null&&this.getIdsFor(r).add(n)},"addIdForKey")},{key:"deleteIdForKey",value:o(function(r,n){r!=null&&this.getIdsFor(r).delete(n)},"deleteIdForKey")},{key:"getNumberOfIdsForKey",value:o(function(r){return r==null?0:this.getIdsFor(r).size},"getNumberOfIdsForKey")},{key:"updateKeyMappingFor",value:o(function(r){var n=r.id(),i=this.keyForId.get(n),a=this.getKey(r);this.deleteIdForKey(i,n),this.addIdForKey(a,n),this.keyForId.set(n,a)},"updateKeyMappingFor")},{key:"deleteKeyMappingFor",value:o(function(r){var n=r.id(),i=this.keyForId.get(n);this.deleteIdForKey(i,n),this.keyForId.delete(n)},"deleteKeyMappingFor")},{key:"keyHasChangedFor",value:o(function(r){var n=r.id(),i=this.keyForId.get(n),a=this.getKey(r);return i!==a},"keyHasChangedFor")},{key:"isInvalid",value:o(function(r){return this.keyHasChangedFor(r)||this.doesEleInvalidateKey(r)},"isInvalid")},{key:"getCachesAt",value:o(function(r){var n=this.cachesByLvl,i=this.lvls,a=n.get(r);return a||(a=new zu,n.set(r,a),i.push(r)),a},"getCachesAt")},{key:"getCache",value:o(function(r,n){return this.getCachesAt(n).get(r)},"getCache")},{key:"get",value:o(function(r,n){var i=this.getKey(r),a=this.getCache(i,n);return a!=null&&this.updateKeyMappingFor(r),a},"get")},{key:"getForCachedKey",value:o(function(r,n){var i=this.keyForId.get(r.id()),a=this.getCache(i,n);return a},"getForCachedKey")},{key:"hasCache",value:o(function(r,n){return this.getCachesAt(n).has(r)},"hasCache")},{key:"has",value:o(function(r,n){var i=this.getKey(r);return this.hasCache(i,n)},"has")},{key:"setCache",value:o(function(r,n,i){i.key=r,this.getCachesAt(n).set(r,i)},"setCache")},{key:"set",value:o(function(r,n,i){var a=this.getKey(r);this.setCache(a,n,i),this.updateKeyMappingFor(r)},"set")},{key:"deleteCache",value:o(function(r,n){this.getCachesAt(n).delete(r)},"deleteCache")},{key:"delete",value:o(function(r,n){var i=this.getKey(r);this.deleteCache(i,n)},"_delete")},{key:"invalidateKey",value:o(function(r){var n=this;this.lvls.forEach(function(i){return n.deleteCache(r,i)})},"invalidateKey")},{key:"invalidate",value:o(function(r){var n=r.id(),i=this.keyForId.get(n);this.deleteKeyMappingFor(r);var a=this.doesEleInvalidateKey(r);return a&&this.invalidateKey(i),a||this.getNumberOfIdsForKey(i)===0},"invalidate")}])})(),Yce=25,Pk=50,Yk=-4,iI=3,Ohe=7.99,EHe=8,SHe=1024,CHe=1024,AHe=1024,_He=.2,DHe=.8,LHe=10,RHe=.15,NHe=.1,MHe=.9,IHe=.9,OHe=100,PHe=1,ng={dequeue:"dequeue",downscale:"downscale",highQuality:"highQuality"},BHe=ba({getKey:null,doesEleInvalidateKey:Zk,drawElement:null,getBoundingBox:null,getRotationPoint:null,getRotationOffset:null,isVisible:Eue,allowEdgeTxrCaching:!0,allowParentTxrCaching:!0}),tx=o(function(e,r){var n=this;n.renderer=e,n.onDequeues=[];var i=BHe(r);ir(n,i),n.lookup=new kHe(i.getKey,i.doesEleInvalidateKey),n.setupDequeueing()},"ElementTextureCache"),zi=tx.prototype;zi.reasons=ng;zi.getTextureQueue=function(t){var e=this;return e.eleImgCaches=e.eleImgCaches||{},e.eleImgCaches[t]=e.eleImgCaches[t]||[]};zi.getRetiredTextureQueue=function(t){var e=this,r=e.eleImgCaches.retired=e.eleImgCaches.retired||{},n=r[t]=r[t]||[];return n};zi.getElementQueue=function(){var t=this,e=t.eleCacheQueue=t.eleCacheQueue||new Tx(function(r,n){return n.reqs-r.reqs});return e};zi.getElementKeyToQueue=function(){var t=this,e=t.eleKeyToCacheQueue=t.eleKeyToCacheQueue||{};return e};zi.getElement=function(t,e,r,n,i){var a=this,s=this.renderer,l=s.cy.zoom(),u=this.lookup;if(!e||e.w===0||e.h===0||isNaN(e.w)||isNaN(e.h)||!t.visible()||t.removed()||!a.allowEdgeTxrCaching&&t.isEdge()||!a.allowParentTxrCaching&&t.isParent())return null;if(n==null&&(n=Math.ceil(gI(l*r))),n=Ohe||n>iI)return null;var h=Math.pow(2,n),f=e.h*h,d=e.w*h,p=s.eleTextBiggerThanMin(t,h);if(!this.isVisible(t,p))return null;var m=u.get(t,n);if(m&&m.invalidated&&(m.invalidated=!1,m.texture.invalidatedWidth-=m.width),m)return m;var g;if(f<=Yce?g=Yce:f<=Pk?g=Pk:g=Math.ceil(f/Pk)*Pk,f>AHe||d>CHe)return null;var y=a.getTextureQueue(g),v=y[y.length-2],x=o(function(){return a.recycleTexture(g,d)||a.addTexture(g,d)},"addNewTxr");v||(v=y[y.length-1]),v||(v=x()),v.width-v.usedWidthn;R--)L=a.getElement(t,e,r,R,ng.downscale);I()}else return a.queueElement(t,k.level-1),k;else{var E;if(!T&&!S&&!w)for(var _=n-1;_>=Yk;_--){var D=u.get(t,_);if(D){E=D;break}}if(b(E))return a.queueElement(t,n),E;v.context.translate(v.usedWidth,0),v.context.scale(h,h),this.drawElement(v.context,t,e,p,!1),v.context.scale(1/h,1/h),v.context.translate(-v.usedWidth,0)}return m={x:v.usedWidth,texture:v,level:n,scale:h,width:d,height:f,scaledLabelShown:p},v.usedWidth+=Math.ceil(d+EHe),v.eleCaches.push(m),u.set(t,n,m),a.checkTextureFullness(v),m};zi.invalidateElements=function(t){for(var e=0;e=_He*t.width&&this.retireTexture(t)};zi.checkTextureFullness=function(t){var e=this,r=e.getTextureQueue(t.height);t.usedWidth/t.width>DHe&&t.fullnessChecks>=LHe?wf(r,t):t.fullnessChecks++};zi.retireTexture=function(t){var e=this,r=t.height,n=e.getTextureQueue(r),i=this.lookup;wf(n,t),t.retired=!0;for(var a=t.eleCaches,s=0;s=e)return s.retired=!1,s.usedWidth=0,s.invalidatedWidth=0,s.fullnessChecks=0,mI(s.eleCaches),s.context.setTransform(1,0,0,1,0,0),s.context.clearRect(0,0,s.width,s.height),wf(i,s),n.push(s),s}};zi.queueElement=function(t,e){var r=this,n=r.getElementQueue(),i=r.getElementKeyToQueue(),a=this.getKey(t),s=i[a];if(s)s.level=Math.max(s.level,e),s.eles.merge(t),s.reqs++,n.updateItem(s);else{var l={eles:t.spawn().merge(t),level:e,reqs:1,key:a};n.push(l),i[a]=l}};zi.dequeue=function(t){for(var e=this,r=e.getElementQueue(),n=e.getElementKeyToQueue(),i=[],a=e.lookup,s=0;s0;s++){var l=r.pop(),u=l.key,h=l.eles[0],f=a.hasCache(h,l.level);if(n[u]=null,f)continue;i.push(l);var d=e.getBoundingBox(h);e.getElement(h,d,t,l.level,ng.dequeue)}return i};zi.removeFromQueue=function(t){var e=this,r=e.getElementQueue(),n=e.getElementKeyToQueue(),i=this.getKey(t),a=n[i];a!=null&&(a.eles.length===1?(a.reqs=dI,r.updateItem(a),r.pop(),n[i]=null):a.eles.unmerge(t))};zi.onDequeue=function(t){this.onDequeues.push(t)};zi.offDequeue=function(t){wf(this.onDequeues,t)};zi.setupDequeueing=Ihe.setupDequeueing({deqRedrawThreshold:OHe,deqCost:RHe,deqAvgCost:NHe,deqNoDrawCost:MHe,deqFastCost:IHe,deq:o(function(e,r,n){return e.dequeue(r,n)},"deq"),onDeqd:o(function(e,r){for(var n=0;n=$He||r>sE)return null}n.validateLayersElesOrdering(r,t);var u=n.layersByLevel,h=Math.pow(2,r),f=u[r]=u[r]||[],d,p=n.levelIsComplete(r,t),m,g=o(function(){var I=o(function(O){if(n.validateLayersElesOrdering(O,t),n.levelIsComplete(O,t))return m=u[O],!0},"canUseAsTmpLvl"),R=o(function(O){if(!m)for(var N=r+O;nx<=N&&N<=sE&&!I(N);N+=O);},"checkLvls");R(1),R(-1);for(var E=f.length-1;E>=0;E--){var _=f[E];_.invalid&&wf(f,_)}},"checkTempLevels");if(!p)g();else return f;var y=o(function(){if(!d){d=cs();for(var I=0;Ijce||_>jce)return null;var D=E*_;if(D>YHe)return null;var O=n.makeLayer(d,r);if(R!=null){var N=f.indexOf(R)+1;f.splice(N,0,O)}else(I.insert===void 0||I.insert)&&f.unshift(O);return O},"makeLayer");if(n.skipping&&!l)return null;for(var x=null,b=t.length/FHe,T=!l,S=0;S=b||!Lue(x.bb,w.boundingBox()))&&(x=v({insert:!0,after:x}),!x))return null;m||T?n.queueLayer(x,w):n.drawEleInLayer(x,w,r,e),x.eles.push(w),C[r]=x}return m||(T?null:f)};Ta.getEleLevelForLayerLevel=function(t,e){return t};Ta.drawEleInLayer=function(t,e,r,n){var i=this,a=this.renderer,s=t.context,l=e.boundingBox();l.w===0||l.h===0||!e.visible()||(r=i.getEleLevelForLayerLevel(r,n),a.setImgSmoothing(s,!1),a.drawCachedElement(s,e,null,null,r,XHe),a.setImgSmoothing(s,!0))};Ta.levelIsComplete=function(t,e){var r=this,n=r.layersByLevel[t];if(!n||n.length===0)return!1;for(var i=0,a=0;a0||s.invalid)return!1;i+=s.eles.length}return i===e.length};Ta.validateLayersElesOrdering=function(t,e){var r=this.layersByLevel[t];if(r)for(var n=0;n0){e=!0;break}}return e};Ta.invalidateElements=function(t){var e=this;t.length!==0&&(e.lastInvalidationTime=Gu(),!(t.length===0||!e.haveLayers())&&e.updateElementsInLayers(t,o(function(n,i,a){e.invalidateLayer(n)},"invalAssocLayers")))};Ta.invalidateLayer=function(t){if(this.lastInvalidationTime=Gu(),!t.invalid){var e=t.level,r=t.eles,n=this.layersByLevel[e];wf(n,t),t.elesQueue=[],t.invalid=!0,t.replacement&&(t.replacement.invalid=!0);for(var i=0;i3&&arguments[3]!==void 0?arguments[3]:!0,i=arguments.length>4&&arguments[4]!==void 0?arguments[4]:!0,a=arguments.length>5&&arguments[5]!==void 0?arguments[5]:!0,s=this,l=e._private.rscratch;if(!(a&&!e.visible())&&!(l.badLine||l.allpts==null||isNaN(l.allpts[0]))){var u;r&&(u=r,t.translate(-u.x1,-u.y1));var h=a?e.pstyle("opacity").value:1,f=a?e.pstyle("line-opacity").value:1,d=e.pstyle("curve-style").value,p=e.pstyle("line-style").value,m=e.pstyle("width").pfValue,g=e.pstyle("line-cap").value,y=e.pstyle("line-outline-width").value,v=e.pstyle("line-outline-color").value,x=h*f,b=h*f,T=o(function(){var O=arguments.length>0&&arguments[0]!==void 0?arguments[0]:x;d==="straight-triangle"?(s.eleStrokeStyle(t,e,O),s.drawEdgeTrianglePath(e,t,l.allpts)):(t.lineWidth=m,t.lineCap=g,s.eleStrokeStyle(t,e,O),s.drawEdgePath(e,t,l.allpts,p),t.lineCap="butt")},"drawLine"),S=o(function(){var O=arguments.length>0&&arguments[0]!==void 0?arguments[0]:x;if(t.lineWidth=m+y,t.lineCap=g,y>0)s.colorStrokeStyle(t,v[0],v[1],v[2],O);else{t.lineCap="butt";return}d==="straight-triangle"?s.drawEdgeTrianglePath(e,t,l.allpts):(s.drawEdgePath(e,t,l.allpts,p),t.lineCap="butt")},"drawLineOutline"),w=o(function(){i&&s.drawEdgeOverlay(t,e)},"drawOverlay"),k=o(function(){i&&s.drawEdgeUnderlay(t,e)},"drawUnderlay"),C=o(function(){var O=arguments.length>0&&arguments[0]!==void 0?arguments[0]:b;s.drawArrowheads(t,e,O)},"drawArrows"),A=o(function(){s.drawElementText(t,e,null,n)},"drawText");t.lineJoin="round";var L=e.pstyle("ghost").value==="yes";if(L){var I=e.pstyle("ghost-offset-x").pfValue,R=e.pstyle("ghost-offset-y").pfValue,E=e.pstyle("ghost-opacity").value,_=x*E;t.translate(I,R),T(_),C(_),t.translate(-I,-R)}else S();k(),T(),C(),w(),A(),r&&t.translate(u.x1,u.y1)}};Fhe=o(function(e){if(!["overlay","underlay"].includes(e))throw new Error("Invalid state");return function(r,n){if(n.visible()){var i=n.pstyle("".concat(e,"-opacity")).value;if(i!==0){var a=this,s=a.usePaths(),l=n._private.rscratch,u=n.pstyle("".concat(e,"-padding")).pfValue,h=2*u,f=n.pstyle("".concat(e,"-color")).value;r.lineWidth=h,l.edgeType==="self"&&!s?r.lineCap="butt":r.lineCap="round",a.colorStrokeStyle(r,f[0],f[1],f[2],i),a.drawEdgePath(n,r,l.allpts,"solid")}}}},"drawEdgeOverlayUnderlay");Hu.drawEdgeOverlay=Fhe("overlay");Hu.drawEdgeUnderlay=Fhe("underlay");Hu.drawEdgePath=function(t,e,r,n){var i=t._private.rscratch,a=e,s,l=!1,u=this.usePaths(),h=t.pstyle("line-dash-pattern").pfValue,f=t.pstyle("line-dash-offset").pfValue;if(u){var d=r.join("$"),p=i.pathCacheKey&&i.pathCacheKey===d;p?(s=e=i.pathCache,l=!0):(s=e=new Path2D,i.pathCacheKey=d,i.pathCache=s)}if(a.setLineDash)switch(n){case"dotted":a.setLineDash([1,1]);break;case"dashed":a.setLineDash(h),a.lineDashOffset=f;break;case"solid":a.setLineDash([]);break}if(!l&&!i.badLine)switch(e.beginPath&&e.beginPath(),e.moveTo(r[0],r[1]),i.edgeType){case"bezier":case"self":case"compound":case"multibezier":for(var m=2;m+35&&arguments[5]!==void 0?arguments[5]:!0,s=this;if(n==null){if(a&&!s.eleTextBiggerThanMin(e))return}else if(n===!1)return;if(e.isNode()){var l=e.pstyle("label");if(!l||!l.value)return;var u=s.getLabelJustification(e);t.textAlign=u,t.textBaseline="bottom"}else{var h=e.element()._private.rscratch.badLine,f=e.pstyle("label"),d=e.pstyle("source-label"),p=e.pstyle("target-label");if(h||(!f||!f.value)&&(!d||!d.value)&&(!p||!p.value))return;t.textAlign="center",t.textBaseline="bottom"}var m=!r,g;r&&(g=r,t.translate(-g.x1,-g.y1)),i==null?(s.drawText(t,e,null,m,a),e.isEdge()&&(s.drawText(t,e,"source",m,a),s.drawText(t,e,"target",m,a))):s.drawText(t,e,i,m,a),r&&t.translate(g.x1,g.y1)};Cp.getFontCache=function(t){var e;this.fontCaches=this.fontCaches||[];for(var r=0;r2&&arguments[2]!==void 0?arguments[2]:!0,n=e.pstyle("font-style").strValue,i=e.pstyle("font-size").pfValue+"px",a=e.pstyle("font-family").strValue,s=e.pstyle("font-weight").strValue,l=r?e.effectiveOpacity()*e.pstyle("text-opacity").value:1,u=e.pstyle("text-outline-opacity").value*l,h=e.pstyle("color").value,f=e.pstyle("text-outline-color").value;t.font=n+" "+s+" "+i+" "+a,t.lineJoin="round",this.colorFillStyle(t,h[0],h[1],h[2],l),this.colorStrokeStyle(t,f[0],f[1],f[2],u)};o(aqe,"circle");o(Jce,"roundRect");Cp.getTextAngle=function(t,e){var r,n=t._private,i=n.rscratch,a=e?e+"-":"",s=t.pstyle(a+"text-rotation");if(s.strValue==="autorotate"){var l=Us(i,"labelAngle",e);r=t.isEdge()?l:0}else s.strValue==="none"?r=0:r=s.pfValue;return r};Cp.drawText=function(t,e,r){var n=arguments.length>3&&arguments[3]!==void 0?arguments[3]:!0,i=arguments.length>4&&arguments[4]!==void 0?arguments[4]:!0,a=e._private,s=a.rscratch,l=i?e.effectiveOpacity():1;if(!(i&&(l===0||e.pstyle("text-opacity").value===0))){r==="main"&&(r=null);var u=Us(s,"labelX",r),h=Us(s,"labelY",r),f,d,p=this.getLabelText(e,r);if(p!=null&&p!==""&&!isNaN(u)&&!isNaN(h)){this.setupTextStyle(t,e,i);var m=r?r+"-":"",g=Us(s,"labelWidth",r),y=Us(s,"labelHeight",r),v=e.pstyle(m+"text-margin-x").pfValue,x=e.pstyle(m+"text-margin-y").pfValue,b=e.isEdge(),T=e.pstyle("text-halign").value,S=e.pstyle("text-valign").value;b&&(T="center",S="center"),u+=v,h+=x;var w;switch(n?w=this.getTextAngle(e,r):w=0,w!==0&&(f=u,d=h,t.translate(f,d),t.rotate(w),u=0,h=0),S){case"top":break;case"center":h+=y/2;break;case"bottom":h+=y;break}var k=e.pstyle("text-background-opacity").value,C=e.pstyle("text-border-opacity").value,A=e.pstyle("text-border-width").pfValue,L=e.pstyle("text-background-padding").pfValue,I=e.pstyle("text-background-shape").strValue,R=I==="round-rectangle"||I==="roundrectangle",E=I==="circle",_=2;if(k>0||A>0&&C>0){var D=t.fillStyle,O=t.strokeStyle,N=t.lineWidth,P=e.pstyle("text-background-color").value,B=e.pstyle("text-border-color").value,F=e.pstyle("text-border-style").value,V=k>0,$=A>0&&C>0,U=u-L;switch(T){case"left":U-=g;break;case"center":U-=g/2;break}var j=h-y-L,ee=g+2*L,q=y+2*L;if(V&&(t.fillStyle="rgba(".concat(P[0],",").concat(P[1],",").concat(P[2],",").concat(k*l,")")),$&&(t.strokeStyle="rgba(".concat(B[0],",").concat(B[1],",").concat(B[2],",").concat(C*l,")"),t.lineWidth=A,t.setLineDash))switch(F){case"dotted":t.setLineDash([1,1]);break;case"dashed":t.setLineDash([4,2]);break;case"double":t.lineWidth=A/4,t.setLineDash([]);break;case"solid":default:t.setLineDash([]);break}if(R?(t.beginPath(),Jce(t,U,j,ee,q,_)):E?(t.beginPath(),aqe(t,U,j,ee,q)):(t.beginPath(),t.rect(U,j,ee,q)),V&&t.fill(),$&&t.stroke(),$&&F==="double"){var oe=A/2;t.beginPath(),R?Jce(t,U+oe,j+oe,ee-2*oe,q-2*oe,_):t.rect(U+oe,j+oe,ee-2*oe,q-2*oe),t.stroke()}t.fillStyle=D,t.strokeStyle=O,t.lineWidth=N,t.setLineDash&&t.setLineDash([])}var Q=2*e.pstyle("text-outline-width").pfValue;if(Q>0&&(t.lineWidth=Q),e.pstyle("text-wrap").value==="wrap"){var ue=Us(s,"labelWrapCachedLines",r),te=Us(s,"labelLineHeight",r),re=g/2,J=this.getLabelJustification(e);switch(J==="auto"||(T==="left"?J==="left"?u+=-g:J==="center"&&(u+=-re):T==="center"?J==="left"?u+=-re:J==="right"&&(u+=re):T==="right"&&(J==="center"?u+=re:J==="right"&&(u+=g))),S){case"top":h-=(ue.length-1)*te;break;case"center":case"bottom":h-=(ue.length-1)*te;break}for(var K=0;K0&&t.strokeText(ue[K],u,h),t.fillText(ue[K],u,h),h+=te}else Q>0&&t.strokeText(p,u,h),t.fillText(p,u,h);w!==0&&(t.rotate(-w),t.translate(-f,-d))}}};Lf={};Lf.drawNode=function(t,e,r){var n=arguments.length>3&&arguments[3]!==void 0?arguments[3]:!0,i=arguments.length>4&&arguments[4]!==void 0?arguments[4]:!0,a=arguments.length>5&&arguments[5]!==void 0?arguments[5]:!0,s=this,l,u,h=e._private,f=h.rscratch,d=e.position();if(!(!At(d.x)||!At(d.y))&&!(a&&!e.visible())){var p=a?e.effectiveOpacity():1,m=s.usePaths(),g,y=!1,v=e.padding();l=e.width()+2*v,u=e.height()+2*v;var x;r&&(x=r,t.translate(-x.x1,-x.y1));for(var b=e.pstyle("background-image"),T=b.value,S=new Array(T.length),w=new Array(T.length),k=0,C=0;C0&&arguments[0]!==void 0?arguments[0]:_;s.eleFillStyle(t,e,Y)},"setupShapeColor"),te=o(function(){var Y=arguments.length>0&&arguments[0]!==void 0?arguments[0]:$;s.colorStrokeStyle(t,D[0],D[1],D[2],Y)},"setupBorderColor"),re=o(function(){var Y=arguments.length>0&&arguments[0]!==void 0?arguments[0]:q;s.colorStrokeStyle(t,j[0],j[1],j[2],Y)},"setupOutlineColor"),J=o(function(Y,he,z,se){var le=s.nodePathCache=s.nodePathCache||[],ke=kue(z==="polygon"?z+","+se.join(","):z,""+he,""+Y,""+Q),ve=le[ke],ye,Re=!1;return ve!=null?(ye=ve,Re=!0,f.pathCache=ye):(ye=new Path2D,le[ke]=f.pathCache=ye),{path:ye,cacheHit:Re}},"getPath"),K=e.pstyle("shape").strValue,ae=e.pstyle("shape-polygon-points").pfValue;if(m){t.translate(d.x,d.y);var Z=J(l,u,K,ae);g=Z.path,y=Z.cacheHit}var de=o(function(){if(!y){var Y=d;m&&(Y={x:0,y:0}),s.nodeShapes[s.getNodeShape(e)].draw(g||t,Y.x,Y.y,l,u,Q,f)}m?t.fill(g):t.fill()},"drawShape"),ne=o(function(){for(var Y=arguments.length>0&&arguments[0]!==void 0?arguments[0]:p,he=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0,z=h.backgrounding,se=0,le=0;le0&&arguments[0]!==void 0?arguments[0]:!1,he=arguments.length>1&&arguments[1]!==void 0?arguments[1]:p;s.hasPie(e)&&(s.drawPie(t,e,he),Y&&(m||s.nodeShapes[s.getNodeShape(e)].draw(t,d.x,d.y,l,u,Q,f)))},"drawPie"),W=o(function(){var Y=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!1,he=arguments.length>1&&arguments[1]!==void 0?arguments[1]:p;s.hasStripe(e)&&(t.save(),m?t.clip(f.pathCache):(s.nodeShapes[s.getNodeShape(e)].draw(t,d.x,d.y,l,u,Q,f),t.clip()),s.drawStripe(t,e,he),t.restore(),Y&&(m||s.nodeShapes[s.getNodeShape(e)].draw(t,d.x,d.y,l,u,Q,f)))},"drawStripe"),Ve=o(function(){var Y=arguments.length>0&&arguments[0]!==void 0?arguments[0]:p,he=(R>0?R:-R)*Y,z=R>0?0:255;R!==0&&(s.colorFillStyle(t,z,z,z,he),m?t.fill(g):t.fill())},"darken"),pe=o(function(){if(E>0){if(t.lineWidth=E,t.lineCap=P,t.lineJoin=N,t.setLineDash)switch(O){case"dotted":t.setLineDash([1,1]);break;case"dashed":t.setLineDash(F),t.lineDashOffset=V;break;case"solid":case"double":t.setLineDash([]);break}if(B!=="center"){if(t.save(),t.lineWidth*=2,B==="inside")m?t.clip(g):t.clip();else{var Y=new Path2D;Y.rect(-l/2-E,-u/2-E,l+2*E,u+2*E),Y.addPath(g),t.clip(Y,"evenodd")}m?t.stroke(g):t.stroke(),t.restore()}else m?t.stroke(g):t.stroke();if(O==="double"){t.lineWidth=E/3;var he=t.globalCompositeOperation;t.globalCompositeOperation="destination-out",m?t.stroke(g):t.stroke(),t.globalCompositeOperation=he}t.setLineDash&&t.setLineDash([])}},"drawBorder"),Be=o(function(){if(U>0){if(t.lineWidth=U,t.lineCap="butt",t.setLineDash)switch(ee){case"dotted":t.setLineDash([1,1]);break;case"dashed":t.setLineDash([4,2]);break;case"solid":case"double":t.setLineDash([]);break}var Y=d;m&&(Y={x:0,y:0});var he=s.getNodeShape(e),z=E;B==="inside"&&(z=0),B==="outside"&&(z*=2);var se=(l+z+(U+oe))/l,le=(u+z+(U+oe))/u,ke=l*se,ve=u*le,ye=s.nodeShapes[he].points,Re;if(m){var _e=J(ke,ve,he,ye);Re=_e.path}if(he==="ellipse")s.drawEllipsePath(Re||t,Y.x,Y.y,ke,ve);else if(["round-diamond","round-heptagon","round-hexagon","round-octagon","round-pentagon","round-polygon","round-triangle","round-tag"].includes(he)){var ze=0,Ke=0,xt=0;he==="round-diamond"?ze=(z+oe+U)*1.4:he==="round-heptagon"?(ze=(z+oe+U)*1.075,xt=-(z/2+oe+U)/35):he==="round-hexagon"?ze=(z+oe+U)*1.12:he==="round-pentagon"?(ze=(z+oe+U)*1.13,xt=-(z/2+oe+U)/15):he==="round-tag"?(ze=(z+oe+U)*1.12,Ke=(z/2+U+oe)*.07):he==="round-triangle"&&(ze=(z+oe+U)*(Math.PI/2),xt=-(z+oe/2+U)/Math.PI),ze!==0&&(se=(l+ze)/l,ke=l*se,["round-hexagon","round-tag"].includes(he)||(le=(u+ze)/u,ve=u*le)),Q=Q==="auto"?Mue(ke,ve):Q;for(var We=ke/2,Oe=ve/2,et=Q+(z+U+oe)/2,Ue=new Array(ye.length/2),lt=new Array(ye.length/2),Gt=0;Gt0){if(i=i||n.position(),a==null||s==null){var m=n.padding();a=n.width()+2*m,s=n.height()+2*m}l.colorFillStyle(r,f[0],f[1],f[2],h),l.nodeShapes[d].draw(r,i.x,i.y,a+u*2,s+u*2,p),r.fill()}}}},"drawNodeOverlayUnderlay");Lf.drawNodeOverlay=$he("overlay");Lf.drawNodeUnderlay=$he("underlay");Lf.hasPie=function(t){return t=t[0],t._private.hasPie};Lf.hasStripe=function(t){return t=t[0],t._private.hasStripe};Lf.drawPie=function(t,e,r,n){e=e[0],n=n||e.position();var i=e.cy().style(),a=e.pstyle("pie-size"),s=e.pstyle("pie-hole"),l=e.pstyle("pie-start-angle").pfValue,u=n.x,h=n.y,f=e.width(),d=e.height(),p=Math.min(f,d)/2,m,g=0,y=this.usePaths();if(y&&(u=0,h=0),a.units==="%"?p=p*a.pfValue:a.pfValue!==void 0&&(p=a.pfValue/2),s.units==="%"?m=p*s.pfValue:s.pfValue!==void 0&&(m=s.pfValue/2),!(m>=p))for(var v=1;v<=i.pieBackgroundN;v++){var x=e.pstyle("pie-"+v+"-background-size").value,b=e.pstyle("pie-"+v+"-background-color").value,T=e.pstyle("pie-"+v+"-background-opacity").value*r,S=x/100;S+g>1&&(S=1-g);var w=1.5*Math.PI+2*Math.PI*g;w+=l;var k=2*Math.PI*S,C=w+k;x===0||g>=1||g+S>1||(m===0?(t.beginPath(),t.moveTo(u,h),t.arc(u,h,p,w,C),t.closePath()):(t.beginPath(),t.arc(u,h,p,w,C),t.arc(u,h,m,C,w,!0),t.closePath()),this.colorFillStyle(t,b[0],b[1],b[2],T),t.fill(),g+=S)}};Lf.drawStripe=function(t,e,r,n){e=e[0],n=n||e.position();var i=e.cy().style(),a=n.x,s=n.y,l=e.width(),u=e.height(),h=0,f=this.usePaths();t.save();var d=e.pstyle("stripe-direction").value,p=e.pstyle("stripe-size");switch(d){case"vertical":break;case"righward":t.rotate(-Math.PI/2);break}var m=l,g=u;p.units==="%"?(m=m*p.pfValue,g=g*p.pfValue):p.pfValue!==void 0&&(m=p.pfValue,g=p.pfValue),f&&(a=0,s=0),s-=m/2,a-=g/2;for(var y=1;y<=i.stripeBackgroundN;y++){var v=e.pstyle("stripe-"+y+"-background-size").value,x=e.pstyle("stripe-"+y+"-background-color").value,b=e.pstyle("stripe-"+y+"-background-opacity").value*r,T=v/100;T+h>1&&(T=1-h),!(v===0||h>=1||h+T>1)&&(t.beginPath(),t.rect(a,s+g*h,m,g*T),t.closePath(),this.colorFillStyle(t,x[0],x[1],x[2],b),t.fill(),h+=T)}t.restore()};us={},sqe=100;us.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};us.paintCache=function(t){for(var e=this.paintCaches=this.paintCaches||[],r=!0,n,i=0;ie.minMbLowQualFrames&&(e.motionBlurPxRatio=e.mbPxRBlurry)),e.clearingMotionBlur&&(e.motionBlurPxRatio=1),e.textureDrawLastFrame&&!d&&(f[e.NODE]=!0,f[e.SELECT_BOX]=!0);var b=r.style(),T=r.zoom(),S=s!==void 0?s:T,w=r.pan(),k={x:w.x,y:w.y},C={zoom:T,pan:{x:w.x,y:w.y}},A=e.prevViewport,L=A===void 0||C.zoom!==A.zoom||C.pan.x!==A.pan.x||C.pan.y!==A.pan.y;!L&&!(y&&!g)&&(e.motionBlurPxRatio=1),l&&(k=l),S*=u,k.x*=u,k.y*=u;var I=e.getCachedZSortedEles();function R(te,re,J,K,ae){var Z=te.globalCompositeOperation;te.globalCompositeOperation="destination-out",e.colorFillStyle(te,255,255,255,e.motionBlurTransparency),te.fillRect(re,J,K,ae),te.globalCompositeOperation=Z}o(R,"mbclear");function E(te,re){var J,K,ae,Z;!e.clearingMotionBlur&&(te===h.bufferContexts[e.MOTIONBLUR_BUFFER_NODE]||te===h.bufferContexts[e.MOTIONBLUR_BUFFER_DRAG])?(J={x:w.x*m,y:w.y*m},K=T*m,ae=e.canvasWidth*m,Z=e.canvasHeight*m):(J=k,K=S,ae=e.canvasWidth,Z=e.canvasHeight),te.setTransform(1,0,0,1,0,0),re==="motionBlur"?R(te,0,0,ae,Z):!n&&(re===void 0||re)&&te.clearRect(0,0,ae,Z),i||(te.translate(J.x,J.y),te.scale(K,K)),l&&te.translate(l.x,l.y),s&&te.scale(s,s)}if(o(E,"setContextTransform"),d||(e.textureDrawLastFrame=!1),d){if(e.textureDrawLastFrame=!0,!e.textureCache){e.textureCache={},e.textureCache.bb=r.mutableElements().boundingBox(),e.textureCache.texture=e.data.bufferCanvases[e.TEXTURE_BUFFER];var _=e.data.bufferContexts[e.TEXTURE_BUFFER];_.setTransform(1,0,0,1,0,0),_.clearRect(0,0,e.canvasWidth*e.textureMult,e.canvasHeight*e.textureMult),e.render({forcedContext:_,drawOnlyNodeLayer:!0,forcedPxRatio:u*e.textureMult});var C=e.textureCache.viewport={zoom:r.zoom(),pan:r.pan(),width:e.canvasWidth,height:e.canvasHeight};C.mpan={x:(0-C.pan.x)/C.zoom,y:(0-C.pan.y)/C.zoom}}f[e.DRAG]=!1,f[e.NODE]=!1;var D=h.contexts[e.NODE],O=e.textureCache.texture,C=e.textureCache.viewport;D.setTransform(1,0,0,1,0,0),p?R(D,0,0,C.width,C.height):D.clearRect(0,0,C.width,C.height);var N=b.core("outside-texture-bg-color").value,P=b.core("outside-texture-bg-opacity").value;e.colorFillStyle(D,N[0],N[1],N[2],P),D.fillRect(0,0,C.width,C.height);var T=r.zoom();E(D,!1),D.clearRect(C.mpan.x,C.mpan.y,C.width/C.zoom/u,C.height/C.zoom/u),D.drawImage(O,C.mpan.x,C.mpan.y,C.width/C.zoom/u,C.height/C.zoom/u)}else e.textureOnViewport&&!n&&(e.textureCache=null);var B=r.extent(),F=e.pinching||e.hoverData.dragging||e.swipePanning||e.data.wheelZooming||e.hoverData.draggingEles||e.cy.animated(),V=e.hideEdgesOnViewport&&F,$=[];if($[e.NODE]=!f[e.NODE]&&p&&!e.clearedForMotionBlur[e.NODE]||e.clearingMotionBlur,$[e.NODE]&&(e.clearedForMotionBlur[e.NODE]=!0),$[e.DRAG]=!f[e.DRAG]&&p&&!e.clearedForMotionBlur[e.DRAG]||e.clearingMotionBlur,$[e.DRAG]&&(e.clearedForMotionBlur[e.DRAG]=!0),f[e.NODE]||i||a||$[e.NODE]){var U=p&&!$[e.NODE]&&m!==1,D=n||(U?e.data.bufferContexts[e.MOTIONBLUR_BUFFER_NODE]:h.contexts[e.NODE]),j=p&&!U?"motionBlur":void 0;E(D,j),V?e.drawCachedNodes(D,I.nondrag,u,B):e.drawLayeredElements(D,I.nondrag,u,B),e.debug&&e.drawDebugPoints(D,I.nondrag),!i&&!p&&(f[e.NODE]=!1)}if(!a&&(f[e.DRAG]||i||$[e.DRAG])){var U=p&&!$[e.DRAG]&&m!==1,D=n||(U?e.data.bufferContexts[e.MOTIONBLUR_BUFFER_DRAG]:h.contexts[e.DRAG]);E(D,p&&!U?"motionBlur":void 0),V?e.drawCachedNodes(D,I.drag,u,B):e.drawCachedElements(D,I.drag,u,B),e.debug&&e.drawDebugPoints(D,I.drag),!i&&!p&&(f[e.DRAG]=!1)}if(this.drawSelectionRectangle(t,E),p&&m!==1){var ee=h.contexts[e.NODE],q=e.data.bufferCanvases[e.MOTIONBLUR_BUFFER_NODE],oe=h.contexts[e.DRAG],Q=e.data.bufferCanvases[e.MOTIONBLUR_BUFFER_DRAG],ue=o(function(re,J,K){re.setTransform(1,0,0,1,0,0),K||!x?re.clearRect(0,0,e.canvasWidth,e.canvasHeight):R(re,0,0,e.canvasWidth,e.canvasHeight);var ae=m;re.drawImage(J,0,0,e.canvasWidth*ae,e.canvasHeight*ae,0,0,e.canvasWidth,e.canvasHeight)},"drawMotionBlur");(f[e.NODE]||$[e.NODE])&&(ue(ee,q,$[e.NODE]),f[e.NODE]=!1),(f[e.DRAG]||$[e.DRAG])&&(ue(oe,Q,$[e.DRAG]),f[e.DRAG]=!1)}e.prevViewport=C,e.clearingMotionBlur&&(e.clearingMotionBlur=!1,e.motionBlurCleared=!0,e.motionBlur=!0),p&&(e.motionBlurTimeout=setTimeout(function(){e.motionBlurTimeout=null,e.clearedForMotionBlur[e.NODE]=!1,e.clearedForMotionBlur[e.DRAG]=!1,e.motionBlur=!1,e.clearingMotionBlur=!d,e.mbFrames=0,f[e.NODE]=!0,f[e.DRAG]=!0,e.redraw()},sqe)),n||r.emit("render")};us.drawSelectionRectangle=function(t,e){var r=this,n=r.cy,i=r.data,a=n.style(),s=t.drawOnlyNodeLayer,l=t.drawAllLayers,u=i.canvasNeedsRedraw,h=t.forcedContext;if(r.showFps||!s&&u[r.SELECT_BOX]&&!l){var f=h||i.contexts[r.SELECT_BOX];if(e(f),r.selection[4]==1&&(r.hoverData.selecting||r.touchData.selecting)){var d=r.cy.zoom(),p=a.core("selection-box-border-width").value/d;f.lineWidth=p,f.fillStyle="rgba("+a.core("selection-box-color").value[0]+","+a.core("selection-box-color").value[1]+","+a.core("selection-box-color").value[2]+","+a.core("selection-box-opacity").value+")",f.fillRect(r.selection[0],r.selection[1],r.selection[2]-r.selection[0],r.selection[3]-r.selection[1]),p>0&&(f.strokeStyle="rgba("+a.core("selection-box-border-color").value[0]+","+a.core("selection-box-border-color").value[1]+","+a.core("selection-box-border-color").value[2]+","+a.core("selection-box-opacity").value+")",f.strokeRect(r.selection[0],r.selection[1],r.selection[2]-r.selection[0],r.selection[3]-r.selection[1]))}if(i.bgActivePosistion&&!r.hoverData.selecting){var d=r.cy.zoom(),m=i.bgActivePosistion;f.fillStyle="rgba("+a.core("active-bg-color").value[0]+","+a.core("active-bg-color").value[1]+","+a.core("active-bg-color").value[2]+","+a.core("active-bg-opacity").value+")",f.beginPath(),f.arc(m.x,m.y,a.core("active-bg-size").pfValue/d,0,2*Math.PI),f.fill()}var g=r.lastRedrawTime;if(r.showFps&&g){g=Math.round(g);var y=Math.round(1e3/g),v="1 frame = "+g+" ms = "+y+" fps";if(f.setTransform(1,0,0,1,0,0),f.fillStyle="rgba(255, 0, 0, 0.75)",f.strokeStyle="rgba(255, 0, 0, 0.75)",f.font="30px Arial",!K2){var x=f.measureText(v);K2=x.actualBoundingBoxAscent}f.fillText(v,0,K2);var b=60;f.strokeRect(0,K2+10,250,20),f.fillRect(0,K2+10,250*Math.min(y/b,1),20)}l||(u[r.SELECT_BOX]=!1)}};o(eue,"compileShader");o(oqe,"createProgram");o(lqe,"createTextureCanvas");o(MI,"getEffectivePanZoom");o(cqe,"getEffectiveZoom");o(uqe,"modelToRenderedPosition");o(hqe,"isSimpleShape");o(fqe,"arrayEqual");o(dp,"toWebGLColor");o(Zm,"indexToVec4");o(dqe,"vec4ToIndex");o(pqe,"createTexture");o(zhe,"getTypeInfo");o(Ghe,"createTypedArray");o(mqe,"createTypedArrayView");o(gqe,"createBufferStaticDraw");o(Mc,"createBufferDynamicDraw");o(yqe,"create3x3MatrixBufferDynamicDraw");o(vqe,"createPickingFrameBuffer");tue=typeof Float32Array<"u"?Float32Array:Array;Math.hypot||(Math.hypot=function(){for(var t=0,e=arguments.length;e--;)t+=arguments[e]*arguments[e];return Math.sqrt(t)});o(BM,"create");o(rue,"identity");o(xqe,"multiply");o(Xk,"translate");o(nue,"rotate");o(aI,"scale");o(bqe,"projection");Tqe=(function(){function t(e,r,n,i){Af(this,t),this.debugID=Math.floor(Math.random()*1e4),this.r=e,this.texSize=r,this.texRows=n,this.texHeight=Math.floor(r/n),this.enableWrapping=!0,this.locked=!1,this.texture=null,this.needsBuffer=!0,this.freePointer={x:0,row:0},this.keyToLocation=new Map,this.canvas=i(e,r,r),this.scratch=i(e,r,this.texHeight,"scratch")}return o(t,"Atlas"),_f(t,[{key:"lock",value:o(function(){this.locked=!0},"lock")},{key:"getKeys",value:o(function(){return new Set(this.keyToLocation.keys())},"getKeys")},{key:"getScale",value:o(function(r){var n=r.w,i=r.h,a=this.texHeight,s=this.texSize,l=a/i,u=n*l,h=i*l;return u>s&&(l=s/n,u=n*l,h=i*l),{scale:l,texW:u,texH:h}},"getScale")},{key:"draw",value:o(function(r,n,i){var a=this;if(this.locked)throw new Error("can't draw, atlas is locked");var s=this.texSize,l=this.texRows,u=this.texHeight,h=this.getScale(n),f=h.scale,d=h.texW,p=h.texH,m=o(function(T,S){if(i&&S){var w=S.context,k=T.x,C=T.row,A=k,L=u*C;w.save(),w.translate(A,L),w.scale(f,f),i(w,n),w.restore()}},"drawAt"),g=[null,null],y=o(function(){m(a.freePointer,a.canvas),g[0]={x:a.freePointer.x,y:a.freePointer.row*u,w:d,h:p},g[1]={x:a.freePointer.x+d,y:a.freePointer.row*u,w:0,h:p},a.freePointer.x+=d,a.freePointer.x==s&&(a.freePointer.x=0,a.freePointer.row++)},"drawNormal"),v=o(function(){var T=a.scratch,S=a.canvas;T.clear(),m({x:0,row:0},T);var w=s-a.freePointer.x,k=d-w,C=u;{var A=a.freePointer.x,L=a.freePointer.row*u,I=w;S.context.drawImage(T,0,0,I,C,A,L,I,C),g[0]={x:A,y:L,w:I,h:p}}{var R=w,E=(a.freePointer.row+1)*u,_=k;S&&S.context.drawImage(T,R,0,_,C,0,E,_,C),g[1]={x:0,y:E,w:_,h:p}}a.freePointer.x=k,a.freePointer.row++},"drawWrapped"),x=o(function(){a.freePointer.x=0,a.freePointer.row++},"moveToStartOfNextRow");if(this.freePointer.x+d<=s)y();else{if(this.freePointer.row>=l-1)return!1;this.freePointer.x===s?(x(),y()):this.enableWrapping?v():(x(),y())}return this.keyToLocation.set(r,g),this.needsBuffer=!0,g},"draw")},{key:"getOffsets",value:o(function(r){return this.keyToLocation.get(r)},"getOffsets")},{key:"isEmpty",value:o(function(){return this.freePointer.x===0&&this.freePointer.row===0},"isEmpty")},{key:"canFit",value:o(function(r){if(this.locked)return!1;var n=this.texSize,i=this.texRows,a=this.getScale(r),s=a.texW;return this.freePointer.x+s>n?this.freePointer.row1&&arguments[1]!==void 0?arguments[1]:{},a=i.forceRedraw,s=a===void 0?!1:a,l=i.filterEle,u=l===void 0?function(){return!0}:l,h=i.filterType,f=h===void 0?function(){return!0}:h,d=!1,p=!1,m=qs(r),g;try{for(m.s();!(g=m.n()).done;){var y=g.value;if(u(y)){var v=qs(this.renderTypes.values()),x;try{var b=o(function(){var S=x.value,w=S.type;if(f(w)){var k=n.collections.get(S.collection),C=S.getKey(y),A=Array.isArray(C)?C:[C];if(s)A.forEach(function(E){return k.markKeyForGC(E)}),p=!0;else{var L=S.getID?S.getID(y):y.id(),I=n._key(w,L),R=n.typeAndIdToKey.get(I);R!==void 0&&!fqe(A,R)&&(d=!0,n.typeAndIdToKey.delete(I),R.forEach(function(E){return k.markKeyForGC(E)}))}}},"_loop2");for(v.s();!(x=v.n()).done;)b()}catch(T){v.e(T)}finally{v.f()}}}}catch(T){m.e(T)}finally{m.f()}return p&&(this.gc(),d=!1),d},"invalidate")},{key:"gc",value:o(function(){var r=qs(this.collections.values()),n;try{for(r.s();!(n=r.n()).done;){var i=n.value;i.gc()}}catch(a){r.e(a)}finally{r.f()}},"gc")},{key:"getOrCreateAtlas",value:o(function(r,n,i,a){var s=this.renderTypes.get(n),l=this.collections.get(s.collection),u=!1,h=l.draw(a,i,function(p){s.drawClipped?(p.save(),p.beginPath(),p.rect(0,0,i.w,i.h),p.clip(),s.drawElement(p,r,i,!0,!0),p.restore()):s.drawElement(p,r,i,!0,!0),u=!0});if(u){var f=s.getID?s.getID(r):r.id(),d=this._key(n,f);this.typeAndIdToKey.has(d)?this.typeAndIdToKey.get(d).push(a):this.typeAndIdToKey.set(d,[a])}return h},"getOrCreateAtlas")},{key:"getAtlasInfo",value:o(function(r,n){var i=this,a=this.renderTypes.get(n),s=a.getKey(r),l=Array.isArray(s)?s:[s];return l.map(function(u){var h=a.getBoundingBox(r,u),f=i.getOrCreateAtlas(r,n,h,u),d=f.getOffsets(u),p=_i(d,2),m=p[0],g=p[1];return{atlas:f,tex:m,tex1:m,tex2:g,bb:h}})},"getAtlasInfo")},{key:"getDebugInfo",value:o(function(){var r=[],n=qs(this.collections),i;try{for(n.s();!(i=n.n()).done;){var a=_i(i.value,2),s=a[0],l=a[1],u=l.getCounts(),h=u.keyCount,f=u.atlasCount;r.push({type:s,keyCount:h,atlasCount:f})}}catch(d){n.e(d)}finally{n.f()}return r},"getDebugInfo")}])})(),Sqe=(function(){function t(e){Af(this,t),this.globalOptions=e,this.atlasSize=e.webglTexSize,this.maxAtlasesPerBatch=e.webglTexPerBatch,this.batchAtlases=[]}return o(t,"AtlasBatchManager"),_f(t,[{key:"getMaxAtlasesPerBatch",value:o(function(){return this.maxAtlasesPerBatch},"getMaxAtlasesPerBatch")},{key:"getAtlasSize",value:o(function(){return this.atlasSize},"getAtlasSize")},{key:"getIndexArray",value:o(function(){return Array.from({length:this.maxAtlasesPerBatch},function(r,n){return n})},"getIndexArray")},{key:"startBatch",value:o(function(){this.batchAtlases=[]},"startBatch")},{key:"getAtlasCount",value:o(function(){return this.batchAtlases.length},"getAtlasCount")},{key:"getAtlases",value:o(function(){return this.batchAtlases},"getAtlases")},{key:"canAddToCurrentBatch",value:o(function(r){return this.batchAtlases.length===this.maxAtlasesPerBatch?this.batchAtlases.includes(r):!0},"canAddToCurrentBatch")},{key:"getAtlasIndexForBatch",value:o(function(r){var n=this.batchAtlases.indexOf(r);if(n<0){if(this.batchAtlases.length===this.maxAtlasesPerBatch)throw new Error("cannot add more atlases to batch");this.batchAtlases.push(r),n=this.batchAtlases.length-1}return n},"getAtlasIndexForBatch")}])})(),Cqe=` + float circleSD(vec2 p, float r) { + return distance(vec2(0), p) - r; // signed distance + } +`,Aqe=` + float rectangleSD(vec2 p, vec2 b) { + vec2 d = abs(p)-b; + return distance(vec2(0),max(d,0.0)) + min(max(d.x,d.y),0.0); + } +`,_qe=` + float roundRectangleSD(vec2 p, vec2 b, vec4 cr) { + cr.xy = (p.x > 0.0) ? cr.xy : cr.zw; + cr.x = (p.y > 0.0) ? cr.x : cr.y; + vec2 q = abs(p) - b + cr.x; + return min(max(q.x, q.y), 0.0) + distance(vec2(0), max(q, 0.0)) - cr.x; + } +`,Dqe=` + float ellipseSD(vec2 p, vec2 ab) { + p = abs( p ); // symmetry + + // find root with Newton solver + vec2 q = ab*(p-ab); + float w = (q.x1.0) ? d : -d; + } +`,ix={SCREEN:{name:"screen",screen:!0},PICKING:{name:"picking",picking:!0}},oE={IGNORE:1,USE_BB:2},FM=0,iue=1,aue=2,$M=3,Jm=4,Bk=5,Q2=6,Z2=7,Lqe=(function(){function t(e,r,n){Af(this,t),this.r=e,this.gl=r,this.maxInstances=n.webglBatchSize,this.atlasSize=n.webglTexSize,this.bgColor=n.bgColor,this.debug=n.webglDebug,this.batchDebugInfo=[],n.enableWrapping=!0,n.createTextureCanvas=lqe,this.atlasManager=new Eqe(e,n),this.batchManager=new Sqe(n),this.simpleShapeOptions=new Map,this.program=this._createShaderProgram(ix.SCREEN),this.pickingProgram=this._createShaderProgram(ix.PICKING),this.vao=this._createVAO()}return o(t,"ElementDrawingWebGL"),_f(t,[{key:"addAtlasCollection",value:o(function(r,n){this.atlasManager.addAtlasCollection(r,n)},"addAtlasCollection")},{key:"addTextureAtlasRenderType",value:o(function(r,n){this.atlasManager.addRenderType(r,n)},"addTextureAtlasRenderType")},{key:"addSimpleShapeRenderType",value:o(function(r,n){this.simpleShapeOptions.set(r,n)},"addSimpleShapeRenderType")},{key:"invalidate",value:o(function(r){var n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},i=n.type,a=this.atlasManager;return i?a.invalidate(r,{filterType:o(function(l){return l===i},"filterType"),forceRedraw:!0}):a.invalidate(r)},"invalidate")},{key:"gc",value:o(function(){this.atlasManager.gc()},"gc")},{key:"_createShaderProgram",value:o(function(r){var n=this.gl,i=`#version 300 es + precision highp float; + + uniform mat3 uPanZoomMatrix; + uniform int uAtlasSize; + + // instanced + in vec2 aPosition; // a vertex from the unit square + + in mat3 aTransform; // used to transform verticies, eg into a bounding box + in int aVertType; // the type of thing we are rendering + + // the z-index that is output when using picking mode + in vec4 aIndex; + + // For textures + in int aAtlasId; // which shader unit/atlas to use + in vec4 aTex; // x/y/w/h of texture in atlas + + // for edges + in vec4 aPointAPointB; + in vec4 aPointCPointD; + in vec2 aLineWidth; // also used for node border width + + // simple shapes + in vec4 aCornerRadius; // for round-rectangle [top-right, bottom-right, top-left, bottom-left] + in vec4 aColor; // also used for edges + in vec4 aBorderColor; // aLineWidth is used for border width + + // output values passed to the fragment shader + out vec2 vTexCoord; + out vec4 vColor; + out vec2 vPosition; + // flat values are not interpolated + flat out int vAtlasId; + flat out int vVertType; + flat out vec2 vTopRight; + flat out vec2 vBotLeft; + flat out vec4 vCornerRadius; + flat out vec4 vBorderColor; + flat out vec2 vBorderWidth; + flat out vec4 vIndex; + + void main(void) { + int vid = gl_VertexID; + vec2 position = aPosition; // TODO make this a vec3, simplifies some code below + + if(aVertType == `.concat(FM,`) { + float texX = aTex.x; // texture coordinates + float texY = aTex.y; + float texW = aTex.z; + float texH = aTex.w; + + if(vid == 1 || vid == 2 || vid == 4) { + texX += texW; + } + if(vid == 2 || vid == 4 || vid == 5) { + texY += texH; + } + + float d = float(uAtlasSize); + vTexCoord = vec2(texX / d, texY / d); // tex coords must be between 0 and 1 + + gl_Position = vec4(uPanZoomMatrix * aTransform * vec3(position, 1.0), 1.0); + } + else if(aVertType == `).concat(Jm," || aVertType == ").concat(Z2,` + || aVertType == `).concat(Bk," || aVertType == ").concat(Q2,`) { // simple shapes + + // the bounding box is needed by the fragment shader + vBotLeft = (aTransform * vec3(0, 0, 1)).xy; // flat + vTopRight = (aTransform * vec3(1, 1, 1)).xy; // flat + vPosition = (aTransform * vec3(position, 1)).xy; // will be interpolated + + // calculations are done in the fragment shader, just pass these along + vColor = aColor; + vCornerRadius = aCornerRadius; + vBorderColor = aBorderColor; + vBorderWidth = aLineWidth; + + gl_Position = vec4(uPanZoomMatrix * aTransform * vec3(position, 1.0), 1.0); + } + else if(aVertType == `).concat(iue,`) { + vec2 source = aPointAPointB.xy; + vec2 target = aPointAPointB.zw; + + // adjust the geometry so that the line is centered on the edge + position.y = position.y - 0.5; + + // stretch the unit square into a long skinny rectangle + vec2 xBasis = target - source; + vec2 yBasis = normalize(vec2(-xBasis.y, xBasis.x)); + vec2 point = source + xBasis * position.x + yBasis * aLineWidth[0] * position.y; + + gl_Position = vec4(uPanZoomMatrix * vec3(point, 1.0), 1.0); + vColor = aColor; + } + else if(aVertType == `).concat(aue,`) { + vec2 pointA = aPointAPointB.xy; + vec2 pointB = aPointAPointB.zw; + vec2 pointC = aPointCPointD.xy; + vec2 pointD = aPointCPointD.zw; + + // adjust the geometry so that the line is centered on the edge + position.y = position.y - 0.5; + + vec2 p0, p1, p2, pos; + if(position.x == 0.0) { // The left side of the unit square + p0 = pointA; + p1 = pointB; + p2 = pointC; + pos = position; + } else { // The right side of the unit square, use same approach but flip the geometry upside down + p0 = pointD; + p1 = pointC; + p2 = pointB; + pos = vec2(0.0, -position.y); + } + + vec2 p01 = p1 - p0; + vec2 p12 = p2 - p1; + vec2 p21 = p1 - p2; + + // Find the normal vector. + vec2 tangent = normalize(normalize(p12) + normalize(p01)); + vec2 normal = vec2(-tangent.y, tangent.x); + + // Find the vector perpendicular to p0 -> p1. + vec2 p01Norm = normalize(vec2(-p01.y, p01.x)); + + // Determine the bend direction. + float sigma = sign(dot(p01 + p21, normal)); + float width = aLineWidth[0]; + + if(sign(pos.y) == -sigma) { + // This is an intersecting vertex. Adjust the position so that there's no overlap. + vec2 point = 0.5 * width * normal * -sigma / dot(normal, p01Norm); + gl_Position = vec4(uPanZoomMatrix * vec3(p1 + point, 1.0), 1.0); + } else { + // This is a non-intersecting vertex. Treat it like a mitre join. + vec2 point = 0.5 * width * normal * sigma * dot(normal, p01Norm); + gl_Position = vec4(uPanZoomMatrix * vec3(p1 + point, 1.0), 1.0); + } + + vColor = aColor; + } + else if(aVertType == `).concat($M,` && vid < 3) { + // massage the first triangle into an edge arrow + if(vid == 0) + position = vec2(-0.15, -0.3); + if(vid == 1) + position = vec2( 0.0, 0.0); + if(vid == 2) + position = vec2( 0.15, -0.3); + + gl_Position = vec4(uPanZoomMatrix * aTransform * vec3(position, 1.0), 1.0); + vColor = aColor; + } + else { + gl_Position = vec4(2.0, 0.0, 0.0, 1.0); // discard vertex by putting it outside webgl clip space + } + + vAtlasId = aAtlasId; + vVertType = aVertType; + vIndex = aIndex; + } + `),a=this.batchManager.getIndexArray(),s=`#version 300 es + precision highp float; + + // declare texture unit for each texture atlas in the batch + `.concat(a.map(function(h){return"uniform sampler2D uTexture".concat(h,";")}).join(` + `),` + + uniform vec4 uBGColor; + uniform float uZoom; + + in vec2 vTexCoord; + in vec4 vColor; + in vec2 vPosition; // model coordinates + + flat in int vAtlasId; + flat in vec4 vIndex; + flat in int vVertType; + flat in vec2 vTopRight; + flat in vec2 vBotLeft; + flat in vec4 vCornerRadius; + flat in vec4 vBorderColor; + flat in vec2 vBorderWidth; + + out vec4 outColor; + + `).concat(Cqe,` + `).concat(Aqe,` + `).concat(_qe,` + `).concat(Dqe,` + + vec4 blend(vec4 top, vec4 bot) { // blend colors with premultiplied alpha + return vec4( + top.rgb + (bot.rgb * (1.0 - top.a)), + top.a + (bot.a * (1.0 - top.a)) + ); + } + + vec4 distInterp(vec4 cA, vec4 cB, float d) { // interpolate color using Signed Distance + // scale to the zoom level so that borders don't look blurry when zoomed in + // note 1.5 is an aribitrary value chosen because it looks good + return mix(cA, cB, 1.0 - smoothstep(0.0, 1.5 / uZoom, abs(d))); + } + + void main(void) { + if(vVertType == `).concat(FM,`) { + // look up the texel from the texture unit + `).concat(a.map(function(h){return"if(vAtlasId == ".concat(h,") outColor = texture(uTexture").concat(h,", vTexCoord);")}).join(` + else `),` + } + else if(vVertType == `).concat($M,`) { + // mimics how canvas renderer uses context.globalCompositeOperation = 'destination-out'; + outColor = blend(vColor, uBGColor); + outColor.a = 1.0; // make opaque, masks out line under arrow + } + else if(vVertType == `).concat(Jm,` && vBorderWidth == vec2(0.0)) { // simple rectangle with no border + outColor = vColor; // unit square is already transformed to the rectangle, nothing else needs to be done + } + else if(vVertType == `).concat(Jm," || vVertType == ").concat(Z2,` + || vVertType == `).concat(Bk," || vVertType == ").concat(Q2,`) { // use SDF + + float outerBorder = vBorderWidth[0]; + float innerBorder = vBorderWidth[1]; + float borderPadding = outerBorder * 2.0; + float w = vTopRight.x - vBotLeft.x - borderPadding; + float h = vTopRight.y - vBotLeft.y - borderPadding; + vec2 b = vec2(w/2.0, h/2.0); // half width, half height + vec2 p = vPosition - vec2(vTopRight.x - b[0] - outerBorder, vTopRight.y - b[1] - outerBorder); // translate to center + + float d; // signed distance + if(vVertType == `).concat(Jm,`) { + d = rectangleSD(p, b); + } else if(vVertType == `).concat(Z2,` && w == h) { + d = circleSD(p, b.x); // faster than ellipse + } else if(vVertType == `).concat(Z2,`) { + d = ellipseSD(p, b); + } else { + d = roundRectangleSD(p, b, vCornerRadius.wzyx); + } + + // use the distance to interpolate a color to smooth the edges of the shape, doesn't need multisampling + // we must smooth colors inwards, because we can't change pixels outside the shape's bounding box + if(d > 0.0) { + if(d > outerBorder) { + discard; + } else { + outColor = distInterp(vBorderColor, vec4(0), d - outerBorder); + } + } else { + if(d > innerBorder) { + vec4 outerColor = outerBorder == 0.0 ? vec4(0) : vBorderColor; + vec4 innerBorderColor = blend(vBorderColor, vColor); + outColor = distInterp(innerBorderColor, outerColor, d); + } + else { + vec4 outerColor; + if(innerBorder == 0.0 && outerBorder == 0.0) { + outerColor = vec4(0); + } else if(innerBorder == 0.0) { + outerColor = vBorderColor; + } else { + outerColor = blend(vBorderColor, vColor); + } + outColor = distInterp(vColor, outerColor, d - innerBorder); + } + } + } + else { + outColor = vColor; + } + + `).concat(r.picking?`if(outColor.a == 0.0) discard; + else outColor = vIndex;`:"",` + } + `),l=oqe(n,i,s);l.aPosition=n.getAttribLocation(l,"aPosition"),l.aIndex=n.getAttribLocation(l,"aIndex"),l.aVertType=n.getAttribLocation(l,"aVertType"),l.aTransform=n.getAttribLocation(l,"aTransform"),l.aAtlasId=n.getAttribLocation(l,"aAtlasId"),l.aTex=n.getAttribLocation(l,"aTex"),l.aPointAPointB=n.getAttribLocation(l,"aPointAPointB"),l.aPointCPointD=n.getAttribLocation(l,"aPointCPointD"),l.aLineWidth=n.getAttribLocation(l,"aLineWidth"),l.aColor=n.getAttribLocation(l,"aColor"),l.aCornerRadius=n.getAttribLocation(l,"aCornerRadius"),l.aBorderColor=n.getAttribLocation(l,"aBorderColor"),l.uPanZoomMatrix=n.getUniformLocation(l,"uPanZoomMatrix"),l.uAtlasSize=n.getUniformLocation(l,"uAtlasSize"),l.uBGColor=n.getUniformLocation(l,"uBGColor"),l.uZoom=n.getUniformLocation(l,"uZoom"),l.uTextures=[];for(var u=0;u1&&arguments[1]!==void 0?arguments[1]:ix.SCREEN;this.panZoomMatrix=r,this.renderTarget=n,this.batchDebugInfo=[],this.wrappedCount=0,this.simpleCount=0,this.startBatch()},"startFrame")},{key:"startBatch",value:o(function(){this.instanceCount=0,this.batchManager.startBatch()},"startBatch")},{key:"endFrame",value:o(function(){this.endBatch()},"endFrame")},{key:"_isVisible",value:o(function(r,n){return r.visible()?n&&n.isVisible?n.isVisible(r):!0:!1},"_isVisible")},{key:"drawTexture",value:o(function(r,n,i){var a=this.atlasManager,s=this.batchManager,l=a.getRenderTypeOpts(i);if(this._isVisible(r,l)&&!(r.isEdge()&&!this._isValidEdge(r))){if(this.renderTarget.picking&&l.getTexPickingMode){var u=l.getTexPickingMode(r);if(u===oE.IGNORE)return;if(u==oE.USE_BB){this.drawPickingRectangle(r,n,i);return}}var h=a.getAtlasInfo(r,i),f=qs(h),d;try{for(f.s();!(d=f.n()).done;){var p=d.value,m=p.atlas,g=p.tex1,y=p.tex2;s.canAddToCurrentBatch(m)||this.endBatch();for(var v=s.getAtlasIndexForBatch(m),x=0,b=[[g,!0],[y,!1]];x=this.maxInstances&&this.endBatch()}}}}catch(R){f.e(R)}finally{f.f()}}},"drawTexture")},{key:"setTransformMatrix",value:o(function(r,n,i,a){var s=arguments.length>4&&arguments[4]!==void 0?arguments[4]:!0,l=0;if(i.shapeProps&&i.shapeProps.padding&&(l=r.pstyle(i.shapeProps.padding).pfValue),a){var u=a.bb,h=a.tex1,f=a.tex2,d=h.w/(h.w+f.w);s||(d=1-d);var p=this._getAdjustedBB(u,l,s,d);this._applyTransformMatrix(n,p,i,r)}else{var m=i.getBoundingBox(r),g=this._getAdjustedBB(m,l,!0,1);this._applyTransformMatrix(n,g,i,r)}},"setTransformMatrix")},{key:"_applyTransformMatrix",value:o(function(r,n,i,a){var s,l;rue(r);var u=i.getRotation?i.getRotation(a):0;if(u!==0){var h=i.getRotationPoint(a),f=h.x,d=h.y;Xk(r,r,[f,d]),nue(r,r,u);var p=i.getRotationOffset(a);s=p.x+(n.xOffset||0),l=p.y+(n.yOffset||0)}else s=n.x1,l=n.y1;Xk(r,r,[s,l]),aI(r,r,[n.w,n.h])},"_applyTransformMatrix")},{key:"_getAdjustedBB",value:o(function(r,n,i,a){var s=r.x1,l=r.y1,u=r.w,h=r.h,f=r.yOffset;n&&(s-=n,l-=n,u+=2*n,h+=2*n);var d=0,p=u*a;return i&&a<1?u=p:!i&&a<1&&(d=u-p,s+=d,u=p),{x1:s,y1:l,w:u,h,xOffset:d,yOffset:f}},"_getAdjustedBB")},{key:"drawPickingRectangle",value:o(function(r,n,i){var a=this.atlasManager.getRenderTypeOpts(i),s=this.instanceCount;this.vertTypeBuffer.getView(s)[0]=Jm;var l=this.indexBuffer.getView(s);Zm(n,l);var u=this.colorBuffer.getView(s);dp([0,0,0],1,u);var h=this.transformBuffer.getMatrixView(s);this.setTransformMatrix(r,h,a),this.simpleCount++,this.instanceCount++,this.instanceCount>=this.maxInstances&&this.endBatch()},"drawPickingRectangle")},{key:"drawNode",value:o(function(r,n,i){var a=this.simpleShapeOptions.get(i);if(this._isVisible(r,a)){var s=a.shapeProps,l=this._getVertTypeForShape(r,s.shape);if(l===void 0||a.isSimple&&!a.isSimple(r)){this.drawTexture(r,n,i);return}var u=this.instanceCount;if(this.vertTypeBuffer.getView(u)[0]=l,l===Bk||l===Q2){var h=a.getBoundingBox(r),f=this._getCornerRadius(r,s.radius,h),d=this.cornerRadiusBuffer.getView(u);d[0]=f,d[1]=f,d[2]=f,d[3]=f,l===Q2&&(d[0]=0,d[2]=0)}var p=this.indexBuffer.getView(u);Zm(n,p);var m=r.pstyle(s.color).value,g=r.pstyle(s.opacity).value,y=this.colorBuffer.getView(u);dp(m,g,y);var v=this.lineWidthBuffer.getView(u);if(v[0]=0,v[1]=0,s.border){var x=r.pstyle("border-width").value;if(x>0){var b=r.pstyle("border-color").value,T=r.pstyle("border-opacity").value,S=this.borderColorBuffer.getView(u);dp(b,T,S);var w=r.pstyle("border-position").value;if(w==="inside")v[0]=0,v[1]=-x;else if(w==="outside")v[0]=x,v[1]=0;else{var k=x/2;v[0]=k,v[1]=-k}}}var C=this.transformBuffer.getMatrixView(u);this.setTransformMatrix(r,C,a),this.simpleCount++,this.instanceCount++,this.instanceCount>=this.maxInstances&&this.endBatch()}},"drawNode")},{key:"_getVertTypeForShape",value:o(function(r,n){var i=r.pstyle(n).value;switch(i){case"rectangle":return Jm;case"ellipse":return Z2;case"roundrectangle":case"round-rectangle":return Bk;case"bottom-round-rectangle":return Q2;default:return}},"_getVertTypeForShape")},{key:"_getCornerRadius",value:o(function(r,n,i){var a=i.w,s=i.h;if(r.pstyle(n).value==="auto")return kf(a,s);var l=r.pstyle(n).pfValue,u=a/2,h=s/2;return Math.min(l,h,u)},"_getCornerRadius")},{key:"drawEdgeArrow",value:o(function(r,n,i){if(r.visible()){var a=r._private.rscratch,s,l,u;if(i==="source"?(s=a.arrowStartX,l=a.arrowStartY,u=a.srcArrowAngle):(s=a.arrowEndX,l=a.arrowEndY,u=a.tgtArrowAngle),!(isNaN(s)||s==null||isNaN(l)||l==null||isNaN(u)||u==null)){var h=r.pstyle(i+"-arrow-shape").value;if(h!=="none"){var f=r.pstyle(i+"-arrow-color").value,d=r.pstyle("opacity").value,p=r.pstyle("line-opacity").value,m=d*p,g=r.pstyle("width").pfValue,y=r.pstyle("arrow-scale").value,v=this.r.getArrowWidth(g,y),x=this.instanceCount,b=this.transformBuffer.getMatrixView(x);rue(b),Xk(b,b,[s,l]),aI(b,b,[v,v]),nue(b,b,u),this.vertTypeBuffer.getView(x)[0]=$M;var T=this.indexBuffer.getView(x);Zm(n,T);var S=this.colorBuffer.getView(x);dp(f,m,S),this.instanceCount++,this.instanceCount>=this.maxInstances&&this.endBatch()}}}},"drawEdgeArrow")},{key:"drawEdgeLine",value:o(function(r,n){if(r.visible()){var i=this._getEdgePoints(r);if(i){var a=r.pstyle("opacity").value,s=r.pstyle("line-opacity").value,l=r.pstyle("width").pfValue,u=r.pstyle("line-color").value,h=a*s;if(i.length/2+this.instanceCount>this.maxInstances&&this.endBatch(),i.length==4){var f=this.instanceCount;this.vertTypeBuffer.getView(f)[0]=iue;var d=this.indexBuffer.getView(f);Zm(n,d);var p=this.colorBuffer.getView(f);dp(u,h,p);var m=this.lineWidthBuffer.getView(f);m[0]=l;var g=this.pointAPointBBuffer.getView(f);g[0]=i[0],g[1]=i[1],g[2]=i[2],g[3]=i[3],this.instanceCount++,this.instanceCount>=this.maxInstances&&this.endBatch()}else for(var y=0;y=this.maxInstances&&this.endBatch()}}}},"drawEdgeLine")},{key:"_isValidEdge",value:o(function(r){var n=r._private.rscratch;return!(n.badLine||n.allpts==null||isNaN(n.allpts[0]))},"_isValidEdge")},{key:"_getEdgePoints",value:o(function(r){var n=r._private.rscratch;if(this._isValidEdge(r)){var i=n.allpts;if(i.length==4)return i;var a=this._getNumSegments(r);return this._getCurveSegmentPoints(i,a)}},"_getEdgePoints")},{key:"_getNumSegments",value:o(function(r){var n=15;return Math.min(Math.max(n,5),this.maxInstances)},"_getNumSegments")},{key:"_getCurveSegmentPoints",value:o(function(r,n){if(r.length==4)return r;for(var i=Array((n+1)*2),a=0;a<=n;a++)if(a==0)i[0]=r[0],i[1]=r[1];else if(a==n)i[a*2]=r[r.length-2],i[a*2+1]=r[r.length-1];else{var s=a/n;this._setCurvePoint(r,s,i,a*2)}return i},"_getCurveSegmentPoints")},{key:"_setCurvePoint",value:o(function(r,n,i,a){if(r.length<=2)i[a]=r[0],i[a+1]=r[1];else{for(var s=Array(r.length-2),l=0;l0}},"isLayerVisible"),l=o(function(d){var p=d.pstyle("text-events").strValue==="yes";return p?oE.USE_BB:oE.IGNORE},"getTexPickingMode"),u=o(function(d){var p=d.position(),m=p.x,g=p.y,y=d.outerWidth(),v=d.outerHeight();return{w:y,h:v,x1:m-y/2,y1:g-v/2}},"getBBForSimpleShape");r.drawing.addAtlasCollection("node",{texRows:t.webglTexRowsNodes}),r.drawing.addAtlasCollection("label",{texRows:t.webglTexRows}),r.drawing.addTextureAtlasRenderType("node-body",{collection:"node",getKey:e.getStyleKey,getBoundingBox:e.getElementBox,drawElement:e.drawElement}),r.drawing.addSimpleShapeRenderType("node-body",{getBoundingBox:u,isSimple:hqe,shapeProps:{shape:"shape",color:"background-color",opacity:"background-opacity",radius:"corner-radius",border:!0}}),r.drawing.addSimpleShapeRenderType("node-overlay",{getBoundingBox:u,isVisible:s("overlay"),shapeProps:{shape:"overlay-shape",color:"overlay-color",opacity:"overlay-opacity",padding:"overlay-padding",radius:"overlay-corner-radius"}}),r.drawing.addSimpleShapeRenderType("node-underlay",{getBoundingBox:u,isVisible:s("underlay"),shapeProps:{shape:"underlay-shape",color:"underlay-color",opacity:"underlay-opacity",padding:"underlay-padding",radius:"underlay-corner-radius"}}),r.drawing.addTextureAtlasRenderType("label",{collection:"label",getTexPickingMode:l,getKey:zM(e.getLabelKey,null),getBoundingBox:GM(e.getLabelBox,null),drawClipped:!0,drawElement:e.drawLabel,getRotation:i(null),getRotationPoint:e.getLabelRotationPoint,getRotationOffset:e.getLabelRotationOffset,isVisible:a("label")}),r.drawing.addTextureAtlasRenderType("edge-source-label",{collection:"label",getTexPickingMode:l,getKey:zM(e.getSourceLabelKey,"source"),getBoundingBox:GM(e.getSourceLabelBox,"source"),drawClipped:!0,drawElement:e.drawSourceLabel,getRotation:i("source"),getRotationPoint:e.getSourceLabelRotationPoint,getRotationOffset:e.getSourceLabelRotationOffset,isVisible:a("source-label")}),r.drawing.addTextureAtlasRenderType("edge-target-label",{collection:"label",getTexPickingMode:l,getKey:zM(e.getTargetLabelKey,"target"),getBoundingBox:GM(e.getTargetLabelBox,"target"),drawClipped:!0,drawElement:e.drawTargetLabel,getRotation:i("target"),getRotationPoint:e.getTargetLabelRotationPoint,getRotationOffset:e.getTargetLabelRotationOffset,isVisible:a("target-label")});var h=bx(function(){console.log("garbage collect flag set"),r.data.gc=!0},1e4);r.onUpdateEleCalcs(function(f,d){var p=!1;d&&d.length>0&&(p|=r.drawing.invalidate(d)),p&&h()}),Nqe(r)};o(Rqe,"getBGColor");o(Uhe,"getLabelLines");zM=o(function(e,r){return function(n){var i=e(n),a=Uhe(n,r);return a.length>1?a.map(function(s,l){return"".concat(i,"_").concat(l)}):i}},"getStyleKeysForLabel"),GM=o(function(e,r){return function(n,i){var a=e(n);if(typeof i=="string"){var s=i.indexOf("_");if(s>0){var l=Number(i.substring(s+1)),u=Uhe(n,r),h=a.h/u.length,f=h*l,d=a.y1+f;return{x1:a.x1,w:a.w,y1:d,h,yOffset:f}}}return a}},"getBoundingBoxForLabel");o(Nqe,"overrideCanvasRendererFunctions");o(Mqe,"clearWebgl");o(Iqe,"clearCanvas");o(Oqe,"createPanZoomMatrix");o(Hhe,"setContextTransform");o(Pqe,"drawSelectionRectangle");o(Bqe,"drawAxes");o(Fqe,"drawAtlases");o($qe,"getPickingIndexes");o(zqe,"findNearestElementsWebgl");o(VM,"drawEle");o(qhe,"renderWebgl");Rf={};Rf.drawPolygonPath=function(t,e,r,n,i,a){var s=n/2,l=i/2;t.beginPath&&t.beginPath(),t.moveTo(e+s*a[0],r+l*a[1]);for(var u=1;u0&&s>0){m.clearRect(0,0,a,s),m.globalCompositeOperation="source-over";var g=this.getCachedZSortedEles();if(t.full)m.translate(-n.x1*h,-n.y1*h),m.scale(h,h),this.drawElements(m,g),m.scale(1/h,1/h),m.translate(n.x1*h,n.y1*h);else{var y=e.pan(),v={x:y.x*h,y:y.y*h};h*=e.zoom(),m.translate(v.x,v.y),m.scale(h,h),this.drawElements(m,g),m.scale(1/h,1/h),m.translate(-v.x,-v.y)}t.bg&&(m.globalCompositeOperation="destination-over",m.fillStyle=t.bg,m.rect(0,0,a,s),m.fill())}return p};o(Gqe,"b64ToBlob");o(lue,"b64UriToB64");o(Yhe,"output");Cx.png=function(t){return Yhe(t,this.bufferCanvasImage(t),"image/png")};Cx.jpg=function(t){return Yhe(t,this.bufferCanvasImage(t),"image/jpeg")};Xhe={};Xhe.nodeShapeImpl=function(t,e,r,n,i,a,s,l){switch(t){case"ellipse":return this.drawEllipsePath(e,r,n,i,a);case"polygon":return this.drawPolygonPath(e,r,n,i,a,s);case"round-polygon":return this.drawRoundPolygonPath(e,r,n,i,a,s,l);case"roundrectangle":case"round-rectangle":return this.drawRoundRectanglePath(e,r,n,i,a,l);case"cutrectangle":case"cut-rectangle":return this.drawCutRectanglePath(e,r,n,i,a,s,l);case"bottomroundrectangle":case"bottom-round-rectangle":return this.drawBottomRoundRectanglePath(e,r,n,i,a,l);case"barrel":return this.drawBarrelPath(e,r,n,i,a)}};Vqe=jhe,Cr=jhe.prototype;Cr.CANVAS_LAYERS=3;Cr.SELECT_BOX=0;Cr.DRAG=1;Cr.NODE=2;Cr.WEBGL=3;Cr.CANVAS_TYPES=["2d","2d","2d","webgl2"];Cr.BUFFER_COUNT=3;Cr.TEXTURE_BUFFER=0;Cr.MOTIONBLUR_BUFFER_NODE=1;Cr.MOTIONBLUR_BUFFER_DRAG=2;o(jhe,"CanvasRenderer");Cr.redrawHint=function(t,e){var r=this;switch(t){case"eles":r.data.canvasNeedsRedraw[Cr.NODE]=e;break;case"drag":r.data.canvasNeedsRedraw[Cr.DRAG]=e;break;case"select":r.data.canvasNeedsRedraw[Cr.SELECT_BOX]=e;break;case"gc":r.data.gc=!0;break}};Uqe=typeof Path2D<"u";Cr.path2dEnabled=function(t){if(t===void 0)return this.pathsEnabled;this.pathsEnabled=!!t};Cr.usePaths=function(){return Uqe&&this.pathsEnabled};Cr.setImgSmoothing=function(t,e){t.imageSmoothingEnabled!=null?t.imageSmoothingEnabled=e:(t.webkitImageSmoothingEnabled=e,t.mozImageSmoothingEnabled=e,t.msImageSmoothingEnabled=e)};Cr.getImgSmoothing=function(t){return t.imageSmoothingEnabled!=null?t.imageSmoothingEnabled:t.webkitImageSmoothingEnabled||t.mozImageSmoothingEnabled||t.msImageSmoothingEnabled};Cr.makeOffscreenCanvas=function(t,e){var r;if((typeof OffscreenCanvas>"u"?"undefined":$i(OffscreenCanvas))!=="undefined")r=new OffscreenCanvas(t,e);else{var n=this.cy.window(),i=n.document;r=i.createElement("canvas"),r.width=t,r.height=e}return r};[Bhe,Fc,Hu,NI,Cp,Lf,us,Vhe,Rf,Cx,Xhe].forEach(function(t){ir(Cr,t)});Hqe=[{name:"null",impl:khe},{name:"base",impl:Mhe},{name:"canvas",impl:Vqe}],qqe=[{type:"layout",extensions:gHe},{type:"renderer",extensions:Hqe}],Khe={},Qhe={};o(Zhe,"setExtension");o(Jhe,"getExtension");o(Wqe,"setModule");o(Yqe,"getModule");lI=o(function(){if(arguments.length===2)return Jhe.apply(null,arguments);if(arguments.length===3)return Zhe.apply(null,arguments);if(arguments.length===4)return Yqe.apply(null,arguments);if(arguments.length===5)return Wqe.apply(null,arguments);Kn("Invalid extension access syntax")},"extension");dx.prototype.extension=lI;qqe.forEach(function(t){t.extensions.forEach(function(e){Zhe(t.type,e.name,e.impl)})});lE=o(function(){if(!(this instanceof lE))return new lE;this.length=0},"Stylesheet"),Ep=lE.prototype;Ep.instanceString=function(){return"stylesheet"};Ep.selector=function(t){var e=this.length++;return this[e]={selector:t,properties:[]},this};Ep.css=function(t,e){var r=this.length-1;if(Jt(t))this[r].properties.push({name:t,value:e});else if(Yr(t))for(var n=t,i=Object.keys(n),a=0;a{"use strict";o((function(e,r){typeof Ax=="object"&&typeof OI=="object"?OI.exports=r():typeof define=="function"&&define.amd?define([],r):typeof Ax=="object"?Ax.layoutBase=r():e.layoutBase=r()}),"webpackUniversalModuleDefinition")(Ax,function(){return(function(t){var e={};function r(n){if(e[n])return e[n].exports;var i=e[n]={i:n,l:!1,exports:{}};return t[n].call(i.exports,i,i.exports,r),i.l=!0,i.exports}return o(r,"__webpack_require__"),r.m=t,r.c=e,r.i=function(n){return n},r.d=function(n,i,a){r.o(n,i)||Object.defineProperty(n,i,{configurable:!1,enumerable:!0,get:a})},r.n=function(n){var i=n&&n.__esModule?o(function(){return n.default},"getDefault"):o(function(){return n},"getModuleExports");return r.d(i,"a",i),i},r.o=function(n,i){return Object.prototype.hasOwnProperty.call(n,i)},r.p="",r(r.s=26)})([(function(t,e,r){"use strict";function n(){}o(n,"LayoutConstants"),n.QUALITY=1,n.DEFAULT_CREATE_BENDS_AS_NEEDED=!1,n.DEFAULT_INCREMENTAL=!1,n.DEFAULT_ANIMATION_ON_LAYOUT=!0,n.DEFAULT_ANIMATION_DURING_LAYOUT=!1,n.DEFAULT_ANIMATION_PERIOD=50,n.DEFAULT_UNIFORM_LEAF_NODE_SIZES=!1,n.DEFAULT_GRAPH_MARGIN=15,n.NODE_DIMENSIONS_INCLUDE_LABELS=!1,n.SIMPLE_NODE_SIZE=40,n.SIMPLE_NODE_HALF_SIZE=n.SIMPLE_NODE_SIZE/2,n.EMPTY_COMPOUND_NODE_SIZE=40,n.MIN_EDGE_LENGTH=1,n.WORLD_BOUNDARY=1e6,n.INITIAL_WORLD_BOUNDARY=n.WORLD_BOUNDARY/1e3,n.WORLD_CENTER_X=1200,n.WORLD_CENTER_Y=900,t.exports=n}),(function(t,e,r){"use strict";var n=r(2),i=r(8),a=r(9);function s(u,h,f){n.call(this,f),this.isOverlapingSourceAndTarget=!1,this.vGraphObject=f,this.bendpoints=[],this.source=u,this.target=h}o(s,"LEdge"),s.prototype=Object.create(n.prototype);for(var l in n)s[l]=n[l];s.prototype.getSource=function(){return this.source},s.prototype.getTarget=function(){return this.target},s.prototype.isInterGraph=function(){return this.isInterGraph},s.prototype.getLength=function(){return this.length},s.prototype.isOverlapingSourceAndTarget=function(){return this.isOverlapingSourceAndTarget},s.prototype.getBendpoints=function(){return this.bendpoints},s.prototype.getLca=function(){return this.lca},s.prototype.getSourceInLca=function(){return this.sourceInLca},s.prototype.getTargetInLca=function(){return this.targetInLca},s.prototype.getOtherEnd=function(u){if(this.source===u)return this.target;if(this.target===u)return this.source;throw"Node is not incident with this edge"},s.prototype.getOtherEndInGraph=function(u,h){for(var f=this.getOtherEnd(u),d=h.getGraphManager().getRoot();;){if(f.getOwner()==h)return f;if(f.getOwner()==d)break;f=f.getOwner().getParent()}return null},s.prototype.updateLength=function(){var u=new Array(4);this.isOverlapingSourceAndTarget=i.getIntersection(this.target.getRect(),this.source.getRect(),u),this.isOverlapingSourceAndTarget||(this.lengthX=u[0]-u[2],this.lengthY=u[1]-u[3],Math.abs(this.lengthX)<1&&(this.lengthX=a.sign(this.lengthX)),Math.abs(this.lengthY)<1&&(this.lengthY=a.sign(this.lengthY)),this.length=Math.sqrt(this.lengthX*this.lengthX+this.lengthY*this.lengthY))},s.prototype.updateLengthSimple=function(){this.lengthX=this.target.getCenterX()-this.source.getCenterX(),this.lengthY=this.target.getCenterY()-this.source.getCenterY(),Math.abs(this.lengthX)<1&&(this.lengthX=a.sign(this.lengthX)),Math.abs(this.lengthY)<1&&(this.lengthY=a.sign(this.lengthY)),this.length=Math.sqrt(this.lengthX*this.lengthX+this.lengthY*this.lengthY)},t.exports=s}),(function(t,e,r){"use strict";function n(i){this.vGraphObject=i}o(n,"LGraphObject"),t.exports=n}),(function(t,e,r){"use strict";var n=r(2),i=r(10),a=r(13),s=r(0),l=r(16),u=r(4);function h(d,p,m,g){m==null&&g==null&&(g=p),n.call(this,g),d.graphManager!=null&&(d=d.graphManager),this.estimatedSize=i.MIN_VALUE,this.inclusionTreeDepth=i.MAX_VALUE,this.vGraphObject=g,this.edges=[],this.graphManager=d,m!=null&&p!=null?this.rect=new a(p.x,p.y,m.width,m.height):this.rect=new a}o(h,"LNode"),h.prototype=Object.create(n.prototype);for(var f in n)h[f]=n[f];h.prototype.getEdges=function(){return this.edges},h.prototype.getChild=function(){return this.child},h.prototype.getOwner=function(){return this.owner},h.prototype.getWidth=function(){return this.rect.width},h.prototype.setWidth=function(d){this.rect.width=d},h.prototype.getHeight=function(){return this.rect.height},h.prototype.setHeight=function(d){this.rect.height=d},h.prototype.getCenterX=function(){return this.rect.x+this.rect.width/2},h.prototype.getCenterY=function(){return this.rect.y+this.rect.height/2},h.prototype.getCenter=function(){return new u(this.rect.x+this.rect.width/2,this.rect.y+this.rect.height/2)},h.prototype.getLocation=function(){return new u(this.rect.x,this.rect.y)},h.prototype.getRect=function(){return this.rect},h.prototype.getDiagonal=function(){return Math.sqrt(this.rect.width*this.rect.width+this.rect.height*this.rect.height)},h.prototype.getHalfTheDiagonal=function(){return Math.sqrt(this.rect.height*this.rect.height+this.rect.width*this.rect.width)/2},h.prototype.setRect=function(d,p){this.rect.x=d.x,this.rect.y=d.y,this.rect.width=p.width,this.rect.height=p.height},h.prototype.setCenter=function(d,p){this.rect.x=d-this.rect.width/2,this.rect.y=p-this.rect.height/2},h.prototype.setLocation=function(d,p){this.rect.x=d,this.rect.y=p},h.prototype.moveBy=function(d,p){this.rect.x+=d,this.rect.y+=p},h.prototype.getEdgeListToNode=function(d){var p=[],m,g=this;return g.edges.forEach(function(y){if(y.target==d){if(y.source!=g)throw"Incorrect edge source!";p.push(y)}}),p},h.prototype.getEdgesBetween=function(d){var p=[],m,g=this;return g.edges.forEach(function(y){if(!(y.source==g||y.target==g))throw"Incorrect edge source and/or target";(y.target==d||y.source==d)&&p.push(y)}),p},h.prototype.getNeighborsList=function(){var d=new Set,p=this;return p.edges.forEach(function(m){if(m.source==p)d.add(m.target);else{if(m.target!=p)throw"Incorrect incidency!";d.add(m.source)}}),d},h.prototype.withChildren=function(){var d=new Set,p,m;if(d.add(this),this.child!=null)for(var g=this.child.getNodes(),y=0;yp&&(this.rect.x-=(this.labelWidth-p)/2,this.setWidth(this.labelWidth)),this.labelHeight>m&&(this.labelPos=="center"?this.rect.y-=(this.labelHeight-m)/2:this.labelPos=="top"&&(this.rect.y-=this.labelHeight-m),this.setHeight(this.labelHeight))}}},h.prototype.getInclusionTreeDepth=function(){if(this.inclusionTreeDepth==i.MAX_VALUE)throw"assert failed";return this.inclusionTreeDepth},h.prototype.transform=function(d){var p=this.rect.x;p>s.WORLD_BOUNDARY?p=s.WORLD_BOUNDARY:p<-s.WORLD_BOUNDARY&&(p=-s.WORLD_BOUNDARY);var m=this.rect.y;m>s.WORLD_BOUNDARY?m=s.WORLD_BOUNDARY:m<-s.WORLD_BOUNDARY&&(m=-s.WORLD_BOUNDARY);var g=new u(p,m),y=d.inverseTransformPoint(g);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()},t.exports=h}),(function(t,e,r){"use strict";function n(i,a){i==null&&a==null?(this.x=0,this.y=0):(this.x=i,this.y=a)}o(n,"PointD"),n.prototype.getX=function(){return this.x},n.prototype.getY=function(){return this.y},n.prototype.setX=function(i){this.x=i},n.prototype.setY=function(i){this.y=i},n.prototype.getDifference=function(i){return new DimensionD(this.x-i.x,this.y-i.y)},n.prototype.getCopy=function(){return new n(this.x,this.y)},n.prototype.translate=function(i){return this.x+=i.width,this.y+=i.height,this},t.exports=n}),(function(t,e,r){"use strict";var n=r(2),i=r(10),a=r(0),s=r(6),l=r(3),u=r(1),h=r(13),f=r(12),d=r(11);function p(g,y,v){n.call(this,v),this.estimatedSize=i.MIN_VALUE,this.margin=a.DEFAULT_GRAPH_MARGIN,this.edges=[],this.nodes=[],this.isConnected=!1,this.parent=g,y!=null&&y instanceof s?this.graphManager=y:y!=null&&y instanceof Layout&&(this.graphManager=y.graphManager)}o(p,"LGraph"),p.prototype=Object.create(n.prototype);for(var m in n)p[m]=n[m];p.prototype.getNodes=function(){return this.nodes},p.prototype.getEdges=function(){return this.edges},p.prototype.getGraphManager=function(){return this.graphManager},p.prototype.getParent=function(){return this.parent},p.prototype.getLeft=function(){return this.left},p.prototype.getRight=function(){return this.right},p.prototype.getTop=function(){return this.top},p.prototype.getBottom=function(){return this.bottom},p.prototype.isConnected=function(){return this.isConnected},p.prototype.add=function(g,y,v){if(y==null&&v==null){var x=g;if(this.graphManager==null)throw"Graph has no graph mgr!";if(this.getNodes().indexOf(x)>-1)throw"Node already in graph!";return x.owner=this,this.getNodes().push(x),x}else{var b=g;if(!(this.getNodes().indexOf(y)>-1&&this.getNodes().indexOf(v)>-1))throw"Source or target not in graph!";if(!(y.owner==v.owner&&y.owner==this))throw"Both owners must be this graph!";return y.owner!=v.owner?null:(b.source=y,b.target=v,b.isInterGraph=!1,this.getEdges().push(b),y.edges.push(b),v!=y&&v.edges.push(b),b)}},p.prototype.remove=function(g){var y=g;if(g 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 v=y.edges.slice(),x,b=v.length,T=0;T-1&&k>-1))throw"Source and/or target doesn't know this edge!";x.source.edges.splice(w,1),x.target!=x.source&&x.target.edges.splice(k,1);var S=x.source.owner.getEdges().indexOf(x);if(S==-1)throw"Not in owner's edge list!";x.source.owner.getEdges().splice(S,1)}},p.prototype.updateLeftTop=function(){for(var g=i.MAX_VALUE,y=i.MAX_VALUE,v,x,b,T=this.getNodes(),S=T.length,w=0;wv&&(g=v),y>x&&(y=x)}return g==i.MAX_VALUE?null:(T[0].getParent().paddingLeft!=null?b=T[0].getParent().paddingLeft:b=this.margin,this.left=y-b,this.top=g-b,new f(this.left,this.top))},p.prototype.updateBounds=function(g){for(var y=i.MAX_VALUE,v=-i.MAX_VALUE,x=i.MAX_VALUE,b=-i.MAX_VALUE,T,S,w,k,C,A=this.nodes,L=A.length,I=0;IT&&(y=T),vw&&(x=w),bT&&(y=T),vw&&(x=w),b=this.nodes.length){var L=0;v.forEach(function(I){I.owner==g&&L++}),L==this.nodes.length&&(this.isConnected=!0)}},t.exports=p}),(function(t,e,r){"use strict";var n,i=r(1);function a(s){n=r(5),this.layout=s,this.graphs=[],this.edges=[]}o(a,"LGraphManager"),a.prototype.addRoot=function(){var s=this.layout.newGraph(),l=this.layout.newNode(null),u=this.add(s,l);return this.setRootGraph(u),this.rootGraph},a.prototype.add=function(s,l,u,h,f){if(u==null&&h==null&&f==null){if(s==null)throw"Graph is null!";if(l==null)throw"Parent node is null!";if(this.graphs.indexOf(s)>-1)throw"Graph already in this graph mgr!";if(this.graphs.push(s),s.parent!=null)throw"Already has a parent!";if(l.child!=null)throw"Already has a child!";return s.parent=l,l.child=s,s}else{f=u,h=l,u=s;var d=h.getOwner(),p=f.getOwner();if(!(d!=null&&d.getGraphManager()==this))throw"Source not in this graph mgr!";if(!(p!=null&&p.getGraphManager()==this))throw"Target not in this graph mgr!";if(d==p)return u.isInterGraph=!1,d.add(u,h,f);if(u.isInterGraph=!0,u.source=h,u.target=f,this.edges.indexOf(u)>-1)throw"Edge already in inter-graph edge list!";if(this.edges.push(u),!(u.source!=null&&u.target!=null))throw"Edge source and/or target is null!";if(!(u.source.edges.indexOf(u)==-1&&u.target.edges.indexOf(u)==-1))throw"Edge already in source and/or target incidency list!";return u.source.edges.push(u),u.target.edges.push(u),u}},a.prototype.remove=function(s){if(s instanceof n){var l=s;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 u=[];u=u.concat(l.getEdges());for(var h,f=u.length,d=0;d=s.getRight()?l[0]+=Math.min(s.getX()-a.getX(),a.getRight()-s.getRight()):s.getX()<=a.getX()&&s.getRight()>=a.getRight()&&(l[0]+=Math.min(a.getX()-s.getX(),s.getRight()-a.getRight())),a.getY()<=s.getY()&&a.getBottom()>=s.getBottom()?l[1]+=Math.min(s.getY()-a.getY(),a.getBottom()-s.getBottom()):s.getY()<=a.getY()&&s.getBottom()>=a.getBottom()&&(l[1]+=Math.min(a.getY()-s.getY(),s.getBottom()-a.getBottom()));var f=Math.abs((s.getCenterY()-a.getCenterY())/(s.getCenterX()-a.getCenterX()));s.getCenterY()===a.getCenterY()&&s.getCenterX()===a.getCenterX()&&(f=1);var d=f*l[0],p=l[1]/f;l[0]d)return l[0]=u,l[1]=m,l[2]=f,l[3]=A,!1;if(hf)return l[0]=p,l[1]=h,l[2]=k,l[3]=d,!1;if(uf?(l[0]=y,l[1]=v,E=!0):(l[0]=g,l[1]=m,E=!0):D===N&&(u>f?(l[0]=p,l[1]=m,E=!0):(l[0]=x,l[1]=v,E=!0)),-O===N?f>u?(l[2]=C,l[3]=A,_=!0):(l[2]=k,l[3]=w,_=!0):O===N&&(f>u?(l[2]=S,l[3]=w,_=!0):(l[2]=L,l[3]=A,_=!0)),E&&_)return!1;if(u>f?h>d?(P=this.getCardinalDirection(D,N,4),B=this.getCardinalDirection(O,N,2)):(P=this.getCardinalDirection(-D,N,3),B=this.getCardinalDirection(-O,N,1)):h>d?(P=this.getCardinalDirection(-D,N,1),B=this.getCardinalDirection(-O,N,3)):(P=this.getCardinalDirection(D,N,2),B=this.getCardinalDirection(O,N,4)),!E)switch(P){case 1:V=m,F=u+-T/N,l[0]=F,l[1]=V;break;case 2:F=x,V=h+b*N,l[0]=F,l[1]=V;break;case 3:V=v,F=u+T/N,l[0]=F,l[1]=V;break;case 4:F=y,V=h+-b*N,l[0]=F,l[1]=V;break}if(!_)switch(B){case 1:U=w,$=f+-R/N,l[2]=$,l[3]=U;break;case 2:$=L,U=d+I*N,l[2]=$,l[3]=U;break;case 3:U=A,$=f+R/N,l[2]=$,l[3]=U;break;case 4:$=C,U=d+-I*N,l[2]=$,l[3]=U;break}}return!1},i.getCardinalDirection=function(a,s,l){return a>s?l:1+l%4},i.getIntersection=function(a,s,l,u){if(u==null)return this.getIntersection2(a,s,l);var h=a.x,f=a.y,d=s.x,p=s.y,m=l.x,g=l.y,y=u.x,v=u.y,x=void 0,b=void 0,T=void 0,S=void 0,w=void 0,k=void 0,C=void 0,A=void 0,L=void 0;return T=p-f,w=h-d,C=d*f-h*p,S=v-g,k=m-y,A=y*g-m*v,L=T*k-S*w,L===0?null:(x=(w*A-k*C)/L,b=(S*C-T*A)/L,new n(x,b))},i.angleOfVector=function(a,s,l,u){var h=void 0;return a!==l?(h=Math.atan((u-s)/(l-a)),l0?1:i<0?-1:0},n.floor=function(i){return i<0?Math.ceil(i):Math.floor(i)},n.ceil=function(i){return i<0?Math.floor(i):Math.ceil(i)},t.exports=n}),(function(t,e,r){"use strict";function n(){}o(n,"Integer"),n.MAX_VALUE=2147483647,n.MIN_VALUE=-2147483648,t.exports=n}),(function(t,e,r){"use strict";var n=(function(){function h(f,d){for(var p=0;p"u"?"undefined":n(a);return a==null||s!="object"&&s!="function"},t.exports=i}),(function(t,e,r){"use strict";function n(m){if(Array.isArray(m)){for(var g=0,y=Array(m.length);g0&&g;){for(T.push(w[0]);T.length>0&&g;){var k=T[0];T.splice(0,1),b.add(k);for(var C=k.getEdges(),x=0;x-1&&w.splice(R,1)}b=new Set,S=new Map}}return m},p.prototype.createDummyNodesForBendpoints=function(m){for(var g=[],y=m.source,v=this.graphManager.calcLowestCommonAncestor(m.source,m.target),x=0;x0){for(var v=this.edgeToDummyNodes.get(y),x=0;x=0&&g.splice(A,1);var L=S.getNeighborsList();L.forEach(function(E){if(y.indexOf(E)<0){var _=v.get(E),D=_-1;D==1&&k.push(E),v.set(E,D)}})}y=y.concat(k),(g.length==1||g.length==2)&&(x=!0,b=g[0])}return b},p.prototype.setGraphManager=function(m){this.graphManager=m},t.exports=p}),(function(t,e,r){"use strict";function n(){}o(n,"RandomSeed"),n.seed=1,n.x=0,n.nextDouble=function(){return n.x=Math.sin(n.seed++)*1e4,n.x-Math.floor(n.x)},t.exports=n}),(function(t,e,r){"use strict";var n=r(4);function i(a,s){this.lworldOrgX=0,this.lworldOrgY=0,this.ldeviceOrgX=0,this.ldeviceOrgY=0,this.lworldExtX=1,this.lworldExtY=1,this.ldeviceExtX=1,this.ldeviceExtY=1}o(i,"Transform"),i.prototype.getWorldOrgX=function(){return this.lworldOrgX},i.prototype.setWorldOrgX=function(a){this.lworldOrgX=a},i.prototype.getWorldOrgY=function(){return this.lworldOrgY},i.prototype.setWorldOrgY=function(a){this.lworldOrgY=a},i.prototype.getWorldExtX=function(){return this.lworldExtX},i.prototype.setWorldExtX=function(a){this.lworldExtX=a},i.prototype.getWorldExtY=function(){return this.lworldExtY},i.prototype.setWorldExtY=function(a){this.lworldExtY=a},i.prototype.getDeviceOrgX=function(){return this.ldeviceOrgX},i.prototype.setDeviceOrgX=function(a){this.ldeviceOrgX=a},i.prototype.getDeviceOrgY=function(){return this.ldeviceOrgY},i.prototype.setDeviceOrgY=function(a){this.ldeviceOrgY=a},i.prototype.getDeviceExtX=function(){return this.ldeviceExtX},i.prototype.setDeviceExtX=function(a){this.ldeviceExtX=a},i.prototype.getDeviceExtY=function(){return this.ldeviceExtY},i.prototype.setDeviceExtY=function(a){this.ldeviceExtY=a},i.prototype.transformX=function(a){var s=0,l=this.lworldExtX;return l!=0&&(s=this.ldeviceOrgX+(a-this.lworldOrgX)*this.ldeviceExtX/l),s},i.prototype.transformY=function(a){var s=0,l=this.lworldExtY;return l!=0&&(s=this.ldeviceOrgY+(a-this.lworldOrgY)*this.ldeviceExtY/l),s},i.prototype.inverseTransformX=function(a){var s=0,l=this.ldeviceExtX;return l!=0&&(s=this.lworldOrgX+(a-this.ldeviceOrgX)*this.lworldExtX/l),s},i.prototype.inverseTransformY=function(a){var s=0,l=this.ldeviceExtY;return l!=0&&(s=this.lworldOrgY+(a-this.ldeviceOrgY)*this.lworldExtY/l),s},i.prototype.inverseTransformPoint=function(a){var s=new n(this.inverseTransformX(a.x),this.inverseTransformY(a.y));return s},t.exports=i}),(function(t,e,r){"use strict";function n(d){if(Array.isArray(d)){for(var p=0,m=Array(d.length);pa.ADAPTATION_LOWER_NODE_LIMIT&&(this.coolingFactor=Math.max(this.coolingFactor*a.COOLING_ADAPTATION_FACTOR,this.coolingFactor-(d-a.ADAPTATION_LOWER_NODE_LIMIT)/(a.ADAPTATION_UPPER_NODE_LIMIT-a.ADAPTATION_LOWER_NODE_LIMIT)*this.coolingFactor*(1-a.COOLING_ADAPTATION_FACTOR))),this.maxNodeDisplacement=a.MAX_NODE_DISPLACEMENT_INCREMENTAL):(d>a.ADAPTATION_LOWER_NODE_LIMIT?this.coolingFactor=Math.max(a.COOLING_ADAPTATION_FACTOR,1-(d-a.ADAPTATION_LOWER_NODE_LIMIT)/(a.ADAPTATION_UPPER_NODE_LIMIT-a.ADAPTATION_LOWER_NODE_LIMIT)*(1-a.COOLING_ADAPTATION_FACTOR)):this.coolingFactor=1,this.initialCoolingFactor=this.coolingFactor,this.maxNodeDisplacement=a.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 d=this.getAllEdges(),p,m=0;m0&&arguments[0]!==void 0?arguments[0]:!0,p=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1,m,g,y,v,x=this.getAllNodes(),b;if(this.useFRGridVariant)for(this.totalIterations%a.GRID_CALCULATION_CHECK_PERIOD==1&&d&&this.updateGrid(),b=new Set,m=0;mT||b>T)&&(d.gravitationForceX=-this.gravityConstant*y,d.gravitationForceY=-this.gravityConstant*v)):(T=p.getEstimatedSize()*this.compoundGravityRangeFactor,(x>T||b>T)&&(d.gravitationForceX=-this.gravityConstant*y*this.compoundGravityConstant,d.gravitationForceY=-this.gravityConstant*v*this.compoundGravityConstant))},h.prototype.isConverged=function(){var d,p=!1;return this.totalIterations>this.maxIterations/3&&(p=Math.abs(this.totalDisplacement-this.oldTotalDisplacement)<2),d=this.totalDisplacement=x.length||T>=x[0].length)){for(var S=0;Sh},"_defaultCompareFunction")}]),l})();t.exports=s}),(function(t,e,r){"use strict";var n=(function(){function s(l,u){for(var h=0;h2&&arguments[2]!==void 0?arguments[2]:1,f=arguments.length>3&&arguments[3]!==void 0?arguments[3]:-1,d=arguments.length>4&&arguments[4]!==void 0?arguments[4]:-1;i(this,s),this.sequence1=l,this.sequence2=u,this.match_score=h,this.mismatch_penalty=f,this.gap_penalty=d,this.iMax=l.length+1,this.jMax=u.length+1,this.grid=new Array(this.iMax);for(var p=0;p=0;l--){var u=this.listeners[l];u.event===a&&u.callback===s&&this.listeners.splice(l,1)}},i.emit=function(a,s){for(var l=0;l{"use strict";o((function(e,r){typeof _x=="object"&&typeof BI=="object"?BI.exports=r(PI()):typeof define=="function"&&define.amd?define(["layout-base"],r):typeof _x=="object"?_x.coseBase=r(PI()):e.coseBase=r(e.layoutBase)}),"webpackUniversalModuleDefinition")(_x,function(t){return(function(e){var r={};function n(i){if(r[i])return r[i].exports;var a=r[i]={i,l:!1,exports:{}};return e[i].call(a.exports,a,a.exports,n),a.l=!0,a.exports}return o(n,"__webpack_require__"),n.m=e,n.c=r,n.i=function(i){return i},n.d=function(i,a,s){n.o(i,a)||Object.defineProperty(i,a,{configurable:!1,enumerable:!0,get:s})},n.n=function(i){var a=i&&i.__esModule?o(function(){return i.default},"getDefault"):o(function(){return i},"getModuleExports");return n.d(a,"a",a),a},n.o=function(i,a){return Object.prototype.hasOwnProperty.call(i,a)},n.p="",n(n.s=7)})([(function(e,r){e.exports=t}),(function(e,r,n){"use strict";var i=n(0).FDLayoutConstants;function a(){}o(a,"CoSEConstants");for(var s in i)a[s]=i[s];a.DEFAULT_USE_MULTI_LEVEL_SCALING=!1,a.DEFAULT_RADIAL_SEPARATION=i.DEFAULT_EDGE_LENGTH,a.DEFAULT_COMPONENT_SEPERATION=60,a.TILE=!0,a.TILING_PADDING_VERTICAL=10,a.TILING_PADDING_HORIZONTAL=10,a.TREE_REDUCTION_ON_INCREMENTAL=!1,e.exports=a}),(function(e,r,n){"use strict";var i=n(0).FDLayoutEdge;function a(l,u,h){i.call(this,l,u,h)}o(a,"CoSEEdge"),a.prototype=Object.create(i.prototype);for(var s in i)a[s]=i[s];e.exports=a}),(function(e,r,n){"use strict";var i=n(0).LGraph;function a(l,u,h){i.call(this,l,u,h)}o(a,"CoSEGraph"),a.prototype=Object.create(i.prototype);for(var s in i)a[s]=i[s];e.exports=a}),(function(e,r,n){"use strict";var i=n(0).LGraphManager;function a(l){i.call(this,l)}o(a,"CoSEGraphManager"),a.prototype=Object.create(i.prototype);for(var s in i)a[s]=i[s];e.exports=a}),(function(e,r,n){"use strict";var i=n(0).FDLayoutNode,a=n(0).IMath;function s(u,h,f,d){i.call(this,u,h,f,d)}o(s,"CoSENode"),s.prototype=Object.create(i.prototype);for(var l in i)s[l]=i[l];s.prototype.move=function(){var u=this.graphManager.getLayout();this.displacementX=u.coolingFactor*(this.springForceX+this.repulsionForceX+this.gravitationForceX)/this.noOfChildren,this.displacementY=u.coolingFactor*(this.springForceY+this.repulsionForceY+this.gravitationForceY)/this.noOfChildren,Math.abs(this.displacementX)>u.coolingFactor*u.maxNodeDisplacement&&(this.displacementX=u.coolingFactor*u.maxNodeDisplacement*a.sign(this.displacementX)),Math.abs(this.displacementY)>u.coolingFactor*u.maxNodeDisplacement&&(this.displacementY=u.coolingFactor*u.maxNodeDisplacement*a.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),u.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},s.prototype.propogateDisplacementToChildren=function(u,h){for(var f=this.getChild().getNodes(),d,p=0;p0)this.positionNodesRadially(w);else{this.reduceTrees(),this.graphManager.resetAllNodesToApplyGravitation();var k=new Set(this.getAllNodes()),C=this.nodesWithGravity.filter(function(A){return k.has(A)});this.graphManager.setAllNodesToApplyGravitation(C),this.positionNodesRandomly()}}return this.initSpringEmbedder(),this.runSpringEmbedder(),!0},T.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%f.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 w=new Set(this.getAllNodes()),k=this.nodesWithGravity.filter(function(L){return w.has(L)});this.graphManager.setAllNodesToApplyGravitation(k),this.graphManager.updateBounds(),this.updateGrid(),this.coolingFactor=f.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=f.DEFAULT_COOLING_FACTOR_INCREMENTAL*((100-this.afterGrowthIterations)/100),this.afterGrowthIterations++}var C=!this.isTreeGrowing&&!this.isGrowthFinished,A=this.growTreeIterations%10==1&&this.isTreeGrowing||this.afterGrowthIterations%10==1&&this.isGrowthFinished;return this.totalDisplacement=0,this.graphManager.updateBounds(),this.calcSpringForces(),this.calcRepulsionForces(C,A),this.calcGravitationalForces(),this.moveNodes(),this.animate(),!1},T.prototype.getPositionsData=function(){for(var w=this.graphManager.getAllNodes(),k={},C=0;C1){var E;for(E=0;EA&&(A=Math.floor(R.y)),I=Math.floor(R.x+h.DEFAULT_COMPONENT_SEPERATION)}this.transform(new m(d.WORLD_CENTER_X-R.x/2,d.WORLD_CENTER_Y-R.y/2))},T.radialLayout=function(w,k,C){var A=Math.max(this.maxDiagonalInTree(w),h.DEFAULT_RADIAL_SEPARATION);T.branchRadialLayout(k,null,0,359,0,A);var L=x.calculateBounds(w),I=new b;I.setDeviceOrgX(L.getMinX()),I.setDeviceOrgY(L.getMinY()),I.setWorldOrgX(C.x),I.setWorldOrgY(C.y);for(var R=0;R1;){var j=U[0];U.splice(0,1);var ee=P.indexOf(j);ee>=0&&P.splice(ee,1),V--,B--}k!=null?$=(P.indexOf(U[0])+1)%V:$=0;for(var q=Math.abs(A-C)/B,oe=$;F!=B;oe=++oe%V){var Q=P[oe].getOtherEnd(w);if(Q!=k){var ue=(C+F*q)%360,te=(ue+q)%360;T.branchRadialLayout(Q,w,ue,te,L+I,I),F++}}},T.maxDiagonalInTree=function(w){for(var k=y.MIN_VALUE,C=0;Ck&&(k=L)}return k},T.prototype.calcRepulsionRange=function(){return 2*(this.level+1)*this.idealEdgeLength},T.prototype.groupZeroDegreeMembers=function(){var w=this,k={};this.memberGroups={},this.idToDummyNode={};for(var C=[],A=this.graphManager.getAllNodes(),L=0;L"u"&&(k[E]=[]),k[E]=k[E].concat(I)}Object.keys(k).forEach(function(_){if(k[_].length>1){var D="DummyCompound_"+_;w.memberGroups[D]=k[_];var O=k[_][0].getParent(),N=new l(w.graphManager);N.id=D,N.paddingLeft=O.paddingLeft||0,N.paddingRight=O.paddingRight||0,N.paddingBottom=O.paddingBottom||0,N.paddingTop=O.paddingTop||0,w.idToDummyNode[D]=N;var P=w.getGraphManager().add(w.newGraph(),N),B=O.getChild();B.add(N);for(var F=0;F=0;w--){var k=this.compoundOrder[w],C=k.id,A=k.paddingLeft,L=k.paddingTop;this.adjustLocations(this.tiledMemberPack[C],k.rect.x,k.rect.y,A,L)}},T.prototype.repopulateZeroDegreeMembers=function(){var w=this,k=this.tiledZeroDegreePack;Object.keys(k).forEach(function(C){var A=w.idToDummyNode[C],L=A.paddingLeft,I=A.paddingTop;w.adjustLocations(k[C],A.rect.x,A.rect.y,L,I)})},T.prototype.getToBeTiled=function(w){var k=w.id;if(this.toBeTiled[k]!=null)return this.toBeTiled[k];var C=w.getChild();if(C==null)return this.toBeTiled[k]=!1,!1;for(var A=C.getNodes(),L=0;L0)return this.toBeTiled[k]=!1,!1;if(I.getChild()==null){this.toBeTiled[I.id]=!1;continue}if(!this.getToBeTiled(I))return this.toBeTiled[k]=!1,!1}return this.toBeTiled[k]=!0,!0},T.prototype.getNodeDegree=function(w){for(var k=w.id,C=w.getEdges(),A=0,L=0;L_&&(_=O.rect.height)}C+=_+w.verticalPadding}},T.prototype.tileCompoundMembers=function(w,k){var C=this;this.tiledMemberPack=[],Object.keys(w).forEach(function(A){var L=k[A];C.tiledMemberPack[A]=C.tileNodes(w[A],L.paddingLeft+L.paddingRight),L.rect.width=C.tiledMemberPack[A].width,L.rect.height=C.tiledMemberPack[A].height})},T.prototype.tileNodes=function(w,k){var C=h.TILING_PADDING_VERTICAL,A=h.TILING_PADDING_HORIZONTAL,L={rows:[],rowWidth:[],rowHeight:[],width:0,height:k,verticalPadding:C,horizontalPadding:A};w.sort(function(E,_){return E.rect.width*E.rect.height>_.rect.width*_.rect.height?-1:E.rect.width*E.rect.height<_.rect.width*_.rect.height?1:0});for(var I=0;I0&&(R+=w.horizontalPadding),w.rowWidth[C]=R,w.width0&&(E+=w.verticalPadding);var _=0;E>w.rowHeight[C]&&(_=w.rowHeight[C],w.rowHeight[C]=E,_=w.rowHeight[C]-_),w.height+=_,w.rows[C].push(k)},T.prototype.getShortestRowIndex=function(w){for(var k=-1,C=Number.MAX_VALUE,A=0;AC&&(k=A,C=w.rowWidth[A]);return k},T.prototype.canAddHorizontal=function(w,k,C){var A=this.getShortestRowIndex(w);if(A<0)return!0;var L=w.rowWidth[A];if(L+w.horizontalPadding+k<=w.width)return!0;var I=0;w.rowHeight[A]0&&(I=C+w.verticalPadding-w.rowHeight[A]);var R;w.width-L>=k+w.horizontalPadding?R=(w.height+I)/(L+k+w.horizontalPadding):R=(w.height+I)/w.width,I=C+w.verticalPadding;var E;return w.widthI&&k!=C){A.splice(-1,1),w.rows[C].push(L),w.rowWidth[k]=w.rowWidth[k]-I,w.rowWidth[C]=w.rowWidth[C]+I,w.width=w.rowWidth[instance.getLongestRowIndex(w)];for(var R=Number.MIN_VALUE,E=0;ER&&(R=A[E].height);k>0&&(R+=w.verticalPadding);var _=w.rowHeight[k]+w.rowHeight[C];w.rowHeight[k]=R,w.rowHeight[C]0)for(var B=L;B<=I;B++)P[0]+=this.grid[B][R-1].length+this.grid[B][R].length-1;if(I0)for(var B=R;B<=E;B++)P[3]+=this.grid[L-1][B].length+this.grid[L][B].length-1;for(var F=y.MAX_VALUE,V,$,U=0;U{"use strict";o((function(e,r){typeof Dx=="object"&&typeof $I=="object"?$I.exports=r(FI()):typeof define=="function"&&define.amd?define(["cose-base"],r):typeof Dx=="object"?Dx.cytoscapeCoseBilkent=r(FI()):e.cytoscapeCoseBilkent=r(e.coseBase)}),"webpackUniversalModuleDefinition")(Dx,function(t){return(function(e){var r={};function n(i){if(r[i])return r[i].exports;var a=r[i]={i,l:!1,exports:{}};return e[i].call(a.exports,a,a.exports,n),a.l=!0,a.exports}return o(n,"__webpack_require__"),n.m=e,n.c=r,n.i=function(i){return i},n.d=function(i,a,s){n.o(i,a)||Object.defineProperty(i,a,{configurable:!1,enumerable:!0,get:s})},n.n=function(i){var a=i&&i.__esModule?o(function(){return i.default},"getDefault"):o(function(){return i},"getModuleExports");return n.d(a,"a",a),a},n.o=function(i,a){return Object.prototype.hasOwnProperty.call(i,a)},n.p="",n(n.s=1)})([(function(e,r){e.exports=t}),(function(e,r,n){"use strict";var i=n(0).layoutBase.LayoutConstants,a=n(0).layoutBase.FDLayoutConstants,s=n(0).CoSEConstants,l=n(0).CoSELayout,u=n(0).CoSENode,h=n(0).layoutBase.PointD,f=n(0).layoutBase.DimensionD,d={ready:o(function(){},"ready"),stop:o(function(){},"stop"),quality:"default",nodeDimensionsIncludeLabels:!1,refresh:30,fit:!0,padding:10,randomize:!0,nodeRepulsion:4500,idealEdgeLength:50,edgeElasticity:.45,nestingFactor:.1,gravity:.25,numIter:2500,tile:!0,animate:"end",animationDuration:500,tilingPaddingVertical:10,tilingPaddingHorizontal:10,gravityRangeCompound:1.5,gravityCompound:1,gravityRange:3.8,initialEnergyOnIncremental:.5};function p(v,x){var b={};for(var T in v)b[T]=v[T];for(var T in x)b[T]=x[T];return b}o(p,"extend");function m(v){this.options=p(d,v),g(this.options)}o(m,"_CoSELayout");var g=o(function(x){x.nodeRepulsion!=null&&(s.DEFAULT_REPULSION_STRENGTH=a.DEFAULT_REPULSION_STRENGTH=x.nodeRepulsion),x.idealEdgeLength!=null&&(s.DEFAULT_EDGE_LENGTH=a.DEFAULT_EDGE_LENGTH=x.idealEdgeLength),x.edgeElasticity!=null&&(s.DEFAULT_SPRING_STRENGTH=a.DEFAULT_SPRING_STRENGTH=x.edgeElasticity),x.nestingFactor!=null&&(s.PER_LEVEL_IDEAL_EDGE_LENGTH_FACTOR=a.PER_LEVEL_IDEAL_EDGE_LENGTH_FACTOR=x.nestingFactor),x.gravity!=null&&(s.DEFAULT_GRAVITY_STRENGTH=a.DEFAULT_GRAVITY_STRENGTH=x.gravity),x.numIter!=null&&(s.MAX_ITERATIONS=a.MAX_ITERATIONS=x.numIter),x.gravityRange!=null&&(s.DEFAULT_GRAVITY_RANGE_FACTOR=a.DEFAULT_GRAVITY_RANGE_FACTOR=x.gravityRange),x.gravityCompound!=null&&(s.DEFAULT_COMPOUND_GRAVITY_STRENGTH=a.DEFAULT_COMPOUND_GRAVITY_STRENGTH=x.gravityCompound),x.gravityRangeCompound!=null&&(s.DEFAULT_COMPOUND_GRAVITY_RANGE_FACTOR=a.DEFAULT_COMPOUND_GRAVITY_RANGE_FACTOR=x.gravityRangeCompound),x.initialEnergyOnIncremental!=null&&(s.DEFAULT_COOLING_FACTOR_INCREMENTAL=a.DEFAULT_COOLING_FACTOR_INCREMENTAL=x.initialEnergyOnIncremental),x.quality=="draft"?i.QUALITY=0:x.quality=="proof"?i.QUALITY=2:i.QUALITY=1,s.NODE_DIMENSIONS_INCLUDE_LABELS=a.NODE_DIMENSIONS_INCLUDE_LABELS=i.NODE_DIMENSIONS_INCLUDE_LABELS=x.nodeDimensionsIncludeLabels,s.DEFAULT_INCREMENTAL=a.DEFAULT_INCREMENTAL=i.DEFAULT_INCREMENTAL=!x.randomize,s.ANIMATE=a.ANIMATE=i.ANIMATE=x.animate,s.TILE=x.tile,s.TILING_PADDING_VERTICAL=typeof x.tilingPaddingVertical=="function"?x.tilingPaddingVertical.call():x.tilingPaddingVertical,s.TILING_PADDING_HORIZONTAL=typeof x.tilingPaddingHorizontal=="function"?x.tilingPaddingHorizontal.call():x.tilingPaddingHorizontal},"getUserOptions");m.prototype.run=function(){var v,x,b=this.options,T=this.idToLNode={},S=this.layout=new l,w=this;w.stopped=!1,this.cy=this.options.cy,this.cy.trigger({type:"layoutstart",layout:this});var k=S.newGraphManager();this.gm=k;var C=this.options.eles.nodes(),A=this.options.eles.edges();this.root=k.addRoot(),this.processChildrenList(this.root,this.getTopMostNodes(C),S);for(var L=0;L0){var E;E=b.getGraphManager().add(b.newGraph(),C),this.processChildrenList(E,k,b)}}},m.prototype.stop=function(){return this.stopped=!0,this};var y=o(function(x){x("layout","cose-bilkent",m)},"register");typeof cytoscape<"u"&&y(cytoscape),e.exports=y})])})});function jqe(t,e){t.forEach(r=>{let n={id:r.id,labelText:r.label,height:r.height,width:r.width,padding:r.padding??0};Object.keys(r).forEach(i=>{["id","label","height","width","padding","x","y"].includes(i)||(n[i]=r[i])}),e.add({group:"nodes",data:n,position:{x:r.x??0,y:r.y??0}})})}function Kqe(t,e){t.forEach(r=>{let n={id:r.id,source:r.start,target:r.end};Object.keys(r).forEach(i=>{["id","start","end"].includes(i)||(n[i]=r[i])}),e.add({group:"edges",data:n})})}function rfe(t){return new Promise(e=>{let r=qe("body").append("div").attr("id","cy").attr("style","display:none"),n=Ko({container:document.getElementById("cy"),style:[{selector:"edge",style:{"curve-style":"bezier"}}]});r.remove(),jqe(t.nodes,n),Kqe(t.edges,n),n.nodes().forEach(function(a){a.layoutDimensions=()=>{let s=a.data();return{w:s.width,h:s.height}}});let i={name:"cose-bilkent",quality:"proof",styleEnabled:!1,animate:!1};n.layout(i).run(),n.ready(a=>{X.info("Cytoscape ready",a),e(n)})})}function nfe(t){return t.nodes().map(e=>{let r=e.data(),n=e.position(),i={id:r.id,x:n.x,y:n.y};return Object.keys(r).forEach(a=>{a!=="id"&&(i[a]=r[a])}),i})}function ife(t){return t.edges().map(e=>{let r=e.data(),n=e._private.rscratch,i={id:r.id,source:r.source,target:r.target,startX:n.startX,startY:n.startY,midX:n.midX,midY:n.midY,endX:n.endX,endY:n.endY};return Object.keys(r).forEach(a=>{["id","source","target"].includes(a)||(i[a]=r[a])}),i})}var tfe,afe=M(()=>{"use strict";II();tfe=La(efe(),1);yr();pt();Ko.use(tfe.default);o(jqe,"addNodes");o(Kqe,"addEdges");o(rfe,"createCytoscapeInstance");o(nfe,"extractPositionedNodes");o(ife,"extractPositionedEdges")});async function sfe(t,e){X.debug("Starting cose-bilkent layout algorithm");try{Qqe(t);let r=await rfe(t),n=nfe(r),i=ife(r);return X.debug(`Layout completed: ${n.length} nodes, ${i.length} edges`),{nodes:n,edges:i}}catch(r){throw X.error("Error in cose-bilkent layout algorithm:",r),r}}function Qqe(t){if(!t)throw new Error("Layout data is required");if(!t.config)throw new Error("Configuration is required in layout data");if(!t.rootNode)throw new Error("Root node is required");if(!t.nodes||!Array.isArray(t.nodes))throw new Error("No nodes found in layout data");if(!Array.isArray(t.edges))throw new Error("Edges array is required in layout data");return!0}var ofe=M(()=>{"use strict";pt();afe();o(sfe,"executeCoseBilkentLayout");o(Qqe,"validateLayoutData")});var lfe,cfe=M(()=>{"use strict";ofe();lfe=o(async(t,e,{insertCluster:r,insertEdge:n,insertEdgeLabel:i,insertMarkers:a,insertNode:s,log:l,positionEdgeLabel:u},{algorithm:h})=>{let f={},d={},p=e.select("g");a(p,t.markers,t.type,t.diagramId);let m=p.insert("g").attr("class","subgraphs"),g=p.insert("g").attr("class","edgePaths"),y=p.insert("g").attr("class","edgeLabels"),v=p.insert("g").attr("class","nodes");l.debug("Inserting nodes into DOM for dimension calculation"),await Promise.all(t.nodes.map(async T=>{if(T.isGroup){let S={...T};d[T.id]=S,f[T.id]=S,await r(m,T)}else{let S={...T};f[T.id]=S;let w=await s(v,T,{config:t.config,dir:t.direction||"TB"}),k=w.node().getBBox();S.width=k.width,S.height=k.height,S.domId=w,l.debug(`Node ${T.id} dimensions: ${k.width}x${k.height}`)}})),l.debug("Running cose-bilkent layout algorithm");let x={...t,nodes:t.nodes.map(T=>{let S=f[T.id];return{...T,width:S.width,height:S.height}})},b=await sfe(x,t.config);l.debug("Positioning nodes based on layout results"),b.nodes.forEach(T=>{let S=f[T.id];S?.domId&&(S.domId.attr("transform",`translate(${T.x}, ${T.y})`),S.x=T.x,S.y=T.y,l.debug(`Positioned node ${S.id} at center (${T.x}, ${T.y})`))}),b.edges.forEach(T=>{let S=t.edges.find(w=>w.id===T.id);S&&(S.points=[{x:T.startX,y:T.startY},{x:T.midX,y:T.midY},{x:T.endX,y:T.endY}])}),l.debug("Inserting and positioning edges"),await Promise.all(t.edges.map(async T=>{let S=await i(y,T),w=f[T.start??""],k=f[T.end??""];if(w&&k){let C=b.edges.find(A=>A.id===T.id);if(C){l.debug("APA01 positionedEdge",C);let A={...T},L=n(g,A,d,t.type,w,k,t.diagramId);u(A,L)}else{let A={...T,points:[{x:w.x||0,y:w.y||0},{x:k.x||0,y:k.y||0}]},L=n(g,A,d,t.type,w,k,t.diagramId);u(A,L)}}})),l.debug("Cose-bilkent rendering completed")},"render")});var ufe={};dr(ufe,{render:()=>Zqe});var Zqe,hfe=M(()=>{"use strict";cfe();Zqe=lfe});var Lx,zI,Jqe,Qo,$c,Nf=M(()=>{"use strict";ere();pt();Lx={},zI=o(t=>{for(let e of t)Lx[e.name]=e},"registerLayoutLoaders"),Jqe=o(()=>{zI([{name:"dagre",loader:o(async()=>await Promise.resolve().then(()=>(Ioe(),Moe)),"loader")},{name:"cose-bilkent",loader:o(async()=>await Promise.resolve().then(()=>(hfe(),ufe)),"loader")}])},"registerDefaultLayoutLoaders");Jqe();Qo=o(async(t,e)=>{if(!(t.layoutAlgorithm in Lx))throw new Error(`Unknown layout algorithm: ${t.layoutAlgorithm}`);let r=Lx[t.layoutAlgorithm];return(await r.loader()).render(t,e,Jte,{algorithm:r.algorithm})},"render"),$c=o((t="",{fallback:e="dagre"}={})=>{if(t in Lx)return t;if(e in Lx)return X.warn(`Layout algorithm ${t} is not registered. Using ${e} as fallback.`),e;throw new Error(`Both layout algorithms ${t} and ${e} are not registered.`)},"getRegisteredLayoutAlgorithm")});var Ws,eWe,tWe,Mf=M(()=>{"use strict";Ei();pt();Ws=o((t,e,r,n)=>{t.attr("class",r);let{width:i,height:a,x:s,y:l}=eWe(t,e);mn(t,a,i,n);let u=tWe(s,l,i,a,e);t.attr("viewBox",u),X.debug(`viewBox configured: ${u} with padding: ${e}`)},"setupViewPortForSVG"),eWe=o((t,e)=>{let r=t.node()?.getBBox()||{width:0,height:0,x:0,y:0};return{width:r.width+e*2,height:r.height+e*2,x:r.x,y:r.y}},"calculateDimensionsWithPadding"),tWe=o((t,e,r,n,i)=>`${t-i} ${e-i} ${r} ${n}`,"createViewBox")});var rWe,nWe,ffe,dfe=M(()=>{"use strict";yr();Xt();pt();ep();Nf();Mf();tr();rWe=o(function(t,e){return e.db.getClasses()},"getClasses"),nWe=o(async function(t,e,r,n){X.info("REF0:"),X.info("Drawing state diagram (v2)",e);let{securityLevel:i,flowchart:a,layout:s}=ge(),l;i==="sandbox"&&(l=qe("#i"+e));let u=i==="sandbox"?l.nodes()[0].contentDocument:document;X.debug("Before getData: ");let h=n.db.getData();X.debug("Data: ",h);let f=Vo(e,i),d=n.db.getDirection();h.type=n.type,h.layoutAlgorithm=$c(s),h.layoutAlgorithm==="dagre"&&s==="elk"&&X.warn("flowchart-elk was moved to an external package in Mermaid v11. Please refer [release notes](https://github.com/mermaid-js/mermaid/releases/tag/v11.0.0) for more details. This diagram will be rendered using `dagre` layout as a fallback."),h.direction=d,h.nodeSpacing=a?.nodeSpacing||50,h.rankSpacing=a?.rankSpacing||50,h.markers=["point","circle","cross"],h.diagramId=e,X.debug("REF1:",h),await Qo(h,f);let p=h.config.flowchart?.diagramPadding??8;qt.insertTitle(f,"flowchartTitleText",a?.titleTopMargin||0,n.db.getDiagramTitle()),Ws(f,p,"flowchart",a?.useMaxWidth||!1);for(let m of h.nodes){let g=qe(`#${e} [id="${m.id}"]`);if(!g||!m.link)continue;let y=u.createElementNS("http://www.w3.org/2000/svg","a");y.setAttributeNS("http://www.w3.org/2000/svg","class",m.cssClasses),y.setAttributeNS("http://www.w3.org/2000/svg","rel","noopener"),i==="sandbox"?y.setAttributeNS("http://www.w3.org/2000/svg","target","_top"):m.linkTarget&&y.setAttributeNS("http://www.w3.org/2000/svg","target",m.linkTarget);let v=g.insert(function(){return y},":first-child"),x=g.select(".label-container");x&&v.append(function(){return x.node()});let b=g.select(".label");b&&v.append(function(){return b.node()})}},"draw"),ffe={getClasses:rWe,draw:nWe}});var GI,VI,pfe=M(()=>{"use strict";GI=(function(){var t=o(function(fr,it,kt,jt){for(kt=kt||{},jt=fr.length;jt--;kt[fr[jt]]=it);return kt},"o"),e=[1,4],r=[1,3],n=[1,5],i=[1,8,9,10,11,27,34,36,38,44,60,84,85,86,87,88,89,102,105,106,109,111,114,115,116,121,122,123,124],a=[2,2],s=[1,13],l=[1,14],u=[1,15],h=[1,16],f=[1,23],d=[1,25],p=[1,26],m=[1,27],g=[1,49],y=[1,48],v=[1,29],x=[1,30],b=[1,31],T=[1,32],S=[1,33],w=[1,44],k=[1,46],C=[1,42],A=[1,47],L=[1,43],I=[1,50],R=[1,45],E=[1,51],_=[1,52],D=[1,34],O=[1,35],N=[1,36],P=[1,37],B=[1,57],F=[1,8,9,10,11,27,32,34,36,38,44,60,84,85,86,87,88,89,102,105,106,109,111,114,115,116,121,122,123,124],V=[1,61],$=[1,60],U=[1,62],j=[8,9,11,75,77,78],ee=[1,78],q=[1,91],oe=[1,96],Q=[1,95],ue=[1,92],te=[1,88],re=[1,94],J=[1,90],K=[1,97],ae=[1,93],Z=[1,98],de=[1,89],ne=[8,9,10,11,40,75,77,78],Te=[8,9,10,11,40,46,75,77,78],W=[8,9,10,11,29,40,44,46,48,50,52,54,56,58,60,63,65,67,68,70,75,77,78,89,102,105,106,109,111,114,115,116],Ve=[8,9,11,44,60,75,77,78,89,102,105,106,109,111,114,115,116],pe=[44,60,89,102,105,106,109,111,114,115,116],Be=[1,121],Ye=[1,122],He=[1,124],Le=[1,123],Ie=[44,60,62,74,89,102,105,106,109,111,114,115,116],Ne=[1,133],Ce=[1,147],Fe=[1,148],fe=[1,149],xe=[1,150],Y=[1,135],he=[1,137],z=[1,141],se=[1,142],le=[1,143],ke=[1,144],ve=[1,145],ye=[1,146],Re=[1,151],_e=[1,152],ze=[1,131],Ke=[1,132],xt=[1,139],We=[1,134],Oe=[1,138],et=[1,136],Ue=[8,9,10,11,27,32,34,36,38,44,60,84,85,86,87,88,89,102,105,106,109,111,114,115,116,121,122,123,124],lt=[1,154],Gt=[1,156],vt=[8,9,11],Lt=[8,9,10,11,14,44,60,89,105,106,109,111,114,115,116],dt=[1,176],nt=[1,172],bt=[1,173],wt=[1,177],yt=[1,174],ft=[1,175],Ur=[77,116,119],_t=[8,9,10,11,12,14,27,29,32,44,60,75,84,85,86,87,88,89,90,105,109,111,114,115,116],bn=[10,106],Br=[31,49,51,53,55,57,62,64,66,67,69,71,116,117,118],cr=[1,247],ar=[1,245],_r=[1,249],Ct=[1,243],Se=[1,244],at=[1,246],Nt=[1,248],wr=[1,250],Tn=[1,268],yn=[8,9,11,106],sn=[8,9,10,11,60,84,105,106,109,110,111,112],Hi={trace:o(function(){},"trace"),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,shapeData:39,SHAPE_DATA:40,link:41,node:42,styledVertex:43,AMP:44,vertex:45,STYLE_SEPARATOR:46,idString:47,DOUBLECIRCLESTART:48,DOUBLECIRCLEEND:49,PS:50,PE:51,"(-":52,"-)":53,STADIUMSTART:54,STADIUMEND:55,SUBROUTINESTART:56,SUBROUTINEEND:57,VERTEX_WITH_PROPS_START:58,"NODE_STRING[field]":59,COLON:60,"NODE_STRING[value]":61,PIPE:62,CYLINDERSTART:63,CYLINDEREND:64,DIAMOND_START:65,DIAMOND_STOP:66,TAGEND:67,TRAPSTART:68,TRAPEND:69,INVTRAPSTART:70,INVTRAPEND:71,linkStatement:72,arrowText:73,TESTSTR:74,START_LINK:75,edgeText:76,LINK:77,LINK_ID:78,edgeTextToken:79,STR:80,MD_STR:81,textToken:82,keywords:83,STYLE:84,LINKSTYLE:85,CLASSDEF:86,CLASS:87,CLICK:88,DOWN:89,UP:90,textNoTagsToken:91,stylesOpt:92,"idString[vertex]":93,"idString[class]":94,CALLBACKNAME:95,CALLBACKARGS:96,HREF:97,LINK_TARGET:98,"STR[link]":99,"STR[tooltip]":100,alphaNum:101,DEFAULT:102,numList:103,INTERPOLATE:104,NUM:105,COMMA:106,style:107,styleComponent:108,NODE_STRING:109,UNIT:110,BRKT:111,PCT:112,idStringToken:113,MINUS:114,MULT:115,UNICODE_TEXT:116,TEXT:117,TAGSTART:118,EDGE_TEXT:119,alphaNumToken:120,direction_tb:121,direction_bt:122,direction_rl:123,direction_lr:124,$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",40:"SHAPE_DATA",44:"AMP",46:"STYLE_SEPARATOR",48:"DOUBLECIRCLESTART",49:"DOUBLECIRCLEEND",50:"PS",51:"PE",52:"(-",53:"-)",54:"STADIUMSTART",55:"STADIUMEND",56:"SUBROUTINESTART",57:"SUBROUTINEEND",58:"VERTEX_WITH_PROPS_START",59:"NODE_STRING[field]",60:"COLON",61:"NODE_STRING[value]",62:"PIPE",63:"CYLINDERSTART",64:"CYLINDEREND",65:"DIAMOND_START",66:"DIAMOND_STOP",67:"TAGEND",68:"TRAPSTART",69:"TRAPEND",70:"INVTRAPSTART",71:"INVTRAPEND",74:"TESTSTR",75:"START_LINK",77:"LINK",78:"LINK_ID",80:"STR",81:"MD_STR",84:"STYLE",85:"LINKSTYLE",86:"CLASSDEF",87:"CLASS",88:"CLICK",89:"DOWN",90:"UP",93:"idString[vertex]",94:"idString[class]",95:"CALLBACKNAME",96:"CALLBACKARGS",97:"HREF",98:"LINK_TARGET",99:"STR[link]",100:"STR[tooltip]",102:"DEFAULT",104:"INTERPOLATE",105:"NUM",106:"COMMA",109:"NODE_STRING",110:"UNIT",111:"BRKT",112:"PCT",114:"MINUS",115:"MULT",116:"UNICODE_TEXT",117:"TEXT",118:"TAGSTART",119:"EDGE_TEXT",121:"direction_tb",122:"direction_bt",123:"direction_rl",124:"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],[39,2],[39,1],[20,4],[20,3],[20,4],[20,2],[20,2],[20,1],[42,1],[42,6],[42,5],[43,1],[43,3],[45,4],[45,4],[45,6],[45,4],[45,4],[45,4],[45,8],[45,4],[45,4],[45,4],[45,6],[45,4],[45,4],[45,4],[45,4],[45,4],[45,1],[41,2],[41,3],[41,3],[41,1],[41,3],[41,4],[76,1],[76,2],[76,1],[76,1],[72,1],[72,2],[73,3],[30,1],[30,2],[30,1],[30,1],[83,1],[83,1],[83,1],[83,1],[83,1],[83,1],[83,1],[83,1],[83,1],[83,1],[83,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],[103,1],[103,3],[92,1],[92,3],[107,1],[107,2],[108,1],[108,1],[108,1],[108,1],[108,1],[108,1],[108,1],[108,1],[113,1],[113,1],[113,1],[113,1],[113,1],[113,1],[113,1],[113,1],[113,1],[113,1],[113,1],[82,1],[82,1],[82,1],[82,1],[91,1],[91,1],[91,1],[91,1],[91,1],[91,1],[91,1],[91,1],[91,1],[91,1],[91,1],[79,1],[79,1],[120,1],[120,1],[120,1],[120,1],[120,1],[120,1],[120,1],[120,1],[120,1],[120,1],[120,1],[47,1],[47,2],[101,1],[101,2],[33,1],[33,1],[33,1],[33,1]],performAction:o(function(it,kt,jt,ht,Dr,me,Yl){var be=me.length-1;switch(Dr){case 2:this.$=[];break;case 3:(!Array.isArray(me[be])||me[be].length>0)&&me[be-1].push(me[be]),this.$=me[be-1];break;case 4:case 183:this.$=me[be];break;case 11:ht.setDirection("TB"),this.$="TB";break;case 12:ht.setDirection(me[be-1]),this.$=me[be-1];break;case 27:this.$=me[be-1].nodes;break;case 28:case 29:case 30:case 31:case 32:this.$=[];break;case 33:this.$=ht.addSubGraph(me[be-6],me[be-1],me[be-4]);break;case 34:this.$=ht.addSubGraph(me[be-3],me[be-1],me[be-3]);break;case 35:this.$=ht.addSubGraph(void 0,me[be-1],void 0);break;case 37:this.$=me[be].trim(),ht.setAccTitle(this.$);break;case 38:case 39:this.$=me[be].trim(),ht.setAccDescription(this.$);break;case 43:this.$=me[be-1]+me[be];break;case 44:this.$=me[be];break;case 45:ht.addVertex(me[be-1][me[be-1].length-1],void 0,void 0,void 0,void 0,void 0,void 0,me[be]),ht.addLink(me[be-3].stmt,me[be-1],me[be-2]),this.$={stmt:me[be-1],nodes:me[be-1].concat(me[be-3].nodes)};break;case 46:ht.addLink(me[be-2].stmt,me[be],me[be-1]),this.$={stmt:me[be],nodes:me[be].concat(me[be-2].nodes)};break;case 47:ht.addLink(me[be-3].stmt,me[be-1],me[be-2]),this.$={stmt:me[be-1],nodes:me[be-1].concat(me[be-3].nodes)};break;case 48:this.$={stmt:me[be-1],nodes:me[be-1]};break;case 49:ht.addVertex(me[be-1][me[be-1].length-1],void 0,void 0,void 0,void 0,void 0,void 0,me[be]),this.$={stmt:me[be-1],nodes:me[be-1],shapeData:me[be]};break;case 50:this.$={stmt:me[be],nodes:me[be]};break;case 51:this.$=[me[be]];break;case 52:ht.addVertex(me[be-5][me[be-5].length-1],void 0,void 0,void 0,void 0,void 0,void 0,me[be-4]),this.$=me[be-5].concat(me[be]);break;case 53:this.$=me[be-4].concat(me[be]);break;case 54:this.$=me[be];break;case 55:this.$=me[be-2],ht.setClass(me[be-2],me[be]);break;case 56:this.$=me[be-3],ht.addVertex(me[be-3],me[be-1],"square");break;case 57:this.$=me[be-3],ht.addVertex(me[be-3],me[be-1],"doublecircle");break;case 58:this.$=me[be-5],ht.addVertex(me[be-5],me[be-2],"circle");break;case 59:this.$=me[be-3],ht.addVertex(me[be-3],me[be-1],"ellipse");break;case 60:this.$=me[be-3],ht.addVertex(me[be-3],me[be-1],"stadium");break;case 61:this.$=me[be-3],ht.addVertex(me[be-3],me[be-1],"subroutine");break;case 62:this.$=me[be-7],ht.addVertex(me[be-7],me[be-1],"rect",void 0,void 0,void 0,Object.fromEntries([[me[be-5],me[be-3]]]));break;case 63:this.$=me[be-3],ht.addVertex(me[be-3],me[be-1],"cylinder");break;case 64:this.$=me[be-3],ht.addVertex(me[be-3],me[be-1],"round");break;case 65:this.$=me[be-3],ht.addVertex(me[be-3],me[be-1],"diamond");break;case 66:this.$=me[be-5],ht.addVertex(me[be-5],me[be-2],"hexagon");break;case 67:this.$=me[be-3],ht.addVertex(me[be-3],me[be-1],"odd");break;case 68:this.$=me[be-3],ht.addVertex(me[be-3],me[be-1],"trapezoid");break;case 69:this.$=me[be-3],ht.addVertex(me[be-3],me[be-1],"inv_trapezoid");break;case 70:this.$=me[be-3],ht.addVertex(me[be-3],me[be-1],"lean_right");break;case 71:this.$=me[be-3],ht.addVertex(me[be-3],me[be-1],"lean_left");break;case 72:this.$=me[be],ht.addVertex(me[be]);break;case 73:me[be-1].text=me[be],this.$=me[be-1];break;case 74:case 75:me[be-2].text=me[be-1],this.$=me[be-2];break;case 76:this.$=me[be];break;case 77:var jr=ht.destructLink(me[be],me[be-2]);this.$={type:jr.type,stroke:jr.stroke,length:jr.length,text:me[be-1]};break;case 78:var jr=ht.destructLink(me[be],me[be-2]);this.$={type:jr.type,stroke:jr.stroke,length:jr.length,text:me[be-1],id:me[be-3]};break;case 79:this.$={text:me[be],type:"text"};break;case 80:this.$={text:me[be-1].text+""+me[be],type:me[be-1].type};break;case 81:this.$={text:me[be],type:"string"};break;case 82:this.$={text:me[be],type:"markdown"};break;case 83:var jr=ht.destructLink(me[be]);this.$={type:jr.type,stroke:jr.stroke,length:jr.length};break;case 84:var jr=ht.destructLink(me[be]);this.$={type:jr.type,stroke:jr.stroke,length:jr.length,id:me[be-1]};break;case 85:this.$=me[be-1];break;case 86:this.$={text:me[be],type:"text"};break;case 87:this.$={text:me[be-1].text+""+me[be],type:me[be-1].type};break;case 88:this.$={text:me[be],type:"string"};break;case 89:case 104:this.$={text:me[be],type:"markdown"};break;case 101:this.$={text:me[be],type:"text"};break;case 102:this.$={text:me[be-1].text+""+me[be],type:me[be-1].type};break;case 103:this.$={text:me[be],type:"text"};break;case 105:this.$=me[be-4],ht.addClass(me[be-2],me[be]);break;case 106:this.$=me[be-4],ht.setClass(me[be-2],me[be]);break;case 107:case 115:this.$=me[be-1],ht.setClickEvent(me[be-1],me[be]);break;case 108:case 116:this.$=me[be-3],ht.setClickEvent(me[be-3],me[be-2]),ht.setTooltip(me[be-3],me[be]);break;case 109:this.$=me[be-2],ht.setClickEvent(me[be-2],me[be-1],me[be]);break;case 110:this.$=me[be-4],ht.setClickEvent(me[be-4],me[be-3],me[be-2]),ht.setTooltip(me[be-4],me[be]);break;case 111:this.$=me[be-2],ht.setLink(me[be-2],me[be]);break;case 112:this.$=me[be-4],ht.setLink(me[be-4],me[be-2]),ht.setTooltip(me[be-4],me[be]);break;case 113:this.$=me[be-4],ht.setLink(me[be-4],me[be-2],me[be]);break;case 114:this.$=me[be-6],ht.setLink(me[be-6],me[be-4],me[be]),ht.setTooltip(me[be-6],me[be-2]);break;case 117:this.$=me[be-1],ht.setLink(me[be-1],me[be]);break;case 118:this.$=me[be-3],ht.setLink(me[be-3],me[be-2]),ht.setTooltip(me[be-3],me[be]);break;case 119:this.$=me[be-3],ht.setLink(me[be-3],me[be-2],me[be]);break;case 120:this.$=me[be-5],ht.setLink(me[be-5],me[be-4],me[be]),ht.setTooltip(me[be-5],me[be-2]);break;case 121:this.$=me[be-4],ht.addVertex(me[be-2],void 0,void 0,me[be]);break;case 122:this.$=me[be-4],ht.updateLink([me[be-2]],me[be]);break;case 123:this.$=me[be-4],ht.updateLink(me[be-2],me[be]);break;case 124:this.$=me[be-8],ht.updateLinkInterpolate([me[be-6]],me[be-2]),ht.updateLink([me[be-6]],me[be]);break;case 125:this.$=me[be-8],ht.updateLinkInterpolate(me[be-6],me[be-2]),ht.updateLink(me[be-6],me[be]);break;case 126:this.$=me[be-6],ht.updateLinkInterpolate([me[be-4]],me[be]);break;case 127:this.$=me[be-6],ht.updateLinkInterpolate(me[be-4],me[be]);break;case 128:case 130:this.$=[me[be]];break;case 129:case 131:me[be-2].push(me[be]),this.$=me[be-2];break;case 133:this.$=me[be-1]+me[be];break;case 181:this.$=me[be];break;case 182:this.$=me[be-1]+""+me[be];break;case 184:this.$=me[be-1]+""+me[be];break;case 185:this.$={stmt:"dir",value:"TB"};break;case 186:this.$={stmt:"dir",value:"BT"};break;case 187:this.$={stmt:"dir",value:"RL"};break;case 188:this.$={stmt:"dir",value:"LR"};break}},"anonymous"),table:[{3:1,4:2,9:e,10:r,12:n},{1:[3]},t(i,a,{5:6}),{4:7,9:e,10:r,12:n},{4:8,9:e,10:r,12:n},{13:[1,9],14:[1,10]},{1:[2,1],6:11,7:12,8:s,9:l,10:u,11:h,20:17,22:18,23:19,24:20,25:21,26:22,27:f,33:24,34:d,36:p,38:m,42:28,43:38,44:g,45:39,47:40,60:y,84:v,85:x,86:b,87:T,88:S,89:w,102:k,105:C,106:A,109:L,111:I,113:41,114:R,115:E,116:_,121:D,122:O,123:N,124:P},t(i,[2,9]),t(i,[2,10]),t(i,[2,11]),{8:[1,54],9:[1,55],10:B,15:53,18:56},t(F,[2,3]),t(F,[2,4]),t(F,[2,5]),t(F,[2,6]),t(F,[2,7]),t(F,[2,8]),{8:V,9:$,11:U,21:58,41:59,72:63,75:[1,64],77:[1,66],78:[1,65]},{8:V,9:$,11:U,21:67},{8:V,9:$,11:U,21:68},{8:V,9:$,11:U,21:69},{8:V,9:$,11:U,21:70},{8:V,9:$,11:U,21:71},{8:V,9:$,10:[1,72],11:U,21:73},t(F,[2,36]),{35:[1,74]},{37:[1,75]},t(F,[2,39]),t(j,[2,50],{18:76,39:77,10:B,40:ee}),{10:[1,79]},{10:[1,80]},{10:[1,81]},{10:[1,82]},{14:q,44:oe,60:Q,80:[1,86],89:ue,95:[1,83],97:[1,84],101:85,105:te,106:re,109:J,111:K,114:ae,115:Z,116:de,120:87},t(F,[2,185]),t(F,[2,186]),t(F,[2,187]),t(F,[2,188]),t(ne,[2,51]),t(ne,[2,54],{46:[1,99]}),t(Te,[2,72],{113:112,29:[1,100],44:g,48:[1,101],50:[1,102],52:[1,103],54:[1,104],56:[1,105],58:[1,106],60:y,63:[1,107],65:[1,108],67:[1,109],68:[1,110],70:[1,111],89:w,102:k,105:C,106:A,109:L,111:I,114:R,115:E,116:_}),t(W,[2,181]),t(W,[2,142]),t(W,[2,143]),t(W,[2,144]),t(W,[2,145]),t(W,[2,146]),t(W,[2,147]),t(W,[2,148]),t(W,[2,149]),t(W,[2,150]),t(W,[2,151]),t(W,[2,152]),t(i,[2,12]),t(i,[2,18]),t(i,[2,19]),{9:[1,113]},t(Ve,[2,26],{18:114,10:B}),t(F,[2,27]),{42:115,43:38,44:g,45:39,47:40,60:y,89:w,102:k,105:C,106:A,109:L,111:I,113:41,114:R,115:E,116:_},t(F,[2,40]),t(F,[2,41]),t(F,[2,42]),t(pe,[2,76],{73:116,62:[1,118],74:[1,117]}),{76:119,79:120,80:Be,81:Ye,116:He,119:Le},{75:[1,125],77:[1,126]},t(Ie,[2,83]),t(F,[2,28]),t(F,[2,29]),t(F,[2,30]),t(F,[2,31]),t(F,[2,32]),{10:Ne,12:Ce,14:Fe,27:fe,28:127,32:xe,44:Y,60:he,75:z,80:[1,129],81:[1,130],83:140,84:se,85:le,86:ke,87:ve,88:ye,89:Re,90:_e,91:128,105:ze,109:Ke,111:xt,114:We,115:Oe,116:et},t(Ue,a,{5:153}),t(F,[2,37]),t(F,[2,38]),t(j,[2,48],{44:lt}),t(j,[2,49],{18:155,10:B,40:Gt}),t(ne,[2,44]),{44:g,47:157,60:y,89:w,102:k,105:C,106:A,109:L,111:I,113:41,114:R,115:E,116:_},{102:[1,158],103:159,105:[1,160]},{44:g,47:161,60:y,89:w,102:k,105:C,106:A,109:L,111:I,113:41,114:R,115:E,116:_},{44:g,47:162,60:y,89:w,102:k,105:C,106:A,109:L,111:I,113:41,114:R,115:E,116:_},t(vt,[2,107],{10:[1,163],96:[1,164]}),{80:[1,165]},t(vt,[2,115],{120:167,10:[1,166],14:q,44:oe,60:Q,89:ue,105:te,106:re,109:J,111:K,114:ae,115:Z,116:de}),t(vt,[2,117],{10:[1,168]}),t(Lt,[2,183]),t(Lt,[2,170]),t(Lt,[2,171]),t(Lt,[2,172]),t(Lt,[2,173]),t(Lt,[2,174]),t(Lt,[2,175]),t(Lt,[2,176]),t(Lt,[2,177]),t(Lt,[2,178]),t(Lt,[2,179]),t(Lt,[2,180]),{44:g,47:169,60:y,89:w,102:k,105:C,106:A,109:L,111:I,113:41,114:R,115:E,116:_},{30:170,67:dt,80:nt,81:bt,82:171,116:wt,117:yt,118:ft},{30:178,67:dt,80:nt,81:bt,82:171,116:wt,117:yt,118:ft},{30:180,50:[1,179],67:dt,80:nt,81:bt,82:171,116:wt,117:yt,118:ft},{30:181,67:dt,80:nt,81:bt,82:171,116:wt,117:yt,118:ft},{30:182,67:dt,80:nt,81:bt,82:171,116:wt,117:yt,118:ft},{30:183,67:dt,80:nt,81:bt,82:171,116:wt,117:yt,118:ft},{109:[1,184]},{30:185,67:dt,80:nt,81:bt,82:171,116:wt,117:yt,118:ft},{30:186,65:[1,187],67:dt,80:nt,81:bt,82:171,116:wt,117:yt,118:ft},{30:188,67:dt,80:nt,81:bt,82:171,116:wt,117:yt,118:ft},{30:189,67:dt,80:nt,81:bt,82:171,116:wt,117:yt,118:ft},{30:190,67:dt,80:nt,81:bt,82:171,116:wt,117:yt,118:ft},t(W,[2,182]),t(i,[2,20]),t(Ve,[2,25]),t(j,[2,46],{39:191,18:192,10:B,40:ee}),t(pe,[2,73],{10:[1,193]}),{10:[1,194]},{30:195,67:dt,80:nt,81:bt,82:171,116:wt,117:yt,118:ft},{77:[1,196],79:197,116:He,119:Le},t(Ur,[2,79]),t(Ur,[2,81]),t(Ur,[2,82]),t(Ur,[2,168]),t(Ur,[2,169]),{76:198,79:120,80:Be,81:Ye,116:He,119:Le},t(Ie,[2,84]),{8:V,9:$,10:Ne,11:U,12:Ce,14:Fe,21:200,27:fe,29:[1,199],32:xe,44:Y,60:he,75:z,83:140,84:se,85:le,86:ke,87:ve,88:ye,89:Re,90:_e,91:201,105:ze,109:Ke,111:xt,114:We,115:Oe,116:et},t(_t,[2,101]),t(_t,[2,103]),t(_t,[2,104]),t(_t,[2,157]),t(_t,[2,158]),t(_t,[2,159]),t(_t,[2,160]),t(_t,[2,161]),t(_t,[2,162]),t(_t,[2,163]),t(_t,[2,164]),t(_t,[2,165]),t(_t,[2,166]),t(_t,[2,167]),t(_t,[2,90]),t(_t,[2,91]),t(_t,[2,92]),t(_t,[2,93]),t(_t,[2,94]),t(_t,[2,95]),t(_t,[2,96]),t(_t,[2,97]),t(_t,[2,98]),t(_t,[2,99]),t(_t,[2,100]),{6:11,7:12,8:s,9:l,10:u,11:h,20:17,22:18,23:19,24:20,25:21,26:22,27:f,32:[1,202],33:24,34:d,36:p,38:m,42:28,43:38,44:g,45:39,47:40,60:y,84:v,85:x,86:b,87:T,88:S,89:w,102:k,105:C,106:A,109:L,111:I,113:41,114:R,115:E,116:_,121:D,122:O,123:N,124:P},{10:B,18:203},{44:[1,204]},t(ne,[2,43]),{10:[1,205],44:g,60:y,89:w,102:k,105:C,106:A,109:L,111:I,113:112,114:R,115:E,116:_},{10:[1,206]},{10:[1,207],106:[1,208]},t(bn,[2,128]),{10:[1,209],44:g,60:y,89:w,102:k,105:C,106:A,109:L,111:I,113:112,114:R,115:E,116:_},{10:[1,210],44:g,60:y,89:w,102:k,105:C,106:A,109:L,111:I,113:112,114:R,115:E,116:_},{80:[1,211]},t(vt,[2,109],{10:[1,212]}),t(vt,[2,111],{10:[1,213]}),{80:[1,214]},t(Lt,[2,184]),{80:[1,215],98:[1,216]},t(ne,[2,55],{113:112,44:g,60:y,89:w,102:k,105:C,106:A,109:L,111:I,114:R,115:E,116:_}),{31:[1,217],67:dt,82:218,116:wt,117:yt,118:ft},t(Br,[2,86]),t(Br,[2,88]),t(Br,[2,89]),t(Br,[2,153]),t(Br,[2,154]),t(Br,[2,155]),t(Br,[2,156]),{49:[1,219],67:dt,82:218,116:wt,117:yt,118:ft},{30:220,67:dt,80:nt,81:bt,82:171,116:wt,117:yt,118:ft},{51:[1,221],67:dt,82:218,116:wt,117:yt,118:ft},{53:[1,222],67:dt,82:218,116:wt,117:yt,118:ft},{55:[1,223],67:dt,82:218,116:wt,117:yt,118:ft},{57:[1,224],67:dt,82:218,116:wt,117:yt,118:ft},{60:[1,225]},{64:[1,226],67:dt,82:218,116:wt,117:yt,118:ft},{66:[1,227],67:dt,82:218,116:wt,117:yt,118:ft},{30:228,67:dt,80:nt,81:bt,82:171,116:wt,117:yt,118:ft},{31:[1,229],67:dt,82:218,116:wt,117:yt,118:ft},{67:dt,69:[1,230],71:[1,231],82:218,116:wt,117:yt,118:ft},{67:dt,69:[1,233],71:[1,232],82:218,116:wt,117:yt,118:ft},t(j,[2,45],{18:155,10:B,40:Gt}),t(j,[2,47],{44:lt}),t(pe,[2,75]),t(pe,[2,74]),{62:[1,234],67:dt,82:218,116:wt,117:yt,118:ft},t(pe,[2,77]),t(Ur,[2,80]),{77:[1,235],79:197,116:He,119:Le},{30:236,67:dt,80:nt,81:bt,82:171,116:wt,117:yt,118:ft},t(Ue,a,{5:237}),t(_t,[2,102]),t(F,[2,35]),{43:238,44:g,45:39,47:40,60:y,89:w,102:k,105:C,106:A,109:L,111:I,113:41,114:R,115:E,116:_},{10:B,18:239},{10:cr,60:ar,84:_r,92:240,105:Ct,107:241,108:242,109:Se,110:at,111:Nt,112:wr},{10:cr,60:ar,84:_r,92:251,104:[1,252],105:Ct,107:241,108:242,109:Se,110:at,111:Nt,112:wr},{10:cr,60:ar,84:_r,92:253,104:[1,254],105:Ct,107:241,108:242,109:Se,110:at,111:Nt,112:wr},{105:[1,255]},{10:cr,60:ar,84:_r,92:256,105:Ct,107:241,108:242,109:Se,110:at,111:Nt,112:wr},{44:g,47:257,60:y,89:w,102:k,105:C,106:A,109:L,111:I,113:41,114:R,115:E,116:_},t(vt,[2,108]),{80:[1,258]},{80:[1,259],98:[1,260]},t(vt,[2,116]),t(vt,[2,118],{10:[1,261]}),t(vt,[2,119]),t(Te,[2,56]),t(Br,[2,87]),t(Te,[2,57]),{51:[1,262],67:dt,82:218,116:wt,117:yt,118:ft},t(Te,[2,64]),t(Te,[2,59]),t(Te,[2,60]),t(Te,[2,61]),{109:[1,263]},t(Te,[2,63]),t(Te,[2,65]),{66:[1,264],67:dt,82:218,116:wt,117:yt,118:ft},t(Te,[2,67]),t(Te,[2,68]),t(Te,[2,70]),t(Te,[2,69]),t(Te,[2,71]),t([10,44,60,89,102,105,106,109,111,114,115,116],[2,85]),t(pe,[2,78]),{31:[1,265],67:dt,82:218,116:wt,117:yt,118:ft},{6:11,7:12,8:s,9:l,10:u,11:h,20:17,22:18,23:19,24:20,25:21,26:22,27:f,32:[1,266],33:24,34:d,36:p,38:m,42:28,43:38,44:g,45:39,47:40,60:y,84:v,85:x,86:b,87:T,88:S,89:w,102:k,105:C,106:A,109:L,111:I,113:41,114:R,115:E,116:_,121:D,122:O,123:N,124:P},t(ne,[2,53]),{43:267,44:g,45:39,47:40,60:y,89:w,102:k,105:C,106:A,109:L,111:I,113:41,114:R,115:E,116:_},t(vt,[2,121],{106:Tn}),t(yn,[2,130],{108:269,10:cr,60:ar,84:_r,105:Ct,109:Se,110:at,111:Nt,112:wr}),t(sn,[2,132]),t(sn,[2,134]),t(sn,[2,135]),t(sn,[2,136]),t(sn,[2,137]),t(sn,[2,138]),t(sn,[2,139]),t(sn,[2,140]),t(sn,[2,141]),t(vt,[2,122],{106:Tn}),{10:[1,270]},t(vt,[2,123],{106:Tn}),{10:[1,271]},t(bn,[2,129]),t(vt,[2,105],{106:Tn}),t(vt,[2,106],{113:112,44:g,60:y,89:w,102:k,105:C,106:A,109:L,111:I,114:R,115:E,116:_}),t(vt,[2,110]),t(vt,[2,112],{10:[1,272]}),t(vt,[2,113]),{98:[1,273]},{51:[1,274]},{62:[1,275]},{66:[1,276]},{8:V,9:$,11:U,21:277},t(F,[2,34]),t(ne,[2,52]),{10:cr,60:ar,84:_r,105:Ct,107:278,108:242,109:Se,110:at,111:Nt,112:wr},t(sn,[2,133]),{14:q,44:oe,60:Q,89:ue,101:279,105:te,106:re,109:J,111:K,114:ae,115:Z,116:de,120:87},{14:q,44:oe,60:Q,89:ue,101:280,105:te,106:re,109:J,111:K,114:ae,115:Z,116:de,120:87},{98:[1,281]},t(vt,[2,120]),t(Te,[2,58]),{30:282,67:dt,80:nt,81:bt,82:171,116:wt,117:yt,118:ft},t(Te,[2,66]),t(Ue,a,{5:283}),t(yn,[2,131],{108:269,10:cr,60:ar,84:_r,105:Ct,109:Se,110:at,111:Nt,112:wr}),t(vt,[2,126],{120:167,10:[1,284],14:q,44:oe,60:Q,89:ue,105:te,106:re,109:J,111:K,114:ae,115:Z,116:de}),t(vt,[2,127],{120:167,10:[1,285],14:q,44:oe,60:Q,89:ue,105:te,106:re,109:J,111:K,114:ae,115:Z,116:de}),t(vt,[2,114]),{31:[1,286],67:dt,82:218,116:wt,117:yt,118:ft},{6:11,7:12,8:s,9:l,10:u,11:h,20:17,22:18,23:19,24:20,25:21,26:22,27:f,32:[1,287],33:24,34:d,36:p,38:m,42:28,43:38,44:g,45:39,47:40,60:y,84:v,85:x,86:b,87:T,88:S,89:w,102:k,105:C,106:A,109:L,111:I,113:41,114:R,115:E,116:_,121:D,122:O,123:N,124:P},{10:cr,60:ar,84:_r,92:288,105:Ct,107:241,108:242,109:Se,110:at,111:Nt,112:wr},{10:cr,60:ar,84:_r,92:289,105:Ct,107:241,108:242,109:Se,110:at,111:Nt,112:wr},t(Te,[2,62]),t(F,[2,33]),t(vt,[2,124],{106:Tn}),t(vt,[2,125],{106:Tn})],defaultActions:{},parseError:o(function(it,kt){if(kt.recoverable)this.trace(it);else{var jt=new Error(it);throw jt.hash=kt,jt}},"parseError"),parse:o(function(it){var kt=this,jt=[0],ht=[],Dr=[null],me=[],Yl=this.table,be="",jr=0,U4=0,XC=0,jC=2,Hz=1,H3e=me.slice.call(arguments,1),qi=Object.create(this.lexer),ad={yy:{}};for(var KC in this.yy)Object.prototype.hasOwnProperty.call(this.yy,KC)&&(ad.yy[KC]=this.yy[KC]);qi.setInput(it,ad.yy),ad.yy.lexer=qi,ad.yy.parser=this,typeof qi.yylloc>"u"&&(qi.yylloc={});var QC=qi.yylloc;me.push(QC);var q3e=qi.options&&qi.options.ranges;typeof ad.yy.parseError=="function"?this.parseError=ad.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function Gat(Js){jt.length=jt.length-2*Js,Dr.length=Dr.length-Js,me.length=me.length-Js}o(Gat,"popStack");function W3e(){var Js;return Js=ht.pop()||qi.lex()||Hz,typeof Js!="number"&&(Js instanceof Array&&(ht=Js,Js=ht.pop()),Js=kt.symbols_[Js]||Js),Js}o(W3e,"lex");for(var ja,ZC,sd,ko,Vat,JC,g0={},H4,iu,qz,q4;;){if(sd=jt[jt.length-1],this.defaultActions[sd]?ko=this.defaultActions[sd]:((ja===null||typeof ja>"u")&&(ja=W3e()),ko=Yl[sd]&&Yl[sd][ja]),typeof ko>"u"||!ko.length||!ko[0]){var e7="";q4=[];for(H4 in Yl[sd])this.terminals_[H4]&&H4>jC&&q4.push("'"+this.terminals_[H4]+"'");qi.showPosition?e7="Parse error on line "+(jr+1)+`: +`+qi.showPosition()+` +Expecting `+q4.join(", ")+", got '"+(this.terminals_[ja]||ja)+"'":e7="Parse error on line "+(jr+1)+": Unexpected "+(ja==Hz?"end of input":"'"+(this.terminals_[ja]||ja)+"'"),this.parseError(e7,{text:qi.match,token:this.terminals_[ja]||ja,line:qi.yylineno,loc:QC,expected:q4})}if(ko[0]instanceof Array&&ko.length>1)throw new Error("Parse Error: multiple actions possible at state: "+sd+", token: "+ja);switch(ko[0]){case 1:jt.push(ja),Dr.push(qi.yytext),me.push(qi.yylloc),jt.push(ko[1]),ja=null,ZC?(ja=ZC,ZC=null):(U4=qi.yyleng,be=qi.yytext,jr=qi.yylineno,QC=qi.yylloc,XC>0&&XC--);break;case 2:if(iu=this.productions_[ko[1]][1],g0.$=Dr[Dr.length-iu],g0._$={first_line:me[me.length-(iu||1)].first_line,last_line:me[me.length-1].last_line,first_column:me[me.length-(iu||1)].first_column,last_column:me[me.length-1].last_column},q3e&&(g0._$.range=[me[me.length-(iu||1)].range[0],me[me.length-1].range[1]]),JC=this.performAction.apply(g0,[be,U4,jr,ad.yy,ko[1],Dr,me].concat(H3e)),typeof JC<"u")return JC;iu&&(jt=jt.slice(0,-1*iu*2),Dr=Dr.slice(0,-1*iu),me=me.slice(0,-1*iu)),jt.push(this.productions_[ko[1]][0]),Dr.push(g0.$),me.push(g0._$),qz=Yl[jt[jt.length-2]][jt[jt.length-1]],jt.push(qz);break;case 3:return!0}}return!0},"parse")},Zs=(function(){var fr={EOF:1,parseError:o(function(kt,jt){if(this.yy.parser)this.yy.parser.parseError(kt,jt);else throw new Error(kt)},"parseError"),setInput:o(function(it,kt){return this.yy=kt||this.yy||{},this._input=it,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},"setInput"),input:o(function(){var it=this._input[0];this.yytext+=it,this.yyleng++,this.offset++,this.match+=it,this.matched+=it;var kt=it.match(/(?:\r\n?|\n).*/g);return kt?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),it},"input"),unput:o(function(it){var kt=it.length,jt=it.split(/(?:\r\n?|\n)/g);this._input=it+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-kt),this.offset-=kt;var ht=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),jt.length-1&&(this.yylineno-=jt.length-1);var Dr=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:jt?(jt.length===ht.length?this.yylloc.first_column:0)+ht[ht.length-jt.length].length-jt[0].length:this.yylloc.first_column-kt},this.options.ranges&&(this.yylloc.range=[Dr[0],Dr[0]+this.yyleng-kt]),this.yyleng=this.yytext.length,this},"unput"),more:o(function(){return this._more=!0,this},"more"),reject:o(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},"reject"),less:o(function(it){this.unput(this.match.slice(it))},"less"),pastInput:o(function(){var it=this.matched.substr(0,this.matched.length-this.match.length);return(it.length>20?"...":"")+it.substr(-20).replace(/\n/g,"")},"pastInput"),upcomingInput:o(function(){var it=this.match;return it.length<20&&(it+=this._input.substr(0,20-it.length)),(it.substr(0,20)+(it.length>20?"...":"")).replace(/\n/g,"")},"upcomingInput"),showPosition:o(function(){var it=this.pastInput(),kt=new Array(it.length+1).join("-");return it+this.upcomingInput()+` +`+kt+"^"},"showPosition"),test_match:o(function(it,kt){var jt,ht,Dr;if(this.options.backtrack_lexer&&(Dr={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&&(Dr.yylloc.range=this.yylloc.range.slice(0))),ht=it[0].match(/(?:\r\n?|\n).*/g),ht&&(this.yylineno+=ht.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:ht?ht[ht.length-1].length-ht[ht.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+it[0].length},this.yytext+=it[0],this.match+=it[0],this.matches=it,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(it[0].length),this.matched+=it[0],jt=this.performAction.call(this,this.yy,this,kt,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),jt)return jt;if(this._backtrack){for(var me in Dr)this[me]=Dr[me];return!1}return!1},"test_match"),next:o(function(){if(this.done)return this.EOF;this._input||(this.done=!0);var it,kt,jt,ht;this._more||(this.yytext="",this.match="");for(var Dr=this._currentRules(),me=0;mekt[0].length)){if(kt=jt,ht=me,this.options.backtrack_lexer){if(it=this.test_match(jt,Dr[me]),it!==!1)return it;if(this._backtrack){kt=!1;continue}else return!1}else if(!this.options.flex)break}return kt?(it=this.test_match(kt,Dr[ht]),it!==!1?it:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text. +`+this.showPosition(),{text:"",token:null,line:this.yylineno})},"next"),lex:o(function(){var kt=this.next();return kt||this.lex()},"lex"),begin:o(function(kt){this.conditionStack.push(kt)},"begin"),popState:o(function(){var kt=this.conditionStack.length-1;return kt>0?this.conditionStack.pop():this.conditionStack[0]},"popState"),_currentRules:o(function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},"_currentRules"),topState:o(function(kt){return kt=this.conditionStack.length-1-Math.abs(kt||0),kt>=0?this.conditionStack[kt]:"INITIAL"},"topState"),pushState:o(function(kt){this.begin(kt)},"pushState"),stateStackSize:o(function(){return this.conditionStack.length},"stateStackSize"),options:{},performAction:o(function(kt,jt,ht,Dr){var me=Dr;switch(ht){case 0:return this.begin("acc_title"),34;break;case 1:return this.popState(),"acc_title_value";break;case 2:return this.begin("acc_descr"),36;break;case 3:return this.popState(),"acc_descr_value";break;case 4:this.begin("acc_descr_multiline");break;case 5:this.popState();break;case 6:return"acc_descr_multiline_value";case 7:return this.pushState("shapeData"),jt.yytext="",40;break;case 8:return this.pushState("shapeDataStr"),40;break;case 9:return this.popState(),40;break;case 10:let Yl=/\n\s*/g;return jt.yytext=jt.yytext.replace(Yl,"
    "),40;break;case 11:return 40;case 12:this.popState();break;case 13:this.begin("callbackname");break;case 14:this.popState();break;case 15:this.popState(),this.begin("callbackargs");break;case 16:return 95;case 17:this.popState();break;case 18:return 96;case 19:return"MD_STR";case 20:this.popState();break;case 21:this.begin("md_string");break;case 22:return"STR";case 23:this.popState();break;case 24:this.pushState("string");break;case 25:return 84;case 26:return 102;case 27:return 85;case 28:return 104;case 29:return 86;case 30:return 87;case 31:return 97;case 32:this.begin("click");break;case 33:this.popState();break;case 34:return 88;case 35:return kt.lex.firstGraph()&&this.begin("dir"),12;break;case 36:return kt.lex.firstGraph()&&this.begin("dir"),12;break;case 37:return kt.lex.firstGraph()&&this.begin("dir"),12;break;case 38:return 27;case 39:return 32;case 40:return 98;case 41:return 98;case 42:return 98;case 43:return 98;case 44:return this.popState(),13;break;case 45:return this.popState(),14;break;case 46:return this.popState(),14;break;case 47:return this.popState(),14;break;case 48:return this.popState(),14;break;case 49:return this.popState(),14;break;case 50:return this.popState(),14;break;case 51:return this.popState(),14;break;case 52:return this.popState(),14;break;case 53:return this.popState(),14;break;case 54:return this.popState(),14;break;case 55:return 121;case 56:return 122;case 57:return 123;case 58:return 124;case 59:return 78;case 60:return 105;case 61:return 111;case 62:return 46;case 63:return 60;case 64:return 44;case 65:return 8;case 66:return 106;case 67:return 115;case 68:return this.popState(),77;break;case 69:return this.pushState("edgeText"),75;break;case 70:return 119;case 71:return this.popState(),77;break;case 72:return this.pushState("thickEdgeText"),75;break;case 73:return 119;case 74:return this.popState(),77;break;case 75:return this.pushState("dottedEdgeText"),75;break;case 76:return 119;case 77:return 77;case 78:return this.popState(),53;break;case 79:return"TEXT";case 80:return this.pushState("ellipseText"),52;break;case 81:return this.popState(),55;break;case 82:return this.pushState("text"),54;break;case 83:return this.popState(),57;break;case 84:return this.pushState("text"),56;break;case 85:return 58;case 86:return this.pushState("text"),67;break;case 87:return this.popState(),64;break;case 88:return this.pushState("text"),63;break;case 89:return this.popState(),49;break;case 90:return this.pushState("text"),48;break;case 91:return this.popState(),69;break;case 92:return this.popState(),71;break;case 93:return 117;case 94:return this.pushState("trapText"),68;break;case 95:return this.pushState("trapText"),70;break;case 96:return 118;case 97:return 67;case 98:return 90;case 99:return"SEP";case 100:return 89;case 101:return 115;case 102:return 111;case 103:return 44;case 104:return 109;case 105:return 114;case 106:return 116;case 107:return this.popState(),62;break;case 108:return this.pushState("text"),62;break;case 109:return this.popState(),51;break;case 110:return this.pushState("text"),50;break;case 111:return this.popState(),31;break;case 112:return this.pushState("text"),29;break;case 113:return this.popState(),66;break;case 114:return this.pushState("text"),65;break;case 115:return"TEXT";case 116:return"QUOTE";case 117:return 9;case 118:return 10;case 119:return 11}},"anonymous"),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]*)/,/^(?:[^\s\"]+@(?=[^\{\"]))/,/^(?:[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:{shapeDataEndBracket:{rules:[21,24,77,80,82,84,88,90,94,95,108,110,112,114],inclusive:!1},shapeDataStr:{rules:[9,10,21,24,77,80,82,84,88,90,94,95,108,110,112,114],inclusive:!1},shapeData:{rules:[8,11,12,21,24,77,80,82,84,88,90,94,95,108,110,112,114],inclusive:!1},callbackargs:{rules:[17,18,21,24,77,80,82,84,88,90,94,95,108,110,112,114],inclusive:!1},callbackname:{rules:[14,15,16,21,24,77,80,82,84,88,90,94,95,108,110,112,114],inclusive:!1},href:{rules:[21,24,77,80,82,84,88,90,94,95,108,110,112,114],inclusive:!1},click:{rules:[21,24,33,34,77,80,82,84,88,90,94,95,108,110,112,114],inclusive:!1},dottedEdgeText:{rules:[21,24,74,76,77,80,82,84,88,90,94,95,108,110,112,114],inclusive:!1},thickEdgeText:{rules:[21,24,71,73,77,80,82,84,88,90,94,95,108,110,112,114],inclusive:!1},edgeText:{rules:[21,24,68,70,77,80,82,84,88,90,94,95,108,110,112,114],inclusive:!1},trapText:{rules:[21,24,77,80,82,84,88,90,91,92,93,94,95,108,110,112,114],inclusive:!1},ellipseText:{rules:[21,24,77,78,79,80,82,84,88,90,94,95,108,110,112,114],inclusive:!1},text:{rules:[21,24,77,80,81,82,83,84,87,88,89,90,94,95,107,108,109,110,111,112,113,114,115],inclusive:!1},vertex:{rules:[21,24,77,80,82,84,88,90,94,95,108,110,112,114],inclusive:!1},dir:{rules:[21,24,44,45,46,47,48,49,50,51,52,53,54,77,80,82,84,88,90,94,95,108,110,112,114],inclusive:!1},acc_descr_multiline:{rules:[5,6,21,24,77,80,82,84,88,90,94,95,108,110,112,114],inclusive:!1},acc_descr:{rules:[3,21,24,77,80,82,84,88,90,94,95,108,110,112,114],inclusive:!1},acc_title:{rules:[1,21,24,77,80,82,84,88,90,94,95,108,110,112,114],inclusive:!1},md_string:{rules:[19,20,21,24,77,80,82,84,88,90,94,95,108,110,112,114],inclusive:!1},string:{rules:[21,22,23,24,77,80,82,84,88,90,94,95,108,110,112,114],inclusive:!1},INITIAL:{rules:[0,2,4,7,13,21,24,25,26,27,28,29,30,31,32,35,36,37,38,39,40,41,42,43,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,71,72,74,75,77,80,82,84,85,86,88,90,94,95,96,97,98,99,100,101,102,103,104,105,106,108,110,112,114,116,117,118,119],inclusive:!0}}};return fr})();Hi.lexer=Zs;function Da(){this.yy={}}return o(Da,"Parser"),Da.prototype=Hi,Hi.Parser=Da,new Da})();GI.parser=GI;VI=GI});var mfe,gfe,yfe=M(()=>{"use strict";pfe();mfe=Object.assign({},VI);mfe.parse=t=>{let e=t.replace(/}\s*\n/g,`} +`);return VI.parse(e)};gfe=mfe});var zc,yg=M(()=>{"use strict";zc=o(()=>` + /* Font Awesome icon styling - consolidated */ + .label-icon { + display: inline-block; + height: 1em; + overflow: visible; + vertical-align: -0.125em; + } + + .node .label-icon path { + fill: currentColor; + stroke: revert; + stroke-width: revert; + } +`,"getIconStyles")});var iWe,aWe,vfe,xfe=M(()=>{"use strict";eo();yg();iWe=o((t,e)=>{let r=ld,n=r(t,"r"),i=r(t,"g"),a=r(t,"b");return Ka(n,i,a,e)},"fade"),aWe=o(t=>`.label { + font-family: ${t.fontFamily}; + color: ${t.nodeTextColor||t.textColor}; + } + .cluster-label text { + fill: ${t.titleColor}; + } + .cluster-label span { + color: ${t.titleColor}; + } + .cluster-label span p { + background-color: transparent; + } + + .label text,span { + fill: ${t.nodeTextColor||t.textColor}; + color: ${t.nodeTextColor||t.textColor}; + } + + .node rect, + .node circle, + .node ellipse, + .node polygon, + .node path { + fill: ${t.mainBkg}; + stroke: ${t.nodeBorder}; + stroke-width: 1px; + } + .rough-node .label text , .node .label text, .image-shape .label, .icon-shape .label { + 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; + } + + .rough-node .label,.node .label, .image-shape .label, .icon-shape .label { + text-align: center; + } + .node.clickable { + cursor: pointer; + } + + + .root .anchor path { + fill: ${t.lineColor} !important; + stroke-width: 0; + stroke: ${t.lineColor}; + } + + .arrowheadPath { + fill: ${t.arrowheadColor}; + } + + .edgePath .path { + stroke: ${t.lineColor}; + stroke-width: 2.0px; + } + + .flowchart-link { + stroke: ${t.lineColor}; + fill: none; + } + + .edgeLabel { + background-color: ${t.edgeLabelBackground}; + p { + background-color: ${t.edgeLabelBackground}; + } + rect { + opacity: 0.5; + background-color: ${t.edgeLabelBackground}; + fill: ${t.edgeLabelBackground}; + } + text-align: center; + } + + /* For html labels only */ + .labelBkg { + background-color: ${iWe(t.edgeLabelBackground,.5)}; + // background-color: + } + + .cluster rect { + fill: ${t.clusterBkg}; + stroke: ${t.clusterBorder}; + stroke-width: 1px; + } + + .cluster text { + fill: ${t.titleColor}; + } + + .cluster span { + color: ${t.titleColor}; + } + /* .cluster div { + color: ${t.titleColor}; + } */ + + div.mermaidTooltip { + position: absolute; + text-align: center; + max-width: 200px; + padding: 2px; + font-family: ${t.fontFamily}; + font-size: 12px; + background: ${t.tertiaryColor}; + border: 1px solid ${t.border2}; + border-radius: 2px; + pointer-events: none; + z-index: 100; + } + + .flowchartTitleText { + text-anchor: middle; + font-size: 18px; + fill: ${t.textColor}; + } + + rect.text { + fill: none; + stroke-width: 0; + } + + .icon-shape, .image-shape { + background-color: ${t.edgeLabelBackground}; + p { + background-color: ${t.edgeLabelBackground}; + padding: 2px; + } + rect { + opacity: 0.5; + background-color: ${t.edgeLabelBackground}; + fill: ${t.edgeLabelBackground}; + } + text-align: center; + } + ${zc()} +`,"getStyles"),vfe=aWe});var AE={};dr(AE,{diagram:()=>sWe});var sWe,_E=M(()=>{"use strict";Xt();zte();dfe();yfe();xfe();sWe={parser:gfe,get db(){return new cw},renderer:ffe,styles:vfe,init:o(t=>{t.flowchart||(t.flowchart={}),t.layout&&iv({layout:t.layout}),t.flowchart.arrowMarkerAbsolute=t.arrowMarkerAbsolute,iv({flowchart:{arrowMarkerAbsolute:t.arrowMarkerAbsolute}})},"init")}});var UI,Efe,Sfe=M(()=>{"use strict";UI=(function(){var t=o(function(K,ae,Z,de){for(Z=Z||{},de=K.length;de--;Z[K[de]]=ae);return Z},"o"),e=[6,8,10,22,24,26,28,33,34,35,36,37,40,43,44,50],r=[1,10],n=[1,11],i=[1,12],a=[1,13],s=[1,20],l=[1,21],u=[1,22],h=[1,23],f=[1,24],d=[1,19],p=[1,25],m=[1,26],g=[1,18],y=[1,33],v=[1,34],x=[1,35],b=[1,36],T=[1,37],S=[6,8,10,13,15,17,20,21,22,24,26,28,33,34,35,36,37,40,43,44,50,63,64,65,66,67],w=[1,42],k=[1,43],C=[1,52],A=[40,50,68,69],L=[1,63],I=[1,61],R=[1,58],E=[1,62],_=[1,64],D=[6,8,10,13,17,22,24,26,28,33,34,35,36,37,40,41,42,43,44,48,49,50,63,64,65,66,67],O=[63,64,65,66,67],N=[1,81],P=[1,80],B=[1,78],F=[1,79],V=[6,10,42,47],$=[6,10,13,41,42,47,48,49],U=[1,89],j=[1,88],ee=[1,87],q=[19,56],oe=[1,98],Q=[1,97],ue=[19,56,58,60],te={trace:o(function(){},"trace"),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,COLON:13,role:14,STYLE_SEPARATOR:15,idList:16,BLOCK_START:17,attributes:18,BLOCK_STOP:19,SQS:20,SQE:21,title:22,title_value:23,acc_title:24,acc_title_value:25,acc_descr:26,acc_descr_value:27,acc_descr_multiline_value:28,direction:29,classDefStatement:30,classStatement:31,styleStatement:32,direction_tb:33,direction_bt:34,direction_rl:35,direction_lr:36,CLASSDEF:37,stylesOpt:38,separator:39,UNICODE_TEXT:40,STYLE_TEXT:41,COMMA:42,CLASS:43,STYLE:44,style:45,styleComponent:46,SEMI:47,NUM:48,BRKT:49,ENTITY_NAME:50,attribute:51,attributeType:52,attributeName:53,attributeKeyTypeList:54,attributeComment:55,ATTRIBUTE_WORD:56,attributeKeyType:57,",":58,ATTRIBUTE_KEY:59,COMMENT:60,cardinality:61,relType:62,ZERO_OR_ONE:63,ZERO_OR_MORE:64,ONE_OR_MORE:65,ONLY_ONE:66,MD_PARENT:67,NON_IDENTIFYING:68,IDENTIFYING:69,WORD:70,$accept:0,$end:1},terminals_:{2:"error",4:"ER_DIAGRAM",6:"EOF",8:"SPACE",10:"NEWLINE",13:"COLON",15:"STYLE_SEPARATOR",17:"BLOCK_START",19:"BLOCK_STOP",20:"SQS",21:"SQE",22:"title",23:"title_value",24:"acc_title",25:"acc_title_value",26:"acc_descr",27:"acc_descr_value",28:"acc_descr_multiline_value",33:"direction_tb",34:"direction_bt",35:"direction_rl",36:"direction_lr",37:"CLASSDEF",40:"UNICODE_TEXT",41:"STYLE_TEXT",42:"COMMA",43:"CLASS",44:"STYLE",47:"SEMI",48:"NUM",49:"BRKT",50:"ENTITY_NAME",56:"ATTRIBUTE_WORD",58:",",59:"ATTRIBUTE_KEY",60:"COMMENT",63:"ZERO_OR_ONE",64:"ZERO_OR_MORE",65:"ONE_OR_MORE",66:"ONLY_ONE",67:"MD_PARENT",68:"NON_IDENTIFYING",69:"IDENTIFYING",70:"WORD"},productions_:[0,[3,3],[5,0],[5,2],[7,2],[7,1],[7,1],[7,1],[9,5],[9,9],[9,7],[9,7],[9,4],[9,6],[9,3],[9,5],[9,1],[9,3],[9,7],[9,9],[9,6],[9,8],[9,4],[9,6],[9,2],[9,2],[9,2],[9,1],[9,1],[9,1],[9,1],[9,1],[29,1],[29,1],[29,1],[29,1],[30,4],[16,1],[16,1],[16,3],[16,3],[31,3],[32,4],[38,1],[38,3],[45,1],[45,2],[39,1],[39,1],[39,1],[46,1],[46,1],[46,1],[46,1],[11,1],[11,1],[18,1],[18,2],[51,2],[51,3],[51,3],[51,4],[52,1],[53,1],[54,1],[54,3],[57,1],[55,1],[12,3],[61,1],[61,1],[61,1],[61,1],[61,1],[62,1],[62,1],[14,1],[14,1],[14,1]],performAction:o(function(ae,Z,de,ne,Te,W,Ve){var pe=W.length-1;switch(Te){case 1:break;case 2:this.$=[];break;case 3:W[pe-1].push(W[pe]),this.$=W[pe-1];break;case 4:case 5:this.$=W[pe];break;case 6:case 7:this.$=[];break;case 8:ne.addEntity(W[pe-4]),ne.addEntity(W[pe-2]),ne.addRelationship(W[pe-4],W[pe],W[pe-2],W[pe-3]);break;case 9:ne.addEntity(W[pe-8]),ne.addEntity(W[pe-4]),ne.addRelationship(W[pe-8],W[pe],W[pe-4],W[pe-5]),ne.setClass([W[pe-8]],W[pe-6]),ne.setClass([W[pe-4]],W[pe-2]);break;case 10:ne.addEntity(W[pe-6]),ne.addEntity(W[pe-2]),ne.addRelationship(W[pe-6],W[pe],W[pe-2],W[pe-3]),ne.setClass([W[pe-6]],W[pe-4]);break;case 11:ne.addEntity(W[pe-6]),ne.addEntity(W[pe-4]),ne.addRelationship(W[pe-6],W[pe],W[pe-4],W[pe-5]),ne.setClass([W[pe-4]],W[pe-2]);break;case 12:ne.addEntity(W[pe-3]),ne.addAttributes(W[pe-3],W[pe-1]);break;case 13:ne.addEntity(W[pe-5]),ne.addAttributes(W[pe-5],W[pe-1]),ne.setClass([W[pe-5]],W[pe-3]);break;case 14:ne.addEntity(W[pe-2]);break;case 15:ne.addEntity(W[pe-4]),ne.setClass([W[pe-4]],W[pe-2]);break;case 16:ne.addEntity(W[pe]);break;case 17:ne.addEntity(W[pe-2]),ne.setClass([W[pe-2]],W[pe]);break;case 18:ne.addEntity(W[pe-6],W[pe-4]),ne.addAttributes(W[pe-6],W[pe-1]);break;case 19:ne.addEntity(W[pe-8],W[pe-6]),ne.addAttributes(W[pe-8],W[pe-1]),ne.setClass([W[pe-8]],W[pe-3]);break;case 20:ne.addEntity(W[pe-5],W[pe-3]);break;case 21:ne.addEntity(W[pe-7],W[pe-5]),ne.setClass([W[pe-7]],W[pe-2]);break;case 22:ne.addEntity(W[pe-3],W[pe-1]);break;case 23:ne.addEntity(W[pe-5],W[pe-3]),ne.setClass([W[pe-5]],W[pe]);break;case 24:case 25:this.$=W[pe].trim(),ne.setAccTitle(this.$);break;case 26:case 27:this.$=W[pe].trim(),ne.setAccDescription(this.$);break;case 32:ne.setDirection("TB");break;case 33:ne.setDirection("BT");break;case 34:ne.setDirection("RL");break;case 35:ne.setDirection("LR");break;case 36:this.$=W[pe-3],ne.addClass(W[pe-2],W[pe-1]);break;case 37:case 38:case 56:case 64:this.$=[W[pe]];break;case 39:case 40:this.$=W[pe-2].concat([W[pe]]);break;case 41:this.$=W[pe-2],ne.setClass(W[pe-1],W[pe]);break;case 42:this.$=W[pe-3],ne.addCssStyles(W[pe-2],W[pe-1]);break;case 43:this.$=[W[pe]];break;case 44:W[pe-2].push(W[pe]),this.$=W[pe-2];break;case 46:this.$=W[pe-1]+W[pe];break;case 54:case 76:case 77:this.$=W[pe].replace(/"/g,"");break;case 55:case 78:this.$=W[pe];break;case 57:W[pe].push(W[pe-1]),this.$=W[pe];break;case 58:this.$={type:W[pe-1],name:W[pe]};break;case 59:this.$={type:W[pe-2],name:W[pe-1],keys:W[pe]};break;case 60:this.$={type:W[pe-2],name:W[pe-1],comment:W[pe]};break;case 61:this.$={type:W[pe-3],name:W[pe-2],keys:W[pe-1],comment:W[pe]};break;case 62:case 63:case 66:this.$=W[pe];break;case 65:W[pe-2].push(W[pe]),this.$=W[pe-2];break;case 67:this.$=W[pe].replace(/"/g,"");break;case 68:this.$={cardA:W[pe],relType:W[pe-1],cardB:W[pe-2]};break;case 69:this.$=ne.Cardinality.ZERO_OR_ONE;break;case 70:this.$=ne.Cardinality.ZERO_OR_MORE;break;case 71:this.$=ne.Cardinality.ONE_OR_MORE;break;case 72:this.$=ne.Cardinality.ONLY_ONE;break;case 73:this.$=ne.Cardinality.MD_PARENT;break;case 74:this.$=ne.Identification.NON_IDENTIFYING;break;case 75:this.$=ne.Identification.IDENTIFYING;break}},"anonymous"),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,22:r,24:n,26:i,28:a,29:14,30:15,31:16,32:17,33:s,34:l,35:u,36:h,37:f,40:d,43:p,44:m,50:g},t(e,[2,7],{1:[2,1]}),t(e,[2,3]),{9:27,11:9,22:r,24:n,26:i,28:a,29:14,30:15,31:16,32:17,33:s,34:l,35:u,36:h,37:f,40:d,43:p,44:m,50:g},t(e,[2,5]),t(e,[2,6]),t(e,[2,16],{12:28,61:32,15:[1,29],17:[1,30],20:[1,31],63:y,64:v,65:x,66:b,67:T}),{23:[1,38]},{25:[1,39]},{27:[1,40]},t(e,[2,27]),t(e,[2,28]),t(e,[2,29]),t(e,[2,30]),t(e,[2,31]),t(S,[2,54]),t(S,[2,55]),t(e,[2,32]),t(e,[2,33]),t(e,[2,34]),t(e,[2,35]),{16:41,40:w,41:k},{16:44,40:w,41:k},{16:45,40:w,41:k},t(e,[2,4]),{11:46,40:d,50:g},{16:47,40:w,41:k},{18:48,19:[1,49],51:50,52:51,56:C},{11:53,40:d,50:g},{62:54,68:[1,55],69:[1,56]},t(A,[2,69]),t(A,[2,70]),t(A,[2,71]),t(A,[2,72]),t(A,[2,73]),t(e,[2,24]),t(e,[2,25]),t(e,[2,26]),{13:L,38:57,41:I,42:R,45:59,46:60,48:E,49:_},t(D,[2,37]),t(D,[2,38]),{16:65,40:w,41:k,42:R},{13:L,38:66,41:I,42:R,45:59,46:60,48:E,49:_},{13:[1,67],15:[1,68]},t(e,[2,17],{61:32,12:69,17:[1,70],42:R,63:y,64:v,65:x,66:b,67:T}),{19:[1,71]},t(e,[2,14]),{18:72,19:[2,56],51:50,52:51,56:C},{53:73,56:[1,74]},{56:[2,62]},{21:[1,75]},{61:76,63:y,64:v,65:x,66:b,67:T},t(O,[2,74]),t(O,[2,75]),{6:N,10:P,39:77,42:B,47:F},{40:[1,82],41:[1,83]},t(V,[2,43],{46:84,13:L,41:I,48:E,49:_}),t($,[2,45]),t($,[2,50]),t($,[2,51]),t($,[2,52]),t($,[2,53]),t(e,[2,41],{42:R}),{6:N,10:P,39:85,42:B,47:F},{14:86,40:U,50:j,70:ee},{16:90,40:w,41:k},{11:91,40:d,50:g},{18:92,19:[1,93],51:50,52:51,56:C},t(e,[2,12]),{19:[2,57]},t(q,[2,58],{54:94,55:95,57:96,59:oe,60:Q}),t([19,56,59,60],[2,63]),t(e,[2,22],{15:[1,100],17:[1,99]}),t([40,50],[2,68]),t(e,[2,36]),{13:L,41:I,45:101,46:60,48:E,49:_},t(e,[2,47]),t(e,[2,48]),t(e,[2,49]),t(D,[2,39]),t(D,[2,40]),t($,[2,46]),t(e,[2,42]),t(e,[2,8]),t(e,[2,76]),t(e,[2,77]),t(e,[2,78]),{13:[1,102],42:R},{13:[1,104],15:[1,103]},{19:[1,105]},t(e,[2,15]),t(q,[2,59],{55:106,58:[1,107],60:Q}),t(q,[2,60]),t(ue,[2,64]),t(q,[2,67]),t(ue,[2,66]),{18:108,19:[1,109],51:50,52:51,56:C},{16:110,40:w,41:k},t(V,[2,44],{46:84,13:L,41:I,48:E,49:_}),{14:111,40:U,50:j,70:ee},{16:112,40:w,41:k},{14:113,40:U,50:j,70:ee},t(e,[2,13]),t(q,[2,61]),{57:114,59:oe},{19:[1,115]},t(e,[2,20]),t(e,[2,23],{17:[1,116],42:R}),t(e,[2,11]),{13:[1,117],42:R},t(e,[2,10]),t(ue,[2,65]),t(e,[2,18]),{18:118,19:[1,119],51:50,52:51,56:C},{14:120,40:U,50:j,70:ee},{19:[1,121]},t(e,[2,21]),t(e,[2,9]),t(e,[2,19])],defaultActions:{52:[2,62],72:[2,57]},parseError:o(function(ae,Z){if(Z.recoverable)this.trace(ae);else{var de=new Error(ae);throw de.hash=Z,de}},"parseError"),parse:o(function(ae){var Z=this,de=[0],ne=[],Te=[null],W=[],Ve=this.table,pe="",Be=0,Ye=0,He=0,Le=2,Ie=1,Ne=W.slice.call(arguments,1),Ce=Object.create(this.lexer),Fe={yy:{}};for(var fe in this.yy)Object.prototype.hasOwnProperty.call(this.yy,fe)&&(Fe.yy[fe]=this.yy[fe]);Ce.setInput(ae,Fe.yy),Fe.yy.lexer=Ce,Fe.yy.parser=this,typeof Ce.yylloc>"u"&&(Ce.yylloc={});var xe=Ce.yylloc;W.push(xe);var Y=Ce.options&&Ce.options.ranges;typeof Fe.yy.parseError=="function"?this.parseError=Fe.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function he(et){de.length=de.length-2*et,Te.length=Te.length-et,W.length=W.length-et}o(he,"popStack");function z(){var et;return et=ne.pop()||Ce.lex()||Ie,typeof et!="number"&&(et instanceof Array&&(ne=et,et=ne.pop()),et=Z.symbols_[et]||et),et}o(z,"lex");for(var se,le,ke,ve,ye,Re,_e={},ze,Ke,xt,We;;){if(ke=de[de.length-1],this.defaultActions[ke]?ve=this.defaultActions[ke]:((se===null||typeof se>"u")&&(se=z()),ve=Ve[ke]&&Ve[ke][se]),typeof ve>"u"||!ve.length||!ve[0]){var Oe="";We=[];for(ze in Ve[ke])this.terminals_[ze]&&ze>Le&&We.push("'"+this.terminals_[ze]+"'");Ce.showPosition?Oe="Parse error on line "+(Be+1)+`: +`+Ce.showPosition()+` +Expecting `+We.join(", ")+", got '"+(this.terminals_[se]||se)+"'":Oe="Parse error on line "+(Be+1)+": Unexpected "+(se==Ie?"end of input":"'"+(this.terminals_[se]||se)+"'"),this.parseError(Oe,{text:Ce.match,token:this.terminals_[se]||se,line:Ce.yylineno,loc:xe,expected:We})}if(ve[0]instanceof Array&&ve.length>1)throw new Error("Parse Error: multiple actions possible at state: "+ke+", token: "+se);switch(ve[0]){case 1:de.push(se),Te.push(Ce.yytext),W.push(Ce.yylloc),de.push(ve[1]),se=null,le?(se=le,le=null):(Ye=Ce.yyleng,pe=Ce.yytext,Be=Ce.yylineno,xe=Ce.yylloc,He>0&&He--);break;case 2:if(Ke=this.productions_[ve[1]][1],_e.$=Te[Te.length-Ke],_e._$={first_line:W[W.length-(Ke||1)].first_line,last_line:W[W.length-1].last_line,first_column:W[W.length-(Ke||1)].first_column,last_column:W[W.length-1].last_column},Y&&(_e._$.range=[W[W.length-(Ke||1)].range[0],W[W.length-1].range[1]]),Re=this.performAction.apply(_e,[pe,Ye,Be,Fe.yy,ve[1],Te,W].concat(Ne)),typeof Re<"u")return Re;Ke&&(de=de.slice(0,-1*Ke*2),Te=Te.slice(0,-1*Ke),W=W.slice(0,-1*Ke)),de.push(this.productions_[ve[1]][0]),Te.push(_e.$),W.push(_e._$),xt=Ve[de[de.length-2]][de[de.length-1]],de.push(xt);break;case 3:return!0}}return!0},"parse")},re=(function(){var K={EOF:1,parseError:o(function(Z,de){if(this.yy.parser)this.yy.parser.parseError(Z,de);else throw new Error(Z)},"parseError"),setInput:o(function(ae,Z){return this.yy=Z||this.yy||{},this._input=ae,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},"setInput"),input:o(function(){var ae=this._input[0];this.yytext+=ae,this.yyleng++,this.offset++,this.match+=ae,this.matched+=ae;var Z=ae.match(/(?:\r\n?|\n).*/g);return Z?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),ae},"input"),unput:o(function(ae){var Z=ae.length,de=ae.split(/(?:\r\n?|\n)/g);this._input=ae+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-Z),this.offset-=Z;var ne=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),de.length-1&&(this.yylineno-=de.length-1);var Te=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:de?(de.length===ne.length?this.yylloc.first_column:0)+ne[ne.length-de.length].length-de[0].length:this.yylloc.first_column-Z},this.options.ranges&&(this.yylloc.range=[Te[0],Te[0]+this.yyleng-Z]),this.yyleng=this.yytext.length,this},"unput"),more:o(function(){return this._more=!0,this},"more"),reject:o(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},"reject"),less:o(function(ae){this.unput(this.match.slice(ae))},"less"),pastInput:o(function(){var ae=this.matched.substr(0,this.matched.length-this.match.length);return(ae.length>20?"...":"")+ae.substr(-20).replace(/\n/g,"")},"pastInput"),upcomingInput:o(function(){var ae=this.match;return ae.length<20&&(ae+=this._input.substr(0,20-ae.length)),(ae.substr(0,20)+(ae.length>20?"...":"")).replace(/\n/g,"")},"upcomingInput"),showPosition:o(function(){var ae=this.pastInput(),Z=new Array(ae.length+1).join("-");return ae+this.upcomingInput()+` +`+Z+"^"},"showPosition"),test_match:o(function(ae,Z){var de,ne,Te;if(this.options.backtrack_lexer&&(Te={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&&(Te.yylloc.range=this.yylloc.range.slice(0))),ne=ae[0].match(/(?:\r\n?|\n).*/g),ne&&(this.yylineno+=ne.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:ne?ne[ne.length-1].length-ne[ne.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+ae[0].length},this.yytext+=ae[0],this.match+=ae[0],this.matches=ae,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(ae[0].length),this.matched+=ae[0],de=this.performAction.call(this,this.yy,this,Z,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),de)return de;if(this._backtrack){for(var W in Te)this[W]=Te[W];return!1}return!1},"test_match"),next:o(function(){if(this.done)return this.EOF;this._input||(this.done=!0);var ae,Z,de,ne;this._more||(this.yytext="",this.match="");for(var Te=this._currentRules(),W=0;WZ[0].length)){if(Z=de,ne=W,this.options.backtrack_lexer){if(ae=this.test_match(de,Te[W]),ae!==!1)return ae;if(this._backtrack){Z=!1;continue}else return!1}else if(!this.options.flex)break}return Z?(ae=this.test_match(Z,Te[ne]),ae!==!1?ae:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text. +`+this.showPosition(),{text:"",token:null,line:this.yylineno})},"next"),lex:o(function(){var Z=this.next();return Z||this.lex()},"lex"),begin:o(function(Z){this.conditionStack.push(Z)},"begin"),popState:o(function(){var Z=this.conditionStack.length-1;return Z>0?this.conditionStack.pop():this.conditionStack[0]},"popState"),_currentRules:o(function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},"_currentRules"),topState:o(function(Z){return Z=this.conditionStack.length-1-Math.abs(Z||0),Z>=0?this.conditionStack[Z]:"INITIAL"},"topState"),pushState:o(function(Z){this.begin(Z)},"pushState"),stateStackSize:o(function(){return this.conditionStack.length},"stateStackSize"),options:{"case-insensitive":!0},performAction:o(function(Z,de,ne,Te){var W=Te;switch(ne){case 0:return this.begin("acc_title"),24;break;case 1:return this.popState(),"acc_title_value";break;case 2:return this.begin("acc_descr"),26;break;case 3:return this.popState(),"acc_descr_value";break;case 4:this.begin("acc_descr_multiline");break;case 5:this.popState();break;case 6:return"acc_descr_multiline_value";case 7:return 33;case 8:return 34;case 9:return 35;case 10:return 36;case 11:return 10;case 12:break;case 13:return 8;case 14:return 50;case 15:return 70;case 16:return 4;case 17:return this.begin("block"),17;break;case 18:return 49;case 19:return 49;case 20:return 42;case 21:return 15;case 22:return 13;case 23:break;case 24:return 59;case 25:return 56;case 26:return 56;case 27:return 60;case 28:break;case 29:return this.popState(),19;break;case 30:return de.yytext[0];case 31:return 20;case 32:return 21;case 33:return this.begin("style"),44;break;case 34:return this.popState(),10;break;case 35:break;case 36:return 13;case 37:return 42;case 38:return 49;case 39:return this.begin("style"),37;break;case 40:return 43;case 41:return 63;case 42:return 65;case 43:return 65;case 44:return 65;case 45:return 63;case 46:return 63;case 47:return 64;case 48:return 64;case 49:return 64;case 50:return 64;case 51:return 64;case 52:return 65;case 53:return 64;case 54:return 65;case 55:return 66;case 56:return 66;case 57:return 66;case 58:return 66;case 59:return 63;case 60:return 64;case 61:return 65;case 62:return 67;case 63:return 68;case 64:return 69;case 65:return 69;case 66:return 68;case 67:return 68;case 68:return 68;case 69:return 41;case 70:return 47;case 71:return 40;case 72:return 48;case 73:return de.yytext[0];case 74:return 6}},"anonymous"),rules:[/^(?:accTitle\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*\{\s*)/i,/^(?:[\}])/i,/^(?:[^\}]*)/i,/^(?:.*direction\s+TB[^\n]*)/i,/^(?:.*direction\s+BT[^\n]*)/i,/^(?:.*direction\s+RL[^\n]*)/i,/^(?:.*direction\s+LR[^\n]*)/i,/^(?:[\n]+)/i,/^(?:\s+)/i,/^(?:[\s]+)/i,/^(?:"[^"%\r\n\v\b\\]+")/i,/^(?:"[^"]*")/i,/^(?:erDiagram\b)/i,/^(?:\{)/i,/^(?:#)/i,/^(?:#)/i,/^(?:,)/i,/^(?::::)/i,/^(?::)/i,/^(?:\s+)/i,/^(?:\b((?:PK)|(?:FK)|(?:UK))\b)/i,/^(?:([^\s]*)[~].*[~]([^\s]*))/i,/^(?:([\*A-Za-z_\u00C0-\uFFFF][A-Za-z0-9\-\_\[\]\(\)\u00C0-\uFFFF\*]*))/i,/^(?:"[^"]*")/i,/^(?:[\n]+)/i,/^(?:\})/i,/^(?:.)/i,/^(?:\[)/i,/^(?:\])/i,/^(?:style\b)/i,/^(?:[\n]+)/i,/^(?:\s+)/i,/^(?::)/i,/^(?:,)/i,/^(?:#)/i,/^(?:classDef\b)/i,/^(?:class\b)/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,/^(?:([^\x00-\x7F]|\w|-|\*)+)/i,/^(?:;)/i,/^(?:([^\x00-\x7F]|\w|-|\*)+)/i,/^(?:[0-9])/i,/^(?:.)/i,/^(?:$)/i],conditions:{style:{rules:[34,35,36,37,38,69,70],inclusive:!1},acc_descr_multiline:{rules:[5,6],inclusive:!1},acc_descr:{rules:[3],inclusive:!1},acc_title:{rules:[1],inclusive:!1},block:{rules:[23,24,25,26,27,28,29,30],inclusive:!1},INITIAL:{rules:[0,2,4,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,31,32,33,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,65,66,67,68,71,72,73,74],inclusive:!0}}};return K})();te.lexer=re;function J(){this.yy={}}return o(J,"Parser"),J.prototype=te,te.Parser=J,new J})();UI.parser=UI;Efe=UI});var DE,Cfe=M(()=>{"use strict";pt();Xt();ci();tr();DE=class{constructor(){this.entities=new Map;this.relationships=[];this.classes=new Map;this.direction="TB";this.Cardinality={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"};this.Identification={NON_IDENTIFYING:"NON_IDENTIFYING",IDENTIFYING:"IDENTIFYING"};this.setAccTitle=Rr;this.getAccTitle=Mr;this.setAccDescription=Ir;this.getAccDescription=Or;this.setDiagramTitle=$r;this.getDiagramTitle=Pr;this.getConfig=o(()=>ge().er,"getConfig");this.clear(),this.addEntity=this.addEntity.bind(this),this.addAttributes=this.addAttributes.bind(this),this.addRelationship=this.addRelationship.bind(this),this.setDirection=this.setDirection.bind(this),this.addCssStyles=this.addCssStyles.bind(this),this.addClass=this.addClass.bind(this),this.setClass=this.setClass.bind(this),this.setAccTitle=this.setAccTitle.bind(this),this.setAccDescription=this.setAccDescription.bind(this)}static{o(this,"ErDB")}addEntity(e,r=""){return this.entities.has(e)?!this.entities.get(e)?.alias&&r&&(this.entities.get(e).alias=r,X.info(`Add alias '${r}' to entity '${e}'`)):(this.entities.set(e,{id:`entity-${e}-${this.entities.size}`,label:e,attributes:[],alias:r,shape:"erBox",look:ge().look??"default",cssClasses:"default",cssStyles:[]}),X.info("Added new entity :",e)),this.entities.get(e)}getEntity(e){return this.entities.get(e)}getEntities(){return this.entities}getClasses(){return this.classes}addAttributes(e,r){let n=this.addEntity(e),i;for(i=r.length-1;i>=0;i--)r[i].keys||(r[i].keys=[]),r[i].comment||(r[i].comment=""),n.attributes.push(r[i]),X.debug("Added attribute ",r[i].name)}addRelationship(e,r,n,i){let a=this.entities.get(e),s=this.entities.get(n);if(!a||!s)return;let l={entityA:a.id,roleA:r,entityB:s.id,relSpec:i};this.relationships.push(l),X.debug("Added new relationship :",l)}getRelationships(){return this.relationships}getDirection(){return this.direction}setDirection(e){this.direction=e}getCompiledStyles(e){let r=[];for(let n of e){let i=this.classes.get(n);i?.styles&&(r=[...r,...i.styles??[]].map(a=>a.trim())),i?.textStyles&&(r=[...r,...i.textStyles??[]].map(a=>a.trim()))}return r}addCssStyles(e,r){for(let n of e){let i=this.entities.get(n);if(!r||!i)return;for(let a of r)i.cssStyles.push(a)}}addClass(e,r){e.forEach(n=>{let i=this.classes.get(n);i===void 0&&(i={id:n,styles:[],textStyles:[]},this.classes.set(n,i)),r&&r.forEach(function(a){if(/color/.exec(a)){let s=a.replace("fill","bgFill");i.textStyles.push(s)}i.styles.push(a)})})}setClass(e,r){for(let n of e){let i=this.entities.get(n);if(i)for(let a of r)i.cssClasses+=" "+a}}clear(){this.entities=new Map,this.classes=new Map,this.relationships=[],Sr()}getData(){let e=[],r=[],n=ge();for(let a of this.entities.keys()){let s=this.entities.get(a);s&&(s.cssCompiledStyles=this.getCompiledStyles(s.cssClasses.split(" ")),e.push(s))}let i=0;for(let a of this.relationships){let s={id:xc(a.entityA,a.entityB,{prefix:"id",counter:i++}),type:"normal",curve:"basis",start:a.entityA,end:a.entityB,label:a.roleA,labelpos:"c",thickness:"normal",classes:"relationshipLine",arrowTypeStart:a.relSpec.cardB.toLowerCase(),arrowTypeEnd:a.relSpec.cardA.toLowerCase(),pattern:a.relSpec.relType=="IDENTIFYING"?"solid":"dashed",look:n.look};r.push(s)}return{nodes:e,edges:r,other:{},config:n,direction:"TB"}}}});var HI={};dr(HI,{draw:()=>dWe});var dWe,Afe=M(()=>{"use strict";Xt();pt();ep();Nf();Mf();tr();yr();dWe=o(async function(t,e,r,n){X.info("REF0:"),X.info("Drawing er diagram (unified)",e);let{securityLevel:i,er:a,layout:s}=ge(),l=n.db.getData(),u=Vo(e,i);l.type=n.type,l.layoutAlgorithm=$c(s),l.config.flowchart.nodeSpacing=a?.nodeSpacing||140,l.config.flowchart.rankSpacing=a?.rankSpacing||80,l.direction=n.db.getDirection(),l.markers=["only_one","zero_or_one","one_or_more","zero_or_more"],l.diagramId=e,await Qo(l,u),l.layoutAlgorithm==="elk"&&u.select(".edges").lower();let h=u.selectAll('[id*="-background"]');Array.from(h).length>0&&h.each(function(){let d=qe(this),m=d.attr("id").replace("-background",""),g=u.select(`#${CSS.escape(m)}`);if(!g.empty()){let y=g.attr("transform");d.attr("transform",y)}});let f=8;qt.insertTitle(u,"erDiagramTitleText",a?.titleTopMargin??25,n.db.getDiagramTitle()),Ws(u,f,"erDiagram",a?.useMaxWidth??!0)},"draw")});var pWe,mWe,_fe,Dfe=M(()=>{"use strict";eo();pWe=o((t,e)=>{let r=ld,n=r(t,"r"),i=r(t,"g"),a=r(t,"b");return Ka(n,i,a,e)},"fade"),mWe=o(t=>` + .entityBox { + fill: ${t.mainBkg}; + stroke: ${t.nodeBorder}; + } + + .relationshipLabelBox { + fill: ${t.tertiaryColor}; + opacity: 0.7; + background-color: ${t.tertiaryColor}; + rect { + opacity: 0.5; + } + } + + .labelBkg { + background-color: ${pWe(t.tertiaryColor,.5)}; + } + + .edgeLabel .label { + fill: ${t.nodeBorder}; + font-size: 14px; + } + + .label { + font-family: ${t.fontFamily}; + color: ${t.nodeTextColor||t.textColor}; + } + + .edge-pattern-dashed { + stroke-dasharray: 8,8; + } + + .node rect, + .node circle, + .node ellipse, + .node polygon + { + fill: ${t.mainBkg}; + stroke: ${t.nodeBorder}; + stroke-width: 1px; + } + + .relationshipLine { + stroke: ${t.lineColor}; + stroke-width: 1; + fill: none; + } + + .marker { + fill: none !important; + stroke: ${t.lineColor} !important; + stroke-width: 1; + } +`,"getStyles"),_fe=mWe});var Lfe={};dr(Lfe,{diagram:()=>gWe});var gWe,Rfe=M(()=>{"use strict";Sfe();Cfe();Afe();Dfe();gWe={parser:Efe,get db(){return new DE},renderer:HI,styles:_fe}});function li(t){return typeof t=="object"&&t!==null&&typeof t.$type=="string"}function wa(t){return typeof t=="object"&&t!==null&&typeof t.$refText=="string"}function qI(t){return typeof t=="object"&&t!==null&&typeof t.name=="string"&&typeof t.type=="string"&&typeof t.path=="string"}function _p(t){return typeof t=="object"&&t!==null&&li(t.container)&&wa(t.reference)&&typeof t.message=="string"}function Ol(t){return typeof t=="object"&&t!==null&&Array.isArray(t.content)}function If(t){return typeof t=="object"&&t!==null&&typeof t.tokenType=="object"}function Rx(t){return Ol(t)&&typeof t.fullText=="string"}var Ap,Pl=M(()=>{"use strict";o(li,"isAstNode");o(wa,"isReference");o(qI,"isAstNodeDescription");o(_p,"isLinkingError");Ap=class{static{o(this,"AbstractAstReflection")}constructor(){this.subtypes={},this.allSubtypes={}}isInstance(e,r){return li(e)&&this.isSubtype(e.$type,r)}isSubtype(e,r){if(e===r)return!0;let n=this.subtypes[e];n||(n=this.subtypes[e]={});let i=n[r];if(i!==void 0)return i;{let a=this.computeIsSubtype(e,r);return n[r]=a,a}}getAllSubTypes(e){let r=this.allSubtypes[e];if(r)return r;{let n=this.getAllTypes(),i=[];for(let a of n)this.isSubtype(a,e)&&i.push(a);return this.allSubtypes[e]=i,i}}};o(Ol,"isCompositeCstNode");o(If,"isLeafCstNode");o(Rx,"isRootCstNode")});function bWe(t){return typeof t=="string"?t:typeof t>"u"?"undefined":typeof t.toString=="function"?t.toString():Object.prototype.toString.call(t)}function LE(t){return!!t&&typeof t[Symbol.iterator]=="function"}function an(...t){if(t.length===1){let e=t[0];if(e instanceof po)return e;if(LE(e))return new po(()=>e[Symbol.iterator](),r=>r.next());if(typeof e.length=="number")return new po(()=>({index:0}),r=>r.index1?new po(()=>({collIndex:0,arrIndex:0}),e=>{do{if(e.iterator){let r=e.iterator.next();if(!r.done)return r;e.iterator=void 0}if(e.array){if(e.arrIndex{"use strict";po=class t{static{o(this,"StreamImpl")}constructor(e,r){this.startFn=e,this.nextFn=r}iterator(){let e={state:this.startFn(),next:o(()=>this.nextFn(e.state),"next"),[Symbol.iterator]:()=>e};return e}[Symbol.iterator](){return this.iterator()}isEmpty(){return!!this.iterator().next().done}count(){let e=this.iterator(),r=0,n=e.next();for(;!n.done;)r++,n=e.next();return r}toArray(){let e=[],r=this.iterator(),n;do n=r.next(),n.value!==void 0&&e.push(n.value);while(!n.done);return e}toSet(){return new Set(this)}toMap(e,r){let n=this.map(i=>[e?e(i):i,r?r(i):i]);return new Map(n)}toString(){return this.join()}concat(e){return new t(()=>({first:this.startFn(),firstDone:!1,iterator:e[Symbol.iterator]()}),r=>{let n;if(!r.firstDone){do if(n=this.nextFn(r.first),!n.done)return n;while(!n.done);r.firstDone=!0}do if(n=r.iterator.next(),!n.done)return n;while(!n.done);return Ga})}join(e=","){let r=this.iterator(),n="",i,a=!1;do i=r.next(),i.done||(a&&(n+=e),n+=bWe(i.value)),a=!0;while(!i.done);return n}indexOf(e,r=0){let n=this.iterator(),i=0,a=n.next();for(;!a.done;){if(i>=r&&a.value===e)return i;a=n.next(),i++}return-1}every(e){let r=this.iterator(),n=r.next();for(;!n.done;){if(!e(n.value))return!1;n=r.next()}return!0}some(e){let r=this.iterator(),n=r.next();for(;!n.done;){if(e(n.value))return!0;n=r.next()}return!1}forEach(e){let r=this.iterator(),n=0,i=r.next();for(;!i.done;)e(i.value,n),i=r.next(),n++}map(e){return new t(this.startFn,r=>{let{done:n,value:i}=this.nextFn(r);return n?Ga:{done:!1,value:e(i)}})}filter(e){return new t(this.startFn,r=>{let n;do if(n=this.nextFn(r),!n.done&&e(n.value))return n;while(!n.done);return Ga})}nonNullable(){return this.filter(e=>e!=null)}reduce(e,r){let n=this.iterator(),i=r,a=n.next();for(;!a.done;)i===void 0?i=a.value:i=e(i,a.value),a=n.next();return i}reduceRight(e,r){return this.recursiveReduce(this.iterator(),e,r)}recursiveReduce(e,r,n){let i=e.next();if(i.done)return n;let a=this.recursiveReduce(e,r,n);return a===void 0?i.value:r(a,i.value)}find(e){let r=this.iterator(),n=r.next();for(;!n.done;){if(e(n.value))return n.value;n=r.next()}}findIndex(e){let r=this.iterator(),n=0,i=r.next();for(;!i.done;){if(e(i.value))return n;i=r.next(),n++}return-1}includes(e){let r=this.iterator(),n=r.next();for(;!n.done;){if(n.value===e)return!0;n=r.next()}return!1}flatMap(e){return new t(()=>({this:this.startFn()}),r=>{do{if(r.iterator){let a=r.iterator.next();if(a.done)r.iterator=void 0;else return a}let{done:n,value:i}=this.nextFn(r.this);if(!n){let a=e(i);if(LE(a))r.iterator=a[Symbol.iterator]();else return{done:!1,value:a}}}while(r.iterator);return Ga})}flat(e){if(e===void 0&&(e=1),e<=0)return this;let r=e>1?this.flat(e-1):this;return new t(()=>({this:r.startFn()}),n=>{do{if(n.iterator){let s=n.iterator.next();if(s.done)n.iterator=void 0;else return s}let{done:i,value:a}=r.nextFn(n.this);if(!i)if(LE(a))n.iterator=a[Symbol.iterator]();else return{done:!1,value:a}}while(n.iterator);return Ga})}head(){let r=this.iterator().next();if(!r.done)return r.value}tail(e=1){return new t(()=>{let r=this.startFn();for(let n=0;n({size:0,state:this.startFn()}),r=>(r.size++,r.size>e?Ga:this.nextFn(r.state)))}distinct(e){return new t(()=>({set:new Set,internalState:this.startFn()}),r=>{let n;do if(n=this.nextFn(r.internalState),!n.done){let i=e?e(n.value):n.value;if(!r.set.has(i))return r.set.add(i),n}while(!n.done);return Ga})}exclude(e,r){let n=new Set;for(let i of e){let a=r?r(i):i;n.add(a)}return this.filter(i=>{let a=r?r(i):i;return!n.has(a)})}};o(bWe,"toString");o(LE,"isIterable");Nx=new po(()=>{},()=>Ga),Ga=Object.freeze({done:!0,value:void 0});o(an,"stream");Gc=class extends po{static{o(this,"TreeStreamImpl")}constructor(e,r,n){super(()=>({iterators:n?.includeRoot?[[e][Symbol.iterator]()]:[r(e)[Symbol.iterator]()],pruned:!1}),i=>{for(i.pruned&&(i.iterators.pop(),i.pruned=!1);i.iterators.length>0;){let s=i.iterators[i.iterators.length-1].next();if(s.done)i.iterators.pop();else return i.iterators.push(r(s.value)[Symbol.iterator]()),s}return Ga})}iterator(){let e={state:this.startFn(),next:o(()=>this.nextFn(e.state),"next"),prune:o(()=>{e.state.pruned=!0},"prune"),[Symbol.iterator]:()=>e};return e}};(function(t){function e(a){return a.reduce((s,l)=>s+l,0)}o(e,"sum"),t.sum=e;function r(a){return a.reduce((s,l)=>s*l,0)}o(r,"product"),t.product=r;function n(a){return a.reduce((s,l)=>Math.min(s,l))}o(n,"min"),t.min=n;function i(a){return a.reduce((s,l)=>Math.max(s,l))}o(i,"max"),t.max=i})(vg||(vg={}))});var NE={};dr(NE,{DefaultNameRegexp:()=>RE,RangeComparison:()=>Vc,compareRange:()=>Ife,findCommentNode:()=>jI,findDeclarationNodeAtOffset:()=>wWe,findLeafNodeAtOffset:()=>KI,findLeafNodeBeforeOffset:()=>Ofe,flattenCst:()=>TWe,getInteriorNodes:()=>SWe,getNextNode:()=>kWe,getPreviousNode:()=>Bfe,getStartlineNode:()=>EWe,inRange:()=>XI,isChildNode:()=>YI,isCommentNode:()=>WI,streamCst:()=>Dp,toDocumentSegment:()=>Lp,tokenToRange:()=>xg});function Dp(t){return new Gc(t,e=>Ol(e)?e.content:[],{includeRoot:!0})}function TWe(t){return Dp(t).filter(If)}function YI(t,e){for(;t.container;)if(t=t.container,t===e)return!0;return!1}function xg(t){return{start:{character:t.startColumn-1,line:t.startLine-1},end:{character:t.endColumn,line:t.endLine-1}}}function Lp(t){if(!t)return;let{offset:e,end:r,range:n}=t;return{range:n,offset:e,end:r,length:r-e}}function Ife(t,e){if(t.end.linee.end.line||t.start.line===e.end.line&&t.start.character>=e.end.character)return Vc.After;let r=t.start.line>e.start.line||t.start.line===e.start.line&&t.start.character>=e.start.character,n=t.end.lineVc.After}function wWe(t,e,r=RE){if(t){if(e>0){let n=e-t.offset,i=t.text.charAt(n);r.test(i)||e--}return KI(t,e)}}function jI(t,e){if(t){let r=Bfe(t,!0);if(r&&WI(r,e))return r;if(Rx(t)){let n=t.content.findIndex(i=>!i.hidden);for(let i=n-1;i>=0;i--){let a=t.content[i];if(WI(a,e))return a}}}}function WI(t,e){return If(t)&&e.includes(t.tokenType.name)}function KI(t,e){if(If(t))return t;if(Ol(t)){let r=Pfe(t,e,!1);if(r)return KI(r,e)}}function Ofe(t,e){if(If(t))return t;if(Ol(t)){let r=Pfe(t,e,!0);if(r)return Ofe(r,e)}}function Pfe(t,e,r){let n=0,i=t.content.length-1,a;for(;n<=i;){let s=Math.floor((n+i)/2),l=t.content[s];if(l.offset<=e&&l.end>e)return l;l.end<=e?(a=r?l:void 0,n=s+1):i=s-1}return a}function Bfe(t,e=!0){for(;t.container;){let r=t.container,n=r.content.indexOf(t);for(;n>0;){n--;let i=r.content[n];if(e||!i.hidden)return i}t=r}}function kWe(t,e=!0){for(;t.container;){let r=t.container,n=r.content.indexOf(t),i=r.content.length-1;for(;n{"use strict";Pl();Ys();o(Dp,"streamCst");o(TWe,"flattenCst");o(YI,"isChildNode");o(xg,"tokenToRange");o(Lp,"toDocumentSegment");(function(t){t[t.Before=0]="Before",t[t.After=1]="After",t[t.OverlapFront=2]="OverlapFront",t[t.OverlapBack=3]="OverlapBack",t[t.Inside=4]="Inside",t[t.Outside=5]="Outside"})(Vc||(Vc={}));o(Ife,"compareRange");o(XI,"inRange");RE=/^[\w\p{L}]$/u;o(wWe,"findDeclarationNodeAtOffset");o(jI,"findCommentNode");o(WI,"isCommentNode");o(KI,"findLeafNodeAtOffset");o(Ofe,"findLeafNodeBeforeOffset");o(Pfe,"binarySearch");o(Bfe,"getPreviousNode");o(kWe,"getNextNode");o(EWe,"getStartlineNode");o(SWe,"getInteriorNodes");o(CWe,"getCommonParent");o(Mfe,"getParentChain")});function Uc(t){throw new Error("Error! The input value was not handled.")}var Rp,ME=M(()=>{"use strict";Rp=class extends Error{static{o(this,"ErrorWithLocation")}constructor(e,r){super(e?`${r} at ${e.range.start.line}:${e.range.start.character}`:r)}};o(Uc,"assertUnreachable")});var Gx={};dr(Gx,{AbstractElement:()=>wg,AbstractRule:()=>bg,AbstractType:()=>Tg,Action:()=>Gg,Alternatives:()=>Vg,ArrayLiteral:()=>kg,ArrayType:()=>Eg,Assignment:()=>Ug,BooleanLiteral:()=>Sg,CharacterRange:()=>Hg,Condition:()=>Mx,Conjunction:()=>Cg,CrossReference:()=>qg,Disjunction:()=>Ag,EndOfFile:()=>Wg,Grammar:()=>_g,GrammarImport:()=>Ox,Group:()=>Yg,InferredType:()=>Dg,Interface:()=>Lg,Keyword:()=>Xg,LangiumGrammarAstReflection:()=>i1,LangiumGrammarTerminals:()=>AWe,NamedArgument:()=>Px,NegatedToken:()=>jg,Negation:()=>Rg,NumberLiteral:()=>Ng,Parameter:()=>Mg,ParameterReference:()=>Ig,ParserRule:()=>Og,ReferenceType:()=>Pg,RegexToken:()=>Kg,ReturnType:()=>Bx,RuleCall:()=>Qg,SimpleType:()=>Bg,StringLiteral:()=>Fg,TerminalAlternatives:()=>Zg,TerminalGroup:()=>Jg,TerminalRule:()=>Np,TerminalRuleCall:()=>e1,Type:()=>$g,TypeAttribute:()=>Fx,TypeDefinition:()=>IE,UnionType:()=>zg,UnorderedGroup:()=>t1,UntilToken:()=>r1,ValueLiteral:()=>Ix,Wildcard:()=>n1,isAbstractElement:()=>$x,isAbstractRule:()=>_We,isAbstractType:()=>DWe,isAction:()=>qu,isAlternatives:()=>FE,isArrayLiteral:()=>IWe,isArrayType:()=>QI,isAssignment:()=>Fl,isBooleanLiteral:()=>ZI,isCharacterRange:()=>sO,isCondition:()=>LWe,isConjunction:()=>JI,isCrossReference:()=>Mp,isDisjunction:()=>eO,isEndOfFile:()=>oO,isFeatureName:()=>RWe,isGrammar:()=>OWe,isGrammarImport:()=>PWe,isGroup:()=>Of,isInferredType:()=>OE,isInterface:()=>PE,isKeyword:()=>Zo,isNamedArgument:()=>BWe,isNegatedToken:()=>lO,isNegation:()=>tO,isNumberLiteral:()=>FWe,isParameter:()=>$We,isParameterReference:()=>rO,isParserRule:()=>Va,isPrimitiveType:()=>Ffe,isReferenceType:()=>nO,isRegexToken:()=>cO,isReturnType:()=>iO,isRuleCall:()=>$l,isSimpleType:()=>BE,isStringLiteral:()=>zWe,isTerminalAlternatives:()=>uO,isTerminalGroup:()=>hO,isTerminalRule:()=>mo,isTerminalRuleCall:()=>$E,isType:()=>zx,isTypeAttribute:()=>GWe,isTypeDefinition:()=>NWe,isUnionType:()=>aO,isUnorderedGroup:()=>zE,isUntilToken:()=>fO,isValueLiteral:()=>MWe,isWildcard:()=>dO,reflection:()=>pr});function _We(t){return pr.isInstance(t,bg)}function DWe(t){return pr.isInstance(t,Tg)}function LWe(t){return pr.isInstance(t,Mx)}function RWe(t){return Ffe(t)||t==="current"||t==="entry"||t==="extends"||t==="false"||t==="fragment"||t==="grammar"||t==="hidden"||t==="import"||t==="interface"||t==="returns"||t==="terminal"||t==="true"||t==="type"||t==="infer"||t==="infers"||t==="with"||typeof t=="string"&&/\^?[_a-zA-Z][\w_]*/.test(t)}function Ffe(t){return t==="string"||t==="number"||t==="boolean"||t==="Date"||t==="bigint"}function NWe(t){return pr.isInstance(t,IE)}function MWe(t){return pr.isInstance(t,Ix)}function $x(t){return pr.isInstance(t,wg)}function IWe(t){return pr.isInstance(t,kg)}function QI(t){return pr.isInstance(t,Eg)}function ZI(t){return pr.isInstance(t,Sg)}function JI(t){return pr.isInstance(t,Cg)}function eO(t){return pr.isInstance(t,Ag)}function OWe(t){return pr.isInstance(t,_g)}function PWe(t){return pr.isInstance(t,Ox)}function OE(t){return pr.isInstance(t,Dg)}function PE(t){return pr.isInstance(t,Lg)}function BWe(t){return pr.isInstance(t,Px)}function tO(t){return pr.isInstance(t,Rg)}function FWe(t){return pr.isInstance(t,Ng)}function $We(t){return pr.isInstance(t,Mg)}function rO(t){return pr.isInstance(t,Ig)}function Va(t){return pr.isInstance(t,Og)}function nO(t){return pr.isInstance(t,Pg)}function iO(t){return pr.isInstance(t,Bx)}function BE(t){return pr.isInstance(t,Bg)}function zWe(t){return pr.isInstance(t,Fg)}function mo(t){return pr.isInstance(t,Np)}function zx(t){return pr.isInstance(t,$g)}function GWe(t){return pr.isInstance(t,Fx)}function aO(t){return pr.isInstance(t,zg)}function qu(t){return pr.isInstance(t,Gg)}function FE(t){return pr.isInstance(t,Vg)}function Fl(t){return pr.isInstance(t,Ug)}function sO(t){return pr.isInstance(t,Hg)}function Mp(t){return pr.isInstance(t,qg)}function oO(t){return pr.isInstance(t,Wg)}function Of(t){return pr.isInstance(t,Yg)}function Zo(t){return pr.isInstance(t,Xg)}function lO(t){return pr.isInstance(t,jg)}function cO(t){return pr.isInstance(t,Kg)}function $l(t){return pr.isInstance(t,Qg)}function uO(t){return pr.isInstance(t,Zg)}function hO(t){return pr.isInstance(t,Jg)}function $E(t){return pr.isInstance(t,e1)}function zE(t){return pr.isInstance(t,t1)}function fO(t){return pr.isInstance(t,r1)}function dO(t){return pr.isInstance(t,n1)}var AWe,bg,Tg,Mx,IE,Ix,wg,kg,Eg,Sg,Cg,Ag,_g,Ox,Dg,Lg,Px,Rg,Ng,Mg,Ig,Og,Pg,Bx,Bg,Fg,Np,$g,Fx,zg,Gg,Vg,Ug,Hg,qg,Wg,Yg,Xg,jg,Kg,Qg,Zg,Jg,e1,t1,r1,n1,i1,pr,Hc=M(()=>{"use strict";Pl();AWe={ID:/\^?[_a-zA-Z][\w_]*/,STRING:/"(\\.|[^"\\])*"|'(\\.|[^'\\])*'/,NUMBER:/NaN|-?((\d*\.\d+|\d+)([Ee][+-]?\d+)?|Infinity)/,RegexLiteral:/\/(?![*+?])(?:[^\r\n\[/\\]|\\.|\[(?:[^\r\n\]\\]|\\.)*\])+\/[a-z]*/,WS:/\s+/,ML_COMMENT:/\/\*[\s\S]*?\*\//,SL_COMMENT:/\/\/[^\n\r]*/},bg="AbstractRule";o(_We,"isAbstractRule");Tg="AbstractType";o(DWe,"isAbstractType");Mx="Condition";o(LWe,"isCondition");o(RWe,"isFeatureName");o(Ffe,"isPrimitiveType");IE="TypeDefinition";o(NWe,"isTypeDefinition");Ix="ValueLiteral";o(MWe,"isValueLiteral");wg="AbstractElement";o($x,"isAbstractElement");kg="ArrayLiteral";o(IWe,"isArrayLiteral");Eg="ArrayType";o(QI,"isArrayType");Sg="BooleanLiteral";o(ZI,"isBooleanLiteral");Cg="Conjunction";o(JI,"isConjunction");Ag="Disjunction";o(eO,"isDisjunction");_g="Grammar";o(OWe,"isGrammar");Ox="GrammarImport";o(PWe,"isGrammarImport");Dg="InferredType";o(OE,"isInferredType");Lg="Interface";o(PE,"isInterface");Px="NamedArgument";o(BWe,"isNamedArgument");Rg="Negation";o(tO,"isNegation");Ng="NumberLiteral";o(FWe,"isNumberLiteral");Mg="Parameter";o($We,"isParameter");Ig="ParameterReference";o(rO,"isParameterReference");Og="ParserRule";o(Va,"isParserRule");Pg="ReferenceType";o(nO,"isReferenceType");Bx="ReturnType";o(iO,"isReturnType");Bg="SimpleType";o(BE,"isSimpleType");Fg="StringLiteral";o(zWe,"isStringLiteral");Np="TerminalRule";o(mo,"isTerminalRule");$g="Type";o(zx,"isType");Fx="TypeAttribute";o(GWe,"isTypeAttribute");zg="UnionType";o(aO,"isUnionType");Gg="Action";o(qu,"isAction");Vg="Alternatives";o(FE,"isAlternatives");Ug="Assignment";o(Fl,"isAssignment");Hg="CharacterRange";o(sO,"isCharacterRange");qg="CrossReference";o(Mp,"isCrossReference");Wg="EndOfFile";o(oO,"isEndOfFile");Yg="Group";o(Of,"isGroup");Xg="Keyword";o(Zo,"isKeyword");jg="NegatedToken";o(lO,"isNegatedToken");Kg="RegexToken";o(cO,"isRegexToken");Qg="RuleCall";o($l,"isRuleCall");Zg="TerminalAlternatives";o(uO,"isTerminalAlternatives");Jg="TerminalGroup";o(hO,"isTerminalGroup");e1="TerminalRuleCall";o($E,"isTerminalRuleCall");t1="UnorderedGroup";o(zE,"isUnorderedGroup");r1="UntilToken";o(fO,"isUntilToken");n1="Wildcard";o(dO,"isWildcard");i1=class extends Ap{static{o(this,"LangiumGrammarAstReflection")}getAllTypes(){return[wg,bg,Tg,Gg,Vg,kg,Eg,Ug,Sg,Hg,Mx,Cg,qg,Ag,Wg,_g,Ox,Yg,Dg,Lg,Xg,Px,jg,Rg,Ng,Mg,Ig,Og,Pg,Kg,Bx,Qg,Bg,Fg,Zg,Jg,Np,e1,$g,Fx,IE,zg,t1,r1,Ix,n1]}computeIsSubtype(e,r){switch(e){case Gg:case Vg:case Ug:case Hg:case qg:case Wg:case Yg:case Xg:case jg:case Kg:case Qg:case Zg:case Jg:case e1:case t1:case r1:case n1:return this.isSubtype(wg,r);case kg:case Ng:case Fg:return this.isSubtype(Ix,r);case Eg:case Pg:case Bg:case zg:return this.isSubtype(IE,r);case Sg:return this.isSubtype(Mx,r)||this.isSubtype(Ix,r);case Cg:case Ag:case Rg:case Ig:return this.isSubtype(Mx,r);case Dg:case Lg:case $g:return this.isSubtype(Tg,r);case Og:return this.isSubtype(bg,r)||this.isSubtype(Tg,r);case Np:return this.isSubtype(bg,r);default:return!1}}getReferenceType(e){let r=`${e.container.$type}:${e.property}`;switch(r){case"Action:type":case"CrossReference:type":case"Interface:superTypes":case"ParserRule:returnType":case"SimpleType:typeRef":return Tg;case"Grammar:hiddenTokens":case"ParserRule:hiddenTokens":case"RuleCall:rule":return bg;case"Grammar:usedGrammars":return _g;case"NamedArgument:parameter":case"ParameterReference:parameter":return Mg;case"TerminalRuleCall:rule":return Np;default:throw new Error(`${r} is not a valid reference id.`)}}getTypeMetaData(e){switch(e){case wg:return{name:wg,properties:[{name:"cardinality"},{name:"lookahead"}]};case kg:return{name:kg,properties:[{name:"elements",defaultValue:[]}]};case Eg:return{name:Eg,properties:[{name:"elementType"}]};case Sg:return{name:Sg,properties:[{name:"true",defaultValue:!1}]};case Cg:return{name:Cg,properties:[{name:"left"},{name:"right"}]};case Ag:return{name:Ag,properties:[{name:"left"},{name:"right"}]};case _g:return{name:_g,properties:[{name:"definesHiddenTokens",defaultValue:!1},{name:"hiddenTokens",defaultValue:[]},{name:"imports",defaultValue:[]},{name:"interfaces",defaultValue:[]},{name:"isDeclared",defaultValue:!1},{name:"name"},{name:"rules",defaultValue:[]},{name:"types",defaultValue:[]},{name:"usedGrammars",defaultValue:[]}]};case Ox:return{name:Ox,properties:[{name:"path"}]};case Dg:return{name:Dg,properties:[{name:"name"}]};case Lg:return{name:Lg,properties:[{name:"attributes",defaultValue:[]},{name:"name"},{name:"superTypes",defaultValue:[]}]};case Px:return{name:Px,properties:[{name:"calledByName",defaultValue:!1},{name:"parameter"},{name:"value"}]};case Rg:return{name:Rg,properties:[{name:"value"}]};case Ng:return{name:Ng,properties:[{name:"value"}]};case Mg:return{name:Mg,properties:[{name:"name"}]};case Ig:return{name:Ig,properties:[{name:"parameter"}]};case Og:return{name:Og,properties:[{name:"dataType"},{name:"definesHiddenTokens",defaultValue:!1},{name:"definition"},{name:"entry",defaultValue:!1},{name:"fragment",defaultValue:!1},{name:"hiddenTokens",defaultValue:[]},{name:"inferredType"},{name:"name"},{name:"parameters",defaultValue:[]},{name:"returnType"},{name:"wildcard",defaultValue:!1}]};case Pg:return{name:Pg,properties:[{name:"referenceType"}]};case Bx:return{name:Bx,properties:[{name:"name"}]};case Bg:return{name:Bg,properties:[{name:"primitiveType"},{name:"stringType"},{name:"typeRef"}]};case Fg:return{name:Fg,properties:[{name:"value"}]};case Np:return{name:Np,properties:[{name:"definition"},{name:"fragment",defaultValue:!1},{name:"hidden",defaultValue:!1},{name:"name"},{name:"type"}]};case $g:return{name:$g,properties:[{name:"name"},{name:"type"}]};case Fx:return{name:Fx,properties:[{name:"defaultValue"},{name:"isOptional",defaultValue:!1},{name:"name"},{name:"type"}]};case zg:return{name:zg,properties:[{name:"types",defaultValue:[]}]};case Gg:return{name:Gg,properties:[{name:"cardinality"},{name:"feature"},{name:"inferredType"},{name:"lookahead"},{name:"operator"},{name:"type"}]};case Vg:return{name:Vg,properties:[{name:"cardinality"},{name:"elements",defaultValue:[]},{name:"lookahead"}]};case Ug:return{name:Ug,properties:[{name:"cardinality"},{name:"feature"},{name:"lookahead"},{name:"operator"},{name:"terminal"}]};case Hg:return{name:Hg,properties:[{name:"cardinality"},{name:"left"},{name:"lookahead"},{name:"right"}]};case qg:return{name:qg,properties:[{name:"cardinality"},{name:"deprecatedSyntax",defaultValue:!1},{name:"lookahead"},{name:"terminal"},{name:"type"}]};case Wg:return{name:Wg,properties:[{name:"cardinality"},{name:"lookahead"}]};case Yg:return{name:Yg,properties:[{name:"cardinality"},{name:"elements",defaultValue:[]},{name:"guardCondition"},{name:"lookahead"}]};case Xg:return{name:Xg,properties:[{name:"cardinality"},{name:"lookahead"},{name:"value"}]};case jg:return{name:jg,properties:[{name:"cardinality"},{name:"lookahead"},{name:"terminal"}]};case Kg:return{name:Kg,properties:[{name:"cardinality"},{name:"lookahead"},{name:"regex"}]};case Qg:return{name:Qg,properties:[{name:"arguments",defaultValue:[]},{name:"cardinality"},{name:"lookahead"},{name:"rule"}]};case Zg:return{name:Zg,properties:[{name:"cardinality"},{name:"elements",defaultValue:[]},{name:"lookahead"}]};case Jg:return{name:Jg,properties:[{name:"cardinality"},{name:"elements",defaultValue:[]},{name:"lookahead"}]};case e1:return{name:e1,properties:[{name:"cardinality"},{name:"lookahead"},{name:"rule"}]};case t1:return{name:t1,properties:[{name:"cardinality"},{name:"elements",defaultValue:[]},{name:"lookahead"}]};case r1:return{name:r1,properties:[{name:"cardinality"},{name:"lookahead"},{name:"terminal"}]};case n1:return{name:n1,properties:[{name:"cardinality"},{name:"lookahead"}]};default:return{name:e,properties:[]}}}},pr=new i1});var VE={};dr(VE,{assignMandatoryProperties:()=>gO,copyAstNode:()=>mO,findLocalReferences:()=>UWe,findRootNode:()=>Vx,getContainerOfType:()=>Ip,getDocument:()=>Ua,hasContainerOfType:()=>VWe,linkContentToContainer:()=>GE,streamAllContents:()=>qc,streamAst:()=>Jo,streamContents:()=>Ux,streamReferences:()=>a1});function GE(t){for(let[e,r]of Object.entries(t))e.startsWith("$")||(Array.isArray(r)?r.forEach((n,i)=>{li(n)&&(n.$container=t,n.$containerProperty=e,n.$containerIndex=i)}):li(r)&&(r.$container=t,r.$containerProperty=e))}function Ip(t,e){let r=t;for(;r;){if(e(r))return r;r=r.$container}}function VWe(t,e){let r=t;for(;r;){if(e(r))return!0;r=r.$container}return!1}function Ua(t){let r=Vx(t).$document;if(!r)throw new Error("AST node has no document.");return r}function Vx(t){for(;t.$container;)t=t.$container;return t}function Ux(t,e){if(!t)throw new Error("Node must be an AstNode.");let r=e?.range;return new po(()=>({keys:Object.keys(t),keyIndex:0,arrayIndex:0}),n=>{for(;n.keyIndexUx(r,e))}function Jo(t,e){if(t){if(e?.range&&!pO(t,e.range))return new Gc(t,()=>[])}else throw new Error("Root node must be an AstNode.");return new Gc(t,r=>Ux(r,e),{includeRoot:!0})}function pO(t,e){var r;if(!e)return!0;let n=(r=t.$cstNode)===null||r===void 0?void 0:r.range;return n?XI(n,e):!1}function a1(t){return new po(()=>({keys:Object.keys(t),keyIndex:0,arrayIndex:0}),e=>{for(;e.keyIndex{a1(n).forEach(i=>{i.reference.ref===t&&r.push(i.reference)})}),an(r)}function gO(t,e){let r=t.getTypeMetaData(e.$type),n=e;for(let i of r.properties)i.defaultValue!==void 0&&n[i.name]===void 0&&(n[i.name]=$fe(i.defaultValue))}function $fe(t){return Array.isArray(t)?[...t.map($fe)]:t}function mO(t,e){let r={$type:t.$type};for(let[n,i]of Object.entries(t))if(!n.startsWith("$"))if(li(i))r[n]=mO(i,e);else if(wa(i))r[n]=e(r,n,i.$refNode,i.$refText);else if(Array.isArray(i)){let a=[];for(let s of i)li(s)?a.push(mO(s,e)):wa(s)?a.push(e(r,n,s.$refNode,s.$refText)):a.push(s);r[n]=a}else r[n]=i;return GE(r),r}var hs=M(()=>{"use strict";Pl();Ys();Bl();o(GE,"linkContentToContainer");o(Ip,"getContainerOfType");o(VWe,"hasContainerOfType");o(Ua,"getDocument");o(Vx,"findRootNode");o(Ux,"streamContents");o(qc,"streamAllContents");o(Jo,"streamAst");o(pO,"isAstNodeInRange");o(a1,"streamReferences");o(UWe,"findLocalReferences");o(gO,"assignMandatoryProperties");o($fe,"copyDefaultValue");o(mO,"copyAstNode")});function lr(t){return t.charCodeAt(0)}function UE(t,e){Array.isArray(t)?t.forEach(function(r){e.push(r)}):e.push(t)}function s1(t,e){if(t[e]===!0)throw"duplicate flag "+e;let r=t[e];t[e]=!0}function Op(t){if(t===void 0)throw Error("Internal Error - Should never get here!");return!0}function Hx(){throw Error("Internal Error - Should never get here!")}function yO(t){return t.type==="Character"}var vO=M(()=>{"use strict";o(lr,"cc");o(UE,"insertToSet");o(s1,"addFlag");o(Op,"ASSERT_EXISTS");o(Hx,"ASSERT_NEVER_REACH_HERE");o(yO,"isCharacter")});var qx,Wx,xO,zfe=M(()=>{"use strict";vO();qx=[];for(let t=lr("0");t<=lr("9");t++)qx.push(t);Wx=[lr("_")].concat(qx);for(let t=lr("a");t<=lr("z");t++)Wx.push(t);for(let t=lr("A");t<=lr("Z");t++)Wx.push(t);xO=[lr(" "),lr("\f"),lr(` +`),lr("\r"),lr(" "),lr("\v"),lr(" "),lr("\xA0"),lr("\u1680"),lr("\u2000"),lr("\u2001"),lr("\u2002"),lr("\u2003"),lr("\u2004"),lr("\u2005"),lr("\u2006"),lr("\u2007"),lr("\u2008"),lr("\u2009"),lr("\u200A"),lr("\u2028"),lr("\u2029"),lr("\u202F"),lr("\u205F"),lr("\u3000"),lr("\uFEFF")]});var HWe,HE,qWe,Pp,Gfe=M(()=>{"use strict";vO();zfe();HWe=/[0-9a-fA-F]/,HE=/[0-9]/,qWe=/[1-9]/,Pp=class{static{o(this,"RegExpParser")}constructor(){this.idx=0,this.input="",this.groupIdx=0}saveState(){return{idx:this.idx,input:this.input,groupIdx:this.groupIdx}}restoreState(e){this.idx=e.idx,this.input=e.input,this.groupIdx=e.groupIdx}pattern(e){this.idx=0,this.input=e,this.groupIdx=0,this.consumeChar("/");let r=this.disjunction();this.consumeChar("/");let n={type:"Flags",loc:{begin:this.idx,end:e.length},global:!1,ignoreCase:!1,multiLine:!1,unicode:!1,sticky:!1};for(;this.isRegExpFlag();)switch(this.popChar()){case"g":s1(n,"global");break;case"i":s1(n,"ignoreCase");break;case"m":s1(n,"multiLine");break;case"u":s1(n,"unicode");break;case"y":s1(n,"sticky");break}if(this.idx!==this.input.length)throw Error("Redundant input: "+this.input.substring(this.idx));return{type:"Pattern",flags:n,value:r,loc:this.loc(0)}}disjunction(){let e=[],r=this.idx;for(e.push(this.alternative());this.peekChar()==="|";)this.consumeChar("|"),e.push(this.alternative());return{type:"Disjunction",value:e,loc:this.loc(r)}}alternative(){let e=[],r=this.idx;for(;this.isTerm();)e.push(this.term());return{type:"Alternative",value:e,loc:this.loc(r)}}term(){return this.isAssertion()?this.assertion():this.atom()}assertion(){let e=this.idx;switch(this.popChar()){case"^":return{type:"StartAnchor",loc:this.loc(e)};case"$":return{type:"EndAnchor",loc:this.loc(e)};case"\\":switch(this.popChar()){case"b":return{type:"WordBoundary",loc:this.loc(e)};case"B":return{type:"NonWordBoundary",loc:this.loc(e)}}throw Error("Invalid Assertion Escape");case"(":this.consumeChar("?");let r;switch(this.popChar()){case"=":r="Lookahead";break;case"!":r="NegativeLookahead";break}Op(r);let n=this.disjunction();return this.consumeChar(")"),{type:r,value:n,loc:this.loc(e)}}return Hx()}quantifier(e=!1){let r,n=this.idx;switch(this.popChar()){case"*":r={atLeast:0,atMost:1/0};break;case"+":r={atLeast:1,atMost:1/0};break;case"?":r={atLeast:0,atMost:1};break;case"{":let i=this.integerIncludingZero();switch(this.popChar()){case"}":r={atLeast:i,atMost:i};break;case",":let a;this.isDigit()?(a=this.integerIncludingZero(),r={atLeast:i,atMost:a}):r={atLeast:i,atMost:1/0},this.consumeChar("}");break}if(e===!0&&r===void 0)return;Op(r);break}if(!(e===!0&&r===void 0)&&Op(r))return this.peekChar(0)==="?"?(this.consumeChar("?"),r.greedy=!1):r.greedy=!0,r.type="Quantifier",r.loc=this.loc(n),r}atom(){let e,r=this.idx;switch(this.peekChar()){case".":e=this.dotAll();break;case"\\":e=this.atomEscape();break;case"[":e=this.characterClass();break;case"(":e=this.group();break}return e===void 0&&this.isPatternCharacter()&&(e=this.patternCharacter()),Op(e)?(e.loc=this.loc(r),this.isQuantifier()&&(e.quantifier=this.quantifier()),e):Hx()}dotAll(){return this.consumeChar("."),{type:"Set",complement:!0,value:[lr(` +`),lr("\r"),lr("\u2028"),lr("\u2029")]}}atomEscape(){switch(this.consumeChar("\\"),this.peekChar()){case"1":case"2":case"3":case"4":case"5":case"6":case"7":case"8":case"9":return this.decimalEscapeAtom();case"d":case"D":case"s":case"S":case"w":case"W":return this.characterClassEscape();case"f":case"n":case"r":case"t":case"v":return this.controlEscapeAtom();case"c":return this.controlLetterEscapeAtom();case"0":return this.nulCharacterAtom();case"x":return this.hexEscapeSequenceAtom();case"u":return this.regExpUnicodeEscapeSequenceAtom();default:return this.identityEscapeAtom()}}decimalEscapeAtom(){return{type:"GroupBackReference",value:this.positiveInteger()}}characterClassEscape(){let e,r=!1;switch(this.popChar()){case"d":e=qx;break;case"D":e=qx,r=!0;break;case"s":e=xO;break;case"S":e=xO,r=!0;break;case"w":e=Wx;break;case"W":e=Wx,r=!0;break}return Op(e)?{type:"Set",value:e,complement:r}:Hx()}controlEscapeAtom(){let e;switch(this.popChar()){case"f":e=lr("\f");break;case"n":e=lr(` +`);break;case"r":e=lr("\r");break;case"t":e=lr(" ");break;case"v":e=lr("\v");break}return Op(e)?{type:"Character",value:e}:Hx()}controlLetterEscapeAtom(){this.consumeChar("c");let e=this.popChar();if(/[a-zA-Z]/.test(e)===!1)throw Error("Invalid ");return{type:"Character",value:e.toUpperCase().charCodeAt(0)-64}}nulCharacterAtom(){return this.consumeChar("0"),{type:"Character",value:lr("\0")}}hexEscapeSequenceAtom(){return this.consumeChar("x"),this.parseHexDigits(2)}regExpUnicodeEscapeSequenceAtom(){return this.consumeChar("u"),this.parseHexDigits(4)}identityEscapeAtom(){let e=this.popChar();return{type:"Character",value:lr(e)}}classPatternCharacterAtom(){switch(this.peekChar()){case` +`:case"\r":case"\u2028":case"\u2029":case"\\":case"]":throw Error("TBD");default:let e=this.popChar();return{type:"Character",value:lr(e)}}}characterClass(){let e=[],r=!1;for(this.consumeChar("["),this.peekChar(0)==="^"&&(this.consumeChar("^"),r=!0);this.isClassAtom();){let n=this.classAtom(),i=n.type==="Character";if(yO(n)&&this.isRangeDash()){this.consumeChar("-");let a=this.classAtom(),s=a.type==="Character";if(yO(a)){if(a.value=this.input.length)throw Error("Unexpected end of input");this.idx++}loc(e){return{begin:e,end:this.idx}}}});var Wc,Vfe=M(()=>{"use strict";Wc=class{static{o(this,"BaseRegExpVisitor")}visitChildren(e){for(let r in e){let n=e[r];e.hasOwnProperty(r)&&(n.type!==void 0?this.visit(n):Array.isArray(n)&&n.forEach(i=>{this.visit(i)},this))}}visit(e){switch(e.type){case"Pattern":this.visitPattern(e);break;case"Flags":this.visitFlags(e);break;case"Disjunction":this.visitDisjunction(e);break;case"Alternative":this.visitAlternative(e);break;case"StartAnchor":this.visitStartAnchor(e);break;case"EndAnchor":this.visitEndAnchor(e);break;case"WordBoundary":this.visitWordBoundary(e);break;case"NonWordBoundary":this.visitNonWordBoundary(e);break;case"Lookahead":this.visitLookahead(e);break;case"NegativeLookahead":this.visitNegativeLookahead(e);break;case"Character":this.visitCharacter(e);break;case"Set":this.visitSet(e);break;case"Group":this.visitGroup(e);break;case"GroupBackReference":this.visitGroupBackReference(e);break;case"Quantifier":this.visitQuantifier(e);break}this.visitChildren(e)}visitPattern(e){}visitFlags(e){}visitDisjunction(e){}visitAlternative(e){}visitStartAnchor(e){}visitEndAnchor(e){}visitWordBoundary(e){}visitNonWordBoundary(e){}visitLookahead(e){}visitNegativeLookahead(e){}visitCharacter(e){}visitSet(e){}visitGroup(e){}visitGroupBackReference(e){}visitQuantifier(e){}}});var Yx=M(()=>{"use strict";Gfe();Vfe()});var qE={};dr(qE,{NEWLINE_REGEXP:()=>TO,escapeRegExp:()=>Fp,getCaseInsensitivePattern:()=>kO,getTerminalParts:()=>WWe,isMultilineComment:()=>wO,isWhitespace:()=>o1,partialMatches:()=>EO,partialRegExp:()=>qfe,whitespaceCharacters:()=>Hfe});function WWe(t){try{typeof t!="string"&&(t=t.source),t=`/${t}/`;let e=Ufe.pattern(t),r=[];for(let n of e.value.value)Bp.reset(t),Bp.visit(n),r.push({start:Bp.startRegexp,end:Bp.endRegex});return r}catch{return[]}}function wO(t){try{return typeof t=="string"&&(t=new RegExp(t)),t=t.toString(),Bp.reset(t),Bp.visit(Ufe.pattern(t)),Bp.multiline}catch{return!1}}function o1(t){let e=typeof t=="string"?new RegExp(t):t;return Hfe.some(r=>e.test(r))}function Fp(t){return t.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function kO(t){return Array.prototype.map.call(t,e=>/\w/.test(e)?`[${e.toLowerCase()}${e.toUpperCase()}]`:Fp(e)).join("")}function EO(t,e){let r=qfe(t),n=e.match(r);return!!n&&n[0].length>0}function qfe(t){typeof t=="string"&&(t=new RegExp(t));let e=t,r=t.source,n=0;function i(){let a="",s;function l(h){a+=r.substr(n,h),n+=h}o(l,"appendRaw");function u(h){a+="(?:"+r.substr(n,h)+"|$)",n+=h}for(o(u,"appendOptional");n",n)-n+1);break;default:u(2);break}break;case"[":s=/\[(?:\\.|.)*?\]/g,s.lastIndex=n,s=s.exec(r)||[],u(s[0].length);break;case"|":case"^":case"$":case"*":case"+":case"?":l(1);break;case"{":s=/\{\d+,?\d*\}/g,s.lastIndex=n,s=s.exec(r),s?l(s[0].length):u(1);break;case"(":if(r[n+1]==="?")switch(r[n+2]){case":":a+="(?:",n+=3,a+=i()+"|$)";break;case"=":a+="(?=",n+=3,a+=i()+")";break;case"!":s=n,n+=3,i(),a+=r.substr(s,n-s);break;case"<":switch(r[n+3]){case"=":case"!":s=n,n+=4,i(),a+=r.substr(s,n-s);break;default:l(r.indexOf(">",n)-n+1),a+=i()+"|$)";break}break}else l(1),a+=i()+"|$)";break;case")":return++n,a;default:u(1);break}return a}return o(i,"process"),new RegExp(i(),t.flags)}var TO,Ufe,bO,Bp,Hfe,l1=M(()=>{"use strict";Yx();TO=/\r?\n/gm,Ufe=new Pp,bO=class extends Wc{static{o(this,"TerminalRegExpVisitor")}constructor(){super(...arguments),this.isStarting=!0,this.endRegexpStack=[],this.multiline=!1}get endRegex(){return this.endRegexpStack.join("")}reset(e){this.multiline=!1,this.regex=e,this.startRegexp="",this.isStarting=!0,this.endRegexpStack=[]}visitGroup(e){e.quantifier&&(this.isStarting=!1,this.endRegexpStack=[])}visitCharacter(e){let r=String.fromCharCode(e.value);if(!this.multiline&&r===` +`&&(this.multiline=!0),e.quantifier)this.isStarting=!1,this.endRegexpStack=[];else{let n=Fp(r);this.endRegexpStack.push(n),this.isStarting&&(this.startRegexp+=n)}}visitSet(e){if(!this.multiline){let r=this.regex.substring(e.loc.begin,e.loc.end),n=new RegExp(r);this.multiline=!!` +`.match(n)}if(e.quantifier)this.isStarting=!1,this.endRegexpStack=[];else{let r=this.regex.substring(e.loc.begin,e.loc.end);this.endRegexpStack.push(r),this.isStarting&&(this.startRegexp+=r)}}visitChildren(e){e.type==="Group"&&e.quantifier||super.visitChildren(e)}},Bp=new bO;o(WWe,"getTerminalParts");o(wO,"isMultilineComment");Hfe=`\f +\r \v \xA0\u1680\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200A\u2028\u2029\u202F\u205F\u3000\uFEFF`.split("");o(o1,"isWhitespace");o(Fp,"escapeRegExp");o(kO,"getCaseInsensitivePattern");o(EO,"partialMatches");o(qfe,"partialRegExp")});var YE={};dr(YE,{findAssignment:()=>MO,findNameAssignment:()=>WE,findNodeForKeyword:()=>RO,findNodeForProperty:()=>jx,findNodesForKeyword:()=>YWe,findNodesForKeywordInternal:()=>NO,findNodesForProperty:()=>DO,getActionAtElement:()=>Kfe,getActionType:()=>Zfe,getAllReachableRules:()=>Xx,getCrossReferenceTerminal:()=>AO,getEntryRule:()=>Wfe,getExplicitRuleType:()=>c1,getHiddenRules:()=>Yfe,getRuleType:()=>IO,getRuleTypeName:()=>ZWe,getTypeName:()=>Qx,isArrayCardinality:()=>jWe,isArrayOperator:()=>KWe,isCommentTerminal:()=>_O,isDataType:()=>QWe,isDataTypeRule:()=>Kx,isOptionalCardinality:()=>XWe,terminalRegex:()=>u1});function Wfe(t){return t.rules.find(e=>Va(e)&&e.entry)}function Yfe(t){return t.rules.filter(e=>mo(e)&&e.hidden)}function Xx(t,e){let r=new Set,n=Wfe(t);if(!n)return new Set(t.rules);let i=[n].concat(Yfe(t));for(let s of i)Xfe(s,r,e);let a=new Set;for(let s of t.rules)(r.has(s.name)||mo(s)&&s.hidden)&&a.add(s);return a}function Xfe(t,e,r){e.add(t.name),qc(t).forEach(n=>{if($l(n)||r&&$E(n)){let i=n.rule.ref;i&&!e.has(i.name)&&Xfe(i,e,r)}})}function AO(t){if(t.terminal)return t.terminal;if(t.type.ref){let e=WE(t.type.ref);return e?.terminal}}function _O(t){return t.hidden&&!o1(u1(t))}function DO(t,e){return!t||!e?[]:LO(t,e,t.astNode,!0)}function jx(t,e,r){if(!t||!e)return;let n=LO(t,e,t.astNode,!0);if(n.length!==0)return r!==void 0?r=Math.max(0,Math.min(r,n.length-1)):r=0,n[r]}function LO(t,e,r,n){if(!n){let i=Ip(t.grammarSource,Fl);if(i&&i.feature===e)return[t]}return Ol(t)&&t.astNode===r?t.content.flatMap(i=>LO(i,e,r,!1)):[]}function YWe(t,e){return t?NO(t,e,t?.astNode):[]}function RO(t,e,r){if(!t)return;let n=NO(t,e,t?.astNode);if(n.length!==0)return r!==void 0?r=Math.max(0,Math.min(r,n.length-1)):r=0,n[r]}function NO(t,e,r){if(t.astNode!==r)return[];if(Zo(t.grammarSource)&&t.grammarSource.value===e)return[t];let n=Dp(t).iterator(),i,a=[];do if(i=n.next(),!i.done){let s=i.value;s.astNode===r?Zo(s.grammarSource)&&s.grammarSource.value===e&&a.push(s):n.prune()}while(!i.done);return a}function MO(t){var e;let r=t.astNode;for(;r===((e=t.container)===null||e===void 0?void 0:e.astNode);){let n=Ip(t.grammarSource,Fl);if(n)return n;t=t.container}}function WE(t){let e=t;return OE(e)&&(qu(e.$container)?e=e.$container.$container:Va(e.$container)?e=e.$container:Uc(e.$container)),jfe(t,e,new Map)}function jfe(t,e,r){var n;function i(a,s){let l;return Ip(a,Fl)||(l=jfe(s,s,r)),r.set(t,l),l}if(o(i,"go"),r.has(t))return r.get(t);r.set(t,void 0);for(let a of qc(e)){if(Fl(a)&&a.feature.toLowerCase()==="name")return r.set(t,a),a;if($l(a)&&Va(a.rule.ref))return i(a,a.rule.ref);if(BE(a)&&(!((n=a.typeRef)===null||n===void 0)&&n.ref))return i(a,a.typeRef.ref)}}function Kfe(t){let e=t.$container;if(Of(e)){let r=e.elements,n=r.indexOf(t);for(let i=n-1;i>=0;i--){let a=r[i];if(qu(a))return a;{let s=qc(r[i]).find(qu);if(s)return s}}}if($x(e))return Kfe(e)}function XWe(t,e){return t==="?"||t==="*"||Of(e)&&!!e.guardCondition}function jWe(t){return t==="*"||t==="+"}function KWe(t){return t==="+="}function Kx(t){return Qfe(t,new Set)}function Qfe(t,e){if(e.has(t))return!0;e.add(t);for(let r of qc(t))if($l(r)){if(!r.rule.ref||Va(r.rule.ref)&&!Qfe(r.rule.ref,e))return!1}else{if(Fl(r))return!1;if(qu(r))return!1}return!!t.definition}function QWe(t){return CO(t.type,new Set)}function CO(t,e){if(e.has(t))return!0;if(e.add(t),QI(t))return!1;if(nO(t))return!1;if(aO(t))return t.types.every(r=>CO(r,e));if(BE(t)){if(t.primitiveType!==void 0)return!0;if(t.stringType!==void 0)return!0;if(t.typeRef!==void 0){let r=t.typeRef.ref;return zx(r)?CO(r.type,e):!1}else return!1}else return!1}function c1(t){if(t.inferredType)return t.inferredType.name;if(t.dataType)return t.dataType;if(t.returnType){let e=t.returnType.ref;if(e){if(Va(e))return e.name;if(PE(e)||zx(e))return e.name}}}function Qx(t){var e;if(Va(t))return Kx(t)?t.name:(e=c1(t))!==null&&e!==void 0?e:t.name;if(PE(t)||zx(t)||iO(t))return t.name;if(qu(t)){let r=Zfe(t);if(r)return r}else if(OE(t))return t.name;throw new Error("Cannot get name of Unknown Type")}function Zfe(t){var e;if(t.inferredType)return t.inferredType.name;if(!((e=t.type)===null||e===void 0)&&e.ref)return Qx(t.type.ref)}function ZWe(t){var e,r,n;return mo(t)?(r=(e=t.type)===null||e===void 0?void 0:e.name)!==null&&r!==void 0?r:"string":Kx(t)?t.name:(n=c1(t))!==null&&n!==void 0?n:t.name}function IO(t){var e,r,n;return mo(t)?(r=(e=t.type)===null||e===void 0?void 0:e.name)!==null&&r!==void 0?r:"string":(n=c1(t))!==null&&n!==void 0?n:t.name}function u1(t){let e={s:!1,i:!1,u:!1},r=h1(t.definition,e),n=Object.entries(e).filter(([,i])=>i).map(([i])=>i).join("");return new RegExp(r,n)}function h1(t,e){if(uO(t))return JWe(t);if(hO(t))return eYe(t);if(sO(t))return nYe(t);if($E(t)){let r=t.rule.ref;if(!r)throw new Error("Missing rule reference.");return Wu(h1(r.definition),{cardinality:t.cardinality,lookahead:t.lookahead})}else{if(lO(t))return rYe(t);if(fO(t))return tYe(t);if(cO(t)){let r=t.regex.lastIndexOf("/"),n=t.regex.substring(1,r),i=t.regex.substring(r+1);return e&&(e.i=i.includes("i"),e.s=i.includes("s"),e.u=i.includes("u")),Wu(n,{cardinality:t.cardinality,lookahead:t.lookahead,wrap:!1})}else{if(dO(t))return Wu(OO,{cardinality:t.cardinality,lookahead:t.lookahead});throw new Error(`Invalid terminal element: ${t?.$type}`)}}}function JWe(t){return Wu(t.elements.map(e=>h1(e)).join("|"),{cardinality:t.cardinality,lookahead:t.lookahead})}function eYe(t){return Wu(t.elements.map(e=>h1(e)).join(""),{cardinality:t.cardinality,lookahead:t.lookahead})}function tYe(t){return Wu(`${OO}*?${h1(t.terminal)}`,{cardinality:t.cardinality,lookahead:t.lookahead})}function rYe(t){return Wu(`(?!${h1(t.terminal)})${OO}*?`,{cardinality:t.cardinality,lookahead:t.lookahead})}function nYe(t){return t.right?Wu(`[${SO(t.left)}-${SO(t.right)}]`,{cardinality:t.cardinality,lookahead:t.lookahead,wrap:!1}):Wu(SO(t.left),{cardinality:t.cardinality,lookahead:t.lookahead,wrap:!1})}function SO(t){return Fp(t.value)}function Wu(t,e){var r;return(e.wrap!==!1||e.lookahead)&&(t=`(${(r=e.lookahead)!==null&&r!==void 0?r:""}${t})`),e.cardinality?`${t}${e.cardinality}`:t}var OO,zl=M(()=>{"use strict";ME();Hc();Pl();hs();Bl();l1();o(Wfe,"getEntryRule");o(Yfe,"getHiddenRules");o(Xx,"getAllReachableRules");o(Xfe,"ruleDfs");o(AO,"getCrossReferenceTerminal");o(_O,"isCommentTerminal");o(DO,"findNodesForProperty");o(jx,"findNodeForProperty");o(LO,"findNodesForPropertyInternal");o(YWe,"findNodesForKeyword");o(RO,"findNodeForKeyword");o(NO,"findNodesForKeywordInternal");o(MO,"findAssignment");o(WE,"findNameAssignment");o(jfe,"findNameAssignmentInternal");o(Kfe,"getActionAtElement");o(XWe,"isOptionalCardinality");o(jWe,"isArrayCardinality");o(KWe,"isArrayOperator");o(Kx,"isDataTypeRule");o(Qfe,"isDataTypeRuleInternal");o(QWe,"isDataType");o(CO,"isDataTypeInternal");o(c1,"getExplicitRuleType");o(Qx,"getTypeName");o(Zfe,"getActionType");o(ZWe,"getRuleTypeName");o(IO,"getRuleType");o(u1,"terminalRegex");OO=/[\s\S]/.source;o(h1,"abstractElementToRegex");o(JWe,"terminalAlternativesToRegex");o(eYe,"terminalGroupToRegex");o(tYe,"untilTokenToRegex");o(rYe,"negateTokenToRegex");o(nYe,"characterRangeToRegex");o(SO,"keywordToRegex");o(Wu,"withCardinality")});function PO(t){let e=[],r=t.Grammar;for(let n of r.rules)mo(n)&&_O(n)&&wO(u1(n))&&e.push(n.name);return{multilineCommentRules:e,nameRegexp:RE}}var BO=M(()=>{"use strict";Bl();zl();l1();Hc();o(PO,"createGrammarConfig")});var FO=M(()=>{"use strict"});function f1(t){console&&console.error&&console.error(`Error: ${t}`)}function Zx(t){console&&console.warn&&console.warn(`Warning: ${t}`)}var Jfe=M(()=>{"use strict";o(f1,"PRINT_ERROR");o(Zx,"PRINT_WARNING")});function Jx(t){let e=new Date().getTime(),r=t();return{time:new Date().getTime()-e,value:r}}var ede=M(()=>{"use strict";o(Jx,"timer")});function eb(t){function e(){}o(e,"FakeConstructor"),e.prototype=t;let r=new e;function n(){return typeof r.bar}return o(n,"fakeAccess"),n(),n(),t;(0,eval)(t)}var tde=M(()=>{"use strict";o(eb,"toFastProperties")});var d1=M(()=>{"use strict";Jfe();ede();tde()});function iYe(t){return aYe(t)?t.LABEL:t.name}function aYe(t){return xi(t.LABEL)&&t.LABEL!==""}function XE(t){return rt(t,p1)}function p1(t){function e(r){return rt(r,p1)}if(o(e,"convertDefinition"),t instanceof fn){let r={type:"NonTerminal",name:t.nonTerminalName,idx:t.idx};return xi(t.label)&&(r.label=t.label),r}else{if(t instanceof Pn)return{type:"Alternative",definition:e(t.definition)};if(t instanceof dn)return{type:"Option",idx:t.idx,definition:e(t.definition)};if(t instanceof Bn)return{type:"RepetitionMandatory",idx:t.idx,definition:e(t.definition)};if(t instanceof Fn)return{type:"RepetitionMandatoryWithSeparator",idx:t.idx,separator:p1(new Ar({terminalType:t.separator})),definition:e(t.definition)};if(t instanceof _n)return{type:"RepetitionWithSeparator",idx:t.idx,separator:p1(new Ar({terminalType:t.separator})),definition:e(t.definition)};if(t instanceof zr)return{type:"Repetition",idx:t.idx,definition:e(t.definition)};if(t instanceof Dn)return{type:"Alternation",idx:t.idx,definition:e(t.definition)};if(t instanceof Ar){let r={type:"Terminal",name:t.terminalType.name,label:iYe(t.terminalType),idx:t.idx};xi(t.label)&&(r.terminalLabel=t.label);let n=t.terminalType.PATTERN;return t.terminalType.PATTERN&&(r.pattern=Uo(n)?n.source:n),r}else{if(t instanceof fs)return{type:"Rule",name:t.name,orgText:t.orgText,definition:e(t.definition)};throw Error("non exhaustive match")}}}var go,fn,fs,Pn,dn,Bn,Fn,zr,_n,Dn,Ar,jE=M(()=>{"use strict";Yt();o(iYe,"tokenLabel");o(aYe,"hasTokenLabel");go=class{static{o(this,"AbstractProduction")}get definition(){return this._definition}set definition(e){this._definition=e}constructor(e){this._definition=e}accept(e){e.visit(this),Ae(this.definition,r=>{r.accept(e)})}},fn=class extends go{static{o(this,"NonTerminal")}constructor(e){super([]),this.idx=1,ma(this,Vs(e,r=>r!==void 0))}set definition(e){}get definition(){return this.referencedRule!==void 0?this.referencedRule.definition:[]}accept(e){e.visit(this)}},fs=class extends go{static{o(this,"Rule")}constructor(e){super(e.definition),this.orgText="",ma(this,Vs(e,r=>r!==void 0))}},Pn=class extends go{static{o(this,"Alternative")}constructor(e){super(e.definition),this.ignoreAmbiguities=!1,ma(this,Vs(e,r=>r!==void 0))}},dn=class extends go{static{o(this,"Option")}constructor(e){super(e.definition),this.idx=1,ma(this,Vs(e,r=>r!==void 0))}},Bn=class extends go{static{o(this,"RepetitionMandatory")}constructor(e){super(e.definition),this.idx=1,ma(this,Vs(e,r=>r!==void 0))}},Fn=class extends go{static{o(this,"RepetitionMandatoryWithSeparator")}constructor(e){super(e.definition),this.idx=1,ma(this,Vs(e,r=>r!==void 0))}},zr=class extends go{static{o(this,"Repetition")}constructor(e){super(e.definition),this.idx=1,ma(this,Vs(e,r=>r!==void 0))}},_n=class extends go{static{o(this,"RepetitionWithSeparator")}constructor(e){super(e.definition),this.idx=1,ma(this,Vs(e,r=>r!==void 0))}},Dn=class extends go{static{o(this,"Alternation")}get definition(){return this._definition}set definition(e){this._definition=e}constructor(e){super(e.definition),this.idx=1,this.ignoreAmbiguities=!1,this.hasPredicates=!1,ma(this,Vs(e,r=>r!==void 0))}},Ar=class{static{o(this,"Terminal")}constructor(e){this.idx=1,ma(this,Vs(e,r=>r!==void 0))}accept(e){e.visit(this)}};o(XE,"serializeGrammar");o(p1,"serializeProduction")});var ds,rde=M(()=>{"use strict";jE();ds=class{static{o(this,"GAstVisitor")}visit(e){let r=e;switch(r.constructor){case fn:return this.visitNonTerminal(r);case Pn:return this.visitAlternative(r);case dn:return this.visitOption(r);case Bn:return this.visitRepetitionMandatory(r);case Fn:return this.visitRepetitionMandatoryWithSeparator(r);case _n:return this.visitRepetitionWithSeparator(r);case zr:return this.visitRepetition(r);case Dn:return this.visitAlternation(r);case Ar:return this.visitTerminal(r);case fs:return this.visitRule(r);default:throw Error("non exhaustive match")}}visitNonTerminal(e){}visitAlternative(e){}visitOption(e){}visitRepetition(e){}visitRepetitionMandatory(e){}visitRepetitionMandatoryWithSeparator(e){}visitRepetitionWithSeparator(e){}visitAlternation(e){}visitTerminal(e){}visitRule(e){}}});function $O(t){return t instanceof Pn||t instanceof dn||t instanceof zr||t instanceof Bn||t instanceof Fn||t instanceof _n||t instanceof Ar||t instanceof fs}function $p(t,e=[]){return t instanceof dn||t instanceof zr||t instanceof _n?!0:t instanceof Dn?G2(t.definition,n=>$p(n,e)):t instanceof fn&&jn(e,t)?!1:t instanceof go?(t instanceof fn&&e.push(t),Ba(t.definition,n=>$p(n,e))):!1}function zO(t){return t instanceof Dn}function Xs(t){if(t instanceof fn)return"SUBRULE";if(t instanceof dn)return"OPTION";if(t instanceof Dn)return"OR";if(t instanceof Bn)return"AT_LEAST_ONE";if(t instanceof Fn)return"AT_LEAST_ONE_SEP";if(t instanceof _n)return"MANY_SEP";if(t instanceof zr)return"MANY";if(t instanceof Ar)return"CONSUME";throw Error("non exhaustive match")}var nde=M(()=>{"use strict";Yt();jE();o($O,"isSequenceProd");o($p,"isOptionalProd");o(zO,"isBranchingProd");o(Xs,"getProductionDslName")});var ps=M(()=>{"use strict";jE();rde();nde()});function ide(t,e,r){return[new dn({definition:[new Ar({terminalType:t.separator})].concat(t.definition)})].concat(e,r)}var Yu,KE=M(()=>{"use strict";Yt();ps();Yu=class{static{o(this,"RestWalker")}walk(e,r=[]){Ae(e.definition,(n,i)=>{let a=yi(e.definition,i+1);if(n instanceof fn)this.walkProdRef(n,a,r);else if(n instanceof Ar)this.walkTerminal(n,a,r);else if(n instanceof Pn)this.walkFlat(n,a,r);else if(n instanceof dn)this.walkOption(n,a,r);else if(n instanceof Bn)this.walkAtLeastOne(n,a,r);else if(n instanceof Fn)this.walkAtLeastOneSep(n,a,r);else if(n instanceof _n)this.walkManySep(n,a,r);else if(n instanceof zr)this.walkMany(n,a,r);else if(n instanceof Dn)this.walkOr(n,a,r);else throw Error("non exhaustive match")})}walkTerminal(e,r,n){}walkProdRef(e,r,n){}walkFlat(e,r,n){let i=r.concat(n);this.walk(e,i)}walkOption(e,r,n){let i=r.concat(n);this.walk(e,i)}walkAtLeastOne(e,r,n){let i=[new dn({definition:e.definition})].concat(r,n);this.walk(e,i)}walkAtLeastOneSep(e,r,n){let i=ide(e,r,n);this.walk(e,i)}walkMany(e,r,n){let i=[new dn({definition:e.definition})].concat(r,n);this.walk(e,i)}walkManySep(e,r,n){let i=ide(e,r,n);this.walk(e,i)}walkOr(e,r,n){let i=r.concat(n);Ae(e.definition,a=>{let s=new Pn({definition:[a]});this.walk(s,i)})}};o(ide,"restForRepetitionWithSeparator")});function zp(t){if(t instanceof fn)return zp(t.referencedRule);if(t instanceof Ar)return lYe(t);if($O(t))return sYe(t);if(zO(t))return oYe(t);throw Error("non exhaustive match")}function sYe(t){let e=[],r=t.definition,n=0,i=r.length>n,a,s=!0;for(;i&&s;)a=r[n],s=$p(a),e=e.concat(zp(a)),n=n+1,i=r.length>n;return qm(e)}function oYe(t){let e=rt(t.definition,r=>zp(r));return qm(Qr(e))}function lYe(t){return[t.terminalType]}var GO=M(()=>{"use strict";Yt();ps();o(zp,"first");o(sYe,"firstForSequence");o(oYe,"firstForBranching");o(lYe,"firstForTerminal")});var QE,VO=M(()=>{"use strict";QE="_~IN~_"});function ade(t){let e={};return Ae(t,r=>{let n=new UO(r).startWalking();ma(e,n)}),e}function cYe(t,e){return t.name+e+QE}var UO,sde=M(()=>{"use strict";KE();GO();Yt();VO();ps();UO=class extends Yu{static{o(this,"ResyncFollowsWalker")}constructor(e){super(),this.topProd=e,this.follows={}}startWalking(){return this.walk(this.topProd),this.follows}walkTerminal(e,r,n){}walkProdRef(e,r,n){let i=cYe(e.referencedRule,e.idx)+this.topProd.name,a=r.concat(n),s=new Pn({definition:a}),l=zp(s);this.follows[i]=l}};o(ade,"computeAllProdsFollows");o(cYe,"buildBetweenProdsFollowPrefix")});function m1(t){let e=t.toString();if(ZE.hasOwnProperty(e))return ZE[e];{let r=uYe.pattern(e);return ZE[e]=r,r}}function ode(){ZE={}}var ZE,uYe,JE=M(()=>{"use strict";Yx();ZE={},uYe=new Pp;o(m1,"getRegExpAst");o(ode,"clearRegExpParserCache")});function ude(t,e=!1){try{let r=m1(t);return HO(r.value,{},r.flags.ignoreCase)}catch(r){if(r.message===cde)e&&Zx(`${tb} Unable to optimize: < ${t.toString()} > + Complement Sets cannot be automatically optimized. + This will disable the lexer's first char optimizations. + See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#COMPLEMENT for details.`);else{let n="";e&&(n=` + This will disable the lexer's first char optimizations. + See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#REGEXP_PARSING for details.`),f1(`${tb} + Failed parsing: < ${t.toString()} > + Using the @chevrotain/regexp-to-ast library + Please open an issue at: https://github.com/chevrotain/chevrotain/issues`+n)}}return[]}function HO(t,e,r){switch(t.type){case"Disjunction":for(let i=0;i{if(typeof u=="number")eS(u,e,r);else{let h=u;if(r===!0)for(let f=h.from;f<=h.to;f++)eS(f,e,r);else{for(let f=h.from;f<=h.to&&f=g1){let f=h.from>=g1?h.from:g1,d=h.to,p=Yc(f),m=Yc(d);for(let g=p;g<=m;g++)e[g]=g}}}});break;case"Group":HO(s.value,e,r);break;default:throw Error("Non Exhaustive Match")}let l=s.quantifier!==void 0&&s.quantifier.atLeast===0;if(s.type==="Group"&&qO(s)===!1||s.type!=="Group"&&l===!1)break}break;default:throw Error("non exhaustive match!")}return kr(e)}function eS(t,e,r){let n=Yc(t);e[n]=n,r===!0&&hYe(t,e)}function hYe(t,e){let r=String.fromCharCode(t),n=r.toUpperCase();if(n!==r){let i=Yc(n.charCodeAt(0));e[i]=i}else{let i=r.toLowerCase();if(i!==r){let a=Yc(i.charCodeAt(0));e[a]=a}}}function lde(t,e){return os(t.value,r=>{if(typeof r=="number")return jn(e,r);{let n=r;return os(e,i=>n.from<=i&&i<=n.to)!==void 0}})}function qO(t){let e=t.quantifier;return e&&e.atLeast===0?!0:t.value?Bt(t.value)?Ba(t.value,qO):qO(t.value):!1}function tS(t,e){if(e instanceof RegExp){let r=m1(e),n=new WO(t);return n.visit(r),n.found}else return os(e,r=>jn(t,r.charCodeAt(0)))!==void 0}var cde,tb,WO,hde=M(()=>{"use strict";Yx();Yt();d1();JE();YO();cde="Complement Sets are not supported for first char optimization",tb=`Unable to use "first char" lexer optimizations: +`;o(ude,"getOptimizedStartCodesIndices");o(HO,"firstCharOptimizedIndices");o(eS,"addOptimizedIdxToResult");o(hYe,"handleIgnoreCase");o(lde,"findCode");o(qO,"isWholeOptional");WO=class extends Wc{static{o(this,"CharCodeFinder")}constructor(e){super(),this.targetCharCodes=e,this.found=!1}visitChildren(e){if(this.found!==!0){switch(e.type){case"Lookahead":this.visitLookahead(e);return;case"NegativeLookahead":this.visitNegativeLookahead(e);return}super.visitChildren(e)}}visitCharacter(e){jn(this.targetCharCodes,e.value)&&(this.found=!0)}visitSet(e){e.complement?lde(e,this.targetCharCodes)===void 0&&(this.found=!0):lde(e,this.targetCharCodes)!==void 0&&(this.found=!0)}};o(tS,"canMatchCharCode")});function pde(t,e){e=of(e,{useSticky:jO,debug:!1,safeMode:!1,positionTracking:"full",lineTerminatorCharacters:["\r",` +`],tracer:o((b,T)=>T(),"tracer")});let r=e.tracer;r("initCharCodeToOptimizedIndexMap",()=>{DYe()});let n;r("Reject Lexer.NA",()=>{n=cf(t,b=>b[Gp]===Zn.NA)});let i=!1,a;r("Transform Patterns",()=>{i=!1,a=rt(n,b=>{let T=b[Gp];if(Uo(T)){let S=T.source;return S.length===1&&S!=="^"&&S!=="$"&&S!=="."&&!T.ignoreCase?S:S.length===2&&S[0]==="\\"&&!jn(["d","D","s","S","t","r","n","t","0","c","b","B","f","v","w","W"],S[1])?S[1]:e.useSticky?dde(T):fde(T)}else{if(Si(T))return i=!0,{exec:T};if(typeof T=="object")return i=!0,T;if(typeof T=="string"){if(T.length===1)return T;{let S=T.replace(/[\\^$.*+?()[\]{}|]/g,"\\$&"),w=new RegExp(S);return e.useSticky?dde(w):fde(w)}}else throw Error("non exhaustive match")}})});let s,l,u,h,f;r("misc mapping",()=>{s=rt(n,b=>b.tokenTypeIdx),l=rt(n,b=>{let T=b.GROUP;if(T!==Zn.SKIPPED){if(xi(T))return T;if(xr(T))return!1;throw Error("non exhaustive match")}}),u=rt(n,b=>{let T=b.LONGER_ALT;if(T)return Bt(T)?rt(T,w=>uk(n,w)):[uk(n,T)]}),h=rt(n,b=>b.PUSH_MODE),f=rt(n,b=>Ft(b,"POP_MODE"))});let d;r("Line Terminator Handling",()=>{let b=wde(e.lineTerminatorCharacters);d=rt(n,T=>!1),e.positionTracking!=="onlyOffset"&&(d=rt(n,T=>Ft(T,"LINE_BREAKS")?!!T.LINE_BREAKS:Tde(T,b)===!1&&tS(b,T.PATTERN)))});let p,m,g,y;r("Misc Mapping #2",()=>{p=rt(n,xde),m=rt(a,AYe),g=Jr(n,(b,T)=>{let S=T.GROUP;return xi(S)&&S!==Zn.SKIPPED&&(b[S]=[]),b},{}),y=rt(a,(b,T)=>({pattern:a[T],longerAlt:u[T],canLineTerminator:d[T],isCustom:p[T],short:m[T],group:l[T],push:h[T],pop:f[T],tokenTypeIdx:s[T],tokenType:n[T]}))});let v=!0,x=[];return e.safeMode||r("First Char Optimization",()=>{x=Jr(n,(b,T,S)=>{if(typeof T.PATTERN=="string"){let w=T.PATTERN.charCodeAt(0),k=Yc(w);XO(b,k,y[S])}else if(Bt(T.START_CHARS_HINT)){let w;Ae(T.START_CHARS_HINT,k=>{let C=typeof k=="string"?k.charCodeAt(0):k,A=Yc(C);w!==A&&(w=A,XO(b,A,y[S]))})}else if(Uo(T.PATTERN))if(T.PATTERN.unicode)v=!1,e.ensureOptimizations&&f1(`${tb} Unable to analyze < ${T.PATTERN.toString()} > pattern. + The regexp unicode flag is not currently supported by the regexp-to-ast library. + This will disable the lexer's first char optimizations. + For details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#UNICODE_OPTIMIZE`);else{let w=ude(T.PATTERN,e.ensureOptimizations);mr(w)&&(v=!1),Ae(w,k=>{XO(b,k,y[S])})}else e.ensureOptimizations&&f1(`${tb} TokenType: <${T.name}> is using a custom token pattern without providing parameter. + This will disable the lexer's first char optimizations. + For details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#CUSTOM_OPTIMIZE`),v=!1;return b},[])}),{emptyGroups:g,patternIdxToConfig:y,charCodeToPatternIdxToConfig:x,hasCustom:i,canBeOptimized:v}}function mde(t,e){let r=[],n=dYe(t);r=r.concat(n.errors);let i=pYe(n.valid),a=i.valid;return r=r.concat(i.errors),r=r.concat(fYe(a)),r=r.concat(wYe(a)),r=r.concat(kYe(a,e)),r=r.concat(EYe(a)),r}function fYe(t){let e=[],r=Zr(t,n=>Uo(n[Gp]));return e=e.concat(gYe(r)),e=e.concat(xYe(r)),e=e.concat(bYe(r)),e=e.concat(TYe(r)),e=e.concat(yYe(r)),e}function dYe(t){let e=Zr(t,i=>!Ft(i,Gp)),r=rt(e,i=>({message:"Token Type: ->"+i.name+"<- missing static 'PATTERN' property",type:Qn.MISSING_PATTERN,tokenTypes:[i]})),n=lf(t,e);return{errors:r,valid:n}}function pYe(t){let e=Zr(t,i=>{let a=i[Gp];return!Uo(a)&&!Si(a)&&!Ft(a,"exec")&&!xi(a)}),r=rt(e,i=>({message:"Token Type: ->"+i.name+"<- static 'PATTERN' can only be a RegExp, a Function matching the {CustomPatternMatcherFunc} type or an Object matching the {ICustomPattern} interface.",type:Qn.INVALID_PATTERN,tokenTypes:[i]})),n=lf(t,e);return{errors:r,valid:n}}function gYe(t){class e extends Wc{static{o(this,"EndAnchorFinder")}constructor(){super(...arguments),this.found=!1}visitEndAnchor(a){this.found=!0}}let r=Zr(t,i=>{let a=i.PATTERN;try{let s=m1(a),l=new e;return l.visit(s),l.found}catch{return mYe.test(a.source)}});return rt(r,i=>({message:`Unexpected RegExp Anchor Error: + Token Type: ->`+i.name+`<- static 'PATTERN' cannot contain end of input anchor '$' + See chevrotain.io/docs/guide/resolving_lexer_errors.html#ANCHORS for details.`,type:Qn.EOI_ANCHOR_FOUND,tokenTypes:[i]}))}function yYe(t){let e=Zr(t,n=>n.PATTERN.test(""));return rt(e,n=>({message:"Token Type: ->"+n.name+"<- static 'PATTERN' must not match an empty string",type:Qn.EMPTY_MATCH_PATTERN,tokenTypes:[n]}))}function xYe(t){class e extends Wc{static{o(this,"StartAnchorFinder")}constructor(){super(...arguments),this.found=!1}visitStartAnchor(a){this.found=!0}}let r=Zr(t,i=>{let a=i.PATTERN;try{let s=m1(a),l=new e;return l.visit(s),l.found}catch{return vYe.test(a.source)}});return rt(r,i=>({message:`Unexpected RegExp Anchor Error: + Token Type: ->`+i.name+`<- static 'PATTERN' cannot contain start of input anchor '^' + See https://chevrotain.io/docs/guide/resolving_lexer_errors.html#ANCHORS for details.`,type:Qn.SOI_ANCHOR_FOUND,tokenTypes:[i]}))}function bYe(t){let e=Zr(t,n=>{let i=n[Gp];return i instanceof RegExp&&(i.multiline||i.global)});return rt(e,n=>({message:"Token Type: ->"+n.name+"<- static 'PATTERN' may NOT contain global('g') or multiline('m')",type:Qn.UNSUPPORTED_FLAGS_FOUND,tokenTypes:[n]}))}function TYe(t){let e=[],r=rt(t,a=>Jr(t,(s,l)=>(a.PATTERN.source===l.PATTERN.source&&!jn(e,l)&&l.PATTERN!==Zn.NA&&(e.push(l),s.push(l)),s),[]));r=_c(r);let n=Zr(r,a=>a.length>1);return rt(n,a=>{let s=rt(a,u=>u.name);return{message:`The same RegExp pattern ->${ea(a).PATTERN}<-has been used in all of the following Token Types: ${s.join(", ")} <-`,type:Qn.DUPLICATE_PATTERNS_FOUND,tokenTypes:a}})}function wYe(t){let e=Zr(t,n=>{if(!Ft(n,"GROUP"))return!1;let i=n.GROUP;return i!==Zn.SKIPPED&&i!==Zn.NA&&!xi(i)});return rt(e,n=>({message:"Token Type: ->"+n.name+"<- static 'GROUP' can only be Lexer.SKIPPED/Lexer.NA/A String",type:Qn.INVALID_GROUP_TYPE_FOUND,tokenTypes:[n]}))}function kYe(t,e){let r=Zr(t,i=>i.PUSH_MODE!==void 0&&!jn(e,i.PUSH_MODE));return rt(r,i=>({message:`Token Type: ->${i.name}<- static 'PUSH_MODE' value cannot refer to a Lexer Mode ->${i.PUSH_MODE}<-which does not exist`,type:Qn.PUSH_MODE_DOES_NOT_EXIST,tokenTypes:[i]}))}function EYe(t){let e=[],r=Jr(t,(n,i,a)=>{let s=i.PATTERN;return s===Zn.NA||(xi(s)?n.push({str:s,idx:a,tokenType:i}):Uo(s)&&CYe(s)&&n.push({str:s.source,idx:a,tokenType:i})),n},[]);return Ae(t,(n,i)=>{Ae(r,({str:a,idx:s,tokenType:l})=>{if(i${l.name}<- can never be matched. +Because it appears AFTER the Token Type ->${n.name}<-in the lexer's definition. +See https://chevrotain.io/docs/guide/resolving_lexer_errors.html#UNREACHABLE`;e.push({message:u,type:Qn.UNREACHABLE_PATTERN,tokenTypes:[n,l]})}})}),e}function SYe(t,e){if(Uo(e)){let r=e.exec(t);return r!==null&&r.index===0}else{if(Si(e))return e(t,0,[],{});if(Ft(e,"exec"))return e.exec(t,0,[],{});if(typeof e=="string")return e===t;throw Error("non exhaustive match")}}function CYe(t){return os([".","\\","[","]","|","^","$","(",")","?","*","+","{"],r=>t.source.indexOf(r)!==-1)===void 0}function fde(t){let e=t.ignoreCase?"i":"";return new RegExp(`^(?:${t.source})`,e)}function dde(t){let e=t.ignoreCase?"iy":"y";return new RegExp(`${t.source}`,e)}function gde(t,e,r){let n=[];return Ft(t,y1)||n.push({message:"A MultiMode Lexer cannot be initialized without a <"+y1+`> property in its definition +`,type:Qn.MULTI_MODE_LEXER_WITHOUT_DEFAULT_MODE}),Ft(t,rS)||n.push({message:"A MultiMode Lexer cannot be initialized without a <"+rS+`> property in its definition +`,type:Qn.MULTI_MODE_LEXER_WITHOUT_MODES_PROPERTY}),Ft(t,rS)&&Ft(t,y1)&&!Ft(t.modes,t.defaultMode)&&n.push({message:`A MultiMode Lexer cannot be initialized with a ${y1}: <${t.defaultMode}>which does not exist +`,type:Qn.MULTI_MODE_LEXER_DEFAULT_MODE_VALUE_DOES_NOT_EXIST}),Ft(t,rS)&&Ae(t.modes,(i,a)=>{Ae(i,(s,l)=>{if(xr(s))n.push({message:`A Lexer cannot be initialized using an undefined Token Type. Mode:<${a}> at index: <${l}> +`,type:Qn.LEXER_DEFINITION_CANNOT_CONTAIN_UNDEFINED});else if(Ft(s,"LONGER_ALT")){let u=Bt(s.LONGER_ALT)?s.LONGER_ALT:[s.LONGER_ALT];Ae(u,h=>{!xr(h)&&!jn(i,h)&&n.push({message:`A MultiMode Lexer cannot be initialized with a longer_alt <${h.name}> on token <${s.name}> outside of mode <${a}> +`,type:Qn.MULTI_MODE_LEXER_LONGER_ALT_NOT_IN_CURRENT_MODE})})}})}),n}function yde(t,e,r){let n=[],i=!1,a=_c(Qr(kr(t.modes))),s=cf(a,u=>u[Gp]===Zn.NA),l=wde(r);return e&&Ae(s,u=>{let h=Tde(u,l);if(h!==!1){let d={message:_Ye(u,h),type:h.issue,tokenType:u};n.push(d)}else Ft(u,"LINE_BREAKS")?u.LINE_BREAKS===!0&&(i=!0):tS(l,u.PATTERN)&&(i=!0)}),e&&!i&&n.push({message:`Warning: No LINE_BREAKS Found. + This Lexer has been defined to track line and column information, + But none of the Token Types can be identified as matching a line terminator. + See https://chevrotain.io/docs/guide/resolving_lexer_errors.html#LINE_BREAKS + for details.`,type:Qn.NO_LINE_BREAKS_FLAGS}),n}function vde(t){let e={},r=qr(t);return Ae(r,n=>{let i=t[n];if(Bt(i))e[n]=[];else throw Error("non exhaustive match")}),e}function xde(t){let e=t.PATTERN;if(Uo(e))return!1;if(Si(e))return!0;if(Ft(e,"exec"))return!0;if(xi(e))return!1;throw Error("non exhaustive match")}function AYe(t){return xi(t)&&t.length===1?t.charCodeAt(0):!1}function Tde(t,e){if(Ft(t,"LINE_BREAKS"))return!1;if(Uo(t.PATTERN)){try{tS(e,t.PATTERN)}catch(r){return{issue:Qn.IDENTIFY_TERMINATOR,errMsg:r.message}}return!1}else{if(xi(t.PATTERN))return!1;if(xde(t))return{issue:Qn.CUSTOM_LINE_BREAK};throw Error("non exhaustive match")}}function _Ye(t,e){if(e.issue===Qn.IDENTIFY_TERMINATOR)return`Warning: unable to identify line terminator usage in pattern. + The problem is in the <${t.name}> Token Type + Root cause: ${e.errMsg}. + For details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#IDENTIFY_TERMINATOR`;if(e.issue===Qn.CUSTOM_LINE_BREAK)return`Warning: A Custom Token Pattern should specify the option. + The problem is in the <${t.name}> Token Type + For details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#CUSTOM_LINE_BREAK`;throw Error("non exhaustive match")}function wde(t){return rt(t,r=>xi(r)?r.charCodeAt(0):r)}function XO(t,e,r){t[e]===void 0?t[e]=[r]:t[e].push(r)}function Yc(t){return t255?255+~~(t/255):t}}var Gp,y1,rS,jO,mYe,vYe,bde,g1,nS,YO=M(()=>{"use strict";Yx();rb();Yt();d1();hde();JE();Gp="PATTERN",y1="defaultMode",rS="modes",jO=typeof new RegExp("(?:)").sticky=="boolean";o(pde,"analyzeTokenTypes");o(mde,"validatePatterns");o(fYe,"validateRegExpPattern");o(dYe,"findMissingPatterns");o(pYe,"findInvalidPatterns");mYe=/[^\\][$]/;o(gYe,"findEndOfInputAnchor");o(yYe,"findEmptyMatchRegExps");vYe=/[^\\[][\^]|^\^/;o(xYe,"findStartOfInputAnchor");o(bYe,"findUnsupportedFlags");o(TYe,"findDuplicatePatterns");o(wYe,"findInvalidGroupType");o(kYe,"findModesThatDoNotExist");o(EYe,"findUnreachablePatterns");o(SYe,"testTokenType");o(CYe,"noMetaChar");o(fde,"addStartOfInput");o(dde,"addStickyFlag");o(gde,"performRuntimeChecks");o(yde,"performWarningRuntimeChecks");o(vde,"cloneEmptyGroups");o(xde,"isCustomPattern");o(AYe,"isShortPattern");bde={test:o(function(t){let e=t.length;for(let r=this.lastIndex;r{r.isParent=r.categoryMatches.length>0})}function LYe(t){let e=ln(t),r=t,n=!0;for(;n;){r=_c(Qr(rt(r,a=>a.CATEGORIES)));let i=lf(r,e);e=e.concat(i),mr(i)?n=!1:r=i}return e}function RYe(t){Ae(t,e=>{KO(e)||(Sde[kde]=e,e.tokenTypeIdx=kde++),Ede(e)&&!Bt(e.CATEGORIES)&&(e.CATEGORIES=[e.CATEGORIES]),Ede(e)||(e.CATEGORIES=[]),IYe(e)||(e.categoryMatches=[]),OYe(e)||(e.categoryMatchesMap={})})}function NYe(t){Ae(t,e=>{e.categoryMatches=[],Ae(e.categoryMatchesMap,(r,n)=>{e.categoryMatches.push(Sde[n].tokenTypeIdx)})})}function MYe(t){Ae(t,e=>{Cde([],e)})}function Cde(t,e){Ae(t,r=>{e.categoryMatchesMap[r.tokenTypeIdx]=!0}),Ae(e.CATEGORIES,r=>{let n=t.concat(e);jn(n,r)||Cde(n,r)})}function KO(t){return Ft(t,"tokenTypeIdx")}function Ede(t){return Ft(t,"CATEGORIES")}function IYe(t){return Ft(t,"categoryMatches")}function OYe(t){return Ft(t,"categoryMatchesMap")}function Ade(t){return Ft(t,"tokenTypeIdx")}var kde,Sde,Vp=M(()=>{"use strict";Yt();o(Xu,"tokenStructuredMatcher");o(v1,"tokenStructuredMatcherNoCategories");kde=1,Sde={};o(ju,"augmentTokenTypes");o(LYe,"expandCategories");o(RYe,"assignTokenDefaultProps");o(NYe,"assignCategoriesTokensProp");o(MYe,"assignCategoriesMapProp");o(Cde,"singleAssignCategoriesToksMap");o(KO,"hasShortKeyProperty");o(Ede,"hasCategoriesProperty");o(IYe,"hasExtendingTokensTypesProperty");o(OYe,"hasExtendingTokensTypesMapProperty");o(Ade,"isTokenType")});var x1,QO=M(()=>{"use strict";x1={buildUnableToPopLexerModeMessage(t){return`Unable to pop Lexer Mode after encountering Token ->${t.image}<- The Mode Stack is empty`},buildUnexpectedCharactersMessage(t,e,r,n,i){return`unexpected character: ->${t.charAt(e)}<- at offset: ${e}, skipped ${r} characters.`}}});var Qn,nb,Zn,rb=M(()=>{"use strict";YO();Yt();d1();Vp();QO();JE();(function(t){t[t.MISSING_PATTERN=0]="MISSING_PATTERN",t[t.INVALID_PATTERN=1]="INVALID_PATTERN",t[t.EOI_ANCHOR_FOUND=2]="EOI_ANCHOR_FOUND",t[t.UNSUPPORTED_FLAGS_FOUND=3]="UNSUPPORTED_FLAGS_FOUND",t[t.DUPLICATE_PATTERNS_FOUND=4]="DUPLICATE_PATTERNS_FOUND",t[t.INVALID_GROUP_TYPE_FOUND=5]="INVALID_GROUP_TYPE_FOUND",t[t.PUSH_MODE_DOES_NOT_EXIST=6]="PUSH_MODE_DOES_NOT_EXIST",t[t.MULTI_MODE_LEXER_WITHOUT_DEFAULT_MODE=7]="MULTI_MODE_LEXER_WITHOUT_DEFAULT_MODE",t[t.MULTI_MODE_LEXER_WITHOUT_MODES_PROPERTY=8]="MULTI_MODE_LEXER_WITHOUT_MODES_PROPERTY",t[t.MULTI_MODE_LEXER_DEFAULT_MODE_VALUE_DOES_NOT_EXIST=9]="MULTI_MODE_LEXER_DEFAULT_MODE_VALUE_DOES_NOT_EXIST",t[t.LEXER_DEFINITION_CANNOT_CONTAIN_UNDEFINED=10]="LEXER_DEFINITION_CANNOT_CONTAIN_UNDEFINED",t[t.SOI_ANCHOR_FOUND=11]="SOI_ANCHOR_FOUND",t[t.EMPTY_MATCH_PATTERN=12]="EMPTY_MATCH_PATTERN",t[t.NO_LINE_BREAKS_FLAGS=13]="NO_LINE_BREAKS_FLAGS",t[t.UNREACHABLE_PATTERN=14]="UNREACHABLE_PATTERN",t[t.IDENTIFY_TERMINATOR=15]="IDENTIFY_TERMINATOR",t[t.CUSTOM_LINE_BREAK=16]="CUSTOM_LINE_BREAK",t[t.MULTI_MODE_LEXER_LONGER_ALT_NOT_IN_CURRENT_MODE=17]="MULTI_MODE_LEXER_LONGER_ALT_NOT_IN_CURRENT_MODE"})(Qn||(Qn={}));nb={deferDefinitionErrorsHandling:!1,positionTracking:"full",lineTerminatorsPattern:/\n|\r\n?/g,lineTerminatorCharacters:[` +`,"\r"],ensureOptimizations:!1,safeMode:!1,errorMessageProvider:x1,traceInitPerf:!1,skipValidations:!1,recoveryEnabled:!0};Object.freeze(nb);Zn=class{static{o(this,"Lexer")}constructor(e,r=nb){if(this.lexerDefinition=e,this.lexerDefinitionErrors=[],this.lexerDefinitionWarning=[],this.patternIdxToConfig={},this.charCodeToPatternIdxToConfig={},this.modes=[],this.emptyGroups={},this.trackStartLines=!0,this.trackEndLines=!0,this.hasCustom=!1,this.canModeBeOptimized={},this.TRACE_INIT=(i,a)=>{if(this.traceInitPerf===!0){this.traceInitIndent++;let s=new Array(this.traceInitIndent+1).join(" ");this.traceInitIndent <${i}>`);let{time:l,value:u}=Jx(a),h=l>10?console.warn:console.log;return this.traceInitIndent time: ${l}ms`),this.traceInitIndent--,u}else return a()},typeof r=="boolean")throw Error(`The second argument to the Lexer constructor is now an ILexerConfig Object. +a boolean 2nd argument is no longer supported`);this.config=ma({},nb,r);let n=this.config.traceInitPerf;n===!0?(this.traceInitMaxIdent=1/0,this.traceInitPerf=!0):typeof n=="number"&&(this.traceInitMaxIdent=n,this.traceInitPerf=!0),this.traceInitIndent=-1,this.TRACE_INIT("Lexer Constructor",()=>{let i,a=!0;this.TRACE_INIT("Lexer Config handling",()=>{if(this.config.lineTerminatorsPattern===nb.lineTerminatorsPattern)this.config.lineTerminatorsPattern=bde;else if(this.config.lineTerminatorCharacters===nb.lineTerminatorCharacters)throw Error(`Error: Missing property on the Lexer config. + For details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#MISSING_LINE_TERM_CHARS`);if(r.safeMode&&r.ensureOptimizations)throw Error('"safeMode" and "ensureOptimizations" flags are mutually exclusive.');this.trackStartLines=/full|onlyStart/i.test(this.config.positionTracking),this.trackEndLines=/full/i.test(this.config.positionTracking),Bt(e)?i={modes:{defaultMode:ln(e)},defaultMode:y1}:(a=!1,i=ln(e))}),this.config.skipValidations===!1&&(this.TRACE_INIT("performRuntimeChecks",()=>{this.lexerDefinitionErrors=this.lexerDefinitionErrors.concat(gde(i,this.trackStartLines,this.config.lineTerminatorCharacters))}),this.TRACE_INIT("performWarningRuntimeChecks",()=>{this.lexerDefinitionWarning=this.lexerDefinitionWarning.concat(yde(i,this.trackStartLines,this.config.lineTerminatorCharacters))})),i.modes=i.modes?i.modes:{},Ae(i.modes,(l,u)=>{i.modes[u]=cf(l,h=>xr(h))});let s=qr(i.modes);if(Ae(i.modes,(l,u)=>{this.TRACE_INIT(`Mode: <${u}> processing`,()=>{if(this.modes.push(u),this.config.skipValidations===!1&&this.TRACE_INIT("validatePatterns",()=>{this.lexerDefinitionErrors=this.lexerDefinitionErrors.concat(mde(l,s))}),mr(this.lexerDefinitionErrors)){ju(l);let h;this.TRACE_INIT("analyzeTokenTypes",()=>{h=pde(l,{lineTerminatorCharacters:this.config.lineTerminatorCharacters,positionTracking:r.positionTracking,ensureOptimizations:r.ensureOptimizations,safeMode:r.safeMode,tracer:this.TRACE_INIT})}),this.patternIdxToConfig[u]=h.patternIdxToConfig,this.charCodeToPatternIdxToConfig[u]=h.charCodeToPatternIdxToConfig,this.emptyGroups=ma({},this.emptyGroups,h.emptyGroups),this.hasCustom=h.hasCustom||this.hasCustom,this.canModeBeOptimized[u]=h.canBeOptimized}})}),this.defaultMode=i.defaultMode,!mr(this.lexerDefinitionErrors)&&!this.config.deferDefinitionErrorsHandling){let u=rt(this.lexerDefinitionErrors,h=>h.message).join(`----------------------- +`);throw new Error(`Errors detected in definition of Lexer: +`+u)}Ae(this.lexerDefinitionWarning,l=>{Zx(l.message)}),this.TRACE_INIT("Choosing sub-methods implementations",()=>{if(jO?(this.chopInput=Qi,this.match=this.matchWithTest):(this.updateLastIndex=si,this.match=this.matchWithExec),a&&(this.handleModes=si),this.trackStartLines===!1&&(this.computeNewColumn=Qi),this.trackEndLines===!1&&(this.updateTokenEndLineColumnLocation=si),/full/i.test(this.config.positionTracking))this.createTokenInstance=this.createFullToken;else if(/onlyStart/i.test(this.config.positionTracking))this.createTokenInstance=this.createStartOnlyToken;else if(/onlyOffset/i.test(this.config.positionTracking))this.createTokenInstance=this.createOffsetOnlyToken;else throw Error(`Invalid config option: "${this.config.positionTracking}"`);this.hasCustom?(this.addToken=this.addTokenUsingPush,this.handlePayload=this.handlePayloadWithCustom):(this.addToken=this.addTokenUsingMemberAccess,this.handlePayload=this.handlePayloadNoCustom)}),this.TRACE_INIT("Failed Optimization Warnings",()=>{let l=Jr(this.canModeBeOptimized,(u,h,f)=>(h===!1&&u.push(f),u),[]);if(r.ensureOptimizations&&!mr(l))throw Error(`Lexer Modes: < ${l.join(", ")} > cannot be optimized. + Disable the "ensureOptimizations" lexer config flag to silently ignore this and run the lexer in an un-optimized mode. + Or inspect the console log for details on how to resolve these issues.`)}),this.TRACE_INIT("clearRegExpParserCache",()=>{ode()}),this.TRACE_INIT("toFastProperties",()=>{eb(this)})})}tokenize(e,r=this.defaultMode){if(!mr(this.lexerDefinitionErrors)){let i=rt(this.lexerDefinitionErrors,a=>a.message).join(`----------------------- +`);throw new Error(`Unable to Tokenize because Errors detected in definition of Lexer: +`+i)}return this.tokenizeInternal(e,r)}tokenizeInternal(e,r){let n,i,a,s,l,u,h,f,d,p,m,g,y,v,x,b,T=e,S=T.length,w=0,k=0,C=this.hasCustom?0:Math.floor(e.length/10),A=new Array(C),L=[],I=this.trackStartLines?1:void 0,R=this.trackStartLines?1:void 0,E=vde(this.emptyGroups),_=this.trackStartLines,D=this.config.lineTerminatorsPattern,O=0,N=[],P=[],B=[],F=[];Object.freeze(F);let V;function $(){return N}o($,"getPossiblePatternsSlow");function U(Q){let ue=Yc(Q),te=P[ue];return te===void 0?F:te}o(U,"getPossiblePatternsOptimized");let j=o(Q=>{if(B.length===1&&Q.tokenType.PUSH_MODE===void 0){let ue=this.config.errorMessageProvider.buildUnableToPopLexerModeMessage(Q);L.push({offset:Q.startOffset,line:Q.startLine,column:Q.startColumn,length:Q.image.length,message:ue})}else{B.pop();let ue=ga(B);N=this.patternIdxToConfig[ue],P=this.charCodeToPatternIdxToConfig[ue],O=N.length;let te=this.canModeBeOptimized[ue]&&this.config.safeMode===!1;P&&te?V=U:V=$}},"pop_mode");function ee(Q){B.push(Q),P=this.charCodeToPatternIdxToConfig[Q],N=this.patternIdxToConfig[Q],O=N.length,O=N.length;let ue=this.canModeBeOptimized[Q]&&this.config.safeMode===!1;P&&ue?V=U:V=$}o(ee,"push_mode"),ee.call(this,r);let q,oe=this.config.recoveryEnabled;for(;wu.length){u=s,h=f,q=ae;break}}}break}}if(u!==null){if(d=u.length,p=q.group,p!==void 0&&(m=q.tokenTypeIdx,g=this.createTokenInstance(u,w,m,q.tokenType,I,R,d),this.handlePayload(g,h),p===!1?k=this.addToken(A,k,g):E[p].push(g)),e=this.chopInput(e,d),w=w+d,R=this.computeNewColumn(R,d),_===!0&&q.canLineTerminator===!0){let re=0,J,K;D.lastIndex=0;do J=D.test(u),J===!0&&(K=D.lastIndex-1,re++);while(J===!0);re!==0&&(I=I+re,R=d-K,this.updateTokenEndLineColumnLocation(g,p,K,re,I,R,d))}this.handleModes(q,j,ee,g)}else{let re=w,J=I,K=R,ae=oe===!1;for(;ae===!1&&w{"use strict";Yt();rb();Vp();o(Ku,"tokenLabel");o(ZO,"hasTokenLabel");PYe="parent",_de="categories",Dde="label",Lde="group",Rde="push_mode",Nde="pop_mode",Mde="longer_alt",Ide="line_breaks",Ode="start_chars_hint";o(Pf,"createToken");o(BYe,"createTokenInternal");yo=Pf({name:"EOF",pattern:Zn.NA});ju([yo]);o(Qu,"createTokenInstance");o(ib,"tokenMatcher")});var Zu,Pde,Gl,b1=M(()=>{"use strict";Up();Yt();ps();Zu={buildMismatchTokenMessage({expected:t,actual:e,previous:r,ruleName:n}){return`Expecting ${ZO(t)?`--> ${Ku(t)} <--`:`token of type --> ${t.name} <--`} but found --> '${e.image}' <--`},buildNotAllInputParsedMessage({firstRedundant:t,ruleName:e}){return"Redundant input, expecting EOF but found: "+t.image},buildNoViableAltMessage({expectedPathsPerAlt:t,actual:e,previous:r,customUserDescription:n,ruleName:i}){let a="Expecting: ",l=` +but found: '`+ea(e).image+"'";if(n)return a+n+l;{let u=Jr(t,(p,m)=>p.concat(m),[]),h=rt(u,p=>`[${rt(p,m=>Ku(m)).join(", ")}]`),d=`one of these possible Token sequences: +${rt(h,(p,m)=>` ${m+1}. ${p}`).join(` +`)}`;return a+d+l}},buildEarlyExitMessage({expectedIterationPaths:t,actual:e,customUserDescription:r,ruleName:n}){let i="Expecting: ",s=` +but found: '`+ea(e).image+"'";if(r)return i+r+s;{let u=`expecting at least one iteration which starts with one of these possible Token sequences:: + <${rt(t,h=>`[${rt(h,f=>Ku(f)).join(",")}]`).join(" ,")}>`;return i+u+s}}};Object.freeze(Zu);Pde={buildRuleNotFoundError(t,e){return"Invalid grammar, reference to a rule which is not defined: ->"+e.nonTerminalName+`<- +inside top level rule: ->`+t.name+"<-"}},Gl={buildDuplicateFoundError(t,e){function r(f){return f instanceof Ar?f.terminalType.name:f instanceof fn?f.nonTerminalName:""}o(r,"getExtraProductionArgument");let n=t.name,i=ea(e),a=i.idx,s=Xs(i),l=r(i),u=a>0,h=`->${s}${u?a:""}<- ${l?`with argument: ->${l}<-`:""} + appears more than once (${e.length} times) in the top level rule: ->${n}<-. + For further details see: https://chevrotain.io/docs/FAQ.html#NUMERICAL_SUFFIXES + `;return h=h.replace(/[ \t]+/g," "),h=h.replace(/\s\s+/g,` +`),h},buildNamespaceConflictError(t){return`Namespace conflict found in grammar. +The grammar has both a Terminal(Token) and a Non-Terminal(Rule) named: <${t.name}>. +To resolve this make sure each Terminal and Non-Terminal names are unique +This is easy to accomplish by using the convention that Terminal names start with an uppercase letter +and Non-Terminal names start with a lower case letter.`},buildAlternationPrefixAmbiguityError(t){let e=rt(t.prefixPath,i=>Ku(i)).join(", "),r=t.alternation.idx===0?"":t.alternation.idx;return`Ambiguous alternatives: <${t.ambiguityIndices.join(" ,")}> due to common lookahead prefix +in inside <${t.topLevelRule.name}> Rule, +<${e}> may appears as a prefix path in all these alternatives. +See: https://chevrotain.io/docs/guide/resolving_grammar_errors.html#COMMON_PREFIX +For Further details.`},buildAlternationAmbiguityError(t){let e=rt(t.prefixPath,i=>Ku(i)).join(", "),r=t.alternation.idx===0?"":t.alternation.idx,n=`Ambiguous Alternatives Detected: <${t.ambiguityIndices.join(" ,")}> in inside <${t.topLevelRule.name}> Rule, +<${e}> may appears as a prefix path in all these alternatives. +`;return n=n+`See: https://chevrotain.io/docs/guide/resolving_grammar_errors.html#AMBIGUOUS_ALTERNATIVES +For Further details.`,n},buildEmptyRepetitionError(t){let e=Xs(t.repetition);return t.repetition.idx!==0&&(e+=t.repetition.idx),`The repetition <${e}> within Rule <${t.topLevelRule.name}> can never consume any tokens. +This could lead to an infinite loop.`},buildTokenNameError(t){return"deprecated"},buildEmptyAlternationError(t){return`Ambiguous empty alternative: <${t.emptyChoiceIdx+1}> in inside <${t.topLevelRule.name}> Rule. +Only the last alternative may be an empty alternative.`},buildTooManyAlternativesError(t){return`An Alternation cannot have more than 256 alternatives: + inside <${t.topLevelRule.name}> Rule. + has ${t.alternation.definition.length+1} alternatives.`},buildLeftRecursionError(t){let e=t.topLevelRule.name,r=rt(t.leftRecursionPath,a=>a.name),n=`${e} --> ${r.concat([e]).join(" --> ")}`;return`Left Recursion found in grammar. +rule: <${e}> can be invoked from itself (directly or indirectly) +without consuming any Tokens. The grammar path that causes this is: + ${n} + To fix this refactor your grammar to remove the left recursion. +see: https://en.wikipedia.org/wiki/LL_parser#Left_factoring.`},buildInvalidRuleNameError(t){return"deprecated"},buildDuplicateRuleNameError(t){let e;return t.topLevelRule instanceof fs?e=t.topLevelRule.name:e=t.topLevelRule,`Duplicate definition, rule: ->${e}<- is already defined in the grammar: ->${t.grammarName}<-`}}});function Bde(t,e){let r=new JO(t,e);return r.resolveRefs(),r.errors}var JO,Fde=M(()=>{"use strict";js();Yt();ps();o(Bde,"resolveGrammar");JO=class extends ds{static{o(this,"GastRefResolverVisitor")}constructor(e,r){super(),this.nameToTopRule=e,this.errMsgProvider=r,this.errors=[]}resolveRefs(){Ae(kr(this.nameToTopRule),e=>{this.currTopLevel=e,e.accept(this)})}visitNonTerminal(e){let r=this.nameToTopRule[e.nonTerminalName];if(r)e.referencedRule=r;else{let n=this.errMsgProvider.buildRuleNotFoundError(this.currTopLevel,e);this.errors.push({message:n,type:Gi.UNRESOLVED_SUBRULE_REF,ruleName:this.currTopLevel.name,unresolvedRefName:e.nonTerminalName})}}}});function oS(t,e,r=[]){r=ln(r);let n=[],i=0;function a(l){return l.concat(yi(t,i+1))}o(a,"remainingPathWith");function s(l){let u=oS(a(l),e,r);return n.concat(u)}for(o(s,"getAlternativesForProd");r.length{mr(u.definition)===!1&&(n=s(u.definition))}),n;if(l instanceof Ar)r.push(l.terminalType);else throw Error("non exhaustive match")}i++}return n.push({partialPath:r,suffixDef:yi(t,i)}),n}function lS(t,e,r,n){let i="EXIT_NONE_TERMINAL",a=[i],s="EXIT_ALTERNATIVE",l=!1,u=e.length,h=u-n-1,f=[],d=[];for(d.push({idx:-1,def:t,ruleStack:[],occurrenceStack:[]});!mr(d);){let p=d.pop();if(p===s){l&&ga(d).idx<=h&&d.pop();continue}let m=p.def,g=p.idx,y=p.ruleStack,v=p.occurrenceStack;if(mr(m))continue;let x=m[0];if(x===i){let b={idx:g,def:yi(m),ruleStack:Bu(y),occurrenceStack:Bu(v)};d.push(b)}else if(x instanceof Ar)if(g=0;b--){let T=x.definition[b],S={idx:g,def:T.definition.concat(yi(m)),ruleStack:y,occurrenceStack:v};d.push(S),d.push(s)}else if(x instanceof Pn)d.push({idx:g,def:x.definition.concat(yi(m)),ruleStack:y,occurrenceStack:v});else if(x instanceof fs)d.push(FYe(x,g,y,v));else throw Error("non exhaustive match")}return f}function FYe(t,e,r,n){let i=ln(r);i.push(t.name);let a=ln(n);return a.push(1),{idx:e,def:t.definition,ruleStack:i,occurrenceStack:a}}var eP,iS,T1,aS,ab,sS,sb,ob=M(()=>{"use strict";Yt();GO();KE();ps();eP=class extends Yu{static{o(this,"AbstractNextPossibleTokensWalker")}constructor(e,r){super(),this.topProd=e,this.path=r,this.possibleTokTypes=[],this.nextProductionName="",this.nextProductionOccurrence=0,this.found=!1,this.isAtEndOfPath=!1}startWalking(){if(this.found=!1,this.path.ruleStack[0]!==this.topProd.name)throw Error("The path does not start with the walker's top Rule!");return this.ruleStack=ln(this.path.ruleStack).reverse(),this.occurrenceStack=ln(this.path.occurrenceStack).reverse(),this.ruleStack.pop(),this.occurrenceStack.pop(),this.updateExpectedNext(),this.walk(this.topProd),this.possibleTokTypes}walk(e,r=[]){this.found||super.walk(e,r)}walkProdRef(e,r,n){if(e.referencedRule.name===this.nextProductionName&&e.idx===this.nextProductionOccurrence){let i=r.concat(n);this.updateExpectedNext(),this.walk(e.referencedRule,i)}}updateExpectedNext(){mr(this.ruleStack)?(this.nextProductionName="",this.nextProductionOccurrence=0,this.isAtEndOfPath=!0):(this.nextProductionName=this.ruleStack.pop(),this.nextProductionOccurrence=this.occurrenceStack.pop())}},iS=class extends eP{static{o(this,"NextAfterTokenWalker")}constructor(e,r){super(e,r),this.path=r,this.nextTerminalName="",this.nextTerminalOccurrence=0,this.nextTerminalName=this.path.lastTok.name,this.nextTerminalOccurrence=this.path.lastTokOccurrence}walkTerminal(e,r,n){if(this.isAtEndOfPath&&e.terminalType.name===this.nextTerminalName&&e.idx===this.nextTerminalOccurrence&&!this.found){let i=r.concat(n),a=new Pn({definition:i});this.possibleTokTypes=zp(a),this.found=!0}}},T1=class extends Yu{static{o(this,"AbstractNextTerminalAfterProductionWalker")}constructor(e,r){super(),this.topRule=e,this.occurrence=r,this.result={token:void 0,occurrence:void 0,isEndOfRule:void 0}}startWalking(){return this.walk(this.topRule),this.result}},aS=class extends T1{static{o(this,"NextTerminalAfterManyWalker")}walkMany(e,r,n){if(e.idx===this.occurrence){let i=ea(r.concat(n));this.result.isEndOfRule=i===void 0,i instanceof Ar&&(this.result.token=i.terminalType,this.result.occurrence=i.idx)}else super.walkMany(e,r,n)}},ab=class extends T1{static{o(this,"NextTerminalAfterManySepWalker")}walkManySep(e,r,n){if(e.idx===this.occurrence){let i=ea(r.concat(n));this.result.isEndOfRule=i===void 0,i instanceof Ar&&(this.result.token=i.terminalType,this.result.occurrence=i.idx)}else super.walkManySep(e,r,n)}},sS=class extends T1{static{o(this,"NextTerminalAfterAtLeastOneWalker")}walkAtLeastOne(e,r,n){if(e.idx===this.occurrence){let i=ea(r.concat(n));this.result.isEndOfRule=i===void 0,i instanceof Ar&&(this.result.token=i.terminalType,this.result.occurrence=i.idx)}else super.walkAtLeastOne(e,r,n)}},sb=class extends T1{static{o(this,"NextTerminalAfterAtLeastOneSepWalker")}walkAtLeastOneSep(e,r,n){if(e.idx===this.occurrence){let i=ea(r.concat(n));this.result.isEndOfRule=i===void 0,i instanceof Ar&&(this.result.token=i.terminalType,this.result.occurrence=i.idx)}else super.walkAtLeastOneSep(e,r,n)}};o(oS,"possiblePathsFrom");o(lS,"nextPossibleTokensAfter");o(FYe,"expandTopLevelRule")});function lb(t){if(t instanceof dn||t==="Option")return Jn.OPTION;if(t instanceof zr||t==="Repetition")return Jn.REPETITION;if(t instanceof Bn||t==="RepetitionMandatory")return Jn.REPETITION_MANDATORY;if(t instanceof Fn||t==="RepetitionMandatoryWithSeparator")return Jn.REPETITION_MANDATORY_WITH_SEPARATOR;if(t instanceof _n||t==="RepetitionWithSeparator")return Jn.REPETITION_WITH_SEPARATOR;if(t instanceof Dn||t==="Alternation")return Jn.ALTERNATION;throw Error("non exhaustive match")}function uS(t){let{occurrence:e,rule:r,prodType:n,maxLookahead:i}=t,a=lb(n);return a===Jn.ALTERNATION?w1(e,r,i):k1(e,r,a,i)}function zde(t,e,r,n,i,a){let s=w1(t,e,r),l=Wde(s)?v1:Xu;return a(s,n,l,i)}function Gde(t,e,r,n,i,a){let s=k1(t,e,i,r),l=Wde(s)?v1:Xu;return a(s[0],l,n)}function Vde(t,e,r,n){let i=t.length,a=Ba(t,s=>Ba(s,l=>l.length===1));if(e)return function(s){let l=rt(s,u=>u.GATE);for(let u=0;uQr(u)),l=Jr(s,(u,h,f)=>(Ae(h,d=>{Ft(u,d.tokenTypeIdx)||(u[d.tokenTypeIdx]=f),Ae(d.categoryMatches,p=>{Ft(u,p)||(u[p]=f)})}),u),{});return function(){let u=this.LA(1);return l[u.tokenTypeIdx]}}else return function(){for(let s=0;sa.length===1),i=t.length;if(n&&!r){let a=Qr(t);if(a.length===1&&mr(a[0].categoryMatches)){let l=a[0].tokenTypeIdx;return function(){return this.LA(1).tokenTypeIdx===l}}else{let s=Jr(a,(l,u,h)=>(l[u.tokenTypeIdx]=!0,Ae(u.categoryMatches,f=>{l[f]=!0}),l),[]);return function(){let l=this.LA(1);return s[l.tokenTypeIdx]===!0}}}else return function(){e:for(let a=0;aoS([s],1)),n=$de(r.length),i=rt(r,s=>{let l={};return Ae(s,u=>{let h=tP(u.partialPath);Ae(h,f=>{l[f]=!0})}),l}),a=r;for(let s=1;s<=e;s++){let l=a;a=$de(l.length);for(let u=0;u{let x=tP(v.partialPath);Ae(x,b=>{i[u][b]=!0})})}}}}return n}function w1(t,e,r,n){let i=new cS(t,Jn.ALTERNATION,n);return e.accept(i),Hde(i.result,r)}function k1(t,e,r,n){let i=new cS(t,r);e.accept(i);let a=i.result,l=new rP(e,t,r).startWalking(),u=new Pn({definition:a}),h=new Pn({definition:l});return Hde([u,h],n)}function hS(t,e){e:for(let r=0;r{let i=e[n];return r===i||i.categoryMatchesMap[r.tokenTypeIdx]})}function Wde(t){return Ba(t,e=>Ba(e,r=>Ba(r,n=>mr(n.categoryMatches))))}var Jn,rP,cS,E1=M(()=>{"use strict";Yt();ob();KE();Vp();ps();(function(t){t[t.OPTION=0]="OPTION",t[t.REPETITION=1]="REPETITION",t[t.REPETITION_MANDATORY=2]="REPETITION_MANDATORY",t[t.REPETITION_MANDATORY_WITH_SEPARATOR=3]="REPETITION_MANDATORY_WITH_SEPARATOR",t[t.REPETITION_WITH_SEPARATOR=4]="REPETITION_WITH_SEPARATOR",t[t.ALTERNATION=5]="ALTERNATION"})(Jn||(Jn={}));o(lb,"getProdType");o(uS,"getLookaheadPaths");o(zde,"buildLookaheadFuncForOr");o(Gde,"buildLookaheadFuncForOptionalProd");o(Vde,"buildAlternativesLookAheadFunc");o(Ude,"buildSingleAlternativeLookaheadFunction");rP=class extends Yu{static{o(this,"RestDefinitionFinderWalker")}constructor(e,r,n){super(),this.topProd=e,this.targetOccurrence=r,this.targetProdType=n}startWalking(){return this.walk(this.topProd),this.restDef}checkIsTarget(e,r,n,i){return e.idx===this.targetOccurrence&&this.targetProdType===r?(this.restDef=n.concat(i),!0):!1}walkOption(e,r,n){this.checkIsTarget(e,Jn.OPTION,r,n)||super.walkOption(e,r,n)}walkAtLeastOne(e,r,n){this.checkIsTarget(e,Jn.REPETITION_MANDATORY,r,n)||super.walkOption(e,r,n)}walkAtLeastOneSep(e,r,n){this.checkIsTarget(e,Jn.REPETITION_MANDATORY_WITH_SEPARATOR,r,n)||super.walkOption(e,r,n)}walkMany(e,r,n){this.checkIsTarget(e,Jn.REPETITION,r,n)||super.walkOption(e,r,n)}walkManySep(e,r,n){this.checkIsTarget(e,Jn.REPETITION_WITH_SEPARATOR,r,n)||super.walkOption(e,r,n)}},cS=class extends ds{static{o(this,"InsideDefinitionFinderVisitor")}constructor(e,r,n){super(),this.targetOccurrence=e,this.targetProdType=r,this.targetRef=n,this.result=[]}checkIsTarget(e,r){e.idx===this.targetOccurrence&&this.targetProdType===r&&(this.targetRef===void 0||e===this.targetRef)&&(this.result=e.definition)}visitOption(e){this.checkIsTarget(e,Jn.OPTION)}visitRepetition(e){this.checkIsTarget(e,Jn.REPETITION)}visitRepetitionMandatory(e){this.checkIsTarget(e,Jn.REPETITION_MANDATORY)}visitRepetitionMandatoryWithSeparator(e){this.checkIsTarget(e,Jn.REPETITION_MANDATORY_WITH_SEPARATOR)}visitRepetitionWithSeparator(e){this.checkIsTarget(e,Jn.REPETITION_WITH_SEPARATOR)}visitAlternation(e){this.checkIsTarget(e,Jn.ALTERNATION)}};o($de,"initializeArrayOfArrays");o(tP,"pathToHashKeys");o($Ye,"isUniquePrefixHash");o(Hde,"lookAheadSequenceFromAlternatives");o(w1,"getLookaheadPathsForOr");o(k1,"getLookaheadPathsForOptionalProd");o(hS,"containsPath");o(qde,"isStrictPrefixOfPath");o(Wde,"areTokenCategoriesNotUsed")});function Yde(t){let e=t.lookaheadStrategy.validate({rules:t.rules,tokenTypes:t.tokenTypes,grammarName:t.grammarName});return rt(e,r=>Object.assign({type:Gi.CUSTOM_LOOKAHEAD_VALIDATION},r))}function Xde(t,e,r,n){let i=ya(t,u=>zYe(u,r)),a=WYe(t,e,r),s=ya(t,u=>UYe(u,r)),l=ya(t,u=>VYe(u,t,n,r));return i.concat(a,s,l)}function zYe(t,e){let r=new nP;t.accept(r);let n=r.allProductions,i=DR(n,GYe),a=Vs(i,l=>l.length>1);return rt(kr(a),l=>{let u=ea(l),h=e.buildDuplicateFoundError(t,l),f=Xs(u),d={message:h,type:Gi.DUPLICATE_PRODUCTIONS,ruleName:t.name,dslName:f,occurrence:u.idx},p=jde(u);return p&&(d.parameter=p),d})}function GYe(t){return`${Xs(t)}_#_${t.idx}_#_${jde(t)}`}function jde(t){return t instanceof Ar?t.terminalType.name:t instanceof fn?t.nonTerminalName:""}function VYe(t,e,r,n){let i=[];if(Jr(e,(s,l)=>l.name===t.name?s+1:s,0)>1){let s=n.buildDuplicateRuleNameError({topLevelRule:t,grammarName:r});i.push({message:s,type:Gi.DUPLICATE_RULE_NAME,ruleName:t.name})}return i}function Kde(t,e,r){let n=[],i;return jn(e,t)||(i=`Invalid rule override, rule: ->${t}<- cannot be overridden in the grammar: ->${r}<-as it is not defined in any of the super grammars `,n.push({message:i,type:Gi.INVALID_RULE_OVERRIDE,ruleName:t})),n}function aP(t,e,r,n=[]){let i=[],a=fS(e.definition);if(mr(a))return[];{let s=t.name;jn(a,t)&&i.push({message:r.buildLeftRecursionError({topLevelRule:t,leftRecursionPath:n}),type:Gi.LEFT_RECURSION,ruleName:s});let u=lf(a,n.concat([t])),h=ya(u,f=>{let d=ln(n);return d.push(f),aP(t,f,r,d)});return i.concat(h)}}function fS(t){let e=[];if(mr(t))return e;let r=ea(t);if(r instanceof fn)e.push(r.referencedRule);else if(r instanceof Pn||r instanceof dn||r instanceof Bn||r instanceof Fn||r instanceof _n||r instanceof zr)e=e.concat(fS(r.definition));else if(r instanceof Dn)e=Qr(rt(r.definition,a=>fS(a.definition)));else if(!(r instanceof Ar))throw Error("non exhaustive match");let n=$p(r),i=t.length>1;if(n&&i){let a=yi(t);return e.concat(fS(a))}else return e}function Qde(t,e){let r=new cb;t.accept(r);let n=r.alternations;return ya(n,a=>{let s=Bu(a.definition);return ya(s,(l,u)=>{let h=lS([l],[],Xu,1);return mr(h)?[{message:e.buildEmptyAlternationError({topLevelRule:t,alternation:a,emptyChoiceIdx:u}),type:Gi.NONE_LAST_EMPTY_ALT,ruleName:t.name,occurrence:a.idx,alternative:u+1}]:[]})})}function Zde(t,e,r){let n=new cb;t.accept(n);let i=n.alternations;return i=cf(i,s=>s.ignoreAmbiguities===!0),ya(i,s=>{let l=s.idx,u=s.maxLookahead||e,h=w1(l,t,u,s),f=HYe(h,s,t,r),d=qYe(h,s,t,r);return f.concat(d)})}function UYe(t,e){let r=new cb;t.accept(r);let n=r.alternations;return ya(n,a=>a.definition.length>255?[{message:e.buildTooManyAlternativesError({topLevelRule:t,alternation:a}),type:Gi.TOO_MANY_ALTS,ruleName:t.name,occurrence:a.idx}]:[])}function Jde(t,e,r){let n=[];return Ae(t,i=>{let a=new iP;i.accept(a);let s=a.allProductions;Ae(s,l=>{let u=lb(l),h=l.maxLookahead||e,f=l.idx,p=k1(f,i,u,h)[0];if(mr(Qr(p))){let m=r.buildEmptyRepetitionError({topLevelRule:i,repetition:l});n.push({message:m,type:Gi.NO_NON_EMPTY_LOOKAHEAD,ruleName:i.name})}})}),n}function HYe(t,e,r,n){let i=[],a=Jr(t,(l,u,h)=>(e.definition[h].ignoreAmbiguities===!0||Ae(u,f=>{let d=[h];Ae(t,(p,m)=>{h!==m&&hS(p,f)&&e.definition[m].ignoreAmbiguities!==!0&&d.push(m)}),d.length>1&&!hS(i,f)&&(i.push(f),l.push({alts:d,path:f}))}),l),[]);return rt(a,l=>{let u=rt(l.alts,f=>f+1);return{message:n.buildAlternationAmbiguityError({topLevelRule:r,alternation:e,ambiguityIndices:u,prefixPath:l.path}),type:Gi.AMBIGUOUS_ALTS,ruleName:r.name,occurrence:e.idx,alternatives:l.alts}})}function qYe(t,e,r,n){let i=Jr(t,(s,l,u)=>{let h=rt(l,f=>({idx:u,path:f}));return s.concat(h)},[]);return _c(ya(i,s=>{if(e.definition[s.idx].ignoreAmbiguities===!0)return[];let u=s.idx,h=s.path,f=Zr(i,p=>e.definition[p.idx].ignoreAmbiguities!==!0&&p.idx{let m=[p.idx+1,u+1],g=e.idx===0?"":e.idx;return{message:n.buildAlternationPrefixAmbiguityError({topLevelRule:r,alternation:e,ambiguityIndices:m,prefixPath:p.path}),type:Gi.AMBIGUOUS_PREFIX_ALTS,ruleName:r.name,occurrence:g,alternatives:m}})}))}function WYe(t,e,r){let n=[],i=rt(e,a=>a.name);return Ae(t,a=>{let s=a.name;if(jn(i,s)){let l=r.buildNamespaceConflictError(a);n.push({message:l,type:Gi.CONFLICT_TOKENS_RULES_NAMESPACE,ruleName:s})}}),n}var nP,cb,iP,ub=M(()=>{"use strict";Yt();js();ps();E1();ob();Vp();o(Yde,"validateLookahead");o(Xde,"validateGrammar");o(zYe,"validateDuplicateProductions");o(GYe,"identifyProductionForDuplicates");o(jde,"getExtraProductionArgument");nP=class extends ds{static{o(this,"OccurrenceValidationCollector")}constructor(){super(...arguments),this.allProductions=[]}visitNonTerminal(e){this.allProductions.push(e)}visitOption(e){this.allProductions.push(e)}visitRepetitionWithSeparator(e){this.allProductions.push(e)}visitRepetitionMandatory(e){this.allProductions.push(e)}visitRepetitionMandatoryWithSeparator(e){this.allProductions.push(e)}visitRepetition(e){this.allProductions.push(e)}visitAlternation(e){this.allProductions.push(e)}visitTerminal(e){this.allProductions.push(e)}};o(VYe,"validateRuleDoesNotAlreadyExist");o(Kde,"validateRuleIsOverridden");o(aP,"validateNoLeftRecursion");o(fS,"getFirstNoneTerminal");cb=class extends ds{static{o(this,"OrCollector")}constructor(){super(...arguments),this.alternations=[]}visitAlternation(e){this.alternations.push(e)}};o(Qde,"validateEmptyOrAlternative");o(Zde,"validateAmbiguousAlternationAlternatives");iP=class extends ds{static{o(this,"RepetitionCollector")}constructor(){super(...arguments),this.allProductions=[]}visitRepetitionWithSeparator(e){this.allProductions.push(e)}visitRepetitionMandatory(e){this.allProductions.push(e)}visitRepetitionMandatoryWithSeparator(e){this.allProductions.push(e)}visitRepetition(e){this.allProductions.push(e)}};o(UYe,"validateTooManyAlts");o(Jde,"validateSomeNonEmptyLookaheadPath");o(HYe,"checkAlternativesAmbiguities");o(qYe,"checkPrefixAlternativesAmbiguities");o(WYe,"checkTerminalAndNoneTerminalsNameSpace")});function epe(t){let e=of(t,{errMsgProvider:Pde}),r={};return Ae(t.rules,n=>{r[n.name]=n}),Bde(r,e.errMsgProvider)}function tpe(t){return t=of(t,{errMsgProvider:Gl}),Xde(t.rules,t.tokenTypes,t.errMsgProvider,t.grammarName)}var rpe=M(()=>{"use strict";Yt();Fde();ub();b1();o(epe,"resolveGrammar");o(tpe,"validateGrammar")});function Bf(t){return jn(ope,t.name)}var npe,ipe,ape,spe,ope,S1,Hp,hb,fb,db,C1=M(()=>{"use strict";Yt();npe="MismatchedTokenException",ipe="NoViableAltException",ape="EarlyExitException",spe="NotAllInputParsedException",ope=[npe,ipe,ape,spe];Object.freeze(ope);o(Bf,"isRecognitionException");S1=class extends Error{static{o(this,"RecognitionException")}constructor(e,r){super(e),this.token=r,this.resyncedTokens=[],Object.setPrototypeOf(this,new.target.prototype),Error.captureStackTrace&&Error.captureStackTrace(this,this.constructor)}},Hp=class extends S1{static{o(this,"MismatchedTokenException")}constructor(e,r,n){super(e,r),this.previousToken=n,this.name=npe}},hb=class extends S1{static{o(this,"NoViableAltException")}constructor(e,r,n){super(e,r),this.previousToken=n,this.name=ipe}},fb=class extends S1{static{o(this,"NotAllInputParsedException")}constructor(e,r){super(e,r),this.name=spe}},db=class extends S1{static{o(this,"EarlyExitException")}constructor(e,r,n){super(e,r),this.previousToken=n,this.name=ape}}});function YYe(t,e,r,n,i,a,s){let l=this.getKeyForAutomaticLookahead(n,i),u=this.firstAfterRepMap[l];if(u===void 0){let p=this.getCurrRuleFullName(),m=this.getGAstProductions()[p];u=new a(m,i).startWalking(),this.firstAfterRepMap[l]=u}let h=u.token,f=u.occurrence,d=u.isEndOfRule;this.RULE_STACK.length===1&&d&&h===void 0&&(h=yo,f=1),!(h===void 0||f===void 0)&&this.shouldInRepetitionRecoveryBeTried(h,f,s)&&this.tryInRepetitionRecovery(t,e,r,h)}var sP,lP,oP,dS,cP=M(()=>{"use strict";Up();Yt();C1();VO();js();sP={},lP="InRuleRecoveryException",oP=class extends Error{static{o(this,"InRuleRecoveryException")}constructor(e){super(e),this.name=lP}},dS=class{static{o(this,"Recoverable")}initRecoverable(e){this.firstAfterRepMap={},this.resyncFollows={},this.recoveryEnabled=Ft(e,"recoveryEnabled")?e.recoveryEnabled:ms.recoveryEnabled,this.recoveryEnabled&&(this.attemptInRepetitionRecovery=YYe)}getTokenToInsert(e){let r=Qu(e,"",NaN,NaN,NaN,NaN,NaN,NaN);return r.isInsertedInRecovery=!0,r}canTokenTypeBeInsertedInRecovery(e){return!0}canTokenTypeBeDeletedInRecovery(e){return!0}tryInRepetitionRecovery(e,r,n,i){let a=this.findReSyncTokenType(),s=this.exportLexerState(),l=[],u=!1,h=this.LA(1),f=this.LA(1),d=o(()=>{let p=this.LA(0),m=this.errorMessageProvider.buildMismatchTokenMessage({expected:i,actual:h,previous:p,ruleName:this.getCurrRuleFullName()}),g=new Hp(m,h,this.LA(0));g.resyncedTokens=Bu(l),this.SAVE_ERROR(g)},"generateErrorMessage");for(;!u;)if(this.tokenMatcher(f,i)){d();return}else if(n.call(this)){d(),e.apply(this,r);return}else this.tokenMatcher(f,a)?u=!0:(f=this.SKIP_TOKEN(),this.addToResyncTokens(f,l));this.importLexerState(s)}shouldInRepetitionRecoveryBeTried(e,r,n){return!(n===!1||this.tokenMatcher(this.LA(1),e)||this.isBackTracking()||this.canPerformInRuleRecovery(e,this.getFollowsForInRuleRecovery(e,r)))}getFollowsForInRuleRecovery(e,r){let n=this.getCurrentGrammarPath(e,r);return this.getNextPossibleTokenTypes(n)}tryInRuleRecovery(e,r){if(this.canRecoverWithSingleTokenInsertion(e,r))return this.getTokenToInsert(e);if(this.canRecoverWithSingleTokenDeletion(e)){let n=this.SKIP_TOKEN();return this.consumeToken(),n}throw new oP("sad sad panda")}canPerformInRuleRecovery(e,r){return this.canRecoverWithSingleTokenInsertion(e,r)||this.canRecoverWithSingleTokenDeletion(e)}canRecoverWithSingleTokenInsertion(e,r){if(!this.canTokenTypeBeInsertedInRecovery(e)||mr(r))return!1;let n=this.LA(1);return os(r,a=>this.tokenMatcher(n,a))!==void 0}canRecoverWithSingleTokenDeletion(e){return this.canTokenTypeBeDeletedInRecovery(e)?this.tokenMatcher(this.LA(2),e):!1}isInCurrentRuleReSyncSet(e){let r=this.getCurrFollowKey(),n=this.getFollowSetFromFollowKey(r);return jn(n,e)}findReSyncTokenType(){let e=this.flattenFollowSet(),r=this.LA(1),n=2;for(;;){let i=os(e,a=>ib(r,a));if(i!==void 0)return i;r=this.LA(n),n++}}getCurrFollowKey(){if(this.RULE_STACK.length===1)return sP;let e=this.getLastExplicitRuleShortName(),r=this.getLastExplicitRuleOccurrenceIndex(),n=this.getPreviousExplicitRuleShortName();return{ruleName:this.shortRuleNameToFullName(e),idxInCallingRule:r,inRule:this.shortRuleNameToFullName(n)}}buildFullFollowKeyStack(){let e=this.RULE_STACK,r=this.RULE_OCCURRENCE_STACK;return rt(e,(n,i)=>i===0?sP:{ruleName:this.shortRuleNameToFullName(n),idxInCallingRule:r[i],inRule:this.shortRuleNameToFullName(e[i-1])})}flattenFollowSet(){let e=rt(this.buildFullFollowKeyStack(),r=>this.getFollowSetFromFollowKey(r));return Qr(e)}getFollowSetFromFollowKey(e){if(e===sP)return[yo];let r=e.ruleName+e.idxInCallingRule+QE+e.inRule;return this.resyncFollows[r]}addToResyncTokens(e,r){return this.tokenMatcher(e,yo)||r.push(e),r}reSyncTo(e){let r=[],n=this.LA(1);for(;this.tokenMatcher(n,e)===!1;)n=this.SKIP_TOKEN(),this.addToResyncTokens(n,r);return Bu(r)}attemptInRepetitionRecovery(e,r,n,i,a,s,l){}getCurrentGrammarPath(e,r){let n=this.getHumanReadableRuleStack(),i=ln(this.RULE_OCCURRENCE_STACK);return{ruleStack:n,occurrenceStack:i,lastTok:e,lastTokOccurrence:r}}getHumanReadableRuleStack(){return rt(this.RULE_STACK,e=>this.shortRuleNameToFullName(e))}};o(YYe,"attemptInRepetitionRecovery")});function pS(t,e,r){return r|e|t}var mS=M(()=>{"use strict";o(pS,"getKeyForAutomaticLookahead")});var Ju,uP=M(()=>{"use strict";Yt();b1();js();ub();E1();Ju=class{static{o(this,"LLkLookaheadStrategy")}constructor(e){var r;this.maxLookahead=(r=e?.maxLookahead)!==null&&r!==void 0?r:ms.maxLookahead}validate(e){let r=this.validateNoLeftRecursion(e.rules);if(mr(r)){let n=this.validateEmptyOrAlternatives(e.rules),i=this.validateAmbiguousAlternationAlternatives(e.rules,this.maxLookahead),a=this.validateSomeNonEmptyLookaheadPath(e.rules,this.maxLookahead);return[...r,...n,...i,...a]}return r}validateNoLeftRecursion(e){return ya(e,r=>aP(r,r,Gl))}validateEmptyOrAlternatives(e){return ya(e,r=>Qde(r,Gl))}validateAmbiguousAlternationAlternatives(e,r){return ya(e,n=>Zde(n,r,Gl))}validateSomeNonEmptyLookaheadPath(e,r){return Jde(e,r,Gl)}buildLookaheadForAlternation(e){return zde(e.prodOccurrence,e.rule,e.maxLookahead,e.hasPredicates,e.dynamicTokensEnabled,Vde)}buildLookaheadForOptional(e){return Gde(e.prodOccurrence,e.rule,e.maxLookahead,e.dynamicTokensEnabled,lb(e.prodType),Ude)}}});function XYe(t){gS.reset(),t.accept(gS);let e=gS.dslMethods;return gS.reset(),e}var yS,hP,gS,lpe=M(()=>{"use strict";Yt();js();mS();ps();uP();yS=class{static{o(this,"LooksAhead")}initLooksAhead(e){this.dynamicTokensEnabled=Ft(e,"dynamicTokensEnabled")?e.dynamicTokensEnabled:ms.dynamicTokensEnabled,this.maxLookahead=Ft(e,"maxLookahead")?e.maxLookahead:ms.maxLookahead,this.lookaheadStrategy=Ft(e,"lookaheadStrategy")?e.lookaheadStrategy:new Ju({maxLookahead:this.maxLookahead}),this.lookAheadFuncsCache=new Map}preComputeLookaheadFunctions(e){Ae(e,r=>{this.TRACE_INIT(`${r.name} Rule Lookahead`,()=>{let{alternation:n,repetition:i,option:a,repetitionMandatory:s,repetitionMandatoryWithSeparator:l,repetitionWithSeparator:u}=XYe(r);Ae(n,h=>{let f=h.idx===0?"":h.idx;this.TRACE_INIT(`${Xs(h)}${f}`,()=>{let d=this.lookaheadStrategy.buildLookaheadForAlternation({prodOccurrence:h.idx,rule:r,maxLookahead:h.maxLookahead||this.maxLookahead,hasPredicates:h.hasPredicates,dynamicTokensEnabled:this.dynamicTokensEnabled}),p=pS(this.fullRuleNameToShort[r.name],256,h.idx);this.setLaFuncCache(p,d)})}),Ae(i,h=>{this.computeLookaheadFunc(r,h.idx,768,"Repetition",h.maxLookahead,Xs(h))}),Ae(a,h=>{this.computeLookaheadFunc(r,h.idx,512,"Option",h.maxLookahead,Xs(h))}),Ae(s,h=>{this.computeLookaheadFunc(r,h.idx,1024,"RepetitionMandatory",h.maxLookahead,Xs(h))}),Ae(l,h=>{this.computeLookaheadFunc(r,h.idx,1536,"RepetitionMandatoryWithSeparator",h.maxLookahead,Xs(h))}),Ae(u,h=>{this.computeLookaheadFunc(r,h.idx,1280,"RepetitionWithSeparator",h.maxLookahead,Xs(h))})})})}computeLookaheadFunc(e,r,n,i,a,s){this.TRACE_INIT(`${s}${r===0?"":r}`,()=>{let l=this.lookaheadStrategy.buildLookaheadForOptional({prodOccurrence:r,rule:e,maxLookahead:a||this.maxLookahead,dynamicTokensEnabled:this.dynamicTokensEnabled,prodType:i}),u=pS(this.fullRuleNameToShort[e.name],n,r);this.setLaFuncCache(u,l)})}getKeyForAutomaticLookahead(e,r){let n=this.getLastExplicitRuleShortName();return pS(n,e,r)}getLaFuncFromCache(e){return this.lookAheadFuncsCache.get(e)}setLaFuncCache(e,r){this.lookAheadFuncsCache.set(e,r)}},hP=class extends ds{static{o(this,"DslMethodsCollectorVisitor")}constructor(){super(...arguments),this.dslMethods={option:[],alternation:[],repetition:[],repetitionWithSeparator:[],repetitionMandatory:[],repetitionMandatoryWithSeparator:[]}}reset(){this.dslMethods={option:[],alternation:[],repetition:[],repetitionWithSeparator:[],repetitionMandatory:[],repetitionMandatoryWithSeparator:[]}}visitOption(e){this.dslMethods.option.push(e)}visitRepetitionWithSeparator(e){this.dslMethods.repetitionWithSeparator.push(e)}visitRepetitionMandatory(e){this.dslMethods.repetitionMandatory.push(e)}visitRepetitionMandatoryWithSeparator(e){this.dslMethods.repetitionMandatoryWithSeparator.push(e)}visitRepetition(e){this.dslMethods.repetition.push(e)}visitAlternation(e){this.dslMethods.alternation.push(e)}},gS=new hP;o(XYe,"collectMethods")});function pP(t,e){isNaN(t.startOffset)===!0?(t.startOffset=e.startOffset,t.endOffset=e.endOffset):t.endOffset{"use strict";o(pP,"setNodeLocationOnlyOffset");o(mP,"setNodeLocationFull");o(cpe,"addTerminalToCst");o(upe,"addNoneTerminalToCst")});function gP(t,e){Object.defineProperty(t,jYe,{enumerable:!1,configurable:!0,writable:!1,value:e})}var jYe,fpe=M(()=>{"use strict";jYe="name";o(gP,"defineNameProp")});function KYe(t,e){let r=qr(t),n=r.length;for(let i=0;is.msg);throw Error(`Errors Detected in CST Visitor <${this.constructor.name}>: + ${a.join(` + +`).replace(/\n/g,` + `)}`)}},"validateVisitor")};return r.prototype=n,r.prototype.constructor=r,r._RULE_NAMES=e,r}function ppe(t,e,r){let n=o(function(){},"derivedConstructor");gP(n,t+"BaseSemanticsWithDefaults");let i=Object.create(r.prototype);return Ae(e,a=>{i[a]=KYe}),n.prototype=i,n.prototype.constructor=n,n}function QYe(t,e){return ZYe(t,e)}function ZYe(t,e){let r=Zr(e,i=>Si(t[i])===!1),n=rt(r,i=>({msg:`Missing visitor method: <${i}> on ${t.constructor.name} CST Visitor.`,type:yP.MISSING_METHOD,methodName:i}));return _c(n)}var yP,mpe=M(()=>{"use strict";Yt();fpe();o(KYe,"defaultVisit");o(dpe,"createBaseSemanticVisitorConstructor");o(ppe,"createBaseVisitorConstructorWithDefaults");(function(t){t[t.REDUNDANT_METHOD=0]="REDUNDANT_METHOD",t[t.MISSING_METHOD=1]="MISSING_METHOD"})(yP||(yP={}));o(QYe,"validateVisitor");o(ZYe,"validateMissingCstMethods")});var TS,gpe=M(()=>{"use strict";hpe();Yt();mpe();js();TS=class{static{o(this,"TreeBuilder")}initTreeBuilder(e){if(this.CST_STACK=[],this.outputCst=e.outputCst,this.nodeLocationTracking=Ft(e,"nodeLocationTracking")?e.nodeLocationTracking:ms.nodeLocationTracking,!this.outputCst)this.cstInvocationStateUpdate=si,this.cstFinallyStateUpdate=si,this.cstPostTerminal=si,this.cstPostNonTerminal=si,this.cstPostRule=si;else if(/full/i.test(this.nodeLocationTracking))this.recoveryEnabled?(this.setNodeLocationFromToken=mP,this.setNodeLocationFromNode=mP,this.cstPostRule=si,this.setInitialNodeLocation=this.setInitialNodeLocationFullRecovery):(this.setNodeLocationFromToken=si,this.setNodeLocationFromNode=si,this.cstPostRule=this.cstPostRuleFull,this.setInitialNodeLocation=this.setInitialNodeLocationFullRegular);else if(/onlyOffset/i.test(this.nodeLocationTracking))this.recoveryEnabled?(this.setNodeLocationFromToken=pP,this.setNodeLocationFromNode=pP,this.cstPostRule=si,this.setInitialNodeLocation=this.setInitialNodeLocationOnlyOffsetRecovery):(this.setNodeLocationFromToken=si,this.setNodeLocationFromNode=si,this.cstPostRule=this.cstPostRuleOnlyOffset,this.setInitialNodeLocation=this.setInitialNodeLocationOnlyOffsetRegular);else if(/none/i.test(this.nodeLocationTracking))this.setNodeLocationFromToken=si,this.setNodeLocationFromNode=si,this.cstPostRule=si,this.setInitialNodeLocation=si;else throw Error(`Invalid config option: "${e.nodeLocationTracking}"`)}setInitialNodeLocationOnlyOffsetRecovery(e){e.location={startOffset:NaN,endOffset:NaN}}setInitialNodeLocationOnlyOffsetRegular(e){e.location={startOffset:this.LA(1).startOffset,endOffset:NaN}}setInitialNodeLocationFullRecovery(e){e.location={startOffset:NaN,startLine:NaN,startColumn:NaN,endOffset:NaN,endLine:NaN,endColumn:NaN}}setInitialNodeLocationFullRegular(e){let r=this.LA(1);e.location={startOffset:r.startOffset,startLine:r.startLine,startColumn:r.startColumn,endOffset:NaN,endLine:NaN,endColumn:NaN}}cstInvocationStateUpdate(e){let r={name:e,children:Object.create(null)};this.setInitialNodeLocation(r),this.CST_STACK.push(r)}cstFinallyStateUpdate(){this.CST_STACK.pop()}cstPostRuleFull(e){let r=this.LA(0),n=e.location;n.startOffset<=r.startOffset?(n.endOffset=r.endOffset,n.endLine=r.endLine,n.endColumn=r.endColumn):(n.startOffset=NaN,n.startLine=NaN,n.startColumn=NaN)}cstPostRuleOnlyOffset(e){let r=this.LA(0),n=e.location;n.startOffset<=r.startOffset?n.endOffset=r.endOffset:n.startOffset=NaN}cstPostTerminal(e,r){let n=this.CST_STACK[this.CST_STACK.length-1];cpe(n,r,e),this.setNodeLocationFromToken(n.location,r)}cstPostNonTerminal(e,r){let n=this.CST_STACK[this.CST_STACK.length-1];upe(n,r,e),this.setNodeLocationFromNode(n.location,e.location)}getBaseCstVisitorConstructor(){if(xr(this.baseCstVisitorConstructor)){let e=dpe(this.className,qr(this.gastProductionsCache));return this.baseCstVisitorConstructor=e,e}return this.baseCstVisitorConstructor}getBaseCstVisitorConstructorWithDefaults(){if(xr(this.baseCstVisitorWithDefaultsConstructor)){let e=ppe(this.className,qr(this.gastProductionsCache),this.getBaseCstVisitorConstructor());return this.baseCstVisitorWithDefaultsConstructor=e,e}return this.baseCstVisitorWithDefaultsConstructor}getLastExplicitRuleShortName(){let e=this.RULE_STACK;return e[e.length-1]}getPreviousExplicitRuleShortName(){let e=this.RULE_STACK;return e[e.length-2]}getLastExplicitRuleOccurrenceIndex(){let e=this.RULE_OCCURRENCE_STACK;return e[e.length-1]}}});var wS,ype=M(()=>{"use strict";js();wS=class{static{o(this,"LexerAdapter")}initLexerAdapter(){this.tokVector=[],this.tokVectorLength=0,this.currIdx=-1}set input(e){if(this.selfAnalysisDone!==!0)throw Error("Missing invocation at the end of the Parser's constructor.");this.reset(),this.tokVector=e,this.tokVectorLength=e.length}get input(){return this.tokVector}SKIP_TOKEN(){return this.currIdx<=this.tokVector.length-2?(this.consumeToken(),this.LA(1)):A1}LA(e){let r=this.currIdx+e;return r<0||this.tokVectorLength<=r?A1:this.tokVector[r]}consumeToken(){this.currIdx++}exportLexerState(){return this.currIdx}importLexerState(e){this.currIdx=e}resetLexerState(){this.currIdx=-1}moveToTerminatedState(){this.currIdx=this.tokVector.length-1}getLexerPosition(){return this.exportLexerState()}}});var kS,vpe=M(()=>{"use strict";Yt();C1();js();b1();ub();ps();kS=class{static{o(this,"RecognizerApi")}ACTION(e){return e.call(this)}consume(e,r,n){return this.consumeInternal(r,e,n)}subrule(e,r,n){return this.subruleInternal(r,e,n)}option(e,r){return this.optionInternal(r,e)}or(e,r){return this.orInternal(r,e)}many(e,r){return this.manyInternal(e,r)}atLeastOne(e,r){return this.atLeastOneInternal(e,r)}CONSUME(e,r){return this.consumeInternal(e,0,r)}CONSUME1(e,r){return this.consumeInternal(e,1,r)}CONSUME2(e,r){return this.consumeInternal(e,2,r)}CONSUME3(e,r){return this.consumeInternal(e,3,r)}CONSUME4(e,r){return this.consumeInternal(e,4,r)}CONSUME5(e,r){return this.consumeInternal(e,5,r)}CONSUME6(e,r){return this.consumeInternal(e,6,r)}CONSUME7(e,r){return this.consumeInternal(e,7,r)}CONSUME8(e,r){return this.consumeInternal(e,8,r)}CONSUME9(e,r){return this.consumeInternal(e,9,r)}SUBRULE(e,r){return this.subruleInternal(e,0,r)}SUBRULE1(e,r){return this.subruleInternal(e,1,r)}SUBRULE2(e,r){return this.subruleInternal(e,2,r)}SUBRULE3(e,r){return this.subruleInternal(e,3,r)}SUBRULE4(e,r){return this.subruleInternal(e,4,r)}SUBRULE5(e,r){return this.subruleInternal(e,5,r)}SUBRULE6(e,r){return this.subruleInternal(e,6,r)}SUBRULE7(e,r){return this.subruleInternal(e,7,r)}SUBRULE8(e,r){return this.subruleInternal(e,8,r)}SUBRULE9(e,r){return this.subruleInternal(e,9,r)}OPTION(e){return this.optionInternal(e,0)}OPTION1(e){return this.optionInternal(e,1)}OPTION2(e){return this.optionInternal(e,2)}OPTION3(e){return this.optionInternal(e,3)}OPTION4(e){return this.optionInternal(e,4)}OPTION5(e){return this.optionInternal(e,5)}OPTION6(e){return this.optionInternal(e,6)}OPTION7(e){return this.optionInternal(e,7)}OPTION8(e){return this.optionInternal(e,8)}OPTION9(e){return this.optionInternal(e,9)}OR(e){return this.orInternal(e,0)}OR1(e){return this.orInternal(e,1)}OR2(e){return this.orInternal(e,2)}OR3(e){return this.orInternal(e,3)}OR4(e){return this.orInternal(e,4)}OR5(e){return this.orInternal(e,5)}OR6(e){return this.orInternal(e,6)}OR7(e){return this.orInternal(e,7)}OR8(e){return this.orInternal(e,8)}OR9(e){return this.orInternal(e,9)}MANY(e){this.manyInternal(0,e)}MANY1(e){this.manyInternal(1,e)}MANY2(e){this.manyInternal(2,e)}MANY3(e){this.manyInternal(3,e)}MANY4(e){this.manyInternal(4,e)}MANY5(e){this.manyInternal(5,e)}MANY6(e){this.manyInternal(6,e)}MANY7(e){this.manyInternal(7,e)}MANY8(e){this.manyInternal(8,e)}MANY9(e){this.manyInternal(9,e)}MANY_SEP(e){this.manySepFirstInternal(0,e)}MANY_SEP1(e){this.manySepFirstInternal(1,e)}MANY_SEP2(e){this.manySepFirstInternal(2,e)}MANY_SEP3(e){this.manySepFirstInternal(3,e)}MANY_SEP4(e){this.manySepFirstInternal(4,e)}MANY_SEP5(e){this.manySepFirstInternal(5,e)}MANY_SEP6(e){this.manySepFirstInternal(6,e)}MANY_SEP7(e){this.manySepFirstInternal(7,e)}MANY_SEP8(e){this.manySepFirstInternal(8,e)}MANY_SEP9(e){this.manySepFirstInternal(9,e)}AT_LEAST_ONE(e){this.atLeastOneInternal(0,e)}AT_LEAST_ONE1(e){return this.atLeastOneInternal(1,e)}AT_LEAST_ONE2(e){this.atLeastOneInternal(2,e)}AT_LEAST_ONE3(e){this.atLeastOneInternal(3,e)}AT_LEAST_ONE4(e){this.atLeastOneInternal(4,e)}AT_LEAST_ONE5(e){this.atLeastOneInternal(5,e)}AT_LEAST_ONE6(e){this.atLeastOneInternal(6,e)}AT_LEAST_ONE7(e){this.atLeastOneInternal(7,e)}AT_LEAST_ONE8(e){this.atLeastOneInternal(8,e)}AT_LEAST_ONE9(e){this.atLeastOneInternal(9,e)}AT_LEAST_ONE_SEP(e){this.atLeastOneSepFirstInternal(0,e)}AT_LEAST_ONE_SEP1(e){this.atLeastOneSepFirstInternal(1,e)}AT_LEAST_ONE_SEP2(e){this.atLeastOneSepFirstInternal(2,e)}AT_LEAST_ONE_SEP3(e){this.atLeastOneSepFirstInternal(3,e)}AT_LEAST_ONE_SEP4(e){this.atLeastOneSepFirstInternal(4,e)}AT_LEAST_ONE_SEP5(e){this.atLeastOneSepFirstInternal(5,e)}AT_LEAST_ONE_SEP6(e){this.atLeastOneSepFirstInternal(6,e)}AT_LEAST_ONE_SEP7(e){this.atLeastOneSepFirstInternal(7,e)}AT_LEAST_ONE_SEP8(e){this.atLeastOneSepFirstInternal(8,e)}AT_LEAST_ONE_SEP9(e){this.atLeastOneSepFirstInternal(9,e)}RULE(e,r,n=_1){if(jn(this.definedRulesNames,e)){let s={message:Gl.buildDuplicateRuleNameError({topLevelRule:e,grammarName:this.className}),type:Gi.DUPLICATE_RULE_NAME,ruleName:e};this.definitionErrors.push(s)}this.definedRulesNames.push(e);let i=this.defineRule(e,r,n);return this[e]=i,i}OVERRIDE_RULE(e,r,n=_1){let i=Kde(e,this.definedRulesNames,this.className);this.definitionErrors=this.definitionErrors.concat(i);let a=this.defineRule(e,r,n);return this[e]=a,a}BACKTRACK(e,r){return function(){this.isBackTrackingStack.push(1);let n=this.saveRecogState();try{return e.apply(this,r),!0}catch(i){if(Bf(i))return!1;throw i}finally{this.reloadRecogState(n),this.isBackTrackingStack.pop()}}}getGAstProductions(){return this.gastProductionsCache}getSerializedGastProductions(){return XE(kr(this.gastProductionsCache))}}});var ES,xpe=M(()=>{"use strict";Yt();mS();C1();E1();ob();js();cP();Up();Vp();ES=class{static{o(this,"RecognizerEngine")}initRecognizerEngine(e,r){if(this.className=this.constructor.name,this.shortRuleNameToFull={},this.fullRuleNameToShort={},this.ruleShortNameIdx=256,this.tokenMatcher=v1,this.subruleIdx=0,this.definedRulesNames=[],this.tokensMap={},this.isBackTrackingStack=[],this.RULE_STACK=[],this.RULE_OCCURRENCE_STACK=[],this.gastProductionsCache={},Ft(r,"serializedGrammar"))throw Error(`The Parser's configuration can no longer contain a property. + See: https://chevrotain.io/docs/changes/BREAKING_CHANGES.html#_6-0-0 + For Further details.`);if(Bt(e)){if(mr(e))throw Error(`A Token Vocabulary cannot be empty. + Note that the first argument for the parser constructor + is no longer a Token vector (since v4.0).`);if(typeof e[0].startOffset=="number")throw Error(`The Parser constructor no longer accepts a token vector as the first argument. + See: https://chevrotain.io/docs/changes/BREAKING_CHANGES.html#_4-0-0 + For Further details.`)}if(Bt(e))this.tokensMap=Jr(e,(a,s)=>(a[s.name]=s,a),{});else if(Ft(e,"modes")&&Ba(Qr(kr(e.modes)),Ade)){let a=Qr(kr(e.modes)),s=qm(a);this.tokensMap=Jr(s,(l,u)=>(l[u.name]=u,l),{})}else if(Sn(e))this.tokensMap=ln(e);else throw new Error(" argument must be An Array of Token constructors, A dictionary of Token constructors or an IMultiModeLexerDefinition");this.tokensMap.EOF=yo;let n=Ft(e,"modes")?Qr(kr(e.modes)):kr(e),i=Ba(n,a=>mr(a.categoryMatches));this.tokenMatcher=i?v1:Xu,ju(kr(this.tokensMap))}defineRule(e,r,n){if(this.selfAnalysisDone)throw Error(`Grammar rule <${e}> may not be defined after the 'performSelfAnalysis' method has been called' +Make sure that all grammar rule definitions are done before 'performSelfAnalysis' is called.`);let i=Ft(n,"resyncEnabled")?n.resyncEnabled:_1.resyncEnabled,a=Ft(n,"recoveryValueFunc")?n.recoveryValueFunc:_1.recoveryValueFunc,s=this.ruleShortNameIdx<<12;this.ruleShortNameIdx++,this.shortRuleNameToFull[s]=e,this.fullRuleNameToShort[e]=s;let l;return this.outputCst===!0?l=o(function(...f){try{this.ruleInvocationStateUpdate(s,e,this.subruleIdx),r.apply(this,f);let d=this.CST_STACK[this.CST_STACK.length-1];return this.cstPostRule(d),d}catch(d){return this.invokeRuleCatch(d,i,a)}finally{this.ruleFinallyStateUpdate()}},"invokeRuleWithTry"):l=o(function(...f){try{return this.ruleInvocationStateUpdate(s,e,this.subruleIdx),r.apply(this,f)}catch(d){return this.invokeRuleCatch(d,i,a)}finally{this.ruleFinallyStateUpdate()}},"invokeRuleWithTryCst"),Object.assign(l,{ruleName:e,originalGrammarAction:r})}invokeRuleCatch(e,r,n){let i=this.RULE_STACK.length===1,a=r&&!this.isBackTracking()&&this.recoveryEnabled;if(Bf(e)){let s=e;if(a){let l=this.findReSyncTokenType();if(this.isInCurrentRuleReSyncSet(l))if(s.resyncedTokens=this.reSyncTo(l),this.outputCst){let u=this.CST_STACK[this.CST_STACK.length-1];return u.recoveredNode=!0,u}else return n(e);else{if(this.outputCst){let u=this.CST_STACK[this.CST_STACK.length-1];u.recoveredNode=!0,s.partialCstResult=u}throw s}}else{if(i)return this.moveToTerminatedState(),n(e);throw s}}else throw e}optionInternal(e,r){let n=this.getKeyForAutomaticLookahead(512,r);return this.optionInternalLogic(e,r,n)}optionInternalLogic(e,r,n){let i=this.getLaFuncFromCache(n),a;if(typeof e!="function"){a=e.DEF;let s=e.GATE;if(s!==void 0){let l=i;i=o(()=>s.call(this)&&l.call(this),"lookAheadFunc")}}else a=e;if(i.call(this)===!0)return a.call(this)}atLeastOneInternal(e,r){let n=this.getKeyForAutomaticLookahead(1024,e);return this.atLeastOneInternalLogic(e,r,n)}atLeastOneInternalLogic(e,r,n){let i=this.getLaFuncFromCache(n),a;if(typeof r!="function"){a=r.DEF;let s=r.GATE;if(s!==void 0){let l=i;i=o(()=>s.call(this)&&l.call(this),"lookAheadFunc")}}else a=r;if(i.call(this)===!0){let s=this.doSingleRepetition(a);for(;i.call(this)===!0&&s===!0;)s=this.doSingleRepetition(a)}else throw this.raiseEarlyExitException(e,Jn.REPETITION_MANDATORY,r.ERR_MSG);this.attemptInRepetitionRecovery(this.atLeastOneInternal,[e,r],i,1024,e,sS)}atLeastOneSepFirstInternal(e,r){let n=this.getKeyForAutomaticLookahead(1536,e);this.atLeastOneSepFirstInternalLogic(e,r,n)}atLeastOneSepFirstInternalLogic(e,r,n){let i=r.DEF,a=r.SEP;if(this.getLaFuncFromCache(n).call(this)===!0){i.call(this);let l=o(()=>this.tokenMatcher(this.LA(1),a),"separatorLookAheadFunc");for(;this.tokenMatcher(this.LA(1),a)===!0;)this.CONSUME(a),i.call(this);this.attemptInRepetitionRecovery(this.repetitionSepSecondInternal,[e,a,l,i,sb],l,1536,e,sb)}else throw this.raiseEarlyExitException(e,Jn.REPETITION_MANDATORY_WITH_SEPARATOR,r.ERR_MSG)}manyInternal(e,r){let n=this.getKeyForAutomaticLookahead(768,e);return this.manyInternalLogic(e,r,n)}manyInternalLogic(e,r,n){let i=this.getLaFuncFromCache(n),a;if(typeof r!="function"){a=r.DEF;let l=r.GATE;if(l!==void 0){let u=i;i=o(()=>l.call(this)&&u.call(this),"lookaheadFunction")}}else a=r;let s=!0;for(;i.call(this)===!0&&s===!0;)s=this.doSingleRepetition(a);this.attemptInRepetitionRecovery(this.manyInternal,[e,r],i,768,e,aS,s)}manySepFirstInternal(e,r){let n=this.getKeyForAutomaticLookahead(1280,e);this.manySepFirstInternalLogic(e,r,n)}manySepFirstInternalLogic(e,r,n){let i=r.DEF,a=r.SEP;if(this.getLaFuncFromCache(n).call(this)===!0){i.call(this);let l=o(()=>this.tokenMatcher(this.LA(1),a),"separatorLookAheadFunc");for(;this.tokenMatcher(this.LA(1),a)===!0;)this.CONSUME(a),i.call(this);this.attemptInRepetitionRecovery(this.repetitionSepSecondInternal,[e,a,l,i,ab],l,1280,e,ab)}}repetitionSepSecondInternal(e,r,n,i,a){for(;n();)this.CONSUME(r),i.call(this);this.attemptInRepetitionRecovery(this.repetitionSepSecondInternal,[e,r,n,i,a],n,1536,e,a)}doSingleRepetition(e){let r=this.getLexerPosition();return e.call(this),this.getLexerPosition()>r}orInternal(e,r){let n=this.getKeyForAutomaticLookahead(256,r),i=Bt(e)?e:e.DEF,s=this.getLaFuncFromCache(n).call(this,i);if(s!==void 0)return i[s].ALT.call(this);this.raiseNoAltException(r,e.ERR_MSG)}ruleFinallyStateUpdate(){if(this.RULE_STACK.pop(),this.RULE_OCCURRENCE_STACK.pop(),this.cstFinallyStateUpdate(),this.RULE_STACK.length===0&&this.isAtEndOfInput()===!1){let e=this.LA(1),r=this.errorMessageProvider.buildNotAllInputParsedMessage({firstRedundant:e,ruleName:this.getCurrRuleFullName()});this.SAVE_ERROR(new fb(r,e))}}subruleInternal(e,r,n){let i;try{let a=n!==void 0?n.ARGS:void 0;return this.subruleIdx=r,i=e.apply(this,a),this.cstPostNonTerminal(i,n!==void 0&&n.LABEL!==void 0?n.LABEL:e.ruleName),i}catch(a){throw this.subruleInternalError(a,n,e.ruleName)}}subruleInternalError(e,r,n){throw Bf(e)&&e.partialCstResult!==void 0&&(this.cstPostNonTerminal(e.partialCstResult,r!==void 0&&r.LABEL!==void 0?r.LABEL:n),delete e.partialCstResult),e}consumeInternal(e,r,n){let i;try{let a=this.LA(1);this.tokenMatcher(a,e)===!0?(this.consumeToken(),i=a):this.consumeInternalError(e,a,n)}catch(a){i=this.consumeInternalRecovery(e,r,a)}return this.cstPostTerminal(n!==void 0&&n.LABEL!==void 0?n.LABEL:e.name,i),i}consumeInternalError(e,r,n){let i,a=this.LA(0);throw n!==void 0&&n.ERR_MSG?i=n.ERR_MSG:i=this.errorMessageProvider.buildMismatchTokenMessage({expected:e,actual:r,previous:a,ruleName:this.getCurrRuleFullName()}),this.SAVE_ERROR(new Hp(i,r,a))}consumeInternalRecovery(e,r,n){if(this.recoveryEnabled&&n.name==="MismatchedTokenException"&&!this.isBackTracking()){let i=this.getFollowsForInRuleRecovery(e,r);try{return this.tryInRuleRecovery(e,i)}catch(a){throw a.name===lP?n:a}}else throw n}saveRecogState(){let e=this.errors,r=ln(this.RULE_STACK);return{errors:e,lexerState:this.exportLexerState(),RULE_STACK:r,CST_STACK:this.CST_STACK}}reloadRecogState(e){this.errors=e.errors,this.importLexerState(e.lexerState),this.RULE_STACK=e.RULE_STACK}ruleInvocationStateUpdate(e,r,n){this.RULE_OCCURRENCE_STACK.push(n),this.RULE_STACK.push(e),this.cstInvocationStateUpdate(r)}isBackTracking(){return this.isBackTrackingStack.length!==0}getCurrRuleFullName(){let e=this.getLastExplicitRuleShortName();return this.shortRuleNameToFull[e]}shortRuleNameToFullName(e){return this.shortRuleNameToFull[e]}isAtEndOfInput(){return this.tokenMatcher(this.LA(1),yo)}reset(){this.resetLexerState(),this.subruleIdx=0,this.isBackTrackingStack=[],this.errors=[],this.RULE_STACK=[],this.CST_STACK=[],this.RULE_OCCURRENCE_STACK=[]}}});var SS,bpe=M(()=>{"use strict";C1();Yt();E1();js();SS=class{static{o(this,"ErrorHandler")}initErrorHandler(e){this._errors=[],this.errorMessageProvider=Ft(e,"errorMessageProvider")?e.errorMessageProvider:ms.errorMessageProvider}SAVE_ERROR(e){if(Bf(e))return e.context={ruleStack:this.getHumanReadableRuleStack(),ruleOccurrenceStack:ln(this.RULE_OCCURRENCE_STACK)},this._errors.push(e),e;throw Error("Trying to save an Error which is not a RecognitionException")}get errors(){return ln(this._errors)}set errors(e){this._errors=e}raiseEarlyExitException(e,r,n){let i=this.getCurrRuleFullName(),a=this.getGAstProductions()[i],l=k1(e,a,r,this.maxLookahead)[0],u=[];for(let f=1;f<=this.maxLookahead;f++)u.push(this.LA(f));let h=this.errorMessageProvider.buildEarlyExitMessage({expectedIterationPaths:l,actual:u,previous:this.LA(0),customUserDescription:n,ruleName:i});throw this.SAVE_ERROR(new db(h,this.LA(1),this.LA(0)))}raiseNoAltException(e,r){let n=this.getCurrRuleFullName(),i=this.getGAstProductions()[n],a=w1(e,i,this.maxLookahead),s=[];for(let h=1;h<=this.maxLookahead;h++)s.push(this.LA(h));let l=this.LA(0),u=this.errorMessageProvider.buildNoViableAltMessage({expectedPathsPerAlt:a,actual:s,previous:l,customUserDescription:r,ruleName:this.getCurrRuleFullName()});throw this.SAVE_ERROR(new hb(u,this.LA(1),l))}}});var CS,Tpe=M(()=>{"use strict";ob();Yt();CS=class{static{o(this,"ContentAssist")}initContentAssist(){}computeContentAssist(e,r){let n=this.gastProductionsCache[e];if(xr(n))throw Error(`Rule ->${e}<- does not exist in this grammar.`);return lS([n],r,this.tokenMatcher,this.maxLookahead)}getNextPossibleTokenTypes(e){let r=ea(e.ruleStack),i=this.getGAstProductions()[r];return new iS(i,e).startWalking()}}});function mb(t,e,r,n=!1){_S(r);let i=ga(this.recordingProdStack),a=Si(e)?e:e.DEF,s=new t({definition:[],idx:r});return n&&(s.separator=e.SEP),Ft(e,"MAX_LOOKAHEAD")&&(s.maxLookahead=e.MAX_LOOKAHEAD),this.recordingProdStack.push(s),a.call(this),i.definition.push(s),this.recordingProdStack.pop(),DS}function tXe(t,e){_S(e);let r=ga(this.recordingProdStack),n=Bt(t)===!1,i=n===!1?t:t.DEF,a=new Dn({definition:[],idx:e,ignoreAmbiguities:n&&t.IGNORE_AMBIGUITIES===!0});Ft(t,"MAX_LOOKAHEAD")&&(a.maxLookahead=t.MAX_LOOKAHEAD);let s=G2(i,l=>Si(l.GATE));return a.hasPredicates=s,r.definition.push(a),Ae(i,l=>{let u=new Pn({definition:[]});a.definition.push(u),Ft(l,"IGNORE_AMBIGUITIES")?u.ignoreAmbiguities=l.IGNORE_AMBIGUITIES:Ft(l,"GATE")&&(u.ignoreAmbiguities=!0),this.recordingProdStack.push(u),l.ALT.call(this),this.recordingProdStack.pop()}),DS}function Epe(t){return t===0?"":`${t}`}function _S(t){if(t<0||t>kpe){let e=new Error(`Invalid DSL Method idx value: <${t}> + Idx value must be a none negative value smaller than ${kpe+1}`);throw e.KNOWN_RECORDER_ERROR=!0,e}}var DS,wpe,kpe,Spe,Cpe,eXe,AS,Ape=M(()=>{"use strict";Yt();ps();rb();Vp();Up();js();mS();DS={description:"This Object indicates the Parser is during Recording Phase"};Object.freeze(DS);wpe=!0,kpe=Math.pow(2,8)-1,Spe=Pf({name:"RECORDING_PHASE_TOKEN",pattern:Zn.NA});ju([Spe]);Cpe=Qu(Spe,`This IToken indicates the Parser is in Recording Phase + See: https://chevrotain.io/docs/guide/internals.html#grammar-recording for details`,-1,-1,-1,-1,-1,-1);Object.freeze(Cpe);eXe={name:`This CSTNode indicates the Parser is in Recording Phase + See: https://chevrotain.io/docs/guide/internals.html#grammar-recording for details`,children:{}},AS=class{static{o(this,"GastRecorder")}initGastRecorder(e){this.recordingProdStack=[],this.RECORDING_PHASE=!1}enableRecording(){this.RECORDING_PHASE=!0,this.TRACE_INIT("Enable Recording",()=>{for(let e=0;e<10;e++){let r=e>0?e:"";this[`CONSUME${r}`]=function(n,i){return this.consumeInternalRecord(n,e,i)},this[`SUBRULE${r}`]=function(n,i){return this.subruleInternalRecord(n,e,i)},this[`OPTION${r}`]=function(n){return this.optionInternalRecord(n,e)},this[`OR${r}`]=function(n){return this.orInternalRecord(n,e)},this[`MANY${r}`]=function(n){this.manyInternalRecord(e,n)},this[`MANY_SEP${r}`]=function(n){this.manySepFirstInternalRecord(e,n)},this[`AT_LEAST_ONE${r}`]=function(n){this.atLeastOneInternalRecord(e,n)},this[`AT_LEAST_ONE_SEP${r}`]=function(n){this.atLeastOneSepFirstInternalRecord(e,n)}}this.consume=function(e,r,n){return this.consumeInternalRecord(r,e,n)},this.subrule=function(e,r,n){return this.subruleInternalRecord(r,e,n)},this.option=function(e,r){return this.optionInternalRecord(r,e)},this.or=function(e,r){return this.orInternalRecord(r,e)},this.many=function(e,r){this.manyInternalRecord(e,r)},this.atLeastOne=function(e,r){this.atLeastOneInternalRecord(e,r)},this.ACTION=this.ACTION_RECORD,this.BACKTRACK=this.BACKTRACK_RECORD,this.LA=this.LA_RECORD})}disableRecording(){this.RECORDING_PHASE=!1,this.TRACE_INIT("Deleting Recording methods",()=>{let e=this;for(let r=0;r<10;r++){let n=r>0?r:"";delete e[`CONSUME${n}`],delete e[`SUBRULE${n}`],delete e[`OPTION${n}`],delete e[`OR${n}`],delete e[`MANY${n}`],delete e[`MANY_SEP${n}`],delete e[`AT_LEAST_ONE${n}`],delete e[`AT_LEAST_ONE_SEP${n}`]}delete e.consume,delete e.subrule,delete e.option,delete e.or,delete e.many,delete e.atLeastOne,delete e.ACTION,delete e.BACKTRACK,delete e.LA})}ACTION_RECORD(e){}BACKTRACK_RECORD(e,r){return()=>!0}LA_RECORD(e){return A1}topLevelRuleRecord(e,r){try{let n=new fs({definition:[],name:e});return n.name=e,this.recordingProdStack.push(n),r.call(this),this.recordingProdStack.pop(),n}catch(n){if(n.KNOWN_RECORDER_ERROR!==!0)try{n.message=n.message+` + This error was thrown during the "grammar recording phase" For more info see: + https://chevrotain.io/docs/guide/internals.html#grammar-recording`}catch{throw n}throw n}}optionInternalRecord(e,r){return mb.call(this,dn,e,r)}atLeastOneInternalRecord(e,r){mb.call(this,Bn,r,e)}atLeastOneSepFirstInternalRecord(e,r){mb.call(this,Fn,r,e,wpe)}manyInternalRecord(e,r){mb.call(this,zr,r,e)}manySepFirstInternalRecord(e,r){mb.call(this,_n,r,e,wpe)}orInternalRecord(e,r){return tXe.call(this,e,r)}subruleInternalRecord(e,r,n){if(_S(r),!e||Ft(e,"ruleName")===!1){let l=new Error(` argument is invalid expecting a Parser method reference but got: <${JSON.stringify(e)}> + inside top level rule: <${this.recordingProdStack[0].name}>`);throw l.KNOWN_RECORDER_ERROR=!0,l}let i=ga(this.recordingProdStack),a=e.ruleName,s=new fn({idx:r,nonTerminalName:a,label:n?.LABEL,referencedRule:void 0});return i.definition.push(s),this.outputCst?eXe:DS}consumeInternalRecord(e,r,n){if(_S(r),!KO(e)){let s=new Error(` argument is invalid expecting a TokenType reference but got: <${JSON.stringify(e)}> + inside top level rule: <${this.recordingProdStack[0].name}>`);throw s.KNOWN_RECORDER_ERROR=!0,s}let i=ga(this.recordingProdStack),a=new Ar({idx:r,terminalType:e,label:n?.LABEL});return i.definition.push(a),Cpe}};o(mb,"recordProd");o(tXe,"recordOrProd");o(Epe,"getIdxSuffix");o(_S,"assertMethodIdxIsValid")});var LS,_pe=M(()=>{"use strict";Yt();d1();js();LS=class{static{o(this,"PerformanceTracer")}initPerformanceTracer(e){if(Ft(e,"traceInitPerf")){let r=e.traceInitPerf,n=typeof r=="number";this.traceInitMaxIdent=n?r:1/0,this.traceInitPerf=n?r>0:r}else this.traceInitMaxIdent=0,this.traceInitPerf=ms.traceInitPerf;this.traceInitIndent=-1}TRACE_INIT(e,r){if(this.traceInitPerf===!0){this.traceInitIndent++;let n=new Array(this.traceInitIndent+1).join(" ");this.traceInitIndent <${e}>`);let{time:i,value:a}=Jx(r),s=i>10?console.warn:console.log;return this.traceInitIndent time: ${i}ms`),this.traceInitIndent--,a}else return r()}}});function Dpe(t,e){e.forEach(r=>{let n=r.prototype;Object.getOwnPropertyNames(n).forEach(i=>{if(i==="constructor")return;let a=Object.getOwnPropertyDescriptor(n,i);a&&(a.get||a.set)?Object.defineProperty(t.prototype,i,a):t.prototype[i]=r.prototype[i]})})}var Lpe=M(()=>{"use strict";o(Dpe,"applyMixins")});function RS(t=void 0){return function(){return t}}var A1,ms,_1,Gi,gb,yb,js=M(()=>{"use strict";Yt();d1();sde();Up();b1();rpe();cP();lpe();gpe();ype();vpe();xpe();bpe();Tpe();Ape();_pe();Lpe();ub();A1=Qu(yo,"",NaN,NaN,NaN,NaN,NaN,NaN);Object.freeze(A1);ms=Object.freeze({recoveryEnabled:!1,maxLookahead:3,dynamicTokensEnabled:!1,outputCst:!0,errorMessageProvider:Zu,nodeLocationTracking:"none",traceInitPerf:!1,skipValidations:!1}),_1=Object.freeze({recoveryValueFunc:o(()=>{},"recoveryValueFunc"),resyncEnabled:!0});(function(t){t[t.INVALID_RULE_NAME=0]="INVALID_RULE_NAME",t[t.DUPLICATE_RULE_NAME=1]="DUPLICATE_RULE_NAME",t[t.INVALID_RULE_OVERRIDE=2]="INVALID_RULE_OVERRIDE",t[t.DUPLICATE_PRODUCTIONS=3]="DUPLICATE_PRODUCTIONS",t[t.UNRESOLVED_SUBRULE_REF=4]="UNRESOLVED_SUBRULE_REF",t[t.LEFT_RECURSION=5]="LEFT_RECURSION",t[t.NONE_LAST_EMPTY_ALT=6]="NONE_LAST_EMPTY_ALT",t[t.AMBIGUOUS_ALTS=7]="AMBIGUOUS_ALTS",t[t.CONFLICT_TOKENS_RULES_NAMESPACE=8]="CONFLICT_TOKENS_RULES_NAMESPACE",t[t.INVALID_TOKEN_NAME=9]="INVALID_TOKEN_NAME",t[t.NO_NON_EMPTY_LOOKAHEAD=10]="NO_NON_EMPTY_LOOKAHEAD",t[t.AMBIGUOUS_PREFIX_ALTS=11]="AMBIGUOUS_PREFIX_ALTS",t[t.TOO_MANY_ALTS=12]="TOO_MANY_ALTS",t[t.CUSTOM_LOOKAHEAD_VALIDATION=13]="CUSTOM_LOOKAHEAD_VALIDATION"})(Gi||(Gi={}));o(RS,"EMPTY_ALT");gb=class t{static{o(this,"Parser")}static performSelfAnalysis(e){throw Error("The **static** `performSelfAnalysis` method has been deprecated. \nUse the **instance** method with the same name instead.")}performSelfAnalysis(){this.TRACE_INIT("performSelfAnalysis",()=>{let e;this.selfAnalysisDone=!0;let r=this.className;this.TRACE_INIT("toFastProps",()=>{eb(this)}),this.TRACE_INIT("Grammar Recording",()=>{try{this.enableRecording(),Ae(this.definedRulesNames,i=>{let s=this[i].originalGrammarAction,l;this.TRACE_INIT(`${i} Rule`,()=>{l=this.topLevelRuleRecord(i,s)}),this.gastProductionsCache[i]=l})}finally{this.disableRecording()}});let n=[];if(this.TRACE_INIT("Grammar Resolving",()=>{n=epe({rules:kr(this.gastProductionsCache)}),this.definitionErrors=this.definitionErrors.concat(n)}),this.TRACE_INIT("Grammar Validations",()=>{if(mr(n)&&this.skipValidations===!1){let i=tpe({rules:kr(this.gastProductionsCache),tokenTypes:kr(this.tokensMap),errMsgProvider:Gl,grammarName:r}),a=Yde({lookaheadStrategy:this.lookaheadStrategy,rules:kr(this.gastProductionsCache),tokenTypes:kr(this.tokensMap),grammarName:r});this.definitionErrors=this.definitionErrors.concat(i,a)}}),mr(this.definitionErrors)&&(this.recoveryEnabled&&this.TRACE_INIT("computeAllProdsFollows",()=>{let i=ade(kr(this.gastProductionsCache));this.resyncFollows=i}),this.TRACE_INIT("ComputeLookaheadFunctions",()=>{var i,a;(a=(i=this.lookaheadStrategy).initialize)===null||a===void 0||a.call(i,{rules:kr(this.gastProductionsCache)}),this.preComputeLookaheadFunctions(kr(this.gastProductionsCache))})),!t.DEFER_DEFINITION_ERRORS_HANDLING&&!mr(this.definitionErrors))throw e=rt(this.definitionErrors,i=>i.message),new Error(`Parser Definition Errors detected: + ${e.join(` +------------------------------- +`)}`)})}constructor(e,r){this.definitionErrors=[],this.selfAnalysisDone=!1;let n=this;if(n.initErrorHandler(r),n.initLexerAdapter(),n.initLooksAhead(r),n.initRecognizerEngine(e,r),n.initRecoverable(r),n.initTreeBuilder(r),n.initContentAssist(),n.initGastRecorder(r),n.initPerformanceTracer(r),Ft(r,"ignoredIssues"))throw new Error(`The IParserConfig property has been deprecated. + Please use the flag on the relevant DSL method instead. + See: https://chevrotain.io/docs/guide/resolving_grammar_errors.html#IGNORING_AMBIGUITIES + For further details.`);this.skipValidations=Ft(r,"skipValidations")?r.skipValidations:ms.skipValidations}};gb.DEFER_DEFINITION_ERRORS_HANDLING=!1;Dpe(gb,[dS,yS,TS,wS,ES,kS,SS,CS,AS,LS]);yb=class extends gb{static{o(this,"EmbeddedActionsParser")}constructor(e,r=ms){let n=ln(r);n.outputCst=!1,super(e,n)}}});var Rpe=M(()=>{"use strict";ps()});var Npe=M(()=>{"use strict"});var Mpe=M(()=>{"use strict";Rpe();Npe()});var Ipe=M(()=>{"use strict";FO()});var Ff=M(()=>{"use strict";FO();js();rb();Up();E1();uP();b1();C1();QO();ps();ps();Mpe();Ipe()});function qp(t,e,r){return`${t.name}_${e}_${r}`}function Fpe(t){let e={decisionMap:{},decisionStates:[],ruleToStartState:new Map,ruleToStopState:new Map,states:[]};lXe(e,t);let r=t.length;for(let n=0;n$pe(t,e,s));return N1(t,e,n,r,...i)}function pXe(t,e,r){let n=ia(t,e,r,{type:$f});zf(t,n);let i=N1(t,e,n,r,Wp(t,e,r));return mXe(t,e,r,i)}function Wp(t,e,r){let n=Zr(rt(r.definition,i=>$pe(t,e,i)),i=>i!==void 0);return n.length===1?n[0]:n.length===0?void 0:yXe(t,n)}function zpe(t,e,r,n,i){let a=n.left,s=n.right,l=ia(t,e,r,{type:oXe});zf(t,l);let u=ia(t,e,r,{type:Bpe});return a.loopback=l,u.loopback=l,t.decisionMap[qp(e,i?"RepetitionMandatoryWithSeparator":"RepetitionMandatory",r.idx)]=l,Di(s,l),i===void 0?(Di(l,a),Di(l,u)):(Di(l,u),Di(l,i.left),Di(i.right,a)),{left:a,right:u}}function Gpe(t,e,r,n,i){let a=n.left,s=n.right,l=ia(t,e,r,{type:sXe});zf(t,l);let u=ia(t,e,r,{type:Bpe}),h=ia(t,e,r,{type:aXe});return l.loopback=h,u.loopback=h,Di(l,a),Di(l,u),Di(s,h),i!==void 0?(Di(h,u),Di(h,i.left),Di(i.right,a)):Di(h,l),t.decisionMap[qp(e,i?"RepetitionWithSeparator":"Repetition",r.idx)]=l,{left:l,right:u}}function mXe(t,e,r,n){let i=n.left,a=n.right;return Di(i,a),t.decisionMap[qp(e,"Option",r.idx)]=i,n}function zf(t,e){return t.decisionStates.push(e),e.decision=t.decisionStates.length-1,e.decision}function N1(t,e,r,n,...i){let a=ia(t,e,n,{type:iXe,start:r});r.end=a;for(let l of i)l!==void 0?(Di(r,l.left),Di(l.right,a)):Di(r,a);let s={left:r,right:a};return t.decisionMap[qp(e,gXe(n),n.idx)]=r,s}function gXe(t){if(t instanceof Dn)return"Alternation";if(t instanceof dn)return"Option";if(t instanceof zr)return"Repetition";if(t instanceof _n)return"RepetitionWithSeparator";if(t instanceof Bn)return"RepetitionMandatory";if(t instanceof Fn)return"RepetitionMandatoryWithSeparator";throw new Error("Invalid production type encountered")}function yXe(t,e){let r=e.length;for(let a=0;a{"use strict";Vm();ER();Ff();o(qp,"buildATNKey");$f=1,nXe=2,Ope=4,Ppe=5,R1=7,iXe=8,aXe=9,sXe=10,oXe=11,Bpe=12,vb=class{static{o(this,"AbstractTransition")}constructor(e){this.target=e}isEpsilon(){return!1}},D1=class extends vb{static{o(this,"AtomTransition")}constructor(e,r){super(e),this.tokenType=r}},xb=class extends vb{static{o(this,"EpsilonTransition")}constructor(e){super(e)}isEpsilon(){return!0}},L1=class extends vb{static{o(this,"RuleTransition")}constructor(e,r,n){super(e),this.rule=r,this.followState=n}isEpsilon(){return!0}};o(Fpe,"createATN");o(lXe,"createRuleStartAndStopATNStates");o($pe,"atom");o(cXe,"repetition");o(uXe,"repetitionSep");o(hXe,"repetitionMandatory");o(fXe,"repetitionMandatorySep");o(dXe,"alternation");o(pXe,"option");o(Wp,"block");o(zpe,"plus");o(Gpe,"star");o(mXe,"optional");o(zf,"defineDecisionState");o(N1,"makeAlts");o(gXe,"getProdType");o(yXe,"makeBlock");o(xP,"tokenRef");o(vXe,"ruleRef");o(xXe,"buildRuleHandle");o(Di,"epsilon");o(ia,"newState");o(bP,"addTransition");o(bXe,"removeState")});function TP(t,e=!0){return`${e?`a${t.alt}`:""}s${t.state.stateNumber}:${t.stack.map(r=>r.stateNumber.toString()).join("_")}`}var bb,M1,Upe=M(()=>{"use strict";Vm();bb={},M1=class{static{o(this,"ATNConfigSet")}constructor(){this.map={},this.configs=[]}get size(){return this.configs.length}finalize(){this.map={}}add(e){let r=TP(e);r in this.map||(this.map[r]=this.configs.length,this.configs.push(e))}get elements(){return this.configs}get alts(){return rt(this.configs,e=>e.alt)}get key(){let e="";for(let r in this.map)e+=r+":";return e}};o(TP,"getATNConfigKey")});function TXe(t,e){let r={};return n=>{let i=n.toString(),a=r[i];return a!==void 0||(a={atnStartState:t,decision:e,states:{}},r[i]=a),a}}function qpe(t,e=!0){let r=new Set;for(let n of t){let i=new Set;for(let a of n){if(a===void 0){if(e)break;return!1}let s=[a.tokenTypeIdx].concat(a.categoryMatches);for(let l of s)if(r.has(l)){if(!i.has(l))return!1}else r.add(l),i.add(l)}}return!0}function wXe(t){let e=t.decisionStates.length,r=Array(e);for(let n=0;nKu(i)).join(", "),r=t.production.idx===0?"":t.production.idx,n=`Ambiguous Alternatives Detected: <${t.ambiguityIndices.join(", ")}> in <${AXe(t.production)}${r}> inside <${t.topLevelRule.name}> Rule, +<${e}> may appears as a prefix path in all these alternatives. +`;return n=n+`See: https://chevrotain.io/docs/guide/resolving_grammar_errors.html#AMBIGUOUS_ALTERNATIVES +For Further details.`,n}function AXe(t){if(t instanceof fn)return"SUBRULE";if(t instanceof dn)return"OPTION";if(t instanceof Dn)return"OR";if(t instanceof Bn)return"AT_LEAST_ONE";if(t instanceof Fn)return"AT_LEAST_ONE_SEP";if(t instanceof _n)return"MANY_SEP";if(t instanceof zr)return"MANY";if(t instanceof Ar)return"CONSUME";throw Error("non exhaustive match")}function _Xe(t,e,r){let n=ya(e.configs.elements,a=>a.state.transitions),i=Wae(n.filter(a=>a instanceof D1).map(a=>a.tokenType),a=>a.tokenTypeIdx);return{actualToken:r,possibleTokenTypes:i,tokenPath:t}}function DXe(t,e){return t.edges[e.tokenTypeIdx]}function LXe(t,e,r){let n=new M1,i=[];for(let s of t.elements){if(r.is(s.alt)===!1)continue;if(s.state.type===R1){i.push(s);continue}let l=s.state.transitions.length;for(let u=0;u0&&!OXe(a))for(let s of i)a.add(s);return a}function RXe(t,e){if(t instanceof D1&&ib(e,t.tokenType))return t.target}function NXe(t,e){let r;for(let n of t.elements)if(e.is(n.alt)===!0){if(r===void 0)r=n.alt;else if(r!==n.alt)return}return r}function Ype(t){return{configs:t,edges:{},isAcceptState:!1,prediction:-1}}function Wpe(t,e,r,n){return n=Xpe(t,n),e.edges[r.tokenTypeIdx]=n,n}function Xpe(t,e){if(e===bb)return e;let r=e.configs.key,n=t.states[r];return n!==void 0?n:(e.configs.finalize(),t.states[r]=e,e)}function MXe(t){let e=new M1,r=t.transitions.length;for(let n=0;n0){let i=[...t.stack],s={state:i.pop(),alt:t.alt,stack:i};MS(s,e)}else e.add(t);return}r.epsilonOnlyTransitions||e.add(t);let n=r.transitions.length;for(let i=0;i1)return!0;return!1}function zXe(t){for(let e of Array.from(t.values()))if(Object.keys(e).length===1)return!0;return!1}var NS,Hpe,Tb,jpe=M(()=>{"use strict";Ff();Vpe();Upe();NR();CR();Yae();Vm();Rw();sk();hk();PR();o(TXe,"createDFACache");NS=class{static{o(this,"PredicateSet")}constructor(){this.predicates=[]}is(e){return e>=this.predicates.length||this.predicates[e]}set(e,r){this.predicates[e]=r}toString(){let e="",r=this.predicates.length;for(let n=0;nconsole.log(n))}initialize(e){this.atn=Fpe(e.rules),this.dfas=wXe(this.atn)}validateAmbiguousAlternationAlternatives(){return[]}validateEmptyOrAlternatives(){return[]}buildLookaheadForAlternation(e){let{prodOccurrence:r,rule:n,hasPredicates:i,dynamicTokensEnabled:a}=e,s=this.dfas,l=this.logging,u=qp(n,"Alternation",r),f=this.atn.decisionMap[u].decision,d=rt(uS({maxLookahead:1,occurrence:r,prodType:"Alternation",rule:n}),p=>rt(p,m=>m[0]));if(qpe(d,!1)&&!a){let p=Jr(d,(m,g,y)=>(Ae(g,v=>{v&&(m[v.tokenTypeIdx]=y,Ae(v.categoryMatches,x=>{m[x]=y}))}),m),{});return i?function(m){var g;let y=this.LA(1),v=p[y.tokenTypeIdx];if(m!==void 0&&v!==void 0){let x=(g=m[v])===null||g===void 0?void 0:g.GATE;if(x!==void 0&&x.call(this)===!1)return}return v}:function(){let m=this.LA(1);return p[m.tokenTypeIdx]}}else return i?function(p){let m=new NS,g=p===void 0?0:p.length;for(let v=0;vrt(p,m=>m[0]));if(qpe(d)&&d[0][0]&&!a){let p=d[0],m=Qr(p);if(m.length===1&&mr(m[0].categoryMatches)){let y=m[0].tokenTypeIdx;return function(){return this.LA(1).tokenTypeIdx===y}}else{let g=Jr(m,(y,v)=>(v!==void 0&&(y[v.tokenTypeIdx]=!0,Ae(v.categoryMatches,x=>{y[x]=!0})),y),{});return function(){let y=this.LA(1);return g[y.tokenTypeIdx]===!0}}}return function(){let p=wP.call(this,s,f,Hpe,l);return typeof p=="object"?!1:p===0}}};o(qpe,"isLL1Sequence");o(wXe,"initATNSimulator");o(wP,"adaptivePredict");o(kXe,"performLookahead");o(EXe,"computeLookaheadTarget");o(SXe,"reportLookaheadAmbiguity");o(CXe,"buildAmbiguityError");o(AXe,"getProductionDslName");o(_Xe,"buildAdaptivePredictError");o(DXe,"getExistingTargetState");o(LXe,"computeReachSet");o(RXe,"getReachableTarget");o(NXe,"getUniqueAlt");o(Ype,"newDFAState");o(Wpe,"addDFAEdge");o(Xpe,"addDFAState");o(MXe,"computeStartState");o(MS,"closure");o(IXe,"getEpsilonTarget");o(OXe,"hasConfigInRuleStopState");o(PXe,"allConfigsInRuleStopStates");o(BXe,"hasConflictTerminatingPrediction");o(FXe,"getConflictingAltSets");o($Xe,"hasConflictingAltSet");o(zXe,"hasStateAssociatedWithOneAlt")});var Kpe=M(()=>{"use strict";jpe()});var Qpe,kP,Zpe,IS,tn,Gr,OS,Jpe,EP,e0e,t0e,r0e,n0e,SP,i0e,a0e,s0e,PS,I1,O1,CP,P1,o0e,AP,_P,DP,LP,RP,l0e,c0e,NP,u0e,MP,wb,h0e,f0e,d0e,p0e,m0e,g0e,y0e,v0e,BS,x0e,b0e,T0e,w0e,k0e,E0e,S0e,C0e,A0e,_0e,D0e,FS,L0e,R0e,N0e,M0e,I0e,O0e,P0e,B0e,F0e,$0e,z0e,G0e,V0e,IP,OP,U0e,H0e,q0e,W0e,Y0e,X0e,j0e,K0e,Q0e,PP,Ge,BP=M(()=>{"use strict";(function(t){function e(r){return typeof r=="string"}o(e,"is"),t.is=e})(Qpe||(Qpe={}));(function(t){function e(r){return typeof r=="string"}o(e,"is"),t.is=e})(kP||(kP={}));(function(t){t.MIN_VALUE=-2147483648,t.MAX_VALUE=2147483647;function e(r){return typeof r=="number"&&t.MIN_VALUE<=r&&r<=t.MAX_VALUE}o(e,"is"),t.is=e})(Zpe||(Zpe={}));(function(t){t.MIN_VALUE=0,t.MAX_VALUE=2147483647;function e(r){return typeof r=="number"&&t.MIN_VALUE<=r&&r<=t.MAX_VALUE}o(e,"is"),t.is=e})(IS||(IS={}));(function(t){function e(n,i){return n===Number.MAX_VALUE&&(n=IS.MAX_VALUE),i===Number.MAX_VALUE&&(i=IS.MAX_VALUE),{line:n,character:i}}o(e,"create"),t.create=e;function r(n){let i=n;return Ge.objectLiteral(i)&&Ge.uinteger(i.line)&&Ge.uinteger(i.character)}o(r,"is"),t.is=r})(tn||(tn={}));(function(t){function e(n,i,a,s){if(Ge.uinteger(n)&&Ge.uinteger(i)&&Ge.uinteger(a)&&Ge.uinteger(s))return{start:tn.create(n,i),end:tn.create(a,s)};if(tn.is(n)&&tn.is(i))return{start:n,end:i};throw new Error(`Range#create called with invalid arguments[${n}, ${i}, ${a}, ${s}]`)}o(e,"create"),t.create=e;function r(n){let i=n;return Ge.objectLiteral(i)&&tn.is(i.start)&&tn.is(i.end)}o(r,"is"),t.is=r})(Gr||(Gr={}));(function(t){function e(n,i){return{uri:n,range:i}}o(e,"create"),t.create=e;function r(n){let i=n;return Ge.objectLiteral(i)&&Gr.is(i.range)&&(Ge.string(i.uri)||Ge.undefined(i.uri))}o(r,"is"),t.is=r})(OS||(OS={}));(function(t){function e(n,i,a,s){return{targetUri:n,targetRange:i,targetSelectionRange:a,originSelectionRange:s}}o(e,"create"),t.create=e;function r(n){let i=n;return Ge.objectLiteral(i)&&Gr.is(i.targetRange)&&Ge.string(i.targetUri)&&Gr.is(i.targetSelectionRange)&&(Gr.is(i.originSelectionRange)||Ge.undefined(i.originSelectionRange))}o(r,"is"),t.is=r})(Jpe||(Jpe={}));(function(t){function e(n,i,a,s){return{red:n,green:i,blue:a,alpha:s}}o(e,"create"),t.create=e;function r(n){let i=n;return Ge.objectLiteral(i)&&Ge.numberRange(i.red,0,1)&&Ge.numberRange(i.green,0,1)&&Ge.numberRange(i.blue,0,1)&&Ge.numberRange(i.alpha,0,1)}o(r,"is"),t.is=r})(EP||(EP={}));(function(t){function e(n,i){return{range:n,color:i}}o(e,"create"),t.create=e;function r(n){let i=n;return Ge.objectLiteral(i)&&Gr.is(i.range)&&EP.is(i.color)}o(r,"is"),t.is=r})(e0e||(e0e={}));(function(t){function e(n,i,a){return{label:n,textEdit:i,additionalTextEdits:a}}o(e,"create"),t.create=e;function r(n){let i=n;return Ge.objectLiteral(i)&&Ge.string(i.label)&&(Ge.undefined(i.textEdit)||O1.is(i))&&(Ge.undefined(i.additionalTextEdits)||Ge.typedArray(i.additionalTextEdits,O1.is))}o(r,"is"),t.is=r})(t0e||(t0e={}));(function(t){t.Comment="comment",t.Imports="imports",t.Region="region"})(r0e||(r0e={}));(function(t){function e(n,i,a,s,l,u){let h={startLine:n,endLine:i};return Ge.defined(a)&&(h.startCharacter=a),Ge.defined(s)&&(h.endCharacter=s),Ge.defined(l)&&(h.kind=l),Ge.defined(u)&&(h.collapsedText=u),h}o(e,"create"),t.create=e;function r(n){let i=n;return Ge.objectLiteral(i)&&Ge.uinteger(i.startLine)&&Ge.uinteger(i.startLine)&&(Ge.undefined(i.startCharacter)||Ge.uinteger(i.startCharacter))&&(Ge.undefined(i.endCharacter)||Ge.uinteger(i.endCharacter))&&(Ge.undefined(i.kind)||Ge.string(i.kind))}o(r,"is"),t.is=r})(n0e||(n0e={}));(function(t){function e(n,i){return{location:n,message:i}}o(e,"create"),t.create=e;function r(n){let i=n;return Ge.defined(i)&&OS.is(i.location)&&Ge.string(i.message)}o(r,"is"),t.is=r})(SP||(SP={}));(function(t){t.Error=1,t.Warning=2,t.Information=3,t.Hint=4})(i0e||(i0e={}));(function(t){t.Unnecessary=1,t.Deprecated=2})(a0e||(a0e={}));(function(t){function e(r){let n=r;return Ge.objectLiteral(n)&&Ge.string(n.href)}o(e,"is"),t.is=e})(s0e||(s0e={}));(function(t){function e(n,i,a,s,l,u){let h={range:n,message:i};return Ge.defined(a)&&(h.severity=a),Ge.defined(s)&&(h.code=s),Ge.defined(l)&&(h.source=l),Ge.defined(u)&&(h.relatedInformation=u),h}o(e,"create"),t.create=e;function r(n){var i;let a=n;return Ge.defined(a)&&Gr.is(a.range)&&Ge.string(a.message)&&(Ge.number(a.severity)||Ge.undefined(a.severity))&&(Ge.integer(a.code)||Ge.string(a.code)||Ge.undefined(a.code))&&(Ge.undefined(a.codeDescription)||Ge.string((i=a.codeDescription)===null||i===void 0?void 0:i.href))&&(Ge.string(a.source)||Ge.undefined(a.source))&&(Ge.undefined(a.relatedInformation)||Ge.typedArray(a.relatedInformation,SP.is))}o(r,"is"),t.is=r})(PS||(PS={}));(function(t){function e(n,i,...a){let s={title:n,command:i};return Ge.defined(a)&&a.length>0&&(s.arguments=a),s}o(e,"create"),t.create=e;function r(n){let i=n;return Ge.defined(i)&&Ge.string(i.title)&&Ge.string(i.command)}o(r,"is"),t.is=r})(I1||(I1={}));(function(t){function e(a,s){return{range:a,newText:s}}o(e,"replace"),t.replace=e;function r(a,s){return{range:{start:a,end:a},newText:s}}o(r,"insert"),t.insert=r;function n(a){return{range:a,newText:""}}o(n,"del"),t.del=n;function i(a){let s=a;return Ge.objectLiteral(s)&&Ge.string(s.newText)&&Gr.is(s.range)}o(i,"is"),t.is=i})(O1||(O1={}));(function(t){function e(n,i,a){let s={label:n};return i!==void 0&&(s.needsConfirmation=i),a!==void 0&&(s.description=a),s}o(e,"create"),t.create=e;function r(n){let i=n;return Ge.objectLiteral(i)&&Ge.string(i.label)&&(Ge.boolean(i.needsConfirmation)||i.needsConfirmation===void 0)&&(Ge.string(i.description)||i.description===void 0)}o(r,"is"),t.is=r})(CP||(CP={}));(function(t){function e(r){let n=r;return Ge.string(n)}o(e,"is"),t.is=e})(P1||(P1={}));(function(t){function e(a,s,l){return{range:a,newText:s,annotationId:l}}o(e,"replace"),t.replace=e;function r(a,s,l){return{range:{start:a,end:a},newText:s,annotationId:l}}o(r,"insert"),t.insert=r;function n(a,s){return{range:a,newText:"",annotationId:s}}o(n,"del"),t.del=n;function i(a){let s=a;return O1.is(s)&&(CP.is(s.annotationId)||P1.is(s.annotationId))}o(i,"is"),t.is=i})(o0e||(o0e={}));(function(t){function e(n,i){return{textDocument:n,edits:i}}o(e,"create"),t.create=e;function r(n){let i=n;return Ge.defined(i)&&NP.is(i.textDocument)&&Array.isArray(i.edits)}o(r,"is"),t.is=r})(AP||(AP={}));(function(t){function e(n,i,a){let s={kind:"create",uri:n};return i!==void 0&&(i.overwrite!==void 0||i.ignoreIfExists!==void 0)&&(s.options=i),a!==void 0&&(s.annotationId=a),s}o(e,"create"),t.create=e;function r(n){let i=n;return i&&i.kind==="create"&&Ge.string(i.uri)&&(i.options===void 0||(i.options.overwrite===void 0||Ge.boolean(i.options.overwrite))&&(i.options.ignoreIfExists===void 0||Ge.boolean(i.options.ignoreIfExists)))&&(i.annotationId===void 0||P1.is(i.annotationId))}o(r,"is"),t.is=r})(_P||(_P={}));(function(t){function e(n,i,a,s){let l={kind:"rename",oldUri:n,newUri:i};return a!==void 0&&(a.overwrite!==void 0||a.ignoreIfExists!==void 0)&&(l.options=a),s!==void 0&&(l.annotationId=s),l}o(e,"create"),t.create=e;function r(n){let i=n;return i&&i.kind==="rename"&&Ge.string(i.oldUri)&&Ge.string(i.newUri)&&(i.options===void 0||(i.options.overwrite===void 0||Ge.boolean(i.options.overwrite))&&(i.options.ignoreIfExists===void 0||Ge.boolean(i.options.ignoreIfExists)))&&(i.annotationId===void 0||P1.is(i.annotationId))}o(r,"is"),t.is=r})(DP||(DP={}));(function(t){function e(n,i,a){let s={kind:"delete",uri:n};return i!==void 0&&(i.recursive!==void 0||i.ignoreIfNotExists!==void 0)&&(s.options=i),a!==void 0&&(s.annotationId=a),s}o(e,"create"),t.create=e;function r(n){let i=n;return i&&i.kind==="delete"&&Ge.string(i.uri)&&(i.options===void 0||(i.options.recursive===void 0||Ge.boolean(i.options.recursive))&&(i.options.ignoreIfNotExists===void 0||Ge.boolean(i.options.ignoreIfNotExists)))&&(i.annotationId===void 0||P1.is(i.annotationId))}o(r,"is"),t.is=r})(LP||(LP={}));(function(t){function e(r){let n=r;return n&&(n.changes!==void 0||n.documentChanges!==void 0)&&(n.documentChanges===void 0||n.documentChanges.every(i=>Ge.string(i.kind)?_P.is(i)||DP.is(i)||LP.is(i):AP.is(i)))}o(e,"is"),t.is=e})(RP||(RP={}));(function(t){function e(n){return{uri:n}}o(e,"create"),t.create=e;function r(n){let i=n;return Ge.defined(i)&&Ge.string(i.uri)}o(r,"is"),t.is=r})(l0e||(l0e={}));(function(t){function e(n,i){return{uri:n,version:i}}o(e,"create"),t.create=e;function r(n){let i=n;return Ge.defined(i)&&Ge.string(i.uri)&&Ge.integer(i.version)}o(r,"is"),t.is=r})(c0e||(c0e={}));(function(t){function e(n,i){return{uri:n,version:i}}o(e,"create"),t.create=e;function r(n){let i=n;return Ge.defined(i)&&Ge.string(i.uri)&&(i.version===null||Ge.integer(i.version))}o(r,"is"),t.is=r})(NP||(NP={}));(function(t){function e(n,i,a,s){return{uri:n,languageId:i,version:a,text:s}}o(e,"create"),t.create=e;function r(n){let i=n;return Ge.defined(i)&&Ge.string(i.uri)&&Ge.string(i.languageId)&&Ge.integer(i.version)&&Ge.string(i.text)}o(r,"is"),t.is=r})(u0e||(u0e={}));(function(t){t.PlainText="plaintext",t.Markdown="markdown";function e(r){let n=r;return n===t.PlainText||n===t.Markdown}o(e,"is"),t.is=e})(MP||(MP={}));(function(t){function e(r){let n=r;return Ge.objectLiteral(r)&&MP.is(n.kind)&&Ge.string(n.value)}o(e,"is"),t.is=e})(wb||(wb={}));(function(t){t.Text=1,t.Method=2,t.Function=3,t.Constructor=4,t.Field=5,t.Variable=6,t.Class=7,t.Interface=8,t.Module=9,t.Property=10,t.Unit=11,t.Value=12,t.Enum=13,t.Keyword=14,t.Snippet=15,t.Color=16,t.File=17,t.Reference=18,t.Folder=19,t.EnumMember=20,t.Constant=21,t.Struct=22,t.Event=23,t.Operator=24,t.TypeParameter=25})(h0e||(h0e={}));(function(t){t.PlainText=1,t.Snippet=2})(f0e||(f0e={}));(function(t){t.Deprecated=1})(d0e||(d0e={}));(function(t){function e(n,i,a){return{newText:n,insert:i,replace:a}}o(e,"create"),t.create=e;function r(n){let i=n;return i&&Ge.string(i.newText)&&Gr.is(i.insert)&&Gr.is(i.replace)}o(r,"is"),t.is=r})(p0e||(p0e={}));(function(t){t.asIs=1,t.adjustIndentation=2})(m0e||(m0e={}));(function(t){function e(r){let n=r;return n&&(Ge.string(n.detail)||n.detail===void 0)&&(Ge.string(n.description)||n.description===void 0)}o(e,"is"),t.is=e})(g0e||(g0e={}));(function(t){function e(r){return{label:r}}o(e,"create"),t.create=e})(y0e||(y0e={}));(function(t){function e(r,n){return{items:r||[],isIncomplete:!!n}}o(e,"create"),t.create=e})(v0e||(v0e={}));(function(t){function e(n){return n.replace(/[\\`*_{}[\]()#+\-.!]/g,"\\$&")}o(e,"fromPlainText"),t.fromPlainText=e;function r(n){let i=n;return Ge.string(i)||Ge.objectLiteral(i)&&Ge.string(i.language)&&Ge.string(i.value)}o(r,"is"),t.is=r})(BS||(BS={}));(function(t){function e(r){let n=r;return!!n&&Ge.objectLiteral(n)&&(wb.is(n.contents)||BS.is(n.contents)||Ge.typedArray(n.contents,BS.is))&&(r.range===void 0||Gr.is(r.range))}o(e,"is"),t.is=e})(x0e||(x0e={}));(function(t){function e(r,n){return n?{label:r,documentation:n}:{label:r}}o(e,"create"),t.create=e})(b0e||(b0e={}));(function(t){function e(r,n,...i){let a={label:r};return Ge.defined(n)&&(a.documentation=n),Ge.defined(i)?a.parameters=i:a.parameters=[],a}o(e,"create"),t.create=e})(T0e||(T0e={}));(function(t){t.Text=1,t.Read=2,t.Write=3})(w0e||(w0e={}));(function(t){function e(r,n){let i={range:r};return Ge.number(n)&&(i.kind=n),i}o(e,"create"),t.create=e})(k0e||(k0e={}));(function(t){t.File=1,t.Module=2,t.Namespace=3,t.Package=4,t.Class=5,t.Method=6,t.Property=7,t.Field=8,t.Constructor=9,t.Enum=10,t.Interface=11,t.Function=12,t.Variable=13,t.Constant=14,t.String=15,t.Number=16,t.Boolean=17,t.Array=18,t.Object=19,t.Key=20,t.Null=21,t.EnumMember=22,t.Struct=23,t.Event=24,t.Operator=25,t.TypeParameter=26})(E0e||(E0e={}));(function(t){t.Deprecated=1})(S0e||(S0e={}));(function(t){function e(r,n,i,a,s){let l={name:r,kind:n,location:{uri:a,range:i}};return s&&(l.containerName=s),l}o(e,"create"),t.create=e})(C0e||(C0e={}));(function(t){function e(r,n,i,a){return a!==void 0?{name:r,kind:n,location:{uri:i,range:a}}:{name:r,kind:n,location:{uri:i}}}o(e,"create"),t.create=e})(A0e||(A0e={}));(function(t){function e(n,i,a,s,l,u){let h={name:n,detail:i,kind:a,range:s,selectionRange:l};return u!==void 0&&(h.children=u),h}o(e,"create"),t.create=e;function r(n){let i=n;return i&&Ge.string(i.name)&&Ge.number(i.kind)&&Gr.is(i.range)&&Gr.is(i.selectionRange)&&(i.detail===void 0||Ge.string(i.detail))&&(i.deprecated===void 0||Ge.boolean(i.deprecated))&&(i.children===void 0||Array.isArray(i.children))&&(i.tags===void 0||Array.isArray(i.tags))}o(r,"is"),t.is=r})(_0e||(_0e={}));(function(t){t.Empty="",t.QuickFix="quickfix",t.Refactor="refactor",t.RefactorExtract="refactor.extract",t.RefactorInline="refactor.inline",t.RefactorRewrite="refactor.rewrite",t.Source="source",t.SourceOrganizeImports="source.organizeImports",t.SourceFixAll="source.fixAll"})(D0e||(D0e={}));(function(t){t.Invoked=1,t.Automatic=2})(FS||(FS={}));(function(t){function e(n,i,a){let s={diagnostics:n};return i!=null&&(s.only=i),a!=null&&(s.triggerKind=a),s}o(e,"create"),t.create=e;function r(n){let i=n;return Ge.defined(i)&&Ge.typedArray(i.diagnostics,PS.is)&&(i.only===void 0||Ge.typedArray(i.only,Ge.string))&&(i.triggerKind===void 0||i.triggerKind===FS.Invoked||i.triggerKind===FS.Automatic)}o(r,"is"),t.is=r})(L0e||(L0e={}));(function(t){function e(n,i,a){let s={title:n},l=!0;return typeof i=="string"?(l=!1,s.kind=i):I1.is(i)?s.command=i:s.edit=i,l&&a!==void 0&&(s.kind=a),s}o(e,"create"),t.create=e;function r(n){let i=n;return i&&Ge.string(i.title)&&(i.diagnostics===void 0||Ge.typedArray(i.diagnostics,PS.is))&&(i.kind===void 0||Ge.string(i.kind))&&(i.edit!==void 0||i.command!==void 0)&&(i.command===void 0||I1.is(i.command))&&(i.isPreferred===void 0||Ge.boolean(i.isPreferred))&&(i.edit===void 0||RP.is(i.edit))}o(r,"is"),t.is=r})(R0e||(R0e={}));(function(t){function e(n,i){let a={range:n};return Ge.defined(i)&&(a.data=i),a}o(e,"create"),t.create=e;function r(n){let i=n;return Ge.defined(i)&&Gr.is(i.range)&&(Ge.undefined(i.command)||I1.is(i.command))}o(r,"is"),t.is=r})(N0e||(N0e={}));(function(t){function e(n,i){return{tabSize:n,insertSpaces:i}}o(e,"create"),t.create=e;function r(n){let i=n;return Ge.defined(i)&&Ge.uinteger(i.tabSize)&&Ge.boolean(i.insertSpaces)}o(r,"is"),t.is=r})(M0e||(M0e={}));(function(t){function e(n,i,a){return{range:n,target:i,data:a}}o(e,"create"),t.create=e;function r(n){let i=n;return Ge.defined(i)&&Gr.is(i.range)&&(Ge.undefined(i.target)||Ge.string(i.target))}o(r,"is"),t.is=r})(I0e||(I0e={}));(function(t){function e(n,i){return{range:n,parent:i}}o(e,"create"),t.create=e;function r(n){let i=n;return Ge.objectLiteral(i)&&Gr.is(i.range)&&(i.parent===void 0||t.is(i.parent))}o(r,"is"),t.is=r})(O0e||(O0e={}));(function(t){t.namespace="namespace",t.type="type",t.class="class",t.enum="enum",t.interface="interface",t.struct="struct",t.typeParameter="typeParameter",t.parameter="parameter",t.variable="variable",t.property="property",t.enumMember="enumMember",t.event="event",t.function="function",t.method="method",t.macro="macro",t.keyword="keyword",t.modifier="modifier",t.comment="comment",t.string="string",t.number="number",t.regexp="regexp",t.operator="operator",t.decorator="decorator"})(P0e||(P0e={}));(function(t){t.declaration="declaration",t.definition="definition",t.readonly="readonly",t.static="static",t.deprecated="deprecated",t.abstract="abstract",t.async="async",t.modification="modification",t.documentation="documentation",t.defaultLibrary="defaultLibrary"})(B0e||(B0e={}));(function(t){function e(r){let n=r;return Ge.objectLiteral(n)&&(n.resultId===void 0||typeof n.resultId=="string")&&Array.isArray(n.data)&&(n.data.length===0||typeof n.data[0]=="number")}o(e,"is"),t.is=e})(F0e||(F0e={}));(function(t){function e(n,i){return{range:n,text:i}}o(e,"create"),t.create=e;function r(n){let i=n;return i!=null&&Gr.is(i.range)&&Ge.string(i.text)}o(r,"is"),t.is=r})($0e||($0e={}));(function(t){function e(n,i,a){return{range:n,variableName:i,caseSensitiveLookup:a}}o(e,"create"),t.create=e;function r(n){let i=n;return i!=null&&Gr.is(i.range)&&Ge.boolean(i.caseSensitiveLookup)&&(Ge.string(i.variableName)||i.variableName===void 0)}o(r,"is"),t.is=r})(z0e||(z0e={}));(function(t){function e(n,i){return{range:n,expression:i}}o(e,"create"),t.create=e;function r(n){let i=n;return i!=null&&Gr.is(i.range)&&(Ge.string(i.expression)||i.expression===void 0)}o(r,"is"),t.is=r})(G0e||(G0e={}));(function(t){function e(n,i){return{frameId:n,stoppedLocation:i}}o(e,"create"),t.create=e;function r(n){let i=n;return Ge.defined(i)&&Gr.is(n.stoppedLocation)}o(r,"is"),t.is=r})(V0e||(V0e={}));(function(t){t.Type=1,t.Parameter=2;function e(r){return r===1||r===2}o(e,"is"),t.is=e})(IP||(IP={}));(function(t){function e(n){return{value:n}}o(e,"create"),t.create=e;function r(n){let i=n;return Ge.objectLiteral(i)&&(i.tooltip===void 0||Ge.string(i.tooltip)||wb.is(i.tooltip))&&(i.location===void 0||OS.is(i.location))&&(i.command===void 0||I1.is(i.command))}o(r,"is"),t.is=r})(OP||(OP={}));(function(t){function e(n,i,a){let s={position:n,label:i};return a!==void 0&&(s.kind=a),s}o(e,"create"),t.create=e;function r(n){let i=n;return Ge.objectLiteral(i)&&tn.is(i.position)&&(Ge.string(i.label)||Ge.typedArray(i.label,OP.is))&&(i.kind===void 0||IP.is(i.kind))&&i.textEdits===void 0||Ge.typedArray(i.textEdits,O1.is)&&(i.tooltip===void 0||Ge.string(i.tooltip)||wb.is(i.tooltip))&&(i.paddingLeft===void 0||Ge.boolean(i.paddingLeft))&&(i.paddingRight===void 0||Ge.boolean(i.paddingRight))}o(r,"is"),t.is=r})(U0e||(U0e={}));(function(t){function e(r){return{kind:"snippet",value:r}}o(e,"createSnippet"),t.createSnippet=e})(H0e||(H0e={}));(function(t){function e(r,n,i,a){return{insertText:r,filterText:n,range:i,command:a}}o(e,"create"),t.create=e})(q0e||(q0e={}));(function(t){function e(r){return{items:r}}o(e,"create"),t.create=e})(W0e||(W0e={}));(function(t){t.Invoked=0,t.Automatic=1})(Y0e||(Y0e={}));(function(t){function e(r,n){return{range:r,text:n}}o(e,"create"),t.create=e})(X0e||(X0e={}));(function(t){function e(r,n){return{triggerKind:r,selectedCompletionInfo:n}}o(e,"create"),t.create=e})(j0e||(j0e={}));(function(t){function e(r){let n=r;return Ge.objectLiteral(n)&&kP.is(n.uri)&&Ge.string(n.name)}o(e,"is"),t.is=e})(K0e||(K0e={}));(function(t){function e(a,s,l,u){return new PP(a,s,l,u)}o(e,"create"),t.create=e;function r(a){let s=a;return!!(Ge.defined(s)&&Ge.string(s.uri)&&(Ge.undefined(s.languageId)||Ge.string(s.languageId))&&Ge.uinteger(s.lineCount)&&Ge.func(s.getText)&&Ge.func(s.positionAt)&&Ge.func(s.offsetAt))}o(r,"is"),t.is=r;function n(a,s){let l=a.getText(),u=i(s,(f,d)=>{let p=f.range.start.line-d.range.start.line;return p===0?f.range.start.character-d.range.start.character:p}),h=l.length;for(let f=u.length-1;f>=0;f--){let d=u[f],p=a.offsetAt(d.range.start),m=a.offsetAt(d.range.end);if(m<=h)l=l.substring(0,p)+d.newText+l.substring(m,l.length);else throw new Error("Overlapping edit");h=p}return l}o(n,"applyEdits"),t.applyEdits=n;function i(a,s){if(a.length<=1)return a;let l=a.length/2|0,u=a.slice(0,l),h=a.slice(l);i(u,s),i(h,s);let f=0,d=0,p=0;for(;f0&&e.push(r.length),this._lineOffsets=e}return this._lineOffsets}positionAt(e){e=Math.max(Math.min(e,this._content.length),0);let r=this.getLineOffsets(),n=0,i=r.length;if(i===0)return tn.create(0,e);for(;ne?i=s:n=s+1}let a=n-1;return tn.create(a,e-r[a])}offsetAt(e){let r=this.getLineOffsets();if(e.line>=r.length)return this._content.length;if(e.line<0)return 0;let n=r[e.line],i=e.line+1"u"}o(n,"undefined"),t.undefined=n;function i(m){return m===!0||m===!1}o(i,"boolean"),t.boolean=i;function a(m){return e.call(m)==="[object String]"}o(a,"string"),t.string=a;function s(m){return e.call(m)==="[object Number]"}o(s,"number"),t.number=s;function l(m,g,y){return e.call(m)==="[object Number]"&&g<=m&&m<=y}o(l,"numberRange"),t.numberRange=l;function u(m){return e.call(m)==="[object Number]"&&-2147483648<=m&&m<=2147483647}o(u,"integer"),t.integer=u;function h(m){return e.call(m)==="[object Number]"&&0<=m&&m<=2147483647}o(h,"uinteger"),t.uinteger=h;function f(m){return e.call(m)==="[object Function]"}o(f,"func"),t.func=f;function d(m){return m!==null&&typeof m=="object"}o(d,"objectLiteral"),t.objectLiteral=d;function p(m,g){return Array.isArray(m)&&m.every(g)}o(p,"typedArray"),t.typedArray=p})(Ge||(Ge={}))});var kb,Eb,Yp,Xp,FP,B1,$S=M(()=>{"use strict";BP();Bl();kb=class{static{o(this,"CstNodeBuilder")}constructor(){this.nodeStack=[]}get current(){var e;return(e=this.nodeStack[this.nodeStack.length-1])!==null&&e!==void 0?e:this.rootNode}buildRootNode(e){return this.rootNode=new B1(e),this.rootNode.root=this.rootNode,this.nodeStack=[this.rootNode],this.rootNode}buildCompositeNode(e){let r=new Xp;return r.grammarSource=e,r.root=this.rootNode,this.current.content.push(r),this.nodeStack.push(r),r}buildLeafNode(e,r){let n=new Yp(e.startOffset,e.image.length,xg(e),e.tokenType,!r);return n.grammarSource=r,n.root=this.rootNode,this.current.content.push(n),n}removeNode(e){let r=e.container;if(r){let n=r.content.indexOf(e);n>=0&&r.content.splice(n,1)}}addHiddenNodes(e){let r=[];for(let a of e){let s=new Yp(a.startOffset,a.image.length,xg(a),a.tokenType,!0);s.root=this.rootNode,r.push(s)}let n=this.current,i=!1;if(n.content.length>0){n.content.push(...r);return}for(;n.container;){let a=n.container.content.indexOf(n);if(a>0){n.container.content.splice(a,0,...r),i=!0;break}n=n.container}i||this.rootNode.content.unshift(...r)}construct(e){let r=this.current;typeof e.$type=="string"&&(this.current.astNode=e),e.$cstNode=r;let n=this.nodeStack.pop();n?.content.length===0&&this.removeNode(n)}},Eb=class{static{o(this,"AbstractCstNode")}get parent(){return this.container}get feature(){return this.grammarSource}get hidden(){return!1}get astNode(){var e,r;let n=typeof((e=this._astNode)===null||e===void 0?void 0:e.$type)=="string"?this._astNode:(r=this.container)===null||r===void 0?void 0:r.astNode;if(!n)throw new Error("This node has no associated AST element");return n}set astNode(e){this._astNode=e}get element(){return this.astNode}get text(){return this.root.fullText.substring(this.offset,this.end)}},Yp=class extends Eb{static{o(this,"LeafCstNodeImpl")}get offset(){return this._offset}get length(){return this._length}get end(){return this._offset+this._length}get hidden(){return this._hidden}get tokenType(){return this._tokenType}get range(){return this._range}constructor(e,r,n,i,a=!1){super(),this._hidden=a,this._offset=e,this._tokenType=i,this._length=r,this._range=n}},Xp=class extends Eb{static{o(this,"CompositeCstNodeImpl")}constructor(){super(...arguments),this.content=new FP(this)}get children(){return this.content}get offset(){var e,r;return(r=(e=this.firstNonHiddenNode)===null||e===void 0?void 0:e.offset)!==null&&r!==void 0?r:0}get length(){return this.end-this.offset}get end(){var e,r;return(r=(e=this.lastNonHiddenNode)===null||e===void 0?void 0:e.end)!==null&&r!==void 0?r:0}get range(){let e=this.firstNonHiddenNode,r=this.lastNonHiddenNode;if(e&&r){if(this._rangeCache===void 0){let{range:n}=e,{range:i}=r;this._rangeCache={start:n.start,end:i.end.line=0;e--){let r=this.content[e];if(!r.hidden)return r}return this.content[this.content.length-1]}},FP=class t extends Array{static{o(this,"CstNodeContainer")}constructor(e){super(),this.parent=e,Object.setPrototypeOf(this,t.prototype)}push(...e){return this.addParents(e),super.push(...e)}unshift(...e){return this.addParents(e),super.unshift(...e)}splice(e,r,...n){return this.addParents(n),super.splice(e,r,...n)}addParents(e){for(let r of e)r.container=this.parent}},B1=class extends Xp{static{o(this,"RootCstNodeImpl")}get text(){return this._text.substring(this.offset,this.end)}get fullText(){return this._text}constructor(e){super(),this._text="",this._text=e??""}}});function $P(t){return t.$type===zS}var zS,Z0e,J0e,Sb,Cb,GS,F1,Ab,GXe,zP,_b=M(()=>{"use strict";Ff();Kpe();Hc();zl();hs();$S();zS=Symbol("Datatype");o($P,"isDataTypeNode");Z0e="\u200B",J0e=o(t=>t.endsWith(Z0e)?t:t+Z0e,"withRuleSuffix"),Sb=class{static{o(this,"AbstractLangiumParser")}constructor(e){this._unorderedGroups=new Map,this.allRules=new Map,this.lexer=e.parser.Lexer;let r=this.lexer.definition,n=e.LanguageMetaData.mode==="production";this.wrapper=new zP(r,Object.assign(Object.assign({},e.parser.ParserConfig),{skipValidations:n,errorMessageProvider:e.parser.ParserErrorMessageProvider}))}alternatives(e,r){this.wrapper.wrapOr(e,r)}optional(e,r){this.wrapper.wrapOption(e,r)}many(e,r){this.wrapper.wrapMany(e,r)}atLeastOne(e,r){this.wrapper.wrapAtLeastOne(e,r)}getRule(e){return this.allRules.get(e)}isRecording(){return this.wrapper.IS_RECORDING}get unorderedGroups(){return this._unorderedGroups}getRuleStack(){return this.wrapper.RULE_STACK}finalize(){this.wrapper.wrapSelfAnalysis()}},Cb=class extends Sb{static{o(this,"LangiumParser")}get current(){return this.stack[this.stack.length-1]}constructor(e){super(e),this.nodeBuilder=new kb,this.stack=[],this.assignmentMap=new Map,this.linker=e.references.Linker,this.converter=e.parser.ValueConverter,this.astReflection=e.shared.AstReflection}rule(e,r){let n=this.computeRuleType(e),i=this.wrapper.DEFINE_RULE(J0e(e.name),this.startImplementation(n,r).bind(this));return this.allRules.set(e.name,i),e.entry&&(this.mainRule=i),i}computeRuleType(e){if(!e.fragment){if(Kx(e))return zS;{let r=c1(e);return r??e.name}}}parse(e,r={}){this.nodeBuilder.buildRootNode(e);let n=this.lexerResult=this.lexer.tokenize(e);this.wrapper.input=n.tokens;let i=r.rule?this.allRules.get(r.rule):this.mainRule;if(!i)throw new Error(r.rule?`No rule found with name '${r.rule}'`:"No main rule available.");let a=i.call(this.wrapper,{});return this.nodeBuilder.addHiddenNodes(n.hidden),this.unorderedGroups.clear(),this.lexerResult=void 0,{value:a,lexerErrors:n.errors,lexerReport:n.report,parserErrors:this.wrapper.errors}}startImplementation(e,r){return n=>{let i=!this.isRecording()&&e!==void 0;if(i){let s={$type:e};this.stack.push(s),e===zS&&(s.value="")}let a;try{a=r(n)}catch{a=void 0}return a===void 0&&i&&(a=this.construct()),a}}extractHiddenTokens(e){let r=this.lexerResult.hidden;if(!r.length)return[];let n=e.startOffset;for(let i=0;in)return r.splice(0,i);return r.splice(0,r.length)}consume(e,r,n){let i=this.wrapper.wrapConsume(e,r);if(!this.isRecording()&&this.isValidToken(i)){let a=this.extractHiddenTokens(i);this.nodeBuilder.addHiddenNodes(a);let s=this.nodeBuilder.buildLeafNode(i,n),{assignment:l,isCrossRef:u}=this.getAssignment(n),h=this.current;if(l){let f=Zo(n)?i.image:this.converter.convert(i.image,s);this.assign(l.operator,l.feature,f,s,u)}else if($P(h)){let f=i.image;Zo(n)||(f=this.converter.convert(f,s).toString()),h.value+=f}}}isValidToken(e){return!e.isInsertedInRecovery&&!isNaN(e.startOffset)&&typeof e.endOffset=="number"&&!isNaN(e.endOffset)}subrule(e,r,n,i,a){let s;!this.isRecording()&&!n&&(s=this.nodeBuilder.buildCompositeNode(i));let l=this.wrapper.wrapSubrule(e,r,a);!this.isRecording()&&s&&s.length>0&&this.performSubruleAssignment(l,i,s)}performSubruleAssignment(e,r,n){let{assignment:i,isCrossRef:a}=this.getAssignment(r);if(i)this.assign(i.operator,i.feature,e,n,a);else if(!i){let s=this.current;if($P(s))s.value+=e.toString();else if(typeof e=="object"&&e){let u=this.assignWithoutOverride(e,s);this.stack.pop(),this.stack.push(u)}}}action(e,r){if(!this.isRecording()){let n=this.current;if(r.feature&&r.operator){n=this.construct(),this.nodeBuilder.removeNode(n.$cstNode),this.nodeBuilder.buildCompositeNode(r).content.push(n.$cstNode);let a={$type:e};this.stack.push(a),this.assign(r.operator,r.feature,n,n.$cstNode,!1)}else n.$type=e}}construct(){if(this.isRecording())return;let e=this.current;return GE(e),this.nodeBuilder.construct(e),this.stack.pop(),$P(e)?this.converter.convert(e.value,e.$cstNode):(gO(this.astReflection,e),e)}getAssignment(e){if(!this.assignmentMap.has(e)){let r=Ip(e,Fl);this.assignmentMap.set(e,{assignment:r,isCrossRef:r?Mp(r.terminal):!1})}return this.assignmentMap.get(e)}assign(e,r,n,i,a){let s=this.current,l;switch(a&&typeof n=="string"?l=this.linker.buildReference(s,r,i,n):l=n,e){case"=":{s[r]=l;break}case"?=":{s[r]=!0;break}case"+=":Array.isArray(s[r])||(s[r]=[]),s[r].push(l)}}assignWithoutOverride(e,r){for(let[i,a]of Object.entries(r)){let s=e[i];s===void 0?e[i]=a:Array.isArray(s)&&Array.isArray(a)&&(a.push(...s),e[i]=a)}let n=e.$cstNode;return n&&(n.astNode=void 0,e.$cstNode=void 0),e}get definitionErrors(){return this.wrapper.definitionErrors}},GS=class{static{o(this,"AbstractParserErrorMessageProvider")}buildMismatchTokenMessage(e){return Zu.buildMismatchTokenMessage(e)}buildNotAllInputParsedMessage(e){return Zu.buildNotAllInputParsedMessage(e)}buildNoViableAltMessage(e){return Zu.buildNoViableAltMessage(e)}buildEarlyExitMessage(e){return Zu.buildEarlyExitMessage(e)}},F1=class extends GS{static{o(this,"LangiumParserErrorMessageProvider")}buildMismatchTokenMessage({expected:e,actual:r}){return`Expecting ${e.LABEL?"`"+e.LABEL+"`":e.name.endsWith(":KW")?`keyword '${e.name.substring(0,e.name.length-3)}'`:`token of type '${e.name}'`} but found \`${r.image}\`.`}buildNotAllInputParsedMessage({firstRedundant:e}){return`Expecting end of file but found \`${e.image}\`.`}},Ab=class extends Sb{static{o(this,"LangiumCompletionParser")}constructor(){super(...arguments),this.tokens=[],this.elementStack=[],this.lastElementStack=[],this.nextTokenIndex=0,this.stackSize=0}action(){}construct(){}parse(e){this.resetState();let r=this.lexer.tokenize(e,{mode:"partial"});return this.tokens=r.tokens,this.wrapper.input=[...this.tokens],this.mainRule.call(this.wrapper,{}),this.unorderedGroups.clear(),{tokens:this.tokens,elementStack:[...this.lastElementStack],tokenIndex:this.nextTokenIndex}}rule(e,r){let n=this.wrapper.DEFINE_RULE(J0e(e.name),this.startImplementation(r).bind(this));return this.allRules.set(e.name,n),e.entry&&(this.mainRule=n),n}resetState(){this.elementStack=[],this.lastElementStack=[],this.nextTokenIndex=0,this.stackSize=0}startImplementation(e){return r=>{let n=this.keepStackSize();try{e(r)}finally{this.resetStackSize(n)}}}removeUnexpectedElements(){this.elementStack.splice(this.stackSize)}keepStackSize(){let e=this.elementStack.length;return this.stackSize=e,e}resetStackSize(e){this.removeUnexpectedElements(),this.stackSize=e}consume(e,r,n){this.wrapper.wrapConsume(e,r),this.isRecording()||(this.lastElementStack=[...this.elementStack,n],this.nextTokenIndex=this.currIdx+1)}subrule(e,r,n,i,a){this.before(i),this.wrapper.wrapSubrule(e,r,a),this.after(i)}before(e){this.isRecording()||this.elementStack.push(e)}after(e){if(!this.isRecording()){let r=this.elementStack.lastIndexOf(e);r>=0&&this.elementStack.splice(r)}}get currIdx(){return this.wrapper.currIdx}},GXe={recoveryEnabled:!0,nodeLocationTracking:"full",skipValidations:!0,errorMessageProvider:new F1},zP=class extends yb{static{o(this,"ChevrotainWrapper")}constructor(e,r){let n=r&&"maxLookahead"in r;super(e,Object.assign(Object.assign(Object.assign({},GXe),{lookaheadStrategy:n?new Ju({maxLookahead:r.maxLookahead}):new Tb({logging:r.skipValidations?()=>{}:void 0})}),r))}get IS_RECORDING(){return this.RECORDING_PHASE}DEFINE_RULE(e,r){return this.RULE(e,r)}wrapSelfAnalysis(){this.performSelfAnalysis()}wrapConsume(e,r){return this.consume(e,r)}wrapSubrule(e,r,n){return this.subrule(e,r,{ARGS:[n]})}wrapOr(e,r){this.or(e,r)}wrapOption(e,r){this.option(e,r)}wrapMany(e,r){this.many(e,r)}wrapAtLeastOne(e,r){this.atLeastOne(e,r)}}});function Db(t,e,r){return VXe({parser:e,tokens:r,ruleNames:new Map},t),e}function VXe(t,e){let r=Xx(e,!1),n=an(e.rules).filter(Va).filter(i=>r.has(i));for(let i of n){let a=Object.assign(Object.assign({},t),{consume:1,optional:1,subrule:1,many:1,or:1});t.parser.rule(i,jp(a,i.definition))}}function jp(t,e,r=!1){let n;if(Zo(e))n=jXe(t,e);else if(qu(e))n=UXe(t,e);else if(Fl(e))n=jp(t,e.terminal);else if(Mp(e))n=eme(t,e);else if($l(e))n=HXe(t,e);else if(FE(e))n=WXe(t,e);else if(zE(e))n=YXe(t,e);else if(Of(e))n=XXe(t,e);else if(oO(e)){let i=t.consume++;n=o(()=>t.parser.consume(i,yo,e),"method")}else throw new Rp(e.$cstNode,`Unexpected element type: ${e.$type}`);return tme(t,r?void 0:VS(e),n,e.cardinality)}function UXe(t,e){let r=Qx(e);return()=>t.parser.action(r,e)}function HXe(t,e){let r=e.rule.ref;if(Va(r)){let n=t.subrule++,i=r.fragment,a=e.arguments.length>0?qXe(r,e.arguments):()=>({});return s=>t.parser.subrule(n,rme(t,r),i,e,a(s))}else if(mo(r)){let n=t.consume++,i=GP(t,r.name);return()=>t.parser.consume(n,i,e)}else if(r)Uc(r);else throw new Rp(e.$cstNode,`Undefined rule: ${e.rule.$refText}`)}function qXe(t,e){let r=e.map(n=>eh(n.value));return n=>{let i={};for(let a=0;ae(n)||r(n)}else if(JI(t)){let e=eh(t.left),r=eh(t.right);return n=>e(n)&&r(n)}else if(tO(t)){let e=eh(t.value);return r=>!e(r)}else if(rO(t)){let e=t.parameter.ref.name;return r=>r!==void 0&&r[e]===!0}else if(ZI(t)){let e=!!t.true;return()=>e}Uc(t)}function WXe(t,e){if(e.elements.length===1)return jp(t,e.elements[0]);{let r=[];for(let i of e.elements){let a={ALT:jp(t,i,!0)},s=VS(i);s&&(a.GATE=eh(s)),r.push(a)}let n=t.or++;return i=>t.parser.alternatives(n,r.map(a=>{let s={ALT:o(()=>a.ALT(i),"ALT")},l=a.GATE;return l&&(s.GATE=()=>l(i)),s}))}}function YXe(t,e){if(e.elements.length===1)return jp(t,e.elements[0]);let r=[];for(let l of e.elements){let u={ALT:jp(t,l,!0)},h=VS(l);h&&(u.GATE=eh(h)),r.push(u)}let n=t.or++,i=o((l,u)=>{let h=u.getRuleStack().join("-");return`uGroup_${l}_${h}`},"idFunc"),a=o(l=>t.parser.alternatives(n,r.map((u,h)=>{let f={ALT:o(()=>!0,"ALT")},d=t.parser;f.ALT=()=>{if(u.ALT(l),!d.isRecording()){let m=i(n,d);d.unorderedGroups.get(m)||d.unorderedGroups.set(m,[]);let g=d.unorderedGroups.get(m);typeof g?.[h]>"u"&&(g[h]=!0)}};let p=u.GATE;return p?f.GATE=()=>p(l):f.GATE=()=>{let m=d.unorderedGroups.get(i(n,d));return!m?.[h]},f})),"alternatives"),s=tme(t,VS(e),a,"*");return l=>{s(l),t.parser.isRecording()||t.parser.unorderedGroups.delete(i(n,t.parser))}}function XXe(t,e){let r=e.elements.map(n=>jp(t,n));return n=>r.forEach(i=>i(n))}function VS(t){if(Of(t))return t.guardCondition}function eme(t,e,r=e.terminal){if(r)if($l(r)&&Va(r.rule.ref)){let n=r.rule.ref,i=t.subrule++;return a=>t.parser.subrule(i,rme(t,n),!1,e,a)}else if($l(r)&&mo(r.rule.ref)){let n=t.consume++,i=GP(t,r.rule.ref.name);return()=>t.parser.consume(n,i,e)}else if(Zo(r)){let n=t.consume++,i=GP(t,r.value);return()=>t.parser.consume(n,i,e)}else throw new Error("Could not build cross reference parser");else{if(!e.type.ref)throw new Error("Could not resolve reference to type: "+e.type.$refText);let n=WE(e.type.ref),i=n?.terminal;if(!i)throw new Error("Could not find name assignment for type: "+Qx(e.type.ref));return eme(t,e,i)}}function jXe(t,e){let r=t.consume++,n=t.tokens[e.value];if(!n)throw new Error("Could not find token for keyword: "+e.value);return()=>t.parser.consume(r,n,e)}function tme(t,e,r,n){let i=e&&eh(e);if(!n)if(i){let a=t.or++;return s=>t.parser.alternatives(a,[{ALT:o(()=>r(s),"ALT"),GATE:o(()=>i(s),"GATE")},{ALT:RS(),GATE:o(()=>!i(s),"GATE")}])}else return r;if(n==="*"){let a=t.many++;return s=>t.parser.many(a,{DEF:o(()=>r(s),"DEF"),GATE:i?()=>i(s):void 0})}else if(n==="+"){let a=t.many++;if(i){let s=t.or++;return l=>t.parser.alternatives(s,[{ALT:o(()=>t.parser.atLeastOne(a,{DEF:o(()=>r(l),"DEF")}),"ALT"),GATE:o(()=>i(l),"GATE")},{ALT:RS(),GATE:o(()=>!i(l),"GATE")}])}else return s=>t.parser.atLeastOne(a,{DEF:o(()=>r(s),"DEF")})}else if(n==="?"){let a=t.optional++;return s=>t.parser.optional(a,{DEF:o(()=>r(s),"DEF"),GATE:i?()=>i(s):void 0})}else Uc(n)}function rme(t,e){let r=KXe(t,e),n=t.parser.getRule(r);if(!n)throw new Error(`Rule "${r}" not found."`);return n}function KXe(t,e){if(Va(e))return e.name;if(t.ruleNames.has(e))return t.ruleNames.get(e);{let r=e,n=r.$container,i=e.$type;for(;!Va(n);)(Of(n)||FE(n)||zE(n))&&(i=n.elements.indexOf(r).toString()+":"+i),r=n,n=n.$container;return i=n.name+":"+i,t.ruleNames.set(e,i),i}}function GP(t,e){let r=t.tokens[e];if(!r)throw new Error(`Token "${e}" not found."`);return r}var US=M(()=>{"use strict";Ff();Hc();ME();Ys();zl();o(Db,"createParser");o(VXe,"buildRules");o(jp,"buildElement");o(UXe,"buildAction");o(HXe,"buildRuleCall");o(qXe,"buildRuleCallPredicate");o(eh,"buildPredicate");o(WXe,"buildAlternatives");o(YXe,"buildUnorderedGroup");o(XXe,"buildGroup");o(VS,"getGuardCondition");o(eme,"buildCrossReference");o(jXe,"buildKeyword");o(tme,"wrap");o(rme,"getRule");o(KXe,"getRuleName");o(GP,"getToken")});function VP(t){let e=t.Grammar,r=t.parser.Lexer,n=new Ab(t);return Db(e,n,r.definition),n.finalize(),n}var UP=M(()=>{"use strict";_b();US();o(VP,"createCompletionParser")});function HP(t){let e=nme(t);return e.finalize(),e}function nme(t){let e=t.Grammar,r=t.parser.Lexer,n=new Cb(t);return Db(e,n,r.definition)}var qP=M(()=>{"use strict";_b();US();o(HP,"createLangiumParser");o(nme,"prepareLangiumParser")});var th,HS=M(()=>{"use strict";Ff();Hc();hs();zl();l1();Ys();th=class{static{o(this,"DefaultTokenBuilder")}constructor(){this.diagnostics=[]}buildTokens(e,r){let n=an(Xx(e,!1)),i=this.buildTerminalTokens(n),a=this.buildKeywordTokens(n,i,r);return i.forEach(s=>{let l=s.PATTERN;typeof l=="object"&&l&&"test"in l&&o1(l)?a.unshift(s):a.push(s)}),a}flushLexingReport(e){return{diagnostics:this.popDiagnostics()}}popDiagnostics(){let e=[...this.diagnostics];return this.diagnostics=[],e}buildTerminalTokens(e){return e.filter(mo).filter(r=>!r.fragment).map(r=>this.buildTerminalToken(r)).toArray()}buildTerminalToken(e){let r=u1(e),n=this.requiresCustomPattern(r)?this.regexPatternFunction(r):r,i={name:e.name,PATTERN:n};return typeof n=="function"&&(i.LINE_BREAKS=!0),e.hidden&&(i.GROUP=o1(r)?Zn.SKIPPED:"hidden"),i}requiresCustomPattern(e){return e.flags.includes("u")||e.flags.includes("s")?!0:!!(e.source.includes("?<=")||e.source.includes("?(r.lastIndex=i,r.exec(n))}buildKeywordTokens(e,r,n){return e.filter(Va).flatMap(i=>qc(i).filter(Zo)).distinct(i=>i.value).toArray().sort((i,a)=>a.value.length-i.value.length).map(i=>this.buildKeywordToken(i,r,!!n?.caseInsensitive))}buildKeywordToken(e,r,n){let i=this.buildKeywordPattern(e,n),a={name:e.value,PATTERN:i,LONGER_ALT:this.findLongerAlt(e,r)};return typeof i=="function"&&(a.LINE_BREAKS=!0),a}buildKeywordPattern(e,r){return r?new RegExp(kO(e.value)):e.value}findLongerAlt(e,r){return r.reduce((n,i)=>{let a=i?.PATTERN;return a?.source&&EO("^"+a.source+"$",e.value)&&n.push(i),n},[])}}});var Kp,Xc,WP=M(()=>{"use strict";Hc();zl();Kp=class{static{o(this,"DefaultValueConverter")}convert(e,r){let n=r.grammarSource;if(Mp(n)&&(n=AO(n)),$l(n)){let i=n.rule.ref;if(!i)throw new Error("This cst node was not parsed by a rule.");return this.runConverter(i,e,r)}return e}runConverter(e,r,n){var i;switch(e.name.toUpperCase()){case"INT":return Xc.convertInt(r);case"STRING":return Xc.convertString(r);case"ID":return Xc.convertID(r)}switch((i=IO(e))===null||i===void 0?void 0:i.toLowerCase()){case"number":return Xc.convertNumber(r);case"boolean":return Xc.convertBoolean(r);case"bigint":return Xc.convertBigint(r);case"date":return Xc.convertDate(r);default:return r}}};(function(t){function e(h){let f="";for(let d=1;d{"use strict";Object.defineProperty(jP,"__esModule",{value:!0});var YP;function XP(){if(YP===void 0)throw new Error("No runtime abstraction layer installed");return YP}o(XP,"RAL");(function(t){function e(r){if(r===void 0)throw new Error("No runtime abstraction layer provided");YP=r}o(e,"install"),t.install=e})(XP||(XP={}));jP.default=XP});var sme=sa(Ha=>{"use strict";Object.defineProperty(Ha,"__esModule",{value:!0});Ha.stringArray=Ha.array=Ha.func=Ha.error=Ha.number=Ha.string=Ha.boolean=void 0;function QXe(t){return t===!0||t===!1}o(QXe,"boolean");Ha.boolean=QXe;function ime(t){return typeof t=="string"||t instanceof String}o(ime,"string");Ha.string=ime;function ZXe(t){return typeof t=="number"||t instanceof Number}o(ZXe,"number");Ha.number=ZXe;function JXe(t){return t instanceof Error}o(JXe,"error");Ha.error=JXe;function eje(t){return typeof t=="function"}o(eje,"func");Ha.func=eje;function ame(t){return Array.isArray(t)}o(ame,"array");Ha.array=ame;function tje(t){return ame(t)&&t.every(e=>ime(e))}o(tje,"stringArray");Ha.stringArray=tje});var ZP=sa($1=>{"use strict";Object.defineProperty($1,"__esModule",{value:!0});$1.Emitter=$1.Event=void 0;var rje=KP(),ome;(function(t){let e={dispose(){}};t.None=function(){return e}})(ome||($1.Event=ome={}));var QP=class{static{o(this,"CallbackList")}add(e,r=null,n){this._callbacks||(this._callbacks=[],this._contexts=[]),this._callbacks.push(e),this._contexts.push(r),Array.isArray(n)&&n.push({dispose:o(()=>this.remove(e,r),"dispose")})}remove(e,r=null){if(!this._callbacks)return;let n=!1;for(let i=0,a=this._callbacks.length;i{this._callbacks||(this._callbacks=new QP),this._options&&this._options.onFirstListenerAdd&&this._callbacks.isEmpty()&&this._options.onFirstListenerAdd(this),this._callbacks.add(e,r);let i={dispose:o(()=>{this._callbacks&&(this._callbacks.remove(e,r),i.dispose=t._noop,this._options&&this._options.onLastListenerRemove&&this._callbacks.isEmpty()&&this._options.onLastListenerRemove(this))},"dispose")};return Array.isArray(n)&&n.push(i),i}),this._event}fire(e){this._callbacks&&this._callbacks.invoke.call(this._callbacks,e)}dispose(){this._callbacks&&(this._callbacks.dispose(),this._callbacks=void 0)}};$1.Emitter=qS;qS._noop=function(){}});var lme=sa(z1=>{"use strict";Object.defineProperty(z1,"__esModule",{value:!0});z1.CancellationTokenSource=z1.CancellationToken=void 0;var nje=KP(),ije=sme(),JP=ZP(),WS;(function(t){t.None=Object.freeze({isCancellationRequested:!1,onCancellationRequested:JP.Event.None}),t.Cancelled=Object.freeze({isCancellationRequested:!0,onCancellationRequested:JP.Event.None});function e(r){let n=r;return n&&(n===t.None||n===t.Cancelled||ije.boolean(n.isCancellationRequested)&&!!n.onCancellationRequested)}o(e,"is"),t.is=e})(WS||(z1.CancellationToken=WS={}));var aje=Object.freeze(function(t,e){let r=(0,nje.default)().timer.setTimeout(t.bind(e),0);return{dispose(){r.dispose()}}}),YS=class{static{o(this,"MutableToken")}constructor(){this._isCancelled=!1}cancel(){this._isCancelled||(this._isCancelled=!0,this._emitter&&(this._emitter.fire(void 0),this.dispose()))}get isCancellationRequested(){return this._isCancelled}get onCancellationRequested(){return this._isCancelled?aje:(this._emitter||(this._emitter=new JP.Emitter),this._emitter.event)}dispose(){this._emitter&&(this._emitter.dispose(),this._emitter=void 0)}},eB=class{static{o(this,"CancellationTokenSource")}get token(){return this._token||(this._token=new YS),this._token}cancel(){this._token?this._token.cancel():this._token=WS.Cancelled}dispose(){this._token?this._token instanceof YS&&this._token.dispose():this._token=WS.None}};z1.CancellationTokenSource=eB});var br={};var el=M(()=>{"use strict";Lr(br,La(lme(),1))});function tB(){return new Promise(t=>{typeof setImmediate>"u"?setTimeout(t,0):setImmediate(t)})}function jS(){return XS=performance.now(),new br.CancellationTokenSource}function ume(t){cme=t}function Kc(t){return t===jc}async function bi(t){if(t===br.CancellationToken.None)return;let e=performance.now();if(e-XS>=cme&&(XS=e,await tB(),XS=performance.now()),t.isCancellationRequested)throw jc}var XS,cme,jc,gs,tl=M(()=>{"use strict";el();o(tB,"delayNextTick");XS=0,cme=10;o(jS,"startCancelableOperation");o(ume,"setInterruptionPeriod");jc=Symbol("OperationCancelled");o(Kc,"isOperationCancelled");o(bi,"interruptAndCheck");gs=class{static{o(this,"Deferred")}constructor(){this.promise=new Promise((e,r)=>{this.resolve=n=>(e(n),this),this.reject=n=>(r(n),this)})}}});function rB(t,e){if(t.length<=1)return t;let r=t.length/2|0,n=t.slice(0,r),i=t.slice(r);rB(n,e),rB(i,e);let a=0,s=0,l=0;for(;ar.line||e.line===r.line&&e.character>r.character?{start:r,end:e}:t}function sje(t){let e=dme(t.range);return e!==t.range?{newText:t.newText,range:e}:t}var KS,G1,pme=M(()=>{"use strict";KS=class t{static{o(this,"FullTextDocument")}constructor(e,r,n,i){this._uri=e,this._languageId=r,this._version=n,this._content=i,this._lineOffsets=void 0}get uri(){return this._uri}get languageId(){return this._languageId}get version(){return this._version}getText(e){if(e){let r=this.offsetAt(e.start),n=this.offsetAt(e.end);return this._content.substring(r,n)}return this._content}update(e,r){for(let n of e)if(t.isIncremental(n)){let i=dme(n.range),a=this.offsetAt(i.start),s=this.offsetAt(i.end);this._content=this._content.substring(0,a)+n.text+this._content.substring(s,this._content.length);let l=Math.max(i.start.line,0),u=Math.max(i.end.line,0),h=this._lineOffsets,f=hme(n.text,!1,a);if(u-l===f.length)for(let p=0,m=f.length;pe?i=s:n=s+1}let a=n-1;return e=this.ensureBeforeEOL(e,r[a]),{line:a,character:e-r[a]}}offsetAt(e){let r=this.getLineOffsets();if(e.line>=r.length)return this._content.length;if(e.line<0)return 0;let n=r[e.line];if(e.character<=0)return n;let i=e.line+1r&&fme(this._content.charCodeAt(e-1));)e--;return e}get lineCount(){return this.getLineOffsets().length}static isIncremental(e){let r=e;return r!=null&&typeof r.text=="string"&&r.range!==void 0&&(r.rangeLength===void 0||typeof r.rangeLength=="number")}static isFull(e){let r=e;return r!=null&&typeof r.text=="string"&&r.range===void 0&&r.rangeLength===void 0}};(function(t){function e(i,a,s,l){return new KS(i,a,s,l)}o(e,"create"),t.create=e;function r(i,a,s){if(i instanceof KS)return i.update(a,s),i;throw new Error("TextDocument.update: document must be created by TextDocument.create")}o(r,"update"),t.update=r;function n(i,a){let s=i.getText(),l=rB(a.map(sje),(f,d)=>{let p=f.range.start.line-d.range.start.line;return p===0?f.range.start.character-d.range.start.character:p}),u=0,h=[];for(let f of l){let d=i.offsetAt(f.range.start);if(du&&h.push(s.substring(u,d)),f.newText.length&&h.push(f.newText),u=i.offsetAt(f.range.end)}return h.push(s.substr(u)),h.join("")}o(n,"applyEdits"),t.applyEdits=n})(G1||(G1={}));o(rB,"mergeSort");o(hme,"computeLineOffsets");o(fme,"isEOL");o(dme,"getWellformedRange");o(sje,"getWellformedEdit")});var mme,ys,V1,nB=M(()=>{"use strict";(()=>{"use strict";var t={470:i=>{function a(u){if(typeof u!="string")throw new TypeError("Path must be a string. Received "+JSON.stringify(u))}o(a,"e");function s(u,h){for(var f,d="",p=0,m=-1,g=0,y=0;y<=u.length;++y){if(y2){var v=d.lastIndexOf("/");if(v!==d.length-1){v===-1?(d="",p=0):p=(d=d.slice(0,v)).length-1-d.lastIndexOf("/"),m=y,g=0;continue}}else if(d.length===2||d.length===1){d="",p=0,m=y,g=0;continue}}h&&(d.length>0?d+="/..":d="..",p=2)}else d.length>0?d+="/"+u.slice(m+1,y):d=u.slice(m+1,y),p=y-m-1;m=y,g=0}else f===46&&g!==-1?++g:g=-1}return d}o(s,"r");var l={resolve:o(function(){for(var u,h="",f=!1,d=arguments.length-1;d>=-1&&!f;d--){var p;d>=0?p=arguments[d]:(u===void 0&&(u=process.cwd()),p=u),a(p),p.length!==0&&(h=p+"/"+h,f=p.charCodeAt(0)===47)}return h=s(h,!f),f?h.length>0?"/"+h:"/":h.length>0?h:"."},"resolve"),normalize:o(function(u){if(a(u),u.length===0)return".";var h=u.charCodeAt(0)===47,f=u.charCodeAt(u.length-1)===47;return(u=s(u,!h)).length!==0||h||(u="."),u.length>0&&f&&(u+="/"),h?"/"+u:u},"normalize"),isAbsolute:o(function(u){return a(u),u.length>0&&u.charCodeAt(0)===47},"isAbsolute"),join:o(function(){if(arguments.length===0)return".";for(var u,h=0;h0&&(u===void 0?u=f:u+="/"+f)}return u===void 0?".":l.normalize(u)},"join"),relative:o(function(u,h){if(a(u),a(h),u===h||(u=l.resolve(u))===(h=l.resolve(h)))return"";for(var f=1;fy){if(h.charCodeAt(m+x)===47)return h.slice(m+x+1);if(x===0)return h.slice(m+x)}else p>y&&(u.charCodeAt(f+x)===47?v=x:x===0&&(v=0));break}var b=u.charCodeAt(f+x);if(b!==h.charCodeAt(m+x))break;b===47&&(v=x)}var T="";for(x=f+v+1;x<=d;++x)x!==d&&u.charCodeAt(x)!==47||(T.length===0?T+="..":T+="/..");return T.length>0?T+h.slice(m+v):(m+=v,h.charCodeAt(m)===47&&++m,h.slice(m))},"relative"),_makeLong:o(function(u){return u},"_makeLong"),dirname:o(function(u){if(a(u),u.length===0)return".";for(var h=u.charCodeAt(0),f=h===47,d=-1,p=!0,m=u.length-1;m>=1;--m)if((h=u.charCodeAt(m))===47){if(!p){d=m;break}}else p=!1;return d===-1?f?"/":".":f&&d===1?"//":u.slice(0,d)},"dirname"),basename:o(function(u,h){if(h!==void 0&&typeof h!="string")throw new TypeError('"ext" argument must be a string');a(u);var f,d=0,p=-1,m=!0;if(h!==void 0&&h.length>0&&h.length<=u.length){if(h.length===u.length&&h===u)return"";var g=h.length-1,y=-1;for(f=u.length-1;f>=0;--f){var v=u.charCodeAt(f);if(v===47){if(!m){d=f+1;break}}else y===-1&&(m=!1,y=f+1),g>=0&&(v===h.charCodeAt(g)?--g==-1&&(p=f):(g=-1,p=y))}return d===p?p=y:p===-1&&(p=u.length),u.slice(d,p)}for(f=u.length-1;f>=0;--f)if(u.charCodeAt(f)===47){if(!m){d=f+1;break}}else p===-1&&(m=!1,p=f+1);return p===-1?"":u.slice(d,p)},"basename"),extname:o(function(u){a(u);for(var h=-1,f=0,d=-1,p=!0,m=0,g=u.length-1;g>=0;--g){var y=u.charCodeAt(g);if(y!==47)d===-1&&(p=!1,d=g+1),y===46?h===-1?h=g:m!==1&&(m=1):h!==-1&&(m=-1);else if(!p){f=g+1;break}}return h===-1||d===-1||m===0||m===1&&h===d-1&&h===f+1?"":u.slice(h,d)},"extname"),format:o(function(u){if(u===null||typeof u!="object")throw new TypeError('The "pathObject" argument must be of type Object. Received type '+typeof u);return(function(h,f){var d=f.dir||f.root,p=f.base||(f.name||"")+(f.ext||"");return d?d===f.root?d+p:d+"/"+p:p})(0,u)},"format"),parse:o(function(u){a(u);var h={root:"",dir:"",base:"",ext:"",name:""};if(u.length===0)return h;var f,d=u.charCodeAt(0),p=d===47;p?(h.root="/",f=1):f=0;for(var m=-1,g=0,y=-1,v=!0,x=u.length-1,b=0;x>=f;--x)if((d=u.charCodeAt(x))!==47)y===-1&&(v=!1,y=x+1),d===46?m===-1?m=x:b!==1&&(b=1):m!==-1&&(b=-1);else if(!v){g=x+1;break}return m===-1||y===-1||b===0||b===1&&m===y-1&&m===g+1?y!==-1&&(h.base=h.name=g===0&&p?u.slice(1,y):u.slice(g,y)):(g===0&&p?(h.name=u.slice(1,m),h.base=u.slice(1,y)):(h.name=u.slice(g,m),h.base=u.slice(g,y)),h.ext=u.slice(m,y)),g>0?h.dir=u.slice(0,g-1):p&&(h.dir="/"),h},"parse"),sep:"/",delimiter:":",win32:null,posix:null};l.posix=l,i.exports=l}},e={};function r(i){var a=e[i];if(a!==void 0)return a.exports;var s=e[i]={exports:{}};return t[i](s,s.exports,r),s.exports}o(r,"r"),r.d=(i,a)=>{for(var s in a)r.o(a,s)&&!r.o(i,s)&&Object.defineProperty(i,s,{enumerable:!0,get:a[s]})},r.o=(i,a)=>Object.prototype.hasOwnProperty.call(i,a),r.r=i=>{typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(i,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(i,"__esModule",{value:!0})};var n={};(()=>{let i;r.r(n),r.d(n,{URI:o(()=>p,"URI"),Utils:o(()=>I,"Utils")}),typeof process=="object"?i=process.platform==="win32":typeof navigator=="object"&&(i=navigator.userAgent.indexOf("Windows")>=0);let a=/^\w[\w\d+.-]*$/,s=/^\//,l=/^\/\//;function u(R,E){if(!R.scheme&&E)throw new Error(`[UriError]: Scheme is missing: {scheme: "", authority: "${R.authority}", path: "${R.path}", query: "${R.query}", fragment: "${R.fragment}"}`);if(R.scheme&&!a.test(R.scheme))throw new Error("[UriError]: Scheme contains illegal characters.");if(R.path){if(R.authority){if(!s.test(R.path))throw new Error('[UriError]: If a URI contains an authority component, then the path component must either be empty or begin with a slash ("/") character')}else if(l.test(R.path))throw new Error('[UriError]: If a URI does not contain an authority component, then the path cannot begin with two slash characters ("//")')}}o(u,"s");let h="",f="/",d=/^(([^:/?#]+?):)?(\/\/([^/?#]*))?([^?#]*)(\?([^#]*))?(#(.*))?/;class p{static{o(this,"f")}static isUri(E){return E instanceof p||!!E&&typeof E.authority=="string"&&typeof E.fragment=="string"&&typeof E.path=="string"&&typeof E.query=="string"&&typeof E.scheme=="string"&&typeof E.fsPath=="string"&&typeof E.with=="function"&&typeof E.toString=="function"}scheme;authority;path;query;fragment;constructor(E,_,D,O,N,P=!1){typeof E=="object"?(this.scheme=E.scheme||h,this.authority=E.authority||h,this.path=E.path||h,this.query=E.query||h,this.fragment=E.fragment||h):(this.scheme=(function(B,F){return B||F?B:"file"})(E,P),this.authority=_||h,this.path=(function(B,F){switch(B){case"https":case"http":case"file":F?F[0]!==f&&(F=f+F):F=f}return F})(this.scheme,D||h),this.query=O||h,this.fragment=N||h,u(this,P))}get fsPath(){return b(this,!1)}with(E){if(!E)return this;let{scheme:_,authority:D,path:O,query:N,fragment:P}=E;return _===void 0?_=this.scheme:_===null&&(_=h),D===void 0?D=this.authority:D===null&&(D=h),O===void 0?O=this.path:O===null&&(O=h),N===void 0?N=this.query:N===null&&(N=h),P===void 0?P=this.fragment:P===null&&(P=h),_===this.scheme&&D===this.authority&&O===this.path&&N===this.query&&P===this.fragment?this:new g(_,D,O,N,P)}static parse(E,_=!1){let D=d.exec(E);return D?new g(D[2]||h,k(D[4]||h),k(D[5]||h),k(D[7]||h),k(D[9]||h),_):new g(h,h,h,h,h)}static file(E){let _=h;if(i&&(E=E.replace(/\\/g,f)),E[0]===f&&E[1]===f){let D=E.indexOf(f,2);D===-1?(_=E.substring(2),E=f):(_=E.substring(2,D),E=E.substring(D)||f)}return new g("file",_,E,h,h)}static from(E){let _=new g(E.scheme,E.authority,E.path,E.query,E.fragment);return u(_,!0),_}toString(E=!1){return T(this,E)}toJSON(){return this}static revive(E){if(E){if(E instanceof p)return E;{let _=new g(E);return _._formatted=E.external,_._fsPath=E._sep===m?E.fsPath:null,_}}return E}}let m=i?1:void 0;class g extends p{static{o(this,"l")}_formatted=null;_fsPath=null;get fsPath(){return this._fsPath||(this._fsPath=b(this,!1)),this._fsPath}toString(E=!1){return E?T(this,!0):(this._formatted||(this._formatted=T(this,!1)),this._formatted)}toJSON(){let E={$mid:1};return this._fsPath&&(E.fsPath=this._fsPath,E._sep=m),this._formatted&&(E.external=this._formatted),this.path&&(E.path=this.path),this.scheme&&(E.scheme=this.scheme),this.authority&&(E.authority=this.authority),this.query&&(E.query=this.query),this.fragment&&(E.fragment=this.fragment),E}}let y={58:"%3A",47:"%2F",63:"%3F",35:"%23",91:"%5B",93:"%5D",64:"%40",33:"%21",36:"%24",38:"%26",39:"%27",40:"%28",41:"%29",42:"%2A",43:"%2B",44:"%2C",59:"%3B",61:"%3D",32:"%20"};function v(R,E,_){let D,O=-1;for(let N=0;N=97&&P<=122||P>=65&&P<=90||P>=48&&P<=57||P===45||P===46||P===95||P===126||E&&P===47||_&&P===91||_&&P===93||_&&P===58)O!==-1&&(D+=encodeURIComponent(R.substring(O,N)),O=-1),D!==void 0&&(D+=R.charAt(N));else{D===void 0&&(D=R.substr(0,N));let B=y[P];B!==void 0?(O!==-1&&(D+=encodeURIComponent(R.substring(O,N)),O=-1),D+=B):O===-1&&(O=N)}}return O!==-1&&(D+=encodeURIComponent(R.substring(O))),D!==void 0?D:R}o(v,"d");function x(R){let E;for(let _=0;_1&&R.scheme==="file"?`//${R.authority}${R.path}`:R.path.charCodeAt(0)===47&&(R.path.charCodeAt(1)>=65&&R.path.charCodeAt(1)<=90||R.path.charCodeAt(1)>=97&&R.path.charCodeAt(1)<=122)&&R.path.charCodeAt(2)===58?E?R.path.substr(1):R.path[1].toLowerCase()+R.path.substr(2):R.path,i&&(_=_.replace(/\//g,"\\")),_}o(b,"m");function T(R,E){let _=E?x:v,D="",{scheme:O,authority:N,path:P,query:B,fragment:F}=R;if(O&&(D+=O,D+=":"),(N||O==="file")&&(D+=f,D+=f),N){let V=N.indexOf("@");if(V!==-1){let $=N.substr(0,V);N=N.substr(V+1),V=$.lastIndexOf(":"),V===-1?D+=_($,!1,!1):(D+=_($.substr(0,V),!1,!1),D+=":",D+=_($.substr(V+1),!1,!0)),D+="@"}N=N.toLowerCase(),V=N.lastIndexOf(":"),V===-1?D+=_(N,!1,!0):(D+=_(N.substr(0,V),!1,!0),D+=N.substr(V))}if(P){if(P.length>=3&&P.charCodeAt(0)===47&&P.charCodeAt(2)===58){let V=P.charCodeAt(1);V>=65&&V<=90&&(P=`/${String.fromCharCode(V+32)}:${P.substr(3)}`)}else if(P.length>=2&&P.charCodeAt(1)===58){let V=P.charCodeAt(0);V>=65&&V<=90&&(P=`${String.fromCharCode(V+32)}:${P.substr(2)}`)}D+=_(P,!0,!1)}return B&&(D+="?",D+=_(B,!1,!1)),F&&(D+="#",D+=E?F:v(F,!1,!1)),D}o(T,"y");function S(R){try{return decodeURIComponent(R)}catch{return R.length>3?R.substr(0,3)+S(R.substr(3)):R}}o(S,"v");let w=/(%[0-9A-Za-z][0-9A-Za-z])+/g;function k(R){return R.match(w)?R.replace(w,(E=>S(E))):R}o(k,"C");var C=r(470);let A=C.posix||C,L="/";var I;(function(R){R.joinPath=function(E,..._){return E.with({path:A.join(E.path,..._)})},R.resolvePath=function(E,..._){let D=E.path,O=!1;D[0]!==L&&(D=L+D,O=!0);let N=A.resolve(D,..._);return O&&N[0]===L&&!E.authority&&(N=N.substring(1)),E.with({path:N})},R.dirname=function(E){if(E.path.length===0||E.path===L)return E;let _=A.dirname(E.path);return _.length===1&&_.charCodeAt(0)===46&&(_=""),E.with({path:_})},R.basename=function(E){return A.basename(E.path)},R.extname=function(E){return A.extname(E.path)}})(I||(I={}))})(),mme=n})();({URI:ys,Utils:V1}=mme)});var vs,Qc=M(()=>{"use strict";nB();(function(t){t.basename=V1.basename,t.dirname=V1.dirname,t.extname=V1.extname,t.joinPath=V1.joinPath,t.resolvePath=V1.resolvePath;function e(i,a){return i?.toString()===a?.toString()}o(e,"equals"),t.equals=e;function r(i,a){let s=typeof i=="string"?i:i.path,l=typeof a=="string"?a:a.path,u=s.split("/").filter(m=>m.length>0),h=l.split("/").filter(m=>m.length>0),f=0;for(;f{"use strict";pme();U1();el();Ys();Qc();(function(t){t[t.Changed=0]="Changed",t[t.Parsed=1]="Parsed",t[t.IndexedContent=2]="IndexedContent",t[t.ComputedScopes=3]="ComputedScopes",t[t.Linked=4]="Linked",t[t.IndexedReferences=5]="IndexedReferences",t[t.Validated=6]="Validated"})(Ln||(Ln={}));Lb=class{static{o(this,"DefaultLangiumDocumentFactory")}constructor(e){this.serviceRegistry=e.ServiceRegistry,this.textDocuments=e.workspace.TextDocuments,this.fileSystemProvider=e.workspace.FileSystemProvider}async fromUri(e,r=br.CancellationToken.None){let n=await this.fileSystemProvider.readFile(e);return this.createAsync(e,n,r)}fromTextDocument(e,r,n){return r=r??ys.parse(e.uri),br.CancellationToken.is(n)?this.createAsync(r,e,n):this.create(r,e,n)}fromString(e,r,n){return br.CancellationToken.is(n)?this.createAsync(r,e,n):this.create(r,e,n)}fromModel(e,r){return this.create(r,{$model:e})}create(e,r,n){if(typeof r=="string"){let i=this.parse(e,r,n);return this.createLangiumDocument(i,e,void 0,r)}else if("$model"in r){let i={value:r.$model,parserErrors:[],lexerErrors:[]};return this.createLangiumDocument(i,e)}else{let i=this.parse(e,r.getText(),n);return this.createLangiumDocument(i,e,r)}}async createAsync(e,r,n){if(typeof r=="string"){let i=await this.parseAsync(e,r,n);return this.createLangiumDocument(i,e,void 0,r)}else{let i=await this.parseAsync(e,r.getText(),n);return this.createLangiumDocument(i,e,r)}}createLangiumDocument(e,r,n,i){let a;if(n)a={parseResult:e,uri:r,state:Ln.Parsed,references:[],textDocument:n};else{let s=this.createTextDocumentGetter(r,i);a={parseResult:e,uri:r,state:Ln.Parsed,references:[],get textDocument(){return s()}}}return e.value.$document=a,a}async update(e,r){var n,i;let a=(n=e.parseResult.value.$cstNode)===null||n===void 0?void 0:n.root.fullText,s=(i=this.textDocuments)===null||i===void 0?void 0:i.get(e.uri.toString()),l=s?s.getText():await this.fileSystemProvider.readFile(e.uri);if(s)Object.defineProperty(e,"textDocument",{value:s});else{let u=this.createTextDocumentGetter(e.uri,l);Object.defineProperty(e,"textDocument",{get:u})}return a!==l&&(e.parseResult=await this.parseAsync(e.uri,l,r),e.parseResult.value.$document=e),e.state=Ln.Parsed,e}parse(e,r,n){return this.serviceRegistry.getServices(e).parser.LangiumParser.parse(r,n)}parseAsync(e,r,n){return this.serviceRegistry.getServices(e).parser.AsyncParser.parse(r,n)}createTextDocumentGetter(e,r){let n=this.serviceRegistry,i;return()=>i??(i=G1.create(e.toString(),n.getServices(e).LanguageMetaData.languageId,0,r??""))}},Rb=class{static{o(this,"DefaultLangiumDocuments")}constructor(e){this.documentMap=new Map,this.langiumDocumentFactory=e.workspace.LangiumDocumentFactory,this.serviceRegistry=e.ServiceRegistry}get all(){return an(this.documentMap.values())}addDocument(e){let r=e.uri.toString();if(this.documentMap.has(r))throw new Error(`A document with the URI '${r}' is already present.`);this.documentMap.set(r,e)}getDocument(e){let r=e.toString();return this.documentMap.get(r)}async getOrCreateDocument(e,r){let n=this.getDocument(e);return n||(n=await this.langiumDocumentFactory.fromUri(e,r),this.addDocument(n),n)}createDocument(e,r,n){if(n)return this.langiumDocumentFactory.fromString(r,e,n).then(i=>(this.addDocument(i),i));{let i=this.langiumDocumentFactory.fromString(r,e);return this.addDocument(i),i}}hasDocument(e){return this.documentMap.has(e.toString())}invalidateDocument(e){let r=e.toString(),n=this.documentMap.get(r);return n&&(this.serviceRegistry.getServices(e).references.Linker.unlink(n),n.state=Ln.Changed,n.precomputedScopes=void 0,n.diagnostics=void 0),n}deleteDocument(e){let r=e.toString(),n=this.documentMap.get(r);return n&&(n.state=Ln.Changed,this.documentMap.delete(r)),n}}});var iB,Nb,aB=M(()=>{"use strict";el();Pl();hs();tl();U1();iB=Symbol("ref_resolving"),Nb=class{static{o(this,"DefaultLinker")}constructor(e){this.reflection=e.shared.AstReflection,this.langiumDocuments=()=>e.shared.workspace.LangiumDocuments,this.scopeProvider=e.references.ScopeProvider,this.astNodeLocator=e.workspace.AstNodeLocator}async link(e,r=br.CancellationToken.None){for(let n of Jo(e.parseResult.value))await bi(r),a1(n).forEach(i=>this.doLink(i,e))}doLink(e,r){var n;let i=e.reference;if(i._ref===void 0){i._ref=iB;try{let a=this.getCandidate(e);if(_p(a))i._ref=a;else if(i._nodeDescription=a,this.langiumDocuments().hasDocument(a.documentUri)){let s=this.loadAstNode(a);i._ref=s??this.createLinkingError(e,a)}else i._ref=void 0}catch(a){console.error(`An error occurred while resolving reference to '${i.$refText}':`,a);let s=(n=a.message)!==null&&n!==void 0?n:String(a);i._ref=Object.assign(Object.assign({},e),{message:`An error occurred while resolving reference to '${i.$refText}': ${s}`})}r.references.push(i)}}unlink(e){for(let r of e.references)delete r._ref,delete r._nodeDescription;e.references=[]}getCandidate(e){let n=this.scopeProvider.getScope(e).getElement(e.reference.$refText);return n??this.createLinkingError(e)}buildReference(e,r,n,i){let a=this,s={$refNode:n,$refText:i,get ref(){var l;if(li(this._ref))return this._ref;if(qI(this._nodeDescription)){let u=a.loadAstNode(this._nodeDescription);this._ref=u??a.createLinkingError({reference:s,container:e,property:r},this._nodeDescription)}else if(this._ref===void 0){this._ref=iB;let u=Vx(e).$document,h=a.getLinkedNode({reference:s,container:e,property:r});if(h.error&&u&&u.state{"use strict";zl();o(gme,"isNamed");Mb=class{static{o(this,"DefaultNameProvider")}getName(e){if(gme(e))return e.name}getNameNode(e){return jx(e.$cstNode,"name")}}});var Ib,oB=M(()=>{"use strict";zl();Pl();hs();Bl();Ys();Qc();Ib=class{static{o(this,"DefaultReferences")}constructor(e){this.nameProvider=e.references.NameProvider,this.index=e.shared.workspace.IndexManager,this.nodeLocator=e.workspace.AstNodeLocator}findDeclaration(e){if(e){let r=MO(e),n=e.astNode;if(r&&n){let i=n[r.feature];if(wa(i))return i.ref;if(Array.isArray(i)){for(let a of i)if(wa(a)&&a.$refNode&&a.$refNode.offset<=e.offset&&a.$refNode.end>=e.end)return a.ref}}if(n){let i=this.nameProvider.getNameNode(n);if(i&&(i===e||YI(e,i)))return n}}}findDeclarationNode(e){let r=this.findDeclaration(e);if(r?.$cstNode){let n=this.nameProvider.getNameNode(r);return n??r.$cstNode}}findReferences(e,r){let n=[];if(r.includeDeclaration){let a=this.getReferenceToSelf(e);a&&n.push(a)}let i=this.index.findAllReferences(e,this.nodeLocator.getAstNodePath(e));return r.documentUri&&(i=i.filter(a=>vs.equals(a.sourceUri,r.documentUri))),n.push(...i),an(n)}getReferenceToSelf(e){let r=this.nameProvider.getNameNode(e);if(r){let n=Ua(e),i=this.nodeLocator.getAstNodePath(e);return{sourceUri:n.uri,sourcePath:i,targetUri:n.uri,targetPath:i,segment:Lp(r),local:!0}}}}});var Vl,Qp,H1=M(()=>{"use strict";Ys();Vl=class{static{o(this,"MultiMap")}constructor(e){if(this.map=new Map,e)for(let[r,n]of e)this.add(r,n)}get size(){return vg.sum(an(this.map.values()).map(e=>e.length))}clear(){this.map.clear()}delete(e,r){if(r===void 0)return this.map.delete(e);{let n=this.map.get(e);if(n){let i=n.indexOf(r);if(i>=0)return n.length===1?this.map.delete(e):n.splice(i,1),!0}return!1}}get(e){var r;return(r=this.map.get(e))!==null&&r!==void 0?r:[]}has(e,r){if(r===void 0)return this.map.has(e);{let n=this.map.get(e);return n?n.indexOf(r)>=0:!1}}add(e,r){return this.map.has(e)?this.map.get(e).push(r):this.map.set(e,[r]),this}addAll(e,r){return this.map.has(e)?this.map.get(e).push(...r):this.map.set(e,Array.from(r)),this}forEach(e){this.map.forEach((r,n)=>r.forEach(i=>e(i,n,this)))}[Symbol.iterator](){return this.entries().iterator()}entries(){return an(this.map.entries()).flatMap(([e,r])=>r.map(n=>[e,n]))}keys(){return an(this.map.keys())}values(){return an(this.map.values()).flat()}entriesGroupedByKey(){return an(this.map.entries())}},Qp=class{static{o(this,"BiMap")}get size(){return this.map.size}constructor(e){if(this.map=new Map,this.inverse=new Map,e)for(let[r,n]of e)this.set(r,n)}clear(){this.map.clear(),this.inverse.clear()}set(e,r){return this.map.set(e,r),this.inverse.set(r,e),this}get(e){return this.map.get(e)}getKey(e){return this.inverse.get(e)}delete(e){let r=this.map.get(e);return r!==void 0?(this.map.delete(e),this.inverse.delete(r),!0):!1}}});var Ob,lB=M(()=>{"use strict";el();hs();H1();tl();Ob=class{static{o(this,"DefaultScopeComputation")}constructor(e){this.nameProvider=e.references.NameProvider,this.descriptions=e.workspace.AstNodeDescriptionProvider}async computeExports(e,r=br.CancellationToken.None){return this.computeExportsForNode(e.parseResult.value,e,void 0,r)}async computeExportsForNode(e,r,n=Ux,i=br.CancellationToken.None){let a=[];this.exportNode(e,a,r);for(let s of n(e))await bi(i),this.exportNode(s,a,r);return a}exportNode(e,r,n){let i=this.nameProvider.getName(e);i&&r.push(this.descriptions.createDescription(e,i,n))}async computeLocalScopes(e,r=br.CancellationToken.None){let n=e.parseResult.value,i=new Vl;for(let a of qc(n))await bi(r),this.processNode(a,e,i);return i}processNode(e,r,n){let i=e.$container;if(i){let a=this.nameProvider.getName(e);a&&n.add(i,this.descriptions.createDescription(e,a,r))}}}});var q1,Pb,oje,cB=M(()=>{"use strict";Ys();q1=class{static{o(this,"StreamScope")}constructor(e,r,n){var i;this.elements=e,this.outerScope=r,this.caseInsensitive=(i=n?.caseInsensitive)!==null&&i!==void 0?i:!1}getAllElements(){return this.outerScope?this.elements.concat(this.outerScope.getAllElements()):this.elements}getElement(e){let r=this.caseInsensitive?this.elements.find(n=>n.name.toLowerCase()===e.toLowerCase()):this.elements.find(n=>n.name===e);if(r)return r;if(this.outerScope)return this.outerScope.getElement(e)}},Pb=class{static{o(this,"MapScope")}constructor(e,r,n){var i;this.elements=new Map,this.caseInsensitive=(i=n?.caseInsensitive)!==null&&i!==void 0?i:!1;for(let a of e){let s=this.caseInsensitive?a.name.toLowerCase():a.name;this.elements.set(s,a)}this.outerScope=r}getElement(e){let r=this.caseInsensitive?e.toLowerCase():e,n=this.elements.get(r);if(n)return n;if(this.outerScope)return this.outerScope.getElement(e)}getAllElements(){let e=an(this.elements.values());return this.outerScope&&(e=e.concat(this.outerScope.getAllElements())),e}},oje={getElement(){},getAllElements(){return Nx}}});var W1,Bb,Zp,QS,Y1,ZS=M(()=>{"use strict";W1=class{static{o(this,"DisposableCache")}constructor(){this.toDispose=[],this.isDisposed=!1}onDispose(e){this.toDispose.push(e)}dispose(){this.throwIfDisposed(),this.clear(),this.isDisposed=!0,this.toDispose.forEach(e=>e.dispose())}throwIfDisposed(){if(this.isDisposed)throw new Error("This cache has already been disposed")}},Bb=class extends W1{static{o(this,"SimpleCache")}constructor(){super(...arguments),this.cache=new Map}has(e){return this.throwIfDisposed(),this.cache.has(e)}set(e,r){this.throwIfDisposed(),this.cache.set(e,r)}get(e,r){if(this.throwIfDisposed(),this.cache.has(e))return this.cache.get(e);if(r){let n=r();return this.cache.set(e,n),n}else return}delete(e){return this.throwIfDisposed(),this.cache.delete(e)}clear(){this.throwIfDisposed(),this.cache.clear()}},Zp=class extends W1{static{o(this,"ContextCache")}constructor(e){super(),this.cache=new Map,this.converter=e??(r=>r)}has(e,r){return this.throwIfDisposed(),this.cacheForContext(e).has(r)}set(e,r,n){this.throwIfDisposed(),this.cacheForContext(e).set(r,n)}get(e,r,n){this.throwIfDisposed();let i=this.cacheForContext(e);if(i.has(r))return i.get(r);if(n){let a=n();return i.set(r,a),a}else return}delete(e,r){return this.throwIfDisposed(),this.cacheForContext(e).delete(r)}clear(e){if(this.throwIfDisposed(),e){let r=this.converter(e);this.cache.delete(r)}else this.cache.clear()}cacheForContext(e){let r=this.converter(e),n=this.cache.get(r);return n||(n=new Map,this.cache.set(r,n)),n}},QS=class extends Zp{static{o(this,"DocumentCache")}constructor(e,r){super(n=>n.toString()),r?(this.toDispose.push(e.workspace.DocumentBuilder.onDocumentPhase(r,n=>{this.clear(n.uri.toString())})),this.toDispose.push(e.workspace.DocumentBuilder.onUpdate((n,i)=>{for(let a of i)this.clear(a)}))):this.toDispose.push(e.workspace.DocumentBuilder.onUpdate((n,i)=>{let a=n.concat(i);for(let s of a)this.clear(s)}))}},Y1=class extends Bb{static{o(this,"WorkspaceCache")}constructor(e,r){super(),r?(this.toDispose.push(e.workspace.DocumentBuilder.onBuildPhase(r,()=>{this.clear()})),this.toDispose.push(e.workspace.DocumentBuilder.onUpdate((n,i)=>{i.length>0&&this.clear()}))):this.toDispose.push(e.workspace.DocumentBuilder.onUpdate(()=>{this.clear()}))}}});var Fb,uB=M(()=>{"use strict";cB();hs();Ys();ZS();Fb=class{static{o(this,"DefaultScopeProvider")}constructor(e){this.reflection=e.shared.AstReflection,this.nameProvider=e.references.NameProvider,this.descriptions=e.workspace.AstNodeDescriptionProvider,this.indexManager=e.shared.workspace.IndexManager,this.globalScopeCache=new Y1(e.shared)}getScope(e){let r=[],n=this.reflection.getReferenceType(e),i=Ua(e.container).precomputedScopes;if(i){let s=e.container;do{let l=i.get(s);l.length>0&&r.push(an(l).filter(u=>this.reflection.isSubtype(u.type,n))),s=s.$container}while(s)}let a=this.getGlobalScope(n,e);for(let s=r.length-1;s>=0;s--)a=this.createScope(r[s],a);return a}createScope(e,r,n){return new q1(an(e),r,n)}createScopeForNodes(e,r,n){let i=an(e).map(a=>{let s=this.nameProvider.getName(a);if(s)return this.descriptions.createDescription(a,s)}).nonNullable();return new q1(i,r,n)}getGlobalScope(e,r){return this.globalScopeCache.get(e,()=>new Pb(this.indexManager.allElements(e)))}}});function hB(t){return typeof t.$comment=="string"}function yme(t){return typeof t=="object"&&!!t&&("$ref"in t||"$error"in t)}var $b,JS=M(()=>{"use strict";nB();Pl();hs();zl();o(hB,"isAstNodeWithComment");o(yme,"isIntermediateReference");$b=class{static{o(this,"DefaultJsonSerializer")}constructor(e){this.ignoreProperties=new Set(["$container","$containerProperty","$containerIndex","$document","$cstNode"]),this.langiumDocuments=e.shared.workspace.LangiumDocuments,this.astNodeLocator=e.workspace.AstNodeLocator,this.nameProvider=e.references.NameProvider,this.commentProvider=e.documentation.CommentProvider}serialize(e,r){let n=r??{},i=r?.replacer,a=o((l,u)=>this.replacer(l,u,n),"defaultReplacer"),s=i?(l,u)=>i(l,u,a):a;try{return this.currentDocument=Ua(e),JSON.stringify(e,s,r?.space)}finally{this.currentDocument=void 0}}deserialize(e,r){let n=r??{},i=JSON.parse(e);return this.linkNode(i,i,n),i}replacer(e,r,{refText:n,sourceText:i,textRegions:a,comments:s,uriConverter:l}){var u,h,f,d;if(!this.ignoreProperties.has(e))if(wa(r)){let p=r.ref,m=n?r.$refText:void 0;if(p){let g=Ua(p),y="";this.currentDocument&&this.currentDocument!==g&&(l?y=l(g.uri,r):y=g.uri.toString());let v=this.astNodeLocator.getAstNodePath(p);return{$ref:`${y}#${v}`,$refText:m}}else return{$error:(h=(u=r.error)===null||u===void 0?void 0:u.message)!==null&&h!==void 0?h:"Could not resolve reference",$refText:m}}else if(li(r)){let p;if(a&&(p=this.addAstNodeRegionWithAssignmentsTo(Object.assign({},r)),(!e||r.$document)&&p?.$textRegion&&(p.$textRegion.documentURI=(f=this.currentDocument)===null||f===void 0?void 0:f.uri.toString())),i&&!e&&(p??(p=Object.assign({},r)),p.$sourceText=(d=r.$cstNode)===null||d===void 0?void 0:d.text),s){p??(p=Object.assign({},r));let m=this.commentProvider.getComment(r);m&&(p.$comment=m.replace(/\r/g,""))}return p??r}else return r}addAstNodeRegionWithAssignmentsTo(e){let r=o(n=>({offset:n.offset,end:n.end,length:n.length,range:n.range}),"createDocumentSegment");if(e.$cstNode){let n=e.$textRegion=r(e.$cstNode),i=n.assignments={};return Object.keys(e).filter(a=>!a.startsWith("$")).forEach(a=>{let s=DO(e.$cstNode,a).map(r);s.length!==0&&(i[a]=s)}),e}}linkNode(e,r,n,i,a,s){for(let[u,h]of Object.entries(e))if(Array.isArray(h))for(let f=0;f{"use strict";Qc();zb=class{static{o(this,"DefaultServiceRegistry")}get map(){return this.fileExtensionMap}constructor(e){this.languageIdMap=new Map,this.fileExtensionMap=new Map,this.textDocuments=e?.workspace.TextDocuments}register(e){let r=e.LanguageMetaData;for(let n of r.fileExtensions)this.fileExtensionMap.has(n)&&console.warn(`The file extension ${n} is used by multiple languages. It is now assigned to '${r.languageId}'.`),this.fileExtensionMap.set(n,e);this.languageIdMap.set(r.languageId,e),this.languageIdMap.size===1?this.singleton=e:this.singleton=void 0}getServices(e){var r,n;if(this.singleton!==void 0)return this.singleton;if(this.languageIdMap.size===0)throw new Error("The service registry is empty. Use `register` to register the services of a language.");let i=(n=(r=this.textDocuments)===null||r===void 0?void 0:r.get(e))===null||n===void 0?void 0:n.languageId;if(i!==void 0){let l=this.languageIdMap.get(i);if(l)return l}let a=vs.extname(e),s=this.fileExtensionMap.get(a);if(!s)throw i?new Error(`The service registry contains no services for the extension '${a}' for language '${i}'.`):new Error(`The service registry contains no services for the extension '${a}'.`);return s}hasServices(e){try{return this.getServices(e),!0}catch{return!1}}get all(){return Array.from(this.languageIdMap.values())}}});function Jp(t){return{code:t}}var X1,Gb,Vb=M(()=>{"use strict";vo();H1();tl();Ys();o(Jp,"diagnosticData");(function(t){t.all=["fast","slow","built-in"]})(X1||(X1={}));Gb=class{static{o(this,"ValidationRegistry")}constructor(e){this.entries=new Vl,this.entriesBefore=[],this.entriesAfter=[],this.reflection=e.shared.AstReflection}register(e,r=this,n="fast"){if(n==="built-in")throw new Error("The 'built-in' category is reserved for lexer, parser, and linker errors.");for(let[i,a]of Object.entries(e)){let s=a;if(Array.isArray(s))for(let l of s){let u={check:this.wrapValidationException(l,r),category:n};this.addEntry(i,u)}else if(typeof s=="function"){let l={check:this.wrapValidationException(s,r),category:n};this.addEntry(i,l)}else Uc(s)}}wrapValidationException(e,r){return async(n,i,a)=>{await this.handleException(()=>e.call(r,n,i,a),"An error occurred during validation",i,n)}}async handleException(e,r,n,i){try{await e()}catch(a){if(Kc(a))throw a;console.error(`${r}:`,a),a instanceof Error&&a.stack&&console.error(a.stack);let s=a instanceof Error?a.message:String(a);n("error",`${r}: ${s}`,{node:i})}}addEntry(e,r){if(e==="AstNode"){this.entries.add("AstNode",r);return}for(let n of this.reflection.getAllSubTypes(e))this.entries.add(n,r)}getChecks(e,r){let n=an(this.entries.get(e)).concat(this.entries.get("AstNode"));return r&&(n=n.filter(i=>r.includes(i.category))),n.map(i=>i.check)}registerBeforeDocument(e,r=this){this.entriesBefore.push(this.wrapPreparationException(e,"An error occurred during set-up of the validation",r))}registerAfterDocument(e,r=this){this.entriesAfter.push(this.wrapPreparationException(e,"An error occurred during tear-down of the validation",r))}wrapPreparationException(e,r,n){return async(i,a,s,l)=>{await this.handleException(()=>e.call(n,i,a,s,l),r,a,i)}}get checksBefore(){return this.entriesBefore}get checksAfter(){return this.entriesAfter}}});function vme(t){if(t.range)return t.range;let e;return typeof t.property=="string"?e=jx(t.node.$cstNode,t.property,t.index):typeof t.keyword=="string"&&(e=RO(t.node.$cstNode,t.keyword,t.index)),e??(e=t.node.$cstNode),e?e.range:{start:{line:0,character:0},end:{line:0,character:0}}}function e6(t){switch(t){case"error":return 1;case"warning":return 2;case"info":return 3;case"hint":return 4;default:throw new Error("Invalid diagnostic severity: "+t)}}function xme(t){switch(t){case"error":return Jp(rl.LexingError);case"warning":return Jp(rl.LexingWarning);case"info":return Jp(rl.LexingInfo);case"hint":return Jp(rl.LexingHint);default:throw new Error("Invalid diagnostic severity: "+t)}}var Ub,rl,dB=M(()=>{"use strict";el();zl();hs();Bl();tl();Vb();Ub=class{static{o(this,"DefaultDocumentValidator")}constructor(e){this.validationRegistry=e.validation.ValidationRegistry,this.metadata=e.LanguageMetaData}async validateDocument(e,r={},n=br.CancellationToken.None){let i=e.parseResult,a=[];if(await bi(n),(!r.categories||r.categories.includes("built-in"))&&(this.processLexingErrors(i,a,r),r.stopAfterLexingErrors&&a.some(s=>{var l;return((l=s.data)===null||l===void 0?void 0:l.code)===rl.LexingError})||(this.processParsingErrors(i,a,r),r.stopAfterParsingErrors&&a.some(s=>{var l;return((l=s.data)===null||l===void 0?void 0:l.code)===rl.ParsingError}))||(this.processLinkingErrors(e,a,r),r.stopAfterLinkingErrors&&a.some(s=>{var l;return((l=s.data)===null||l===void 0?void 0:l.code)===rl.LinkingError}))))return a;try{a.push(...await this.validateAst(i.value,r,n))}catch(s){if(Kc(s))throw s;console.error("An error occurred during validation:",s)}return await bi(n),a}processLexingErrors(e,r,n){var i,a,s;let l=[...e.lexerErrors,...(a=(i=e.lexerReport)===null||i===void 0?void 0:i.diagnostics)!==null&&a!==void 0?a:[]];for(let u of l){let h=(s=u.severity)!==null&&s!==void 0?s:"error",f={severity:e6(h),range:{start:{line:u.line-1,character:u.column-1},end:{line:u.line-1,character:u.column+u.length-1}},message:u.message,data:xme(h),source:this.getSource()};r.push(f)}}processParsingErrors(e,r,n){for(let i of e.parserErrors){let a;if(isNaN(i.token.startOffset)){if("previousToken"in i){let s=i.previousToken;if(isNaN(s.startOffset)){let l={line:0,character:0};a={start:l,end:l}}else{let l={line:s.endLine-1,character:s.endColumn};a={start:l,end:l}}}}else a=xg(i.token);if(a){let s={severity:e6("error"),range:a,message:i.message,data:Jp(rl.ParsingError),source:this.getSource()};r.push(s)}}}processLinkingErrors(e,r,n){for(let i of e.references){let a=i.error;if(a){let s={node:a.container,property:a.property,index:a.index,data:{code:rl.LinkingError,containerType:a.container.$type,property:a.property,refText:a.reference.$refText}};r.push(this.toDiagnostic("error",a.message,s))}}}async validateAst(e,r,n=br.CancellationToken.None){let i=[],a=o((s,l,u)=>{i.push(this.toDiagnostic(s,l,u))},"acceptor");return await this.validateAstBefore(e,r,a,n),await this.validateAstNodes(e,r,a,n),await this.validateAstAfter(e,r,a,n),i}async validateAstBefore(e,r,n,i=br.CancellationToken.None){var a;let s=this.validationRegistry.checksBefore;for(let l of s)await bi(i),await l(e,n,(a=r.categories)!==null&&a!==void 0?a:[],i)}async validateAstNodes(e,r,n,i=br.CancellationToken.None){await Promise.all(Jo(e).map(async a=>{await bi(i);let s=this.validationRegistry.getChecks(a.$type,r.categories);for(let l of s)await l(a,n,i)}))}async validateAstAfter(e,r,n,i=br.CancellationToken.None){var a;let s=this.validationRegistry.checksAfter;for(let l of s)await bi(i),await l(e,n,(a=r.categories)!==null&&a!==void 0?a:[],i)}toDiagnostic(e,r,n){return{message:r,range:vme(n),severity:e6(e),code:n.code,codeDescription:n.codeDescription,tags:n.tags,relatedInformation:n.relatedInformation,data:n.data,source:this.getSource()}}getSource(){return this.metadata.languageId}};o(vme,"getDiagnosticRange");o(e6,"toDiagnosticSeverity");o(xme,"toDiagnosticData");(function(t){t.LexingError="lexing-error",t.LexingWarning="lexing-warning",t.LexingInfo="lexing-info",t.LexingHint="lexing-hint",t.ParsingError="parsing-error",t.LinkingError="linking-error"})(rl||(rl={}))});var Hb,qb,pB=M(()=>{"use strict";el();Pl();hs();Bl();tl();Qc();Hb=class{static{o(this,"DefaultAstNodeDescriptionProvider")}constructor(e){this.astNodeLocator=e.workspace.AstNodeLocator,this.nameProvider=e.references.NameProvider}createDescription(e,r,n){let i=n??Ua(e);r??(r=this.nameProvider.getName(e));let a=this.astNodeLocator.getAstNodePath(e);if(!r)throw new Error(`Node at path ${a} has no name.`);let s,l=o(()=>{var u;return s??(s=Lp((u=this.nameProvider.getNameNode(e))!==null&&u!==void 0?u:e.$cstNode))},"nameSegmentGetter");return{node:e,name:r,get nameSegment(){return l()},selectionSegment:Lp(e.$cstNode),type:e.$type,documentUri:i.uri,path:a}}},qb=class{static{o(this,"DefaultReferenceDescriptionProvider")}constructor(e){this.nodeLocator=e.workspace.AstNodeLocator}async createDescriptions(e,r=br.CancellationToken.None){let n=[],i=e.parseResult.value;for(let a of Jo(i))await bi(r),a1(a).filter(s=>!_p(s)).forEach(s=>{let l=this.createDescription(s);l&&n.push(l)});return n}createDescription(e){let r=e.reference.$nodeDescription,n=e.reference.$refNode;if(!r||!n)return;let i=Ua(e.container).uri;return{sourceUri:i,sourcePath:this.nodeLocator.getAstNodePath(e.container),targetUri:r.documentUri,targetPath:r.path,segment:Lp(n),local:vs.equals(r.documentUri,i)}}}});var Wb,mB=M(()=>{"use strict";Wb=class{static{o(this,"DefaultAstNodeLocator")}constructor(){this.segmentSeparator="/",this.indexSeparator="@"}getAstNodePath(e){if(e.$container){let r=this.getAstNodePath(e.$container),n=this.getPathSegment(e);return r+this.segmentSeparator+n}return""}getPathSegment({$containerProperty:e,$containerIndex:r}){if(!e)throw new Error("Missing '$containerProperty' in AST node.");return r!==void 0?e+this.indexSeparator+r:e}getAstNode(e,r){return r.split(this.segmentSeparator).reduce((i,a)=>{if(!i||a.length===0)return i;let s=a.indexOf(this.indexSeparator);if(s>0){let l=a.substring(0,s),u=parseInt(a.substring(s+1)),h=i[l];return h?.[u]}return i[a]},e)}}});var ei={};var t6=M(()=>{"use strict";Lr(ei,La(ZP(),1))});var Yb,gB=M(()=>{"use strict";t6();tl();Yb=class{static{o(this,"DefaultConfigurationProvider")}constructor(e){this._ready=new gs,this.settings={},this.workspaceConfig=!1,this.onConfigurationSectionUpdateEmitter=new ei.Emitter,this.serviceRegistry=e.ServiceRegistry}get ready(){return this._ready.promise}initialize(e){var r,n;this.workspaceConfig=(n=(r=e.capabilities.workspace)===null||r===void 0?void 0:r.configuration)!==null&&n!==void 0?n:!1}async initialized(e){if(this.workspaceConfig){if(e.register){let r=this.serviceRegistry.all;e.register({section:r.map(n=>this.toSectionName(n.LanguageMetaData.languageId))})}if(e.fetchConfiguration){let r=this.serviceRegistry.all.map(i=>({section:this.toSectionName(i.LanguageMetaData.languageId)})),n=await e.fetchConfiguration(r);r.forEach((i,a)=>{this.updateSectionConfiguration(i.section,n[a])})}}this._ready.resolve()}updateConfiguration(e){e.settings&&Object.keys(e.settings).forEach(r=>{let n=e.settings[r];this.updateSectionConfiguration(r,n),this.onConfigurationSectionUpdateEmitter.fire({section:r,configuration:n})})}updateSectionConfiguration(e,r){this.settings[e]=r}async getConfiguration(e,r){await this.ready;let n=this.toSectionName(e);if(this.settings[n])return this.settings[n][r]}toSectionName(e){return`${e}`}get onConfigurationSectionUpdate(){return this.onConfigurationSectionUpdateEmitter.event}}});var Gf,yB=M(()=>{"use strict";(function(t){function e(r){return{dispose:o(async()=>await r(),"dispose")}}o(e,"create"),t.create=e})(Gf||(Gf={}))});var Xb,vB=M(()=>{"use strict";el();yB();H1();tl();Ys();Vb();U1();Xb=class{static{o(this,"DefaultDocumentBuilder")}constructor(e){this.updateBuildOptions={validation:{categories:["built-in","fast"]}},this.updateListeners=[],this.buildPhaseListeners=new Vl,this.documentPhaseListeners=new Vl,this.buildState=new Map,this.documentBuildWaiters=new Map,this.currentState=Ln.Changed,this.langiumDocuments=e.workspace.LangiumDocuments,this.langiumDocumentFactory=e.workspace.LangiumDocumentFactory,this.textDocuments=e.workspace.TextDocuments,this.indexManager=e.workspace.IndexManager,this.serviceRegistry=e.ServiceRegistry}async build(e,r={},n=br.CancellationToken.None){var i,a;for(let s of e){let l=s.uri.toString();if(s.state===Ln.Validated){if(typeof r.validation=="boolean"&&r.validation)s.state=Ln.IndexedReferences,s.diagnostics=void 0,this.buildState.delete(l);else if(typeof r.validation=="object"){let u=this.buildState.get(l),h=(i=u?.result)===null||i===void 0?void 0:i.validationChecks;if(h){let d=((a=r.validation.categories)!==null&&a!==void 0?a:X1.all).filter(p=>!h.includes(p));d.length>0&&(this.buildState.set(l,{completed:!1,options:{validation:Object.assign(Object.assign({},r.validation),{categories:d})},result:u.result}),s.state=Ln.IndexedReferences)}}}else this.buildState.delete(l)}this.currentState=Ln.Changed,await this.emitUpdate(e.map(s=>s.uri),[]),await this.buildDocuments(e,r,n)}async update(e,r,n=br.CancellationToken.None){this.currentState=Ln.Changed;for(let s of r)this.langiumDocuments.deleteDocument(s),this.buildState.delete(s.toString()),this.indexManager.remove(s);for(let s of e){if(!this.langiumDocuments.invalidateDocument(s)){let u=this.langiumDocumentFactory.fromModel({$type:"INVALID"},s);u.state=Ln.Changed,this.langiumDocuments.addDocument(u)}this.buildState.delete(s.toString())}let i=an(e).concat(r).map(s=>s.toString()).toSet();this.langiumDocuments.all.filter(s=>!i.has(s.uri.toString())&&this.shouldRelink(s,i)).forEach(s=>{this.serviceRegistry.getServices(s.uri).references.Linker.unlink(s),s.state=Math.min(s.state,Ln.ComputedScopes),s.diagnostics=void 0}),await this.emitUpdate(e,r),await bi(n);let a=this.sortDocuments(this.langiumDocuments.all.filter(s=>{var l;return s.staten(e,r)))}sortDocuments(e){let r=0,n=e.length-1;for(;r=0&&!this.hasTextDocument(e[n]);)n--;rn.error!==void 0)?!0:this.indexManager.isAffected(e,r)}onUpdate(e){return this.updateListeners.push(e),Gf.create(()=>{let r=this.updateListeners.indexOf(e);r>=0&&this.updateListeners.splice(r,1)})}async buildDocuments(e,r,n){this.prepareBuild(e,r),await this.runCancelable(e,Ln.Parsed,n,a=>this.langiumDocumentFactory.update(a,n)),await this.runCancelable(e,Ln.IndexedContent,n,a=>this.indexManager.updateContent(a,n)),await this.runCancelable(e,Ln.ComputedScopes,n,async a=>{let s=this.serviceRegistry.getServices(a.uri).references.ScopeComputation;a.precomputedScopes=await s.computeLocalScopes(a,n)}),await this.runCancelable(e,Ln.Linked,n,a=>this.serviceRegistry.getServices(a.uri).references.Linker.link(a,n)),await this.runCancelable(e,Ln.IndexedReferences,n,a=>this.indexManager.updateReferences(a,n));let i=e.filter(a=>this.shouldValidate(a));await this.runCancelable(i,Ln.Validated,n,a=>this.validate(a,n));for(let a of e){let s=this.buildState.get(a.uri.toString());s&&(s.completed=!0)}}prepareBuild(e,r){for(let n of e){let i=n.uri.toString(),a=this.buildState.get(i);(!a||a.completed)&&this.buildState.set(i,{completed:!1,options:r,result:a?.result})}}async runCancelable(e,r,n,i){let a=e.filter(l=>l.statel.state===r);await this.notifyBuildPhase(s,r,n),this.currentState=r}onBuildPhase(e,r){return this.buildPhaseListeners.add(e,r),Gf.create(()=>{this.buildPhaseListeners.delete(e,r)})}onDocumentPhase(e,r){return this.documentPhaseListeners.add(e,r),Gf.create(()=>{this.documentPhaseListeners.delete(e,r)})}waitUntil(e,r,n){let i;if(r&&"path"in r?i=r:n=r,n??(n=br.CancellationToken.None),i){let a=this.langiumDocuments.getDocument(i);if(a&&a.state>e)return Promise.resolve(i)}return this.currentState>=e?Promise.resolve(void 0):n.isCancellationRequested?Promise.reject(jc):new Promise((a,s)=>{let l=this.onBuildPhase(e,()=>{if(l.dispose(),u.dispose(),i){let h=this.langiumDocuments.getDocument(i);a(h?.uri)}else a(void 0)}),u=n.onCancellationRequested(()=>{l.dispose(),u.dispose(),s(jc)})})}async notifyDocumentPhase(e,r,n){let a=this.documentPhaseListeners.get(r).slice();for(let s of a)try{await s(e,n)}catch(l){if(!Kc(l))throw l}}async notifyBuildPhase(e,r,n){if(e.length===0)return;let a=this.buildPhaseListeners.get(r).slice();for(let s of a)await bi(n),await s(e,n)}shouldValidate(e){return!!this.getBuildOptions(e).validation}async validate(e,r){var n,i;let a=this.serviceRegistry.getServices(e.uri).validation.DocumentValidator,s=this.getBuildOptions(e).validation,l=typeof s=="object"?s:void 0,u=await a.validateDocument(e,l,r);e.diagnostics?e.diagnostics.push(...u):e.diagnostics=u;let h=this.buildState.get(e.uri.toString());if(h){(n=h.result)!==null&&n!==void 0||(h.result={});let f=(i=l?.categories)!==null&&i!==void 0?i:X1.all;h.result.validationChecks?h.result.validationChecks.push(...f):h.result.validationChecks=[...f]}}getBuildOptions(e){var r,n;return(n=(r=this.buildState.get(e.uri.toString()))===null||r===void 0?void 0:r.options)!==null&&n!==void 0?n:{}}}});var jb,xB=M(()=>{"use strict";hs();ZS();el();Ys();Qc();jb=class{static{o(this,"DefaultIndexManager")}constructor(e){this.symbolIndex=new Map,this.symbolByTypeIndex=new Zp,this.referenceIndex=new Map,this.documents=e.workspace.LangiumDocuments,this.serviceRegistry=e.ServiceRegistry,this.astReflection=e.AstReflection}findAllReferences(e,r){let n=Ua(e).uri,i=[];return this.referenceIndex.forEach(a=>{a.forEach(s=>{vs.equals(s.targetUri,n)&&s.targetPath===r&&i.push(s)})}),an(i)}allElements(e,r){let n=an(this.symbolIndex.keys());return r&&(n=n.filter(i=>!r||r.has(i))),n.map(i=>this.getFileDescriptions(i,e)).flat()}getFileDescriptions(e,r){var n;return r?this.symbolByTypeIndex.get(e,r,()=>{var a;return((a=this.symbolIndex.get(e))!==null&&a!==void 0?a:[]).filter(l=>this.astReflection.isSubtype(l.type,r))}):(n=this.symbolIndex.get(e))!==null&&n!==void 0?n:[]}remove(e){let r=e.toString();this.symbolIndex.delete(r),this.symbolByTypeIndex.clear(r),this.referenceIndex.delete(r)}async updateContent(e,r=br.CancellationToken.None){let i=await this.serviceRegistry.getServices(e.uri).references.ScopeComputation.computeExports(e,r),a=e.uri.toString();this.symbolIndex.set(a,i),this.symbolByTypeIndex.clear(a)}async updateReferences(e,r=br.CancellationToken.None){let i=await this.serviceRegistry.getServices(e.uri).workspace.ReferenceDescriptionProvider.createDescriptions(e,r);this.referenceIndex.set(e.uri.toString(),i)}isAffected(e,r){let n=this.referenceIndex.get(e.uri.toString());return n?n.some(i=>!i.local&&r.has(i.targetUri.toString())):!1}}});var Kb,bB=M(()=>{"use strict";el();tl();Qc();Kb=class{static{o(this,"DefaultWorkspaceManager")}constructor(e){this.initialBuildOptions={},this._ready=new gs,this.serviceRegistry=e.ServiceRegistry,this.langiumDocuments=e.workspace.LangiumDocuments,this.documentBuilder=e.workspace.DocumentBuilder,this.fileSystemProvider=e.workspace.FileSystemProvider,this.mutex=e.workspace.WorkspaceLock}get ready(){return this._ready.promise}get workspaceFolders(){return this.folders}initialize(e){var r;this.folders=(r=e.workspaceFolders)!==null&&r!==void 0?r:void 0}initialized(e){return this.mutex.write(r=>{var n;return this.initializeWorkspace((n=this.folders)!==null&&n!==void 0?n:[],r)})}async initializeWorkspace(e,r=br.CancellationToken.None){let n=await this.performStartup(e);await bi(r),await this.documentBuilder.build(n,this.initialBuildOptions,r)}async performStartup(e){let r=this.serviceRegistry.all.flatMap(a=>a.LanguageMetaData.fileExtensions),n=[],i=o(a=>{n.push(a),this.langiumDocuments.hasDocument(a.uri)||this.langiumDocuments.addDocument(a)},"collector");return await this.loadAdditionalDocuments(e,i),await Promise.all(e.map(a=>[a,this.getRootFolder(a)]).map(async a=>this.traverseFolder(...a,r,i))),this._ready.resolve(),n}loadAdditionalDocuments(e,r){return Promise.resolve()}getRootFolder(e){return ys.parse(e.uri)}async traverseFolder(e,r,n,i){let a=await this.fileSystemProvider.readDirectory(r);await Promise.all(a.map(async s=>{if(this.includeEntry(e,s,n)){if(s.isDirectory)await this.traverseFolder(e,s.uri,n,i);else if(s.isFile){let l=await this.langiumDocuments.getOrCreateDocument(s.uri);i(l)}}}))}includeEntry(e,r,n){let i=vs.basename(r.uri);if(i.startsWith("."))return!1;if(r.isDirectory)return i!=="node_modules"&&i!=="out";if(r.isFile){let a=vs.extname(r.uri);return n.includes(a)}return!1}}});function n6(t){return Array.isArray(t)&&(t.length===0||"name"in t[0])}function wB(t){return t&&"modes"in t&&"defaultMode"in t}function TB(t){return!n6(t)&&!wB(t)}var Qb,r6,e0,i6=M(()=>{"use strict";Ff();Qb=class{static{o(this,"DefaultLexerErrorMessageProvider")}buildUnexpectedCharactersMessage(e,r,n,i,a){return x1.buildUnexpectedCharactersMessage(e,r,n,i,a)}buildUnableToPopLexerModeMessage(e){return x1.buildUnableToPopLexerModeMessage(e)}},r6={mode:"full"},e0=class{static{o(this,"DefaultLexer")}constructor(e){this.errorMessageProvider=e.parser.LexerErrorMessageProvider,this.tokenBuilder=e.parser.TokenBuilder;let r=this.tokenBuilder.buildTokens(e.Grammar,{caseInsensitive:e.LanguageMetaData.caseInsensitive});this.tokenTypes=this.toTokenTypeDictionary(r);let n=TB(r)?Object.values(r):r,i=e.LanguageMetaData.mode==="production";this.chevrotainLexer=new Zn(n,{positionTracking:"full",skipValidations:i,errorMessageProvider:this.errorMessageProvider})}get definition(){return this.tokenTypes}tokenize(e,r=r6){var n,i,a;let s=this.chevrotainLexer.tokenize(e);return{tokens:s.tokens,errors:s.errors,hidden:(n=s.groups.hidden)!==null&&n!==void 0?n:[],report:(a=(i=this.tokenBuilder).flushLexingReport)===null||a===void 0?void 0:a.call(i,e)}}toTokenTypeDictionary(e){if(TB(e))return e;let r=wB(e)?Object.values(e.modes).flat():e,n={};return r.forEach(i=>n[i.name]=i),n}};o(n6,"isTokenTypeArray");o(wB,"isIMultiModeLexerDefinition");o(TB,"isTokenTypeDictionary")});function SB(t,e,r){let n,i;typeof t=="string"?(i=e,n=r):(i=t.range.start,n=e),i||(i=tn.create(0,0));let a=wme(t),s=AB(n),l=cje({lines:a,position:i,options:s});return pje({index:0,tokens:l,position:i})}function CB(t,e){let r=AB(e),n=wme(t);if(n.length===0)return!1;let i=n[0],a=n[n.length-1],s=r.start,l=r.end;return!!s?.exec(i)&&!!l?.exec(a)}function wme(t){let e="";return typeof t=="string"?e=t:e=t.text,e.split(TO)}function cje(t){var e,r,n;let i=[],a=t.position.line,s=t.position.character;for(let l=0;l=f.length){if(i.length>0){let m=tn.create(a,s);i.push({type:"break",content:"",range:Gr.create(m,m)})}}else{bme.lastIndex=d;let m=bme.exec(f);if(m){let g=m[0],y=m[1],v=tn.create(a,s+d),x=tn.create(a,s+d+g.length);i.push({type:"tag",content:y,range:Gr.create(v,x)}),d+=g.length,d=EB(f,d)}if(d0&&i[i.length-1].type==="break"?i.slice(0,-1):i}function uje(t,e,r,n){let i=[];if(t.length===0){let a=tn.create(r,n),s=tn.create(r,n+e.length);i.push({type:"text",content:e,range:Gr.create(a,s)})}else{let a=0;for(let l of t){let u=l.index,h=e.substring(a,u);h.length>0&&i.push({type:"text",content:e.substring(a,u),range:Gr.create(tn.create(r,a+n),tn.create(r,u+n))});let f=h.length+1,d=l[1];if(i.push({type:"inline-tag",content:d,range:Gr.create(tn.create(r,a+f+n),tn.create(r,a+f+d.length+n))}),f+=d.length,l.length===4){f+=l[2].length;let p=l[3];i.push({type:"text",content:p,range:Gr.create(tn.create(r,a+f+n),tn.create(r,a+f+p.length+n))})}else i.push({type:"text",content:"",range:Gr.create(tn.create(r,a+f+n),tn.create(r,a+f+n))});a=u+l[0].length}let s=e.substring(a);s.length>0&&i.push({type:"text",content:s,range:Gr.create(tn.create(r,a+n),tn.create(r,a+n+s.length))})}return i}function EB(t,e){let r=t.substring(e).match(hje);return r?e+r.index:t.length}function dje(t){let e=t.match(fje);if(e&&typeof e.index=="number")return e.index}function pje(t){var e,r,n,i;let a=tn.create(t.position.line,t.position.character);if(t.tokens.length===0)return new a6([],Gr.create(a,a));let s=[];for(;t.index0){let u=EB(e,a);s=e.substring(u),e=e.substring(0,a)}return(t==="linkcode"||t==="link"&&r.link==="code")&&(s=`\`${s}\``),(i=(n=r.renderLink)===null||n===void 0?void 0:n.call(r,e,s))!==null&&i!==void 0?i:xje(e,s)}}function xje(t,e){try{return ys.parse(t,!0),`[${e}](${t})`}catch{return t}}function Tme(t){return t.endsWith(` +`)?` +`:` + +`}var bme,lje,hje,fje,a6,Zb,Jb,s6,_B=M(()=>{"use strict";BP();l1();Qc();o(SB,"parseJSDoc");o(CB,"isJSDoc");o(wme,"getLines");bme=/\s*(@([\p{L}][\p{L}\p{N}]*)?)/uy,lje=/\{(@[\p{L}][\p{L}\p{N}]*)(\s*)([^\r\n}]+)?\}/gu;o(cje,"tokenize");o(uje,"buildInlineTokens");hje=/\S/,fje=/\s*$/;o(EB,"skipWhitespace");o(dje,"lastCharacter");o(pje,"parseJSDocComment");o(mje,"parseJSDocElement");o(gje,"appendEmptyLine");o(kme,"parseJSDocText");o(yje,"parseJSDocInline");o(Eme,"parseJSDocTag");o(Sme,"parseJSDocLine");o(AB,"normalizeOptions");o(kB,"normalizeOption");a6=class{static{o(this,"JSDocCommentImpl")}constructor(e,r){this.elements=e,this.range=r}getTag(e){return this.getAllTags().find(r=>r.name===e)}getTags(e){return this.getAllTags().filter(r=>r.name===e)}getAllTags(){return this.elements.filter(e=>"name"in e)}toString(){let e="";for(let r of this.elements)if(e.length===0)e=r.toString();else{let n=r.toString();e+=Tme(e)+n}return e.trim()}toMarkdown(e){let r="";for(let n of this.elements)if(r.length===0)r=n.toMarkdown(e);else{let i=n.toMarkdown(e);r+=Tme(r)+i}return r.trim()}},Zb=class{static{o(this,"JSDocTagImpl")}constructor(e,r,n,i){this.name=e,this.content=r,this.inline=n,this.range=i}toString(){let e=`@${this.name}`,r=this.content.toString();return this.content.inlines.length===1?e=`${e} ${r}`:this.content.inlines.length>1&&(e=`${e} +${r}`),this.inline?`{${e}}`:e}toMarkdown(e){var r,n;return(n=(r=e?.renderTag)===null||r===void 0?void 0:r.call(e,this))!==null&&n!==void 0?n:this.toMarkdownDefault(e)}toMarkdownDefault(e){let r=this.content.toMarkdown(e);if(this.inline){let a=vje(this.name,r,e??{});if(typeof a=="string")return a}let n="";e?.tag==="italic"||e?.tag===void 0?n="*":e?.tag==="bold"?n="**":e?.tag==="bold-italic"&&(n="***");let i=`${n}@${this.name}${n}`;return this.content.inlines.length===1?i=`${i} \u2014 ${r}`:this.content.inlines.length>1&&(i=`${i} +${r}`),this.inline?`{${i}}`:i}};o(vje,"renderInlineTag");o(xje,"renderLinkDefault");Jb=class{static{o(this,"JSDocTextImpl")}constructor(e,r){this.inlines=e,this.range=r}toString(){let e="";for(let r=0;rn.range.start.line&&(e+=` +`)}return e}toMarkdown(e){let r="";for(let n=0;ni.range.start.line&&(r+=` +`)}return r}},s6=class{static{o(this,"JSDocLineImpl")}constructor(e,r){this.text=e,this.range=r}toString(){return this.text}toMarkdown(){return this.text}};o(Tme,"fillNewlines")});var e4,DB=M(()=>{"use strict";hs();_B();e4=class{static{o(this,"JSDocDocumentationProvider")}constructor(e){this.indexManager=e.shared.workspace.IndexManager,this.commentProvider=e.documentation.CommentProvider}getDocumentation(e){let r=this.commentProvider.getComment(e);if(r&&CB(r))return SB(r).toMarkdown({renderLink:o((i,a)=>this.documentationLinkRenderer(e,i,a),"renderLink"),renderTag:o(i=>this.documentationTagRenderer(e,i),"renderTag")})}documentationLinkRenderer(e,r,n){var i;let a=(i=this.findNameInPrecomputedScopes(e,r))!==null&&i!==void 0?i:this.findNameInGlobalScope(e,r);if(a&&a.nameSegment){let s=a.nameSegment.range.start.line+1,l=a.nameSegment.range.start.character+1,u=a.documentUri.with({fragment:`L${s},${l}`});return`[${n}](${u.toString()})`}else return}documentationTagRenderer(e,r){}findNameInPrecomputedScopes(e,r){let i=Ua(e).precomputedScopes;if(!i)return;let a=e;do{let l=i.get(a).find(u=>u.name===r);if(l)return l;a=a.$container}while(a)}findNameInGlobalScope(e,r){return this.indexManager.allElements().find(i=>i.name===r)}}});var t4,LB=M(()=>{"use strict";JS();Bl();t4=class{static{o(this,"DefaultCommentProvider")}constructor(e){this.grammarConfig=()=>e.parser.GrammarConfig}getComment(e){var r;return hB(e)?e.$comment:(r=jI(e.$cstNode,this.grammarConfig().multilineCommentRules))===null||r===void 0?void 0:r.text}}});var r4,RB,NB,MB=M(()=>{"use strict";tl();t6();r4=class{static{o(this,"DefaultAsyncParser")}constructor(e){this.syncParser=e.parser.LangiumParser}parse(e,r){return Promise.resolve(this.syncParser.parse(e))}},RB=class{static{o(this,"AbstractThreadedAsyncParser")}constructor(e){this.threadCount=8,this.terminationDelay=200,this.workerPool=[],this.queue=[],this.hydrator=e.serializer.Hydrator}initializeWorkers(){for(;this.workerPool.length{if(this.queue.length>0){let r=this.queue.shift();r&&(e.lock(),r.resolve(e))}}),this.workerPool.push(e)}}async parse(e,r){let n=await this.acquireParserWorker(r),i=new gs,a,s=r.onCancellationRequested(()=>{a=setTimeout(()=>{this.terminateWorker(n)},this.terminationDelay)});return n.parse(e).then(l=>{let u=this.hydrator.hydrate(l);i.resolve(u)}).catch(l=>{i.reject(l)}).finally(()=>{s.dispose(),clearTimeout(a)}),i.promise}terminateWorker(e){e.terminate();let r=this.workerPool.indexOf(e);r>=0&&this.workerPool.splice(r,1)}async acquireParserWorker(e){this.initializeWorkers();for(let n of this.workerPool)if(n.ready)return n.lock(),n;let r=new gs;return e.onCancellationRequested(()=>{let n=this.queue.indexOf(r);n>=0&&this.queue.splice(n,1),r.reject(jc)}),this.queue.push(r),r.promise}},NB=class{static{o(this,"ParserWorker")}get ready(){return this._ready}get onReady(){return this.onReadyEmitter.event}constructor(e,r,n,i){this.onReadyEmitter=new ei.Emitter,this.deferred=new gs,this._ready=!0,this._parsing=!1,this.sendMessage=e,this._terminate=i,r(a=>{let s=a;this.deferred.resolve(s),this.unlock()}),n(a=>{this.deferred.reject(a),this.unlock()})}terminate(){this.deferred.reject(jc),this._terminate()}lock(){this._ready=!1}unlock(){this._parsing=!1,this._ready=!0,this.onReadyEmitter.fire()}parse(e){if(this._parsing)throw new Error("Parser worker is busy");return this._parsing=!0,this.deferred=new gs,this.sendMessage(e),this.deferred.promise}}});var n4,IB=M(()=>{"use strict";el();tl();n4=class{static{o(this,"DefaultWorkspaceLock")}constructor(){this.previousTokenSource=new br.CancellationTokenSource,this.writeQueue=[],this.readQueue=[],this.done=!0}write(e){this.cancelWrite();let r=jS();return this.previousTokenSource=r,this.enqueue(this.writeQueue,e,r.token)}read(e){return this.enqueue(this.readQueue,e)}enqueue(e,r,n=br.CancellationToken.None){let i=new gs,a={action:r,deferred:i,cancellationToken:n};return e.push(a),this.performNextOperation(),i.promise}async performNextOperation(){if(!this.done)return;let e=[];if(this.writeQueue.length>0)e.push(this.writeQueue.shift());else if(this.readQueue.length>0)e.push(...this.readQueue.splice(0,this.readQueue.length));else return;this.done=!1,await Promise.all(e.map(async({action:r,deferred:n,cancellationToken:i})=>{try{let a=await Promise.resolve().then(()=>r(i));n.resolve(a)}catch(a){Kc(a)?n.resolve(void 0):n.reject(a)}})),this.done=!0,this.performNextOperation()}cancelWrite(){this.previousTokenSource.cancel()}}});var i4,OB=M(()=>{"use strict";$S();Hc();Pl();hs();H1();Bl();i4=class{static{o(this,"DefaultHydrator")}constructor(e){this.grammarElementIdMap=new Qp,this.tokenTypeIdMap=new Qp,this.grammar=e.Grammar,this.lexer=e.parser.Lexer,this.linker=e.references.Linker}dehydrate(e){return{lexerErrors:e.lexerErrors,lexerReport:e.lexerReport?this.dehydrateLexerReport(e.lexerReport):void 0,parserErrors:e.parserErrors.map(r=>Object.assign(Object.assign({},r),{message:r.message})),value:this.dehydrateAstNode(e.value,this.createDehyrationContext(e.value))}}dehydrateLexerReport(e){return e}createDehyrationContext(e){let r=new Map,n=new Map;for(let i of Jo(e))r.set(i,{});if(e.$cstNode)for(let i of Dp(e.$cstNode))n.set(i,{});return{astNodes:r,cstNodes:n}}dehydrateAstNode(e,r){let n=r.astNodes.get(e);n.$type=e.$type,n.$containerIndex=e.$containerIndex,n.$containerProperty=e.$containerProperty,e.$cstNode!==void 0&&(n.$cstNode=this.dehydrateCstNode(e.$cstNode,r));for(let[i,a]of Object.entries(e))if(!i.startsWith("$"))if(Array.isArray(a)){let s=[];n[i]=s;for(let l of a)li(l)?s.push(this.dehydrateAstNode(l,r)):wa(l)?s.push(this.dehydrateReference(l,r)):s.push(l)}else li(a)?n[i]=this.dehydrateAstNode(a,r):wa(a)?n[i]=this.dehydrateReference(a,r):a!==void 0&&(n[i]=a);return n}dehydrateReference(e,r){let n={};return n.$refText=e.$refText,e.$refNode&&(n.$refNode=r.cstNodes.get(e.$refNode)),n}dehydrateCstNode(e,r){let n=r.cstNodes.get(e);return Rx(e)?n.fullText=e.fullText:n.grammarSource=this.getGrammarElementId(e.grammarSource),n.hidden=e.hidden,n.astNode=r.astNodes.get(e.astNode),Ol(e)?n.content=e.content.map(i=>this.dehydrateCstNode(i,r)):If(e)&&(n.tokenType=e.tokenType.name,n.offset=e.offset,n.length=e.length,n.startLine=e.range.start.line,n.startColumn=e.range.start.character,n.endLine=e.range.end.line,n.endColumn=e.range.end.character),n}hydrate(e){let r=e.value,n=this.createHydrationContext(r);return"$cstNode"in r&&this.hydrateCstNode(r.$cstNode,n),{lexerErrors:e.lexerErrors,lexerReport:e.lexerReport,parserErrors:e.parserErrors,value:this.hydrateAstNode(r,n)}}createHydrationContext(e){let r=new Map,n=new Map;for(let a of Jo(e))r.set(a,{});let i;if(e.$cstNode)for(let a of Dp(e.$cstNode)){let s;"fullText"in a?(s=new B1(a.fullText),i=s):"content"in a?s=new Xp:"tokenType"in a&&(s=this.hydrateCstLeafNode(a)),s&&(n.set(a,s),s.root=i)}return{astNodes:r,cstNodes:n}}hydrateAstNode(e,r){let n=r.astNodes.get(e);n.$type=e.$type,n.$containerIndex=e.$containerIndex,n.$containerProperty=e.$containerProperty,e.$cstNode&&(n.$cstNode=r.cstNodes.get(e.$cstNode));for(let[i,a]of Object.entries(e))if(!i.startsWith("$"))if(Array.isArray(a)){let s=[];n[i]=s;for(let l of a)li(l)?s.push(this.setParent(this.hydrateAstNode(l,r),n)):wa(l)?s.push(this.hydrateReference(l,n,i,r)):s.push(l)}else li(a)?n[i]=this.setParent(this.hydrateAstNode(a,r),n):wa(a)?n[i]=this.hydrateReference(a,n,i,r):a!==void 0&&(n[i]=a);return n}setParent(e,r){return e.$container=r,e}hydrateReference(e,r,n,i){return this.linker.buildReference(r,n,i.cstNodes.get(e.$refNode),e.$refText)}hydrateCstNode(e,r,n=0){let i=r.cstNodes.get(e);if(typeof e.grammarSource=="number"&&(i.grammarSource=this.getGrammarElement(e.grammarSource)),i.astNode=r.astNodes.get(e.astNode),Ol(i))for(let a of e.content){let s=this.hydrateCstNode(a,r,n++);i.content.push(s)}return i}hydrateCstLeafNode(e){let r=this.getTokenType(e.tokenType),n=e.offset,i=e.length,a=e.startLine,s=e.startColumn,l=e.endLine,u=e.endColumn,h=e.hidden;return new Yp(n,i,{start:{line:a,character:s},end:{line:l,character:u}},r,h)}getTokenType(e){return this.lexer.definition[e]}getGrammarElementId(e){if(e)return this.grammarElementIdMap.size===0&&this.createGrammarElementIdMap(),this.grammarElementIdMap.get(e)}getGrammarElement(e){return this.grammarElementIdMap.size===0&&this.createGrammarElementIdMap(),this.grammarElementIdMap.getKey(e)}createGrammarElementIdMap(){let e=0;for(let r of Jo(this.grammar))$x(r)&&this.grammarElementIdMap.set(r,e++)}}});function ka(t){return{documentation:{CommentProvider:o(e=>new t4(e),"CommentProvider"),DocumentationProvider:o(e=>new e4(e),"DocumentationProvider")},parser:{AsyncParser:o(e=>new r4(e),"AsyncParser"),GrammarConfig:o(e=>PO(e),"GrammarConfig"),LangiumParser:o(e=>HP(e),"LangiumParser"),CompletionParser:o(e=>VP(e),"CompletionParser"),ValueConverter:o(()=>new Kp,"ValueConverter"),TokenBuilder:o(()=>new th,"TokenBuilder"),Lexer:o(e=>new e0(e),"Lexer"),ParserErrorMessageProvider:o(()=>new F1,"ParserErrorMessageProvider"),LexerErrorMessageProvider:o(()=>new Qb,"LexerErrorMessageProvider")},workspace:{AstNodeLocator:o(()=>new Wb,"AstNodeLocator"),AstNodeDescriptionProvider:o(e=>new Hb(e),"AstNodeDescriptionProvider"),ReferenceDescriptionProvider:o(e=>new qb(e),"ReferenceDescriptionProvider")},references:{Linker:o(e=>new Nb(e),"Linker"),NameProvider:o(()=>new Mb,"NameProvider"),ScopeProvider:o(e=>new Fb(e),"ScopeProvider"),ScopeComputation:o(e=>new Ob(e),"ScopeComputation"),References:o(e=>new Ib(e),"References")},serializer:{Hydrator:o(e=>new i4(e),"Hydrator"),JsonSerializer:o(e=>new $b(e),"JsonSerializer")},validation:{DocumentValidator:o(e=>new Ub(e),"DocumentValidator"),ValidationRegistry:o(e=>new Gb(e),"ValidationRegistry")},shared:o(()=>t.shared,"shared")}}function Ea(t){return{ServiceRegistry:o(e=>new zb(e),"ServiceRegistry"),workspace:{LangiumDocuments:o(e=>new Rb(e),"LangiumDocuments"),LangiumDocumentFactory:o(e=>new Lb(e),"LangiumDocumentFactory"),DocumentBuilder:o(e=>new Xb(e),"DocumentBuilder"),IndexManager:o(e=>new jb(e),"IndexManager"),WorkspaceManager:o(e=>new Kb(e),"WorkspaceManager"),FileSystemProvider:o(e=>t.fileSystemProvider(e),"FileSystemProvider"),WorkspaceLock:o(()=>new n4,"WorkspaceLock"),ConfigurationProvider:o(e=>new Yb(e),"ConfigurationProvider")}}}var PB=M(()=>{"use strict";BO();UP();qP();HS();WP();aB();sB();oB();lB();uB();JS();fB();dB();Vb();pB();mB();gB();vB();U1();xB();bB();i6();DB();LB();_b();MB();IB();OB();o(ka,"createDefaultCoreModule");o(Ea,"createDefaultSharedCoreModule")});function Hn(t,e,r,n,i,a,s,l,u){let h=[t,e,r,n,i,a,s,l,u].reduce(o6,{});return Lme(h)}function Dme(t){if(t&&t[_me])for(let e of Object.values(t))Dme(e);return t}function Lme(t,e){let r=new Proxy({},{deleteProperty:o(()=>!1,"deleteProperty"),set:o(()=>{throw new Error("Cannot set property on injected service container")},"set"),get:o((n,i)=>i===_me?!0:Ame(n,i,t,e||r),"get"),getOwnPropertyDescriptor:o((n,i)=>(Ame(n,i,t,e||r),Object.getOwnPropertyDescriptor(n,i)),"getOwnPropertyDescriptor"),has:o((n,i)=>i in t,"has"),ownKeys:o(()=>[...Object.getOwnPropertyNames(t)],"ownKeys")});return r}function Ame(t,e,r,n){if(e in t){if(t[e]instanceof Error)throw new Error("Construction failure. Please make sure that your dependencies are constructable.",{cause:t[e]});if(t[e]===Cme)throw new Error('Cycle detected. Please make "'+String(e)+'" lazy. Visit https://langium.org/docs/reference/configuration-services/#resolving-cyclic-dependencies');return t[e]}else if(e in r){let i=r[e];t[e]=Cme;try{t[e]=typeof i=="function"?i(n):Lme(i,n)}catch(a){throw t[e]=a instanceof Error?a:void 0,a}return t[e]}else return}function o6(t,e){if(e){for(let[r,n]of Object.entries(e))if(n!==void 0){let i=t[r];i!==null&&n!==null&&typeof i=="object"&&typeof n=="object"?t[r]=o6(i,n):t[r]=n}}return t}var BB,_me,Cme,FB=M(()=>{"use strict";(function(t){t.merge=(e,r)=>o6(o6({},e),r)})(BB||(BB={}));o(Hn,"inject");_me=Symbol("isProxy");o(Dme,"eagerLoad");o(Lme,"_inject");Cme=Symbol();o(Ame,"_resolve");o(o6,"_merge")});var Rme=M(()=>{"use strict"});var Nme=M(()=>{"use strict";LB();DB();_B()});var Mme=M(()=>{"use strict"});var Ime=M(()=>{"use strict";BO();Mme()});var $B,t0,l6,zB,Ome=M(()=>{"use strict";Ff();HS();i6();$B={indentTokenName:"INDENT",dedentTokenName:"DEDENT",whitespaceTokenName:"WS",ignoreIndentationDelimiters:[]};(function(t){t.REGULAR="indentation-sensitive",t.IGNORE_INDENTATION="ignore-indentation"})(t0||(t0={}));l6=class extends th{static{o(this,"IndentationAwareTokenBuilder")}constructor(e=$B){super(),this.indentationStack=[0],this.whitespaceRegExp=/[ \t]+/y,this.options=Object.assign(Object.assign({},$B),e),this.indentTokenType=Pf({name:this.options.indentTokenName,pattern:this.indentMatcher.bind(this),line_breaks:!1}),this.dedentTokenType=Pf({name:this.options.dedentTokenName,pattern:this.dedentMatcher.bind(this),line_breaks:!1})}buildTokens(e,r){let n=super.buildTokens(e,r);if(!n6(n))throw new Error("Invalid tokens built by default builder");let{indentTokenName:i,dedentTokenName:a,whitespaceTokenName:s,ignoreIndentationDelimiters:l}=this.options,u,h,f,d=[];for(let p of n){for(let[m,g]of l)p.name===m?p.PUSH_MODE=t0.IGNORE_INDENTATION:p.name===g&&(p.POP_MODE=!0);p.name===a?u=p:p.name===i?h=p:p.name===s?f=p:d.push(p)}if(!u||!h||!f)throw new Error("Some indentation/whitespace tokens not found!");return l.length>0?{modes:{[t0.REGULAR]:[u,h,...d,f],[t0.IGNORE_INDENTATION]:[...d,f]},defaultMode:t0.REGULAR}:[u,h,f,...d]}flushLexingReport(e){let r=super.flushLexingReport(e);return Object.assign(Object.assign({},r),{remainingDedents:this.flushRemainingDedents(e)})}isStartOfLine(e,r){return r===0||`\r +`.includes(e[r-1])}matchWhitespace(e,r,n,i){var a;this.whitespaceRegExp.lastIndex=r;let s=this.whitespaceRegExp.exec(e);return{currIndentLevel:(a=s?.[0].length)!==null&&a!==void 0?a:0,prevIndentLevel:this.indentationStack.at(-1),match:s}}createIndentationTokenInstance(e,r,n,i){let a=this.getLineNumber(r,i);return Qu(e,n,i,i+n.length,a,a,1,n.length)}getLineNumber(e,r){return e.substring(0,r).split(/\r\n|\r|\n/).length}indentMatcher(e,r,n,i){if(!this.isStartOfLine(e,r))return null;let{currIndentLevel:a,prevIndentLevel:s,match:l}=this.matchWhitespace(e,r,n,i);return a<=s?null:(this.indentationStack.push(a),l)}dedentMatcher(e,r,n,i){var a,s,l,u;if(!this.isStartOfLine(e,r))return null;let{currIndentLevel:h,prevIndentLevel:f,match:d}=this.matchWhitespace(e,r,n,i);if(h>=f)return null;let p=this.indentationStack.lastIndexOf(h);if(p===-1)return this.diagnostics.push({severity:"error",message:`Invalid dedent level ${h} at offset: ${r}. Current indentation stack: ${this.indentationStack}`,offset:r,length:(s=(a=d?.[0])===null||a===void 0?void 0:a.length)!==null&&s!==void 0?s:0,line:this.getLineNumber(e,r),column:1}),null;let m=this.indentationStack.length-p-1,g=(u=(l=e.substring(0,r).match(/[\r\n]+$/))===null||l===void 0?void 0:l[0].length)!==null&&u!==void 0?u:1;for(let y=0;y1;)r.push(this.createIndentationTokenInstance(this.dedentTokenType,e,"",e.length)),this.indentationStack.pop();return this.indentationStack=[0],r}},zB=class extends e0{static{o(this,"IndentationAwareLexer")}constructor(e){if(super(e),e.parser.TokenBuilder instanceof l6)this.indentationTokenBuilder=e.parser.TokenBuilder;else throw new Error("IndentationAwareLexer requires an accompanying IndentationAwareTokenBuilder")}tokenize(e,r=r6){let n=super.tokenize(e),i=n.report;r?.mode==="full"&&n.tokens.push(...i.remainingDedents),i.remainingDedents=[];let{indentTokenType:a,dedentTokenType:s}=this.indentationTokenBuilder,l=a.tokenTypeIdx,u=s.tokenTypeIdx,h=[],f=n.tokens.length-1;for(let d=0;d=0&&h.push(n.tokens[f]),n.tokens=h,n}}});var Pme=M(()=>{"use strict"});var Bme=M(()=>{"use strict";MB();UP();$S();Ome();qP();_b();i6();US();Pme();HS();WP()});var Fme=M(()=>{"use strict";aB();sB();oB();cB();lB();uB()});var $me=M(()=>{"use strict";OB();JS()});var c6,Sa,GB=M(()=>{"use strict";c6=class{static{o(this,"EmptyFileSystemProvider")}readFile(){throw new Error("No file system is available.")}async readDirectory(){return[]}},Sa={fileSystemProvider:o(()=>new c6,"fileSystemProvider")}});function wje(){let t=Hn(Ea(Sa),Tje),e=Hn(ka({shared:t}),bje);return t.ServiceRegistry.register(e),e}function Zc(t){var e;let r=wje(),n=r.serializer.JsonSerializer.deserialize(t);return r.shared.workspace.LangiumDocumentFactory.fromModel(n,ys.parse(`memory://${(e=n.name)!==null&&e!==void 0?e:"grammar"}.langium`)),n}var bje,Tje,zme=M(()=>{"use strict";PB();FB();Hc();GB();Qc();bje={Grammar:o(()=>{},"Grammar"),LanguageMetaData:o(()=>({caseInsensitive:!1,fileExtensions:[".langium"],languageId:"langium"}),"LanguageMetaData")},Tje={AstReflection:o(()=>new i1,"AstReflection")};o(wje,"createMinimalGrammarServices");o(Zc,"loadGrammarFromJson")});var Xr={};dr(Xr,{AstUtils:()=>VE,BiMap:()=>Qp,Cancellation:()=>br,ContextCache:()=>Zp,CstUtils:()=>NE,DONE_RESULT:()=>Ga,Deferred:()=>gs,Disposable:()=>Gf,DisposableCache:()=>W1,DocumentCache:()=>QS,EMPTY_STREAM:()=>Nx,ErrorWithLocation:()=>Rp,GrammarUtils:()=>YE,MultiMap:()=>Vl,OperationCancelled:()=>jc,Reduction:()=>vg,RegExpUtils:()=>qE,SimpleCache:()=>Bb,StreamImpl:()=>po,TreeStreamImpl:()=>Gc,URI:()=>ys,UriUtils:()=>vs,WorkspaceCache:()=>Y1,assertUnreachable:()=>Uc,delayNextTick:()=>tB,interruptAndCheck:()=>bi,isOperationCancelled:()=>Kc,loadGrammarFromJson:()=>Zc,setInterruptionPeriod:()=>ume,startCancelableOperation:()=>jS,stream:()=>an});var Gme=M(()=>{"use strict";ZS();t6();Lr(Xr,ei);H1();yB();ME();zme();tl();Ys();Qc();hs();el();Bl();zl();l1()});var Vme=M(()=>{"use strict";dB();Vb()});var Ume=M(()=>{"use strict";pB();mB();gB();vB();U1();GB();xB();IB();bB()});var Ca={};dr(Ca,{AbstractAstReflection:()=>Ap,AbstractCstNode:()=>Eb,AbstractLangiumParser:()=>Sb,AbstractParserErrorMessageProvider:()=>GS,AbstractThreadedAsyncParser:()=>RB,AstUtils:()=>VE,BiMap:()=>Qp,Cancellation:()=>br,CompositeCstNodeImpl:()=>Xp,ContextCache:()=>Zp,CstNodeBuilder:()=>kb,CstUtils:()=>NE,DEFAULT_TOKENIZE_OPTIONS:()=>r6,DONE_RESULT:()=>Ga,DatatypeSymbol:()=>zS,DefaultAstNodeDescriptionProvider:()=>Hb,DefaultAstNodeLocator:()=>Wb,DefaultAsyncParser:()=>r4,DefaultCommentProvider:()=>t4,DefaultConfigurationProvider:()=>Yb,DefaultDocumentBuilder:()=>Xb,DefaultDocumentValidator:()=>Ub,DefaultHydrator:()=>i4,DefaultIndexManager:()=>jb,DefaultJsonSerializer:()=>$b,DefaultLangiumDocumentFactory:()=>Lb,DefaultLangiumDocuments:()=>Rb,DefaultLexer:()=>e0,DefaultLexerErrorMessageProvider:()=>Qb,DefaultLinker:()=>Nb,DefaultNameProvider:()=>Mb,DefaultReferenceDescriptionProvider:()=>qb,DefaultReferences:()=>Ib,DefaultScopeComputation:()=>Ob,DefaultScopeProvider:()=>Fb,DefaultServiceRegistry:()=>zb,DefaultTokenBuilder:()=>th,DefaultValueConverter:()=>Kp,DefaultWorkspaceLock:()=>n4,DefaultWorkspaceManager:()=>Kb,Deferred:()=>gs,Disposable:()=>Gf,DisposableCache:()=>W1,DocumentCache:()=>QS,DocumentState:()=>Ln,DocumentValidator:()=>rl,EMPTY_SCOPE:()=>oje,EMPTY_STREAM:()=>Nx,EmptyFileSystem:()=>Sa,EmptyFileSystemProvider:()=>c6,ErrorWithLocation:()=>Rp,GrammarAST:()=>Gx,GrammarUtils:()=>YE,IndentationAwareLexer:()=>zB,IndentationAwareTokenBuilder:()=>l6,JSDocDocumentationProvider:()=>e4,LangiumCompletionParser:()=>Ab,LangiumParser:()=>Cb,LangiumParserErrorMessageProvider:()=>F1,LeafCstNodeImpl:()=>Yp,LexingMode:()=>t0,MapScope:()=>Pb,Module:()=>BB,MultiMap:()=>Vl,OperationCancelled:()=>jc,ParserWorker:()=>NB,Reduction:()=>vg,RegExpUtils:()=>qE,RootCstNodeImpl:()=>B1,SimpleCache:()=>Bb,StreamImpl:()=>po,StreamScope:()=>q1,TextDocument:()=>G1,TreeStreamImpl:()=>Gc,URI:()=>ys,UriUtils:()=>vs,ValidationCategory:()=>X1,ValidationRegistry:()=>Gb,ValueConverter:()=>Xc,WorkspaceCache:()=>Y1,assertUnreachable:()=>Uc,createCompletionParser:()=>VP,createDefaultCoreModule:()=>ka,createDefaultSharedCoreModule:()=>Ea,createGrammarConfig:()=>PO,createLangiumParser:()=>HP,createParser:()=>Db,delayNextTick:()=>tB,diagnosticData:()=>Jp,eagerLoad:()=>Dme,getDiagnosticRange:()=>vme,indentationBuilderDefaultOptions:()=>$B,inject:()=>Hn,interruptAndCheck:()=>bi,isAstNode:()=>li,isAstNodeDescription:()=>qI,isAstNodeWithComment:()=>hB,isCompositeCstNode:()=>Ol,isIMultiModeLexerDefinition:()=>wB,isJSDoc:()=>CB,isLeafCstNode:()=>If,isLinkingError:()=>_p,isNamed:()=>gme,isOperationCancelled:()=>Kc,isReference:()=>wa,isRootCstNode:()=>Rx,isTokenTypeArray:()=>n6,isTokenTypeDictionary:()=>TB,loadGrammarFromJson:()=>Zc,parseJSDoc:()=>SB,prepareLangiumParser:()=>nme,setInterruptionPeriod:()=>ume,startCancelableOperation:()=>jS,stream:()=>an,toDiagnosticData:()=>xme,toDiagnosticSeverity:()=>e6});var vo=M(()=>{"use strict";PB();FB();fB();Rme();Pl();Nme();Ime();Bme();Fme();$me();Gme();Lr(Ca,Xr);Vme();Ume();Hc()});function Qme(t){return Ul.isInstance(t,a4)}function Zme(t){return Ul.isInstance(t,j1)}function Jme(t){return Ul.isInstance(t,K1)}function ege(t){return Ul.isInstance(t,Q1)}function tge(t){return Ul.isInstance(t,s4)}function rge(t){return Ul.isInstance(t,Z1)}function nge(t){return Ul.isInstance(t,o4)}function ige(t){return Ul.isInstance(t,l4)}function age(t){return Ul.isInstance(t,c4)}function sge(t){return Ul.isInstance(t,u4)}function oge(t){return Ul.isInstance(t,h4)}var kje,Tt,QB,a4,u6,j1,h6,f6,VB,K1,UB,HB,qB,Q1,WB,s4,d6,YB,Z1,XB,o4,l4,c4,u4,y6,jB,h4,KB,p6,m6,g6,lge,Ul,Hme,Eje,qme,Sje,Wme,Cje,Yme,Aje,Xme,_je,jme,Dje,Kme,Lje,Rje,Nje,Mje,Ije,Oje,Pje,Bje,xs,ZB,JB,eF,tF,rF,nF,iF,Fje,$je,zje,Gje,Vf,rh,qa,Vje,Wa=M(()=>{"use strict";vo();vo();vo();vo();kje=Object.defineProperty,Tt=o((t,e)=>kje(t,"name",{value:e,configurable:!0}),"__name"),QB="Statement",a4="Architecture";o(Qme,"isArchitecture");Tt(Qme,"isArchitecture");u6="Axis",j1="Branch";o(Zme,"isBranch");Tt(Zme,"isBranch");h6="Checkout",f6="CherryPicking",VB="ClassDefStatement",K1="Commit";o(Jme,"isCommit");Tt(Jme,"isCommit");UB="Curve",HB="Edge",qB="Entry",Q1="GitGraph";o(ege,"isGitGraph");Tt(ege,"isGitGraph");WB="Group",s4="Info";o(tge,"isInfo");Tt(tge,"isInfo");d6="Item",YB="Junction",Z1="Merge";o(rge,"isMerge");Tt(rge,"isMerge");XB="Option",o4="Packet";o(nge,"isPacket");Tt(nge,"isPacket");l4="PacketBlock";o(ige,"isPacketBlock");Tt(ige,"isPacketBlock");c4="Pie";o(age,"isPie");Tt(age,"isPie");u4="PieSection";o(sge,"isPieSection");Tt(sge,"isPieSection");y6="Radar",jB="Service",h4="Treemap";o(oge,"isTreemap");Tt(oge,"isTreemap");KB="TreemapRow",p6="Direction",m6="Leaf",g6="Section",lge=class extends Ap{static{o(this,"MermaidAstReflection")}static{Tt(this,"MermaidAstReflection")}getAllTypes(){return[a4,u6,j1,h6,f6,VB,K1,UB,p6,HB,qB,Q1,WB,s4,d6,YB,m6,Z1,XB,o4,l4,c4,u4,y6,g6,jB,QB,h4,KB]}computeIsSubtype(t,e){switch(t){case j1:case h6:case f6:case K1:case Z1:return this.isSubtype(QB,e);case p6:return this.isSubtype(Q1,e);case m6:case g6:return this.isSubtype(d6,e);default:return!1}}getReferenceType(t){let e=`${t.container.$type}:${t.property}`;switch(e){case"Entry:axis":return u6;default:throw new Error(`${e} is not a valid reference id.`)}}getTypeMetaData(t){switch(t){case a4:return{name:a4,properties:[{name:"accDescr"},{name:"accTitle"},{name:"edges",defaultValue:[]},{name:"groups",defaultValue:[]},{name:"junctions",defaultValue:[]},{name:"services",defaultValue:[]},{name:"title"}]};case u6:return{name:u6,properties:[{name:"label"},{name:"name"}]};case j1:return{name:j1,properties:[{name:"name"},{name:"order"}]};case h6:return{name:h6,properties:[{name:"branch"}]};case f6:return{name:f6,properties:[{name:"id"},{name:"parent"},{name:"tags",defaultValue:[]}]};case VB:return{name:VB,properties:[{name:"className"},{name:"styleText"}]};case K1:return{name:K1,properties:[{name:"id"},{name:"message"},{name:"tags",defaultValue:[]},{name:"type"}]};case UB:return{name:UB,properties:[{name:"entries",defaultValue:[]},{name:"label"},{name:"name"}]};case HB:return{name:HB,properties:[{name:"lhsDir"},{name:"lhsGroup",defaultValue:!1},{name:"lhsId"},{name:"lhsInto",defaultValue:!1},{name:"rhsDir"},{name:"rhsGroup",defaultValue:!1},{name:"rhsId"},{name:"rhsInto",defaultValue:!1},{name:"title"}]};case qB:return{name:qB,properties:[{name:"axis"},{name:"value"}]};case Q1:return{name:Q1,properties:[{name:"accDescr"},{name:"accTitle"},{name:"statements",defaultValue:[]},{name:"title"}]};case WB:return{name:WB,properties:[{name:"icon"},{name:"id"},{name:"in"},{name:"title"}]};case s4:return{name:s4,properties:[{name:"accDescr"},{name:"accTitle"},{name:"title"}]};case d6:return{name:d6,properties:[{name:"classSelector"},{name:"name"}]};case YB:return{name:YB,properties:[{name:"id"},{name:"in"}]};case Z1:return{name:Z1,properties:[{name:"branch"},{name:"id"},{name:"tags",defaultValue:[]},{name:"type"}]};case XB:return{name:XB,properties:[{name:"name"},{name:"value",defaultValue:!1}]};case o4:return{name:o4,properties:[{name:"accDescr"},{name:"accTitle"},{name:"blocks",defaultValue:[]},{name:"title"}]};case l4:return{name:l4,properties:[{name:"bits"},{name:"end"},{name:"label"},{name:"start"}]};case c4:return{name:c4,properties:[{name:"accDescr"},{name:"accTitle"},{name:"sections",defaultValue:[]},{name:"showData",defaultValue:!1},{name:"title"}]};case u4:return{name:u4,properties:[{name:"label"},{name:"value"}]};case y6:return{name:y6,properties:[{name:"accDescr"},{name:"accTitle"},{name:"axes",defaultValue:[]},{name:"curves",defaultValue:[]},{name:"options",defaultValue:[]},{name:"title"}]};case jB:return{name:jB,properties:[{name:"icon"},{name:"iconText"},{name:"id"},{name:"in"},{name:"title"}]};case h4:return{name:h4,properties:[{name:"accDescr"},{name:"accTitle"},{name:"title"},{name:"TreemapRows",defaultValue:[]}]};case KB:return{name:KB,properties:[{name:"indent"},{name:"item"}]};case p6:return{name:p6,properties:[{name:"accDescr"},{name:"accTitle"},{name:"dir"},{name:"statements",defaultValue:[]},{name:"title"}]};case m6:return{name:m6,properties:[{name:"classSelector"},{name:"name"},{name:"value"}]};case g6:return{name:g6,properties:[{name:"classSelector"},{name:"name"}]};default:return{name:t,properties:[]}}}},Ul=new lge,Eje=Tt(()=>Hme??(Hme=Zc(`{"$type":"Grammar","isDeclared":true,"name":"Info","imports":[],"rules":[{"$type":"ParserRule","entry":true,"name":"Info","definition":{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@12"},"arguments":[],"cardinality":"*"},{"$type":"Keyword","value":"info"},{"$type":"RuleCall","rule":{"$ref":"#/rules@12"},"arguments":[],"cardinality":"*"},{"$type":"Group","elements":[{"$type":"Keyword","value":"showInfo"},{"$type":"RuleCall","rule":{"$ref":"#/rules@12"},"arguments":[],"cardinality":"*"}],"cardinality":"?"},{"$type":"RuleCall","rule":{"$ref":"#/rules@2"},"arguments":[],"cardinality":"?"}]},"definesHiddenTokens":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","fragment":true,"name":"EOL","dataType":"string","definition":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@12"},"arguments":[],"cardinality":"+"},{"$type":"EndOfFile"}]},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","fragment":true,"name":"TitleAndAccessibilities","definition":{"$type":"Group","elements":[{"$type":"Alternatives","elements":[{"$type":"Assignment","feature":"accDescr","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@4"},"arguments":[]}},{"$type":"Assignment","feature":"accTitle","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@5"},"arguments":[]}},{"$type":"Assignment","feature":"title","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@6"},"arguments":[]}}]},{"$type":"RuleCall","rule":{"$ref":"#/rules@1"},"arguments":[]}],"cardinality":"+"},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"TerminalRule","name":"BOOLEAN","type":{"$type":"ReturnType","name":"boolean"},"definition":{"$type":"TerminalAlternatives","elements":[{"$type":"CharacterRange","left":{"$type":"Keyword","value":"true"}},{"$type":"CharacterRange","left":{"$type":"Keyword","value":"false"}}]},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_DESCR","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accDescr(?:[\\\\t ]*:([^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)|\\\\s*{([^}]*)})/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accTitle[\\\\t ]*:(?:[^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*title(?:[\\\\t ][^\\\\n\\\\r]*?(?=%%)|[\\\\t ][^\\\\n\\\\r]*|)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"FLOAT","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"RegexToken","regex":"/[0-9]+\\\\.[0-9]+(?!\\\\.)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"INT","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"RegexToken","regex":"/0|[1-9][0-9]*(?!\\\\.)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"NUMBER","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"TerminalAlternatives","elements":[{"$type":"TerminalRuleCall","rule":{"$ref":"#/rules@7"}},{"$type":"TerminalRuleCall","rule":{"$ref":"#/rules@8"}}]},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"STRING","type":{"$type":"ReturnType","name":"string"},"definition":{"$type":"RegexToken","regex":"/\\"([^\\"\\\\\\\\]|\\\\\\\\.)*\\"|'([^'\\\\\\\\]|\\\\\\\\.)*'/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ID","type":{"$type":"ReturnType","name":"string"},"definition":{"$type":"RegexToken","regex":"/[\\\\w]([-\\\\w]*\\\\w)?/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"NEWLINE","definition":{"$type":"RegexToken","regex":"/\\\\r?\\\\n/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","hidden":true,"name":"WHITESPACE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]+/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"YAML","definition":{"$type":"RegexToken","regex":"/---[\\\\t ]*\\\\r?\\\\n(?:[\\\\S\\\\s]*?\\\\r?\\\\n)?---(?:\\\\r?\\\\n|(?!\\\\S))/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"DIRECTIVE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*%%{[\\\\S\\\\s]*?}%%(?:\\\\r?\\\\n|(?!\\\\S))/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"SINGLE_LINE_COMMENT","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*%%[^\\\\n\\\\r]*/"},"fragment":false}],"definesHiddenTokens":false,"hiddenTokens":[],"interfaces":[],"types":[],"usedGrammars":[]}`)),"InfoGrammar"),Sje=Tt(()=>qme??(qme=Zc(`{"$type":"Grammar","isDeclared":true,"name":"Packet","imports":[],"rules":[{"$type":"ParserRule","entry":true,"name":"Packet","definition":{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@13"},"arguments":[],"cardinality":"*"},{"$type":"Alternatives","elements":[{"$type":"Keyword","value":"packet"},{"$type":"Keyword","value":"packet-beta"}]},{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@3"},"arguments":[]},{"$type":"Assignment","feature":"blocks","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@1"},"arguments":[]}},{"$type":"RuleCall","rule":{"$ref":"#/rules@13"},"arguments":[]}],"cardinality":"*"}]},"definesHiddenTokens":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"PacketBlock","definition":{"$type":"Group","elements":[{"$type":"Alternatives","elements":[{"$type":"Group","elements":[{"$type":"Assignment","feature":"start","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@9"},"arguments":[]}},{"$type":"Group","elements":[{"$type":"Keyword","value":"-"},{"$type":"Assignment","feature":"end","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@9"},"arguments":[]}}],"cardinality":"?"}]},{"$type":"Group","elements":[{"$type":"Keyword","value":"+"},{"$type":"Assignment","feature":"bits","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@9"},"arguments":[]}}]}]},{"$type":"Keyword","value":":"},{"$type":"Assignment","feature":"label","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@11"},"arguments":[]}},{"$type":"RuleCall","rule":{"$ref":"#/rules@2"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","fragment":true,"name":"EOL","dataType":"string","definition":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@13"},"arguments":[],"cardinality":"+"},{"$type":"EndOfFile"}]},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","fragment":true,"name":"TitleAndAccessibilities","definition":{"$type":"Group","elements":[{"$type":"Alternatives","elements":[{"$type":"Assignment","feature":"accDescr","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@5"},"arguments":[]}},{"$type":"Assignment","feature":"accTitle","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@6"},"arguments":[]}},{"$type":"Assignment","feature":"title","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@7"},"arguments":[]}}]},{"$type":"RuleCall","rule":{"$ref":"#/rules@2"},"arguments":[]}],"cardinality":"+"},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"TerminalRule","name":"BOOLEAN","type":{"$type":"ReturnType","name":"boolean"},"definition":{"$type":"TerminalAlternatives","elements":[{"$type":"CharacterRange","left":{"$type":"Keyword","value":"true"}},{"$type":"CharacterRange","left":{"$type":"Keyword","value":"false"}}]},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_DESCR","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accDescr(?:[\\\\t ]*:([^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)|\\\\s*{([^}]*)})/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accTitle[\\\\t ]*:(?:[^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*title(?:[\\\\t ][^\\\\n\\\\r]*?(?=%%)|[\\\\t ][^\\\\n\\\\r]*|)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"FLOAT","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"RegexToken","regex":"/[0-9]+\\\\.[0-9]+(?!\\\\.)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"INT","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"RegexToken","regex":"/0|[1-9][0-9]*(?!\\\\.)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"NUMBER","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"TerminalAlternatives","elements":[{"$type":"TerminalRuleCall","rule":{"$ref":"#/rules@8"}},{"$type":"TerminalRuleCall","rule":{"$ref":"#/rules@9"}}]},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"STRING","type":{"$type":"ReturnType","name":"string"},"definition":{"$type":"RegexToken","regex":"/\\"([^\\"\\\\\\\\]|\\\\\\\\.)*\\"|'([^'\\\\\\\\]|\\\\\\\\.)*'/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ID","type":{"$type":"ReturnType","name":"string"},"definition":{"$type":"RegexToken","regex":"/[\\\\w]([-\\\\w]*\\\\w)?/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"NEWLINE","definition":{"$type":"RegexToken","regex":"/\\\\r?\\\\n/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","hidden":true,"name":"WHITESPACE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]+/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"YAML","definition":{"$type":"RegexToken","regex":"/---[\\\\t ]*\\\\r?\\\\n(?:[\\\\S\\\\s]*?\\\\r?\\\\n)?---(?:\\\\r?\\\\n|(?!\\\\S))/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"DIRECTIVE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*%%{[\\\\S\\\\s]*?}%%(?:\\\\r?\\\\n|(?!\\\\S))/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"SINGLE_LINE_COMMENT","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*%%[^\\\\n\\\\r]*/"},"fragment":false}],"definesHiddenTokens":false,"hiddenTokens":[],"interfaces":[],"types":[],"usedGrammars":[]}`)),"PacketGrammar"),Cje=Tt(()=>Wme??(Wme=Zc(`{"$type":"Grammar","isDeclared":true,"name":"Pie","imports":[],"rules":[{"$type":"ParserRule","entry":true,"name":"Pie","definition":{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@16"},"arguments":[],"cardinality":"*"},{"$type":"Keyword","value":"pie"},{"$type":"Assignment","feature":"showData","operator":"?=","terminal":{"$type":"Keyword","value":"showData"},"cardinality":"?"},{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@6"},"arguments":[]},{"$type":"Assignment","feature":"sections","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@1"},"arguments":[]}},{"$type":"RuleCall","rule":{"$ref":"#/rules@16"},"arguments":[]}],"cardinality":"*"}]},"definesHiddenTokens":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"PieSection","definition":{"$type":"Group","elements":[{"$type":"Assignment","feature":"label","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@14"},"arguments":[]}},{"$type":"Keyword","value":":"},{"$type":"Assignment","feature":"value","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@4"},"arguments":[]}},{"$type":"RuleCall","rule":{"$ref":"#/rules@5"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"TerminalRule","name":"FLOAT_PIE","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"RegexToken","regex":"/-?[0-9]+\\\\.[0-9]+(?!\\\\.)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"INT_PIE","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"RegexToken","regex":"/-?(0|[1-9][0-9]*)(?!\\\\.)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"NUMBER_PIE","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"TerminalAlternatives","elements":[{"$type":"TerminalRuleCall","rule":{"$ref":"#/rules@2"}},{"$type":"TerminalRuleCall","rule":{"$ref":"#/rules@3"}}]},"fragment":false,"hidden":false},{"$type":"ParserRule","fragment":true,"name":"EOL","dataType":"string","definition":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@16"},"arguments":[],"cardinality":"+"},{"$type":"EndOfFile"}]},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","fragment":true,"name":"TitleAndAccessibilities","definition":{"$type":"Group","elements":[{"$type":"Alternatives","elements":[{"$type":"Assignment","feature":"accDescr","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@8"},"arguments":[]}},{"$type":"Assignment","feature":"accTitle","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@9"},"arguments":[]}},{"$type":"Assignment","feature":"title","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@10"},"arguments":[]}}]},{"$type":"RuleCall","rule":{"$ref":"#/rules@5"},"arguments":[]}],"cardinality":"+"},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"TerminalRule","name":"BOOLEAN","type":{"$type":"ReturnType","name":"boolean"},"definition":{"$type":"TerminalAlternatives","elements":[{"$type":"CharacterRange","left":{"$type":"Keyword","value":"true"}},{"$type":"CharacterRange","left":{"$type":"Keyword","value":"false"}}]},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_DESCR","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accDescr(?:[\\\\t ]*:([^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)|\\\\s*{([^}]*)})/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accTitle[\\\\t ]*:(?:[^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*title(?:[\\\\t ][^\\\\n\\\\r]*?(?=%%)|[\\\\t ][^\\\\n\\\\r]*|)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"FLOAT","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"RegexToken","regex":"/[0-9]+\\\\.[0-9]+(?!\\\\.)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"INT","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"RegexToken","regex":"/0|[1-9][0-9]*(?!\\\\.)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"NUMBER","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"TerminalAlternatives","elements":[{"$type":"TerminalRuleCall","rule":{"$ref":"#/rules@11"}},{"$type":"TerminalRuleCall","rule":{"$ref":"#/rules@12"}}]},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"STRING","type":{"$type":"ReturnType","name":"string"},"definition":{"$type":"RegexToken","regex":"/\\"([^\\"\\\\\\\\]|\\\\\\\\.)*\\"|'([^'\\\\\\\\]|\\\\\\\\.)*'/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ID","type":{"$type":"ReturnType","name":"string"},"definition":{"$type":"RegexToken","regex":"/[\\\\w]([-\\\\w]*\\\\w)?/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"NEWLINE","definition":{"$type":"RegexToken","regex":"/\\\\r?\\\\n/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","hidden":true,"name":"WHITESPACE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]+/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"YAML","definition":{"$type":"RegexToken","regex":"/---[\\\\t ]*\\\\r?\\\\n(?:[\\\\S\\\\s]*?\\\\r?\\\\n)?---(?:\\\\r?\\\\n|(?!\\\\S))/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"DIRECTIVE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*%%{[\\\\S\\\\s]*?}%%(?:\\\\r?\\\\n|(?!\\\\S))/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"SINGLE_LINE_COMMENT","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*%%[^\\\\n\\\\r]*/"},"fragment":false}],"definesHiddenTokens":false,"hiddenTokens":[],"interfaces":[],"types":[],"usedGrammars":[]}`)),"PieGrammar"),Aje=Tt(()=>Yme??(Yme=Zc(`{"$type":"Grammar","isDeclared":true,"name":"Architecture","imports":[],"rules":[{"$type":"ParserRule","entry":true,"name":"Architecture","definition":{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@23"},"arguments":[],"cardinality":"*"},{"$type":"Keyword","value":"architecture-beta"},{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@23"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@13"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@1"},"arguments":[]}],"cardinality":"*"}]},"definesHiddenTokens":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","fragment":true,"name":"Statement","definition":{"$type":"Alternatives","elements":[{"$type":"Assignment","feature":"groups","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@5"},"arguments":[]}},{"$type":"Assignment","feature":"services","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@6"},"arguments":[]}},{"$type":"Assignment","feature":"junctions","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@7"},"arguments":[]}},{"$type":"Assignment","feature":"edges","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@8"},"arguments":[]}}]},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","fragment":true,"name":"LeftPort","definition":{"$type":"Group","elements":[{"$type":"Keyword","value":":"},{"$type":"Assignment","feature":"lhsDir","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@9"},"arguments":[]}}]},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","fragment":true,"name":"RightPort","definition":{"$type":"Group","elements":[{"$type":"Assignment","feature":"rhsDir","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@9"},"arguments":[]}},{"$type":"Keyword","value":":"}]},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","fragment":true,"name":"Arrow","definition":{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@2"},"arguments":[]},{"$type":"Assignment","feature":"lhsInto","operator":"?=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@11"},"arguments":[]},"cardinality":"?"},{"$type":"Alternatives","elements":[{"$type":"Keyword","value":"--"},{"$type":"Group","elements":[{"$type":"Keyword","value":"-"},{"$type":"Assignment","feature":"title","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@29"},"arguments":[]}},{"$type":"Keyword","value":"-"}]}]},{"$type":"Assignment","feature":"rhsInto","operator":"?=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@11"},"arguments":[]},"cardinality":"?"},{"$type":"RuleCall","rule":{"$ref":"#/rules@3"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"Group","definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"group"},{"$type":"Assignment","feature":"id","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@22"},"arguments":[]}},{"$type":"Assignment","feature":"icon","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@28"},"arguments":[]},"cardinality":"?"},{"$type":"Assignment","feature":"title","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@29"},"arguments":[]},"cardinality":"?"},{"$type":"Group","elements":[{"$type":"Keyword","value":"in"},{"$type":"Assignment","feature":"in","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@22"},"arguments":[]}}],"cardinality":"?"},{"$type":"RuleCall","rule":{"$ref":"#/rules@12"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"Service","definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"service"},{"$type":"Assignment","feature":"id","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@22"},"arguments":[]}},{"$type":"Alternatives","elements":[{"$type":"Assignment","feature":"iconText","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@21"},"arguments":[]}},{"$type":"Assignment","feature":"icon","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@28"},"arguments":[]}}],"cardinality":"?"},{"$type":"Assignment","feature":"title","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@29"},"arguments":[]},"cardinality":"?"},{"$type":"Group","elements":[{"$type":"Keyword","value":"in"},{"$type":"Assignment","feature":"in","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@22"},"arguments":[]}}],"cardinality":"?"},{"$type":"RuleCall","rule":{"$ref":"#/rules@12"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"Junction","definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"junction"},{"$type":"Assignment","feature":"id","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@22"},"arguments":[]}},{"$type":"Group","elements":[{"$type":"Keyword","value":"in"},{"$type":"Assignment","feature":"in","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@22"},"arguments":[]}}],"cardinality":"?"},{"$type":"RuleCall","rule":{"$ref":"#/rules@12"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"Edge","definition":{"$type":"Group","elements":[{"$type":"Assignment","feature":"lhsId","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@22"},"arguments":[]}},{"$type":"Assignment","feature":"lhsGroup","operator":"?=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@10"},"arguments":[]},"cardinality":"?"},{"$type":"RuleCall","rule":{"$ref":"#/rules@4"},"arguments":[]},{"$type":"Assignment","feature":"rhsId","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@22"},"arguments":[]}},{"$type":"Assignment","feature":"rhsGroup","operator":"?=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@10"},"arguments":[]},"cardinality":"?"},{"$type":"RuleCall","rule":{"$ref":"#/rules@12"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"TerminalRule","name":"ARROW_DIRECTION","definition":{"$type":"TerminalAlternatives","elements":[{"$type":"TerminalAlternatives","elements":[{"$type":"TerminalAlternatives","elements":[{"$type":"CharacterRange","left":{"$type":"Keyword","value":"L"}},{"$type":"CharacterRange","left":{"$type":"Keyword","value":"R"}}]},{"$type":"CharacterRange","left":{"$type":"Keyword","value":"T"}}]},{"$type":"CharacterRange","left":{"$type":"Keyword","value":"B"}}]},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ARROW_GROUP","definition":{"$type":"RegexToken","regex":"/\\\\{group\\\\}/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ARROW_INTO","definition":{"$type":"RegexToken","regex":"/<|>/"},"fragment":false,"hidden":false},{"$type":"ParserRule","fragment":true,"name":"EOL","dataType":"string","definition":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@23"},"arguments":[],"cardinality":"+"},{"$type":"EndOfFile"}]},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","fragment":true,"name":"TitleAndAccessibilities","definition":{"$type":"Group","elements":[{"$type":"Alternatives","elements":[{"$type":"Assignment","feature":"accDescr","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@15"},"arguments":[]}},{"$type":"Assignment","feature":"accTitle","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@16"},"arguments":[]}},{"$type":"Assignment","feature":"title","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}}]},{"$type":"RuleCall","rule":{"$ref":"#/rules@12"},"arguments":[]}],"cardinality":"+"},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"TerminalRule","name":"BOOLEAN","type":{"$type":"ReturnType","name":"boolean"},"definition":{"$type":"TerminalAlternatives","elements":[{"$type":"CharacterRange","left":{"$type":"Keyword","value":"true"}},{"$type":"CharacterRange","left":{"$type":"Keyword","value":"false"}}]},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_DESCR","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accDescr(?:[\\\\t ]*:([^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)|\\\\s*{([^}]*)})/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accTitle[\\\\t ]*:(?:[^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*title(?:[\\\\t ][^\\\\n\\\\r]*?(?=%%)|[\\\\t ][^\\\\n\\\\r]*|)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"FLOAT","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"RegexToken","regex":"/[0-9]+\\\\.[0-9]+(?!\\\\.)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"INT","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"RegexToken","regex":"/0|[1-9][0-9]*(?!\\\\.)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"NUMBER","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"TerminalAlternatives","elements":[{"$type":"TerminalRuleCall","rule":{"$ref":"#/rules@18"}},{"$type":"TerminalRuleCall","rule":{"$ref":"#/rules@19"}}]},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"STRING","type":{"$type":"ReturnType","name":"string"},"definition":{"$type":"RegexToken","regex":"/\\"([^\\"\\\\\\\\]|\\\\\\\\.)*\\"|'([^'\\\\\\\\]|\\\\\\\\.)*'/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ID","type":{"$type":"ReturnType","name":"string"},"definition":{"$type":"RegexToken","regex":"/[\\\\w]([-\\\\w]*\\\\w)?/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"NEWLINE","definition":{"$type":"RegexToken","regex":"/\\\\r?\\\\n/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","hidden":true,"name":"WHITESPACE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]+/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"YAML","definition":{"$type":"RegexToken","regex":"/---[\\\\t ]*\\\\r?\\\\n(?:[\\\\S\\\\s]*?\\\\r?\\\\n)?---(?:\\\\r?\\\\n|(?!\\\\S))/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"DIRECTIVE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*%%{[\\\\S\\\\s]*?}%%(?:\\\\r?\\\\n|(?!\\\\S))/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"SINGLE_LINE_COMMENT","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*%%[^\\\\n\\\\r]*/"},"fragment":false},{"$type":"TerminalRule","name":"ARCH_ICON","definition":{"$type":"RegexToken","regex":"/\\\\([\\\\w-:]+\\\\)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ARCH_TITLE","definition":{"$type":"RegexToken","regex":"/\\\\[[\\\\w ]+\\\\]/"},"fragment":false,"hidden":false}],"definesHiddenTokens":false,"hiddenTokens":[],"interfaces":[],"types":[],"usedGrammars":[]}`)),"ArchitectureGrammar"),_je=Tt(()=>Xme??(Xme=Zc(`{"$type":"Grammar","isDeclared":true,"name":"GitGraph","imports":[],"rules":[{"$type":"ParserRule","entry":true,"name":"GitGraph","definition":{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@19"},"arguments":[],"cardinality":"*"},{"$type":"Alternatives","elements":[{"$type":"Keyword","value":"gitGraph"},{"$type":"Group","elements":[{"$type":"Keyword","value":"gitGraph"},{"$type":"Keyword","value":":"}]},{"$type":"Keyword","value":"gitGraph:"},{"$type":"Group","elements":[{"$type":"Keyword","value":"gitGraph"},{"$type":"RuleCall","rule":{"$ref":"#/rules@2"},"arguments":[]},{"$type":"Keyword","value":":"}]}]},{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@19"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@9"},"arguments":[]},{"$type":"Assignment","feature":"statements","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@1"},"arguments":[]}}],"cardinality":"*"}]},"definesHiddenTokens":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"Statement","definition":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@3"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@4"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@5"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@6"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@7"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"Direction","definition":{"$type":"Assignment","feature":"dir","operator":"=","terminal":{"$type":"Alternatives","elements":[{"$type":"Keyword","value":"LR"},{"$type":"Keyword","value":"TB"},{"$type":"Keyword","value":"BT"}]}},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"Commit","definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"commit"},{"$type":"Alternatives","elements":[{"$type":"Group","elements":[{"$type":"Keyword","value":"id:"},{"$type":"Assignment","feature":"id","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}}]},{"$type":"Group","elements":[{"$type":"Keyword","value":"msg:","cardinality":"?"},{"$type":"Assignment","feature":"message","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}}]},{"$type":"Group","elements":[{"$type":"Keyword","value":"tag:"},{"$type":"Assignment","feature":"tags","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}}]},{"$type":"Group","elements":[{"$type":"Keyword","value":"type:"},{"$type":"Assignment","feature":"type","operator":"=","terminal":{"$type":"Alternatives","elements":[{"$type":"Keyword","value":"NORMAL"},{"$type":"Keyword","value":"REVERSE"},{"$type":"Keyword","value":"HIGHLIGHT"}]}}]}],"cardinality":"*"},{"$type":"RuleCall","rule":{"$ref":"#/rules@8"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"Branch","definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"branch"},{"$type":"Assignment","feature":"name","operator":"=","terminal":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@24"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}]}},{"$type":"Group","elements":[{"$type":"Keyword","value":"order:"},{"$type":"Assignment","feature":"order","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@15"},"arguments":[]}}],"cardinality":"?"},{"$type":"RuleCall","rule":{"$ref":"#/rules@8"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"Merge","definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"merge"},{"$type":"Assignment","feature":"branch","operator":"=","terminal":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@24"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}]}},{"$type":"Alternatives","elements":[{"$type":"Group","elements":[{"$type":"Keyword","value":"id:"},{"$type":"Assignment","feature":"id","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}}]},{"$type":"Group","elements":[{"$type":"Keyword","value":"tag:"},{"$type":"Assignment","feature":"tags","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}}]},{"$type":"Group","elements":[{"$type":"Keyword","value":"type:"},{"$type":"Assignment","feature":"type","operator":"=","terminal":{"$type":"Alternatives","elements":[{"$type":"Keyword","value":"NORMAL"},{"$type":"Keyword","value":"REVERSE"},{"$type":"Keyword","value":"HIGHLIGHT"}]}}]}],"cardinality":"*"},{"$type":"RuleCall","rule":{"$ref":"#/rules@8"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"Checkout","definition":{"$type":"Group","elements":[{"$type":"Alternatives","elements":[{"$type":"Keyword","value":"checkout"},{"$type":"Keyword","value":"switch"}]},{"$type":"Assignment","feature":"branch","operator":"=","terminal":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@24"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}]}},{"$type":"RuleCall","rule":{"$ref":"#/rules@8"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"CherryPicking","definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"cherry-pick"},{"$type":"Alternatives","elements":[{"$type":"Group","elements":[{"$type":"Keyword","value":"id:"},{"$type":"Assignment","feature":"id","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}}]},{"$type":"Group","elements":[{"$type":"Keyword","value":"tag:"},{"$type":"Assignment","feature":"tags","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}}]},{"$type":"Group","elements":[{"$type":"Keyword","value":"parent:"},{"$type":"Assignment","feature":"parent","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}}]}],"cardinality":"*"},{"$type":"RuleCall","rule":{"$ref":"#/rules@8"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","fragment":true,"name":"EOL","dataType":"string","definition":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@19"},"arguments":[],"cardinality":"+"},{"$type":"EndOfFile"}]},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","fragment":true,"name":"TitleAndAccessibilities","definition":{"$type":"Group","elements":[{"$type":"Alternatives","elements":[{"$type":"Assignment","feature":"accDescr","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@11"},"arguments":[]}},{"$type":"Assignment","feature":"accTitle","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@12"},"arguments":[]}},{"$type":"Assignment","feature":"title","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@13"},"arguments":[]}}]},{"$type":"RuleCall","rule":{"$ref":"#/rules@8"},"arguments":[]}],"cardinality":"+"},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"TerminalRule","name":"BOOLEAN","type":{"$type":"ReturnType","name":"boolean"},"definition":{"$type":"TerminalAlternatives","elements":[{"$type":"CharacterRange","left":{"$type":"Keyword","value":"true"}},{"$type":"CharacterRange","left":{"$type":"Keyword","value":"false"}}]},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_DESCR","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accDescr(?:[\\\\t ]*:([^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)|\\\\s*{([^}]*)})/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accTitle[\\\\t ]*:(?:[^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*title(?:[\\\\t ][^\\\\n\\\\r]*?(?=%%)|[\\\\t ][^\\\\n\\\\r]*|)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"FLOAT","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"RegexToken","regex":"/[0-9]+\\\\.[0-9]+(?!\\\\.)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"INT","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"RegexToken","regex":"/0|[1-9][0-9]*(?!\\\\.)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"NUMBER","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"TerminalAlternatives","elements":[{"$type":"TerminalRuleCall","rule":{"$ref":"#/rules@14"}},{"$type":"TerminalRuleCall","rule":{"$ref":"#/rules@15"}}]},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"STRING","type":{"$type":"ReturnType","name":"string"},"definition":{"$type":"RegexToken","regex":"/\\"([^\\"\\\\\\\\]|\\\\\\\\.)*\\"|'([^'\\\\\\\\]|\\\\\\\\.)*'/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ID","type":{"$type":"ReturnType","name":"string"},"definition":{"$type":"RegexToken","regex":"/[\\\\w]([-\\\\w]*\\\\w)?/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"NEWLINE","definition":{"$type":"RegexToken","regex":"/\\\\r?\\\\n/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","hidden":true,"name":"WHITESPACE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]+/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"YAML","definition":{"$type":"RegexToken","regex":"/---[\\\\t ]*\\\\r?\\\\n(?:[\\\\S\\\\s]*?\\\\r?\\\\n)?---(?:\\\\r?\\\\n|(?!\\\\S))/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"DIRECTIVE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*%%{[\\\\S\\\\s]*?}%%(?:\\\\r?\\\\n|(?!\\\\S))/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"SINGLE_LINE_COMMENT","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*%%[^\\\\n\\\\r]*/"},"fragment":false},{"$type":"TerminalRule","name":"REFERENCE","type":{"$type":"ReturnType","name":"string"},"definition":{"$type":"RegexToken","regex":"/\\\\w([-\\\\./\\\\w]*[-\\\\w])?/"},"fragment":false,"hidden":false}],"definesHiddenTokens":false,"hiddenTokens":[],"interfaces":[],"types":[],"usedGrammars":[]}`)),"GitGraphGrammar"),Dje=Tt(()=>jme??(jme=Zc(`{"$type":"Grammar","isDeclared":true,"name":"Radar","imports":[],"rules":[{"$type":"ParserRule","entry":true,"name":"Radar","definition":{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[],"cardinality":"*"},{"$type":"Alternatives","elements":[{"$type":"Keyword","value":"radar-beta"},{"$type":"Keyword","value":"radar-beta:"},{"$type":"Group","elements":[{"$type":"Keyword","value":"radar-beta"},{"$type":"Keyword","value":":"}]}]},{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[],"cardinality":"*"},{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@10"},"arguments":[]},{"$type":"Group","elements":[{"$type":"Keyword","value":"axis"},{"$type":"Assignment","feature":"axes","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@2"},"arguments":[]}},{"$type":"Group","elements":[{"$type":"Keyword","value":","},{"$type":"Assignment","feature":"axes","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@2"},"arguments":[]}}],"cardinality":"*"}]},{"$type":"Group","elements":[{"$type":"Keyword","value":"curve"},{"$type":"Assignment","feature":"curves","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@3"},"arguments":[]}},{"$type":"Group","elements":[{"$type":"Keyword","value":","},{"$type":"Assignment","feature":"curves","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@3"},"arguments":[]}}],"cardinality":"*"}]},{"$type":"Group","elements":[{"$type":"Assignment","feature":"options","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@7"},"arguments":[]}},{"$type":"Group","elements":[{"$type":"Keyword","value":","},{"$type":"Assignment","feature":"options","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@7"},"arguments":[]}}],"cardinality":"*"}]},{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[]}],"cardinality":"*"}]},"definesHiddenTokens":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","fragment":true,"name":"Label","definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"["},{"$type":"Assignment","feature":"label","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@18"},"arguments":[]}},{"$type":"Keyword","value":"]"}]},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"Axis","definition":{"$type":"Group","elements":[{"$type":"Assignment","feature":"name","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@19"},"arguments":[]}},{"$type":"RuleCall","rule":{"$ref":"#/rules@1"},"arguments":[],"cardinality":"?"}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"Curve","definition":{"$type":"Group","elements":[{"$type":"Assignment","feature":"name","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@19"},"arguments":[]}},{"$type":"RuleCall","rule":{"$ref":"#/rules@1"},"arguments":[],"cardinality":"?"},{"$type":"Keyword","value":"{"},{"$type":"RuleCall","rule":{"$ref":"#/rules@4"},"arguments":[]},{"$type":"Keyword","value":"}"}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","fragment":true,"name":"Entries","definition":{"$type":"Alternatives","elements":[{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[],"cardinality":"*"},{"$type":"Assignment","feature":"entries","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@6"},"arguments":[]}},{"$type":"Group","elements":[{"$type":"Keyword","value":","},{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[],"cardinality":"*"},{"$type":"Assignment","feature":"entries","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@6"},"arguments":[]}}],"cardinality":"*"},{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[],"cardinality":"*"}]},{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[],"cardinality":"*"},{"$type":"Assignment","feature":"entries","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@5"},"arguments":[]}},{"$type":"Group","elements":[{"$type":"Keyword","value":","},{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[],"cardinality":"*"},{"$type":"Assignment","feature":"entries","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@5"},"arguments":[]}}],"cardinality":"*"},{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[],"cardinality":"*"}]}]},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"DetailedEntry","returnType":{"$ref":"#/interfaces@0"},"definition":{"$type":"Group","elements":[{"$type":"Assignment","feature":"axis","operator":"=","terminal":{"$type":"CrossReference","type":{"$ref":"#/rules@2"},"terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@19"},"arguments":[]},"deprecatedSyntax":false}},{"$type":"Keyword","value":":","cardinality":"?"},{"$type":"Assignment","feature":"value","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"NumberEntry","returnType":{"$ref":"#/interfaces@0"},"definition":{"$type":"Assignment","feature":"value","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"Option","definition":{"$type":"Alternatives","elements":[{"$type":"Group","elements":[{"$type":"Assignment","feature":"name","operator":"=","terminal":{"$type":"Keyword","value":"showLegend"}},{"$type":"Assignment","feature":"value","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@11"},"arguments":[]}}]},{"$type":"Group","elements":[{"$type":"Assignment","feature":"name","operator":"=","terminal":{"$type":"Keyword","value":"ticks"}},{"$type":"Assignment","feature":"value","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}}]},{"$type":"Group","elements":[{"$type":"Assignment","feature":"name","operator":"=","terminal":{"$type":"Keyword","value":"max"}},{"$type":"Assignment","feature":"value","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}}]},{"$type":"Group","elements":[{"$type":"Assignment","feature":"name","operator":"=","terminal":{"$type":"Keyword","value":"min"}},{"$type":"Assignment","feature":"value","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}}]},{"$type":"Group","elements":[{"$type":"Assignment","feature":"name","operator":"=","terminal":{"$type":"Keyword","value":"graticule"}},{"$type":"Assignment","feature":"value","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@8"},"arguments":[]}}]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"TerminalRule","name":"GRATICULE","type":{"$type":"ReturnType","name":"string"},"definition":{"$type":"TerminalAlternatives","elements":[{"$type":"CharacterRange","left":{"$type":"Keyword","value":"circle"}},{"$type":"CharacterRange","left":{"$type":"Keyword","value":"polygon"}}]},"fragment":false,"hidden":false},{"$type":"ParserRule","fragment":true,"name":"EOL","dataType":"string","definition":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[],"cardinality":"+"},{"$type":"EndOfFile"}]},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","fragment":true,"name":"TitleAndAccessibilities","definition":{"$type":"Group","elements":[{"$type":"Alternatives","elements":[{"$type":"Assignment","feature":"accDescr","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@12"},"arguments":[]}},{"$type":"Assignment","feature":"accTitle","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@13"},"arguments":[]}},{"$type":"Assignment","feature":"title","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@14"},"arguments":[]}}]},{"$type":"RuleCall","rule":{"$ref":"#/rules@9"},"arguments":[]}],"cardinality":"+"},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"TerminalRule","name":"BOOLEAN","type":{"$type":"ReturnType","name":"boolean"},"definition":{"$type":"TerminalAlternatives","elements":[{"$type":"CharacterRange","left":{"$type":"Keyword","value":"true"}},{"$type":"CharacterRange","left":{"$type":"Keyword","value":"false"}}]},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_DESCR","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accDescr(?:[\\\\t ]*:([^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)|\\\\s*{([^}]*)})/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accTitle[\\\\t ]*:(?:[^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*title(?:[\\\\t ][^\\\\n\\\\r]*?(?=%%)|[\\\\t ][^\\\\n\\\\r]*|)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"FLOAT","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"RegexToken","regex":"/[0-9]+\\\\.[0-9]+(?!\\\\.)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"INT","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"RegexToken","regex":"/0|[1-9][0-9]*(?!\\\\.)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"NUMBER","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"TerminalAlternatives","elements":[{"$type":"TerminalRuleCall","rule":{"$ref":"#/rules@15"}},{"$type":"TerminalRuleCall","rule":{"$ref":"#/rules@16"}}]},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"STRING","type":{"$type":"ReturnType","name":"string"},"definition":{"$type":"RegexToken","regex":"/\\"([^\\"\\\\\\\\]|\\\\\\\\.)*\\"|'([^'\\\\\\\\]|\\\\\\\\.)*'/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ID","type":{"$type":"ReturnType","name":"string"},"definition":{"$type":"RegexToken","regex":"/[\\\\w]([-\\\\w]*\\\\w)?/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"NEWLINE","definition":{"$type":"RegexToken","regex":"/\\\\r?\\\\n/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","hidden":true,"name":"WHITESPACE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]+/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"YAML","definition":{"$type":"RegexToken","regex":"/---[\\\\t ]*\\\\r?\\\\n(?:[\\\\S\\\\s]*?\\\\r?\\\\n)?---(?:\\\\r?\\\\n|(?!\\\\S))/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"DIRECTIVE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*%%{[\\\\S\\\\s]*?}%%(?:\\\\r?\\\\n|(?!\\\\S))/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"SINGLE_LINE_COMMENT","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*%%[^\\\\n\\\\r]*/"},"fragment":false}],"interfaces":[{"$type":"Interface","name":"Entry","attributes":[{"$type":"TypeAttribute","name":"axis","isOptional":true,"type":{"$type":"ReferenceType","referenceType":{"$type":"SimpleType","typeRef":{"$ref":"#/rules@2"}}}},{"$type":"TypeAttribute","name":"value","type":{"$type":"SimpleType","primitiveType":"number"},"isOptional":false}],"superTypes":[]}],"definesHiddenTokens":false,"hiddenTokens":[],"types":[],"usedGrammars":[]}`)),"RadarGrammar"),Lje=Tt(()=>Kme??(Kme=Zc(`{"$type":"Grammar","isDeclared":true,"name":"Treemap","rules":[{"$type":"ParserRule","fragment":true,"name":"TitleAndAccessibilities","definition":{"$type":"Alternatives","elements":[{"$type":"Assignment","feature":"accDescr","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@2"},"arguments":[]}},{"$type":"Assignment","feature":"accTitle","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@3"},"arguments":[]}},{"$type":"Assignment","feature":"title","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@4"},"arguments":[]}}],"cardinality":"+"},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"TerminalRule","name":"BOOLEAN","type":{"$type":"ReturnType","name":"boolean"},"definition":{"$type":"TerminalAlternatives","elements":[{"$type":"CharacterRange","left":{"$type":"Keyword","value":"true"}},{"$type":"CharacterRange","left":{"$type":"Keyword","value":"false"}}]},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_DESCR","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accDescr(?:[\\\\t ]*:([^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)|\\\\s*{([^}]*)})/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accTitle[\\\\t ]*:(?:[^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*title(?:[\\\\t ][^\\\\n\\\\r]*?(?=%%)|[\\\\t ][^\\\\n\\\\r]*|)/"},"fragment":false,"hidden":false},{"$type":"ParserRule","entry":true,"name":"Treemap","returnType":{"$ref":"#/interfaces@4"},"definition":{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@6"},"arguments":[]},{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@0"},"arguments":[]},{"$type":"Assignment","feature":"TreemapRows","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@14"},"arguments":[]}}],"cardinality":"*"}]},"definesHiddenTokens":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"TerminalRule","name":"TREEMAP_KEYWORD","definition":{"$type":"TerminalAlternatives","elements":[{"$type":"CharacterRange","left":{"$type":"Keyword","value":"treemap-beta"}},{"$type":"CharacterRange","left":{"$type":"Keyword","value":"treemap"}}]},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"CLASS_DEF","definition":{"$type":"RegexToken","regex":"/classDef\\\\s+([a-zA-Z_][a-zA-Z0-9_]+)(?:\\\\s+([^;\\\\r\\\\n]*))?(?:;)?/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"STYLE_SEPARATOR","definition":{"$type":"CharacterRange","left":{"$type":"Keyword","value":":::"}},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"SEPARATOR","definition":{"$type":"CharacterRange","left":{"$type":"Keyword","value":":"}},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"COMMA","definition":{"$type":"CharacterRange","left":{"$type":"Keyword","value":","}},"fragment":false,"hidden":false},{"$type":"TerminalRule","hidden":true,"name":"WS","definition":{"$type":"RegexToken","regex":"/[ \\\\t]+/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"ML_COMMENT","definition":{"$type":"RegexToken","regex":"/\\\\%\\\\%[^\\\\n]*/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"NL","definition":{"$type":"RegexToken","regex":"/\\\\r?\\\\n/"},"fragment":false},{"$type":"ParserRule","name":"TreemapRow","definition":{"$type":"Group","elements":[{"$type":"Assignment","feature":"indent","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@19"},"arguments":[]},"cardinality":"?"},{"$type":"Alternatives","elements":[{"$type":"Assignment","feature":"item","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@16"},"arguments":[]}},{"$type":"RuleCall","rule":{"$ref":"#/rules@15"},"arguments":[]}]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"ClassDef","dataType":"string","definition":{"$type":"RuleCall","rule":{"$ref":"#/rules@7"},"arguments":[]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"Item","returnType":{"$ref":"#/interfaces@0"},"definition":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@18"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"Section","returnType":{"$ref":"#/interfaces@1"},"definition":{"$type":"Group","elements":[{"$type":"Assignment","feature":"name","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@23"},"arguments":[]}},{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@8"},"arguments":[]},{"$type":"Assignment","feature":"classSelector","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[]}}],"cardinality":"?"}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"Leaf","returnType":{"$ref":"#/interfaces@2"},"definition":{"$type":"Group","elements":[{"$type":"Assignment","feature":"name","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@23"},"arguments":[]}},{"$type":"RuleCall","rule":{"$ref":"#/rules@19"},"arguments":[],"cardinality":"?"},{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@9"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@10"},"arguments":[]}]},{"$type":"RuleCall","rule":{"$ref":"#/rules@19"},"arguments":[],"cardinality":"?"},{"$type":"Assignment","feature":"value","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@22"},"arguments":[]}},{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@8"},"arguments":[]},{"$type":"Assignment","feature":"classSelector","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[]}}],"cardinality":"?"}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"TerminalRule","name":"INDENTATION","definition":{"$type":"RegexToken","regex":"/[ \\\\t]{1,}/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ID2","definition":{"$type":"RegexToken","regex":"/[a-zA-Z_][a-zA-Z0-9_]*/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"NUMBER2","definition":{"$type":"RegexToken","regex":"/[0-9_\\\\.\\\\,]+/"},"fragment":false,"hidden":false},{"$type":"ParserRule","name":"MyNumber","dataType":"number","definition":{"$type":"RuleCall","rule":{"$ref":"#/rules@21"},"arguments":[]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"TerminalRule","name":"STRING2","definition":{"$type":"RegexToken","regex":"/\\"[^\\"]*\\"|'[^']*'/"},"fragment":false,"hidden":false}],"interfaces":[{"$type":"Interface","name":"Item","attributes":[{"$type":"TypeAttribute","name":"name","type":{"$type":"SimpleType","primitiveType":"string"},"isOptional":false},{"$type":"TypeAttribute","name":"classSelector","isOptional":true,"type":{"$type":"SimpleType","primitiveType":"string"}}],"superTypes":[]},{"$type":"Interface","name":"Section","superTypes":[{"$ref":"#/interfaces@0"}],"attributes":[]},{"$type":"Interface","name":"Leaf","superTypes":[{"$ref":"#/interfaces@0"}],"attributes":[{"$type":"TypeAttribute","name":"value","type":{"$type":"SimpleType","primitiveType":"number"},"isOptional":false}]},{"$type":"Interface","name":"ClassDefStatement","attributes":[{"$type":"TypeAttribute","name":"className","type":{"$type":"SimpleType","primitiveType":"string"},"isOptional":false},{"$type":"TypeAttribute","name":"styleText","type":{"$type":"SimpleType","primitiveType":"string"},"isOptional":false}],"superTypes":[]},{"$type":"Interface","name":"Treemap","attributes":[{"$type":"TypeAttribute","name":"TreemapRows","type":{"$type":"ArrayType","elementType":{"$type":"SimpleType","typeRef":{"$ref":"#/rules@14"}}},"isOptional":false},{"$type":"TypeAttribute","name":"title","isOptional":true,"type":{"$type":"SimpleType","primitiveType":"string"}},{"$type":"TypeAttribute","name":"accTitle","isOptional":true,"type":{"$type":"SimpleType","primitiveType":"string"}},{"$type":"TypeAttribute","name":"accDescr","isOptional":true,"type":{"$type":"SimpleType","primitiveType":"string"}}],"superTypes":[]}],"definesHiddenTokens":false,"hiddenTokens":[],"imports":[],"types":[],"usedGrammars":[],"$comment":"/**\\n * Treemap grammar for Langium\\n * Converted from mindmap grammar\\n *\\n * The ML_COMMENT and NL hidden terminals handle whitespace, comments, and newlines\\n * before the treemap keyword, allowing for empty lines and comments before the\\n * treemap declaration.\\n */"}`)),"TreemapGrammar"),Rje={languageId:"info",fileExtensions:[".mmd",".mermaid"],caseInsensitive:!1,mode:"production"},Nje={languageId:"packet",fileExtensions:[".mmd",".mermaid"],caseInsensitive:!1,mode:"production"},Mje={languageId:"pie",fileExtensions:[".mmd",".mermaid"],caseInsensitive:!1,mode:"production"},Ije={languageId:"architecture",fileExtensions:[".mmd",".mermaid"],caseInsensitive:!1,mode:"production"},Oje={languageId:"gitGraph",fileExtensions:[".mmd",".mermaid"],caseInsensitive:!1,mode:"production"},Pje={languageId:"radar",fileExtensions:[".mmd",".mermaid"],caseInsensitive:!1,mode:"production"},Bje={languageId:"treemap",fileExtensions:[".mmd",".mermaid"],caseInsensitive:!1,mode:"production"},xs={AstReflection:Tt(()=>new lge,"AstReflection")},ZB={Grammar:Tt(()=>Eje(),"Grammar"),LanguageMetaData:Tt(()=>Rje,"LanguageMetaData"),parser:{}},JB={Grammar:Tt(()=>Sje(),"Grammar"),LanguageMetaData:Tt(()=>Nje,"LanguageMetaData"),parser:{}},eF={Grammar:Tt(()=>Cje(),"Grammar"),LanguageMetaData:Tt(()=>Mje,"LanguageMetaData"),parser:{}},tF={Grammar:Tt(()=>Aje(),"Grammar"),LanguageMetaData:Tt(()=>Ije,"LanguageMetaData"),parser:{}},rF={Grammar:Tt(()=>_je(),"Grammar"),LanguageMetaData:Tt(()=>Oje,"LanguageMetaData"),parser:{}},nF={Grammar:Tt(()=>Dje(),"Grammar"),LanguageMetaData:Tt(()=>Pje,"LanguageMetaData"),parser:{}},iF={Grammar:Tt(()=>Lje(),"Grammar"),LanguageMetaData:Tt(()=>Bje,"LanguageMetaData"),parser:{}},Fje=/accDescr(?:[\t ]*:([^\n\r]*)|\s*{([^}]*)})/,$je=/accTitle[\t ]*:([^\n\r]*)/,zje=/title([\t ][^\n\r]*|)/,Gje={ACC_DESCR:Fje,ACC_TITLE:$je,TITLE:zje},Vf=class extends Kp{static{o(this,"AbstractMermaidValueConverter")}static{Tt(this,"AbstractMermaidValueConverter")}runConverter(t,e,r){let n=this.runCommonConverter(t,e,r);return n===void 0&&(n=this.runCustomConverter(t,e,r)),n===void 0?super.runConverter(t,e,r):n}runCommonConverter(t,e,r){let n=Gje[t.name];if(n===void 0)return;let i=n.exec(e);if(i!==null){if(i[1]!==void 0)return i[1].trim().replace(/[\t ]{2,}/gm," ");if(i[2]!==void 0)return i[2].replace(/^\s*/gm,"").replace(/\s+$/gm,"").replace(/[\t ]{2,}/gm," ").replace(/[\n\r]{2,}/gm,` +`)}}},rh=class extends Vf{static{o(this,"CommonValueConverter")}static{Tt(this,"CommonValueConverter")}runCustomConverter(t,e,r){}},qa=class extends th{static{o(this,"AbstractMermaidTokenBuilder")}static{Tt(this,"AbstractMermaidTokenBuilder")}constructor(t){super(),this.keywords=new Set(t)}buildKeywordTokens(t,e,r){let n=super.buildKeywordTokens(t,e,r);return n.forEach(i=>{this.keywords.has(i.name)&&i.PATTERN!==void 0&&(i.PATTERN=new RegExp(i.PATTERN.toString()+"(?:(?=%%)|(?!\\S))"))}),n}},Vje=class extends qa{static{o(this,"CommonTokenBuilder")}static{Tt(this,"CommonTokenBuilder")}}});function x6(t=Sa){let e=Hn(Ea(t),xs),r=Hn(ka({shared:e}),rF,v6);return e.ServiceRegistry.register(r),{shared:e,GitGraph:r}}var Uje,v6,aF=M(()=>{"use strict";Wa();vo();Uje=class extends qa{static{o(this,"GitGraphTokenBuilder")}static{Tt(this,"GitGraphTokenBuilder")}constructor(){super(["gitGraph"])}},v6={parser:{TokenBuilder:Tt(()=>new Uje,"TokenBuilder"),ValueConverter:Tt(()=>new rh,"ValueConverter")}};o(x6,"createGitGraphServices");Tt(x6,"createGitGraphServices")});function T6(t=Sa){let e=Hn(Ea(t),xs),r=Hn(ka({shared:e}),ZB,b6);return e.ServiceRegistry.register(r),{shared:e,Info:r}}var Hje,b6,sF=M(()=>{"use strict";Wa();vo();Hje=class extends qa{static{o(this,"InfoTokenBuilder")}static{Tt(this,"InfoTokenBuilder")}constructor(){super(["info","showInfo"])}},b6={parser:{TokenBuilder:Tt(()=>new Hje,"TokenBuilder"),ValueConverter:Tt(()=>new rh,"ValueConverter")}};o(T6,"createInfoServices");Tt(T6,"createInfoServices")});function k6(t=Sa){let e=Hn(Ea(t),xs),r=Hn(ka({shared:e}),JB,w6);return e.ServiceRegistry.register(r),{shared:e,Packet:r}}var qje,w6,oF=M(()=>{"use strict";Wa();vo();qje=class extends qa{static{o(this,"PacketTokenBuilder")}static{Tt(this,"PacketTokenBuilder")}constructor(){super(["packet"])}},w6={parser:{TokenBuilder:Tt(()=>new qje,"TokenBuilder"),ValueConverter:Tt(()=>new rh,"ValueConverter")}};o(k6,"createPacketServices");Tt(k6,"createPacketServices")});function S6(t=Sa){let e=Hn(Ea(t),xs),r=Hn(ka({shared:e}),eF,E6);return e.ServiceRegistry.register(r),{shared:e,Pie:r}}var Wje,Yje,E6,lF=M(()=>{"use strict";Wa();vo();Wje=class extends qa{static{o(this,"PieTokenBuilder")}static{Tt(this,"PieTokenBuilder")}constructor(){super(["pie","showData"])}},Yje=class extends Vf{static{o(this,"PieValueConverter")}static{Tt(this,"PieValueConverter")}runCustomConverter(t,e,r){if(t.name==="PIE_SECTION_LABEL")return e.replace(/"/g,"").trim()}},E6={parser:{TokenBuilder:Tt(()=>new Wje,"TokenBuilder"),ValueConverter:Tt(()=>new Yje,"ValueConverter")}};o(S6,"createPieServices");Tt(S6,"createPieServices")});function A6(t=Sa){let e=Hn(Ea(t),xs),r=Hn(ka({shared:e}),tF,C6);return e.ServiceRegistry.register(r),{shared:e,Architecture:r}}var Xje,jje,C6,cF=M(()=>{"use strict";Wa();vo();Xje=class extends qa{static{o(this,"ArchitectureTokenBuilder")}static{Tt(this,"ArchitectureTokenBuilder")}constructor(){super(["architecture"])}},jje=class extends Vf{static{o(this,"ArchitectureValueConverter")}static{Tt(this,"ArchitectureValueConverter")}runCustomConverter(t,e,r){if(t.name==="ARCH_ICON")return e.replace(/[()]/g,"").trim();if(t.name==="ARCH_TEXT_ICON")return e.replace(/["()]/g,"");if(t.name==="ARCH_TITLE")return e.replace(/[[\]]/g,"").trim()}},C6={parser:{TokenBuilder:Tt(()=>new Xje,"TokenBuilder"),ValueConverter:Tt(()=>new jje,"ValueConverter")}};o(A6,"createArchitectureServices");Tt(A6,"createArchitectureServices")});function D6(t=Sa){let e=Hn(Ea(t),xs),r=Hn(ka({shared:e}),nF,_6);return e.ServiceRegistry.register(r),{shared:e,Radar:r}}var Kje,_6,uF=M(()=>{"use strict";Wa();vo();Kje=class extends qa{static{o(this,"RadarTokenBuilder")}static{Tt(this,"RadarTokenBuilder")}constructor(){super(["radar-beta"])}},_6={parser:{TokenBuilder:Tt(()=>new Kje,"TokenBuilder"),ValueConverter:Tt(()=>new rh,"ValueConverter")}};o(D6,"createRadarServices");Tt(D6,"createRadarServices")});function cge(t){let e=t.validation.TreemapValidator,r=t.validation.ValidationRegistry;if(r){let n={Treemap:e.checkSingleRoot.bind(e)};r.register(n,e)}}function R6(t=Sa){let e=Hn(Ea(t),xs),r=Hn(ka({shared:e}),iF,L6);return e.ServiceRegistry.register(r),cge(r),{shared:e,Treemap:r}}var Qje,Zje,Jje,eKe,L6,hF=M(()=>{"use strict";Wa();vo();Qje=class extends qa{static{o(this,"TreemapTokenBuilder")}static{Tt(this,"TreemapTokenBuilder")}constructor(){super(["treemap"])}},Zje=/classDef\s+([A-Z_a-z]\w+)(?:\s+([^\n\r;]*))?;?/,Jje=class extends Vf{static{o(this,"TreemapValueConverter")}static{Tt(this,"TreemapValueConverter")}runCustomConverter(t,e,r){if(t.name==="NUMBER2")return parseFloat(e.replace(/,/g,""));if(t.name==="SEPARATOR")return e.substring(1,e.length-1);if(t.name==="STRING2")return e.substring(1,e.length-1);if(t.name==="INDENTATION")return e.length;if(t.name==="ClassDef"){if(typeof e!="string")return e;let n=Zje.exec(e);if(n)return{$type:"ClassDefStatement",className:n[1],styleText:n[2]||void 0}}}};o(cge,"registerValidationChecks");Tt(cge,"registerValidationChecks");eKe=class{static{o(this,"TreemapValidator")}static{Tt(this,"TreemapValidator")}checkSingleRoot(t,e){let r;for(let n of t.TreemapRows)n.item&&(r===void 0&&n.indent===void 0?r=0:n.indent===void 0?e("error","Multiple root nodes are not allowed in a treemap.",{node:n,property:"item"}):r!==void 0&&r>=parseInt(n.indent,10)&&e("error","Multiple root nodes are not allowed in a treemap.",{node:n,property:"item"}))}},L6={parser:{TokenBuilder:Tt(()=>new Qje,"TokenBuilder"),ValueConverter:Tt(()=>new Jje,"ValueConverter")},validation:{TreemapValidator:Tt(()=>new eKe,"TreemapValidator")}};o(R6,"createTreemapServices");Tt(R6,"createTreemapServices")});var uge={};dr(uge,{InfoModule:()=>b6,createInfoServices:()=>T6});var hge=M(()=>{"use strict";sF();Wa()});var fge={};dr(fge,{PacketModule:()=>w6,createPacketServices:()=>k6});var dge=M(()=>{"use strict";oF();Wa()});var pge={};dr(pge,{PieModule:()=>E6,createPieServices:()=>S6});var mge=M(()=>{"use strict";lF();Wa()});var gge={};dr(gge,{ArchitectureModule:()=>C6,createArchitectureServices:()=>A6});var yge=M(()=>{"use strict";cF();Wa()});var vge={};dr(vge,{GitGraphModule:()=>v6,createGitGraphServices:()=>x6});var xge=M(()=>{"use strict";aF();Wa()});var bge={};dr(bge,{RadarModule:()=>_6,createRadarServices:()=>D6});var Tge=M(()=>{"use strict";uF();Wa()});var wge={};dr(wge,{TreemapModule:()=>L6,createTreemapServices:()=>R6});var kge=M(()=>{"use strict";hF();Wa()});async function bs(t,e){let r=tKe[t];if(!r)throw new Error(`Unknown diagram type: ${t}`);nh[t]||await r();let i=nh[t].parse(e);if(i.lexerErrors.length>0||i.parserErrors.length>0)throw new rKe(i);return i.value}var nh,tKe,rKe,Uf=M(()=>{"use strict";aF();sF();oF();lF();cF();uF();hF();Wa();nh={},tKe={info:Tt(async()=>{let{createInfoServices:t}=await Promise.resolve().then(()=>(hge(),uge)),e=t().Info.parser.LangiumParser;nh.info=e},"info"),packet:Tt(async()=>{let{createPacketServices:t}=await Promise.resolve().then(()=>(dge(),fge)),e=t().Packet.parser.LangiumParser;nh.packet=e},"packet"),pie:Tt(async()=>{let{createPieServices:t}=await Promise.resolve().then(()=>(mge(),pge)),e=t().Pie.parser.LangiumParser;nh.pie=e},"pie"),architecture:Tt(async()=>{let{createArchitectureServices:t}=await Promise.resolve().then(()=>(yge(),gge)),e=t().Architecture.parser.LangiumParser;nh.architecture=e},"architecture"),gitGraph:Tt(async()=>{let{createGitGraphServices:t}=await Promise.resolve().then(()=>(xge(),vge)),e=t().GitGraph.parser.LangiumParser;nh.gitGraph=e},"gitGraph"),radar:Tt(async()=>{let{createRadarServices:t}=await Promise.resolve().then(()=>(Tge(),bge)),e=t().Radar.parser.LangiumParser;nh.radar=e},"radar"),treemap:Tt(async()=>{let{createTreemapServices:t}=await Promise.resolve().then(()=>(kge(),wge)),e=t().Treemap.parser.LangiumParser;nh.treemap=e},"treemap")};o(bs,"parse");Tt(bs,"parse");rKe=class extends Error{static{o(this,"MermaidParseError")}constructor(t){let e=t.lexerErrors.map(n=>n.message).join(` +`),r=t.parserErrors.map(n=>n.message).join(` +`);super(`Parsing failed: ${e} ${r}`),this.result=t}static{Tt(this,"MermaidParseError")}}});function nl(t,e){t.accDescr&&e.setAccDescription?.(t.accDescr),t.accTitle&&e.setAccTitle?.(t.accTitle),t.title&&e.setDiagramTitle?.(t.title)}var r0=M(()=>{"use strict";o(nl,"populateCommonDb")});var rn,N6=M(()=>{"use strict";rn={NORMAL:0,REVERSE:1,HIGHLIGHT:2,MERGE:3,CHERRY_PICK:4}});var J1,fF=M(()=>{"use strict";J1=class{constructor(e){this.init=e;this.records=this.init()}static{o(this,"ImperativeState")}reset(){this.records=this.init()}}});function dF(){return VL({length:7})}function iKe(t,e){let r=Object.create(null);return t.reduce((n,i)=>{let a=e(i);return r[a]||(r[a]=!0,n.push(i)),n},[])}function Ege(t,e,r){let n=t.indexOf(e);n===-1?t.push(r):t.splice(n,1,r)}function Cge(t){let e=t.reduce((i,a)=>i.seq>a.seq?i:a,t[0]),r="";t.forEach(function(i){i===e?r+=" *":r+=" |"});let n=[r,e.id,e.seq];for(let i in Dt.records.branches)Dt.records.branches.get(i)===e.id&&n.push(i);if(X.debug(n.join(" ")),e.parents&&e.parents.length==2&&e.parents[0]&&e.parents[1]){let i=Dt.records.commits.get(e.parents[0]);Ege(t,e,i),e.parents[1]&&t.push(Dt.records.commits.get(e.parents[1]))}else{if(e.parents.length==0)return;if(e.parents[0]){let i=Dt.records.commits.get(e.parents[0]);Ege(t,e,i)}}t=iKe(t,i=>i.id),Cge(t)}var nKe,n0,Dt,aKe,sKe,oKe,lKe,cKe,uKe,hKe,Sge,fKe,dKe,pKe,mKe,gKe,Age,yKe,vKe,xKe,M6,pF=M(()=>{"use strict";pt();tr();qn();gr();ci();N6();fF();Ra();nKe=ur.gitGraph,n0=o(()=>Vn({...nKe,...Qt().gitGraph}),"getConfig"),Dt=new J1(()=>{let t=n0(),e=t.mainBranchName,r=t.mainBranchOrder;return{mainBranchName:e,commits:new Map,head:null,branchConfig:new Map([[e,{name:e,order:r}]]),branches:new Map([[e,null]]),currBranch:e,direction:"LR",seq:0,options:{}}});o(dF,"getID");o(iKe,"uniqBy");aKe=o(function(t){Dt.records.direction=t},"setDirection"),sKe=o(function(t){X.debug("options str",t),t=t?.trim(),t=t||"{}";try{Dt.records.options=JSON.parse(t)}catch(e){X.error("error while parsing gitGraph options",e.message)}},"setOptions"),oKe=o(function(){return Dt.records.options},"getOptions"),lKe=o(function(t){let e=t.msg,r=t.id,n=t.type,i=t.tags;X.info("commit",e,r,n,i),X.debug("Entering commit:",e,r,n,i);let a=n0();r=tt.sanitizeText(r,a),e=tt.sanitizeText(e,a),i=i?.map(l=>tt.sanitizeText(l,a));let s={id:r||Dt.records.seq+"-"+dF(),message:e,seq:Dt.records.seq++,type:n??rn.NORMAL,tags:i??[],parents:Dt.records.head==null?[]:[Dt.records.head.id],branch:Dt.records.currBranch};Dt.records.head=s,X.info("main branch",a.mainBranchName),Dt.records.commits.has(s.id)&&X.warn(`Commit ID ${s.id} already exists`),Dt.records.commits.set(s.id,s),Dt.records.branches.set(Dt.records.currBranch,s.id),X.debug("in pushCommit "+s.id)},"commit"),cKe=o(function(t){let e=t.name,r=t.order;if(e=tt.sanitizeText(e,n0()),Dt.records.branches.has(e))throw 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 ${e}")`);Dt.records.branches.set(e,Dt.records.head!=null?Dt.records.head.id:null),Dt.records.branchConfig.set(e,{name:e,order:r}),Sge(e),X.debug("in createBranch")},"branch"),uKe=o(t=>{let e=t.branch,r=t.id,n=t.type,i=t.tags,a=n0();e=tt.sanitizeText(e,a),r&&(r=tt.sanitizeText(r,a));let s=Dt.records.branches.get(Dt.records.currBranch),l=Dt.records.branches.get(e),u=s?Dt.records.commits.get(s):void 0,h=l?Dt.records.commits.get(l):void 0;if(u&&h&&u.branch===e)throw new Error(`Cannot merge branch '${e}' into itself.`);if(Dt.records.currBranch===e){let p=new Error('Incorrect usage of "merge". Cannot merge a branch to itself');throw p.hash={text:`merge ${e}`,token:`merge ${e}`,expected:["branch abc"]},p}if(u===void 0||!u){let p=new Error(`Incorrect usage of "merge". Current branch (${Dt.records.currBranch})has no commits`);throw p.hash={text:`merge ${e}`,token:`merge ${e}`,expected:["commit"]},p}if(!Dt.records.branches.has(e)){let p=new Error('Incorrect usage of "merge". Branch to be merged ('+e+") does not exist");throw p.hash={text:`merge ${e}`,token:`merge ${e}`,expected:[`branch ${e}`]},p}if(h===void 0||!h){let p=new Error('Incorrect usage of "merge". Branch to be merged ('+e+") has no commits");throw p.hash={text:`merge ${e}`,token:`merge ${e}`,expected:['"commit"']},p}if(u===h){let p=new Error('Incorrect usage of "merge". Both branches have same head');throw p.hash={text:`merge ${e}`,token:`merge ${e}`,expected:["branch abc"]},p}if(r&&Dt.records.commits.has(r)){let p=new Error('Incorrect usage of "merge". Commit with id:'+r+" already exists, use different custom id");throw p.hash={text:`merge ${e} ${r} ${n} ${i?.join(" ")}`,token:`merge ${e} ${r} ${n} ${i?.join(" ")}`,expected:[`merge ${e} ${r}_UNIQUE ${n} ${i?.join(" ")}`]},p}let f=l||"",d={id:r||`${Dt.records.seq}-${dF()}`,message:`merged branch ${e} into ${Dt.records.currBranch}`,seq:Dt.records.seq++,parents:Dt.records.head==null?[]:[Dt.records.head.id,f],branch:Dt.records.currBranch,type:rn.MERGE,customType:n,customId:!!r,tags:i??[]};Dt.records.head=d,Dt.records.commits.set(d.id,d),Dt.records.branches.set(Dt.records.currBranch,d.id),X.debug(Dt.records.branches),X.debug("in mergeBranch")},"merge"),hKe=o(function(t){let e=t.id,r=t.targetId,n=t.tags,i=t.parent;X.debug("Entering cherryPick:",e,r,n);let a=n0();if(e=tt.sanitizeText(e,a),r=tt.sanitizeText(r,a),n=n?.map(u=>tt.sanitizeText(u,a)),i=tt.sanitizeText(i,a),!e||!Dt.records.commits.has(e)){let u=new Error('Incorrect usage of "cherryPick". Source commit id should exist and provided');throw u.hash={text:`cherryPick ${e} ${r}`,token:`cherryPick ${e} ${r}`,expected:["cherry-pick abc"]},u}let s=Dt.records.commits.get(e);if(s===void 0||!s)throw new Error('Incorrect usage of "cherryPick". Source commit id should exist and provided');if(i&&!(Array.isArray(s.parents)&&s.parents.includes(i)))throw new Error("Invalid operation: The specified parent commit is not an immediate parent of the cherry-picked commit.");let l=s.branch;if(s.type===rn.MERGE&&!i)throw new Error("Incorrect usage of cherry-pick: If the source commit is a merge commit, an immediate parent commit must be specified.");if(!r||!Dt.records.commits.has(r)){if(l===Dt.records.currBranch){let d=new Error('Incorrect usage of "cherryPick". Source commit is already on current branch');throw d.hash={text:`cherryPick ${e} ${r}`,token:`cherryPick ${e} ${r}`,expected:["cherry-pick abc"]},d}let u=Dt.records.branches.get(Dt.records.currBranch);if(u===void 0||!u){let d=new Error(`Incorrect usage of "cherry-pick". Current branch (${Dt.records.currBranch})has no commits`);throw d.hash={text:`cherryPick ${e} ${r}`,token:`cherryPick ${e} ${r}`,expected:["cherry-pick abc"]},d}let h=Dt.records.commits.get(u);if(h===void 0||!h){let d=new Error(`Incorrect usage of "cherry-pick". Current branch (${Dt.records.currBranch})has no commits`);throw d.hash={text:`cherryPick ${e} ${r}`,token:`cherryPick ${e} ${r}`,expected:["cherry-pick abc"]},d}let f={id:Dt.records.seq+"-"+dF(),message:`cherry-picked ${s?.message} into ${Dt.records.currBranch}`,seq:Dt.records.seq++,parents:Dt.records.head==null?[]:[Dt.records.head.id,s.id],branch:Dt.records.currBranch,type:rn.CHERRY_PICK,tags:n?n.filter(Boolean):[`cherry-pick:${s.id}${s.type===rn.MERGE?`|parent:${i}`:""}`]};Dt.records.head=f,Dt.records.commits.set(f.id,f),Dt.records.branches.set(Dt.records.currBranch,f.id),X.debug(Dt.records.branches),X.debug("in cherryPick")}},"cherryPick"),Sge=o(function(t){if(t=tt.sanitizeText(t,n0()),Dt.records.branches.has(t)){Dt.records.currBranch=t;let e=Dt.records.branches.get(Dt.records.currBranch);e===void 0||!e?Dt.records.head=null:Dt.records.head=Dt.records.commits.get(e)??null}else{let e=new Error(`Trying to checkout branch which is not yet created. (Help try using "branch ${t}")`);throw e.hash={text:`checkout ${t}`,token:`checkout ${t}`,expected:[`branch ${t}`]},e}},"checkout");o(Ege,"upsert");o(Cge,"prettyPrintCommitHistory");fKe=o(function(){X.debug(Dt.records.commits);let t=Age()[0];Cge([t])},"prettyPrint"),dKe=o(function(){Dt.reset(),Sr()},"clear"),pKe=o(function(){return[...Dt.records.branchConfig.values()].map((e,r)=>e.order!==null&&e.order!==void 0?e:{...e,order:parseFloat(`0.${r}`)}).sort((e,r)=>(e.order??0)-(r.order??0)).map(({name:e})=>({name:e}))},"getBranchesAsObjArray"),mKe=o(function(){return Dt.records.branches},"getBranches"),gKe=o(function(){return Dt.records.commits},"getCommits"),Age=o(function(){let t=[...Dt.records.commits.values()];return t.forEach(function(e){X.debug(e.id)}),t.sort((e,r)=>e.seq-r.seq),t},"getCommitsArray"),yKe=o(function(){return Dt.records.currBranch},"getCurrentBranch"),vKe=o(function(){return Dt.records.direction},"getDirection"),xKe=o(function(){return Dt.records.head},"getHead"),M6={commitType:rn,getConfig:n0,setDirection:aKe,setOptions:sKe,getOptions:oKe,commit:lKe,branch:cKe,merge:uKe,cherryPick:hKe,checkout:Sge,prettyPrint:fKe,clear:dKe,getBranchesAsObjArray:pKe,getBranches:mKe,getCommits:gKe,getCommitsArray:Age,getCurrentBranch:yKe,getDirection:vKe,getHead:xKe,setAccTitle:Rr,getAccTitle:Mr,getAccDescription:Or,setAccDescription:Ir,setDiagramTitle:$r,getDiagramTitle:Pr}});var bKe,TKe,wKe,kKe,EKe,SKe,CKe,_ge,Dge=M(()=>{"use strict";Uf();pt();r0();pF();N6();bKe=o((t,e)=>{nl(t,e),t.dir&&e.setDirection(t.dir);for(let r of t.statements)TKe(r,e)},"populate"),TKe=o((t,e)=>{let n={Commit:o(i=>e.commit(wKe(i)),"Commit"),Branch:o(i=>e.branch(kKe(i)),"Branch"),Merge:o(i=>e.merge(EKe(i)),"Merge"),Checkout:o(i=>e.checkout(SKe(i)),"Checkout"),CherryPicking:o(i=>e.cherryPick(CKe(i)),"CherryPicking")}[t.$type];n?n(t):X.error(`Unknown statement type: ${t.$type}`)},"parseStatement"),wKe=o(t=>({id:t.id,msg:t.message??"",type:t.type!==void 0?rn[t.type]:rn.NORMAL,tags:t.tags??void 0}),"parseCommit"),kKe=o(t=>({name:t.name,order:t.order??0}),"parseBranch"),EKe=o(t=>({branch:t.branch,id:t.id??"",type:t.type!==void 0?rn[t.type]:void 0,tags:t.tags??void 0}),"parseMerge"),SKe=o(t=>t.branch,"parseCheckout"),CKe=o(t=>({id:t.id,targetId:"",tags:t.tags?.length===0?void 0:t.tags,parent:t.parent}),"parseCherryPicking"),_ge={parse:o(async t=>{let e=await bs("gitGraph",t);X.debug(e),bKe(e,M6)},"parse")}});var AKe,il,qf,Wf,Jc,ih,i0,Ks,Qs,I6,f4,O6,Hf,Vr,_Ke,Rge,Nge,DKe,LKe,RKe,NKe,MKe,IKe,OKe,PKe,BKe,FKe,$Ke,zKe,Lge,GKe,d4,VKe,UKe,HKe,qKe,WKe,Mge,Ige=M(()=>{"use strict";yr();Xt();pt();tr();N6();AKe=ge(),il=AKe?.gitGraph,qf=10,Wf=40,Jc=4,ih=2,i0=8,Ks=new Map,Qs=new Map,I6=30,f4=new Map,O6=[],Hf=0,Vr="LR",_Ke=o(()=>{Ks.clear(),Qs.clear(),f4.clear(),Hf=0,O6=[],Vr="LR"},"clear"),Rge=o(t=>{let e=document.createElementNS("http://www.w3.org/2000/svg","text");return(typeof t=="string"?t.split(/\\n|\n|/gi):t).forEach(n=>{let 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=n.trim(),e.appendChild(i)}),e},"drawText"),Nge=o(t=>{let e,r,n;return Vr==="BT"?(r=o((i,a)=>i<=a,"comparisonFunc"),n=1/0):(r=o((i,a)=>i>=a,"comparisonFunc"),n=0),t.forEach(i=>{let a=Vr==="TB"||Vr=="BT"?Qs.get(i)?.y:Qs.get(i)?.x;a!==void 0&&r(a,n)&&(e=i,n=a)}),e},"findClosestParent"),DKe=o(t=>{let e="",r=1/0;return t.forEach(n=>{let i=Qs.get(n).y;i<=r&&(e=n,r=i)}),e||void 0},"findClosestParentBT"),LKe=o((t,e,r)=>{let n=r,i=r,a=[];t.forEach(s=>{let l=e.get(s);if(!l)throw new Error(`Commit not found for key ${s}`);l.parents.length?(n=NKe(l),i=Math.max(n,i)):a.push(l),MKe(l,n)}),n=i,a.forEach(s=>{IKe(s,n,r)}),t.forEach(s=>{let l=e.get(s);if(l?.parents.length){let u=DKe(l.parents);n=Qs.get(u).y-Wf,n<=i&&(i=n);let h=Ks.get(l.branch).pos,f=n-qf;Qs.set(l.id,{x:h,y:f})}})},"setParallelBTPos"),RKe=o(t=>{let e=Nge(t.parents.filter(n=>n!==null));if(!e)throw new Error(`Closest parent not found for commit ${t.id}`);let r=Qs.get(e)?.y;if(r===void 0)throw new Error(`Closest parent position not found for commit ${t.id}`);return r},"findClosestParentPos"),NKe=o(t=>RKe(t)+Wf,"calculateCommitPosition"),MKe=o((t,e)=>{let r=Ks.get(t.branch);if(!r)throw new Error(`Branch not found for commit ${t.id}`);let n=r.pos,i=e+qf;return Qs.set(t.id,{x:n,y:i}),{x:n,y:i}},"setCommitPosition"),IKe=o((t,e,r)=>{let n=Ks.get(t.branch);if(!n)throw new Error(`Branch not found for commit ${t.id}`);let i=e+r,a=n.pos;Qs.set(t.id,{x:a,y:i})},"setRootPosition"),OKe=o((t,e,r,n,i,a)=>{if(a===rn.HIGHLIGHT)t.append("rect").attr("x",r.x-10).attr("y",r.y-10).attr("width",20).attr("height",20).attr("class",`commit ${e.id} commit-highlight${i%i0} ${n}-outer`),t.append("rect").attr("x",r.x-6).attr("y",r.y-6).attr("width",12).attr("height",12).attr("class",`commit ${e.id} commit${i%i0} ${n}-inner`);else if(a===rn.CHERRY_PICK)t.append("circle").attr("cx",r.x).attr("cy",r.y).attr("r",10).attr("class",`commit ${e.id} ${n}`),t.append("circle").attr("cx",r.x-3).attr("cy",r.y+2).attr("r",2.75).attr("fill","#fff").attr("class",`commit ${e.id} ${n}`),t.append("circle").attr("cx",r.x+3).attr("cy",r.y+2).attr("r",2.75).attr("fill","#fff").attr("class",`commit ${e.id} ${n}`),t.append("line").attr("x1",r.x+3).attr("y1",r.y+1).attr("x2",r.x).attr("y2",r.y-5).attr("stroke","#fff").attr("class",`commit ${e.id} ${n}`),t.append("line").attr("x1",r.x-3).attr("y1",r.y+1).attr("x2",r.x).attr("y2",r.y-5).attr("stroke","#fff").attr("class",`commit ${e.id} ${n}`);else{let s=t.append("circle");if(s.attr("cx",r.x),s.attr("cy",r.y),s.attr("r",e.type===rn.MERGE?9:10),s.attr("class",`commit ${e.id} commit${i%i0}`),a===rn.MERGE){let l=t.append("circle");l.attr("cx",r.x),l.attr("cy",r.y),l.attr("r",6),l.attr("class",`commit ${n} ${e.id} commit${i%i0}`)}a===rn.REVERSE&&t.append("path").attr("d",`M ${r.x-5},${r.y-5}L${r.x+5},${r.y+5}M${r.x-5},${r.y+5}L${r.x+5},${r.y-5}`).attr("class",`commit ${n} ${e.id} commit${i%i0}`)}},"drawCommitBullet"),PKe=o((t,e,r,n)=>{if(e.type!==rn.CHERRY_PICK&&(e.customId&&e.type===rn.MERGE||e.type!==rn.MERGE)&&il?.showCommitLabel){let i=t.append("g"),a=i.insert("rect").attr("class","commit-label-bkg"),s=i.append("text").attr("x",n).attr("y",r.y+25).attr("class","commit-label").text(e.id),l=s.node()?.getBBox();if(l&&(a.attr("x",r.posWithOffset-l.width/2-ih).attr("y",r.y+13.5).attr("width",l.width+2*ih).attr("height",l.height+2*ih),Vr==="TB"||Vr==="BT"?(a.attr("x",r.x-(l.width+4*Jc+5)).attr("y",r.y-12),s.attr("x",r.x-(l.width+4*Jc)).attr("y",r.y+l.height-12)):s.attr("x",r.posWithOffset-l.width/2),il.rotateCommitLabel))if(Vr==="TB"||Vr==="BT")s.attr("transform","rotate(-45, "+r.x+", "+r.y+")"),a.attr("transform","rotate(-45, "+r.x+", "+r.y+")");else{let u=-7.5-(l.width+10)/25*9.5,h=10+l.width/25*8.5;i.attr("transform","translate("+u+", "+h+") rotate(-45, "+n+", "+r.y+")")}}},"drawCommitLabel"),BKe=o((t,e,r,n)=>{if(e.tags.length>0){let i=0,a=0,s=0,l=[];for(let u of e.tags.reverse()){let h=t.insert("polygon"),f=t.append("circle"),d=t.append("text").attr("y",r.y-16-i).attr("class","tag-label").text(u),p=d.node()?.getBBox();if(!p)throw new Error("Tag bbox not found");a=Math.max(a,p.width),s=Math.max(s,p.height),d.attr("x",r.posWithOffset-p.width/2),l.push({tag:d,hole:f,rect:h,yOffset:i}),i+=20}for(let{tag:u,hole:h,rect:f,yOffset:d}of l){let p=s/2,m=r.y-19.2-d;if(f.attr("class","tag-label-bkg").attr("points",` + ${n-a/2-Jc/2},${m+ih} + ${n-a/2-Jc/2},${m-ih} + ${r.posWithOffset-a/2-Jc},${m-p-ih} + ${r.posWithOffset+a/2+Jc},${m-p-ih} + ${r.posWithOffset+a/2+Jc},${m+p+ih} + ${r.posWithOffset-a/2-Jc},${m+p+ih}`),h.attr("cy",m).attr("cx",n-a/2+Jc/2).attr("r",1.5).attr("class","tag-hole"),Vr==="TB"||Vr==="BT"){let g=n+d;f.attr("class","tag-label-bkg").attr("points",` + ${r.x},${g+2} + ${r.x},${g-2} + ${r.x+qf},${g-p-2} + ${r.x+qf+a+4},${g-p-2} + ${r.x+qf+a+4},${g+p+2} + ${r.x+qf},${g+p+2}`).attr("transform","translate(12,12) rotate(45, "+r.x+","+n+")"),h.attr("cx",r.x+Jc/2).attr("cy",g).attr("transform","translate(12,12) rotate(45, "+r.x+","+n+")"),u.attr("x",r.x+5).attr("y",g+3).attr("transform","translate(14,14) rotate(45, "+r.x+","+n+")")}}}},"drawCommitTags"),FKe=o(t=>{switch(t.customType??t.type){case rn.NORMAL:return"commit-normal";case rn.REVERSE:return"commit-reverse";case rn.HIGHLIGHT:return"commit-highlight";case rn.MERGE:return"commit-merge";case rn.CHERRY_PICK:return"commit-cherry-pick";default:return"commit-normal"}},"getCommitClassType"),$Ke=o((t,e,r,n)=>{let i={x:0,y:0};if(t.parents.length>0){let a=Nge(t.parents);if(a){let s=n.get(a)??i;return e==="TB"?s.y+Wf:e==="BT"?(n.get(t.id)??i).y-Wf:s.x+Wf}}else return e==="TB"?I6:e==="BT"?(n.get(t.id)??i).y-Wf:0;return 0},"calculatePosition"),zKe=o((t,e,r)=>{let n=Vr==="BT"&&r?e:e+qf,i=Vr==="TB"||Vr==="BT"?n:Ks.get(t.branch)?.pos,a=Vr==="TB"||Vr==="BT"?Ks.get(t.branch)?.pos:n;if(a===void 0||i===void 0)throw new Error(`Position were undefined for commit ${t.id}`);return{x:a,y:i,posWithOffset:n}},"getCommitPosition"),Lge=o((t,e,r)=>{if(!il)throw new Error("GitGraph config not found");let n=t.append("g").attr("class","commit-bullets"),i=t.append("g").attr("class","commit-labels"),a=Vr==="TB"||Vr==="BT"?I6:0,s=[...e.keys()],l=il?.parallelCommits??!1,u=o((f,d)=>{let p=e.get(f)?.seq,m=e.get(d)?.seq;return p!==void 0&&m!==void 0?p-m:0},"sortKeys"),h=s.sort(u);Vr==="BT"&&(l&&LKe(h,e,a),h=h.reverse()),h.forEach(f=>{let d=e.get(f);if(!d)throw new Error(`Commit not found for key ${f}`);l&&(a=$Ke(d,Vr,a,Qs));let p=zKe(d,a,l);if(r){let m=FKe(d),g=d.customType??d.type,y=Ks.get(d.branch)?.index??0;OKe(n,d,p,m,y,g),PKe(i,d,p,a),BKe(i,d,p,a)}Vr==="TB"||Vr==="BT"?Qs.set(d.id,{x:p.x,y:p.posWithOffset}):Qs.set(d.id,{x:p.posWithOffset,y:p.y}),a=Vr==="BT"&&l?a+Wf:a+Wf+qf,a>Hf&&(Hf=a)})},"drawCommits"),GKe=o((t,e,r,n,i)=>{let s=(Vr==="TB"||Vr==="BT"?r.xh.branch===s,"isOnBranchToGetCurve"),u=o(h=>h.seq>t.seq&&h.sequ(h)&&l(h))},"shouldRerouteArrow"),d4=o((t,e,r=0)=>{let n=t+Math.abs(t-e)/2;if(r>5)return n;if(O6.every(s=>Math.abs(s-n)>=10))return O6.push(n),n;let a=Math.abs(t-e);return d4(t,e-a/5,r+1)},"findLane"),VKe=o((t,e,r,n)=>{let i=Qs.get(e.id),a=Qs.get(r.id);if(i===void 0||a===void 0)throw new Error(`Commit positions not found for commits ${e.id} and ${r.id}`);let s=GKe(e,r,i,a,n),l="",u="",h=0,f=0,d=Ks.get(r.branch)?.index;r.type===rn.MERGE&&e.id!==r.parents[0]&&(d=Ks.get(e.branch)?.index);let p;if(s){l="A 10 10, 0, 0, 0,",u="A 10 10, 0, 0, 1,",h=10,f=10;let m=i.ya.x&&(l="A 20 20, 0, 0, 0,",u="A 20 20, 0, 0, 1,",h=20,f=20,r.type===rn.MERGE&&e.id!==r.parents[0]?p=`M ${i.x} ${i.y} L ${i.x} ${a.y-h} ${u} ${i.x-f} ${a.y} L ${a.x} ${a.y}`:p=`M ${i.x} ${i.y} L ${a.x+h} ${i.y} ${l} ${a.x} ${i.y+f} L ${a.x} ${a.y}`),i.x===a.x&&(p=`M ${i.x} ${i.y} L ${a.x} ${a.y}`)):Vr==="BT"?(i.xa.x&&(l="A 20 20, 0, 0, 0,",u="A 20 20, 0, 0, 1,",h=20,f=20,r.type===rn.MERGE&&e.id!==r.parents[0]?p=`M ${i.x} ${i.y} L ${i.x} ${a.y+h} ${l} ${i.x-f} ${a.y} L ${a.x} ${a.y}`:p=`M ${i.x} ${i.y} L ${a.x-h} ${i.y} ${l} ${a.x} ${i.y-f} L ${a.x} ${a.y}`),i.x===a.x&&(p=`M ${i.x} ${i.y} L ${a.x} ${a.y}`)):(i.ya.y&&(r.type===rn.MERGE&&e.id!==r.parents[0]?p=`M ${i.x} ${i.y} L ${a.x-h} ${i.y} ${l} ${a.x} ${i.y-f} L ${a.x} ${a.y}`:p=`M ${i.x} ${i.y} L ${i.x} ${a.y+h} ${u} ${i.x+f} ${a.y} L ${a.x} ${a.y}`),i.y===a.y&&(p=`M ${i.x} ${i.y} L ${a.x} ${a.y}`));if(p===void 0)throw new Error("Line definition not found");t.append("path").attr("d",p).attr("class","arrow arrow"+d%i0)},"drawArrow"),UKe=o((t,e)=>{let r=t.append("g").attr("class","commit-arrows");[...e.keys()].forEach(n=>{let i=e.get(n);i.parents&&i.parents.length>0&&i.parents.forEach(a=>{VKe(r,e.get(a),i,e)})})},"drawArrows"),HKe=o((t,e)=>{let r=t.append("g");e.forEach((n,i)=>{let a=i%i0,s=Ks.get(n.name)?.pos;if(s===void 0)throw new Error(`Position not found for branch ${n.name}`);let l=r.append("line");l.attr("x1",0),l.attr("y1",s),l.attr("x2",Hf),l.attr("y2",s),l.attr("class","branch branch"+a),Vr==="TB"?(l.attr("y1",I6),l.attr("x1",s),l.attr("y2",Hf),l.attr("x2",s)):Vr==="BT"&&(l.attr("y1",Hf),l.attr("x1",s),l.attr("y2",I6),l.attr("x2",s)),O6.push(s);let u=n.name,h=Rge(u),f=r.insert("rect"),p=r.insert("g").attr("class","branchLabel").insert("g").attr("class","label branch-label"+a);p.node().appendChild(h);let m=h.getBBox();f.attr("class","branchLabelBkg label"+a).attr("rx",4).attr("ry",4).attr("x",-m.width-4-(il?.rotateCommitLabel===!0?30:0)).attr("y",-m.height/2+8).attr("width",m.width+18).attr("height",m.height+4),p.attr("transform","translate("+(-m.width-14-(il?.rotateCommitLabel===!0?30:0))+", "+(s-m.height/2-1)+")"),Vr==="TB"?(f.attr("x",s-m.width/2-10).attr("y",0),p.attr("transform","translate("+(s-m.width/2-5)+", 0)")):Vr==="BT"?(f.attr("x",s-m.width/2-10).attr("y",Hf),p.attr("transform","translate("+(s-m.width/2-5)+", "+Hf+")")):f.attr("transform","translate(-19, "+(s-m.height/2)+")")})},"drawBranches"),qKe=o(function(t,e,r,n,i){return Ks.set(t,{pos:e,index:r}),e+=50+(i?40:0)+(Vr==="TB"||Vr==="BT"?n.width/2:0),e},"setBranchPosition"),WKe=o(function(t,e,r,n){if(_Ke(),X.debug("in gitgraph renderer",t+` +`,"id:",e,r),!il)throw new Error("GitGraph config not found");let i=il.rotateCommitLabel??!1,a=n.db;f4=a.getCommits();let s=a.getBranchesAsObjArray();Vr=a.getDirection();let l=qe(`[id="${e}"]`),u=0;s.forEach((h,f)=>{let d=Rge(h.name),p=l.append("g"),m=p.insert("g").attr("class","branchLabel"),g=m.insert("g").attr("class","label branch-label");g.node()?.appendChild(d);let y=d.getBBox();u=qKe(h.name,u,f,y,i),g.remove(),m.remove(),p.remove()}),Lge(l,f4,!1),il.showBranches&&HKe(l,s),UKe(l,f4),Lge(l,f4,!0),qt.insertTitle(l,"gitTitleText",il.titleTopMargin??0,a.getDiagramTitle()),FA(void 0,l,il.diagramPadding,il.useMaxWidth)},"draw"),Mge={draw:WKe}});var YKe,Oge,Pge=M(()=>{"use strict";YKe=o(t=>` + .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(e=>` + .branch-label${e} { fill: ${t["gitBranchLabel"+e]}; } + .commit${e} { stroke: ${t["git"+e]}; fill: ${t["git"+e]}; } + .commit-highlight${e} { stroke: ${t["gitInv"+e]}; fill: ${t["gitInv"+e]}; } + .label${e} { fill: ${t["git"+e]}; } + .arrow${e} { stroke: ${t["git"+e]}; } + `).join(` +`)} + + .branch { + stroke-width: 1; + stroke: ${t.lineColor}; + stroke-dasharray: 2; + } + .commit-label { font-size: ${t.commitLabelFontSize}; fill: ${t.commitLabelColor};} + .commit-label-bkg { font-size: ${t.commitLabelFontSize}; fill: ${t.commitLabelBackground}; opacity: 0.5; } + .tag-label { font-size: ${t.tagLabelFontSize}; fill: ${t.tagLabelColor};} + .tag-label-bkg { fill: ${t.tagLabelBackground}; stroke: ${t.tagLabelBorder}; } + .tag-hole { fill: ${t.textColor}; } + + .commit-merge { + stroke: ${t.primaryColor}; + fill: ${t.primaryColor}; + } + .commit-reverse { + stroke: ${t.primaryColor}; + fill: ${t.primaryColor}; + stroke-width: 3; + } + .commit-highlight-outer { + } + .commit-highlight-inner { + stroke: ${t.primaryColor}; + fill: ${t.primaryColor}; + } + + .arrow { stroke-width: 8; stroke-linecap: round; fill: none} + .gitTitleText { + text-anchor: middle; + font-size: 18px; + fill: ${t.textColor}; + } +`,"getStyles"),Oge=YKe});var Bge={};dr(Bge,{diagram:()=>XKe});var XKe,Fge=M(()=>{"use strict";Dge();pF();Ige();Pge();XKe={parser:_ge,db:M6,renderer:Mge,styles:Oge}});var mF,Gge,Vge=M(()=>{"use strict";mF=(function(){var t=o(function(_,D,O,N){for(O=O||{},N=_.length;N--;O[_[N]]=D);return O},"o"),e=[6,8,10,12,13,14,15,16,17,18,20,21,22,23,24,25,26,27,28,29,30,31,33,35,36,38,40],r=[1,26],n=[1,27],i=[1,28],a=[1,29],s=[1,30],l=[1,31],u=[1,32],h=[1,33],f=[1,34],d=[1,9],p=[1,10],m=[1,11],g=[1,12],y=[1,13],v=[1,14],x=[1,15],b=[1,16],T=[1,19],S=[1,20],w=[1,21],k=[1,22],C=[1,23],A=[1,25],L=[1,35],I={trace:o(function(){},"trace"),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,weekend:19,weekend_friday:20,weekend_saturday:21,dateFormat:22,inclusiveEndDates:23,topAxis:24,axisFormat:25,tickInterval:26,excludes:27,includes:28,todayMarker:29,title:30,acc_title:31,acc_title_value:32,acc_descr:33,acc_descr_value:34,acc_descr_multiline_value:35,section:36,clickStatement:37,taskTxt:38,taskData:39,click:40,callbackname:41,callbackargs:42,href:43,clickStatementDebug:44,$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",20:"weekend_friday",21:"weekend_saturday",22:"dateFormat",23:"inclusiveEndDates",24:"topAxis",25:"axisFormat",26:"tickInterval",27:"excludes",28:"includes",29:"todayMarker",30:"title",31:"acc_title",32:"acc_title_value",33:"acc_descr",34:"acc_descr_value",35:"acc_descr_multiline_value",36:"section",38:"taskTxt",39:"taskData",40:"click",41:"callbackname",42:"callbackargs",43:"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],[19,1],[19,1],[9,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],[37,2],[37,3],[37,3],[37,4],[37,3],[37,4],[37,2],[44,2],[44,3],[44,3],[44,4],[44,3],[44,4],[44,2]],performAction:o(function(D,O,N,P,B,F,V){var $=F.length-1;switch(B){case 1:return F[$-1];case 2:this.$=[];break;case 3:F[$-1].push(F[$]),this.$=F[$-1];break;case 4:case 5:this.$=F[$];break;case 6:case 7:this.$=[];break;case 8:P.setWeekday("monday");break;case 9:P.setWeekday("tuesday");break;case 10:P.setWeekday("wednesday");break;case 11:P.setWeekday("thursday");break;case 12:P.setWeekday("friday");break;case 13:P.setWeekday("saturday");break;case 14:P.setWeekday("sunday");break;case 15:P.setWeekend("friday");break;case 16:P.setWeekend("saturday");break;case 17:P.setDateFormat(F[$].substr(11)),this.$=F[$].substr(11);break;case 18:P.enableInclusiveEndDates(),this.$=F[$].substr(18);break;case 19:P.TopAxis(),this.$=F[$].substr(8);break;case 20:P.setAxisFormat(F[$].substr(11)),this.$=F[$].substr(11);break;case 21:P.setTickInterval(F[$].substr(13)),this.$=F[$].substr(13);break;case 22:P.setExcludes(F[$].substr(9)),this.$=F[$].substr(9);break;case 23:P.setIncludes(F[$].substr(9)),this.$=F[$].substr(9);break;case 24:P.setTodayMarker(F[$].substr(12)),this.$=F[$].substr(12);break;case 27:P.setDiagramTitle(F[$].substr(6)),this.$=F[$].substr(6);break;case 28:this.$=F[$].trim(),P.setAccTitle(this.$);break;case 29:case 30:this.$=F[$].trim(),P.setAccDescription(this.$);break;case 31:P.addSection(F[$].substr(8)),this.$=F[$].substr(8);break;case 33:P.addTask(F[$-1],F[$]),this.$="task";break;case 34:this.$=F[$-1],P.setClickEvent(F[$-1],F[$],null);break;case 35:this.$=F[$-2],P.setClickEvent(F[$-2],F[$-1],F[$]);break;case 36:this.$=F[$-2],P.setClickEvent(F[$-2],F[$-1],null),P.setLink(F[$-2],F[$]);break;case 37:this.$=F[$-3],P.setClickEvent(F[$-3],F[$-2],F[$-1]),P.setLink(F[$-3],F[$]);break;case 38:this.$=F[$-2],P.setClickEvent(F[$-2],F[$],null),P.setLink(F[$-2],F[$-1]);break;case 39:this.$=F[$-3],P.setClickEvent(F[$-3],F[$-1],F[$]),P.setLink(F[$-3],F[$-2]);break;case 40:this.$=F[$-1],P.setLink(F[$-1],F[$]);break;case 41:case 47:this.$=F[$-1]+" "+F[$];break;case 42:case 43:case 45:this.$=F[$-2]+" "+F[$-1]+" "+F[$];break;case 44:case 46:this.$=F[$-3]+" "+F[$-2]+" "+F[$-1]+" "+F[$];break}},"anonymous"),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:r,13:n,14:i,15:a,16:s,17:l,18:u,19:18,20:h,21:f,22:d,23:p,24:m,25:g,26:y,27:v,28:x,29:b,30:T,31:S,33:w,35:k,36:C,37:24,38:A,40:L},t(e,[2,7],{1:[2,1]}),t(e,[2,3]),{9:36,11:17,12:r,13:n,14:i,15:a,16:s,17:l,18:u,19:18,20:h,21:f,22:d,23:p,24:m,25:g,26:y,27:v,28:x,29:b,30:T,31:S,33:w,35:k,36:C,37:24,38:A,40:L},t(e,[2,5]),t(e,[2,6]),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]),t(e,[2,25]),t(e,[2,26]),t(e,[2,27]),{32:[1,37]},{34:[1,38]},t(e,[2,30]),t(e,[2,31]),t(e,[2,32]),{39:[1,39]},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]),t(e,[2,15]),t(e,[2,16]),{41:[1,40],43:[1,41]},t(e,[2,4]),t(e,[2,28]),t(e,[2,29]),t(e,[2,33]),t(e,[2,34],{42:[1,42],43:[1,43]}),t(e,[2,40],{41:[1,44]}),t(e,[2,35],{43:[1,45]}),t(e,[2,36]),t(e,[2,38],{42:[1,46]}),t(e,[2,37]),t(e,[2,39])],defaultActions:{},parseError:o(function(D,O){if(O.recoverable)this.trace(D);else{var N=new Error(D);throw N.hash=O,N}},"parseError"),parse:o(function(D){var O=this,N=[0],P=[],B=[null],F=[],V=this.table,$="",U=0,j=0,ee=0,q=2,oe=1,Q=F.slice.call(arguments,1),ue=Object.create(this.lexer),te={yy:{}};for(var re in this.yy)Object.prototype.hasOwnProperty.call(this.yy,re)&&(te.yy[re]=this.yy[re]);ue.setInput(D,te.yy),te.yy.lexer=ue,te.yy.parser=this,typeof ue.yylloc>"u"&&(ue.yylloc={});var J=ue.yylloc;F.push(J);var K=ue.options&&ue.options.ranges;typeof te.yy.parseError=="function"?this.parseError=te.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function ae(Ce){N.length=N.length-2*Ce,B.length=B.length-Ce,F.length=F.length-Ce}o(ae,"popStack");function Z(){var Ce;return Ce=P.pop()||ue.lex()||oe,typeof Ce!="number"&&(Ce instanceof Array&&(P=Ce,Ce=P.pop()),Ce=O.symbols_[Ce]||Ce),Ce}o(Z,"lex");for(var de,ne,Te,W,Ve,pe,Be={},Ye,He,Le,Ie;;){if(Te=N[N.length-1],this.defaultActions[Te]?W=this.defaultActions[Te]:((de===null||typeof de>"u")&&(de=Z()),W=V[Te]&&V[Te][de]),typeof W>"u"||!W.length||!W[0]){var Ne="";Ie=[];for(Ye in V[Te])this.terminals_[Ye]&&Ye>q&&Ie.push("'"+this.terminals_[Ye]+"'");ue.showPosition?Ne="Parse error on line "+(U+1)+`: +`+ue.showPosition()+` +Expecting `+Ie.join(", ")+", got '"+(this.terminals_[de]||de)+"'":Ne="Parse error on line "+(U+1)+": Unexpected "+(de==oe?"end of input":"'"+(this.terminals_[de]||de)+"'"),this.parseError(Ne,{text:ue.match,token:this.terminals_[de]||de,line:ue.yylineno,loc:J,expected:Ie})}if(W[0]instanceof Array&&W.length>1)throw new Error("Parse Error: multiple actions possible at state: "+Te+", token: "+de);switch(W[0]){case 1:N.push(de),B.push(ue.yytext),F.push(ue.yylloc),N.push(W[1]),de=null,ne?(de=ne,ne=null):(j=ue.yyleng,$=ue.yytext,U=ue.yylineno,J=ue.yylloc,ee>0&&ee--);break;case 2:if(He=this.productions_[W[1]][1],Be.$=B[B.length-He],Be._$={first_line:F[F.length-(He||1)].first_line,last_line:F[F.length-1].last_line,first_column:F[F.length-(He||1)].first_column,last_column:F[F.length-1].last_column},K&&(Be._$.range=[F[F.length-(He||1)].range[0],F[F.length-1].range[1]]),pe=this.performAction.apply(Be,[$,j,U,te.yy,W[1],B,F].concat(Q)),typeof pe<"u")return pe;He&&(N=N.slice(0,-1*He*2),B=B.slice(0,-1*He),F=F.slice(0,-1*He)),N.push(this.productions_[W[1]][0]),B.push(Be.$),F.push(Be._$),Le=V[N[N.length-2]][N[N.length-1]],N.push(Le);break;case 3:return!0}}return!0},"parse")},R=(function(){var _={EOF:1,parseError:o(function(O,N){if(this.yy.parser)this.yy.parser.parseError(O,N);else throw new Error(O)},"parseError"),setInput:o(function(D,O){return this.yy=O||this.yy||{},this._input=D,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},"setInput"),input:o(function(){var D=this._input[0];this.yytext+=D,this.yyleng++,this.offset++,this.match+=D,this.matched+=D;var O=D.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),D},"input"),unput:o(function(D){var O=D.length,N=D.split(/(?:\r\n?|\n)/g);this._input=D+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-O),this.offset-=O;var P=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 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:N?(N.length===P.length?this.yylloc.first_column:0)+P[P.length-N.length].length-N[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},"unput"),more:o(function(){return this._more=!0,this},"more"),reject:o(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},"reject"),less:o(function(D){this.unput(this.match.slice(D))},"less"),pastInput:o(function(){var D=this.matched.substr(0,this.matched.length-this.match.length);return(D.length>20?"...":"")+D.substr(-20).replace(/\n/g,"")},"pastInput"),upcomingInput:o(function(){var D=this.match;return D.length<20&&(D+=this._input.substr(0,20-D.length)),(D.substr(0,20)+(D.length>20?"...":"")).replace(/\n/g,"")},"upcomingInput"),showPosition:o(function(){var D=this.pastInput(),O=new Array(D.length+1).join("-");return D+this.upcomingInput()+` +`+O+"^"},"showPosition"),test_match:o(function(D,O){var N,P,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))),P=D[0].match(/(?:\r\n?|\n).*/g),P&&(this.yylineno+=P.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:P?P[P.length-1].length-P[P.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+D[0].length},this.yytext+=D[0],this.match+=D[0],this.matches=D,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(D[0].length),this.matched+=D[0],N=this.performAction.call(this,this.yy,this,O,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),N)return N;if(this._backtrack){for(var F in B)this[F]=B[F];return!1}return!1},"test_match"),next:o(function(){if(this.done)return this.EOF;this._input||(this.done=!0);var D,O,N,P;this._more||(this.yytext="",this.match="");for(var B=this._currentRules(),F=0;FO[0].length)){if(O=N,P=F,this.options.backtrack_lexer){if(D=this.test_match(N,B[F]),D!==!1)return D;if(this._backtrack){O=!1;continue}else return!1}else if(!this.options.flex)break}return O?(D=this.test_match(O,B[P]),D!==!1?D:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text. +`+this.showPosition(),{text:"",token:null,line:this.yylineno})},"next"),lex:o(function(){var O=this.next();return O||this.lex()},"lex"),begin:o(function(O){this.conditionStack.push(O)},"begin"),popState:o(function(){var O=this.conditionStack.length-1;return O>0?this.conditionStack.pop():this.conditionStack[0]},"popState"),_currentRules:o(function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},"_currentRules"),topState:o(function(O){return O=this.conditionStack.length-1-Math.abs(O||0),O>=0?this.conditionStack[O]:"INITIAL"},"topState"),pushState:o(function(O){this.begin(O)},"pushState"),stateStackSize:o(function(){return this.conditionStack.length},"stateStackSize"),options:{"case-insensitive":!0},performAction:o(function(O,N,P,B){var F=B;switch(P){case 0:return this.begin("open_directive"),"open_directive";break;case 1:return this.begin("acc_title"),31;break;case 2:return this.popState(),"acc_title_value";break;case 3:return this.begin("acc_descr"),33;break;case 4:return this.popState(),"acc_descr_value";break;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 43;case 17:this.begin("callbackname");break;case 18:this.popState();break;case 19:this.popState(),this.begin("callbackargs");break;case 20:return 41;case 21:this.popState();break;case 22:return 42;case 23:this.begin("click");break;case 24:this.popState();break;case 25:return 40;case 26:return 4;case 27:return 22;case 28:return 23;case 29:return 24;case 30:return 25;case 31:return 26;case 32:return 28;case 33:return 27;case 34:return 29;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 20;case 43:return 21;case 44:return"date";case 45:return 30;case 46:return"accDescription";case 47:return 36;case 48:return 38;case 49:return 39;case 50:return":";case 51:return 6;case 52:return"INVALID"}},"anonymous"),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,/^(?:weekend\s+friday\b)/i,/^(?:weekend\s+saturday\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,51,52],inclusive:!0}}};return _})();I.lexer=R;function E(){this.yy={}}return o(E,"Parser"),E.prototype=I,I.Parser=E,new E})();mF.parser=mF;Gge=mF});var Uge=sa((gF,yF)=>{"use strict";(function(t,e){typeof gF=="object"&&typeof yF<"u"?yF.exports=e():typeof define=="function"&&define.amd?define(e):(t=typeof globalThis<"u"?globalThis:t||self).dayjs_plugin_isoWeek=e()})(gF,(function(){"use strict";var t="day";return function(e,r,n){var i=o(function(l){return l.add(4-l.isoWeekday(),t)},"a"),a=r.prototype;a.isoWeekYear=function(){return i(this).year()},a.isoWeek=function(l){if(!this.$utils().u(l))return this.add(7*(l-this.isoWeek()),t);var u,h,f,d,p=i(this),m=(u=this.isoWeekYear(),h=this.$u,f=(h?n.utc:n)().year(u).startOf("year"),d=4-f.isoWeekday(),f.isoWeekday()>4&&(d+=7),f.add(d,t));return p.diff(m,"week")+1},a.isoWeekday=function(l){return this.$utils().u(l)?this.day()||7:this.day(this.day()%7?l:l-7)};var s=a.startOf;a.startOf=function(l,u){var h=this.$utils(),f=!!h.u(u)||u;return h.p(l)==="isoweek"?f?this.date(this.date()-(this.isoWeekday()-1)).startOf("day"):this.date(this.date()-1-(this.isoWeekday()-1)+7).endOf("day"):s.bind(this)(l,u)}}}))});var Hge=sa((vF,xF)=>{"use strict";(function(t,e){typeof vF=="object"&&typeof xF<"u"?xF.exports=e():typeof define=="function"&&define.amd?define(e):(t=typeof globalThis<"u"?globalThis:t||self).dayjs_plugin_customParseFormat=e()})(vF,(function(){"use strict";var t={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"},e=/(\[[^[]*\])|([-_:/.,()\s]+)|(A|a|Q|YYYY|YY?|ww?|MM?M?M?|Do|DD?|hh?|HH?|mm?|ss?|S{1,3}|z|ZZ?)/g,r=/\d/,n=/\d\d/,i=/\d\d?/,a=/\d*[^-_:/,()\s\d]+/,s={},l=o(function(g){return(g=+g)+(g>68?1900:2e3)},"a"),u=o(function(g){return function(y){this[g]=+y}},"f"),h=[/[+-]\d\d:?(\d\d)?|Z/,function(g){(this.zone||(this.zone={})).offset=(function(y){if(!y||y==="Z")return 0;var v=y.match(/([+-]|\d\d)/g),x=60*v[1]+(+v[2]||0);return x===0?0:v[0]==="+"?-x:x})(g)}],f=o(function(g){var y=s[g];return y&&(y.indexOf?y:y.s.concat(y.f))},"u"),d=o(function(g,y){var v,x=s.meridiem;if(x){for(var b=1;b<=24;b+=1)if(g.indexOf(x(b,0,y))>-1){v=b>12;break}}else v=g===(y?"pm":"PM");return v},"d"),p={A:[a,function(g){this.afternoon=d(g,!1)}],a:[a,function(g){this.afternoon=d(g,!0)}],Q:[r,function(g){this.month=3*(g-1)+1}],S:[r,function(g){this.milliseconds=100*+g}],SS:[n,function(g){this.milliseconds=10*+g}],SSS:[/\d{3}/,function(g){this.milliseconds=+g}],s:[i,u("seconds")],ss:[i,u("seconds")],m:[i,u("minutes")],mm:[i,u("minutes")],H:[i,u("hours")],h:[i,u("hours")],HH:[i,u("hours")],hh:[i,u("hours")],D:[i,u("day")],DD:[n,u("day")],Do:[a,function(g){var y=s.ordinal,v=g.match(/\d+/);if(this.day=v[0],y)for(var x=1;x<=31;x+=1)y(x).replace(/\[|\]/g,"")===g&&(this.day=x)}],w:[i,u("week")],ww:[n,u("week")],M:[i,u("month")],MM:[n,u("month")],MMM:[a,function(g){var y=f("months"),v=(f("monthsShort")||y.map((function(x){return x.slice(0,3)}))).indexOf(g)+1;if(v<1)throw new Error;this.month=v%12||v}],MMMM:[a,function(g){var y=f("months").indexOf(g)+1;if(y<1)throw new Error;this.month=y%12||y}],Y:[/[+-]?\d+/,u("year")],YY:[n,function(g){this.year=l(g)}],YYYY:[/\d{4}/,u("year")],Z:h,ZZ:h};function m(g){var y,v;y=g,v=s&&s.formats;for(var x=(g=y.replace(/(\[[^\]]+])|(LTS?|l{1,4}|L{1,4})/g,(function(A,L,I){var R=I&&I.toUpperCase();return L||v[I]||t[I]||v[R].replace(/(\[[^\]]+])|(MMMM|MM|DD|dddd)/g,(function(E,_,D){return _||D.slice(1)}))}))).match(e),b=x.length,T=0;T-1)return new Date((N==="X"?1e3:1)*O);var F=m(N)(O),V=F.year,$=F.month,U=F.day,j=F.hours,ee=F.minutes,q=F.seconds,oe=F.milliseconds,Q=F.zone,ue=F.week,te=new Date,re=U||(V||$?1:te.getDate()),J=V||te.getFullYear(),K=0;V&&!$||(K=$>0?$-1:te.getMonth());var ae,Z=j||0,de=ee||0,ne=q||0,Te=oe||0;return Q?new Date(Date.UTC(J,K,re,Z,de,ne,Te+60*Q.offset*1e3)):P?new Date(Date.UTC(J,K,re,Z,de,ne,Te)):(ae=new Date(J,K,re,Z,de,ne,Te),ue&&(ae=B(ae).week(ue).toDate()),ae)}catch{return new Date("")}})(S,C,w,v),this.init(),R&&R!==!0&&(this.$L=this.locale(R).$L),I&&S!=this.format(C)&&(this.$d=new Date("")),s={}}else if(C instanceof Array)for(var E=C.length,_=1;_<=E;_+=1){k[1]=C[_-1];var D=v.apply(this,k);if(D.isValid()){this.$d=D.$d,this.$L=D.$L,this.init();break}_===E&&(this.$d=new Date(""))}else b.call(this,T)}}}))});var qge=sa((bF,TF)=>{"use strict";(function(t,e){typeof bF=="object"&&typeof TF<"u"?TF.exports=e():typeof define=="function"&&define.amd?define(e):(t=typeof globalThis<"u"?globalThis:t||self).dayjs_plugin_advancedFormat=e()})(bF,(function(){"use strict";return function(t,e){var r=e.prototype,n=r.format;r.format=function(i){var a=this,s=this.$locale();if(!this.isValid())return n.bind(this)(i);var l=this.$utils(),u=(i||"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(h){switch(h){case"Q":return Math.ceil((a.$M+1)/3);case"Do":return s.ordinal(a.$D);case"gggg":return a.weekYear();case"GGGG":return a.isoWeekYear();case"wo":return s.ordinal(a.week(),"W");case"w":case"ww":return l.s(a.week(),h==="w"?1:2,"0");case"W":case"WW":return l.s(a.isoWeek(),h==="W"?1:2,"0");case"k":case"kk":return l.s(String(a.$H===0?24:a.$H),h==="k"?1:2,"0");case"X":return Math.floor(a.$d.getTime()/1e3);case"x":return a.$d.getTime();case"z":return"["+a.offsetName()+"]";case"zzz":return"["+a.offsetName("long")+"]";default:return h}}));return n.bind(this)(u)}}}))});function o1e(t,e,r){let n=!0;for(;n;)n=!1,r.forEach(function(i){let a="^\\s*"+i+"\\s*$",s=new RegExp(a);t[0].match(s)&&(e[i]=!0,t.shift(1),n=!0)})}var Xge,xo,jge,Kge,Qge,Wge,eu,SF,CF,AF,p4,m4,_F,DF,F6,ty,LF,Zge,RF,g4,NF,MF,$6,wF,ZKe,JKe,eQe,tQe,rQe,nQe,iQe,aQe,sQe,oQe,lQe,cQe,uQe,hQe,fQe,dQe,pQe,mQe,gQe,yQe,vQe,xQe,bQe,Jge,TQe,wQe,kQe,e1e,EQe,kF,t1e,r1e,P6,ey,SQe,CQe,EF,B6,Vi,n1e,AQe,a0,_Qe,Yge,DQe,i1e,LQe,a1e,RQe,NQe,s1e,l1e=M(()=>{"use strict";Xge=La(tm(),1),xo=La(j4(),1),jge=La(Uge(),1),Kge=La(Hge(),1),Qge=La(qge(),1);pt();Xt();tr();ci();xo.default.extend(jge.default);xo.default.extend(Kge.default);xo.default.extend(Qge.default);Wge={friday:5,saturday:6},eu="",SF="",AF="",p4=[],m4=[],_F=new Map,DF=[],F6=[],ty="",LF="",Zge=["active","done","crit","milestone","vert"],RF=[],g4=!1,NF=!1,MF="sunday",$6="saturday",wF=0,ZKe=o(function(){DF=[],F6=[],ty="",RF=[],P6=0,EF=void 0,B6=void 0,Vi=[],eu="",SF="",LF="",CF=void 0,AF="",p4=[],m4=[],g4=!1,NF=!1,wF=0,_F=new Map,Sr(),MF="sunday",$6="saturday"},"clear"),JKe=o(function(t){SF=t},"setAxisFormat"),eQe=o(function(){return SF},"getAxisFormat"),tQe=o(function(t){CF=t},"setTickInterval"),rQe=o(function(){return CF},"getTickInterval"),nQe=o(function(t){AF=t},"setTodayMarker"),iQe=o(function(){return AF},"getTodayMarker"),aQe=o(function(t){eu=t},"setDateFormat"),sQe=o(function(){g4=!0},"enableInclusiveEndDates"),oQe=o(function(){return g4},"endDatesAreInclusive"),lQe=o(function(){NF=!0},"enableTopAxis"),cQe=o(function(){return NF},"topAxisEnabled"),uQe=o(function(t){LF=t},"setDisplayMode"),hQe=o(function(){return LF},"getDisplayMode"),fQe=o(function(){return eu},"getDateFormat"),dQe=o(function(t){p4=t.toLowerCase().split(/[\s,]+/)},"setIncludes"),pQe=o(function(){return p4},"getIncludes"),mQe=o(function(t){m4=t.toLowerCase().split(/[\s,]+/)},"setExcludes"),gQe=o(function(){return m4},"getExcludes"),yQe=o(function(){return _F},"getLinks"),vQe=o(function(t){ty=t,DF.push(t)},"addSection"),xQe=o(function(){return DF},"getSections"),bQe=o(function(){let t=Yge(),e=10,r=0;for(;!t&&r{let u=l.trim();return u==="x"||u==="X"},"isTimestampFormat")(e)&&/^\d+$/.test(r))return new Date(Number(r));let a=/^after\s+(?[\d\w- ]+)/.exec(r);if(a!==null){let l=null;for(let h of a.groups.ids.split(" ")){let f=a0(h);f!==void 0&&(!l||f.endTime>l.endTime)&&(l=f)}if(l)return l.endTime;let u=new Date;return u.setHours(0,0,0,0),u}let s=(0,xo.default)(r,e.trim(),!0);if(s.isValid())return s.toDate();{X.debug("Invalid date:"+r),X.debug("With date format:"+e.trim());let l=new Date(r);if(l===void 0||isNaN(l.getTime())||l.getFullYear()<-1e4||l.getFullYear()>1e4)throw new Error("Invalid date:"+r);return l}},"getStartDate"),t1e=o(function(t){let e=/^(\d+(?:\.\d+)?)([Mdhmswy]|ms)$/.exec(t.trim());return e!==null?[Number.parseFloat(e[1]),e[2]]:[NaN,"ms"]},"parseDuration"),r1e=o(function(t,e,r,n=!1){r=r.trim();let a=/^until\s+(?[\d\w- ]+)/.exec(r);if(a!==null){let f=null;for(let p of a.groups.ids.split(" ")){let m=a0(p);m!==void 0&&(!f||m.startTime{window.open(r,"_self")}),_F.set(n,r))}),i1e(t,"clickable")},"setLink"),i1e=o(function(t,e){t.split(",").forEach(function(r){let n=a0(r);n!==void 0&&n.classes.push(e)})},"setClass"),LQe=o(function(t,e,r){if(ge().securityLevel!=="loose"||e===void 0)return;let n=[];if(typeof r=="string"){n=r.split(/,(?=(?:(?:[^"]*"){2})*[^"]*$)/);for(let a=0;a{qt.runFunc(e,...n)})},"setClickFun"),a1e=o(function(t,e){RF.push(function(){let r=document.querySelector(`[id="${t}"]`);r!==null&&r.addEventListener("click",function(){e()})},function(){let r=document.querySelector(`[id="${t}-text"]`);r!==null&&r.addEventListener("click",function(){e()})})},"pushFun"),RQe=o(function(t,e,r){t.split(",").forEach(function(n){LQe(n,e,r)}),i1e(t,"clickable")},"setClickEvent"),NQe=o(function(t){RF.forEach(function(e){e(t)})},"bindFunctions"),s1e={getConfig:o(()=>ge().gantt,"getConfig"),clear:ZKe,setDateFormat:aQe,getDateFormat:fQe,enableInclusiveEndDates:sQe,endDatesAreInclusive:oQe,enableTopAxis:lQe,topAxisEnabled:cQe,setAxisFormat:JKe,getAxisFormat:eQe,setTickInterval:tQe,getTickInterval:rQe,setTodayMarker:nQe,getTodayMarker:iQe,setAccTitle:Rr,getAccTitle:Mr,setDiagramTitle:$r,getDiagramTitle:Pr,setDisplayMode:uQe,getDisplayMode:hQe,setAccDescription:Ir,getAccDescription:Or,addSection:vQe,getSections:xQe,getTasks:bQe,addTask:AQe,findTaskById:a0,addTaskOrg:_Qe,setIncludes:dQe,getIncludes:pQe,setExcludes:mQe,getExcludes:gQe,setClickEvent:RQe,setLink:DQe,getLinks:yQe,bindFunctions:NQe,parseDuration:t1e,isInvalidDate:Jge,setWeekday:TQe,getWeekday:wQe,setWeekend:kQe};o(o1e,"getTaskTags")});var c1e=sa((IF,OF)=>{"use strict";(function(t,e){typeof IF=="object"&&typeof OF<"u"?OF.exports=e():typeof define=="function"&&define.amd?define(e):(t=typeof globalThis<"u"?globalThis:t||self).dayjs_plugin_duration=e()})(IF,(function(){"use strict";var t,e,r=1e3,n=6e4,i=36e5,a=864e5,s=/\[([^\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,l=31536e6,u=2628e6,h=/^(-|\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/,f={years:l,months:u,days:a,hours:i,minutes:n,seconds:r,milliseconds:1,weeks:6048e5},d=o(function(S){return S instanceof b},"c"),p=o(function(S,w,k){return new b(S,k,w.$l)},"f"),m=o(function(S){return e.p(S)+"s"},"m"),g=o(function(S){return S<0},"l"),y=o(function(S){return g(S)?Math.ceil(S):Math.floor(S)},"$"),v=o(function(S){return Math.abs(S)},"y"),x=o(function(S,w){return S?g(S)?{negative:!0,format:""+v(S)+w}:{negative:!1,format:""+S+w}:{negative:!1,format:""}},"v"),b=(function(){function S(k,C,A){var L=this;if(this.$d={},this.$l=A,k===void 0&&(this.$ms=0,this.parseFromMilliseconds()),C)return p(k*f[m(C)],this);if(typeof k=="number")return this.$ms=k,this.parseFromMilliseconds(),this;if(typeof k=="object")return Object.keys(k).forEach((function(E){L.$d[m(E)]=k[E]})),this.calMilliseconds(),this;if(typeof k=="string"){var I=k.match(h);if(I){var R=I.slice(2).map((function(E){return E!=null?Number(E):0}));return this.$d.years=R[0],this.$d.months=R[1],this.$d.weeks=R[2],this.$d.days=R[3],this.$d.hours=R[4],this.$d.minutes=R[5],this.$d.seconds=R[6],this.calMilliseconds(),this}}return this}o(S,"l");var w=S.prototype;return w.calMilliseconds=function(){var k=this;this.$ms=Object.keys(this.$d).reduce((function(C,A){return C+(k.$d[A]||0)*f[A]}),0)},w.parseFromMilliseconds=function(){var k=this.$ms;this.$d.years=y(k/l),k%=l,this.$d.months=y(k/u),k%=u,this.$d.days=y(k/a),k%=a,this.$d.hours=y(k/i),k%=i,this.$d.minutes=y(k/n),k%=n,this.$d.seconds=y(k/r),k%=r,this.$d.milliseconds=k},w.toISOString=function(){var k=x(this.$d.years,"Y"),C=x(this.$d.months,"M"),A=+this.$d.days||0;this.$d.weeks&&(A+=7*this.$d.weeks);var L=x(A,"D"),I=x(this.$d.hours,"H"),R=x(this.$d.minutes,"M"),E=this.$d.seconds||0;this.$d.milliseconds&&(E+=this.$d.milliseconds/1e3,E=Math.round(1e3*E)/1e3);var _=x(E,"S"),D=k.negative||C.negative||L.negative||I.negative||R.negative||_.negative,O=I.format||R.format||_.format?"T":"",N=(D?"-":"")+"P"+k.format+C.format+L.format+O+I.format+R.format+_.format;return N==="P"||N==="-P"?"P0D":N},w.toJSON=function(){return this.toISOString()},w.format=function(k){var C=k||"YYYY-MM-DDTHH:mm:ss",A={Y:this.$d.years,YY:e.s(this.$d.years,2,"0"),YYYY:e.s(this.$d.years,4,"0"),M:this.$d.months,MM:e.s(this.$d.months,2,"0"),D:this.$d.days,DD:e.s(this.$d.days,2,"0"),H:this.$d.hours,HH:e.s(this.$d.hours,2,"0"),m:this.$d.minutes,mm:e.s(this.$d.minutes,2,"0"),s:this.$d.seconds,ss:e.s(this.$d.seconds,2,"0"),SSS:e.s(this.$d.milliseconds,3,"0")};return C.replace(s,(function(L,I){return I||String(A[L])}))},w.as=function(k){return this.$ms/f[m(k)]},w.get=function(k){var C=this.$ms,A=m(k);return A==="milliseconds"?C%=1e3:C=A==="weeks"?y(C/f[A]):this.$d[A],C||0},w.add=function(k,C,A){var L;return L=C?k*f[m(C)]:d(k)?k.$ms:p(k,this).$ms,p(this.$ms+L*(A?-1:1),this)},w.subtract=function(k,C){return this.add(k,C,!0)},w.locale=function(k){var C=this.clone();return C.$l=k,C},w.clone=function(){return p(this.$ms,this)},w.humanize=function(k){return t().add(this.$ms,"ms").locale(this.$l).fromNow(!k)},w.valueOf=function(){return this.asMilliseconds()},w.milliseconds=function(){return this.get("milliseconds")},w.asMilliseconds=function(){return this.as("milliseconds")},w.seconds=function(){return this.get("seconds")},w.asSeconds=function(){return this.as("seconds")},w.minutes=function(){return this.get("minutes")},w.asMinutes=function(){return this.as("minutes")},w.hours=function(){return this.get("hours")},w.asHours=function(){return this.as("hours")},w.days=function(){return this.get("days")},w.asDays=function(){return this.as("days")},w.weeks=function(){return this.get("weeks")},w.asWeeks=function(){return this.as("weeks")},w.months=function(){return this.get("months")},w.asMonths=function(){return this.as("months")},w.years=function(){return this.get("years")},w.asYears=function(){return this.as("years")},S})(),T=o(function(S,w,k){return S.add(w.years()*k,"y").add(w.months()*k,"M").add(w.days()*k,"d").add(w.hours()*k,"h").add(w.minutes()*k,"m").add(w.seconds()*k,"s").add(w.milliseconds()*k,"ms")},"p");return function(S,w,k){t=k,e=k().$utils(),k.duration=function(L,I){var R=k.locale();return p(L,{$l:R},I)},k.isDuration=d;var C=w.prototype.add,A=w.prototype.subtract;w.prototype.add=function(L,I){return d(L)?T(this,L,1):C.bind(this)(L,I)},w.prototype.subtract=function(L,I){return d(L)?T(this,L,-1):A.bind(this)(L,I)}}}))});var ry,h1e,MQe,u1e,IQe,ah,PF,OQe,f1e,d1e=M(()=>{"use strict";ry=La(j4(),1),h1e=La(c1e(),1);pt();yr();gr();Xt();Ei();ry.default.extend(h1e.default);MQe=o(function(){X.debug("Something is calling, setConf, remove the call")},"setConf"),u1e={monday:Ih,tuesday:B5,wednesday:F5,thursday:fc,friday:$5,saturday:z5,sunday:wl},IQe=o((t,e)=>{let r=[...t].map(()=>-1/0),n=[...t].sort((a,s)=>a.startTime-s.startTime||a.order-s.order),i=0;for(let a of n)for(let s=0;s=r[s]){r[s]=a.endTime,a.order=s+e,s>i&&(i=s);break}return i},"getMaxIntersections"),PF=1e4,OQe=o(function(t,e,r,n){let i=ge().gantt,a=ge().securityLevel,s;a==="sandbox"&&(s=qe("#i"+e));let l=a==="sandbox"?qe(s.nodes()[0].contentDocument.body):qe("body"),u=a==="sandbox"?s.nodes()[0].contentDocument:document,h=u.getElementById(e);ah=h.parentElement.offsetWidth,ah===void 0&&(ah=1200),i.useWidth!==void 0&&(ah=i.useWidth);let f=n.db.getTasks(),d=[];for(let L of f)d.push(L.type);d=A(d);let p={},m=2*i.topPadding;if(n.db.getDisplayMode()==="compact"||i.displayMode==="compact"){let L={};for(let R of f)L[R.section]===void 0?L[R.section]=[R]:L[R.section].push(R);let I=0;for(let R of Object.keys(L)){let E=IQe(L[R],I)+1;I+=E,m+=E*(i.barHeight+i.barGap),p[R]=E}}else{m+=f.length*(i.barHeight+i.barGap);for(let L of d)p[L]=f.filter(I=>I.type===L).length}h.setAttribute("viewBox","0 0 "+ah+" "+m);let g=l.select(`[id="${e}"]`),y=U5().domain([X3(f,function(L){return L.startTime}),Y3(f,function(L){return L.endTime})]).rangeRound([0,ah-i.leftPadding-i.rightPadding]);function v(L,I){let R=L.startTime,E=I.startTime,_=0;return R>E?_=1:R$.vert===U.vert?0:$.vert?1:-1);let P=[...new Set(L.map($=>$.order))].map($=>L.find(U=>U.order===$));g.append("g").selectAll("rect").data(P).enter().append("rect").attr("x",0).attr("y",function($,U){return U=$.order,U*I+R-2}).attr("width",function(){return O-i.rightPadding/2}).attr("height",I).attr("class",function($){for(let[U,j]of d.entries())if($.type===j)return"section section"+U%i.numberSectionStyles;return"section section0"}).enter();let B=g.append("g").selectAll("rect").data(L).enter(),F=n.db.getLinks();if(B.append("rect").attr("id",function($){return $.id}).attr("rx",3).attr("ry",3).attr("x",function($){return $.milestone?y($.startTime)+E+.5*(y($.endTime)-y($.startTime))-.5*_:y($.startTime)+E}).attr("y",function($,U){return U=$.order,$.vert?i.gridLineStartPadding:U*I+R}).attr("width",function($){return $.milestone?_:$.vert?.08*_:y($.renderEndTime||$.endTime)-y($.startTime)}).attr("height",function($){return $.vert?f.length*(i.barHeight+i.barGap)+i.barHeight*2:_}).attr("transform-origin",function($,U){return U=$.order,(y($.startTime)+E+.5*(y($.endTime)-y($.startTime))).toString()+"px "+(U*I+R+.5*_).toString()+"px"}).attr("class",function($){let U="task",j="";$.classes.length>0&&(j=$.classes.join(" "));let ee=0;for(let[oe,Q]of d.entries())$.type===Q&&(ee=oe%i.numberSectionStyles);let q="";return $.active?$.crit?q+=" activeCrit":q=" active":$.done?$.crit?q=" doneCrit":q=" done":$.crit&&(q+=" crit"),q.length===0&&(q=" task"),$.milestone&&(q=" milestone "+q),$.vert&&(q=" vert "+q),q+=ee,q+=" "+j,U+q}),B.append("text").attr("id",function($){return $.id+"-text"}).text(function($){return $.task}).attr("font-size",i.fontSize).attr("x",function($){let U=y($.startTime),j=y($.renderEndTime||$.endTime);if($.milestone&&(U+=.5*(y($.endTime)-y($.startTime))-.5*_,j=U+_),$.vert)return y($.startTime)+E;let ee=this.getBBox().width;return ee>j-U?j+ee+1.5*i.leftPadding>O?U+E-5:j+E+5:(j-U)/2+U+E}).attr("y",function($,U){return $.vert?i.gridLineStartPadding+f.length*(i.barHeight+i.barGap)+60:(U=$.order,U*I+i.barHeight/2+(i.fontSize/2-2)+R)}).attr("text-height",_).attr("class",function($){let U=y($.startTime),j=y($.endTime);$.milestone&&(j=U+_);let ee=this.getBBox().width,q="";$.classes.length>0&&(q=$.classes.join(" "));let oe=0;for(let[ue,te]of d.entries())$.type===te&&(oe=ue%i.numberSectionStyles);let Q="";return $.active&&($.crit?Q="activeCritText"+oe:Q="activeText"+oe),$.done?$.crit?Q=Q+" doneCritText"+oe:Q=Q+" doneText"+oe:$.crit&&(Q=Q+" critText"+oe),$.milestone&&(Q+=" milestoneText"),$.vert&&(Q+=" vertText"),ee>j-U?j+ee+1.5*i.leftPadding>O?q+" taskTextOutsideLeft taskTextOutside"+oe+" "+Q:q+" taskTextOutsideRight taskTextOutside"+oe+" "+Q+" width-"+ee:q+" taskText taskText"+oe+" "+Q+" width-"+ee}),ge().securityLevel==="sandbox"){let $;$=qe("#i"+e);let U=$.nodes()[0].contentDocument;B.filter(function(j){return F.has(j.id)}).each(function(j){var ee=U.querySelector("#"+j.id),q=U.querySelector("#"+j.id+"-text");let oe=ee.parentNode;var Q=U.createElement("a");Q.setAttribute("xlink:href",F.get(j.id)),Q.setAttribute("target","_top"),oe.appendChild(Q),Q.appendChild(ee),Q.appendChild(q)})}}o(b,"drawRects");function T(L,I,R,E,_,D,O,N){if(O.length===0&&N.length===0)return;let P,B;for(let{startTime:ee,endTime:q}of D)(P===void 0||eeB)&&(B=q);if(!P||!B)return;if((0,ry.default)(B).diff((0,ry.default)(P),"year")>5){X.warn("The difference between the min and max time is more than 5 years. This will cause performance issues. Skipping drawing exclude days.");return}let F=n.db.getDateFormat(),V=[],$=null,U=(0,ry.default)(P);for(;U.valueOf()<=B;)n.db.isInvalidDate(U,F,O,N)?$?$.end=U:$={start:U,end:U}:$&&(V.push($),$=null),U=U.add(1,"d");g.append("g").selectAll("rect").data(V).enter().append("rect").attr("id",ee=>"exclude-"+ee.start.format("YYYY-MM-DD")).attr("x",ee=>y(ee.start.startOf("day"))+R).attr("y",i.gridLineStartPadding).attr("width",ee=>y(ee.end.endOf("day"))-y(ee.start.startOf("day"))).attr("height",_-I-i.gridLineStartPadding).attr("transform-origin",function(ee,q){return(y(ee.start)+R+.5*(y(ee.end)-y(ee.start))).toString()+"px "+(q*L+.5*_).toString()+"px"}).attr("class","exclude-range")}o(T,"drawExcludeDays");function S(L,I,R,E){if(R<=0||L>I)return 1/0;let _=I-L,D=ry.default.duration({[E??"day"]:R}).asMilliseconds();return D<=0?1/0:Math.ceil(_/D)}o(S,"getEstimatedTickCount");function w(L,I,R,E){let _=n.db.getDateFormat(),D=n.db.getAxisFormat(),O;D?O=D:_==="D"?O="%d":O=i.axisFormat??"%Y-%m-%d";let N=QA(y).tickSize(-E+I+i.gridLineStartPadding).tickFormat(Pd(O)),B=/^([1-9]\d*)(millisecond|second|minute|hour|day|week|month)$/.exec(n.db.getTickInterval()||i.tickInterval);if(B!==null){let F=parseInt(B[1],10);if(isNaN(F)||F<=0)X.warn(`Invalid tick interval value: "${B[1]}". Skipping custom tick interval.`);else{let V=B[2],$=n.db.getWeekday()||i.weekday,U=y.domain(),j=U[0],ee=U[1],q=S(j,ee,F,V);if(q>PF)X.warn(`The tick interval "${F}${V}" would generate ${q} ticks, which exceeds the maximum allowed (${PF}). This may indicate an invalid date or time range. Skipping custom tick interval.`);else switch(V){case"millisecond":N.ticks(uc.every(F));break;case"second":N.ticks(io.every(F));break;case"minute":N.ticks(ku.every(F));break;case"hour":N.ticks(Eu.every(F));break;case"day":N.ticks(Ro.every(F));break;case"week":N.ticks(u1e[$].every(F));break;case"month":N.ticks(Su.every(F));break}}}if(g.append("g").attr("class","grid").attr("transform","translate("+L+", "+(E-50)+")").call(N).selectAll("text").style("text-anchor","middle").attr("fill","#000").attr("stroke","none").attr("font-size",10).attr("dy","1em"),n.db.topAxisEnabled()||i.topAxis){let F=KA(y).tickSize(-E+I+i.gridLineStartPadding).tickFormat(Pd(O));if(B!==null){let V=parseInt(B[1],10);if(isNaN(V)||V<=0)X.warn(`Invalid tick interval value: "${B[1]}". Skipping custom tick interval.`);else{let $=B[2],U=n.db.getWeekday()||i.weekday,j=y.domain(),ee=j[0],q=j[1];if(S(ee,q,V,$)<=PF)switch($){case"millisecond":F.ticks(uc.every(V));break;case"second":F.ticks(io.every(V));break;case"minute":F.ticks(ku.every(V));break;case"hour":F.ticks(Eu.every(V));break;case"day":F.ticks(Ro.every(V));break;case"week":F.ticks(u1e[U].every(V));break;case"month":F.ticks(Su.every(V));break}}}g.append("g").attr("class","grid").attr("transform","translate("+L+", "+I+")").call(F).selectAll("text").style("text-anchor","middle").attr("fill","#000").attr("stroke","none").attr("font-size",10)}}o(w,"makeGrid");function k(L,I){let R=0,E=Object.keys(p).map(_=>[_,p[_]]);g.append("g").selectAll("text").data(E).enter().append(function(_){let D=_[0].split(tt.lineBreakRegex),O=-(D.length-1)/2,N=u.createElementNS("http://www.w3.org/2000/svg","text");N.setAttribute("dy",O+"em");for(let[P,B]of D.entries()){let F=u.createElementNS("http://www.w3.org/2000/svg","tspan");F.setAttribute("alignment-baseline","central"),F.setAttribute("x","10"),P>0&&F.setAttribute("dy","1em"),F.textContent=B,N.appendChild(F)}return N}).attr("x",10).attr("y",function(_,D){if(D>0)for(let O=0;O{"use strict";PQe=o(t=>` + .mermaid-main-font { + font-family: ${t.fontFamily}; + } + + .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: ${t.fontFamily}; + } + + + /* 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: ${t.fontFamily}; + } + + .taskTextOutsideRight { + fill: ${t.taskTextDarkColor}; + text-anchor: start; + font-family: ${t.fontFamily}; + } + + .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; + } + + .vert { + stroke: ${t.vertLineColor}; + } + + .vertText { + font-size: 15px; + text-anchor: middle; + fill: ${t.vertLineColor} !important; + } + + .activeCritText0, + .activeCritText1, + .activeCritText2, + .activeCritText3 { + fill: ${t.taskTextDarkColor} !important; + } + + .titleText { + text-anchor: middle; + font-size: 18px; + fill: ${t.titleColor||t.textColor}; + font-family: ${t.fontFamily}; + } +`,"getStyles"),p1e=PQe});var g1e={};dr(g1e,{diagram:()=>BQe});var BQe,y1e=M(()=>{"use strict";Vge();l1e();d1e();m1e();BQe={parser:Gge,db:s1e,renderer:f1e,styles:p1e}});var b1e,T1e=M(()=>{"use strict";Uf();pt();b1e={parse:o(async t=>{let e=await bs("info",t);X.debug(e)},"parse")}});var y4,BF=M(()=>{y4={name:"mermaid",version:"11.12.2",description:"Markdown-ish syntax for generating flowcharts, mindmaps, sequence diagrams, class diagrams, gantt charts, git graphs and more.",type:"module",module:"./dist/mermaid.core.mjs",types:"./dist/mermaid.d.ts",exports:{".":{types:"./dist/mermaid.d.ts",import:"./dist/mermaid.core.mjs",default:"./dist/mermaid.core.mjs"},"./*":"./*"},keywords:["diagram","markdown","flowchart","sequence diagram","gantt","class diagram","git graph","mindmap","packet diagram","c4 diagram","er diagram","pie chart","pie diagram","quadrant chart","requirement diagram","graph"],scripts:{clean:"rimraf dist",dev:"pnpm -w dev","docs:code":"typedoc src/defaultConfig.ts src/config.ts src/mermaid.ts && prettier --write ./src/docs/config/setup","docs:build":"rimraf ../../docs && pnpm docs:code && pnpm docs:spellcheck && tsx scripts/docs.cli.mts","docs:verify":"pnpm docs:code && pnpm docs:spellcheck && tsx scripts/docs.cli.mts --verify","docs:pre:vitepress":"pnpm --filter ./src/docs prefetch && rimraf src/vitepress && pnpm docs:code && tsx scripts/docs.cli.mts --vitepress && pnpm --filter ./src/vitepress install --no-frozen-lockfile --ignore-scripts","docs:build:vitepress":"pnpm docs:pre:vitepress && (cd src/vitepress && pnpm run build) && cpy --flat src/docs/landing/ ./src/vitepress/.vitepress/dist/landing","docs:dev":'pnpm docs:pre:vitepress && concurrently "pnpm --filter ./src/vitepress dev" "tsx scripts/docs.cli.mts --watch --vitepress"',"docs:dev:docker":'pnpm docs:pre:vitepress && concurrently "pnpm --filter ./src/vitepress dev:docker" "tsx scripts/docs.cli.mts --watch --vitepress"',"docs:serve":"pnpm docs:build:vitepress && vitepress serve src/vitepress","docs:spellcheck":'cspell "src/docs/**/*.md"',"docs:release-version":"tsx scripts/update-release-version.mts","docs:verify-version":"tsx scripts/update-release-version.mts --verify","types:build-config":"tsx scripts/create-types-from-json-schema.mts","types:verify-config":"tsx scripts/create-types-from-json-schema.mts --verify",checkCircle:"npx madge --circular ./src",prepublishOnly:"pnpm docs:verify-version"},repository:{type:"git",url:"https://github.com/mermaid-js/mermaid"},author:"Knut Sveidqvist",license:"MIT",standard:{ignore:["**/parser/*.js","dist/**/*.js","cypress/**/*.js"],globals:["page"]},dependencies:{"@braintree/sanitize-url":"^7.1.1","@iconify/utils":"^3.0.1","@mermaid-js/parser":"workspace:^","@types/d3":"^7.4.3",cytoscape:"^3.29.3","cytoscape-cose-bilkent":"^4.1.0","cytoscape-fcose":"^2.2.0",d3:"^7.9.0","d3-sankey":"^0.12.3","dagre-d3-es":"7.0.13",dayjs:"^1.11.18",dompurify:"^3.2.5",katex:"^0.16.22",khroma:"^2.1.0","lodash-es":"^4.17.21",marked:"^16.2.1",roughjs:"^4.6.6",stylis:"^4.3.6","ts-dedent":"^2.2.0",uuid:"^11.1.0"},devDependencies:{"@adobe/jsonschema2md":"^8.0.5","@iconify/types":"^2.0.0","@types/cytoscape":"^3.21.9","@types/cytoscape-fcose":"^2.2.4","@types/d3-sankey":"^0.12.4","@types/d3-scale":"^4.0.9","@types/d3-scale-chromatic":"^3.1.0","@types/d3-selection":"^3.0.11","@types/d3-shape":"^3.1.7","@types/jsdom":"^21.1.7","@types/katex":"^0.16.7","@types/lodash-es":"^4.17.12","@types/micromatch":"^4.0.9","@types/stylis":"^4.2.7","@types/uuid":"^10.0.0",ajv:"^8.17.1",canvas:"^3.1.2",chokidar:"3.6.0",concurrently:"^9.1.2","csstree-validator":"^4.0.1",globby:"^14.1.0",jison:"^0.4.18","js-base64":"^3.7.8",jsdom:"^26.1.0","json-schema-to-typescript":"^15.0.4",micromatch:"^4.0.8","path-browserify":"^1.0.1",prettier:"^3.5.3",remark:"^15.0.1","remark-frontmatter":"^5.0.0","remark-gfm":"^4.0.1",rimraf:"^6.0.1","start-server-and-test":"^2.0.13","type-fest":"^4.35.0",typedoc:"^0.28.12","typedoc-plugin-markdown":"^4.8.1",typescript:"~5.7.3","unist-util-flatmap":"^1.0.0","unist-util-visit":"^5.0.0",vitepress:"^1.6.4","vitepress-plugin-search":"1.0.4-alpha.22"},files:["dist/","README.md"],publishConfig:{access:"public"}}});var VQe,UQe,w1e,k1e=M(()=>{"use strict";BF();VQe={version:y4.version+""},UQe=o(()=>VQe.version,"getVersion"),w1e={getVersion:UQe}});var aa,tu=M(()=>{"use strict";yr();Xt();aa=o(t=>{let{securityLevel:e}=ge(),r=qe("body");if(e==="sandbox"){let a=qe(`#i${t}`).node()?.contentDocument??document;r=qe(a.body)}return r.select(`#${t}`)},"selectSvgElement")});var HQe,E1e,S1e=M(()=>{"use strict";pt();tu();Ei();HQe=o((t,e,r)=>{X.debug(`rendering info diagram +`+t);let n=aa(e);mn(n,100,400,!0),n.append("g").append("text").attr("x",100).attr("y",40).attr("class","version").attr("font-size",32).style("text-anchor","middle").text(`v${r}`)},"draw"),E1e={draw:HQe}});var C1e={};dr(C1e,{diagram:()=>qQe});var qQe,A1e=M(()=>{"use strict";T1e();k1e();S1e();qQe={parser:b1e,db:w1e,renderer:E1e}});var L1e,FF,z6,$F,XQe,jQe,KQe,QQe,ZQe,JQe,eZe,G6,zF=M(()=>{"use strict";pt();ci();Ra();L1e=ur.pie,FF={sections:new Map,showData:!1,config:L1e},z6=FF.sections,$F=FF.showData,XQe=structuredClone(L1e),jQe=o(()=>structuredClone(XQe),"getConfig"),KQe=o(()=>{z6=new Map,$F=FF.showData,Sr()},"clear"),QQe=o(({label:t,value:e})=>{if(e<0)throw new Error(`"${t}" has invalid value: ${e}. Negative values are not allowed in pie charts. All slice values must be >= 0.`);z6.has(t)||(z6.set(t,e),X.debug(`added new section: ${t}, with value: ${e}`))},"addSection"),ZQe=o(()=>z6,"getSections"),JQe=o(t=>{$F=t},"setShowData"),eZe=o(()=>$F,"getShowData"),G6={getConfig:jQe,clear:KQe,setDiagramTitle:$r,getDiagramTitle:Pr,setAccTitle:Rr,getAccTitle:Mr,setAccDescription:Ir,getAccDescription:Or,addSection:QQe,getSections:ZQe,setShowData:JQe,getShowData:eZe}});var tZe,R1e,N1e=M(()=>{"use strict";Uf();pt();r0();zF();tZe=o((t,e)=>{nl(t,e),e.setShowData(t.showData),t.sections.map(e.addSection)},"populateDb"),R1e={parse:o(async t=>{let e=await bs("pie",t);X.debug(e),tZe(e,G6)},"parse")}});var rZe,M1e,I1e=M(()=>{"use strict";rZe=o(t=>` + .pieCircle{ + stroke: ${t.pieStrokeColor}; + stroke-width : ${t.pieStrokeWidth}; + opacity : ${t.pieOpacity}; + } + .pieOuterCircle{ + stroke: ${t.pieOuterStrokeColor}; + stroke-width: ${t.pieOuterStrokeWidth}; + fill: none; + } + .pieTitleText { + text-anchor: middle; + font-size: ${t.pieTitleTextSize}; + fill: ${t.pieTitleTextColor}; + font-family: ${t.fontFamily}; + } + .slice { + font-family: ${t.fontFamily}; + fill: ${t.pieSectionTextColor}; + font-size:${t.pieSectionTextSize}; + // fill: white; + } + .legend text { + fill: ${t.pieLegendTextColor}; + font-family: ${t.fontFamily}; + font-size: ${t.pieLegendTextSize}; + } +`,"getStyles"),M1e=rZe});var nZe,iZe,O1e,P1e=M(()=>{"use strict";yr();Xt();pt();tu();Ei();tr();nZe=o(t=>{let e=[...t.values()].reduce((i,a)=>i+a,0),r=[...t.entries()].map(([i,a])=>({label:i,value:a})).filter(i=>i.value/e*100>=1).sort((i,a)=>a.value-i.value);return j5().value(i=>i.value)(r)},"createPieArcs"),iZe=o((t,e,r,n)=>{X.debug(`rendering pie chart +`+t);let i=n.db,a=ge(),s=Vn(i.getConfig(),a.pie),l=40,u=18,h=4,f=450,d=f,p=aa(e),m=p.append("g");m.attr("transform","translate("+d/2+","+f/2+")");let{themeVariables:g}=a,[y]=vc(g.pieOuterStrokeWidth);y??=2;let v=s.textPosition,x=Math.min(d,f)/2-l,b=Sl().innerRadius(0).outerRadius(x),T=Sl().innerRadius(x*v).outerRadius(x*v);m.append("circle").attr("cx",0).attr("cy",0).attr("r",x+y/2).attr("class","pieOuterCircle");let S=i.getSections(),w=nZe(S),k=[g.pie1,g.pie2,g.pie3,g.pie4,g.pie5,g.pie6,g.pie7,g.pie8,g.pie9,g.pie10,g.pie11,g.pie12],C=0;S.forEach(D=>{C+=D});let A=w.filter(D=>(D.data.value/C*100).toFixed(0)!=="0"),L=no(k);m.selectAll("mySlices").data(A).enter().append("path").attr("d",b).attr("fill",D=>L(D.data.label)).attr("class","pieCircle"),m.selectAll("mySlices").data(A).enter().append("text").text(D=>(D.data.value/C*100).toFixed(0)+"%").attr("transform",D=>"translate("+T.centroid(D)+")").style("text-anchor","middle").attr("class","slice"),m.append("text").text(i.getDiagramTitle()).attr("x",0).attr("y",-(f-50)/2).attr("class","pieTitleText");let I=[...S.entries()].map(([D,O])=>({label:D,value:O})),R=m.selectAll(".legend").data(I).enter().append("g").attr("class","legend").attr("transform",(D,O)=>{let N=u+h,P=N*I.length/2,B=12*u,F=O*N-P;return"translate("+B+","+F+")"});R.append("rect").attr("width",u).attr("height",u).style("fill",D=>L(D.label)).style("stroke",D=>L(D.label)),R.append("text").attr("x",u+h).attr("y",u-h).text(D=>i.getShowData()?`${D.label} [${D.value}]`:D.label);let E=Math.max(...R.selectAll("text").nodes().map(D=>D?.getBoundingClientRect().width??0)),_=d+l+u+h+E;p.attr("viewBox",`0 0 ${_} ${f}`),mn(p,f,_,s.useMaxWidth)},"draw"),O1e={draw:iZe}});var B1e={};dr(B1e,{diagram:()=>aZe});var aZe,F1e=M(()=>{"use strict";N1e();zF();I1e();P1e();aZe={parser:R1e,db:G6,renderer:O1e,styles:M1e}});var GF,z1e,G1e=M(()=>{"use strict";GF=(function(){var t=o(function(he,z,se,le){for(se=se||{},le=he.length;le--;se[he[le]]=z);return se},"o"),e=[1,3],r=[1,4],n=[1,5],i=[1,6],a=[1,7],s=[1,4,5,10,12,13,14,18,25,35,37,39,41,42,48,50,51,52,53,54,55,56,57,60,61,63,64,65,66,67],l=[1,4,5,10,12,13,14,18,25,28,35,37,39,41,42,48,50,51,52,53,54,55,56,57,60,61,63,64,65,66,67],u=[55,56,57],h=[2,36],f=[1,37],d=[1,36],p=[1,38],m=[1,35],g=[1,43],y=[1,41],v=[1,14],x=[1,23],b=[1,18],T=[1,19],S=[1,20],w=[1,21],k=[1,22],C=[1,24],A=[1,25],L=[1,26],I=[1,27],R=[1,28],E=[1,29],_=[1,32],D=[1,33],O=[1,34],N=[1,39],P=[1,40],B=[1,42],F=[1,44],V=[1,62],$=[1,61],U=[4,5,8,10,12,13,14,18,44,47,49,55,56,57,63,64,65,66,67],j=[1,65],ee=[1,66],q=[1,67],oe=[1,68],Q=[1,69],ue=[1,70],te=[1,71],re=[1,72],J=[1,73],K=[1,74],ae=[1,75],Z=[1,76],de=[4,5,6,7,8,9,10,11,12,13,14,15,18],ne=[1,90],Te=[1,91],W=[1,92],Ve=[1,99],pe=[1,93],Be=[1,96],Ye=[1,94],He=[1,95],Le=[1,97],Ie=[1,98],Ne=[1,102],Ce=[10,55,56,57],Fe=[4,5,6,8,10,11,13,17,18,19,20,55,56,57],fe={trace:o(function(){},"trace"),yy:{},symbols_:{error:2,idStringToken:3,ALPHA:4,NUM:5,NODE_STRING:6,DOWN:7,MINUS:8,DEFAULT:9,COMMA:10,COLON:11,AMP:12,BRKT:13,MULT:14,UNICODE_TEXT:15,styleComponent:16,UNIT:17,SPACE:18,STYLE:19,PCT:20,idString:21,style:22,stylesOpt:23,classDefStatement:24,CLASSDEF:25,start:26,eol:27,QUADRANT:28,document:29,line:30,statement:31,axisDetails:32,quadrantDetails:33,points:34,title:35,title_value:36,acc_title:37,acc_title_value:38,acc_descr:39,acc_descr_value:40,acc_descr_multiline_value:41,section:42,text:43,point_start:44,point_x:45,point_y:46,class_name:47,"X-AXIS":48,"AXIS-TEXT-DELIMITER":49,"Y-AXIS":50,QUADRANT_1:51,QUADRANT_2:52,QUADRANT_3:53,QUADRANT_4:54,NEWLINE:55,SEMI:56,EOF:57,alphaNumToken:58,textNoTagsToken:59,STR:60,MD_STR:61,alphaNum:62,PUNCTUATION:63,PLUS:64,EQUALS:65,DOT:66,UNDERSCORE:67,$accept:0,$end:1},terminals_:{2:"error",4:"ALPHA",5:"NUM",6:"NODE_STRING",7:"DOWN",8:"MINUS",9:"DEFAULT",10:"COMMA",11:"COLON",12:"AMP",13:"BRKT",14:"MULT",15:"UNICODE_TEXT",17:"UNIT",18:"SPACE",19:"STYLE",20:"PCT",25:"CLASSDEF",28:"QUADRANT",35:"title",36:"title_value",37:"acc_title",38:"acc_title_value",39:"acc_descr",40:"acc_descr_value",41:"acc_descr_multiline_value",42:"section",44:"point_start",45:"point_x",46:"point_y",47:"class_name",48:"X-AXIS",49:"AXIS-TEXT-DELIMITER",50:"Y-AXIS",51:"QUADRANT_1",52:"QUADRANT_2",53:"QUADRANT_3",54:"QUADRANT_4",55:"NEWLINE",56:"SEMI",57:"EOF",60:"STR",61:"MD_STR",63:"PUNCTUATION",64:"PLUS",65:"EQUALS",66:"DOT",67:"UNDERSCORE"},productions_:[0,[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[16,1],[16,1],[16,1],[16,1],[16,1],[16,1],[16,1],[16,1],[16,1],[16,1],[21,1],[21,2],[22,1],[22,2],[23,1],[23,3],[24,5],[26,2],[26,2],[26,2],[29,0],[29,2],[30,2],[31,0],[31,1],[31,2],[31,1],[31,1],[31,1],[31,2],[31,2],[31,2],[31,1],[31,1],[34,4],[34,5],[34,5],[34,6],[32,4],[32,3],[32,2],[32,4],[32,3],[32,2],[33,2],[33,2],[33,2],[33,2],[27,1],[27,1],[27,1],[43,1],[43,2],[43,1],[43,1],[62,1],[62,2],[58,1],[58,1],[58,1],[58,1],[58,1],[58,1],[58,1],[58,1],[58,1],[58,1],[58,1],[59,1],[59,1],[59,1]],performAction:o(function(z,se,le,ke,ve,ye,Re){var _e=ye.length-1;switch(ve){case 23:this.$=ye[_e];break;case 24:this.$=ye[_e-1]+""+ye[_e];break;case 26:this.$=ye[_e-1]+ye[_e];break;case 27:this.$=[ye[_e].trim()];break;case 28:ye[_e-2].push(ye[_e].trim()),this.$=ye[_e-2];break;case 29:this.$=ye[_e-4],ke.addClass(ye[_e-2],ye[_e]);break;case 37:this.$=[];break;case 42:this.$=ye[_e].trim(),ke.setDiagramTitle(this.$);break;case 43:this.$=ye[_e].trim(),ke.setAccTitle(this.$);break;case 44:case 45:this.$=ye[_e].trim(),ke.setAccDescription(this.$);break;case 46:ke.addSection(ye[_e].substr(8)),this.$=ye[_e].substr(8);break;case 47:ke.addPoint(ye[_e-3],"",ye[_e-1],ye[_e],[]);break;case 48:ke.addPoint(ye[_e-4],ye[_e-3],ye[_e-1],ye[_e],[]);break;case 49:ke.addPoint(ye[_e-4],"",ye[_e-2],ye[_e-1],ye[_e]);break;case 50:ke.addPoint(ye[_e-5],ye[_e-4],ye[_e-2],ye[_e-1],ye[_e]);break;case 51:ke.setXAxisLeftText(ye[_e-2]),ke.setXAxisRightText(ye[_e]);break;case 52:ye[_e-1].text+=" \u27F6 ",ke.setXAxisLeftText(ye[_e-1]);break;case 53:ke.setXAxisLeftText(ye[_e]);break;case 54:ke.setYAxisBottomText(ye[_e-2]),ke.setYAxisTopText(ye[_e]);break;case 55:ye[_e-1].text+=" \u27F6 ",ke.setYAxisBottomText(ye[_e-1]);break;case 56:ke.setYAxisBottomText(ye[_e]);break;case 57:ke.setQuadrant1Text(ye[_e]);break;case 58:ke.setQuadrant2Text(ye[_e]);break;case 59:ke.setQuadrant3Text(ye[_e]);break;case 60:ke.setQuadrant4Text(ye[_e]);break;case 64:this.$={text:ye[_e],type:"text"};break;case 65:this.$={text:ye[_e-1].text+""+ye[_e],type:ye[_e-1].type};break;case 66:this.$={text:ye[_e],type:"text"};break;case 67:this.$={text:ye[_e],type:"markdown"};break;case 68:this.$=ye[_e];break;case 69:this.$=ye[_e-1]+""+ye[_e];break}},"anonymous"),table:[{18:e,26:1,27:2,28:r,55:n,56:i,57:a},{1:[3]},{18:e,26:8,27:2,28:r,55:n,56:i,57:a},{18:e,26:9,27:2,28:r,55:n,56:i,57:a},t(s,[2,33],{29:10}),t(l,[2,61]),t(l,[2,62]),t(l,[2,63]),{1:[2,30]},{1:[2,31]},t(u,h,{30:11,31:12,24:13,32:15,33:16,34:17,43:30,58:31,1:[2,32],4:f,5:d,10:p,12:m,13:g,14:y,18:v,25:x,35:b,37:T,39:S,41:w,42:k,48:C,50:A,51:L,52:I,53:R,54:E,60:_,61:D,63:O,64:N,65:P,66:B,67:F}),t(s,[2,34]),{27:45,55:n,56:i,57:a},t(u,[2,37]),t(u,h,{24:13,32:15,33:16,34:17,43:30,58:31,31:46,4:f,5:d,10:p,12:m,13:g,14:y,18:v,25:x,35:b,37:T,39:S,41:w,42:k,48:C,50:A,51:L,52:I,53:R,54:E,60:_,61:D,63:O,64:N,65:P,66:B,67:F}),t(u,[2,39]),t(u,[2,40]),t(u,[2,41]),{36:[1,47]},{38:[1,48]},{40:[1,49]},t(u,[2,45]),t(u,[2,46]),{18:[1,50]},{4:f,5:d,10:p,12:m,13:g,14:y,43:51,58:31,60:_,61:D,63:O,64:N,65:P,66:B,67:F},{4:f,5:d,10:p,12:m,13:g,14:y,43:52,58:31,60:_,61:D,63:O,64:N,65:P,66:B,67:F},{4:f,5:d,10:p,12:m,13:g,14:y,43:53,58:31,60:_,61:D,63:O,64:N,65:P,66:B,67:F},{4:f,5:d,10:p,12:m,13:g,14:y,43:54,58:31,60:_,61:D,63:O,64:N,65:P,66:B,67:F},{4:f,5:d,10:p,12:m,13:g,14:y,43:55,58:31,60:_,61:D,63:O,64:N,65:P,66:B,67:F},{4:f,5:d,10:p,12:m,13:g,14:y,43:56,58:31,60:_,61:D,63:O,64:N,65:P,66:B,67:F},{4:f,5:d,8:V,10:p,12:m,13:g,14:y,18:$,44:[1,57],47:[1,58],58:60,59:59,63:O,64:N,65:P,66:B,67:F},t(U,[2,64]),t(U,[2,66]),t(U,[2,67]),t(U,[2,70]),t(U,[2,71]),t(U,[2,72]),t(U,[2,73]),t(U,[2,74]),t(U,[2,75]),t(U,[2,76]),t(U,[2,77]),t(U,[2,78]),t(U,[2,79]),t(U,[2,80]),t(s,[2,35]),t(u,[2,38]),t(u,[2,42]),t(u,[2,43]),t(u,[2,44]),{3:64,4:j,5:ee,6:q,7:oe,8:Q,9:ue,10:te,11:re,12:J,13:K,14:ae,15:Z,21:63},t(u,[2,53],{59:59,58:60,4:f,5:d,8:V,10:p,12:m,13:g,14:y,18:$,49:[1,77],63:O,64:N,65:P,66:B,67:F}),t(u,[2,56],{59:59,58:60,4:f,5:d,8:V,10:p,12:m,13:g,14:y,18:$,49:[1,78],63:O,64:N,65:P,66:B,67:F}),t(u,[2,57],{59:59,58:60,4:f,5:d,8:V,10:p,12:m,13:g,14:y,18:$,63:O,64:N,65:P,66:B,67:F}),t(u,[2,58],{59:59,58:60,4:f,5:d,8:V,10:p,12:m,13:g,14:y,18:$,63:O,64:N,65:P,66:B,67:F}),t(u,[2,59],{59:59,58:60,4:f,5:d,8:V,10:p,12:m,13:g,14:y,18:$,63:O,64:N,65:P,66:B,67:F}),t(u,[2,60],{59:59,58:60,4:f,5:d,8:V,10:p,12:m,13:g,14:y,18:$,63:O,64:N,65:P,66:B,67:F}),{45:[1,79]},{44:[1,80]},t(U,[2,65]),t(U,[2,81]),t(U,[2,82]),t(U,[2,83]),{3:82,4:j,5:ee,6:q,7:oe,8:Q,9:ue,10:te,11:re,12:J,13:K,14:ae,15:Z,18:[1,81]},t(de,[2,23]),t(de,[2,1]),t(de,[2,2]),t(de,[2,3]),t(de,[2,4]),t(de,[2,5]),t(de,[2,6]),t(de,[2,7]),t(de,[2,8]),t(de,[2,9]),t(de,[2,10]),t(de,[2,11]),t(de,[2,12]),t(u,[2,52],{58:31,43:83,4:f,5:d,10:p,12:m,13:g,14:y,60:_,61:D,63:O,64:N,65:P,66:B,67:F}),t(u,[2,55],{58:31,43:84,4:f,5:d,10:p,12:m,13:g,14:y,60:_,61:D,63:O,64:N,65:P,66:B,67:F}),{46:[1,85]},{45:[1,86]},{4:ne,5:Te,6:W,8:Ve,11:pe,13:Be,16:89,17:Ye,18:He,19:Le,20:Ie,22:88,23:87},t(de,[2,24]),t(u,[2,51],{59:59,58:60,4:f,5:d,8:V,10:p,12:m,13:g,14:y,18:$,63:O,64:N,65:P,66:B,67:F}),t(u,[2,54],{59:59,58:60,4:f,5:d,8:V,10:p,12:m,13:g,14:y,18:$,63:O,64:N,65:P,66:B,67:F}),t(u,[2,47],{22:88,16:89,23:100,4:ne,5:Te,6:W,8:Ve,11:pe,13:Be,17:Ye,18:He,19:Le,20:Ie}),{46:[1,101]},t(u,[2,29],{10:Ne}),t(Ce,[2,27],{16:103,4:ne,5:Te,6:W,8:Ve,11:pe,13:Be,17:Ye,18:He,19:Le,20:Ie}),t(Fe,[2,25]),t(Fe,[2,13]),t(Fe,[2,14]),t(Fe,[2,15]),t(Fe,[2,16]),t(Fe,[2,17]),t(Fe,[2,18]),t(Fe,[2,19]),t(Fe,[2,20]),t(Fe,[2,21]),t(Fe,[2,22]),t(u,[2,49],{10:Ne}),t(u,[2,48],{22:88,16:89,23:104,4:ne,5:Te,6:W,8:Ve,11:pe,13:Be,17:Ye,18:He,19:Le,20:Ie}),{4:ne,5:Te,6:W,8:Ve,11:pe,13:Be,16:89,17:Ye,18:He,19:Le,20:Ie,22:105},t(Fe,[2,26]),t(u,[2,50],{10:Ne}),t(Ce,[2,28],{16:103,4:ne,5:Te,6:W,8:Ve,11:pe,13:Be,17:Ye,18:He,19:Le,20:Ie})],defaultActions:{8:[2,30],9:[2,31]},parseError:o(function(z,se){if(se.recoverable)this.trace(z);else{var le=new Error(z);throw le.hash=se,le}},"parseError"),parse:o(function(z){var se=this,le=[0],ke=[],ve=[null],ye=[],Re=this.table,_e="",ze=0,Ke=0,xt=0,We=2,Oe=1,et=ye.slice.call(arguments,1),Ue=Object.create(this.lexer),lt={yy:{}};for(var Gt in this.yy)Object.prototype.hasOwnProperty.call(this.yy,Gt)&&(lt.yy[Gt]=this.yy[Gt]);Ue.setInput(z,lt.yy),lt.yy.lexer=Ue,lt.yy.parser=this,typeof Ue.yylloc>"u"&&(Ue.yylloc={});var vt=Ue.yylloc;ye.push(vt);var Lt=Ue.options&&Ue.options.ranges;typeof lt.yy.parseError=="function"?this.parseError=lt.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function dt(Se){le.length=le.length-2*Se,ve.length=ve.length-Se,ye.length=ye.length-Se}o(dt,"popStack");function nt(){var Se;return Se=ke.pop()||Ue.lex()||Oe,typeof Se!="number"&&(Se instanceof Array&&(ke=Se,Se=ke.pop()),Se=se.symbols_[Se]||Se),Se}o(nt,"lex");for(var bt,wt,yt,ft,Ur,_t,bn={},Br,cr,ar,_r;;){if(yt=le[le.length-1],this.defaultActions[yt]?ft=this.defaultActions[yt]:((bt===null||typeof bt>"u")&&(bt=nt()),ft=Re[yt]&&Re[yt][bt]),typeof ft>"u"||!ft.length||!ft[0]){var Ct="";_r=[];for(Br in Re[yt])this.terminals_[Br]&&Br>We&&_r.push("'"+this.terminals_[Br]+"'");Ue.showPosition?Ct="Parse error on line "+(ze+1)+`: +`+Ue.showPosition()+` +Expecting `+_r.join(", ")+", got '"+(this.terminals_[bt]||bt)+"'":Ct="Parse error on line "+(ze+1)+": Unexpected "+(bt==Oe?"end of input":"'"+(this.terminals_[bt]||bt)+"'"),this.parseError(Ct,{text:Ue.match,token:this.terminals_[bt]||bt,line:Ue.yylineno,loc:vt,expected:_r})}if(ft[0]instanceof Array&&ft.length>1)throw new Error("Parse Error: multiple actions possible at state: "+yt+", token: "+bt);switch(ft[0]){case 1:le.push(bt),ve.push(Ue.yytext),ye.push(Ue.yylloc),le.push(ft[1]),bt=null,wt?(bt=wt,wt=null):(Ke=Ue.yyleng,_e=Ue.yytext,ze=Ue.yylineno,vt=Ue.yylloc,xt>0&&xt--);break;case 2:if(cr=this.productions_[ft[1]][1],bn.$=ve[ve.length-cr],bn._$={first_line:ye[ye.length-(cr||1)].first_line,last_line:ye[ye.length-1].last_line,first_column:ye[ye.length-(cr||1)].first_column,last_column:ye[ye.length-1].last_column},Lt&&(bn._$.range=[ye[ye.length-(cr||1)].range[0],ye[ye.length-1].range[1]]),_t=this.performAction.apply(bn,[_e,Ke,ze,lt.yy,ft[1],ve,ye].concat(et)),typeof _t<"u")return _t;cr&&(le=le.slice(0,-1*cr*2),ve=ve.slice(0,-1*cr),ye=ye.slice(0,-1*cr)),le.push(this.productions_[ft[1]][0]),ve.push(bn.$),ye.push(bn._$),ar=Re[le[le.length-2]][le[le.length-1]],le.push(ar);break;case 3:return!0}}return!0},"parse")},xe=(function(){var he={EOF:1,parseError:o(function(se,le){if(this.yy.parser)this.yy.parser.parseError(se,le);else throw new Error(se)},"parseError"),setInput:o(function(z,se){return this.yy=se||this.yy||{},this._input=z,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},"setInput"),input:o(function(){var z=this._input[0];this.yytext+=z,this.yyleng++,this.offset++,this.match+=z,this.matched+=z;var se=z.match(/(?:\r\n?|\n).*/g);return se?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),z},"input"),unput:o(function(z){var se=z.length,le=z.split(/(?:\r\n?|\n)/g);this._input=z+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-se),this.offset-=se;var ke=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),le.length-1&&(this.yylineno-=le.length-1);var ve=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:le?(le.length===ke.length?this.yylloc.first_column:0)+ke[ke.length-le.length].length-le[0].length:this.yylloc.first_column-se},this.options.ranges&&(this.yylloc.range=[ve[0],ve[0]+this.yyleng-se]),this.yyleng=this.yytext.length,this},"unput"),more:o(function(){return this._more=!0,this},"more"),reject:o(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},"reject"),less:o(function(z){this.unput(this.match.slice(z))},"less"),pastInput:o(function(){var z=this.matched.substr(0,this.matched.length-this.match.length);return(z.length>20?"...":"")+z.substr(-20).replace(/\n/g,"")},"pastInput"),upcomingInput:o(function(){var z=this.match;return z.length<20&&(z+=this._input.substr(0,20-z.length)),(z.substr(0,20)+(z.length>20?"...":"")).replace(/\n/g,"")},"upcomingInput"),showPosition:o(function(){var z=this.pastInput(),se=new Array(z.length+1).join("-");return z+this.upcomingInput()+` +`+se+"^"},"showPosition"),test_match:o(function(z,se){var le,ke,ve;if(this.options.backtrack_lexer&&(ve={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&&(ve.yylloc.range=this.yylloc.range.slice(0))),ke=z[0].match(/(?:\r\n?|\n).*/g),ke&&(this.yylineno+=ke.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:ke?ke[ke.length-1].length-ke[ke.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+z[0].length},this.yytext+=z[0],this.match+=z[0],this.matches=z,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(z[0].length),this.matched+=z[0],le=this.performAction.call(this,this.yy,this,se,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),le)return le;if(this._backtrack){for(var ye in ve)this[ye]=ve[ye];return!1}return!1},"test_match"),next:o(function(){if(this.done)return this.EOF;this._input||(this.done=!0);var z,se,le,ke;this._more||(this.yytext="",this.match="");for(var ve=this._currentRules(),ye=0;yese[0].length)){if(se=le,ke=ye,this.options.backtrack_lexer){if(z=this.test_match(le,ve[ye]),z!==!1)return z;if(this._backtrack){se=!1;continue}else return!1}else if(!this.options.flex)break}return se?(z=this.test_match(se,ve[ke]),z!==!1?z:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text. +`+this.showPosition(),{text:"",token:null,line:this.yylineno})},"next"),lex:o(function(){var se=this.next();return se||this.lex()},"lex"),begin:o(function(se){this.conditionStack.push(se)},"begin"),popState:o(function(){var se=this.conditionStack.length-1;return se>0?this.conditionStack.pop():this.conditionStack[0]},"popState"),_currentRules:o(function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},"_currentRules"),topState:o(function(se){return se=this.conditionStack.length-1-Math.abs(se||0),se>=0?this.conditionStack[se]:"INITIAL"},"topState"),pushState:o(function(se){this.begin(se)},"pushState"),stateStackSize:o(function(){return this.conditionStack.length},"stateStackSize"),options:{"case-insensitive":!0},performAction:o(function(se,le,ke,ve){var ye=ve;switch(ke){case 0:break;case 1:break;case 2:return 55;case 3:break;case 4:return this.begin("title"),35;break;case 5:return this.popState(),"title_value";break;case 6:return this.begin("acc_title"),37;break;case 7:return this.popState(),"acc_title_value";break;case 8:return this.begin("acc_descr"),39;break;case 9:return this.popState(),"acc_descr_value";break;case 10:this.begin("acc_descr_multiline");break;case 11:this.popState();break;case 12:return"acc_descr_multiline_value";case 13:return 48;case 14:return 50;case 15:return 49;case 16:return 51;case 17:return 52;case 18:return 53;case 19:return 54;case 20:return 25;case 21:this.begin("md_string");break;case 22:return"MD_STR";case 23:this.popState();break;case 24:this.begin("string");break;case 25:this.popState();break;case 26:return"STR";case 27:this.begin("class_name");break;case 28:return this.popState(),47;break;case 29:return this.begin("point_start"),44;break;case 30:return this.begin("point_x"),45;break;case 31:this.popState();break;case 32:this.popState(),this.begin("point_y");break;case 33:return this.popState(),46;break;case 34:return 28;case 35:return 4;case 36:return 11;case 37:return 64;case 38:return 10;case 39:return 65;case 40:return 65;case 41:return 14;case 42:return 13;case 43:return 67;case 44:return 66;case 45:return 12;case 46:return 8;case 47:return 5;case 48:return 18;case 49:return 56;case 50:return 63;case 51:return 57}},"anonymous"),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,/^(?:classDef\b)/i,/^(?:["][`])/i,/^(?:[^`"]+)/i,/^(?:[`]["])/i,/^(?:["])/i,/^(?:["])/i,/^(?:[^"]*)/i,/^(?::::)/i,/^(?:^\w+)/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:{class_name:{rules:[28],inclusive:!1},point_y:{rules:[33],inclusive:!1},point_x:{rules:[32],inclusive:!1},point_start:{rules:[30,31],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:[22,23],inclusive:!1},string:{rules:[25,26],inclusive:!1},INITIAL:{rules:[0,1,2,3,4,6,8,10,13,14,15,16,17,18,19,20,21,24,27,29,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51],inclusive:!0}}};return he})();fe.lexer=xe;function Y(){this.yy={}}return o(Y,"Parser"),Y.prototype=fe,fe.Parser=Y,new Y})();GF.parser=GF;z1e=GF});var Ts,V6,V1e=M(()=>{"use strict";yr();Ra();pt();Py();Ts=mh(),V6=class{constructor(){this.classes=new Map;this.config=this.getDefaultConfig(),this.themeConfig=this.getDefaultThemeConfig(),this.data=this.getDefaultData()}static{o(this,"QuadrantBuilder")}getDefaultData(){return{titleText:"",quadrant1Text:"",quadrant2Text:"",quadrant3Text:"",quadrant4Text:"",xAxisLeftText:"",xAxisRightText:"",yAxisBottomText:"",yAxisTopText:"",points:[]}}getDefaultConfig(){return{showXAxis:!0,showYAxis:!0,showTitle:!0,chartHeight:ur.quadrantChart?.chartWidth||500,chartWidth:ur.quadrantChart?.chartHeight||500,titlePadding:ur.quadrantChart?.titlePadding||10,titleFontSize:ur.quadrantChart?.titleFontSize||20,quadrantPadding:ur.quadrantChart?.quadrantPadding||5,xAxisLabelPadding:ur.quadrantChart?.xAxisLabelPadding||5,yAxisLabelPadding:ur.quadrantChart?.yAxisLabelPadding||5,xAxisLabelFontSize:ur.quadrantChart?.xAxisLabelFontSize||16,yAxisLabelFontSize:ur.quadrantChart?.yAxisLabelFontSize||16,quadrantLabelFontSize:ur.quadrantChart?.quadrantLabelFontSize||16,quadrantTextTopPadding:ur.quadrantChart?.quadrantTextTopPadding||5,pointTextPadding:ur.quadrantChart?.pointTextPadding||5,pointLabelFontSize:ur.quadrantChart?.pointLabelFontSize||12,pointRadius:ur.quadrantChart?.pointRadius||5,xAxisPosition:ur.quadrantChart?.xAxisPosition||"top",yAxisPosition:ur.quadrantChart?.yAxisPosition||"left",quadrantInternalBorderStrokeWidth:ur.quadrantChart?.quadrantInternalBorderStrokeWidth||1,quadrantExternalBorderStrokeWidth:ur.quadrantChart?.quadrantExternalBorderStrokeWidth||2}}getDefaultThemeConfig(){return{quadrant1Fill:Ts.quadrant1Fill,quadrant2Fill:Ts.quadrant2Fill,quadrant3Fill:Ts.quadrant3Fill,quadrant4Fill:Ts.quadrant4Fill,quadrant1TextFill:Ts.quadrant1TextFill,quadrant2TextFill:Ts.quadrant2TextFill,quadrant3TextFill:Ts.quadrant3TextFill,quadrant4TextFill:Ts.quadrant4TextFill,quadrantPointFill:Ts.quadrantPointFill,quadrantPointTextFill:Ts.quadrantPointTextFill,quadrantXAxisTextFill:Ts.quadrantXAxisTextFill,quadrantYAxisTextFill:Ts.quadrantYAxisTextFill,quadrantTitleFill:Ts.quadrantTitleFill,quadrantInternalBorderStrokeFill:Ts.quadrantInternalBorderStrokeFill,quadrantExternalBorderStrokeFill:Ts.quadrantExternalBorderStrokeFill}}clear(){this.config=this.getDefaultConfig(),this.themeConfig=this.getDefaultThemeConfig(),this.data=this.getDefaultData(),this.classes=new Map,X.info("clear called")}setData(e){this.data={...this.data,...e}}addPoints(e){this.data.points=[...e,...this.data.points]}addClass(e,r){this.classes.set(e,r)}setConfig(e){X.trace("setConfig called with: ",e),this.config={...this.config,...e}}setThemeConfig(e){X.trace("setThemeConfig called with: ",e),this.themeConfig={...this.themeConfig,...e}}calculateSpace(e,r,n,i){let a=this.config.xAxisLabelPadding*2+this.config.xAxisLabelFontSize,s={top:e==="top"&&r?a:0,bottom:e==="bottom"&&r?a:0},l=this.config.yAxisLabelPadding*2+this.config.yAxisLabelFontSize,u={left:this.config.yAxisPosition==="left"&&n?l:0,right:this.config.yAxisPosition==="right"&&n?l:0},h=this.config.titleFontSize+this.config.titlePadding*2,f={top:i?h:0},d=this.config.quadrantPadding+u.left,p=this.config.quadrantPadding+s.top+f.top,m=this.config.chartWidth-this.config.quadrantPadding*2-u.left-u.right,g=this.config.chartHeight-this.config.quadrantPadding*2-s.top-s.bottom-f.top,y=m/2,v=g/2;return{xAxisSpace:s,yAxisSpace:u,titleSpace:f,quadrantSpace:{quadrantLeft:d,quadrantTop:p,quadrantWidth:m,quadrantHalfWidth:y,quadrantHeight:g,quadrantHalfHeight:v}}}getAxisLabels(e,r,n,i){let{quadrantSpace:a,titleSpace:s}=i,{quadrantHalfHeight:l,quadrantHeight:u,quadrantLeft:h,quadrantHalfWidth:f,quadrantTop:d,quadrantWidth:p}=a,m=!!this.data.xAxisRightText,g=!!this.data.yAxisTopText,y=[];return this.data.xAxisLeftText&&r&&y.push({text:this.data.xAxisLeftText,fill:this.themeConfig.quadrantXAxisTextFill,x:h+(m?f/2:0),y:e==="top"?this.config.xAxisLabelPadding+s.top:this.config.xAxisLabelPadding+d+u+this.config.quadrantPadding,fontSize:this.config.xAxisLabelFontSize,verticalPos:m?"center":"left",horizontalPos:"top",rotation:0}),this.data.xAxisRightText&&r&&y.push({text:this.data.xAxisRightText,fill:this.themeConfig.quadrantXAxisTextFill,x:h+f+(m?f/2:0),y:e==="top"?this.config.xAxisLabelPadding+s.top:this.config.xAxisLabelPadding+d+u+this.config.quadrantPadding,fontSize:this.config.xAxisLabelFontSize,verticalPos:m?"center":"left",horizontalPos:"top",rotation:0}),this.data.yAxisBottomText&&n&&y.push({text:this.data.yAxisBottomText,fill:this.themeConfig.quadrantYAxisTextFill,x:this.config.yAxisPosition==="left"?this.config.yAxisLabelPadding:this.config.yAxisLabelPadding+h+p+this.config.quadrantPadding,y:d+u-(g?l/2:0),fontSize:this.config.yAxisLabelFontSize,verticalPos:g?"center":"left",horizontalPos:"top",rotation:-90}),this.data.yAxisTopText&&n&&y.push({text:this.data.yAxisTopText,fill:this.themeConfig.quadrantYAxisTextFill,x:this.config.yAxisPosition==="left"?this.config.yAxisLabelPadding:this.config.yAxisLabelPadding+h+p+this.config.quadrantPadding,y:d+l-(g?l/2:0),fontSize:this.config.yAxisLabelFontSize,verticalPos:g?"center":"left",horizontalPos:"top",rotation:-90}),y}getQuadrants(e){let{quadrantSpace:r}=e,{quadrantHalfHeight:n,quadrantLeft:i,quadrantHalfWidth:a,quadrantTop:s}=r,l=[{text:{text:this.data.quadrant1Text,fill:this.themeConfig.quadrant1TextFill,x:0,y:0,fontSize:this.config.quadrantLabelFontSize,verticalPos:"center",horizontalPos:"middle",rotation:0},x:i+a,y:s,width:a,height:n,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:i,y:s,width:a,height:n,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:i,y:s+n,width:a,height:n,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:i+a,y:s+n,width:a,height:n,fill:this.themeConfig.quadrant4Fill}];for(let u of l)u.text.x=u.x+u.width/2,this.data.points.length===0?(u.text.y=u.y+u.height/2,u.text.horizontalPos="middle"):(u.text.y=u.y+this.config.quadrantTextTopPadding,u.text.horizontalPos="top");return l}getQuadrantPoints(e){let{quadrantSpace:r}=e,{quadrantHeight:n,quadrantLeft:i,quadrantTop:a,quadrantWidth:s}=r,l=Tl().domain([0,1]).range([i,s+i]),u=Tl().domain([0,1]).range([n+a,a]);return this.data.points.map(f=>{let d=this.classes.get(f.className);return d&&(f={...d,...f}),{x:l(f.x),y:u(f.y),fill:f.color??this.themeConfig.quadrantPointFill,radius:f.radius??this.config.pointRadius,text:{text:f.text,fill:this.themeConfig.quadrantPointTextFill,x:l(f.x),y:u(f.y)+this.config.pointTextPadding,verticalPos:"center",horizontalPos:"top",fontSize:this.config.pointLabelFontSize,rotation:0},strokeColor:f.strokeColor??this.themeConfig.quadrantPointFill,strokeWidth:f.strokeWidth??"0px"}})}getBorders(e){let r=this.config.quadrantExternalBorderStrokeWidth/2,{quadrantSpace:n}=e,{quadrantHalfHeight:i,quadrantHeight:a,quadrantLeft:s,quadrantHalfWidth:l,quadrantTop:u,quadrantWidth:h}=n;return[{strokeFill:this.themeConfig.quadrantExternalBorderStrokeFill,strokeWidth:this.config.quadrantExternalBorderStrokeWidth,x1:s-r,y1:u,x2:s+h+r,y2:u},{strokeFill:this.themeConfig.quadrantExternalBorderStrokeFill,strokeWidth:this.config.quadrantExternalBorderStrokeWidth,x1:s+h,y1:u+r,x2:s+h,y2:u+a-r},{strokeFill:this.themeConfig.quadrantExternalBorderStrokeFill,strokeWidth:this.config.quadrantExternalBorderStrokeWidth,x1:s-r,y1:u+a,x2:s+h+r,y2:u+a},{strokeFill:this.themeConfig.quadrantExternalBorderStrokeFill,strokeWidth:this.config.quadrantExternalBorderStrokeWidth,x1:s,y1:u+r,x2:s,y2:u+a-r},{strokeFill:this.themeConfig.quadrantInternalBorderStrokeFill,strokeWidth:this.config.quadrantInternalBorderStrokeWidth,x1:s+l,y1:u+r,x2:s+l,y2:u+a-r},{strokeFill:this.themeConfig.quadrantInternalBorderStrokeFill,strokeWidth:this.config.quadrantInternalBorderStrokeWidth,x1:s+r,y1:u+i,x2:s+h-r,y2:u+i}]}getTitle(e){if(e)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(){let e=this.config.showXAxis&&!!(this.data.xAxisLeftText||this.data.xAxisRightText),r=this.config.showYAxis&&!!(this.data.yAxisTopText||this.data.yAxisBottomText),n=this.config.showTitle&&!!this.data.titleText,i=this.data.points.length>0?"bottom":this.config.xAxisPosition,a=this.calculateSpace(i,e,r,n);return{points:this.getQuadrantPoints(a),quadrants:this.getQuadrants(a),axisLabels:this.getAxisLabels(i,e,r,a),borderLines:this.getBorders(a),title:this.getTitle(n)}}}});function VF(t){return!/^#?([\dA-Fa-f]{6}|[\dA-Fa-f]{3})$/.test(t)}function U1e(t){return!/^\d+$/.test(t)}function H1e(t){return!/^\d+px$/.test(t)}var s0,q1e=M(()=>{"use strict";s0=class extends Error{static{o(this,"InvalidStyleError")}constructor(e,r,n){super(`value for ${e} ${r} is invalid, please use a valid ${n}`),this.name="InvalidStyleError"}};o(VF,"validateHexCode");o(U1e,"validateNumber");o(H1e,"validateSizeInPixels")});function sh(t){return sr(t.trim(),lZe)}function cZe(t){Aa.setData({quadrant1Text:sh(t.text)})}function uZe(t){Aa.setData({quadrant2Text:sh(t.text)})}function hZe(t){Aa.setData({quadrant3Text:sh(t.text)})}function fZe(t){Aa.setData({quadrant4Text:sh(t.text)})}function dZe(t){Aa.setData({xAxisLeftText:sh(t.text)})}function pZe(t){Aa.setData({xAxisRightText:sh(t.text)})}function mZe(t){Aa.setData({yAxisTopText:sh(t.text)})}function gZe(t){Aa.setData({yAxisBottomText:sh(t.text)})}function UF(t){let e={};for(let r of t){let[n,i]=r.trim().split(/\s*:\s*/);if(n==="radius"){if(U1e(i))throw new s0(n,i,"number");e.radius=parseInt(i)}else if(n==="color"){if(VF(i))throw new s0(n,i,"hex code");e.color=i}else if(n==="stroke-color"){if(VF(i))throw new s0(n,i,"hex code");e.strokeColor=i}else if(n==="stroke-width"){if(H1e(i))throw new s0(n,i,"number of pixels (eg. 10px)");e.strokeWidth=i}else throw new Error(`style named ${n} is not supported.`)}return e}function yZe(t,e,r,n,i){let a=UF(i);Aa.addPoints([{x:r,y:n,text:sh(t.text),className:e,...a}])}function vZe(t,e){Aa.addClass(t,UF(e))}function xZe(t){Aa.setConfig({chartWidth:t})}function bZe(t){Aa.setConfig({chartHeight:t})}function TZe(){let t=ge(),{themeVariables:e,quadrantChart:r}=t;return r&&Aa.setConfig(r),Aa.setThemeConfig({quadrant1Fill:e.quadrant1Fill,quadrant2Fill:e.quadrant2Fill,quadrant3Fill:e.quadrant3Fill,quadrant4Fill:e.quadrant4Fill,quadrant1TextFill:e.quadrant1TextFill,quadrant2TextFill:e.quadrant2TextFill,quadrant3TextFill:e.quadrant3TextFill,quadrant4TextFill:e.quadrant4TextFill,quadrantPointFill:e.quadrantPointFill,quadrantPointTextFill:e.quadrantPointTextFill,quadrantXAxisTextFill:e.quadrantXAxisTextFill,quadrantYAxisTextFill:e.quadrantYAxisTextFill,quadrantExternalBorderStrokeFill:e.quadrantExternalBorderStrokeFill,quadrantInternalBorderStrokeFill:e.quadrantInternalBorderStrokeFill,quadrantTitleFill:e.quadrantTitleFill}),Aa.setData({titleText:Pr()}),Aa.build()}var lZe,Aa,wZe,W1e,Y1e=M(()=>{"use strict";Xt();gr();ci();V1e();q1e();lZe=ge();o(sh,"textSanitizer");Aa=new V6;o(cZe,"setQuadrant1Text");o(uZe,"setQuadrant2Text");o(hZe,"setQuadrant3Text");o(fZe,"setQuadrant4Text");o(dZe,"setXAxisLeftText");o(pZe,"setXAxisRightText");o(mZe,"setYAxisTopText");o(gZe,"setYAxisBottomText");o(UF,"parseStyles");o(yZe,"addPoint");o(vZe,"addClass");o(xZe,"setWidth");o(bZe,"setHeight");o(TZe,"getQuadrantData");wZe=o(function(){Aa.clear(),Sr()},"clear"),W1e={setWidth:xZe,setHeight:bZe,setQuadrant1Text:cZe,setQuadrant2Text:uZe,setQuadrant3Text:hZe,setQuadrant4Text:fZe,setXAxisLeftText:dZe,setXAxisRightText:pZe,setYAxisTopText:mZe,setYAxisBottomText:gZe,parseStyles:UF,addPoint:yZe,addClass:vZe,getQuadrantData:TZe,clear:wZe,setAccTitle:Rr,getAccTitle:Mr,setDiagramTitle:$r,getDiagramTitle:Pr,getAccDescription:Or,setAccDescription:Ir}});var kZe,X1e,j1e=M(()=>{"use strict";yr();Xt();pt();Ei();kZe=o((t,e,r,n)=>{function i(A){return A==="top"?"hanging":"middle"}o(i,"getDominantBaseLine");function a(A){return A==="left"?"start":"middle"}o(a,"getTextAnchor");function s(A){return`translate(${A.x}, ${A.y}) rotate(${A.rotation||0})`}o(s,"getTransformation");let l=ge();X.debug(`Rendering quadrant chart +`+t);let u=l.securityLevel,h;u==="sandbox"&&(h=qe("#i"+e));let d=(u==="sandbox"?qe(h.nodes()[0].contentDocument.body):qe("body")).select(`[id="${e}"]`),p=d.append("g").attr("class","main"),m=l.quadrantChart?.chartWidth??500,g=l.quadrantChart?.chartHeight??500;mn(d,g,m,l.quadrantChart?.useMaxWidth??!0),d.attr("viewBox","0 0 "+m+" "+g),n.db.setHeight(g),n.db.setWidth(m);let y=n.db.getQuadrantData(),v=p.append("g").attr("class","quadrants"),x=p.append("g").attr("class","border"),b=p.append("g").attr("class","data-points"),T=p.append("g").attr("class","labels"),S=p.append("g").attr("class","title");y.title&&S.append("text").attr("x",0).attr("y",0).attr("fill",y.title.fill).attr("font-size",y.title.fontSize).attr("dominant-baseline",i(y.title.horizontalPos)).attr("text-anchor",a(y.title.verticalPos)).attr("transform",s(y.title)).text(y.title.text),y.borderLines&&x.selectAll("line").data(y.borderLines).enter().append("line").attr("x1",A=>A.x1).attr("y1",A=>A.y1).attr("x2",A=>A.x2).attr("y2",A=>A.y2).style("stroke",A=>A.strokeFill).style("stroke-width",A=>A.strokeWidth);let w=v.selectAll("g.quadrant").data(y.quadrants).enter().append("g").attr("class","quadrant");w.append("rect").attr("x",A=>A.x).attr("y",A=>A.y).attr("width",A=>A.width).attr("height",A=>A.height).attr("fill",A=>A.fill),w.append("text").attr("x",0).attr("y",0).attr("fill",A=>A.text.fill).attr("font-size",A=>A.text.fontSize).attr("dominant-baseline",A=>i(A.text.horizontalPos)).attr("text-anchor",A=>a(A.text.verticalPos)).attr("transform",A=>s(A.text)).text(A=>A.text.text),T.selectAll("g.label").data(y.axisLabels).enter().append("g").attr("class","label").append("text").attr("x",0).attr("y",0).text(A=>A.text).attr("fill",A=>A.fill).attr("font-size",A=>A.fontSize).attr("dominant-baseline",A=>i(A.horizontalPos)).attr("text-anchor",A=>a(A.verticalPos)).attr("transform",A=>s(A));let C=b.selectAll("g.data-point").data(y.points).enter().append("g").attr("class","data-point");C.append("circle").attr("cx",A=>A.x).attr("cy",A=>A.y).attr("r",A=>A.radius).attr("fill",A=>A.fill).attr("stroke",A=>A.strokeColor).attr("stroke-width",A=>A.strokeWidth),C.append("text").attr("x",0).attr("y",0).text(A=>A.text.text).attr("fill",A=>A.text.fill).attr("font-size",A=>A.text.fontSize).attr("dominant-baseline",A=>i(A.text.horizontalPos)).attr("text-anchor",A=>a(A.text.verticalPos)).attr("transform",A=>s(A.text))},"draw"),X1e={draw:kZe}});var K1e={};dr(K1e,{diagram:()=>EZe});var EZe,Q1e=M(()=>{"use strict";G1e();Y1e();j1e();EZe={parser:z1e,db:W1e,renderer:X1e,styles:o(()=>"","styles")}});var HF,eye,tye=M(()=>{"use strict";HF=(function(){var t=o(function(O,N,P,B){for(P=P||{},B=O.length;B--;P[O[B]]=N);return P},"o"),e=[1,10,12,14,16,18,19,21,23],r=[2,6],n=[1,3],i=[1,5],a=[1,6],s=[1,7],l=[1,5,10,12,14,16,18,19,21,23,34,35,36],u=[1,25],h=[1,26],f=[1,28],d=[1,29],p=[1,30],m=[1,31],g=[1,32],y=[1,33],v=[1,34],x=[1,35],b=[1,36],T=[1,37],S=[1,43],w=[1,42],k=[1,47],C=[1,50],A=[1,10,12,14,16,18,19,21,23,34,35,36],L=[1,10,12,14,16,18,19,21,23,24,26,27,28,34,35,36],I=[1,10,12,14,16,18,19,21,23,24,26,27,28,34,35,36,41,42,43,44,45,46,47,48,49,50],R=[1,64],E={trace:o(function(){},"trace"),yy:{},symbols_:{error:2,start:3,eol:4,XYCHART:5,chartConfig:6,document:7,CHART_ORIENTATION:8,statement:9,title:10,text:11,X_AXIS:12,parseXAxis:13,Y_AXIS:14,parseYAxis:15,LINE:16,plotData:17,BAR:18,acc_title:19,acc_title_value:20,acc_descr:21,acc_descr_value:22,acc_descr_multiline_value:23,SQUARE_BRACES_START:24,commaSeparatedNumbers:25,SQUARE_BRACES_END:26,NUMBER_WITH_DECIMAL:27,COMMA:28,xAxisData:29,bandData:30,ARROW_DELIMITER:31,commaSeparatedTexts:32,yAxisData:33,NEWLINE:34,SEMI:35,EOF:36,alphaNum:37,STR:38,MD_STR:39,alphaNumToken:40,AMP:41,NUM:42,ALPHA:43,PLUS:44,EQUALS:45,MULT:46,DOT:47,BRKT:48,MINUS:49,UNDERSCORE:50,$accept:0,$end:1},terminals_:{2:"error",5:"XYCHART",8:"CHART_ORIENTATION",10:"title",12:"X_AXIS",14:"Y_AXIS",16:"LINE",18:"BAR",19:"acc_title",20:"acc_title_value",21:"acc_descr",22:"acc_descr_value",23:"acc_descr_multiline_value",24:"SQUARE_BRACES_START",26:"SQUARE_BRACES_END",27:"NUMBER_WITH_DECIMAL",28:"COMMA",31:"ARROW_DELIMITER",34:"NEWLINE",35:"SEMI",36:"EOF",38:"STR",39:"MD_STR",41:"AMP",42:"NUM",43:"ALPHA",44:"PLUS",45:"EQUALS",46:"MULT",47:"DOT",48:"BRKT",49:"MINUS",50:"UNDERSCORE"},productions_:[0,[3,2],[3,3],[3,2],[3,1],[6,1],[7,0],[7,2],[9,2],[9,2],[9,2],[9,2],[9,2],[9,3],[9,2],[9,3],[9,2],[9,2],[9,1],[17,3],[25,3],[25,1],[13,1],[13,2],[13,1],[29,1],[29,3],[30,3],[32,3],[32,1],[15,1],[15,2],[15,1],[33,3],[4,1],[4,1],[4,1],[11,1],[11,1],[11,1],[37,1],[37,2],[40,1],[40,1],[40,1],[40,1],[40,1],[40,1],[40,1],[40,1],[40,1],[40,1]],performAction:o(function(N,P,B,F,V,$,U){var j=$.length-1;switch(V){case 5:F.setOrientation($[j]);break;case 9:F.setDiagramTitle($[j].text.trim());break;case 12:F.setLineData({text:"",type:"text"},$[j]);break;case 13:F.setLineData($[j-1],$[j]);break;case 14:F.setBarData({text:"",type:"text"},$[j]);break;case 15:F.setBarData($[j-1],$[j]);break;case 16:this.$=$[j].trim(),F.setAccTitle(this.$);break;case 17:case 18:this.$=$[j].trim(),F.setAccDescription(this.$);break;case 19:this.$=$[j-1];break;case 20:this.$=[Number($[j-2]),...$[j]];break;case 21:this.$=[Number($[j])];break;case 22:F.setXAxisTitle($[j]);break;case 23:F.setXAxisTitle($[j-1]);break;case 24:F.setXAxisTitle({type:"text",text:""});break;case 25:F.setXAxisBand($[j]);break;case 26:F.setXAxisRangeData(Number($[j-2]),Number($[j]));break;case 27:this.$=$[j-1];break;case 28:this.$=[$[j-2],...$[j]];break;case 29:this.$=[$[j]];break;case 30:F.setYAxisTitle($[j]);break;case 31:F.setYAxisTitle($[j-1]);break;case 32:F.setYAxisTitle({type:"text",text:""});break;case 33:F.setYAxisRangeData(Number($[j-2]),Number($[j]));break;case 37:this.$={text:$[j],type:"text"};break;case 38:this.$={text:$[j],type:"text"};break;case 39:this.$={text:$[j],type:"markdown"};break;case 40:this.$=$[j];break;case 41:this.$=$[j-1]+""+$[j];break}},"anonymous"),table:[t(e,r,{3:1,4:2,7:4,5:n,34:i,35:a,36:s}),{1:[3]},t(e,r,{4:2,7:4,3:8,5:n,34:i,35:a,36:s}),t(e,r,{4:2,7:4,6:9,3:10,5:n,8:[1,11],34:i,35:a,36:s}),{1:[2,4],9:12,10:[1,13],12:[1,14],14:[1,15],16:[1,16],18:[1,17],19:[1,18],21:[1,19],23:[1,20]},t(l,[2,34]),t(l,[2,35]),t(l,[2,36]),{1:[2,1]},t(e,r,{4:2,7:4,3:21,5:n,34:i,35:a,36:s}),{1:[2,3]},t(l,[2,5]),t(e,[2,7],{4:22,34:i,35:a,36:s}),{11:23,37:24,38:u,39:h,40:27,41:f,42:d,43:p,44:m,45:g,46:y,47:v,48:x,49:b,50:T},{11:39,13:38,24:S,27:w,29:40,30:41,37:24,38:u,39:h,40:27,41:f,42:d,43:p,44:m,45:g,46:y,47:v,48:x,49:b,50:T},{11:45,15:44,27:k,33:46,37:24,38:u,39:h,40:27,41:f,42:d,43:p,44:m,45:g,46:y,47:v,48:x,49:b,50:T},{11:49,17:48,24:C,37:24,38:u,39:h,40:27,41:f,42:d,43:p,44:m,45:g,46:y,47:v,48:x,49:b,50:T},{11:52,17:51,24:C,37:24,38:u,39:h,40:27,41:f,42:d,43:p,44:m,45:g,46:y,47:v,48:x,49:b,50:T},{20:[1,53]},{22:[1,54]},t(A,[2,18]),{1:[2,2]},t(A,[2,8]),t(A,[2,9]),t(L,[2,37],{40:55,41:f,42:d,43:p,44:m,45:g,46:y,47:v,48:x,49:b,50:T}),t(L,[2,38]),t(L,[2,39]),t(I,[2,40]),t(I,[2,42]),t(I,[2,43]),t(I,[2,44]),t(I,[2,45]),t(I,[2,46]),t(I,[2,47]),t(I,[2,48]),t(I,[2,49]),t(I,[2,50]),t(I,[2,51]),t(A,[2,10]),t(A,[2,22],{30:41,29:56,24:S,27:w}),t(A,[2,24]),t(A,[2,25]),{31:[1,57]},{11:59,32:58,37:24,38:u,39:h,40:27,41:f,42:d,43:p,44:m,45:g,46:y,47:v,48:x,49:b,50:T},t(A,[2,11]),t(A,[2,30],{33:60,27:k}),t(A,[2,32]),{31:[1,61]},t(A,[2,12]),{17:62,24:C},{25:63,27:R},t(A,[2,14]),{17:65,24:C},t(A,[2,16]),t(A,[2,17]),t(I,[2,41]),t(A,[2,23]),{27:[1,66]},{26:[1,67]},{26:[2,29],28:[1,68]},t(A,[2,31]),{27:[1,69]},t(A,[2,13]),{26:[1,70]},{26:[2,21],28:[1,71]},t(A,[2,15]),t(A,[2,26]),t(A,[2,27]),{11:59,32:72,37:24,38:u,39:h,40:27,41:f,42:d,43:p,44:m,45:g,46:y,47:v,48:x,49:b,50:T},t(A,[2,33]),t(A,[2,19]),{25:73,27:R},{26:[2,28]},{26:[2,20]}],defaultActions:{8:[2,1],10:[2,3],21:[2,2],72:[2,28],73:[2,20]},parseError:o(function(N,P){if(P.recoverable)this.trace(N);else{var B=new Error(N);throw B.hash=P,B}},"parseError"),parse:o(function(N){var P=this,B=[0],F=[],V=[null],$=[],U=this.table,j="",ee=0,q=0,oe=0,Q=2,ue=1,te=$.slice.call(arguments,1),re=Object.create(this.lexer),J={yy:{}};for(var K in this.yy)Object.prototype.hasOwnProperty.call(this.yy,K)&&(J.yy[K]=this.yy[K]);re.setInput(N,J.yy),J.yy.lexer=re,J.yy.parser=this,typeof re.yylloc>"u"&&(re.yylloc={});var ae=re.yylloc;$.push(ae);var Z=re.options&&re.options.ranges;typeof J.yy.parseError=="function"?this.parseError=J.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function de(fe){B.length=B.length-2*fe,V.length=V.length-fe,$.length=$.length-fe}o(de,"popStack");function ne(){var fe;return fe=F.pop()||re.lex()||ue,typeof fe!="number"&&(fe instanceof Array&&(F=fe,fe=F.pop()),fe=P.symbols_[fe]||fe),fe}o(ne,"lex");for(var Te,W,Ve,pe,Be,Ye,He={},Le,Ie,Ne,Ce;;){if(Ve=B[B.length-1],this.defaultActions[Ve]?pe=this.defaultActions[Ve]:((Te===null||typeof Te>"u")&&(Te=ne()),pe=U[Ve]&&U[Ve][Te]),typeof pe>"u"||!pe.length||!pe[0]){var Fe="";Ce=[];for(Le in U[Ve])this.terminals_[Le]&&Le>Q&&Ce.push("'"+this.terminals_[Le]+"'");re.showPosition?Fe="Parse error on line "+(ee+1)+`: +`+re.showPosition()+` +Expecting `+Ce.join(", ")+", got '"+(this.terminals_[Te]||Te)+"'":Fe="Parse error on line "+(ee+1)+": Unexpected "+(Te==ue?"end of input":"'"+(this.terminals_[Te]||Te)+"'"),this.parseError(Fe,{text:re.match,token:this.terminals_[Te]||Te,line:re.yylineno,loc:ae,expected:Ce})}if(pe[0]instanceof Array&&pe.length>1)throw new Error("Parse Error: multiple actions possible at state: "+Ve+", token: "+Te);switch(pe[0]){case 1:B.push(Te),V.push(re.yytext),$.push(re.yylloc),B.push(pe[1]),Te=null,W?(Te=W,W=null):(q=re.yyleng,j=re.yytext,ee=re.yylineno,ae=re.yylloc,oe>0&&oe--);break;case 2:if(Ie=this.productions_[pe[1]][1],He.$=V[V.length-Ie],He._$={first_line:$[$.length-(Ie||1)].first_line,last_line:$[$.length-1].last_line,first_column:$[$.length-(Ie||1)].first_column,last_column:$[$.length-1].last_column},Z&&(He._$.range=[$[$.length-(Ie||1)].range[0],$[$.length-1].range[1]]),Ye=this.performAction.apply(He,[j,q,ee,J.yy,pe[1],V,$].concat(te)),typeof Ye<"u")return Ye;Ie&&(B=B.slice(0,-1*Ie*2),V=V.slice(0,-1*Ie),$=$.slice(0,-1*Ie)),B.push(this.productions_[pe[1]][0]),V.push(He.$),$.push(He._$),Ne=U[B[B.length-2]][B[B.length-1]],B.push(Ne);break;case 3:return!0}}return!0},"parse")},_=(function(){var O={EOF:1,parseError:o(function(P,B){if(this.yy.parser)this.yy.parser.parseError(P,B);else throw new Error(P)},"parseError"),setInput:o(function(N,P){return this.yy=P||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},"setInput"),input:o(function(){var N=this._input[0];this.yytext+=N,this.yyleng++,this.offset++,this.match+=N,this.matched+=N;var P=N.match(/(?:\r\n?|\n).*/g);return P?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),N},"input"),unput:o(function(N){var P=N.length,B=N.split(/(?:\r\n?|\n)/g);this._input=N+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-P),this.offset-=P;var F=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),B.length-1&&(this.yylineno-=B.length-1);var V=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:B?(B.length===F.length?this.yylloc.first_column:0)+F[F.length-B.length].length-B[0].length:this.yylloc.first_column-P},this.options.ranges&&(this.yylloc.range=[V[0],V[0]+this.yyleng-P]),this.yyleng=this.yytext.length,this},"unput"),more:o(function(){return this._more=!0,this},"more"),reject:o(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},"reject"),less:o(function(N){this.unput(this.match.slice(N))},"less"),pastInput:o(function(){var N=this.matched.substr(0,this.matched.length-this.match.length);return(N.length>20?"...":"")+N.substr(-20).replace(/\n/g,"")},"pastInput"),upcomingInput:o(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,"")},"upcomingInput"),showPosition:o(function(){var N=this.pastInput(),P=new Array(N.length+1).join("-");return N+this.upcomingInput()+` +`+P+"^"},"showPosition"),test_match:o(function(N,P){var B,F,V;if(this.options.backtrack_lexer&&(V={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&&(V.yylloc.range=this.yylloc.range.slice(0))),F=N[0].match(/(?:\r\n?|\n).*/g),F&&(this.yylineno+=F.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:F?F[F.length-1].length-F[F.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],B=this.performAction.call(this,this.yy,this,P,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),B)return B;if(this._backtrack){for(var $ in V)this[$]=V[$];return!1}return!1},"test_match"),next:o(function(){if(this.done)return this.EOF;this._input||(this.done=!0);var N,P,B,F;this._more||(this.yytext="",this.match="");for(var V=this._currentRules(),$=0;$P[0].length)){if(P=B,F=$,this.options.backtrack_lexer){if(N=this.test_match(B,V[$]),N!==!1)return N;if(this._backtrack){P=!1;continue}else return!1}else if(!this.options.flex)break}return P?(N=this.test_match(P,V[F]),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})},"next"),lex:o(function(){var P=this.next();return P||this.lex()},"lex"),begin:o(function(P){this.conditionStack.push(P)},"begin"),popState:o(function(){var P=this.conditionStack.length-1;return P>0?this.conditionStack.pop():this.conditionStack[0]},"popState"),_currentRules:o(function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},"_currentRules"),topState:o(function(P){return P=this.conditionStack.length-1-Math.abs(P||0),P>=0?this.conditionStack[P]:"INITIAL"},"topState"),pushState:o(function(P){this.begin(P)},"pushState"),stateStackSize:o(function(){return this.conditionStack.length},"stateStackSize"),options:{"case-insensitive":!0},performAction:o(function(P,B,F,V){var $=V;switch(F){case 0:break;case 1:break;case 2:return this.popState(),34;break;case 3:return this.popState(),34;break;case 4:return 34;case 5:break;case 6:return 10;case 7:return this.pushState("acc_title"),19;break;case 8:return this.popState(),"acc_title_value";break;case 9:return this.pushState("acc_descr"),21;break;case 10:return this.popState(),"acc_descr_value";break;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 5;case 16:return 8;case 17:return this.pushState("axis_data"),"X_AXIS";break;case 18:return this.pushState("axis_data"),"Y_AXIS";break;case 19:return this.pushState("axis_band_data"),24;break;case 20:return 31;case 21:return this.pushState("data"),16;break;case 22:return this.pushState("data"),18;break;case 23:return this.pushState("data_inner"),24;break;case 24:return 27;case 25:return this.popState(),26;break;case 26:this.popState();break;case 27:this.pushState("string");break;case 28:this.popState();break;case 29:return"STR";case 30:return 24;case 31:return 26;case 32:return 43;case 33:return"COLON";case 34:return 44;case 35:return 28;case 36:return 45;case 37:return 46;case 38:return 48;case 39:return 50;case 40:return 47;case 41:return 41;case 42:return 49;case 43:return 42;case 44:break;case 45:return 35;case 46:return 36}},"anonymous"),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,/^(?:xychart\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,18,21,22,24,25,26,27,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46],inclusive:!0},data:{rules:[0,1,3,4,5,6,7,9,11,14,15,16,17,18,21,22,23,26,27,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46],inclusive:!0},axis_band_data:{rules:[0,1,4,5,6,7,9,11,14,15,16,17,18,21,22,25,26,27,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46],inclusive:!0},axis_data:{rules:[0,1,2,4,5,6,7,9,11,14,15,16,17,18,19,20,21,22,24,26,27,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46],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:[28,29],inclusive:!1},INITIAL:{rules:[0,1,4,5,6,7,9,11,14,15,16,17,18,21,22,26,27,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46],inclusive:!0}}};return O})();E.lexer=_;function D(){this.yy={}}return o(D,"Parser"),D.prototype=E,E.Parser=D,new D})();HF.parser=HF;eye=HF});function qF(t){return t.type==="bar"}function U6(t){return t.type==="band"}function ny(t){return t.type==="linear"}var H6=M(()=>{"use strict";o(qF,"isBarPlot");o(U6,"isBandAxisData");o(ny,"isLinearAxisData")});var iy,WF=M(()=>{"use strict";zo();iy=class{constructor(e){this.parentGroup=e}static{o(this,"TextDimensionCalculatorWithFont")}getMaxDimension(e,r){if(!this.parentGroup)return{width:e.reduce((a,s)=>Math.max(s.length,a),0)*r,height:r};let n={width:0,height:0},i=this.parentGroup.append("g").attr("visibility","hidden").attr("font-size",r);for(let a of e){let s=XZ(i,1,a),l=s?s.width:a.length*r,u=s?s.height:r;n.width=Math.max(n.width,l),n.height=Math.max(n.height,u)}return i.remove(),n}}});var ay,YF=M(()=>{"use strict";ay=class{constructor(e,r,n,i){this.axisConfig=e;this.title=r;this.textDimensionCalculator=n;this.axisThemeConfig=i;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"}static{o(this,"BaseAxis")}setRange(e){this.range=e,this.axisPosition==="left"||this.axisPosition==="right"?this.boundingRect.height=e[1]-e[0]:this.boundingRect.width=e[1]-e[0],this.recalculateScale()}getRange(){return[this.range[0]+this.outerPadding,this.range[1]-this.outerPadding]}setAxisPosition(e){this.axisPosition=e,this.setRange(this.range)}getTickDistance(){let e=this.getRange();return Math.abs(e[0]-e[1])/this.getTickValues().length}getAxisOuterPadding(){return this.outerPadding}getLabelDimension(){return this.textDimensionCalculator.getMaxDimension(this.getTickValues().map(e=>e.toString()),this.axisConfig.labelFontSize)}recalculateOuterPaddingToDrawBar(){.7*this.getTickDistance()>this.outerPadding*2&&(this.outerPadding=Math.floor(.7*this.getTickDistance()/2)),this.recalculateScale()}calculateSpaceIfDrawnHorizontally(e){let r=e.height;if(this.axisConfig.showAxisLine&&r>this.axisConfig.axisLineWidth&&(r-=this.axisConfig.axisLineWidth,this.showAxisLine=!0),this.axisConfig.showLabel){let n=this.getLabelDimension(),i=.2*e.width;this.outerPadding=Math.min(n.width/2,i);let a=n.height+this.axisConfig.labelPadding*2;this.labelTextHeight=n.height,a<=r&&(r-=a,this.showLabel=!0)}if(this.axisConfig.showTick&&r>=this.axisConfig.tickLength&&(this.showTick=!0,r-=this.axisConfig.tickLength),this.axisConfig.showTitle&&this.title){let n=this.textDimensionCalculator.getMaxDimension([this.title],this.axisConfig.titleFontSize),i=n.height+this.axisConfig.titlePadding*2;this.titleTextHeight=n.height,i<=r&&(r-=i,this.showTitle=!0)}this.boundingRect.width=e.width,this.boundingRect.height=e.height-r}calculateSpaceIfDrawnVertical(e){let r=e.width;if(this.axisConfig.showAxisLine&&r>this.axisConfig.axisLineWidth&&(r-=this.axisConfig.axisLineWidth,this.showAxisLine=!0),this.axisConfig.showLabel){let n=this.getLabelDimension(),i=.2*e.height;this.outerPadding=Math.min(n.height/2,i);let a=n.width+this.axisConfig.labelPadding*2;a<=r&&(r-=a,this.showLabel=!0)}if(this.axisConfig.showTick&&r>=this.axisConfig.tickLength&&(this.showTick=!0,r-=this.axisConfig.tickLength),this.axisConfig.showTitle&&this.title){let n=this.textDimensionCalculator.getMaxDimension([this.title],this.axisConfig.titleFontSize),i=n.height+this.axisConfig.titlePadding*2;this.titleTextHeight=n.height,i<=r&&(r-=i,this.showTitle=!0)}this.boundingRect.width=e.width-r,this.boundingRect.height=e.height}calculateSpace(e){return this.axisPosition==="left"||this.axisPosition==="right"?this.calculateSpaceIfDrawnVertical(e):this.calculateSpaceIfDrawnHorizontally(e),this.recalculateScale(),{width:this.boundingRect.width,height:this.boundingRect.height}}setBoundingBoxXY(e){this.boundingRect.x=e.x,this.boundingRect.y=e.y}getDrawableElementsForLeftAxis(){let e=[];if(this.showAxisLine){let r=this.boundingRect.x+this.boundingRect.width-this.axisConfig.axisLineWidth/2;e.push({type:"path",groupTexts:["left-axis","axisl-line"],data:[{path:`M ${r},${this.boundingRect.y} L ${r},${this.boundingRect.y+this.boundingRect.height} `,strokeFill:this.axisThemeConfig.axisLineColor,strokeWidth:this.axisConfig.axisLineWidth}]})}if(this.showLabel&&e.push({type:"text",groupTexts:["left-axis","label"],data:this.getTickValues().map(r=>({text:r.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(r),fill:this.axisThemeConfig.labelColor,fontSize:this.axisConfig.labelFontSize,rotation:0,verticalPos:"middle",horizontalPos:"right"}))}),this.showTick){let r=this.boundingRect.x+this.boundingRect.width-(this.showAxisLine?this.axisConfig.axisLineWidth:0);e.push({type:"path",groupTexts:["left-axis","ticks"],data:this.getTickValues().map(n=>({path:`M ${r},${this.getScaleValue(n)} L ${r-this.axisConfig.tickLength},${this.getScaleValue(n)}`,strokeFill:this.axisThemeConfig.tickColor,strokeWidth:this.axisConfig.tickWidth}))})}return this.showTitle&&e.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"}]}),e}getDrawableElementsForBottomAxis(){let e=[];if(this.showAxisLine){let r=this.boundingRect.y+this.axisConfig.axisLineWidth/2;e.push({type:"path",groupTexts:["bottom-axis","axis-line"],data:[{path:`M ${this.boundingRect.x},${r} L ${this.boundingRect.x+this.boundingRect.width},${r}`,strokeFill:this.axisThemeConfig.axisLineColor,strokeWidth:this.axisConfig.axisLineWidth}]})}if(this.showLabel&&e.push({type:"text",groupTexts:["bottom-axis","label"],data:this.getTickValues().map(r=>({text:r.toString(),x:this.getScaleValue(r),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){let r=this.boundingRect.y+(this.showAxisLine?this.axisConfig.axisLineWidth:0);e.push({type:"path",groupTexts:["bottom-axis","ticks"],data:this.getTickValues().map(n=>({path:`M ${this.getScaleValue(n)},${r} L ${this.getScaleValue(n)},${r+this.axisConfig.tickLength}`,strokeFill:this.axisThemeConfig.tickColor,strokeWidth:this.axisConfig.tickWidth}))})}return this.showTitle&&e.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"}]}),e}getDrawableElementsForTopAxis(){let e=[];if(this.showAxisLine){let r=this.boundingRect.y+this.boundingRect.height-this.axisConfig.axisLineWidth/2;e.push({type:"path",groupTexts:["top-axis","axis-line"],data:[{path:`M ${this.boundingRect.x},${r} L ${this.boundingRect.x+this.boundingRect.width},${r}`,strokeFill:this.axisThemeConfig.axisLineColor,strokeWidth:this.axisConfig.axisLineWidth}]})}if(this.showLabel&&e.push({type:"text",groupTexts:["top-axis","label"],data:this.getTickValues().map(r=>({text:r.toString(),x:this.getScaleValue(r),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){let r=this.boundingRect.y;e.push({type:"path",groupTexts:["top-axis","ticks"],data:this.getTickValues().map(n=>({path:`M ${this.getScaleValue(n)},${r+this.boundingRect.height-(this.showAxisLine?this.axisConfig.axisLineWidth:0)} L ${this.getScaleValue(n)},${r+this.boundingRect.height-this.axisConfig.tickLength-(this.showAxisLine?this.axisConfig.axisLineWidth:0)}`,strokeFill:this.axisThemeConfig.tickColor,strokeWidth:this.axisConfig.tickWidth}))})}return this.showTitle&&e.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"}]}),e}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():[]}}});var q6,rye=M(()=>{"use strict";yr();pt();YF();q6=class extends ay{static{o(this,"BandAxis")}constructor(e,r,n,i,a){super(e,i,a,r),this.categories=n,this.scale=q0().domain(this.categories).range(this.getRange())}setRange(e){super.setRange(e)}recalculateScale(){this.scale=q0().domain(this.categories).range(this.getRange()).paddingInner(1).paddingOuter(0).align(.5),X.trace("BandAxis axis final categories, range: ",this.categories,this.getRange())}getTickValues(){return this.categories}getScaleValue(e){return this.scale(e)??this.getRange()[0]}}});var W6,nye=M(()=>{"use strict";yr();YF();W6=class extends ay{static{o(this,"LinearAxis")}constructor(e,r,n,i,a){super(e,i,a,r),this.domain=n,this.scale=Tl().domain(this.domain).range(this.getRange())}getTickValues(){return this.scale.ticks()}recalculateScale(){let e=[...this.domain];this.axisPosition==="left"&&e.reverse(),this.scale=Tl().domain(e).range(this.getRange())}getScaleValue(e){return this.scale(e)}}});function XF(t,e,r,n){let i=new iy(n);return U6(t)?new q6(e,r,t.categories,t.title,i):new W6(e,r,[t.min,t.max],t.title,i)}var iye=M(()=>{"use strict";H6();WF();rye();nye();o(XF,"getAxis")});function aye(t,e,r,n){let i=new iy(n);return new jF(i,t,e,r)}var jF,sye=M(()=>{"use strict";WF();jF=class{constructor(e,r,n,i){this.textDimensionCalculator=e;this.chartConfig=r;this.chartData=n;this.chartThemeConfig=i;this.boundingRect={x:0,y:0,width:0,height:0},this.showChartTitle=!1}static{o(this,"ChartTitle")}setBoundingBoxXY(e){this.boundingRect.x=e.x,this.boundingRect.y=e.y}calculateSpace(e){let r=this.textDimensionCalculator.getMaxDimension([this.chartData.title],this.chartConfig.titleFontSize),n=Math.max(r.width,e.width),i=r.height+2*this.chartConfig.titlePadding;return r.width<=n&&r.height<=i&&this.chartConfig.showTitle&&this.chartData.title&&(this.boundingRect.width=n,this.boundingRect.height=i,this.showChartTitle=!0),{width:this.boundingRect.width,height:this.boundingRect.height}}getDrawableElements(){let e=[];return this.showChartTitle&&e.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}]}),e}};o(aye,"getChartTitleComponent")});var Y6,oye=M(()=>{"use strict";yr();Y6=class{constructor(e,r,n,i,a){this.plotData=e;this.xAxis=r;this.yAxis=n;this.orientation=i;this.plotIndex=a}static{o(this,"LinePlot")}getDrawableElement(){let e=this.plotData.data.map(n=>[this.xAxis.getScaleValue(n[0]),this.yAxis.getScaleValue(n[1])]),r;return this.orientation==="horizontal"?r=Cl().y(n=>n[0]).x(n=>n[1])(e):r=Cl().x(n=>n[0]).y(n=>n[1])(e),r?[{groupTexts:["plot",`line-plot-${this.plotIndex}`],type:"path",data:[{path:r,strokeFill:this.plotData.strokeFill,strokeWidth:this.plotData.strokeWidth}]}]:[]}}});var X6,lye=M(()=>{"use strict";X6=class{constructor(e,r,n,i,a,s){this.barData=e;this.boundingRect=r;this.xAxis=n;this.yAxis=i;this.orientation=a;this.plotIndex=s}static{o(this,"BarPlot")}getDrawableElement(){let e=this.barData.data.map(a=>[this.xAxis.getScaleValue(a[0]),this.yAxis.getScaleValue(a[1])]),n=Math.min(this.xAxis.getAxisOuterPadding()*2,this.xAxis.getTickDistance())*(1-.05),i=n/2;return this.orientation==="horizontal"?[{groupTexts:["plot",`bar-plot-${this.plotIndex}`],type:"rect",data:e.map(a=>({x:this.boundingRect.x,y:a[0]-i,height:n,width:a[1]-this.boundingRect.x,fill:this.barData.fill,strokeWidth:0,strokeFill:this.barData.fill}))}]:[{groupTexts:["plot",`bar-plot-${this.plotIndex}`],type:"rect",data:e.map(a=>({x:a[0]-i,y:a[1],width:n,height:this.boundingRect.y+this.boundingRect.height-a[1],fill:this.barData.fill,strokeWidth:0,strokeFill:this.barData.fill}))}]}}});function cye(t,e,r){return new KF(t,e,r)}var KF,uye=M(()=>{"use strict";oye();lye();KF=class{constructor(e,r,n){this.chartConfig=e;this.chartData=r;this.chartThemeConfig=n;this.boundingRect={x:0,y:0,width:0,height:0}}static{o(this,"BasePlot")}setAxes(e,r){this.xAxis=e,this.yAxis=r}setBoundingBoxXY(e){this.boundingRect.x=e.x,this.boundingRect.y=e.y}calculateSpace(e){return this.boundingRect.width=e.width,this.boundingRect.height=e.height,{width:this.boundingRect.width,height:this.boundingRect.height}}getDrawableElements(){if(!(this.xAxis&&this.yAxis))throw Error("Axes must be passed to render Plots");let e=[];for(let[r,n]of this.chartData.plots.entries())switch(n.type){case"line":{let i=new Y6(n,this.xAxis,this.yAxis,this.chartConfig.chartOrientation,r);e.push(...i.getDrawableElement())}break;case"bar":{let i=new X6(n,this.boundingRect,this.xAxis,this.yAxis,this.chartConfig.chartOrientation,r);e.push(...i.getDrawableElement())}break}return e}};o(cye,"getPlotComponent")});var j6,hye=M(()=>{"use strict";iye();sye();uye();H6();j6=class{constructor(e,r,n,i){this.chartConfig=e;this.chartData=r;this.componentStore={title:aye(e,r,n,i),plot:cye(e,r,n),xAxis:XF(r.xAxis,e.xAxis,{titleColor:n.xAxisTitleColor,labelColor:n.xAxisLabelColor,tickColor:n.xAxisTickColor,axisLineColor:n.xAxisLineColor},i),yAxis:XF(r.yAxis,e.yAxis,{titleColor:n.yAxisTitleColor,labelColor:n.yAxisLabelColor,tickColor:n.yAxisTickColor,axisLineColor:n.yAxisLineColor},i)}}static{o(this,"Orchestrator")}calculateVerticalSpace(){let e=this.chartConfig.width,r=this.chartConfig.height,n=0,i=0,a=Math.floor(e*this.chartConfig.plotReservedSpacePercent/100),s=Math.floor(r*this.chartConfig.plotReservedSpacePercent/100),l=this.componentStore.plot.calculateSpace({width:a,height:s});e-=l.width,r-=l.height,l=this.componentStore.title.calculateSpace({width:this.chartConfig.width,height:r}),i=l.height,r-=l.height,this.componentStore.xAxis.setAxisPosition("bottom"),l=this.componentStore.xAxis.calculateSpace({width:e,height:r}),r-=l.height,this.componentStore.yAxis.setAxisPosition("left"),l=this.componentStore.yAxis.calculateSpace({width:e,height:r}),n=l.width,e-=l.width,e>0&&(a+=e,e=0),r>0&&(s+=r,r=0),this.componentStore.plot.calculateSpace({width:a,height:s}),this.componentStore.plot.setBoundingBoxXY({x:n,y:i}),this.componentStore.xAxis.setRange([n,n+a]),this.componentStore.xAxis.setBoundingBoxXY({x:n,y:i+s}),this.componentStore.yAxis.setRange([i,i+s]),this.componentStore.yAxis.setBoundingBoxXY({x:0,y:i}),this.chartData.plots.some(u=>qF(u))&&this.componentStore.xAxis.recalculateOuterPaddingToDrawBar()}calculateHorizontalSpace(){let e=this.chartConfig.width,r=this.chartConfig.height,n=0,i=0,a=0,s=Math.floor(e*this.chartConfig.plotReservedSpacePercent/100),l=Math.floor(r*this.chartConfig.plotReservedSpacePercent/100),u=this.componentStore.plot.calculateSpace({width:s,height:l});e-=u.width,r-=u.height,u=this.componentStore.title.calculateSpace({width:this.chartConfig.width,height:r}),n=u.height,r-=u.height,this.componentStore.xAxis.setAxisPosition("left"),u=this.componentStore.xAxis.calculateSpace({width:e,height:r}),e-=u.width,i=u.width,this.componentStore.yAxis.setAxisPosition("top"),u=this.componentStore.yAxis.calculateSpace({width:e,height:r}),r-=u.height,a=n+u.height,e>0&&(s+=e,e=0),r>0&&(l+=r,r=0),this.componentStore.plot.calculateSpace({width:s,height:l}),this.componentStore.plot.setBoundingBoxXY({x:i,y:a}),this.componentStore.yAxis.setRange([i,i+s]),this.componentStore.yAxis.setBoundingBoxXY({x:i,y:n}),this.componentStore.xAxis.setRange([a,a+l]),this.componentStore.xAxis.setBoundingBoxXY({x:0,y:a}),this.chartData.plots.some(h=>qF(h))&&this.componentStore.xAxis.recalculateOuterPaddingToDrawBar()}calculateSpace(){this.chartConfig.chartOrientation==="horizontal"?this.calculateHorizontalSpace():this.calculateVerticalSpace()}getDrawableElement(){this.calculateSpace();let e=[];this.componentStore.plot.setAxes(this.componentStore.xAxis,this.componentStore.yAxis);for(let r of Object.values(this.componentStore))e.push(...r.getDrawableElements());return e}}});var K6,fye=M(()=>{"use strict";hye();K6=class{static{o(this,"XYChartBuilder")}static build(e,r,n,i){return new j6(e,r,n,i).getDrawableElement()}}});function pye(){let t=mh(),e=Qt();return Vn(t.xyChart,e.themeVariables.xyChart)}function mye(){let t=Qt();return Vn(ur.xyChart,t.xyChart)}function gye(){return{yAxis:{type:"linear",title:"",min:1/0,max:-1/0},xAxis:{type:"band",title:"",categories:[]},title:"",plots:[]}}function JF(t){let e=Qt();return sr(t.trim(),e)}function _Ze(t){dye=t}function DZe(t){t==="horizontal"?x4.chartOrientation="horizontal":x4.chartOrientation="vertical"}function LZe(t){pn.xAxis.title=JF(t.text)}function yye(t,e){pn.xAxis={type:"linear",title:pn.xAxis.title,min:t,max:e},Q6=!0}function RZe(t){pn.xAxis={type:"band",title:pn.xAxis.title,categories:t.map(e=>JF(e.text))},Q6=!0}function NZe(t){pn.yAxis.title=JF(t.text)}function MZe(t,e){pn.yAxis={type:"linear",title:pn.yAxis.title,min:t,max:e},ZF=!0}function IZe(t){let e=Math.min(...t),r=Math.max(...t),n=ny(pn.yAxis)?pn.yAxis.min:1/0,i=ny(pn.yAxis)?pn.yAxis.max:-1/0;pn.yAxis={type:"linear",title:pn.yAxis.title,min:Math.min(n,e),max:Math.max(i,r)}}function vye(t){let e=[];if(t.length===0)return e;if(!Q6){let r=ny(pn.xAxis)?pn.xAxis.min:1/0,n=ny(pn.xAxis)?pn.xAxis.max:-1/0;yye(Math.min(r,1),Math.max(n,t.length))}if(ZF||IZe(t),U6(pn.xAxis)&&(e=pn.xAxis.categories.map((r,n)=>[r,t[n]])),ny(pn.xAxis)){let r=pn.xAxis.min,n=pn.xAxis.max,i=(n-r)/(t.length-1),a=[];for(let s=r;s<=n;s+=i)a.push(`${s}`);e=a.map((s,l)=>[s,t[l]])}return e}function xye(t){return QF[t===0?0:t%QF.length]}function OZe(t,e){let r=vye(e);pn.plots.push({type:"line",strokeFill:xye(v4),strokeWidth:2,data:r}),v4++}function PZe(t,e){let r=vye(e);pn.plots.push({type:"bar",fill:xye(v4),data:r}),v4++}function BZe(){if(pn.plots.length===0)throw Error("No Plot to render, please provide a plot with some data");return pn.title=Pr(),K6.build(x4,pn,b4,dye)}function FZe(){return b4}function $Ze(){return x4}function zZe(){return pn}var v4,dye,x4,b4,pn,QF,Q6,ZF,GZe,bye,Tye=M(()=>{"use strict";qn();Ra();Py();tr();gr();ci();fye();H6();v4=0,x4=mye(),b4=pye(),pn=gye(),QF=b4.plotColorPalette.split(",").map(t=>t.trim()),Q6=!1,ZF=!1;o(pye,"getChartDefaultThemeConfig");o(mye,"getChartDefaultConfig");o(gye,"getChartDefaultData");o(JF,"textSanitizer");o(_Ze,"setTmpSVGG");o(DZe,"setOrientation");o(LZe,"setXAxisTitle");o(yye,"setXAxisRangeData");o(RZe,"setXAxisBand");o(NZe,"setYAxisTitle");o(MZe,"setYAxisRangeData");o(IZe,"setYAxisRangeFromPlotData");o(vye,"transformDataWithoutCategory");o(xye,"getPlotColorFromPalette");o(OZe,"setLineData");o(PZe,"setBarData");o(BZe,"getDrawableElem");o(FZe,"getChartThemeConfig");o($Ze,"getChartConfig");o(zZe,"getXYChartData");GZe=o(function(){Sr(),v4=0,x4=mye(),pn=gye(),b4=pye(),QF=b4.plotColorPalette.split(",").map(t=>t.trim()),Q6=!1,ZF=!1},"clear"),bye={getDrawableElem:BZe,clear:GZe,setAccTitle:Rr,getAccTitle:Mr,setDiagramTitle:$r,getDiagramTitle:Pr,getAccDescription:Or,setAccDescription:Ir,setOrientation:DZe,setXAxisTitle:LZe,setXAxisRangeData:yye,setXAxisBand:RZe,setYAxisTitle:NZe,setYAxisRangeData:MZe,setLineData:OZe,setBarData:PZe,setTmpSVGG:_Ze,getChartThemeConfig:FZe,getChartConfig:$Ze,getXYChartData:zZe}});var VZe,wye,kye=M(()=>{"use strict";pt();tu();Ei();VZe=o((t,e,r,n)=>{let i=n.db,a=i.getChartThemeConfig(),s=i.getChartConfig(),l=i.getXYChartData().plots[0].data.map(T=>T[1]);function u(T){return T==="top"?"text-before-edge":"middle"}o(u,"getDominantBaseLine");function h(T){return T==="left"?"start":T==="right"?"end":"middle"}o(h,"getTextAnchor");function f(T){return`translate(${T.x}, ${T.y}) rotate(${T.rotation||0})`}o(f,"getTextTransformation"),X.debug(`Rendering xychart chart +`+t);let d=aa(e),p=d.append("g").attr("class","main"),m=p.append("rect").attr("width",s.width).attr("height",s.height).attr("class","background");mn(d,s.height,s.width,!0),d.attr("viewBox",`0 0 ${s.width} ${s.height}`),m.attr("fill",a.backgroundColor),i.setTmpSVGG(d.append("g").attr("class","mermaid-tmp-group"));let g=i.getDrawableElem(),y={};function v(T){let S=p,w="";for(let[k]of T.entries()){let C=p;k>0&&y[w]&&(C=y[w]),w+=T[k],S=y[w],S||(S=y[w]=C.append("g").attr("class",T[k]))}return S}o(v,"getGroup");for(let T of g){if(T.data.length===0)continue;let S=v(T.groupTexts);switch(T.type){case"rect":if(S.selectAll("rect").data(T.data).enter().append("rect").attr("x",w=>w.x).attr("y",w=>w.y).attr("width",w=>w.width).attr("height",w=>w.height).attr("fill",w=>w.fill).attr("stroke",w=>w.strokeFill).attr("stroke-width",w=>w.strokeWidth),s.showDataLabel)if(s.chartOrientation==="horizontal"){let C=function(I,R){let{data:E,label:_}=I;return R*_.length*.7<=E.width-10};var x=C;o(C,"fitsHorizontally");let w=.7,k=T.data.map((I,R)=>({data:I,label:l[R].toString()})).filter(I=>I.data.width>0&&I.data.height>0),A=k.map(I=>{let{data:R}=I,E=R.height*.7;for(;!C(I,E)&&E>0;)E-=1;return E}),L=Math.floor(Math.min(...A));S.selectAll("text").data(k).enter().append("text").attr("x",I=>I.data.x+I.data.width-10).attr("y",I=>I.data.y+I.data.height/2).attr("text-anchor","end").attr("dominant-baseline","middle").attr("fill","black").attr("font-size",`${L}px`).text(I=>I.label)}else{let C=function(I,R,E){let{data:_,label:D}=I,N=R*D.length*.7,P=_.x+_.width/2,B=P-N/2,F=P+N/2,V=B>=_.x&&F<=_.x+_.width,$=_.y+E+R<=_.y+_.height;return V&&$};var b=C;o(C,"fitsInBar");let w=10,k=T.data.map((I,R)=>({data:I,label:l[R].toString()})).filter(I=>I.data.width>0&&I.data.height>0),A=k.map(I=>{let{data:R,label:E}=I,_=R.width/(E.length*.7);for(;!C(I,_,10)&&_>0;)_-=1;return _}),L=Math.floor(Math.min(...A));S.selectAll("text").data(k).enter().append("text").attr("x",I=>I.data.x+I.data.width/2).attr("y",I=>I.data.y+10).attr("text-anchor","middle").attr("dominant-baseline","hanging").attr("fill","black").attr("font-size",`${L}px`).text(I=>I.label)}break;case"text":S.selectAll("text").data(T.data).enter().append("text").attr("x",0).attr("y",0).attr("fill",w=>w.fill).attr("font-size",w=>w.fontSize).attr("dominant-baseline",w=>u(w.verticalPos)).attr("text-anchor",w=>h(w.horizontalPos)).attr("transform",w=>f(w)).text(w=>w.text);break;case"path":S.selectAll("path").data(T.data).enter().append("path").attr("d",w=>w.path).attr("fill",w=>w.fill?w.fill:"none").attr("stroke",w=>w.strokeFill).attr("stroke-width",w=>w.strokeWidth);break}}},"draw"),wye={draw:VZe}});var Eye={};dr(Eye,{diagram:()=>UZe});var UZe,Sye=M(()=>{"use strict";tye();Tye();kye();UZe={parser:eye,db:bye,renderer:wye}});var e$,_ye,Dye=M(()=>{"use strict";e$=(function(){var t=o(function(fe,xe,Y,he){for(Y=Y||{},he=fe.length;he--;Y[fe[he]]=xe);return Y},"o"),e=[1,3],r=[1,4],n=[1,5],i=[1,6],a=[5,6,8,9,11,13,21,22,23,24,41,42,43,44,45,46,54,72,74,77,89,90],s=[1,22],l=[2,7],u=[1,26],h=[1,27],f=[1,28],d=[1,29],p=[1,33],m=[1,34],g=[1,35],y=[1,36],v=[1,37],x=[1,38],b=[1,24],T=[1,31],S=[1,32],w=[1,30],k=[1,39],C=[1,40],A=[5,8,9,11,13,21,22,23,24,41,42,43,44,45,46,54,72,74,77,89,90],L=[1,61],I=[89,90],R=[5,8,9,11,13,21,22,23,24,27,29,41,42,43,44,45,46,54,61,63,72,74,75,76,77,80,81,82,83,84,85,86,87,88,89,90],E=[27,29],_=[1,70],D=[1,71],O=[1,72],N=[1,73],P=[1,74],B=[1,75],F=[1,76],V=[1,83],$=[1,80],U=[1,84],j=[1,85],ee=[1,86],q=[1,87],oe=[1,88],Q=[1,89],ue=[1,90],te=[1,91],re=[1,92],J=[5,8,9,11,13,21,22,23,24,27,41,42,43,44,45,46,54,72,74,75,76,77,80,81,82,83,84,85,86,87,88,89,90],K=[63,64],ae=[1,101],Z=[5,8,9,11,13,21,22,23,24,41,42,43,44,45,46,54,72,74,76,77,89,90],de=[5,8,9,11,13,21,22,23,24,41,42,43,44,45,46,54,72,74,75,76,77,80,81,82,83,84,85,86,87,88,89,90],ne=[1,110],Te=[1,106],W=[1,107],Ve=[1,108],pe=[1,109],Be=[1,111],Ye=[1,116],He=[1,117],Le=[1,114],Ie=[1,115],Ne={trace:o(function(){},"trace"),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,direction:17,styleStatement:18,classDefStatement:19,classStatement:20,direction_tb:21,direction_bt:22,direction_rl:23,direction_lr:24,requirementType:25,requirementName:26,STRUCT_START:27,requirementBody:28,STYLE_SEPARATOR:29,idList:30,ID:31,COLONSEP:32,id:33,TEXT:34,text:35,RISK:36,riskLevel:37,VERIFYMTHD:38,verifyType:39,STRUCT_STOP:40,REQUIREMENT:41,FUNCTIONAL_REQUIREMENT:42,INTERFACE_REQUIREMENT:43,PERFORMANCE_REQUIREMENT:44,PHYSICAL_REQUIREMENT:45,DESIGN_CONSTRAINT:46,LOW_RISK:47,MED_RISK:48,HIGH_RISK:49,VERIFY_ANALYSIS:50,VERIFY_DEMONSTRATION:51,VERIFY_INSPECTION:52,VERIFY_TEST:53,ELEMENT:54,elementName:55,elementBody:56,TYPE:57,type:58,DOCREF:59,ref:60,END_ARROW_L:61,relationship:62,LINE:63,END_ARROW_R:64,CONTAINS:65,COPIES:66,DERIVES:67,SATISFIES:68,VERIFIES:69,REFINES:70,TRACES:71,CLASSDEF:72,stylesOpt:73,CLASS:74,ALPHA:75,COMMA:76,STYLE:77,style:78,styleComponent:79,NUM:80,COLON:81,UNIT:82,SPACE:83,BRKT:84,PCT:85,MINUS:86,LABEL:87,SEMICOLON:88,unqString:89,qString:90,$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",21:"direction_tb",22:"direction_bt",23:"direction_rl",24:"direction_lr",27:"STRUCT_START",29:"STYLE_SEPARATOR",31:"ID",32:"COLONSEP",34:"TEXT",36:"RISK",38:"VERIFYMTHD",40:"STRUCT_STOP",41:"REQUIREMENT",42:"FUNCTIONAL_REQUIREMENT",43:"INTERFACE_REQUIREMENT",44:"PERFORMANCE_REQUIREMENT",45:"PHYSICAL_REQUIREMENT",46:"DESIGN_CONSTRAINT",47:"LOW_RISK",48:"MED_RISK",49:"HIGH_RISK",50:"VERIFY_ANALYSIS",51:"VERIFY_DEMONSTRATION",52:"VERIFY_INSPECTION",53:"VERIFY_TEST",54:"ELEMENT",57:"TYPE",59:"DOCREF",61:"END_ARROW_L",63:"LINE",64:"END_ARROW_R",65:"CONTAINS",66:"COPIES",67:"DERIVES",68:"SATISFIES",69:"VERIFIES",70:"REFINES",71:"TRACES",72:"CLASSDEF",74:"CLASS",75:"ALPHA",76:"COMMA",77:"STYLE",80:"NUM",81:"COLON",82:"UNIT",83:"SPACE",84:"BRKT",85:"PCT",86:"MINUS",87:"LABEL",88:"SEMICOLON",89:"unqString",90:"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],[7,2],[7,2],[7,2],[7,2],[17,1],[17,1],[17,1],[17,1],[14,5],[14,7],[28,5],[28,5],[28,5],[28,5],[28,2],[28,1],[25,1],[25,1],[25,1],[25,1],[25,1],[25,1],[37,1],[37,1],[37,1],[39,1],[39,1],[39,1],[39,1],[15,5],[15,7],[56,5],[56,5],[56,2],[56,1],[16,5],[16,5],[62,1],[62,1],[62,1],[62,1],[62,1],[62,1],[62,1],[19,3],[20,3],[20,3],[30,1],[30,3],[30,1],[30,3],[18,3],[73,1],[73,3],[78,1],[78,2],[79,1],[79,1],[79,1],[79,1],[79,1],[79,1],[79,1],[79,1],[79,1],[79,1],[26,1],[26,1],[33,1],[33,1],[35,1],[35,1],[55,1],[55,1],[58,1],[58,1],[60,1],[60,1]],performAction:o(function(xe,Y,he,z,se,le,ke){var ve=le.length-1;switch(se){case 4:this.$=le[ve].trim(),z.setAccTitle(this.$);break;case 5:case 6:this.$=le[ve].trim(),z.setAccDescription(this.$);break;case 7:this.$=[];break;case 17:z.setDirection("TB");break;case 18:z.setDirection("BT");break;case 19:z.setDirection("RL");break;case 20:z.setDirection("LR");break;case 21:z.addRequirement(le[ve-3],le[ve-4]);break;case 22:z.addRequirement(le[ve-5],le[ve-6]),z.setClass([le[ve-5]],le[ve-3]);break;case 23:z.setNewReqId(le[ve-2]);break;case 24:z.setNewReqText(le[ve-2]);break;case 25:z.setNewReqRisk(le[ve-2]);break;case 26:z.setNewReqVerifyMethod(le[ve-2]);break;case 29:this.$=z.RequirementType.REQUIREMENT;break;case 30:this.$=z.RequirementType.FUNCTIONAL_REQUIREMENT;break;case 31:this.$=z.RequirementType.INTERFACE_REQUIREMENT;break;case 32:this.$=z.RequirementType.PERFORMANCE_REQUIREMENT;break;case 33:this.$=z.RequirementType.PHYSICAL_REQUIREMENT;break;case 34:this.$=z.RequirementType.DESIGN_CONSTRAINT;break;case 35:this.$=z.RiskLevel.LOW_RISK;break;case 36:this.$=z.RiskLevel.MED_RISK;break;case 37:this.$=z.RiskLevel.HIGH_RISK;break;case 38:this.$=z.VerifyType.VERIFY_ANALYSIS;break;case 39:this.$=z.VerifyType.VERIFY_DEMONSTRATION;break;case 40:this.$=z.VerifyType.VERIFY_INSPECTION;break;case 41:this.$=z.VerifyType.VERIFY_TEST;break;case 42:z.addElement(le[ve-3]);break;case 43:z.addElement(le[ve-5]),z.setClass([le[ve-5]],le[ve-3]);break;case 44:z.setNewElementType(le[ve-2]);break;case 45:z.setNewElementDocRef(le[ve-2]);break;case 48:z.addRelationship(le[ve-2],le[ve],le[ve-4]);break;case 49:z.addRelationship(le[ve-2],le[ve-4],le[ve]);break;case 50:this.$=z.Relationships.CONTAINS;break;case 51:this.$=z.Relationships.COPIES;break;case 52:this.$=z.Relationships.DERIVES;break;case 53:this.$=z.Relationships.SATISFIES;break;case 54:this.$=z.Relationships.VERIFIES;break;case 55:this.$=z.Relationships.REFINES;break;case 56:this.$=z.Relationships.TRACES;break;case 57:this.$=le[ve-2],z.defineClass(le[ve-1],le[ve]);break;case 58:z.setClass(le[ve-1],le[ve]);break;case 59:z.setClass([le[ve-2]],le[ve]);break;case 60:case 62:this.$=[le[ve]];break;case 61:case 63:this.$=le[ve-2].concat([le[ve]]);break;case 64:this.$=le[ve-2],z.setCssStyle(le[ve-1],le[ve]);break;case 65:this.$=[le[ve]];break;case 66:le[ve-2].push(le[ve]),this.$=le[ve-2];break;case 68:this.$=le[ve-1]+le[ve];break}},"anonymous"),table:[{3:1,4:2,6:e,9:r,11:n,13:i},{1:[3]},{3:8,4:2,5:[1,7],6:e,9:r,11:n,13:i},{5:[1,9]},{10:[1,10]},{12:[1,11]},t(a,[2,6]),{3:12,4:2,6:e,9:r,11:n,13:i},{1:[2,2]},{4:17,5:s,7:13,8:l,9:r,11:n,13:i,14:14,15:15,16:16,17:18,18:19,19:20,20:21,21:u,22:h,23:f,24:d,25:23,33:25,41:p,42:m,43:g,44:y,45:v,46:x,54:b,72:T,74:S,77:w,89:k,90:C},t(a,[2,4]),t(a,[2,5]),{1:[2,1]},{8:[1,41]},{4:17,5:s,7:42,8:l,9:r,11:n,13:i,14:14,15:15,16:16,17:18,18:19,19:20,20:21,21:u,22:h,23:f,24:d,25:23,33:25,41:p,42:m,43:g,44:y,45:v,46:x,54:b,72:T,74:S,77:w,89:k,90:C},{4:17,5:s,7:43,8:l,9:r,11:n,13:i,14:14,15:15,16:16,17:18,18:19,19:20,20:21,21:u,22:h,23:f,24:d,25:23,33:25,41:p,42:m,43:g,44:y,45:v,46:x,54:b,72:T,74:S,77:w,89:k,90:C},{4:17,5:s,7:44,8:l,9:r,11:n,13:i,14:14,15:15,16:16,17:18,18:19,19:20,20:21,21:u,22:h,23:f,24:d,25:23,33:25,41:p,42:m,43:g,44:y,45:v,46:x,54:b,72:T,74:S,77:w,89:k,90:C},{4:17,5:s,7:45,8:l,9:r,11:n,13:i,14:14,15:15,16:16,17:18,18:19,19:20,20:21,21:u,22:h,23:f,24:d,25:23,33:25,41:p,42:m,43:g,44:y,45:v,46:x,54:b,72:T,74:S,77:w,89:k,90:C},{4:17,5:s,7:46,8:l,9:r,11:n,13:i,14:14,15:15,16:16,17:18,18:19,19:20,20:21,21:u,22:h,23:f,24:d,25:23,33:25,41:p,42:m,43:g,44:y,45:v,46:x,54:b,72:T,74:S,77:w,89:k,90:C},{4:17,5:s,7:47,8:l,9:r,11:n,13:i,14:14,15:15,16:16,17:18,18:19,19:20,20:21,21:u,22:h,23:f,24:d,25:23,33:25,41:p,42:m,43:g,44:y,45:v,46:x,54:b,72:T,74:S,77:w,89:k,90:C},{4:17,5:s,7:48,8:l,9:r,11:n,13:i,14:14,15:15,16:16,17:18,18:19,19:20,20:21,21:u,22:h,23:f,24:d,25:23,33:25,41:p,42:m,43:g,44:y,45:v,46:x,54:b,72:T,74:S,77:w,89:k,90:C},{4:17,5:s,7:49,8:l,9:r,11:n,13:i,14:14,15:15,16:16,17:18,18:19,19:20,20:21,21:u,22:h,23:f,24:d,25:23,33:25,41:p,42:m,43:g,44:y,45:v,46:x,54:b,72:T,74:S,77:w,89:k,90:C},{4:17,5:s,7:50,8:l,9:r,11:n,13:i,14:14,15:15,16:16,17:18,18:19,19:20,20:21,21:u,22:h,23:f,24:d,25:23,33:25,41:p,42:m,43:g,44:y,45:v,46:x,54:b,72:T,74:S,77:w,89:k,90:C},{26:51,89:[1,52],90:[1,53]},{55:54,89:[1,55],90:[1,56]},{29:[1,59],61:[1,57],63:[1,58]},t(A,[2,17]),t(A,[2,18]),t(A,[2,19]),t(A,[2,20]),{30:60,33:62,75:L,89:k,90:C},{30:63,33:62,75:L,89:k,90:C},{30:64,33:62,75:L,89:k,90:C},t(I,[2,29]),t(I,[2,30]),t(I,[2,31]),t(I,[2,32]),t(I,[2,33]),t(I,[2,34]),t(R,[2,81]),t(R,[2,82]),{1:[2,3]},{8:[2,8]},{8:[2,9]},{8:[2,10]},{8:[2,11]},{8:[2,12]},{8:[2,13]},{8:[2,14]},{8:[2,15]},{8:[2,16]},{27:[1,65],29:[1,66]},t(E,[2,79]),t(E,[2,80]),{27:[1,67],29:[1,68]},t(E,[2,85]),t(E,[2,86]),{62:69,65:_,66:D,67:O,68:N,69:P,70:B,71:F},{62:77,65:_,66:D,67:O,68:N,69:P,70:B,71:F},{30:78,33:62,75:L,89:k,90:C},{73:79,75:V,76:$,78:81,79:82,80:U,81:j,82:ee,83:q,84:oe,85:Q,86:ue,87:te,88:re},t(J,[2,60]),t(J,[2,62]),{73:93,75:V,76:$,78:81,79:82,80:U,81:j,82:ee,83:q,84:oe,85:Q,86:ue,87:te,88:re},{30:94,33:62,75:L,76:$,89:k,90:C},{5:[1,95]},{30:96,33:62,75:L,89:k,90:C},{5:[1,97]},{30:98,33:62,75:L,89:k,90:C},{63:[1,99]},t(K,[2,50]),t(K,[2,51]),t(K,[2,52]),t(K,[2,53]),t(K,[2,54]),t(K,[2,55]),t(K,[2,56]),{64:[1,100]},t(A,[2,59],{76:$}),t(A,[2,64],{76:ae}),{33:103,75:[1,102],89:k,90:C},t(Z,[2,65],{79:104,75:V,80:U,81:j,82:ee,83:q,84:oe,85:Q,86:ue,87:te,88:re}),t(de,[2,67]),t(de,[2,69]),t(de,[2,70]),t(de,[2,71]),t(de,[2,72]),t(de,[2,73]),t(de,[2,74]),t(de,[2,75]),t(de,[2,76]),t(de,[2,77]),t(de,[2,78]),t(A,[2,57],{76:ae}),t(A,[2,58],{76:$}),{5:ne,28:105,31:Te,34:W,36:Ve,38:pe,40:Be},{27:[1,112],76:$},{5:Ye,40:He,56:113,57:Le,59:Ie},{27:[1,118],76:$},{33:119,89:k,90:C},{33:120,89:k,90:C},{75:V,78:121,79:82,80:U,81:j,82:ee,83:q,84:oe,85:Q,86:ue,87:te,88:re},t(J,[2,61]),t(J,[2,63]),t(de,[2,68]),t(A,[2,21]),{32:[1,122]},{32:[1,123]},{32:[1,124]},{32:[1,125]},{5:ne,28:126,31:Te,34:W,36:Ve,38:pe,40:Be},t(A,[2,28]),{5:[1,127]},t(A,[2,42]),{32:[1,128]},{32:[1,129]},{5:Ye,40:He,56:130,57:Le,59:Ie},t(A,[2,47]),{5:[1,131]},t(A,[2,48]),t(A,[2,49]),t(Z,[2,66],{79:104,75:V,80:U,81:j,82:ee,83:q,84:oe,85:Q,86:ue,87:te,88:re}),{33:132,89:k,90:C},{35:133,89:[1,134],90:[1,135]},{37:136,47:[1,137],48:[1,138],49:[1,139]},{39:140,50:[1,141],51:[1,142],52:[1,143],53:[1,144]},t(A,[2,27]),{5:ne,28:145,31:Te,34:W,36:Ve,38:pe,40:Be},{58:146,89:[1,147],90:[1,148]},{60:149,89:[1,150],90:[1,151]},t(A,[2,46]),{5:Ye,40:He,56:152,57:Le,59:Ie},{5:[1,153]},{5:[1,154]},{5:[2,83]},{5:[2,84]},{5:[1,155]},{5:[2,35]},{5:[2,36]},{5:[2,37]},{5:[1,156]},{5:[2,38]},{5:[2,39]},{5:[2,40]},{5:[2,41]},t(A,[2,22]),{5:[1,157]},{5:[2,87]},{5:[2,88]},{5:[1,158]},{5:[2,89]},{5:[2,90]},t(A,[2,43]),{5:ne,28:159,31:Te,34:W,36:Ve,38:pe,40:Be},{5:ne,28:160,31:Te,34:W,36:Ve,38:pe,40:Be},{5:ne,28:161,31:Te,34:W,36:Ve,38:pe,40:Be},{5:ne,28:162,31:Te,34:W,36:Ve,38:pe,40:Be},{5:Ye,40:He,56:163,57:Le,59:Ie},{5:Ye,40:He,56:164,57:Le,59:Ie},t(A,[2,23]),t(A,[2,24]),t(A,[2,25]),t(A,[2,26]),t(A,[2,44]),t(A,[2,45])],defaultActions:{8:[2,2],12:[2,1],41:[2,3],42:[2,8],43:[2,9],44:[2,10],45:[2,11],46:[2,12],47:[2,13],48:[2,14],49:[2,15],50:[2,16],134:[2,83],135:[2,84],137:[2,35],138:[2,36],139:[2,37],141:[2,38],142:[2,39],143:[2,40],144:[2,41],147:[2,87],148:[2,88],150:[2,89],151:[2,90]},parseError:o(function(xe,Y){if(Y.recoverable)this.trace(xe);else{var he=new Error(xe);throw he.hash=Y,he}},"parseError"),parse:o(function(xe){var Y=this,he=[0],z=[],se=[null],le=[],ke=this.table,ve="",ye=0,Re=0,_e=0,ze=2,Ke=1,xt=le.slice.call(arguments,1),We=Object.create(this.lexer),Oe={yy:{}};for(var et in this.yy)Object.prototype.hasOwnProperty.call(this.yy,et)&&(Oe.yy[et]=this.yy[et]);We.setInput(xe,Oe.yy),Oe.yy.lexer=We,Oe.yy.parser=this,typeof We.yylloc>"u"&&(We.yylloc={});var Ue=We.yylloc;le.push(Ue);var lt=We.options&&We.options.ranges;typeof Oe.yy.parseError=="function"?this.parseError=Oe.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function Gt(ar){he.length=he.length-2*ar,se.length=se.length-ar,le.length=le.length-ar}o(Gt,"popStack");function vt(){var ar;return ar=z.pop()||We.lex()||Ke,typeof ar!="number"&&(ar instanceof Array&&(z=ar,ar=z.pop()),ar=Y.symbols_[ar]||ar),ar}o(vt,"lex");for(var Lt,dt,nt,bt,wt,yt,ft={},Ur,_t,bn,Br;;){if(nt=he[he.length-1],this.defaultActions[nt]?bt=this.defaultActions[nt]:((Lt===null||typeof Lt>"u")&&(Lt=vt()),bt=ke[nt]&&ke[nt][Lt]),typeof bt>"u"||!bt.length||!bt[0]){var cr="";Br=[];for(Ur in ke[nt])this.terminals_[Ur]&&Ur>ze&&Br.push("'"+this.terminals_[Ur]+"'");We.showPosition?cr="Parse error on line "+(ye+1)+`: +`+We.showPosition()+` +Expecting `+Br.join(", ")+", got '"+(this.terminals_[Lt]||Lt)+"'":cr="Parse error on line "+(ye+1)+": Unexpected "+(Lt==Ke?"end of input":"'"+(this.terminals_[Lt]||Lt)+"'"),this.parseError(cr,{text:We.match,token:this.terminals_[Lt]||Lt,line:We.yylineno,loc:Ue,expected:Br})}if(bt[0]instanceof Array&&bt.length>1)throw new Error("Parse Error: multiple actions possible at state: "+nt+", token: "+Lt);switch(bt[0]){case 1:he.push(Lt),se.push(We.yytext),le.push(We.yylloc),he.push(bt[1]),Lt=null,dt?(Lt=dt,dt=null):(Re=We.yyleng,ve=We.yytext,ye=We.yylineno,Ue=We.yylloc,_e>0&&_e--);break;case 2:if(_t=this.productions_[bt[1]][1],ft.$=se[se.length-_t],ft._$={first_line:le[le.length-(_t||1)].first_line,last_line:le[le.length-1].last_line,first_column:le[le.length-(_t||1)].first_column,last_column:le[le.length-1].last_column},lt&&(ft._$.range=[le[le.length-(_t||1)].range[0],le[le.length-1].range[1]]),yt=this.performAction.apply(ft,[ve,Re,ye,Oe.yy,bt[1],se,le].concat(xt)),typeof yt<"u")return yt;_t&&(he=he.slice(0,-1*_t*2),se=se.slice(0,-1*_t),le=le.slice(0,-1*_t)),he.push(this.productions_[bt[1]][0]),se.push(ft.$),le.push(ft._$),bn=ke[he[he.length-2]][he[he.length-1]],he.push(bn);break;case 3:return!0}}return!0},"parse")},Ce=(function(){var fe={EOF:1,parseError:o(function(Y,he){if(this.yy.parser)this.yy.parser.parseError(Y,he);else throw new Error(Y)},"parseError"),setInput:o(function(xe,Y){return this.yy=Y||this.yy||{},this._input=xe,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},"setInput"),input:o(function(){var xe=this._input[0];this.yytext+=xe,this.yyleng++,this.offset++,this.match+=xe,this.matched+=xe;var Y=xe.match(/(?:\r\n?|\n).*/g);return Y?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),xe},"input"),unput:o(function(xe){var Y=xe.length,he=xe.split(/(?:\r\n?|\n)/g);this._input=xe+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-Y),this.offset-=Y;var z=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),he.length-1&&(this.yylineno-=he.length-1);var se=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:he?(he.length===z.length?this.yylloc.first_column:0)+z[z.length-he.length].length-he[0].length:this.yylloc.first_column-Y},this.options.ranges&&(this.yylloc.range=[se[0],se[0]+this.yyleng-Y]),this.yyleng=this.yytext.length,this},"unput"),more:o(function(){return this._more=!0,this},"more"),reject:o(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},"reject"),less:o(function(xe){this.unput(this.match.slice(xe))},"less"),pastInput:o(function(){var xe=this.matched.substr(0,this.matched.length-this.match.length);return(xe.length>20?"...":"")+xe.substr(-20).replace(/\n/g,"")},"pastInput"),upcomingInput:o(function(){var xe=this.match;return xe.length<20&&(xe+=this._input.substr(0,20-xe.length)),(xe.substr(0,20)+(xe.length>20?"...":"")).replace(/\n/g,"")},"upcomingInput"),showPosition:o(function(){var xe=this.pastInput(),Y=new Array(xe.length+1).join("-");return xe+this.upcomingInput()+` +`+Y+"^"},"showPosition"),test_match:o(function(xe,Y){var he,z,se;if(this.options.backtrack_lexer&&(se={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&&(se.yylloc.range=this.yylloc.range.slice(0))),z=xe[0].match(/(?:\r\n?|\n).*/g),z&&(this.yylineno+=z.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:z?z[z.length-1].length-z[z.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+xe[0].length},this.yytext+=xe[0],this.match+=xe[0],this.matches=xe,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(xe[0].length),this.matched+=xe[0],he=this.performAction.call(this,this.yy,this,Y,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),he)return he;if(this._backtrack){for(var le in se)this[le]=se[le];return!1}return!1},"test_match"),next:o(function(){if(this.done)return this.EOF;this._input||(this.done=!0);var xe,Y,he,z;this._more||(this.yytext="",this.match="");for(var se=this._currentRules(),le=0;leY[0].length)){if(Y=he,z=le,this.options.backtrack_lexer){if(xe=this.test_match(he,se[le]),xe!==!1)return xe;if(this._backtrack){Y=!1;continue}else return!1}else if(!this.options.flex)break}return Y?(xe=this.test_match(Y,se[z]),xe!==!1?xe:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text. +`+this.showPosition(),{text:"",token:null,line:this.yylineno})},"next"),lex:o(function(){var Y=this.next();return Y||this.lex()},"lex"),begin:o(function(Y){this.conditionStack.push(Y)},"begin"),popState:o(function(){var Y=this.conditionStack.length-1;return Y>0?this.conditionStack.pop():this.conditionStack[0]},"popState"),_currentRules:o(function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},"_currentRules"),topState:o(function(Y){return Y=this.conditionStack.length-1-Math.abs(Y||0),Y>=0?this.conditionStack[Y]:"INITIAL"},"topState"),pushState:o(function(Y){this.begin(Y)},"pushState"),stateStackSize:o(function(){return this.conditionStack.length},"stateStackSize"),options:{"case-insensitive":!0},performAction:o(function(Y,he,z,se){var le=se;switch(z){case 0:return"title";case 1:return this.begin("acc_title"),9;break;case 2:return this.popState(),"acc_title_value";break;case 3:return this.begin("acc_descr"),11;break;case 4:return this.popState(),"acc_descr_value";break;case 5:this.begin("acc_descr_multiline");break;case 6:this.popState();break;case 7:return"acc_descr_multiline_value";case 8:return 21;case 9:return 22;case 10:return 23;case 11:return 24;case 12:return 5;case 13:break;case 14:break;case 15:break;case 16:return 8;case 17:return 6;case 18:return 27;case 19:return 40;case 20:return 29;case 21:return 32;case 22:return 31;case 23:return 34;case 24:return 36;case 25:return 38;case 26:return 41;case 27:return 42;case 28:return 43;case 29:return 44;case 30:return 45;case 31:return 46;case 32:return 47;case 33:return 48;case 34:return 49;case 35:return 50;case 36:return 51;case 37:return 52;case 38:return 53;case 39:return 54;case 40:return 65;case 41:return 66;case 42:return 67;case 43:return 68;case 44:return 69;case 45:return 70;case 46:return 71;case 47:return 57;case 48:return 59;case 49:return this.begin("style"),77;break;case 50:return 75;case 51:return 81;case 52:return 88;case 53:return"PERCENT";case 54:return 86;case 55:return 84;case 56:break;case 57:this.begin("string");break;case 58:this.popState();break;case 59:return this.begin("style"),72;break;case 60:return this.begin("style"),74;break;case 61:return 61;case 62:return 64;case 63:return 63;case 64:this.begin("string");break;case 65:this.popState();break;case 66:return"qString";case 67:return he.yytext=he.yytext.trim(),89;break;case 68:return 75;case 69:return 80;case 70:return 76}},"anonymous"),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,/^(?:.*direction\s+TB[^\n]*)/i,/^(?:.*direction\s+BT[^\n]*)/i,/^(?:.*direction\s+RL[^\n]*)/i,/^(?:.*direction\s+LR[^\n]*)/i,/^(?:(\r?\n)+)/i,/^(?:\s+)/i,/^(?:#[^\n]*)/i,/^(?:%[^\n]*)/i,/^(?:$)/i,/^(?:requirementDiagram\b)/i,/^(?:\{)/i,/^(?:\})/i,/^(?::{3})/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,/^(?:style\b)/i,/^(?:\w+)/i,/^(?::)/i,/^(?:;)/i,/^(?:%)/i,/^(?:-)/i,/^(?:#)/i,/^(?: )/i,/^(?:["])/i,/^(?:\n)/i,/^(?:classDef\b)/i,/^(?:class\b)/i,/^(?:<-)/i,/^(?:->)/i,/^(?:-)/i,/^(?:["])/i,/^(?:["])/i,/^(?:[^"]*)/i,/^(?:[\w][^:,\r\n\{\<\>\-\=]*)/i,/^(?:\w+)/i,/^(?:[0-9]+)/i,/^(?:,)/i],conditions:{acc_descr_multiline:{rules:[6,7,68,69,70],inclusive:!1},acc_descr:{rules:[4,68,69,70],inclusive:!1},acc_title:{rules:[2,68,69,70],inclusive:!1},style:{rules:[50,51,52,53,54,55,56,57,58,68,69,70],inclusive:!1},unqString:{rules:[68,69,70],inclusive:!1},token:{rules:[68,69,70],inclusive:!1},string:{rules:[65,66,68,69,70],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,48,49,59,60,61,62,63,64,67,68,69,70],inclusive:!0}}};return fe})();Ne.lexer=Ce;function Fe(){this.yy={}}return o(Fe,"Parser"),Fe.prototype=Ne,Ne.Parser=Fe,new Fe})();e$.parser=e$;_ye=e$});var Z6,Lye=M(()=>{"use strict";Xt();pt();ci();Z6=class{constructor(){this.relations=[];this.latestRequirement=this.getInitialRequirement();this.requirements=new Map;this.latestElement=this.getInitialElement();this.elements=new Map;this.classes=new Map;this.direction="TB";this.RequirementType={REQUIREMENT:"Requirement",FUNCTIONAL_REQUIREMENT:"Functional Requirement",INTERFACE_REQUIREMENT:"Interface Requirement",PERFORMANCE_REQUIREMENT:"Performance Requirement",PHYSICAL_REQUIREMENT:"Physical Requirement",DESIGN_CONSTRAINT:"Design Constraint"};this.RiskLevel={LOW_RISK:"Low",MED_RISK:"Medium",HIGH_RISK:"High"};this.VerifyType={VERIFY_ANALYSIS:"Analysis",VERIFY_DEMONSTRATION:"Demonstration",VERIFY_INSPECTION:"Inspection",VERIFY_TEST:"Test"};this.Relationships={CONTAINS:"contains",COPIES:"copies",DERIVES:"derives",SATISFIES:"satisfies",VERIFIES:"verifies",REFINES:"refines",TRACES:"traces"};this.setAccTitle=Rr;this.getAccTitle=Mr;this.setAccDescription=Ir;this.getAccDescription=Or;this.setDiagramTitle=$r;this.getDiagramTitle=Pr;this.getConfig=o(()=>ge().requirement,"getConfig");this.clear(),this.setDirection=this.setDirection.bind(this),this.addRequirement=this.addRequirement.bind(this),this.setNewReqId=this.setNewReqId.bind(this),this.setNewReqRisk=this.setNewReqRisk.bind(this),this.setNewReqText=this.setNewReqText.bind(this),this.setNewReqVerifyMethod=this.setNewReqVerifyMethod.bind(this),this.addElement=this.addElement.bind(this),this.setNewElementType=this.setNewElementType.bind(this),this.setNewElementDocRef=this.setNewElementDocRef.bind(this),this.addRelationship=this.addRelationship.bind(this),this.setCssStyle=this.setCssStyle.bind(this),this.setClass=this.setClass.bind(this),this.defineClass=this.defineClass.bind(this),this.setAccTitle=this.setAccTitle.bind(this),this.setAccDescription=this.setAccDescription.bind(this)}static{o(this,"RequirementDB")}getDirection(){return this.direction}setDirection(e){this.direction=e}resetLatestRequirement(){this.latestRequirement=this.getInitialRequirement()}resetLatestElement(){this.latestElement=this.getInitialElement()}getInitialRequirement(){return{requirementId:"",text:"",risk:"",verifyMethod:"",name:"",type:"",cssStyles:[],classes:["default"]}}getInitialElement(){return{name:"",type:"",docRef:"",cssStyles:[],classes:["default"]}}addRequirement(e,r){return this.requirements.has(e)||this.requirements.set(e,{name:e,type:r,requirementId:this.latestRequirement.requirementId,text:this.latestRequirement.text,risk:this.latestRequirement.risk,verifyMethod:this.latestRequirement.verifyMethod,cssStyles:[],classes:["default"]}),this.resetLatestRequirement(),this.requirements.get(e)}getRequirements(){return this.requirements}setNewReqId(e){this.latestRequirement!==void 0&&(this.latestRequirement.requirementId=e)}setNewReqText(e){this.latestRequirement!==void 0&&(this.latestRequirement.text=e)}setNewReqRisk(e){this.latestRequirement!==void 0&&(this.latestRequirement.risk=e)}setNewReqVerifyMethod(e){this.latestRequirement!==void 0&&(this.latestRequirement.verifyMethod=e)}addElement(e){return this.elements.has(e)||(this.elements.set(e,{name:e,type:this.latestElement.type,docRef:this.latestElement.docRef,cssStyles:[],classes:["default"]}),X.info("Added new element: ",e)),this.resetLatestElement(),this.elements.get(e)}getElements(){return this.elements}setNewElementType(e){this.latestElement!==void 0&&(this.latestElement.type=e)}setNewElementDocRef(e){this.latestElement!==void 0&&(this.latestElement.docRef=e)}addRelationship(e,r,n){this.relations.push({type:e,src:r,dst:n})}getRelationships(){return this.relations}clear(){this.relations=[],this.resetLatestRequirement(),this.requirements=new Map,this.resetLatestElement(),this.elements=new Map,this.classes=new Map,Sr()}setCssStyle(e,r){for(let n of e){let i=this.requirements.get(n)??this.elements.get(n);if(!r||!i)return;for(let a of r)a.includes(",")?i.cssStyles.push(...a.split(",")):i.cssStyles.push(a)}}setClass(e,r){for(let n of e){let i=this.requirements.get(n)??this.elements.get(n);if(i)for(let a of r){i.classes.push(a);let s=this.classes.get(a)?.styles;s&&i.cssStyles.push(...s)}}}defineClass(e,r){for(let n of e){let i=this.classes.get(n);i===void 0&&(i={id:n,styles:[],textStyles:[]},this.classes.set(n,i)),r&&r.forEach(function(a){if(/color/.exec(a)){let s=a.replace("fill","bgFill");i.textStyles.push(s)}i.styles.push(a)}),this.requirements.forEach(a=>{a.classes.includes(n)&&a.cssStyles.push(...r.flatMap(s=>s.split(",")))}),this.elements.forEach(a=>{a.classes.includes(n)&&a.cssStyles.push(...r.flatMap(s=>s.split(",")))})}}getClasses(){return this.classes}getData(){let e=ge(),r=[],n=[];for(let i of this.requirements.values()){let a=i;a.id=i.name,a.cssStyles=i.cssStyles,a.cssClasses=i.classes.join(" "),a.shape="requirementBox",a.look=e.look,r.push(a)}for(let i of this.elements.values()){let a=i;a.shape="requirementBox",a.look=e.look,a.id=i.name,a.cssStyles=i.cssStyles,a.cssClasses=i.classes.join(" "),r.push(a)}for(let i of this.relations){let a=0,s=i.type===this.Relationships.CONTAINS,l={id:`${i.src}-${i.dst}-${a}`,start:this.requirements.get(i.src)?.name??this.elements.get(i.src)?.name,end:this.requirements.get(i.dst)?.name??this.elements.get(i.dst)?.name,label:`<<${i.type}>>`,classes:"relationshipLine",style:["fill:none",s?"":"stroke-dasharray: 10,7"],labelpos:"c",thickness:"normal",type:"normal",pattern:s?"normal":"dashed",arrowTypeStart:s?"requirement_contains":"",arrowTypeEnd:s?"":"requirement_arrow",look:e.look};n.push(l),a++}return{nodes:r,edges:n,other:{},config:e,direction:this.getDirection()}}}});var YZe,Rye,Nye=M(()=>{"use strict";YZe=o(t=>` + + marker { + fill: ${t.relationColor}; + stroke: ${t.relationColor}; + } + + marker.cross { + stroke: ${t.lineColor}; + } + + svg { + font-family: ${t.fontFamily}; + font-size: ${t.fontSize}; + } + + .reqBox { + fill: ${t.requirementBackground}; + fill-opacity: 1.0; + stroke: ${t.requirementBorderColor}; + stroke-width: ${t.requirementBorderSize}; + } + + .reqTitle, .reqLabel{ + fill: ${t.requirementTextColor}; + } + .reqLabelBox { + fill: ${t.relationLabelBackground}; + fill-opacity: 1.0; + } + + .req-title-line { + stroke: ${t.requirementBorderColor}; + stroke-width: ${t.requirementBorderSize}; + } + .relationshipLine { + stroke: ${t.relationColor}; + stroke-width: 1; + } + .relationshipLabel { + fill: ${t.relationLabelColor}; + } + .divider { + stroke: ${t.nodeBorder}; + stroke-width: 1; + } + .label { + font-family: ${t.fontFamily}; + color: ${t.nodeTextColor||t.textColor}; + } + .label text,span { + fill: ${t.nodeTextColor||t.textColor}; + color: ${t.nodeTextColor||t.textColor}; + } + .labelBkg { + background-color: ${t.edgeLabelBackground}; + } + +`,"getStyles"),Rye=YZe});var t$={};dr(t$,{draw:()=>XZe});var XZe,Mye=M(()=>{"use strict";Xt();pt();ep();Nf();Mf();tr();XZe=o(async function(t,e,r,n){X.info("REF0:"),X.info("Drawing requirement diagram (unified)",e);let{securityLevel:i,state:a,layout:s}=ge(),l=n.db.getData(),u=Vo(e,i);l.type=n.type,l.layoutAlgorithm=$c(s),l.nodeSpacing=a?.nodeSpacing??50,l.rankSpacing=a?.rankSpacing??50,l.markers=["requirement_contains","requirement_arrow"],l.diagramId=e,await Qo(l,u);let h=8;qt.insertTitle(u,"requirementDiagramTitleText",a?.titleTopMargin??25,n.db.getDiagramTitle()),Ws(u,h,"requirementDiagram",a?.useMaxWidth??!0)},"draw")});var Iye={};dr(Iye,{diagram:()=>jZe});var jZe,Oye=M(()=>{"use strict";Dye();Lye();Nye();Mye();jZe={parser:_ye,get db(){return new Z6},renderer:t$,styles:Rye}});var r$,Fye,$ye=M(()=>{"use strict";r$=(function(){var t=o(function(re,J,K,ae){for(K=K||{},ae=re.length;ae--;K[re[ae]]=J);return K},"o"),e=[1,2],r=[1,3],n=[1,4],i=[2,4],a=[1,9],s=[1,11],l=[1,13],u=[1,14],h=[1,16],f=[1,17],d=[1,18],p=[1,24],m=[1,25],g=[1,26],y=[1,27],v=[1,28],x=[1,29],b=[1,30],T=[1,31],S=[1,32],w=[1,33],k=[1,34],C=[1,35],A=[1,36],L=[1,37],I=[1,38],R=[1,39],E=[1,41],_=[1,42],D=[1,43],O=[1,44],N=[1,45],P=[1,46],B=[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,55,60,61,62,63,71],F=[2,71],V=[4,5,16,50,52,53],$=[4,5,13,14,16,18,21,23,29,30,31,33,35,36,37,38,39,41,43,44,46,50,52,53,55,60,61,62,63,71],U=[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,55,60,61,62,63,71],j=[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,55,60,61,62,63,71],ee=[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,55,60,61,62,63,71],q=[69,70,71],oe=[1,127],Q={trace:o(function(){},"trace"),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,actor_with_config:54,note:55,placement:56,text2:57,over:58,actor_pair:59,links:60,link:61,properties:62,details:63,spaceList:64,",":65,left_of:66,right_of:67,signaltype:68,"+":69,"-":70,ACTOR:71,config_object:72,CONFIG_START:73,CONFIG_CONTENT:74,CONFIG_END:75,SOLID_OPEN_ARROW:76,DOTTED_OPEN_ARROW:77,SOLID_ARROW:78,BIDIRECTIONAL_SOLID_ARROW:79,DOTTED_ARROW:80,BIDIRECTIONAL_DOTTED_ARROW:81,SOLID_CROSS:82,DOTTED_CROSS:83,SOLID_POINT:84,DOTTED_POINT:85,TXT:86,$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",55:"note",58:"over",60:"links",61:"link",62:"properties",63:"details",65:",",66:"left_of",67:"right_of",69:"+",70:"-",71:"ACTOR",73:"CONFIG_START",74:"CONFIG_CONTENT",75:"CONFIG_END",76:"SOLID_OPEN_ARROW",77:"DOTTED_OPEN_ARROW",78:"SOLID_ARROW",79:"BIDIRECTIONAL_SOLID_ARROW",80:"DOTTED_ARROW",81:"BIDIRECTIONAL_DOTTED_ARROW",82:"SOLID_CROSS",83:"DOTTED_CROSS",84:"SOLID_POINT",85:"DOTTED_POINT",86:"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],[12,3],[24,4],[24,4],[25,3],[26,3],[27,3],[28,3],[64,2],[64,1],[59,3],[59,1],[56,1],[56,1],[17,5],[17,5],[17,4],[54,2],[72,3],[22,1],[68,1],[68,1],[68,1],[68,1],[68,1],[68,1],[68,1],[68,1],[68,1],[68,1],[57,1]],performAction:o(function(J,K,ae,Z,de,ne,Te){var W=ne.length-1;switch(de){case 3:return Z.apply(ne[W]),ne[W];break;case 4:case 9:this.$=[];break;case 5:case 10:ne[W-1].push(ne[W]),this.$=ne[W-1];break;case 6:case 7:case 11:case 12:this.$=ne[W];break;case 8:case 13:this.$=[];break;case 15:ne[W].type="createParticipant",this.$=ne[W];break;case 16:ne[W-1].unshift({type:"boxStart",boxData:Z.parseBoxData(ne[W-2])}),ne[W-1].push({type:"boxEnd",boxText:ne[W-2]}),this.$=ne[W-1];break;case 18:this.$={type:"sequenceIndex",sequenceIndex:Number(ne[W-2]),sequenceIndexStep:Number(ne[W-1]),sequenceVisible:!0,signalType:Z.LINETYPE.AUTONUMBER};break;case 19:this.$={type:"sequenceIndex",sequenceIndex:Number(ne[W-1]),sequenceIndexStep:1,sequenceVisible:!0,signalType:Z.LINETYPE.AUTONUMBER};break;case 20:this.$={type:"sequenceIndex",sequenceVisible:!1,signalType:Z.LINETYPE.AUTONUMBER};break;case 21:this.$={type:"sequenceIndex",sequenceVisible:!0,signalType:Z.LINETYPE.AUTONUMBER};break;case 22:this.$={type:"activeStart",signalType:Z.LINETYPE.ACTIVE_START,actor:ne[W-1].actor};break;case 23:this.$={type:"activeEnd",signalType:Z.LINETYPE.ACTIVE_END,actor:ne[W-1].actor};break;case 29:Z.setDiagramTitle(ne[W].substring(6)),this.$=ne[W].substring(6);break;case 30:Z.setDiagramTitle(ne[W].substring(7)),this.$=ne[W].substring(7);break;case 31:this.$=ne[W].trim(),Z.setAccTitle(this.$);break;case 32:case 33:this.$=ne[W].trim(),Z.setAccDescription(this.$);break;case 34:ne[W-1].unshift({type:"loopStart",loopText:Z.parseMessage(ne[W-2]),signalType:Z.LINETYPE.LOOP_START}),ne[W-1].push({type:"loopEnd",loopText:ne[W-2],signalType:Z.LINETYPE.LOOP_END}),this.$=ne[W-1];break;case 35:ne[W-1].unshift({type:"rectStart",color:Z.parseMessage(ne[W-2]),signalType:Z.LINETYPE.RECT_START}),ne[W-1].push({type:"rectEnd",color:Z.parseMessage(ne[W-2]),signalType:Z.LINETYPE.RECT_END}),this.$=ne[W-1];break;case 36:ne[W-1].unshift({type:"optStart",optText:Z.parseMessage(ne[W-2]),signalType:Z.LINETYPE.OPT_START}),ne[W-1].push({type:"optEnd",optText:Z.parseMessage(ne[W-2]),signalType:Z.LINETYPE.OPT_END}),this.$=ne[W-1];break;case 37:ne[W-1].unshift({type:"altStart",altText:Z.parseMessage(ne[W-2]),signalType:Z.LINETYPE.ALT_START}),ne[W-1].push({type:"altEnd",signalType:Z.LINETYPE.ALT_END}),this.$=ne[W-1];break;case 38:ne[W-1].unshift({type:"parStart",parText:Z.parseMessage(ne[W-2]),signalType:Z.LINETYPE.PAR_START}),ne[W-1].push({type:"parEnd",signalType:Z.LINETYPE.PAR_END}),this.$=ne[W-1];break;case 39:ne[W-1].unshift({type:"parStart",parText:Z.parseMessage(ne[W-2]),signalType:Z.LINETYPE.PAR_OVER_START}),ne[W-1].push({type:"parEnd",signalType:Z.LINETYPE.PAR_END}),this.$=ne[W-1];break;case 40:ne[W-1].unshift({type:"criticalStart",criticalText:Z.parseMessage(ne[W-2]),signalType:Z.LINETYPE.CRITICAL_START}),ne[W-1].push({type:"criticalEnd",signalType:Z.LINETYPE.CRITICAL_END}),this.$=ne[W-1];break;case 41:ne[W-1].unshift({type:"breakStart",breakText:Z.parseMessage(ne[W-2]),signalType:Z.LINETYPE.BREAK_START}),ne[W-1].push({type:"breakEnd",optText:Z.parseMessage(ne[W-2]),signalType:Z.LINETYPE.BREAK_END}),this.$=ne[W-1];break;case 43:this.$=ne[W-3].concat([{type:"option",optionText:Z.parseMessage(ne[W-1]),signalType:Z.LINETYPE.CRITICAL_OPTION},ne[W]]);break;case 45:this.$=ne[W-3].concat([{type:"and",parText:Z.parseMessage(ne[W-1]),signalType:Z.LINETYPE.PAR_AND},ne[W]]);break;case 47:this.$=ne[W-3].concat([{type:"else",altText:Z.parseMessage(ne[W-1]),signalType:Z.LINETYPE.ALT_ELSE},ne[W]]);break;case 48:ne[W-3].draw="participant",ne[W-3].type="addParticipant",ne[W-3].description=Z.parseMessage(ne[W-1]),this.$=ne[W-3];break;case 49:ne[W-1].draw="participant",ne[W-1].type="addParticipant",this.$=ne[W-1];break;case 50:ne[W-3].draw="actor",ne[W-3].type="addParticipant",ne[W-3].description=Z.parseMessage(ne[W-1]),this.$=ne[W-3];break;case 51:ne[W-1].draw="actor",ne[W-1].type="addParticipant",this.$=ne[W-1];break;case 52:ne[W-1].type="destroyParticipant",this.$=ne[W-1];break;case 53:ne[W-1].draw="participant",ne[W-1].type="addParticipant",this.$=ne[W-1];break;case 54:this.$=[ne[W-1],{type:"addNote",placement:ne[W-2],actor:ne[W-1].actor,text:ne[W]}];break;case 55:ne[W-2]=[].concat(ne[W-1],ne[W-1]).slice(0,2),ne[W-2][0]=ne[W-2][0].actor,ne[W-2][1]=ne[W-2][1].actor,this.$=[ne[W-1],{type:"addNote",placement:Z.PLACEMENT.OVER,actor:ne[W-2].slice(0,2),text:ne[W]}];break;case 56:this.$=[ne[W-1],{type:"addLinks",actor:ne[W-1].actor,text:ne[W]}];break;case 57:this.$=[ne[W-1],{type:"addALink",actor:ne[W-1].actor,text:ne[W]}];break;case 58:this.$=[ne[W-1],{type:"addProperties",actor:ne[W-1].actor,text:ne[W]}];break;case 59:this.$=[ne[W-1],{type:"addDetails",actor:ne[W-1].actor,text:ne[W]}];break;case 62:this.$=[ne[W-2],ne[W]];break;case 63:this.$=ne[W];break;case 64:this.$=Z.PLACEMENT.LEFTOF;break;case 65:this.$=Z.PLACEMENT.RIGHTOF;break;case 66:this.$=[ne[W-4],ne[W-1],{type:"addMessage",from:ne[W-4].actor,to:ne[W-1].actor,signalType:ne[W-3],msg:ne[W],activate:!0},{type:"activeStart",signalType:Z.LINETYPE.ACTIVE_START,actor:ne[W-1].actor}];break;case 67:this.$=[ne[W-4],ne[W-1],{type:"addMessage",from:ne[W-4].actor,to:ne[W-1].actor,signalType:ne[W-3],msg:ne[W]},{type:"activeEnd",signalType:Z.LINETYPE.ACTIVE_END,actor:ne[W-4].actor}];break;case 68:this.$=[ne[W-3],ne[W-1],{type:"addMessage",from:ne[W-3].actor,to:ne[W-1].actor,signalType:ne[W-2],msg:ne[W]}];break;case 69:this.$={type:"addParticipant",actor:ne[W-1],config:ne[W]};break;case 70:this.$=ne[W-1].trim();break;case 71:this.$={type:"addParticipant",actor:ne[W]};break;case 72:this.$=Z.LINETYPE.SOLID_OPEN;break;case 73:this.$=Z.LINETYPE.DOTTED_OPEN;break;case 74:this.$=Z.LINETYPE.SOLID;break;case 75:this.$=Z.LINETYPE.BIDIRECTIONAL_SOLID;break;case 76:this.$=Z.LINETYPE.DOTTED;break;case 77:this.$=Z.LINETYPE.BIDIRECTIONAL_DOTTED;break;case 78:this.$=Z.LINETYPE.SOLID_CROSS;break;case 79:this.$=Z.LINETYPE.DOTTED_CROSS;break;case 80:this.$=Z.LINETYPE.SOLID_POINT;break;case 81:this.$=Z.LINETYPE.DOTTED_POINT;break;case 82:this.$=Z.parseMessage(ne[W].trim().substring(1));break}},"anonymous"),table:[{3:1,4:e,5:r,6:n},{1:[3]},{3:5,4:e,5:r,6:n},{3:6,4:e,5:r,6:n},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,55,60,61,62,63,71],i,{7:7}),{1:[2,1]},{1:[2,2]},{1:[2,3],4:a,5:s,8:8,9:10,12:12,13:l,14:u,17:15,18:h,21:f,22:40,23:d,24:19,25:20,26:21,27:22,28:23,29:p,30:m,31:g,33:y,35:v,36:x,37:b,38:T,39:S,41:w,43:k,44:C,46:A,50:L,52:I,53:R,55:E,60:_,61:D,62:O,63:N,71:P},t(B,[2,5]),{9:47,12:12,13:l,14:u,17:15,18:h,21:f,22:40,23:d,24:19,25:20,26:21,27:22,28:23,29:p,30:m,31:g,33:y,35:v,36:x,37:b,38:T,39:S,41:w,43:k,44:C,46:A,50:L,52:I,53:R,55:E,60:_,61:D,62:O,63:N,71:P},t(B,[2,7]),t(B,[2,8]),t(B,[2,14]),{12:48,50:L,52:I,53:R},{15:[1,49]},{5:[1,50]},{5:[1,53],19:[1,51],20:[1,52]},{22:54,71:P},{22:55,71:P},{5:[1,56]},{5:[1,57]},{5:[1,58]},{5:[1,59]},{5:[1,60]},t(B,[2,29]),t(B,[2,30]),{32:[1,61]},{34:[1,62]},t(B,[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,54:72,71:[1,73]},{22:74,71:P},{22:75,71:P},{68:76,76:[1,77],77:[1,78],78:[1,79],79:[1,80],80:[1,81],81:[1,82],82:[1,83],83:[1,84],84:[1,85],85:[1,86]},{56:87,58:[1,88],66:[1,89],67:[1,90]},{22:91,71:P},{22:92,71:P},{22:93,71:P},{22:94,71:P},t([5,51,65,76,77,78,79,80,81,82,83,84,85,86],F),t(B,[2,6]),t(B,[2,15]),t(V,[2,9],{10:95}),t(B,[2,17]),{5:[1,97],19:[1,96]},{5:[1,98]},t(B,[2,21]),{5:[1,99]},{5:[1,100]},t(B,[2,24]),t(B,[2,25]),t(B,[2,26]),t(B,[2,27]),t(B,[2,28]),t(B,[2,31]),t(B,[2,32]),t($,i,{7:101}),t($,i,{7:102}),t($,i,{7:103}),t(U,i,{40:104,7:105}),t(j,i,{42:106,7:107}),t(j,i,{7:107,42:108}),t(ee,i,{45:109,7:110}),t($,i,{7:111}),{5:[1,113],51:[1,112]},{5:[1,114]},t([5,51],F,{72:115,73:[1,116]}),{5:[1,118],51:[1,117]},{5:[1,119]},{22:122,69:[1,120],70:[1,121],71:P},t(q,[2,72]),t(q,[2,73]),t(q,[2,74]),t(q,[2,75]),t(q,[2,76]),t(q,[2,77]),t(q,[2,78]),t(q,[2,79]),t(q,[2,80]),t(q,[2,81]),{22:123,71:P},{22:125,59:124,71:P},{71:[2,64]},{71:[2,65]},{57:126,86:oe},{57:128,86:oe},{57:129,86:oe},{57:130,86:oe},{4:[1,133],5:[1,135],11:132,12:134,16:[1,131],50:L,52:I,53:R},{5:[1,136]},t(B,[2,19]),t(B,[2,20]),t(B,[2,22]),t(B,[2,23]),{4:a,5:s,8:8,9:10,12:12,13:l,14:u,16:[1,137],17:15,18:h,21:f,22:40,23:d,24:19,25:20,26:21,27:22,28:23,29:p,30:m,31:g,33:y,35:v,36:x,37:b,38:T,39:S,41:w,43:k,44:C,46:A,50:L,52:I,53:R,55:E,60:_,61:D,62:O,63:N,71:P},{4:a,5:s,8:8,9:10,12:12,13:l,14:u,16:[1,138],17:15,18:h,21:f,22:40,23:d,24:19,25:20,26:21,27:22,28:23,29:p,30:m,31:g,33:y,35:v,36:x,37:b,38:T,39:S,41:w,43:k,44:C,46:A,50:L,52:I,53:R,55:E,60:_,61:D,62:O,63:N,71:P},{4:a,5:s,8:8,9:10,12:12,13:l,14:u,16:[1,139],17:15,18:h,21:f,22:40,23:d,24:19,25:20,26:21,27:22,28:23,29:p,30:m,31:g,33:y,35:v,36:x,37:b,38:T,39:S,41:w,43:k,44:C,46:A,50:L,52:I,53:R,55:E,60:_,61:D,62:O,63:N,71:P},{16:[1,140]},{4:a,5:s,8:8,9:10,12:12,13:l,14:u,16:[2,46],17:15,18:h,21:f,22:40,23:d,24:19,25:20,26:21,27:22,28:23,29:p,30:m,31:g,33:y,35:v,36:x,37:b,38:T,39:S,41:w,43:k,44:C,46:A,49:[1,141],50:L,52:I,53:R,55:E,60:_,61:D,62:O,63:N,71:P},{16:[1,142]},{4:a,5:s,8:8,9:10,12:12,13:l,14:u,16:[2,44],17:15,18:h,21:f,22:40,23:d,24:19,25:20,26:21,27:22,28:23,29:p,30:m,31:g,33:y,35:v,36:x,37:b,38:T,39:S,41:w,43:k,44:C,46:A,48:[1,143],50:L,52:I,53:R,55:E,60:_,61:D,62:O,63:N,71:P},{16:[1,144]},{16:[1,145]},{4:a,5:s,8:8,9:10,12:12,13:l,14:u,16:[2,42],17:15,18:h,21:f,22:40,23:d,24:19,25:20,26:21,27:22,28:23,29:p,30:m,31:g,33:y,35:v,36:x,37:b,38:T,39:S,41:w,43:k,44:C,46:A,47:[1,146],50:L,52:I,53:R,55:E,60:_,61:D,62:O,63:N,71:P},{4:a,5:s,8:8,9:10,12:12,13:l,14:u,16:[1,147],17:15,18:h,21:f,22:40,23:d,24:19,25:20,26:21,27:22,28:23,29:p,30:m,31:g,33:y,35:v,36:x,37:b,38:T,39:S,41:w,43:k,44:C,46:A,50:L,52:I,53:R,55:E,60:_,61:D,62:O,63:N,71:P},{15:[1,148]},t(B,[2,49]),t(B,[2,53]),{5:[2,69]},{74:[1,149]},{15:[1,150]},t(B,[2,51]),t(B,[2,52]),{22:151,71:P},{22:152,71:P},{57:153,86:oe},{57:154,86:oe},{57:155,86:oe},{65:[1,156],86:[2,63]},{5:[2,56]},{5:[2,82]},{5:[2,57]},{5:[2,58]},{5:[2,59]},t(B,[2,16]),t(V,[2,10]),{12:157,50:L,52:I,53:R},t(V,[2,12]),t(V,[2,13]),t(B,[2,18]),t(B,[2,34]),t(B,[2,35]),t(B,[2,36]),t(B,[2,37]),{15:[1,158]},t(B,[2,38]),{15:[1,159]},t(B,[2,39]),t(B,[2,40]),{15:[1,160]},t(B,[2,41]),{5:[1,161]},{75:[1,162]},{5:[1,163]},{57:164,86:oe},{57:165,86:oe},{5:[2,68]},{5:[2,54]},{5:[2,55]},{22:166,71:P},t(V,[2,11]),t(U,i,{7:105,40:167}),t(j,i,{7:107,42:168}),t(ee,i,{7:110,45:169}),t(B,[2,48]),{5:[2,70]},t(B,[2,50]),{5:[2,66]},{5:[2,67]},{86:[2,62]},{16:[2,47]},{16:[2,45]},{16:[2,43]}],defaultActions:{5:[2,1],6:[2,2],89:[2,64],90:[2,65],115:[2,69],126:[2,56],127:[2,82],128:[2,57],129:[2,58],130:[2,59],153:[2,68],154:[2,54],155:[2,55],162:[2,70],164:[2,66],165:[2,67],166:[2,62],167:[2,47],168:[2,45],169:[2,43]},parseError:o(function(J,K){if(K.recoverable)this.trace(J);else{var ae=new Error(J);throw ae.hash=K,ae}},"parseError"),parse:o(function(J){var K=this,ae=[0],Z=[],de=[null],ne=[],Te=this.table,W="",Ve=0,pe=0,Be=0,Ye=2,He=1,Le=ne.slice.call(arguments,1),Ie=Object.create(this.lexer),Ne={yy:{}};for(var Ce in this.yy)Object.prototype.hasOwnProperty.call(this.yy,Ce)&&(Ne.yy[Ce]=this.yy[Ce]);Ie.setInput(J,Ne.yy),Ne.yy.lexer=Ie,Ne.yy.parser=this,typeof Ie.yylloc>"u"&&(Ie.yylloc={});var Fe=Ie.yylloc;ne.push(Fe);var fe=Ie.options&&Ie.options.ranges;typeof Ne.yy.parseError=="function"?this.parseError=Ne.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function xe(We){ae.length=ae.length-2*We,de.length=de.length-We,ne.length=ne.length-We}o(xe,"popStack");function Y(){var We;return We=Z.pop()||Ie.lex()||He,typeof We!="number"&&(We instanceof Array&&(Z=We,We=Z.pop()),We=K.symbols_[We]||We),We}o(Y,"lex");for(var he,z,se,le,ke,ve,ye={},Re,_e,ze,Ke;;){if(se=ae[ae.length-1],this.defaultActions[se]?le=this.defaultActions[se]:((he===null||typeof he>"u")&&(he=Y()),le=Te[se]&&Te[se][he]),typeof le>"u"||!le.length||!le[0]){var xt="";Ke=[];for(Re in Te[se])this.terminals_[Re]&&Re>Ye&&Ke.push("'"+this.terminals_[Re]+"'");Ie.showPosition?xt="Parse error on line "+(Ve+1)+`: +`+Ie.showPosition()+` +Expecting `+Ke.join(", ")+", got '"+(this.terminals_[he]||he)+"'":xt="Parse error on line "+(Ve+1)+": Unexpected "+(he==He?"end of input":"'"+(this.terminals_[he]||he)+"'"),this.parseError(xt,{text:Ie.match,token:this.terminals_[he]||he,line:Ie.yylineno,loc:Fe,expected:Ke})}if(le[0]instanceof Array&&le.length>1)throw new Error("Parse Error: multiple actions possible at state: "+se+", token: "+he);switch(le[0]){case 1:ae.push(he),de.push(Ie.yytext),ne.push(Ie.yylloc),ae.push(le[1]),he=null,z?(he=z,z=null):(pe=Ie.yyleng,W=Ie.yytext,Ve=Ie.yylineno,Fe=Ie.yylloc,Be>0&&Be--);break;case 2:if(_e=this.productions_[le[1]][1],ye.$=de[de.length-_e],ye._$={first_line:ne[ne.length-(_e||1)].first_line,last_line:ne[ne.length-1].last_line,first_column:ne[ne.length-(_e||1)].first_column,last_column:ne[ne.length-1].last_column},fe&&(ye._$.range=[ne[ne.length-(_e||1)].range[0],ne[ne.length-1].range[1]]),ve=this.performAction.apply(ye,[W,pe,Ve,Ne.yy,le[1],de,ne].concat(Le)),typeof ve<"u")return ve;_e&&(ae=ae.slice(0,-1*_e*2),de=de.slice(0,-1*_e),ne=ne.slice(0,-1*_e)),ae.push(this.productions_[le[1]][0]),de.push(ye.$),ne.push(ye._$),ze=Te[ae[ae.length-2]][ae[ae.length-1]],ae.push(ze);break;case 3:return!0}}return!0},"parse")},ue=(function(){var re={EOF:1,parseError:o(function(K,ae){if(this.yy.parser)this.yy.parser.parseError(K,ae);else throw new Error(K)},"parseError"),setInput:o(function(J,K){return this.yy=K||this.yy||{},this._input=J,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},"setInput"),input:o(function(){var J=this._input[0];this.yytext+=J,this.yyleng++,this.offset++,this.match+=J,this.matched+=J;var K=J.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),J},"input"),unput:o(function(J){var K=J.length,ae=J.split(/(?:\r\n?|\n)/g);this._input=J+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-K),this.offset-=K;var Z=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),ae.length-1&&(this.yylineno-=ae.length-1);var de=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:ae?(ae.length===Z.length?this.yylloc.first_column:0)+Z[Z.length-ae.length].length-ae[0].length:this.yylloc.first_column-K},this.options.ranges&&(this.yylloc.range=[de[0],de[0]+this.yyleng-K]),this.yyleng=this.yytext.length,this},"unput"),more:o(function(){return this._more=!0,this},"more"),reject:o(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},"reject"),less:o(function(J){this.unput(this.match.slice(J))},"less"),pastInput:o(function(){var J=this.matched.substr(0,this.matched.length-this.match.length);return(J.length>20?"...":"")+J.substr(-20).replace(/\n/g,"")},"pastInput"),upcomingInput:o(function(){var J=this.match;return J.length<20&&(J+=this._input.substr(0,20-J.length)),(J.substr(0,20)+(J.length>20?"...":"")).replace(/\n/g,"")},"upcomingInput"),showPosition:o(function(){var J=this.pastInput(),K=new Array(J.length+1).join("-");return J+this.upcomingInput()+` +`+K+"^"},"showPosition"),test_match:o(function(J,K){var ae,Z,de;if(this.options.backtrack_lexer&&(de={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&&(de.yylloc.range=this.yylloc.range.slice(0))),Z=J[0].match(/(?:\r\n?|\n).*/g),Z&&(this.yylineno+=Z.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:Z?Z[Z.length-1].length-Z[Z.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+J[0].length},this.yytext+=J[0],this.match+=J[0],this.matches=J,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(J[0].length),this.matched+=J[0],ae=this.performAction.call(this,this.yy,this,K,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),ae)return ae;if(this._backtrack){for(var ne in de)this[ne]=de[ne];return!1}return!1},"test_match"),next:o(function(){if(this.done)return this.EOF;this._input||(this.done=!0);var J,K,ae,Z;this._more||(this.yytext="",this.match="");for(var de=this._currentRules(),ne=0;neK[0].length)){if(K=ae,Z=ne,this.options.backtrack_lexer){if(J=this.test_match(ae,de[ne]),J!==!1)return J;if(this._backtrack){K=!1;continue}else return!1}else if(!this.options.flex)break}return K?(J=this.test_match(K,de[Z]),J!==!1?J:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text. +`+this.showPosition(),{text:"",token:null,line:this.yylineno})},"next"),lex:o(function(){var K=this.next();return K||this.lex()},"lex"),begin:o(function(K){this.conditionStack.push(K)},"begin"),popState:o(function(){var K=this.conditionStack.length-1;return K>0?this.conditionStack.pop():this.conditionStack[0]},"popState"),_currentRules:o(function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},"_currentRules"),topState:o(function(K){return K=this.conditionStack.length-1-Math.abs(K||0),K>=0?this.conditionStack[K]:"INITIAL"},"topState"),pushState:o(function(K){this.begin(K)},"pushState"),stateStackSize:o(function(){return this.conditionStack.length},"stateStackSize"),options:{"case-insensitive":!0},performAction:o(function(K,ae,Z,de){var ne=de;switch(Z){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("CONFIG"),73;break;case 8:return 74;case 9:return this.popState(),this.popState(),75;break;case 10:return ae.yytext=ae.yytext.trim(),71;break;case 11:return ae.yytext=ae.yytext.trim(),this.begin("ALIAS"),71;break;case 12:return this.begin("LINE"),14;break;case 13:return this.begin("ID"),50;break;case 14:return this.begin("ID"),52;break;case 15:return 13;case 16:return this.begin("ID"),53;break;case 17:return ae.yytext=ae.yytext.trim(),this.begin("ALIAS"),71;break;case 18:return this.popState(),this.popState(),this.begin("LINE"),51;break;case 19:return this.popState(),this.popState(),5;break;case 20:return this.begin("LINE"),36;break;case 21:return this.begin("LINE"),37;break;case 22:return this.begin("LINE"),38;break;case 23:return this.begin("LINE"),39;break;case 24:return this.begin("LINE"),49;break;case 25:return this.begin("LINE"),41;break;case 26:return this.begin("LINE"),43;break;case 27:return this.begin("LINE"),48;break;case 28:return this.begin("LINE"),44;break;case 29:return this.begin("LINE"),47;break;case 30:return this.begin("LINE"),46;break;case 31:return this.popState(),15;break;case 32:return 16;case 33:return 66;case 34:return 67;case 35:return 60;case 36:return 61;case 37:return 62;case 38:return 63;case 39:return 58;case 40:return 55;case 41:return this.begin("ID"),21;break;case 42:return this.begin("ID"),23;break;case 43:return 29;case 44:return 30;case 45:return this.begin("acc_title"),31;break;case 46:return this.popState(),"acc_title_value";break;case 47:return this.begin("acc_descr"),33;break;case 48:return this.popState(),"acc_descr_value";break;case 49:this.begin("acc_descr_multiline");break;case 50:this.popState();break;case 51:return"acc_descr_multiline_value";case 52:return 6;case 53:return 18;case 54:return 20;case 55:return 65;case 56:return 5;case 57:return ae.yytext=ae.yytext.trim(),71;break;case 58:return 78;case 59:return 79;case 60:return 80;case 61:return 81;case 62:return 76;case 63:return 77;case 64:return 82;case 65:return 83;case 66:return 84;case 67:return 85;case 68:return 86;case 69:return 86;case 70:return 69;case 71:return 70;case 72:return 5;case 73:return"INVALID"}},"anonymous"),rules:[/^(?:[\n]+)/i,/^(?:\s+)/i,/^(?:((?!\n)\s)+)/i,/^(?:#[^\n]*)/i,/^(?:%(?!\{)[^\n]*)/i,/^(?:[^\}]%%[^\n]*)/i,/^(?:[0-9]+(?=[ \n]+))/i,/^(?:@\{)/i,/^(?:[^\}]+)/i,/^(?:\})/i,/^(?:[^\<->\->:\n,;@\s]+(?=@\{))/i,/^(?:[^\<->\->:\n,;@]+?([\-]*[^\<->\->:\n,;@]+?)*?(?=((?!\n)\s)+as(?!\n)\s|[#\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,/^(?:->)/i,/^(?:-->)/i,/^(?:-[x])/i,/^(?:--[x])/i,/^(?:-[\)])/i,/^(?:--[\)])/i,/^(?::(?:(?:no)?wrap)?[^#\n;]*)/i,/^(?::)/i,/^(?:\+)/i,/^(?:-)/i,/^(?:$)/i,/^(?:.)/i],conditions:{acc_descr_multiline:{rules:[50,51],inclusive:!1},acc_descr:{rules:[48],inclusive:!1},acc_title:{rules:[46],inclusive:!1},ID:{rules:[2,3,7,10,11,17],inclusive:!1},ALIAS:{rules:[2,3,18,19],inclusive:!1},LINE:{rules:[2,3,31],inclusive:!1},CONFIG:{rules:[8,9],inclusive:!1},CONFIG_DATA:{rules:[],inclusive:!1},INITIAL:{rules:[0,1,3,4,5,6,12,13,14,15,16,20,21,22,23,24,25,26,27,28,29,30,32,33,34,35,36,37,38,39,40,41,42,43,44,45,47,49,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73],inclusive:!0}}};return re})();Q.lexer=ue;function te(){this.yy={}}return o(te,"Parser"),te.prototype=Q,Q.Parser=te,new te})();r$.parser=r$;Fye=r$});var JZe,eJe,tJe,T4,J6,n$=M(()=>{"use strict";Xt();k2();pt();fF();gr();ci();JZe={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,BIDIRECTIONAL_SOLID:33,BIDIRECTIONAL_DOTTED:34},eJe={FILLED:0,OPEN:1},tJe={LEFTOF:0,RIGHTOF:1,OVER:2},T4={ACTOR:"actor",BOUNDARY:"boundary",COLLECTIONS:"collections",CONTROL:"control",DATABASE:"database",ENTITY:"entity",PARTICIPANT:"participant",QUEUE:"queue"},J6=class{constructor(){this.state=new J1(()=>({prevActor:void 0,actors:new Map,createdActors:new Map,destroyedActors:new Map,boxes:[],messages:[],notes:[],sequenceNumbersEnabled:!1,wrapEnabled:void 0,currentBox:void 0,lastCreated:void 0,lastDestroyed:void 0}));this.setAccTitle=Rr;this.setAccDescription=Ir;this.setDiagramTitle=$r;this.getAccTitle=Mr;this.getAccDescription=Or;this.getDiagramTitle=Pr;this.apply=this.apply.bind(this),this.parseBoxData=this.parseBoxData.bind(this),this.parseMessage=this.parseMessage.bind(this),this.clear(),this.setWrap(ge().wrap),this.LINETYPE=JZe,this.ARROWTYPE=eJe,this.PLACEMENT=tJe}static{o(this,"SequenceDB")}addBox(e){this.state.records.boxes.push({name:e.text,wrap:e.wrap??this.autoWrap(),fill:e.color,actorKeys:[]}),this.state.records.currentBox=this.state.records.boxes.slice(-1)[0]}addActor(e,r,n,i,a){let s=this.state.records.currentBox,l;if(a!==void 0){let h;a.includes(` +`)?h=a+` +`:h=`{ +`+a+` +}`,l=Kh(h,{schema:jh})}i=l?.type??i;let u=this.state.records.actors.get(e);if(u){if(this.state.records.currentBox&&u.box&&this.state.records.currentBox!==u.box)throw new Error(`A same participant should only be defined in one Box: ${u.name} can't be in '${u.box.name}' and in '${this.state.records.currentBox.name}' at the same time.`);if(s=u.box?u.box:this.state.records.currentBox,u.box=s,u&&r===u.name&&n==null)return}if(n?.text==null&&(n={text:r,type:i}),(i==null||n.text==null)&&(n={text:r,type:i}),this.state.records.actors.set(e,{box:s,name:r,description:n.text,wrap:n.wrap??this.autoWrap(),prevActor:this.state.records.prevActor,links:{},properties:{},actorCnt:null,rectData:null,type:i??"participant"}),this.state.records.prevActor){let h=this.state.records.actors.get(this.state.records.prevActor);h&&(h.nextActor=e)}this.state.records.currentBox&&this.state.records.currentBox.actorKeys.push(e),this.state.records.prevActor=e}activationCount(e){let r,n=0;if(!e)return 0;for(r=0;r>-",token:"->>-",line:"1",loc:{first_line:1,last_line:1,first_column:1,last_column:1},expected:["'ACTIVE_PARTICIPANT'"]},l}return this.state.records.messages.push({id:this.state.records.messages.length.toString(),from:e,to:r,message:n?.text??"",wrap:n?.wrap??this.autoWrap(),type:i,activate:a}),!0}hasAtLeastOneBox(){return this.state.records.boxes.length>0}hasAtLeastOneBoxWithTitle(){return this.state.records.boxes.some(e=>e.name)}getMessages(){return this.state.records.messages}getBoxes(){return this.state.records.boxes}getActors(){return this.state.records.actors}getCreatedActors(){return this.state.records.createdActors}getDestroyedActors(){return this.state.records.destroyedActors}getActor(e){return this.state.records.actors.get(e)}getActorKeys(){return[...this.state.records.actors.keys()]}enableSequenceNumbers(){this.state.records.sequenceNumbersEnabled=!0}disableSequenceNumbers(){this.state.records.sequenceNumbersEnabled=!1}showSequenceNumbers(){return this.state.records.sequenceNumbersEnabled}setWrap(e){this.state.records.wrapEnabled=e}extractWrap(e){if(e===void 0)return{};e=e.trim();let r=/^:?wrap:/.exec(e)!==null?!0:/^:?nowrap:/.exec(e)!==null?!1:void 0;return{cleanedText:(r===void 0?e:e.replace(/^:?(?:no)?wrap:/,"")).trim(),wrap:r}}autoWrap(){return this.state.records.wrapEnabled!==void 0?this.state.records.wrapEnabled:ge().sequence?.wrap??!1}clear(){this.state.reset(),Sr()}parseMessage(e){let r=e.trim(),{wrap:n,cleanedText:i}=this.extractWrap(r),a={text:i,wrap:n};return X.debug(`parseMessage: ${JSON.stringify(a)}`),a}parseBoxData(e){let r=/^((?:rgba?|hsla?)\s*\(.*\)|\w*)(.*)$/.exec(e),n=r?.[1]?r[1].trim():"transparent",i=r?.[2]?r[2].trim():void 0;if(window?.CSS)window.CSS.supports("color",n)||(n="transparent",i=e.trim());else{let l=new Option().style;l.color=n,l.color!==n&&(n="transparent",i=e.trim())}let{wrap:a,cleanedText:s}=this.extractWrap(i);return{text:s?sr(s,ge()):void 0,color:n,wrap:a}}addNote(e,r,n){let i={actor:e,placement:r,message:n.text,wrap:n.wrap??this.autoWrap()},a=[].concat(e,e);this.state.records.notes.push(i),this.state.records.messages.push({id:this.state.records.messages.length.toString(),from:a[0],to:a[1],message:n.text,wrap:n.wrap??this.autoWrap(),type:this.LINETYPE.NOTE,placement:r})}addLinks(e,r){let n=this.getActor(e);try{let i=sr(r.text,ge());i=i.replace(/=/g,"="),i=i.replace(/&/g,"&");let a=JSON.parse(i);this.insertLinks(n,a)}catch(i){X.error("error while parsing actor link text",i)}}addALink(e,r){let n=this.getActor(e);try{let i={},a=sr(r.text,ge()),s=a.indexOf("@");a=a.replace(/=/g,"="),a=a.replace(/&/g,"&");let l=a.slice(0,s-1).trim(),u=a.slice(s+1).trim();i[l]=u,this.insertLinks(n,i)}catch(i){X.error("error while parsing actor link text",i)}}insertLinks(e,r){if(e.links==null)e.links=r;else for(let n in r)e.links[n]=r[n]}addProperties(e,r){let n=this.getActor(e);try{let i=sr(r.text,ge()),a=JSON.parse(i);this.insertProperties(n,a)}catch(i){X.error("error while parsing actor properties text",i)}}insertProperties(e,r){if(e.properties==null)e.properties=r;else for(let n in r)e.properties[n]=r[n]}boxEnd(){this.state.records.currentBox=void 0}addDetails(e,r){let n=this.getActor(e),i=document.getElementById(r.text);try{let a=i.innerHTML,s=JSON.parse(a);s.properties&&this.insertProperties(n,s.properties),s.links&&this.insertLinks(n,s.links)}catch(a){X.error("error while parsing actor details text",a)}}getActorProperty(e,r){if(e?.properties!==void 0)return e.properties[r]}apply(e){if(Array.isArray(e))e.forEach(r=>{this.apply(r)});else switch(e.type){case"sequenceIndex":this.state.records.messages.push({id:this.state.records.messages.length.toString(),from:void 0,to:void 0,message:{start:e.sequenceIndex,step:e.sequenceIndexStep,visible:e.sequenceVisible},wrap:!1,type:e.signalType});break;case"addParticipant":this.addActor(e.actor,e.actor,e.description,e.draw,e.config);break;case"createParticipant":if(this.state.records.actors.has(e.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");this.state.records.lastCreated=e.actor,this.addActor(e.actor,e.actor,e.description,e.draw,e.config),this.state.records.createdActors.set(e.actor,this.state.records.messages.length);break;case"destroyParticipant":this.state.records.lastDestroyed=e.actor,this.state.records.destroyedActors.set(e.actor,this.state.records.messages.length);break;case"activeStart":this.addSignal(e.actor,void 0,void 0,e.signalType);break;case"activeEnd":this.addSignal(e.actor,void 0,void 0,e.signalType);break;case"addNote":this.addNote(e.actor,e.placement,e.text);break;case"addLinks":this.addLinks(e.actor,e.text);break;case"addALink":this.addALink(e.actor,e.text);break;case"addProperties":this.addProperties(e.actor,e.text);break;case"addDetails":this.addDetails(e.actor,e.text);break;case"addMessage":if(this.state.records.lastCreated){if(e.to!==this.state.records.lastCreated)throw new Error("The created participant "+this.state.records.lastCreated.name+" does not have an associated creating message after its declaration. Please check the sequence diagram.");this.state.records.lastCreated=void 0}else if(this.state.records.lastDestroyed){if(e.to!==this.state.records.lastDestroyed&&e.from!==this.state.records.lastDestroyed)throw new Error("The destroyed participant "+this.state.records.lastDestroyed.name+" does not have an associated destroying message after its declaration. Please check the sequence diagram.");this.state.records.lastDestroyed=void 0}this.addSignal(e.from,e.to,e.msg,e.signalType,e.activate);break;case"boxStart":this.addBox(e.boxData);break;case"boxEnd":this.boxEnd();break;case"loopStart":this.addSignal(void 0,void 0,e.loopText,e.signalType);break;case"loopEnd":this.addSignal(void 0,void 0,void 0,e.signalType);break;case"rectStart":this.addSignal(void 0,void 0,e.color,e.signalType);break;case"rectEnd":this.addSignal(void 0,void 0,void 0,e.signalType);break;case"optStart":this.addSignal(void 0,void 0,e.optText,e.signalType);break;case"optEnd":this.addSignal(void 0,void 0,void 0,e.signalType);break;case"altStart":this.addSignal(void 0,void 0,e.altText,e.signalType);break;case"else":this.addSignal(void 0,void 0,e.altText,e.signalType);break;case"altEnd":this.addSignal(void 0,void 0,void 0,e.signalType);break;case"setAccTitle":Rr(e.text);break;case"parStart":this.addSignal(void 0,void 0,e.parText,e.signalType);break;case"and":this.addSignal(void 0,void 0,e.parText,e.signalType);break;case"parEnd":this.addSignal(void 0,void 0,void 0,e.signalType);break;case"criticalStart":this.addSignal(void 0,void 0,e.criticalText,e.signalType);break;case"option":this.addSignal(void 0,void 0,e.optionText,e.signalType);break;case"criticalEnd":this.addSignal(void 0,void 0,void 0,e.signalType);break;case"breakStart":this.addSignal(void 0,void 0,e.breakText,e.signalType);break;case"breakEnd":this.addSignal(void 0,void 0,void 0,e.signalType);break}}getConfig(){return ge().sequence}}});var rJe,zye,Gye=M(()=>{"use strict";rJe=o(t=>`.actor { + stroke: ${t.actorBorder}; + fill: ${t.actorBkg}; + } + + text.actor > tspan { + fill: ${t.actorTextColor}; + stroke: none; + } + + .actor-line { + stroke: ${t.actorLineColor}; + } + + .innerArc { + stroke-width: 1.5; + stroke-dasharray: none; + } + + .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; + } + +`,"getStyles"),zye=rJe});var i$,Yf,jf,Kf,eC,Xf,w4,nJe,tC,k4,o0,Vye,Fr,a$,iJe,aJe,sJe,oJe,lJe,cJe,uJe,hJe,fJe,dJe,pJe,mJe,gJe,Uye,yJe,vJe,xJe,bJe,TJe,wJe,kJe,Hye,EJe,oh,SJe,mi,qye=M(()=>{"use strict";i$=La(tm(),1);qn();tr();gr();n2();Yf=36,jf="actor-top",Kf="actor-bottom",eC="actor-box",Xf="actor-man",w4=o(function(t,e){return Fd(t,e)},"drawRect"),nJe=o(function(t,e,r,n,i){if(e.links===void 0||e.links===null||Object.keys(e.links).length===0)return{height:0,width:0};let a=e.links,s=e.actorCnt,l=e.rectData;var u="none";i&&(u="block !important");let h=t.append("g");h.attr("id","actor"+s+"_popup"),h.attr("class","actorPopupMenu"),h.attr("display",u);var f="";l.class!==void 0&&(f=" "+l.class);let d=l.width>r?l.width:r,p=h.append("rect");if(p.attr("class","actorPopupMenuPanel"+f),p.attr("x",l.x),p.attr("y",l.height),p.attr("fill",l.fill),p.attr("stroke",l.stroke),p.attr("width",d),p.attr("height",l.height),p.attr("rx",l.rx),p.attr("ry",l.ry),a!=null){var m=20;for(let v in a){var g=h.append("a"),y=(0,i$.sanitizeUrl)(a[v]);g.attr("xlink:href",y),g.attr("target","_blank"),SJe(n)(v,g,l.x+10,l.height+m,d,20,{class:"actor"},n),m+=30}}return p.attr("height",m),{height:l.height+m,width:d}},"drawPopup"),tC=o(function(t){return"var pu = document.getElementById('"+t+"'); if (pu != null) { pu.style.display = pu.style.display == 'block' ? 'none' : 'block'; }"},"popupMenuToggle"),k4=o(async function(t,e,r=null){let n=t.append("foreignObject"),i=await kh(e.text,Qt()),s=n.append("xhtml:div").attr("style","width: fit-content;").attr("xmlns","http://www.w3.org/1999/xhtml").html(i).node().getBoundingClientRect();if(n.attr("height",Math.round(s.height)).attr("width",Math.round(s.width)),e.class==="noteText"){let l=t.node().firstChild;l.setAttribute("height",s.height+2*e.textMargin);let u=l.getBBox();n.attr("x",Math.round(u.x+u.width/2-s.width/2)).attr("y",Math.round(u.y+u.height/2-s.height/2))}else if(r){let{startx:l,stopx:u,starty:h}=r;if(l>u){let f=l;l=u,u=f}n.attr("x",Math.round(l+Math.abs(l-u)/2-s.width/2)),e.class==="loopText"?n.attr("y",Math.round(h)):n.attr("y",Math.round(h-s.height))}return[n]},"drawKatex"),o0=o(function(t,e){let r=0,n=0,i=e.text.split(tt.lineBreakRegex),[a,s]=vc(e.fontSize),l=[],u=0,h=o(()=>e.y,"yfunc");if(e.valign!==void 0&&e.textMargin!==void 0&&e.textMargin>0)switch(e.valign){case"top":case"start":h=o(()=>Math.round(e.y+e.textMargin),"yfunc");break;case"middle":case"center":h=o(()=>Math.round(e.y+(r+n+e.textMargin)/2),"yfunc");break;case"bottom":case"end":h=o(()=>Math.round(e.y+(r+n+2*e.textMargin)-e.textMargin),"yfunc");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[f,d]of i.entries()){e.textMargin!==void 0&&e.textMargin===0&&a!==void 0&&(u=f*a);let p=t.append("text");p.attr("x",e.x),p.attr("y",h()),e.anchor!==void 0&&p.attr("text-anchor",e.anchor).attr("dominant-baseline",e.dominantBaseline).attr("alignment-baseline",e.alignmentBaseline),e.fontFamily!==void 0&&p.style("font-family",e.fontFamily),s!==void 0&&p.style("font-size",s),e.fontWeight!==void 0&&p.style("font-weight",e.fontWeight),e.fill!==void 0&&p.attr("fill",e.fill),e.class!==void 0&&p.attr("class",e.class),e.dy!==void 0?p.attr("dy",e.dy):u!==0&&p.attr("dy",u);let m=d||BL;if(e.tspan){let g=p.append("tspan");g.attr("x",e.x),e.fill!==void 0&&g.attr("fill",e.fill),g.text(m)}else p.text(m);e.valign!==void 0&&e.textMargin!==void 0&&e.textMargin>0&&(n+=(p._groups||p)[0][0].getBBox().height,r=n),l.push(p)}return l},"drawText"),Vye=o(function(t,e){function r(i,a,s,l,u){return i+","+a+" "+(i+s)+","+a+" "+(i+s)+","+(a+l-u)+" "+(i+s-u*1.2)+","+(a+l)+" "+i+","+(a+l)}o(r,"genPoints");let n=t.append("polygon");return n.attr("points",r(e.x,e.y,e.width,e.height,7)),n.attr("class","labelBox"),e.y=e.y+e.height/2,o0(t,e),n},"drawLabel"),Fr=-1,a$=o((t,e,r,n)=>{t.select&&r.forEach(i=>{let a=e.get(i),s=t.select("#actor"+a.actorCnt);!n.mirrorActors&&a.stopy?s.attr("y2",a.stopy+a.height/2):n.mirrorActors&&s.attr("y2",a.stopy)})},"fixLifeLineHeights"),iJe=o(function(t,e,r,n){let i=n?e.stopy:e.starty,a=e.x+e.width/2,s=i+e.height,l=t.append("g").lower();var u=l;n||(Fr++,Object.keys(e.links||{}).length&&!r.forceMenus&&u.attr("onclick",tC(`actor${Fr}_popup`)).attr("cursor","pointer"),u.append("line").attr("id","actor"+Fr).attr("x1",a).attr("y1",s).attr("x2",a).attr("y2",2e3).attr("class","actor-line 200").attr("stroke-width","0.5px").attr("stroke","#999").attr("name",e.name),u=l.append("g"),e.actorCnt=Fr,e.links!=null&&u.attr("id","root-"+Fr));let h=ha();var f="actor";e.properties?.class?f=e.properties.class:h.fill="#eaeaea",n?f+=` ${Kf}`:f+=` ${jf}`,h.x=e.x,h.y=i,h.width=e.width,h.height=e.height,h.class=f,h.rx=3,h.ry=3,h.name=e.name;let d=w4(u,h);if(e.rectData=h,e.properties?.icon){let m=e.properties.icon.trim();m.charAt(0)==="@"?cT(u,h.x+h.width-20,h.y+10,m.substr(1)):lT(u,h.x+h.width-20,h.y+10,m)}oh(r,kn(e.description))(e.description,u,h.x,h.y,h.width,h.height,{class:`actor ${eC}`},r);let p=e.height;if(d.node){let m=d.node().getBBox();e.height=m.height,p=m.height}return p},"drawActorTypeParticipant"),aJe=o(function(t,e,r,n){let i=n?e.stopy:e.starty,a=e.x+e.width/2,s=i+e.height,l=t.append("g").lower();var u=l;n||(Fr++,Object.keys(e.links||{}).length&&!r.forceMenus&&u.attr("onclick",tC(`actor${Fr}_popup`)).attr("cursor","pointer"),u.append("line").attr("id","actor"+Fr).attr("x1",a).attr("y1",s).attr("x2",a).attr("y2",2e3).attr("class","actor-line 200").attr("stroke-width","0.5px").attr("stroke","#999").attr("name",e.name),u=l.append("g"),e.actorCnt=Fr,e.links!=null&&u.attr("id","root-"+Fr));let h=ha();var f="actor";e.properties?.class?f=e.properties.class:h.fill="#eaeaea",n?f+=` ${Kf}`:f+=` ${jf}`,h.x=e.x,h.y=i,h.width=e.width,h.height=e.height,h.class=f,h.name=e.name;let d=6,p={...h,x:h.x+-d,y:h.y+ +d,class:"actor"},m=w4(u,h);if(w4(u,p),e.rectData=h,e.properties?.icon){let y=e.properties.icon.trim();y.charAt(0)==="@"?cT(u,h.x+h.width-20,h.y+10,y.substr(1)):lT(u,h.x+h.width-20,h.y+10,y)}oh(r,kn(e.description))(e.description,u,h.x-d,h.y+d,h.width,h.height,{class:`actor ${eC}`},r);let g=e.height;if(m.node){let y=m.node().getBBox();e.height=y.height,g=y.height}return g},"drawActorTypeCollections"),sJe=o(function(t,e,r,n){let i=n?e.stopy:e.starty,a=e.x+e.width/2,s=i+e.height,l=t.append("g").lower(),u=l;n||(Fr++,Object.keys(e.links||{}).length&&!r.forceMenus&&u.attr("onclick",tC(`actor${Fr}_popup`)).attr("cursor","pointer"),u.append("line").attr("id","actor"+Fr).attr("x1",a).attr("y1",s).attr("x2",a).attr("y2",2e3).attr("class","actor-line 200").attr("stroke-width","0.5px").attr("stroke","#999").attr("name",e.name),u=l.append("g"),e.actorCnt=Fr,e.links!=null&&u.attr("id","root-"+Fr));let h=ha(),f="actor";e.properties?.class?f=e.properties.class:h.fill="#eaeaea",n?f+=` ${Kf}`:f+=` ${jf}`,h.x=e.x,h.y=i,h.width=e.width,h.height=e.height,h.class=f,h.name=e.name;let d=h.height/2,p=d/(2.5+h.height/50),m=u.append("g"),g=u.append("g");if(m.append("path").attr("d",`M ${h.x},${h.y+d} + a ${p},${d} 0 0 0 0,${h.height} + h ${h.width-2*p} + a ${p},${d} 0 0 0 0,-${h.height} + Z + `).attr("class",f),g.append("path").attr("d",`M ${h.x},${h.y+d} + a ${p},${d} 0 0 0 0,${h.height}`).attr("stroke","#666").attr("stroke-width","1px").attr("class",f),m.attr("transform",`translate(${p}, ${-(h.height/2)})`),g.attr("transform",`translate(${h.width-p}, ${-h.height/2})`),e.rectData=h,e.properties?.icon){let x=e.properties.icon.trim(),b=h.x+h.width-20,T=h.y+10;x.charAt(0)==="@"?cT(u,b,T,x.substr(1)):lT(u,b,T,x)}oh(r,kn(e.description))(e.description,u,h.x,h.y,h.width,h.height,{class:`actor ${eC}`},r);let y=e.height,v=m.select("path:last-child");if(v.node()){let x=v.node().getBBox();e.height=x.height,y=x.height}return y},"drawActorTypeQueue"),oJe=o(function(t,e,r,n){let i=n?e.stopy:e.starty,a=e.x+e.width/2,s=i+75,l=t.append("g").lower();n||(Fr++,l.append("line").attr("id","actor"+Fr).attr("x1",a).attr("y1",s).attr("x2",a).attr("y2",2e3).attr("class","actor-line 200").attr("stroke-width","0.5px").attr("stroke","#999").attr("name",e.name),e.actorCnt=Fr);let u=t.append("g"),h=Xf;n?h+=` ${Kf}`:h+=` ${jf}`,u.attr("class",h),u.attr("name",e.name);let f=ha();f.x=e.x,f.y=i,f.fill="#eaeaea",f.width=e.width,f.height=e.height,f.class="actor";let d=e.x+e.width/2,p=i+30,m=18;u.append("defs").append("marker").attr("id","filled-head-control").attr("refX",11).attr("refY",5.8).attr("markerWidth",20).attr("markerHeight",28).attr("orient","172.5").append("path").attr("d","M 14.4 5.6 L 7.2 10.4 L 8.8 5.6 L 7.2 0.8 Z"),u.append("circle").attr("cx",d).attr("cy",p).attr("r",m).attr("fill","#eaeaf7").attr("stroke","#666").attr("stroke-width",1.2),u.append("line").attr("marker-end","url(#filled-head-control)").attr("transform",`translate(${d}, ${p-m})`);let g=u.node().getBBox();return e.height=g.height+2*(r?.sequence?.labelBoxHeight??0),oh(r,kn(e.description))(e.description,u,f.x,f.y+m+(n?5:10),f.width,f.height,{class:`actor ${Xf}`},r),e.height},"drawActorTypeControl"),lJe=o(function(t,e,r,n){let i=n?e.stopy:e.starty,a=e.x+e.width/2,s=i+75,l=t.append("g").lower(),u=t.append("g"),h=Xf;n?h+=` ${Kf}`:h+=` ${jf}`,u.attr("class",h),u.attr("name",e.name);let f=ha();f.x=e.x,f.y=i,f.fill="#eaeaea",f.width=e.width,f.height=e.height,f.class="actor";let d=e.x+e.width/2,p=i+(n?10:25),m=18;u.append("circle").attr("cx",d).attr("cy",p).attr("r",m).attr("width",e.width).attr("height",e.height),u.append("line").attr("x1",d-m).attr("x2",d+m).attr("y1",p+m).attr("y2",p+m).attr("stroke","#333").attr("stroke-width",2);let g=u.node().getBBox();return e.height=g.height+(r?.sequence?.labelBoxHeight??0),n||(Fr++,l.append("line").attr("id","actor"+Fr).attr("x1",a).attr("y1",s).attr("x2",a).attr("y2",2e3).attr("class","actor-line 200").attr("stroke-width","0.5px").attr("stroke","#999").attr("name",e.name),e.actorCnt=Fr),oh(r,kn(e.description))(e.description,u,f.x,f.y+(n?(p-i+m-5)/2:(p+m-i)/2),f.width,f.height,{class:`actor ${Xf}`},r),n?u.attr("transform",`translate(0, ${m/2})`):u.attr("transform",`translate(0, ${m/2})`),e.height},"drawActorTypeEntity"),cJe=o(function(t,e,r,n){let i=n?e.stopy:e.starty,a=e.x+e.width/2,s=i+e.height+2*r.boxTextMargin,l=t.append("g").lower(),u=l;n||(Fr++,Object.keys(e.links||{}).length&&!r.forceMenus&&u.attr("onclick",tC(`actor${Fr}_popup`)).attr("cursor","pointer"),u.append("line").attr("id","actor"+Fr).attr("x1",a).attr("y1",s).attr("x2",a).attr("y2",2e3).attr("class","actor-line 200").attr("stroke-width","0.5px").attr("stroke","#999").attr("name",e.name),u=l.append("g"),e.actorCnt=Fr,e.links!=null&&u.attr("id","root-"+Fr));let h=ha(),f="actor";e.properties?.class?f=e.properties.class:h.fill="#eaeaea",n?f+=` ${Kf}`:f+=` ${jf}`,h.x=e.x,h.y=i,h.width=e.width,h.height=e.height,h.class=f,h.name=e.name,h.x=e.x,h.y=i;let d=h.width/4,p=h.width/4,m=d/2,g=m/(2.5+d/50),y=u.append("g"),v=` + M ${h.x},${h.y+g} + a ${m},${g} 0 0 0 ${d},0 + a ${m},${g} 0 0 0 -${d},0 + l 0,${p-2*g} + a ${m},${g} 0 0 0 ${d},0 + l 0,-${p-2*g} +`;y.append("path").attr("d",v).attr("fill","#eaeaea").attr("stroke","#000").attr("stroke-width",1).attr("class",f),n?y.attr("transform",`translate(${d*1.5}, ${h.height/4-2*g})`):y.attr("transform",`translate(${d*1.5}, ${(h.height+g)/4})`),e.rectData=h,oh(r,kn(e.description))(e.description,u,h.x,h.y+(n?(h.height+p)/4:(h.height+g)/2),h.width,h.height,{class:`actor ${eC}`},r);let x=y.select("path:last-child");if(x.node()){let b=x.node().getBBox();e.height=b.height+(r.sequence.labelBoxHeight??0)}return e.height},"drawActorTypeDatabase"),uJe=o(function(t,e,r,n){let i=n?e.stopy:e.starty,a=e.x+e.width/2,s=i+80,l=30,u=t.append("g").lower();n||(Fr++,u.append("line").attr("id","actor"+Fr).attr("x1",a).attr("y1",s).attr("x2",a).attr("y2",2e3).attr("class","actor-line 200").attr("stroke-width","0.5px").attr("stroke","#999").attr("name",e.name),e.actorCnt=Fr);let h=t.append("g"),f=Xf;n?f+=` ${Kf}`:f+=` ${jf}`,h.attr("class",f),h.attr("name",e.name);let d=ha();d.x=e.x,d.y=i,d.fill="#eaeaea",d.width=e.width,d.height=e.height,d.class="actor",h.append("line").attr("id","actor-man-torso"+Fr).attr("x1",e.x+e.width/2-l*2.5).attr("y1",i+10).attr("x2",e.x+e.width/2-15).attr("y2",i+10),h.append("line").attr("id","actor-man-arms"+Fr).attr("x1",e.x+e.width/2-l*2.5).attr("y1",i+0).attr("x2",e.x+e.width/2-l*2.5).attr("y2",i+20),h.append("circle").attr("cx",e.x+e.width/2).attr("cy",i+10).attr("r",l);let p=h.node().getBBox();return e.height=p.height+(r.sequence.labelBoxHeight??0),oh(r,kn(e.description))(e.description,h,d.x,d.y+(n?l/2-4:l/2+3),d.width,d.height,{class:`actor ${Xf}`},r),n?h.attr("transform",`translate(0,${l/2+7})`):h.attr("transform",`translate(0,${l/2+7})`),e.height},"drawActorTypeBoundary"),hJe=o(function(t,e,r,n){let i=n?e.stopy:e.starty,a=e.x+e.width/2,s=i+80,l=t.append("g").lower();n||(Fr++,l.append("line").attr("id","actor"+Fr).attr("x1",a).attr("y1",s).attr("x2",a).attr("y2",2e3).attr("class","actor-line 200").attr("stroke-width","0.5px").attr("stroke","#999").attr("name",e.name),e.actorCnt=Fr);let u=t.append("g"),h=Xf;n?h+=` ${Kf}`:h+=` ${jf}`,u.attr("class",h),u.attr("name",e.name);let f=ha();f.x=e.x,f.y=i,f.fill="#eaeaea",f.width=e.width,f.height=e.height,f.class="actor",f.rx=3,f.ry=3,u.append("line").attr("id","actor-man-torso"+Fr).attr("x1",a).attr("y1",i+25).attr("x2",a).attr("y2",i+45),u.append("line").attr("id","actor-man-arms"+Fr).attr("x1",a-Yf/2).attr("y1",i+33).attr("x2",a+Yf/2).attr("y2",i+33),u.append("line").attr("x1",a-Yf/2).attr("y1",i+60).attr("x2",a).attr("y2",i+45),u.append("line").attr("x1",a).attr("y1",i+45).attr("x2",a+Yf/2-2).attr("y2",i+60);let d=u.append("circle");d.attr("cx",e.x+e.width/2),d.attr("cy",i+10),d.attr("r",15),d.attr("width",e.width),d.attr("height",e.height);let p=u.node().getBBox();return e.height=p.height,oh(r,kn(e.description))(e.description,u,f.x,f.y+35,f.width,f.height,{class:`actor ${Xf}`},r),e.height},"drawActorTypeActor"),fJe=o(async function(t,e,r,n){switch(e.type){case"actor":return await hJe(t,e,r,n);case"participant":return await iJe(t,e,r,n);case"boundary":return await uJe(t,e,r,n);case"control":return await oJe(t,e,r,n);case"entity":return await lJe(t,e,r,n);case"database":return await cJe(t,e,r,n);case"collections":return await aJe(t,e,r,n);case"queue":return await sJe(t,e,r,n)}},"drawActor"),dJe=o(function(t,e,r){let i=t.append("g");Uye(i,e),e.name&&oh(r)(e.name,i,e.x,e.y+r.boxTextMargin+(e.textMaxHeight||0)/2,e.width,0,{class:"text"},r),i.lower()},"drawBox"),pJe=o(function(t){return t.append("g")},"anchorElement"),mJe=o(function(t,e,r,n,i){let a=ha(),s=e.anchored;a.x=e.startx,a.y=e.starty,a.class="activation"+i%3,a.width=e.stopx-e.startx,a.height=r-e.starty,w4(s,a)},"drawActivation"),gJe=o(async function(t,e,r,n){let{boxMargin:i,boxTextMargin:a,labelBoxHeight:s,labelBoxWidth:l,messageFontFamily:u,messageFontSize:h,messageFontWeight:f}=n,d=t.append("g"),p=o(function(y,v,x,b){return d.append("line").attr("x1",y).attr("y1",v).attr("x2",x).attr("y2",b).attr("class","loopLine")},"drawLoopLine");p(e.startx,e.starty,e.stopx,e.starty),p(e.stopx,e.starty,e.stopx,e.stopy),p(e.startx,e.stopy,e.stopx,e.stopy),p(e.startx,e.starty,e.startx,e.stopy),e.sections!==void 0&&e.sections.forEach(function(y){p(e.startx,y.y,e.stopx,y.y).style("stroke-dasharray","3, 3")});let m=r2();m.text=r,m.x=e.startx,m.y=e.starty,m.fontFamily=u,m.fontSize=h,m.fontWeight=f,m.anchor="middle",m.valign="middle",m.tspan=!1,m.width=l||50,m.height=s||20,m.textMargin=a,m.class="labelText",Vye(d,m),m=Hye(),m.text=e.title,m.x=e.startx+l/2+(e.stopx-e.startx)/2,m.y=e.starty+i+a,m.anchor="middle",m.valign="middle",m.textMargin=a,m.class="loopText",m.fontFamily=u,m.fontSize=h,m.fontWeight=f,m.wrap=!0;let g=kn(m.text)?await k4(d,m,e):o0(d,m);if(e.sectionTitles!==void 0){for(let[y,v]of Object.entries(e.sectionTitles))if(v.message){m.text=v.message,m.x=e.startx+(e.stopx-e.startx)/2,m.y=e.sections[y].y+i+a,m.class="loopText",m.anchor="middle",m.valign="middle",m.tspan=!1,m.fontFamily=u,m.fontSize=h,m.fontWeight=f,m.wrap=e.wrap,kn(m.text)?(e.starty=e.sections[y].y,await k4(d,m,e)):o0(d,m);let x=Math.round(g.map(b=>(b._groups||b)[0][0].getBBox().height).reduce((b,T)=>b+T));e.sections[y].height+=x-(i+a)}}return e.height=Math.round(e.stopy-e.starty),d},"drawLoop"),Uye=o(function(t,e){oT(t,e)},"drawBackgroundRect"),yJe=o(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")},"insertDatabaseIcon"),vJe=o(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")},"insertComputerIcon"),xJe=o(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")},"insertClockIcon"),bJe=o(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-start-reverse").append("path").attr("d","M -1 0 L 10 5 L 0 10 z")},"insertArrowHead"),TJe=o(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")},"insertArrowFilledHead"),wJe=o(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)},"insertSequenceNumber"),kJe=o(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")},"insertArrowCrossHead"),Hye=o(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}},"getTextObj"),EJe=o(function(){return{x:0,y:0,fill:"#EDF2AE",stroke:"#666",width:100,anchor:"start",height:100,rx:0,ry:0}},"getNoteRect"),oh=(function(){function t(a,s,l,u,h,f,d){let p=s.append("text").attr("x",l+h/2).attr("y",u+f/2+5).style("text-anchor","middle").text(a);i(p,d)}o(t,"byText");function e(a,s,l,u,h,f,d,p){let{actorFontSize:m,actorFontFamily:g,actorFontWeight:y}=p,[v,x]=vc(m),b=a.split(tt.lineBreakRegex);for(let T=0;T{let s=l0(Me),l=a.actorKeys.reduce((d,p)=>d+=t.get(p).width+(t.get(p).margin||0),0),u=Me.boxMargin*8;l+=u,l-=2*Me.boxTextMargin,a.wrap&&(a.name=qt.wrapLabel(a.name,l-2*Me.wrapPadding,s));let h=qt.calculateTextDimensions(a.name,s);i=tt.getMax(h.height,i);let f=tt.getMax(l,h.width+2*Me.wrapPadding);if(a.margin=Me.boxTextMargin,la.textMaxHeight=i),tt.getMax(n,Me.height)}var Me,ot,CJe,l0,sy,s$,_Je,DJe,o$,Yye,Xye,rC,Wye,RJe,MJe,OJe,PJe,BJe,jye,Kye=M(()=>{"use strict";yr();qye();pt();gr();gr();n2();Xt();v0();tr();Ei();n$();Me={},ot={data:{startx:void 0,stopx:void 0,starty:void 0,stopy:void 0},verticalPos:0,sequenceItems:[],activations:[],models:{getHeight:o(function(){return Math.max.apply(null,this.actors.length===0?[0]:this.actors.map(t=>t.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))},"getHeight"),clear:o(function(){this.actors=[],this.boxes=[],this.loops=[],this.messages=[],this.notes=[]},"clear"),addBox:o(function(t){this.boxes.push(t)},"addBox"),addActor:o(function(t){this.actors.push(t)},"addActor"),addLoop:o(function(t){this.loops.push(t)},"addLoop"),addMessage:o(function(t){this.messages.push(t)},"addMessage"),addNote:o(function(t){this.notes.push(t)},"addNote"),lastActor:o(function(){return this.actors[this.actors.length-1]},"lastActor"),lastLoop:o(function(){return this.loops[this.loops.length-1]},"lastLoop"),lastMessage:o(function(){return this.messages[this.messages.length-1]},"lastMessage"),lastNote:o(function(){return this.notes[this.notes.length-1]},"lastNote"),actors:[],boxes:[],loops:[],messages:[],notes:[]},init:o(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,Xye(ge())},"init"),updateVal:o(function(t,e,r,n){t[e]===void 0?t[e]=r:t[e]=n(r,t[e])},"updateVal"),updateBounds:o(function(t,e,r,n){let i=this,a=0;function s(l){return o(function(h){a++;let f=i.sequenceItems.length-a+1;i.updateVal(h,"starty",e-f*Me.boxMargin,Math.min),i.updateVal(h,"stopy",n+f*Me.boxMargin,Math.max),i.updateVal(ot.data,"startx",t-f*Me.boxMargin,Math.min),i.updateVal(ot.data,"stopx",r+f*Me.boxMargin,Math.max),l!=="activation"&&(i.updateVal(h,"startx",t-f*Me.boxMargin,Math.min),i.updateVal(h,"stopx",r+f*Me.boxMargin,Math.max),i.updateVal(ot.data,"starty",e-f*Me.boxMargin,Math.min),i.updateVal(ot.data,"stopy",n+f*Me.boxMargin,Math.max))},"updateItemBounds")}o(s,"updateFn"),this.sequenceItems.forEach(s()),this.activations.forEach(s("activation"))},"updateBounds"),insert:o(function(t,e,r,n){let i=tt.getMin(t,r),a=tt.getMax(t,r),s=tt.getMin(e,n),l=tt.getMax(e,n);this.updateVal(ot.data,"startx",i,Math.min),this.updateVal(ot.data,"starty",s,Math.min),this.updateVal(ot.data,"stopx",a,Math.max),this.updateVal(ot.data,"stopy",l,Math.max),this.updateBounds(i,s,a,l)},"insert"),newActivation:o(function(t,e,r){let n=r.get(t.from),i=rC(t.from).length||0,a=n.x+n.width/2+(i-1)*Me.activationWidth/2;this.activations.push({startx:a,starty:this.verticalPos+2,stopx:a+Me.activationWidth,stopy:void 0,actor:t.from,anchored:mi.anchorElement(e)})},"newActivation"),endActivation:o(function(t){let e=this.activations.map(function(r){return r.actor}).lastIndexOf(t.from);return this.activations.splice(e,1)[0]},"endActivation"),createLoop:o(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}},"createLoop"),newLoop:o(function(t={message:void 0,wrap:!1,width:void 0},e){this.sequenceItems.push(this.createLoop(t,e))},"newLoop"),endLoop:o(function(){return this.sequenceItems.pop()},"endLoop"),isLoopOverlap:o(function(){return this.sequenceItems.length?this.sequenceItems[this.sequenceItems.length-1].overlap:!1},"isLoopOverlap"),addSectionToLoop:o(function(t){let e=this.sequenceItems.pop();e.sections=e.sections||[],e.sectionTitles=e.sectionTitles||[],e.sections.push({y:ot.getVerticalPos(),height:0}),e.sectionTitles.push(t),this.sequenceItems.push(e)},"addSectionToLoop"),saveVerticalPos:o(function(){this.isLoopOverlap()&&(this.savedVerticalPos=this.verticalPos)},"saveVerticalPos"),resetVerticalPos:o(function(){this.isLoopOverlap()&&(this.verticalPos=this.savedVerticalPos)},"resetVerticalPos"),bumpVerticalPos:o(function(t){this.verticalPos=this.verticalPos+t,this.data.stopy=tt.getMax(this.data.stopy,this.verticalPos)},"bumpVerticalPos"),getVerticalPos:o(function(){return this.verticalPos},"getVerticalPos"),getBounds:o(function(){return{bounds:this.data,models:this.models}},"getBounds")},CJe=o(async function(t,e){ot.bumpVerticalPos(Me.boxMargin),e.height=Me.boxMargin,e.starty=ot.getVerticalPos();let r=ha();r.x=e.startx,r.y=e.starty,r.width=e.width||Me.width,r.class="note";let n=t.append("g"),i=mi.drawRect(n,r),a=r2();a.x=e.startx,a.y=e.starty,a.width=r.width,a.dy="1em",a.text=e.message,a.class="noteText",a.fontFamily=Me.noteFontFamily,a.fontSize=Me.noteFontSize,a.fontWeight=Me.noteFontWeight,a.anchor=Me.noteAlign,a.textMargin=Me.noteMargin,a.valign="center";let s=kn(a.text)?await k4(n,a):o0(n,a),l=Math.round(s.map(u=>(u._groups||u)[0][0].getBBox().height).reduce((u,h)=>u+h));i.attr("height",l+2*Me.noteMargin),e.height+=l+2*Me.noteMargin,ot.bumpVerticalPos(l+2*Me.noteMargin),e.stopy=e.starty+l+2*Me.noteMargin,e.stopx=e.startx+r.width,ot.insert(e.startx,e.starty,e.stopx,e.stopy),ot.models.addNote(e)},"drawNote"),l0=o(t=>({fontFamily:t.messageFontFamily,fontSize:t.messageFontSize,fontWeight:t.messageFontWeight}),"messageFont"),sy=o(t=>({fontFamily:t.noteFontFamily,fontSize:t.noteFontSize,fontWeight:t.noteFontWeight}),"noteFont"),s$=o(t=>({fontFamily:t.actorFontFamily,fontSize:t.actorFontSize,fontWeight:t.actorFontWeight}),"actorFont");o(AJe,"boundMessage");_Je=o(async function(t,e,r,n){let{startx:i,stopx:a,starty:s,message:l,type:u,sequenceIndex:h,sequenceVisible:f}=e,d=qt.calculateTextDimensions(l,l0(Me)),p=r2();p.x=i,p.y=s+10,p.width=a-i,p.class="messageText",p.dy="1em",p.text=l,p.fontFamily=Me.messageFontFamily,p.fontSize=Me.messageFontSize,p.fontWeight=Me.messageFontWeight,p.anchor=Me.messageAlign,p.valign="center",p.textMargin=Me.wrapPadding,p.tspan=!1,kn(p.text)?await k4(t,p,{startx:i,stopx:a,starty:r}):o0(t,p);let m=d.width,g;i===a?Me.rightAngles?g=t.append("path").attr("d",`M ${i},${r} H ${i+tt.getMax(Me.width/2,m/2)} V ${r+25} H ${i}`):g=t.append("path").attr("d","M "+i+","+r+" C "+(i+60)+","+(r-10)+" "+(i+60)+","+(r+30)+" "+i+","+(r+20)):(g=t.append("line"),g.attr("x1",i),g.attr("y1",r),g.attr("x2",a),g.attr("y2",r)),u===n.db.LINETYPE.DOTTED||u===n.db.LINETYPE.DOTTED_CROSS||u===n.db.LINETYPE.DOTTED_POINT||u===n.db.LINETYPE.DOTTED_OPEN||u===n.db.LINETYPE.BIDIRECTIONAL_DOTTED?(g.style("stroke-dasharray","3, 3"),g.attr("class","messageLine1")):g.attr("class","messageLine0");let y="";Me.arrowMarkerAbsolute&&(y=md(!0)),g.attr("stroke-width",2),g.attr("stroke","none"),g.style("fill","none"),(u===n.db.LINETYPE.SOLID||u===n.db.LINETYPE.DOTTED)&&g.attr("marker-end","url("+y+"#arrowhead)"),(u===n.db.LINETYPE.BIDIRECTIONAL_SOLID||u===n.db.LINETYPE.BIDIRECTIONAL_DOTTED)&&(g.attr("marker-start","url("+y+"#arrowhead)"),g.attr("marker-end","url("+y+"#arrowhead)")),(u===n.db.LINETYPE.SOLID_POINT||u===n.db.LINETYPE.DOTTED_POINT)&&g.attr("marker-end","url("+y+"#filled-head)"),(u===n.db.LINETYPE.SOLID_CROSS||u===n.db.LINETYPE.DOTTED_CROSS)&&g.attr("marker-end","url("+y+"#crosshead)"),(f||Me.showSequenceNumbers)&&((u===n.db.LINETYPE.BIDIRECTIONAL_SOLID||u===n.db.LINETYPE.BIDIRECTIONAL_DOTTED)&&(ii&&(i=h.height),h.width+l.x>a&&(a=h.width+l.x)}return{maxHeight:i,maxWidth:a}},"drawActorsPopup"),Xye=o(function(t){Rn(Me,t),t.fontFamily&&(Me.actorFontFamily=Me.noteFontFamily=Me.messageFontFamily=t.fontFamily),t.fontSize&&(Me.actorFontSize=Me.noteFontSize=Me.messageFontSize=t.fontSize),t.fontWeight&&(Me.actorFontWeight=Me.noteFontWeight=Me.messageFontWeight=t.fontWeight)},"setConf"),rC=o(function(t){return ot.activations.filter(function(e){return e.actor===t})},"actorActivations"),Wye=o(function(t,e){let r=e.get(t),n=rC(t),i=n.reduce(function(s,l){return tt.getMin(s,l.startx)},r.x+r.width/2-1),a=n.reduce(function(s,l){return tt.getMax(s,l.stopx)},r.x+r.width/2+1);return[i,a]},"activationBounds");o(ru,"adjustLoopHeightForWrap");o(LJe,"adjustCreatedDestroyedData");RJe=o(async function(t,e,r,n){let{securityLevel:i,sequence:a}=ge();Me=a;let s;i==="sandbox"&&(s=qe("#i"+e));let l=i==="sandbox"?qe(s.nodes()[0].contentDocument.body):qe("body"),u=i==="sandbox"?s.nodes()[0].contentDocument:document;ot.init(),X.debug(n.db);let h=i==="sandbox"?l.select(`[id="${e}"]`):qe(`[id="${e}"]`),f=n.db.getActors(),d=n.db.getCreatedActors(),p=n.db.getDestroyedActors(),m=n.db.getBoxes(),g=n.db.getActorKeys(),y=n.db.getMessages(),v=n.db.getDiagramTitle(),x=n.db.hasAtLeastOneBox(),b=n.db.hasAtLeastOneBoxWithTitle(),T=await NJe(f,y,n);if(Me.height=await IJe(f,T,m),mi.insertComputerIcon(h),mi.insertDatabaseIcon(h),mi.insertClockIcon(h),x&&(ot.bumpVerticalPos(Me.boxMargin),b&&ot.bumpVerticalPos(m[0].textMaxHeight)),Me.hideUnusedParticipants===!0){let B=new Set;y.forEach(F=>{B.add(F.from),B.add(F.to)}),g=g.filter(F=>B.has(F))}DJe(h,f,d,g,0,y,!1);let S=await BJe(y,f,T,n);mi.insertArrowHead(h),mi.insertArrowCrossHead(h),mi.insertArrowFilledHead(h),mi.insertSequenceNumber(h);function w(B,F){let V=ot.endActivation(B);V.starty+18>F&&(V.starty=F-6,F+=12),mi.drawActivation(h,V,F,Me,rC(B.from).length),ot.insert(V.startx,F-10,V.stopx,F)}o(w,"activeEnd");let k=1,C=1,A=[],L=[],I=0;for(let B of y){let F,V,$;switch(B.type){case n.db.LINETYPE.NOTE:ot.resetVerticalPos(),V=B.noteModel,await CJe(h,V);break;case n.db.LINETYPE.ACTIVE_START:ot.newActivation(B,h,f);break;case n.db.LINETYPE.ACTIVE_END:w(B,ot.getVerticalPos());break;case n.db.LINETYPE.LOOP_START:ru(S,B,Me.boxMargin,Me.boxMargin+Me.boxTextMargin,U=>ot.newLoop(U));break;case n.db.LINETYPE.LOOP_END:F=ot.endLoop(),await mi.drawLoop(h,F,"loop",Me),ot.bumpVerticalPos(F.stopy-ot.getVerticalPos()),ot.models.addLoop(F);break;case n.db.LINETYPE.RECT_START:ru(S,B,Me.boxMargin,Me.boxMargin,U=>ot.newLoop(void 0,U.message));break;case n.db.LINETYPE.RECT_END:F=ot.endLoop(),L.push(F),ot.models.addLoop(F),ot.bumpVerticalPos(F.stopy-ot.getVerticalPos());break;case n.db.LINETYPE.OPT_START:ru(S,B,Me.boxMargin,Me.boxMargin+Me.boxTextMargin,U=>ot.newLoop(U));break;case n.db.LINETYPE.OPT_END:F=ot.endLoop(),await mi.drawLoop(h,F,"opt",Me),ot.bumpVerticalPos(F.stopy-ot.getVerticalPos()),ot.models.addLoop(F);break;case n.db.LINETYPE.ALT_START:ru(S,B,Me.boxMargin,Me.boxMargin+Me.boxTextMargin,U=>ot.newLoop(U));break;case n.db.LINETYPE.ALT_ELSE:ru(S,B,Me.boxMargin+Me.boxTextMargin,Me.boxMargin,U=>ot.addSectionToLoop(U));break;case n.db.LINETYPE.ALT_END:F=ot.endLoop(),await mi.drawLoop(h,F,"alt",Me),ot.bumpVerticalPos(F.stopy-ot.getVerticalPos()),ot.models.addLoop(F);break;case n.db.LINETYPE.PAR_START:case n.db.LINETYPE.PAR_OVER_START:ru(S,B,Me.boxMargin,Me.boxMargin+Me.boxTextMargin,U=>ot.newLoop(U)),ot.saveVerticalPos();break;case n.db.LINETYPE.PAR_AND:ru(S,B,Me.boxMargin+Me.boxTextMargin,Me.boxMargin,U=>ot.addSectionToLoop(U));break;case n.db.LINETYPE.PAR_END:F=ot.endLoop(),await mi.drawLoop(h,F,"par",Me),ot.bumpVerticalPos(F.stopy-ot.getVerticalPos()),ot.models.addLoop(F);break;case n.db.LINETYPE.AUTONUMBER:k=B.message.start||k,C=B.message.step||C,B.message.visible?n.db.enableSequenceNumbers():n.db.disableSequenceNumbers();break;case n.db.LINETYPE.CRITICAL_START:ru(S,B,Me.boxMargin,Me.boxMargin+Me.boxTextMargin,U=>ot.newLoop(U));break;case n.db.LINETYPE.CRITICAL_OPTION:ru(S,B,Me.boxMargin+Me.boxTextMargin,Me.boxMargin,U=>ot.addSectionToLoop(U));break;case n.db.LINETYPE.CRITICAL_END:F=ot.endLoop(),await mi.drawLoop(h,F,"critical",Me),ot.bumpVerticalPos(F.stopy-ot.getVerticalPos()),ot.models.addLoop(F);break;case n.db.LINETYPE.BREAK_START:ru(S,B,Me.boxMargin,Me.boxMargin+Me.boxTextMargin,U=>ot.newLoop(U));break;case n.db.LINETYPE.BREAK_END:F=ot.endLoop(),await mi.drawLoop(h,F,"break",Me),ot.bumpVerticalPos(F.stopy-ot.getVerticalPos()),ot.models.addLoop(F);break;default:try{$=B.msgModel,$.starty=ot.getVerticalPos(),$.sequenceIndex=k,$.sequenceVisible=n.db.showSequenceNumbers();let U=await AJe(h,$);LJe(B,$,U,I,f,d,p),A.push({messageModel:$,lineStartY:U}),ot.models.addMessage($)}catch(U){X.error("error while drawing message",U)}}[n.db.LINETYPE.SOLID_OPEN,n.db.LINETYPE.DOTTED_OPEN,n.db.LINETYPE.SOLID,n.db.LINETYPE.DOTTED,n.db.LINETYPE.SOLID_CROSS,n.db.LINETYPE.DOTTED_CROSS,n.db.LINETYPE.SOLID_POINT,n.db.LINETYPE.DOTTED_POINT,n.db.LINETYPE.BIDIRECTIONAL_SOLID,n.db.LINETYPE.BIDIRECTIONAL_DOTTED].includes(B.type)&&(k=k+C),I++}X.debug("createdActors",d),X.debug("destroyedActors",p),await o$(h,f,g,!1);for(let B of A)await _Je(h,B.messageModel,B.lineStartY,n);Me.mirrorActors&&await o$(h,f,g,!0),L.forEach(B=>mi.drawBackgroundRect(h,B)),a$(h,f,g,Me);for(let B of ot.models.boxes){B.height=ot.getVerticalPos()-B.y,ot.insert(B.x,B.y,B.x+B.width,B.height);let F=Me.boxMargin*2;B.startx=B.x-F,B.starty=B.y-F*.25,B.stopx=B.startx+B.width+2*F,B.stopy=B.starty+B.height+F*.75,B.stroke="rgb(0,0,0, 0.5)",mi.drawBox(h,B,Me)}x&&ot.bumpVerticalPos(Me.boxMargin);let R=Yye(h,f,g,u),{bounds:E}=ot.getBounds();E.startx===void 0&&(E.startx=0),E.starty===void 0&&(E.starty=0),E.stopx===void 0&&(E.stopx=0),E.stopy===void 0&&(E.stopy=0);let _=E.stopy-E.starty;_2,d=o(y=>l?-y:y,"adjustValue");t.from===t.to?h=u:(t.activate&&!f&&(h+=d(Me.activationWidth/2-1)),[r.db.LINETYPE.SOLID_OPEN,r.db.LINETYPE.DOTTED_OPEN].includes(t.type)||(h+=d(3)),[r.db.LINETYPE.BIDIRECTIONAL_SOLID,r.db.LINETYPE.BIDIRECTIONAL_DOTTED].includes(t.type)&&(u-=d(3)));let p=[n,i,a,s],m=Math.abs(u-h);t.wrap&&t.message&&(t.message=qt.wrapLabel(t.message,tt.getMax(m+2*Me.wrapPadding,Me.width),l0(Me)));let g=qt.calculateTextDimensions(t.message,l0(Me));return{width:tt.getMax(t.wrap?0:g.width+2*Me.wrapPadding,m+2*Me.wrapPadding,Me.width),height:0,startx:u,stopx:h,starty:0,stopy:0,message:t.message,type:t.type,wrap:t.wrap,fromBounds:Math.min.apply(null,p),toBounds:Math.max.apply(null,p)}},"buildMessageModel"),BJe=o(async function(t,e,r,n){let i={},a=[],s,l,u;for(let h of t){switch(h.type){case n.db.LINETYPE.LOOP_START:case n.db.LINETYPE.ALT_START:case n.db.LINETYPE.OPT_START:case n.db.LINETYPE.PAR_START:case n.db.LINETYPE.PAR_OVER_START:case n.db.LINETYPE.CRITICAL_START:case n.db.LINETYPE.BREAK_START:a.push({id:h.id,msg:h.message,from:Number.MAX_SAFE_INTEGER,to:Number.MIN_SAFE_INTEGER,width:0});break;case n.db.LINETYPE.ALT_ELSE:case n.db.LINETYPE.PAR_AND:case n.db.LINETYPE.CRITICAL_OPTION:h.message&&(s=a.pop(),i[s.id]=s,i[h.id]=s,a.push(s));break;case n.db.LINETYPE.LOOP_END:case n.db.LINETYPE.ALT_END:case n.db.LINETYPE.OPT_END:case n.db.LINETYPE.PAR_END:case n.db.LINETYPE.CRITICAL_END:case n.db.LINETYPE.BREAK_END:s=a.pop(),i[s.id]=s;break;case n.db.LINETYPE.ACTIVE_START:{let d=e.get(h.from?h.from:h.to.actor),p=rC(h.from?h.from:h.to.actor).length,m=d.x+d.width/2+(p-1)*Me.activationWidth/2,g={startx:m,stopx:m+Me.activationWidth,actor:h.from,enabled:!0};ot.activations.push(g)}break;case n.db.LINETYPE.ACTIVE_END:{let d=ot.activations.map(p=>p.actor).lastIndexOf(h.from);ot.activations.splice(d,1).splice(0,1)}break}h.placement!==void 0?(l=await OJe(h,e,n),h.noteModel=l,a.forEach(d=>{s=d,s.from=tt.getMin(s.from,l.startx),s.to=tt.getMax(s.to,l.startx+l.width),s.width=tt.getMax(s.width,Math.abs(s.from-s.to))-Me.labelBoxWidth})):(u=PJe(h,e,n),h.msgModel=u,u.startx&&u.stopx&&a.length>0&&a.forEach(d=>{if(s=d,u.startx===u.stopx){let p=e.get(h.from),m=e.get(h.to);s.from=tt.getMin(p.x-u.width/2,p.x-p.width/2,s.from),s.to=tt.getMax(m.x+u.width/2,m.x+p.width/2,s.to),s.width=tt.getMax(s.width,Math.abs(s.to-s.from))-Me.labelBoxWidth}else s.from=tt.getMin(u.startx,s.from),s.to=tt.getMax(u.stopx,s.to),s.width=tt.getMax(s.width,u.width)-Me.labelBoxWidth}))}return ot.activations=[],X.debug("Loop type widths:",i),i},"calculateLoopBounds"),jye={bounds:ot,drawActors:o$,drawActorsPopup:Yye,setConf:Xye,draw:RJe}});var Qye={};dr(Qye,{diagram:()=>FJe});var FJe,Zye=M(()=>{"use strict";$ye();n$();Gye();Xt();Kye();FJe={parser:Fye,get db(){return new J6},renderer:jye,styles:zye,init:o(t=>{t.sequence||(t.sequence={}),t.wrap&&(t.sequence.wrap=t.wrap,iv({sequence:{wrap:t.wrap}}))},"init")}});var l$,nC,c$=M(()=>{"use strict";l$=(function(){var t=o(function(Ie,Ne,Ce,Fe){for(Ce=Ce||{},Fe=Ie.length;Fe--;Ce[Ie[Fe]]=Ne);return Ce},"o"),e=[1,18],r=[1,19],n=[1,20],i=[1,41],a=[1,42],s=[1,26],l=[1,24],u=[1,25],h=[1,32],f=[1,33],d=[1,34],p=[1,45],m=[1,35],g=[1,36],y=[1,37],v=[1,38],x=[1,27],b=[1,28],T=[1,29],S=[1,30],w=[1,31],k=[1,44],C=[1,46],A=[1,43],L=[1,47],I=[1,9],R=[1,8,9],E=[1,58],_=[1,59],D=[1,60],O=[1,61],N=[1,62],P=[1,63],B=[1,64],F=[1,8,9,41],V=[1,76],$=[1,8,9,12,13,22,39,41,44,68,69,70,71,72,73,74,79,81],U=[1,8,9,12,13,18,20,22,39,41,44,50,60,68,69,70,71,72,73,74,79,81,86,100,102,103],j=[13,60,86,100,102,103],ee=[13,60,73,74,86,100,102,103],q=[13,60,68,69,70,71,72,86,100,102,103],oe=[1,100],Q=[1,117],ue=[1,113],te=[1,109],re=[1,115],J=[1,110],K=[1,111],ae=[1,112],Z=[1,114],de=[1,116],ne=[22,48,60,61,82,86,87,88,89,90],Te=[1,8,9,39,41,44],W=[1,8,9,22],Ve=[1,145],pe=[1,8,9,61],Be=[1,8,9,22,48,60,61,82,86,87,88,89,90],Ye={trace:o(function(){},"trace"),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,classLiteralName:17,DOT:18,className:19,GENERICTYPE:20,relationStatement:21,LABEL:22,namespaceStatement:23,classStatement:24,memberStatement:25,annotationStatement:26,clickStatement:27,styleStatement:28,cssClassStatement:29,noteStatement:30,classDefStatement:31,direction:32,acc_title:33,acc_title_value:34,acc_descr:35,acc_descr_value:36,acc_descr_multiline_value:37,namespaceIdentifier:38,STRUCT_START:39,classStatements:40,STRUCT_STOP:41,NAMESPACE:42,classIdentifier:43,STYLE_SEPARATOR:44,members:45,CLASS:46,emptyBody:47,SPACE:48,ANNOTATION_START:49,ANNOTATION_END:50,MEMBER:51,SEPARATOR:52,relation:53,NOTE_FOR:54,noteText:55,NOTE:56,CLASSDEF:57,classList:58,stylesOpt:59,ALPHA:60,COMMA:61,direction_tb:62,direction_bt:63,direction_rl:64,direction_lr:65,relationType:66,lineType:67,AGGREGATION:68,EXTENSION:69,COMPOSITION:70,DEPENDENCY:71,LOLLIPOP:72,LINE:73,DOTTED_LINE:74,CALLBACK:75,LINK:76,LINK_TARGET:77,CLICK:78,CALLBACK_NAME:79,CALLBACK_ARGS:80,HREF:81,STYLE:82,CSSCLASS:83,style:84,styleComponent:85,NUM:86,COLON:87,UNIT:88,BRKT:89,PCT:90,commentToken:91,textToken:92,graphCodeTokens:93,textNoTagsToken:94,TAGSTART:95,TAGEND:96,"==":97,"--":98,DEFAULT:99,MINUS:100,keywords:101,UNICODE_TEXT:102,BQUOTE_STR:103,$accept:0,$end:1},terminals_:{2:"error",7:"CLASS_DIAGRAM",8:"NEWLINE",9:"EOF",12:"SQS",13:"STR",14:"SQE",18:"DOT",20:"GENERICTYPE",22:"LABEL",33:"acc_title",34:"acc_title_value",35:"acc_descr",36:"acc_descr_value",37:"acc_descr_multiline_value",39:"STRUCT_START",41:"STRUCT_STOP",42:"NAMESPACE",44:"STYLE_SEPARATOR",46:"CLASS",48:"SPACE",49:"ANNOTATION_START",50:"ANNOTATION_END",51:"MEMBER",52:"SEPARATOR",54:"NOTE_FOR",56:"NOTE",57:"CLASSDEF",60:"ALPHA",61:"COMMA",62:"direction_tb",63:"direction_bt",64:"direction_rl",65:"direction_lr",68:"AGGREGATION",69:"EXTENSION",70:"COMPOSITION",71:"DEPENDENCY",72:"LOLLIPOP",73:"LINE",74:"DOTTED_LINE",75:"CALLBACK",76:"LINK",77:"LINK_TARGET",78:"CLICK",79:"CALLBACK_NAME",80:"CALLBACK_ARGS",81:"HREF",82:"STYLE",83:"CSSCLASS",86:"NUM",87:"COLON",88:"UNIT",89:"BRKT",90:"PCT",93:"graphCodeTokens",95:"TAGSTART",96:"TAGEND",97:"==",98:"--",99:"DEFAULT",100:"MINUS",101:"keywords",102:"UNICODE_TEXT",103:"BQUOTE_STR"},productions_:[0,[3,1],[3,1],[4,1],[6,4],[5,1],[5,2],[5,3],[11,3],[15,1],[15,1],[15,3],[15,2],[19,1],[19,3],[19,1],[19,2],[19,2],[19,2],[10,1],[10,2],[10,1],[10,1],[10,1],[10,1],[10,1],[10,1],[10,1],[10,1],[10,1],[10,1],[10,2],[10,2],[10,1],[23,4],[23,5],[38,2],[40,1],[40,2],[40,3],[24,1],[24,3],[24,4],[24,3],[24,6],[43,2],[43,3],[47,0],[47,2],[47,2],[26,4],[45,1],[45,2],[25,1],[25,2],[25,1],[25,1],[21,3],[21,4],[21,4],[21,5],[30,3],[30,2],[31,3],[58,1],[58,3],[32,1],[32,1],[32,1],[32,1],[53,3],[53,2],[53,2],[53,1],[66,1],[66,1],[66,1],[66,1],[66,1],[67,1],[67,1],[27,3],[27,4],[27,3],[27,4],[27,4],[27,5],[27,3],[27,4],[27,4],[27,5],[27,4],[27,5],[27,5],[27,6],[28,3],[29,3],[59,1],[59,3],[84,1],[84,2],[85,1],[85,1],[85,1],[85,1],[85,1],[85,1],[85,1],[85,1],[85,1],[91,1],[91,1],[92,1],[92,1],[92,1],[92,1],[92,1],[92,1],[92,1],[94,1],[94,1],[94,1],[94,1],[16,1],[16,1],[16,1],[16,1],[17,1],[55,1]],performAction:o(function(Ne,Ce,Fe,fe,xe,Y,he){var z=Y.length-1;switch(xe){case 8:this.$=Y[z-1];break;case 9:case 10:case 13:case 15:this.$=Y[z];break;case 11:case 14:this.$=Y[z-2]+"."+Y[z];break;case 12:case 16:this.$=Y[z-1]+Y[z];break;case 17:case 18:this.$=Y[z-1]+"~"+Y[z]+"~";break;case 19:fe.addRelation(Y[z]);break;case 20:Y[z-1].title=fe.cleanupLabel(Y[z]),fe.addRelation(Y[z-1]);break;case 31:this.$=Y[z].trim(),fe.setAccTitle(this.$);break;case 32:case 33:this.$=Y[z].trim(),fe.setAccDescription(this.$);break;case 34:fe.addClassesToNamespace(Y[z-3],Y[z-1]);break;case 35:fe.addClassesToNamespace(Y[z-4],Y[z-1]);break;case 36:this.$=Y[z],fe.addNamespace(Y[z]);break;case 37:this.$=[Y[z]];break;case 38:this.$=[Y[z-1]];break;case 39:Y[z].unshift(Y[z-2]),this.$=Y[z];break;case 41:fe.setCssClass(Y[z-2],Y[z]);break;case 42:fe.addMembers(Y[z-3],Y[z-1]);break;case 44:fe.setCssClass(Y[z-5],Y[z-3]),fe.addMembers(Y[z-5],Y[z-1]);break;case 45:this.$=Y[z],fe.addClass(Y[z]);break;case 46:this.$=Y[z-1],fe.addClass(Y[z-1]),fe.setClassLabel(Y[z-1],Y[z]);break;case 50:fe.addAnnotation(Y[z],Y[z-2]);break;case 51:case 64:this.$=[Y[z]];break;case 52:Y[z].push(Y[z-1]),this.$=Y[z];break;case 53:break;case 54:fe.addMember(Y[z-1],fe.cleanupLabel(Y[z]));break;case 55:break;case 56:break;case 57:this.$={id1:Y[z-2],id2:Y[z],relation:Y[z-1],relationTitle1:"none",relationTitle2:"none"};break;case 58:this.$={id1:Y[z-3],id2:Y[z],relation:Y[z-1],relationTitle1:Y[z-2],relationTitle2:"none"};break;case 59:this.$={id1:Y[z-3],id2:Y[z],relation:Y[z-2],relationTitle1:"none",relationTitle2:Y[z-1]};break;case 60:this.$={id1:Y[z-4],id2:Y[z],relation:Y[z-2],relationTitle1:Y[z-3],relationTitle2:Y[z-1]};break;case 61:fe.addNote(Y[z],Y[z-1]);break;case 62:fe.addNote(Y[z]);break;case 63:this.$=Y[z-2],fe.defineClass(Y[z-1],Y[z]);break;case 65:this.$=Y[z-2].concat([Y[z]]);break;case 66:fe.setDirection("TB");break;case 67:fe.setDirection("BT");break;case 68:fe.setDirection("RL");break;case 69:fe.setDirection("LR");break;case 70:this.$={type1:Y[z-2],type2:Y[z],lineType:Y[z-1]};break;case 71:this.$={type1:"none",type2:Y[z],lineType:Y[z-1]};break;case 72:this.$={type1:Y[z-1],type2:"none",lineType:Y[z]};break;case 73:this.$={type1:"none",type2:"none",lineType:Y[z]};break;case 74:this.$=fe.relationType.AGGREGATION;break;case 75:this.$=fe.relationType.EXTENSION;break;case 76:this.$=fe.relationType.COMPOSITION;break;case 77:this.$=fe.relationType.DEPENDENCY;break;case 78:this.$=fe.relationType.LOLLIPOP;break;case 79:this.$=fe.lineType.LINE;break;case 80:this.$=fe.lineType.DOTTED_LINE;break;case 81:case 87:this.$=Y[z-2],fe.setClickEvent(Y[z-1],Y[z]);break;case 82:case 88:this.$=Y[z-3],fe.setClickEvent(Y[z-2],Y[z-1]),fe.setTooltip(Y[z-2],Y[z]);break;case 83:this.$=Y[z-2],fe.setLink(Y[z-1],Y[z]);break;case 84:this.$=Y[z-3],fe.setLink(Y[z-2],Y[z-1],Y[z]);break;case 85:this.$=Y[z-3],fe.setLink(Y[z-2],Y[z-1]),fe.setTooltip(Y[z-2],Y[z]);break;case 86:this.$=Y[z-4],fe.setLink(Y[z-3],Y[z-2],Y[z]),fe.setTooltip(Y[z-3],Y[z-1]);break;case 89:this.$=Y[z-3],fe.setClickEvent(Y[z-2],Y[z-1],Y[z]);break;case 90:this.$=Y[z-4],fe.setClickEvent(Y[z-3],Y[z-2],Y[z-1]),fe.setTooltip(Y[z-3],Y[z]);break;case 91:this.$=Y[z-3],fe.setLink(Y[z-2],Y[z]);break;case 92:this.$=Y[z-4],fe.setLink(Y[z-3],Y[z-1],Y[z]);break;case 93:this.$=Y[z-4],fe.setLink(Y[z-3],Y[z-1]),fe.setTooltip(Y[z-3],Y[z]);break;case 94:this.$=Y[z-5],fe.setLink(Y[z-4],Y[z-2],Y[z]),fe.setTooltip(Y[z-4],Y[z-1]);break;case 95:this.$=Y[z-2],fe.setCssStyle(Y[z-1],Y[z]);break;case 96:fe.setCssClass(Y[z-1],Y[z]);break;case 97:this.$=[Y[z]];break;case 98:Y[z-2].push(Y[z]),this.$=Y[z-2];break;case 100:this.$=Y[z-1]+Y[z];break}},"anonymous"),table:[{3:1,4:2,5:3,6:4,7:[1,6],10:5,16:39,17:40,19:21,21:7,23:8,24:9,25:10,26:11,27:12,28:13,29:14,30:15,31:16,32:17,33:e,35:r,37:n,38:22,42:i,43:23,46:a,49:s,51:l,52:u,54:h,56:f,57:d,60:p,62:m,63:g,64:y,65:v,75:x,76:b,78:T,82:S,83:w,86:k,100:C,102:A,103:L},{1:[3]},{1:[2,1]},{1:[2,2]},{1:[2,3]},t(I,[2,5],{8:[1,48]}),{8:[1,49]},t(R,[2,19],{22:[1,50]}),t(R,[2,21]),t(R,[2,22]),t(R,[2,23]),t(R,[2,24]),t(R,[2,25]),t(R,[2,26]),t(R,[2,27]),t(R,[2,28]),t(R,[2,29]),t(R,[2,30]),{34:[1,51]},{36:[1,52]},t(R,[2,33]),t(R,[2,53],{53:53,66:56,67:57,13:[1,54],22:[1,55],68:E,69:_,70:D,71:O,72:N,73:P,74:B}),{39:[1,65]},t(F,[2,40],{39:[1,67],44:[1,66]}),t(R,[2,55]),t(R,[2,56]),{16:68,60:p,86:k,100:C,102:A},{16:39,17:40,19:69,60:p,86:k,100:C,102:A,103:L},{16:39,17:40,19:70,60:p,86:k,100:C,102:A,103:L},{16:39,17:40,19:71,60:p,86:k,100:C,102:A,103:L},{60:[1,72]},{13:[1,73]},{16:39,17:40,19:74,60:p,86:k,100:C,102:A,103:L},{13:V,55:75},{58:77,60:[1,78]},t(R,[2,66]),t(R,[2,67]),t(R,[2,68]),t(R,[2,69]),t($,[2,13],{16:39,17:40,19:80,18:[1,79],20:[1,81],60:p,86:k,100:C,102:A,103:L}),t($,[2,15],{20:[1,82]}),{15:83,16:84,17:85,60:p,86:k,100:C,102:A,103:L},{16:39,17:40,19:86,60:p,86:k,100:C,102:A,103:L},t(U,[2,123]),t(U,[2,124]),t(U,[2,125]),t(U,[2,126]),t([1,8,9,12,13,20,22,39,41,44,68,69,70,71,72,73,74,79,81],[2,127]),t(I,[2,6],{10:5,21:7,23:8,24:9,25:10,26:11,27:12,28:13,29:14,30:15,31:16,32:17,19:21,38:22,43:23,16:39,17:40,5:87,33:e,35:r,37:n,42:i,46:a,49:s,51:l,52:u,54:h,56:f,57:d,60:p,62:m,63:g,64:y,65:v,75:x,76:b,78:T,82:S,83:w,86:k,100:C,102:A,103:L}),{5:88,10:5,16:39,17:40,19:21,21:7,23:8,24:9,25:10,26:11,27:12,28:13,29:14,30:15,31:16,32:17,33:e,35:r,37:n,38:22,42:i,43:23,46:a,49:s,51:l,52:u,54:h,56:f,57:d,60:p,62:m,63:g,64:y,65:v,75:x,76:b,78:T,82:S,83:w,86:k,100:C,102:A,103:L},t(R,[2,20]),t(R,[2,31]),t(R,[2,32]),{13:[1,90],16:39,17:40,19:89,60:p,86:k,100:C,102:A,103:L},{53:91,66:56,67:57,68:E,69:_,70:D,71:O,72:N,73:P,74:B},t(R,[2,54]),{67:92,73:P,74:B},t(j,[2,73],{66:93,68:E,69:_,70:D,71:O,72:N}),t(ee,[2,74]),t(ee,[2,75]),t(ee,[2,76]),t(ee,[2,77]),t(ee,[2,78]),t(q,[2,79]),t(q,[2,80]),{8:[1,95],24:96,40:94,43:23,46:a},{16:97,60:p,86:k,100:C,102:A},{41:[1,99],45:98,51:oe},{50:[1,101]},{13:[1,102]},{13:[1,103]},{79:[1,104],81:[1,105]},{22:Q,48:ue,59:106,60:te,82:re,84:107,85:108,86:J,87:K,88:ae,89:Z,90:de},{60:[1,118]},{13:V,55:119},t(R,[2,62]),t(R,[2,128]),{22:Q,48:ue,59:120,60:te,61:[1,121],82:re,84:107,85:108,86:J,87:K,88:ae,89:Z,90:de},t(ne,[2,64]),{16:39,17:40,19:122,60:p,86:k,100:C,102:A,103:L},t($,[2,16]),t($,[2,17]),t($,[2,18]),{39:[2,36]},{15:124,16:84,17:85,18:[1,123],39:[2,9],60:p,86:k,100:C,102:A,103:L},{39:[2,10]},t(Te,[2,45],{11:125,12:[1,126]}),t(I,[2,7]),{9:[1,127]},t(W,[2,57]),{16:39,17:40,19:128,60:p,86:k,100:C,102:A,103:L},{13:[1,130],16:39,17:40,19:129,60:p,86:k,100:C,102:A,103:L},t(j,[2,72],{66:131,68:E,69:_,70:D,71:O,72:N}),t(j,[2,71]),{41:[1,132]},{24:96,40:133,43:23,46:a},{8:[1,134],41:[2,37]},t(F,[2,41],{39:[1,135]}),{41:[1,136]},t(F,[2,43]),{41:[2,51],45:137,51:oe},{16:39,17:40,19:138,60:p,86:k,100:C,102:A,103:L},t(R,[2,81],{13:[1,139]}),t(R,[2,83],{13:[1,141],77:[1,140]}),t(R,[2,87],{13:[1,142],80:[1,143]}),{13:[1,144]},t(R,[2,95],{61:Ve}),t(pe,[2,97],{85:146,22:Q,48:ue,60:te,82:re,86:J,87:K,88:ae,89:Z,90:de}),t(Be,[2,99]),t(Be,[2,101]),t(Be,[2,102]),t(Be,[2,103]),t(Be,[2,104]),t(Be,[2,105]),t(Be,[2,106]),t(Be,[2,107]),t(Be,[2,108]),t(Be,[2,109]),t(R,[2,96]),t(R,[2,61]),t(R,[2,63],{61:Ve}),{60:[1,147]},t($,[2,14]),{15:148,16:84,17:85,60:p,86:k,100:C,102:A,103:L},{39:[2,12]},t(Te,[2,46]),{13:[1,149]},{1:[2,4]},t(W,[2,59]),t(W,[2,58]),{16:39,17:40,19:150,60:p,86:k,100:C,102:A,103:L},t(j,[2,70]),t(R,[2,34]),{41:[1,151]},{24:96,40:152,41:[2,38],43:23,46:a},{45:153,51:oe},t(F,[2,42]),{41:[2,52]},t(R,[2,50]),t(R,[2,82]),t(R,[2,84]),t(R,[2,85],{77:[1,154]}),t(R,[2,88]),t(R,[2,89],{13:[1,155]}),t(R,[2,91],{13:[1,157],77:[1,156]}),{22:Q,48:ue,60:te,82:re,84:158,85:108,86:J,87:K,88:ae,89:Z,90:de},t(Be,[2,100]),t(ne,[2,65]),{39:[2,11]},{14:[1,159]},t(W,[2,60]),t(R,[2,35]),{41:[2,39]},{41:[1,160]},t(R,[2,86]),t(R,[2,90]),t(R,[2,92]),t(R,[2,93],{77:[1,161]}),t(pe,[2,98],{85:146,22:Q,48:ue,60:te,82:re,86:J,87:K,88:ae,89:Z,90:de}),t(Te,[2,8]),t(F,[2,44]),t(R,[2,94])],defaultActions:{2:[2,1],3:[2,2],4:[2,3],83:[2,36],85:[2,10],124:[2,12],127:[2,4],137:[2,52],148:[2,11],152:[2,39]},parseError:o(function(Ne,Ce){if(Ce.recoverable)this.trace(Ne);else{var Fe=new Error(Ne);throw Fe.hash=Ce,Fe}},"parseError"),parse:o(function(Ne){var Ce=this,Fe=[0],fe=[],xe=[null],Y=[],he=this.table,z="",se=0,le=0,ke=0,ve=2,ye=1,Re=Y.slice.call(arguments,1),_e=Object.create(this.lexer),ze={yy:{}};for(var Ke in this.yy)Object.prototype.hasOwnProperty.call(this.yy,Ke)&&(ze.yy[Ke]=this.yy[Ke]);_e.setInput(Ne,ze.yy),ze.yy.lexer=_e,ze.yy.parser=this,typeof _e.yylloc>"u"&&(_e.yylloc={});var xt=_e.yylloc;Y.push(xt);var We=_e.options&&_e.options.ranges;typeof ze.yy.parseError=="function"?this.parseError=ze.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function Oe(_t){Fe.length=Fe.length-2*_t,xe.length=xe.length-_t,Y.length=Y.length-_t}o(Oe,"popStack");function et(){var _t;return _t=fe.pop()||_e.lex()||ye,typeof _t!="number"&&(_t instanceof Array&&(fe=_t,_t=fe.pop()),_t=Ce.symbols_[_t]||_t),_t}o(et,"lex");for(var Ue,lt,Gt,vt,Lt,dt,nt={},bt,wt,yt,ft;;){if(Gt=Fe[Fe.length-1],this.defaultActions[Gt]?vt=this.defaultActions[Gt]:((Ue===null||typeof Ue>"u")&&(Ue=et()),vt=he[Gt]&&he[Gt][Ue]),typeof vt>"u"||!vt.length||!vt[0]){var Ur="";ft=[];for(bt in he[Gt])this.terminals_[bt]&&bt>ve&&ft.push("'"+this.terminals_[bt]+"'");_e.showPosition?Ur="Parse error on line "+(se+1)+`: +`+_e.showPosition()+` +Expecting `+ft.join(", ")+", got '"+(this.terminals_[Ue]||Ue)+"'":Ur="Parse error on line "+(se+1)+": Unexpected "+(Ue==ye?"end of input":"'"+(this.terminals_[Ue]||Ue)+"'"),this.parseError(Ur,{text:_e.match,token:this.terminals_[Ue]||Ue,line:_e.yylineno,loc:xt,expected:ft})}if(vt[0]instanceof Array&&vt.length>1)throw new Error("Parse Error: multiple actions possible at state: "+Gt+", token: "+Ue);switch(vt[0]){case 1:Fe.push(Ue),xe.push(_e.yytext),Y.push(_e.yylloc),Fe.push(vt[1]),Ue=null,lt?(Ue=lt,lt=null):(le=_e.yyleng,z=_e.yytext,se=_e.yylineno,xt=_e.yylloc,ke>0&&ke--);break;case 2:if(wt=this.productions_[vt[1]][1],nt.$=xe[xe.length-wt],nt._$={first_line:Y[Y.length-(wt||1)].first_line,last_line:Y[Y.length-1].last_line,first_column:Y[Y.length-(wt||1)].first_column,last_column:Y[Y.length-1].last_column},We&&(nt._$.range=[Y[Y.length-(wt||1)].range[0],Y[Y.length-1].range[1]]),dt=this.performAction.apply(nt,[z,le,se,ze.yy,vt[1],xe,Y].concat(Re)),typeof dt<"u")return dt;wt&&(Fe=Fe.slice(0,-1*wt*2),xe=xe.slice(0,-1*wt),Y=Y.slice(0,-1*wt)),Fe.push(this.productions_[vt[1]][0]),xe.push(nt.$),Y.push(nt._$),yt=he[Fe[Fe.length-2]][Fe[Fe.length-1]],Fe.push(yt);break;case 3:return!0}}return!0},"parse")},He=(function(){var Ie={EOF:1,parseError:o(function(Ce,Fe){if(this.yy.parser)this.yy.parser.parseError(Ce,Fe);else throw new Error(Ce)},"parseError"),setInput:o(function(Ne,Ce){return this.yy=Ce||this.yy||{},this._input=Ne,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},"setInput"),input:o(function(){var Ne=this._input[0];this.yytext+=Ne,this.yyleng++,this.offset++,this.match+=Ne,this.matched+=Ne;var Ce=Ne.match(/(?:\r\n?|\n).*/g);return Ce?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),Ne},"input"),unput:o(function(Ne){var Ce=Ne.length,Fe=Ne.split(/(?:\r\n?|\n)/g);this._input=Ne+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-Ce),this.offset-=Ce;var fe=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),Fe.length-1&&(this.yylineno-=Fe.length-1);var xe=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:Fe?(Fe.length===fe.length?this.yylloc.first_column:0)+fe[fe.length-Fe.length].length-Fe[0].length:this.yylloc.first_column-Ce},this.options.ranges&&(this.yylloc.range=[xe[0],xe[0]+this.yyleng-Ce]),this.yyleng=this.yytext.length,this},"unput"),more:o(function(){return this._more=!0,this},"more"),reject:o(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},"reject"),less:o(function(Ne){this.unput(this.match.slice(Ne))},"less"),pastInput:o(function(){var Ne=this.matched.substr(0,this.matched.length-this.match.length);return(Ne.length>20?"...":"")+Ne.substr(-20).replace(/\n/g,"")},"pastInput"),upcomingInput:o(function(){var Ne=this.match;return Ne.length<20&&(Ne+=this._input.substr(0,20-Ne.length)),(Ne.substr(0,20)+(Ne.length>20?"...":"")).replace(/\n/g,"")},"upcomingInput"),showPosition:o(function(){var Ne=this.pastInput(),Ce=new Array(Ne.length+1).join("-");return Ne+this.upcomingInput()+` +`+Ce+"^"},"showPosition"),test_match:o(function(Ne,Ce){var Fe,fe,xe;if(this.options.backtrack_lexer&&(xe={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&&(xe.yylloc.range=this.yylloc.range.slice(0))),fe=Ne[0].match(/(?:\r\n?|\n).*/g),fe&&(this.yylineno+=fe.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:fe?fe[fe.length-1].length-fe[fe.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+Ne[0].length},this.yytext+=Ne[0],this.match+=Ne[0],this.matches=Ne,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(Ne[0].length),this.matched+=Ne[0],Fe=this.performAction.call(this,this.yy,this,Ce,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),Fe)return Fe;if(this._backtrack){for(var Y in xe)this[Y]=xe[Y];return!1}return!1},"test_match"),next:o(function(){if(this.done)return this.EOF;this._input||(this.done=!0);var Ne,Ce,Fe,fe;this._more||(this.yytext="",this.match="");for(var xe=this._currentRules(),Y=0;YCe[0].length)){if(Ce=Fe,fe=Y,this.options.backtrack_lexer){if(Ne=this.test_match(Fe,xe[Y]),Ne!==!1)return Ne;if(this._backtrack){Ce=!1;continue}else return!1}else if(!this.options.flex)break}return Ce?(Ne=this.test_match(Ce,xe[fe]),Ne!==!1?Ne:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text. +`+this.showPosition(),{text:"",token:null,line:this.yylineno})},"next"),lex:o(function(){var Ce=this.next();return Ce||this.lex()},"lex"),begin:o(function(Ce){this.conditionStack.push(Ce)},"begin"),popState:o(function(){var Ce=this.conditionStack.length-1;return Ce>0?this.conditionStack.pop():this.conditionStack[0]},"popState"),_currentRules:o(function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},"_currentRules"),topState:o(function(Ce){return Ce=this.conditionStack.length-1-Math.abs(Ce||0),Ce>=0?this.conditionStack[Ce]:"INITIAL"},"topState"),pushState:o(function(Ce){this.begin(Ce)},"pushState"),stateStackSize:o(function(){return this.conditionStack.length},"stateStackSize"),options:{},performAction:o(function(Ce,Fe,fe,xe){var Y=xe;switch(fe){case 0:return 62;case 1:return 63;case 2:return 64;case 3:return 65;case 4:break;case 5:break;case 6:return this.begin("acc_title"),33;break;case 7:return this.popState(),"acc_title_value";break;case 8:return this.begin("acc_descr"),35;break;case 9:return this.popState(),"acc_descr_value";break;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 79;case 22:this.popState();break;case 23:return 80;case 24:this.popState();break;case 25:return"STR";case 26:this.begin("string");break;case 27:return 82;case 28:return 57;case 29:return this.begin("namespace"),42;break;case 30:return this.popState(),8;break;case 31:break;case 32:return this.begin("namespace-body"),39;break;case 33:return this.popState(),41;break;case 34:return"EOF_IN_STRUCT";case 35:return 8;case 36:break;case 37:return"EDGE_STATE";case 38:return this.begin("class"),46;break;case 39:return this.popState(),8;break;case 40:break;case 41:return this.popState(),this.popState(),41;break;case 42:return this.begin("class-body"),39;break;case 43:return this.popState(),41;break;case 44:return"EOF_IN_STRUCT";case 45:return"EDGE_STATE";case 46:return"OPEN_IN_STRUCT";case 47:break;case 48:return"MEMBER";case 49:return 83;case 50:return 75;case 51:return 76;case 52:return 78;case 53:return 54;case 54:return 56;case 55:return 49;case 56:return 50;case 57:return 81;case 58:this.popState();break;case 59:return"GENERICTYPE";case 60:this.begin("generic");break;case 61:this.popState();break;case 62:return"BQUOTE_STR";case 63:this.begin("bqstring");break;case 64:return 77;case 65:return 77;case 66:return 77;case 67:return 77;case 68:return 69;case 69:return 69;case 70:return 71;case 71:return 71;case 72:return 70;case 73:return 68;case 74:return 72;case 75:return 73;case 76:return 74;case 77:return 22;case 78:return 44;case 79:return 100;case 80:return 18;case 81:return"PLUS";case 82:return 87;case 83:return 61;case 84:return 89;case 85:return 89;case 86:return 90;case 87:return"EQUALS";case 88:return"EQUALS";case 89:return 60;case 90:return 12;case 91:return 14;case 92:return"PUNCTUATION";case 93:return 86;case 94:return 102;case 95:return 48;case 96:return 48;case 97:return 9}},"anonymous"),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)/,/^(?:classDef\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,33,34,35,36,37,38,49,50,51,52,53,54,55,56,57,60,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,86,87,88,89,90,91,92,93,94,95,97],inclusive:!1},namespace:{rules:[26,29,30,31,32,49,50,51,52,53,54,55,56,57,60,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,86,87,88,89,90,91,92,93,94,95,97],inclusive:!1},"class-body":{rules:[26,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,60,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,86,87,88,89,90,91,92,93,94,95,97],inclusive:!1},class:{rules:[26,39,40,41,42,49,50,51,52,53,54,55,56,57,60,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,86,87,88,89,90,91,92,93,94,95,97],inclusive:!1},acc_descr_multiline:{rules:[11,12,26,49,50,51,52,53,54,55,56,57,60,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,86,87,88,89,90,91,92,93,94,95,97],inclusive:!1},acc_descr:{rules:[9,26,49,50,51,52,53,54,55,56,57,60,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,86,87,88,89,90,91,92,93,94,95,97],inclusive:!1},acc_title:{rules:[7,26,49,50,51,52,53,54,55,56,57,60,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,86,87,88,89,90,91,92,93,94,95,97],inclusive:!1},callback_args:{rules:[22,23,26,49,50,51,52,53,54,55,56,57,60,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,86,87,88,89,90,91,92,93,94,95,97],inclusive:!1},callback_name:{rules:[19,20,21,26,49,50,51,52,53,54,55,56,57,60,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,86,87,88,89,90,91,92,93,94,95,97],inclusive:!1},href:{rules:[26,49,50,51,52,53,54,55,56,57,60,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,86,87,88,89,90,91,92,93,94,95,97],inclusive:!1},struct:{rules:[26,49,50,51,52,53,54,55,56,57,60,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,86,87,88,89,90,91,92,93,94,95,97],inclusive:!1},generic:{rules:[26,49,50,51,52,53,54,55,56,57,58,59,60,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,86,87,88,89,90,91,92,93,94,95,97],inclusive:!1},bqstring:{rules:[26,49,50,51,52,53,54,55,56,57,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,86,87,88,89,90,91,92,93,94,95,97],inclusive:!1},string:{rules:[24,25,26,49,50,51,52,53,54,55,56,57,60,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,86,87,88,89,90,91,92,93,94,95,97],inclusive:!1},INITIAL:{rules:[0,1,2,3,4,5,6,8,10,13,14,15,16,17,18,26,27,28,29,38,49,50,51,52,53,54,55,56,57,60,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,97],inclusive:!0}}};return Ie})();Ye.lexer=He;function Le(){this.yy={}}return o(Le,"Parser"),Le.prototype=Ye,Ye.Parser=Le,new Le})();l$.parser=l$;nC=l$});var tve,E4,rve=M(()=>{"use strict";Xt();gr();tve=["#","+","~","-",""],E4=class{static{o(this,"ClassMember")}constructor(e,r){this.memberType=r,this.visibility="",this.classifier="",this.text="";let n=sr(e,ge());this.parseMember(n)}getDisplayDetails(){let e=this.visibility+rc(this.id);this.memberType==="method"&&(e+=`(${rc(this.parameters.trim())})`,this.returnType&&(e+=" : "+rc(this.returnType))),e=e.trim();let r=this.parseClassifier();return{displayText:e,cssStyle:r}}parseMember(e){let r="";if(this.memberType==="method"){let a=/([#+~-])?(.+)\((.*)\)([\s$*])?(.*)([$*])?/.exec(e);if(a){let s=a[1]?a[1].trim():"";if(tve.includes(s)&&(this.visibility=s),this.id=a[2],this.parameters=a[3]?a[3].trim():"",r=a[4]?a[4].trim():"",this.returnType=a[5]?a[5].trim():"",r===""){let l=this.returnType.substring(this.returnType.length-1);/[$*]/.exec(l)&&(r=l,this.returnType=this.returnType.substring(0,this.returnType.length-1))}}}else{let i=e.length,a=e.substring(0,1),s=e.substring(i-1);tve.includes(a)&&(this.visibility=a),/[$*]/.exec(s)&&(r=s),this.id=e.substring(this.visibility===""?0:1,r===""?i:i-1)}this.classifier=r,this.id=this.id.startsWith(" ")?" "+this.id.trim():this.id.trim();let n=`${this.visibility?"\\"+this.visibility:""}${rc(this.id)}${this.memberType==="method"?`(${rc(this.parameters)})${this.returnType?" : "+rc(this.returnType):""}`:""}`;this.text=n.replaceAll("<","<").replaceAll(">",">"),this.text.startsWith("\\<")&&(this.text=this.text.replace("\\<","~"))}parseClassifier(){switch(this.classifier){case"*":return"font-style:italic;";case"$":return"text-decoration:underline;";default:return""}}}});var iC,nve,c0,oy,u$=M(()=>{"use strict";yr();pt();Xt();gr();tr();ci();rve();iC="classId-",nve=0,c0=o(t=>tt.sanitizeText(t,ge()),"sanitizeText"),oy=class{constructor(){this.relations=[];this.classes=new Map;this.styleClasses=new Map;this.notes=[];this.interfaces=[];this.namespaces=new Map;this.namespaceCounter=0;this.functions=[];this.lineType={LINE:0,DOTTED_LINE:1};this.relationType={AGGREGATION:0,EXTENSION:1,COMPOSITION:2,DEPENDENCY:3,LOLLIPOP:4};this.setupToolTips=o(e=>{let r=qe(".mermaidTooltip");(r._groups||r)[0][0]===null&&(r=qe("body").append("div").attr("class","mermaidTooltip").style("opacity",0)),qe(e).select("svg").selectAll("g.node").on("mouseover",a=>{let s=qe(a.currentTarget);if(s.attr("title")===null)return;let u=this.getBoundingClientRect();r.transition().duration(200).style("opacity",".9"),r.text(s.attr("title")).style("left",window.scrollX+u.left+(u.right-u.left)/2+"px").style("top",window.scrollY+u.top-14+document.body.scrollTop+"px"),r.html(r.html().replace(/<br\/>/g,"
    ")),s.classed("hover",!0)}).on("mouseout",a=>{r.transition().duration(500).style("opacity",0),qe(a.currentTarget).classed("hover",!1)})},"setupToolTips");this.direction="TB";this.setAccTitle=Rr;this.getAccTitle=Mr;this.setAccDescription=Ir;this.getAccDescription=Or;this.setDiagramTitle=$r;this.getDiagramTitle=Pr;this.getConfig=o(()=>ge().class,"getConfig");this.functions.push(this.setupToolTips.bind(this)),this.clear(),this.addRelation=this.addRelation.bind(this),this.addClassesToNamespace=this.addClassesToNamespace.bind(this),this.addNamespace=this.addNamespace.bind(this),this.setCssClass=this.setCssClass.bind(this),this.addMembers=this.addMembers.bind(this),this.addClass=this.addClass.bind(this),this.setClassLabel=this.setClassLabel.bind(this),this.addAnnotation=this.addAnnotation.bind(this),this.addMember=this.addMember.bind(this),this.cleanupLabel=this.cleanupLabel.bind(this),this.addNote=this.addNote.bind(this),this.defineClass=this.defineClass.bind(this),this.setDirection=this.setDirection.bind(this),this.setLink=this.setLink.bind(this),this.bindFunctions=this.bindFunctions.bind(this),this.clear=this.clear.bind(this),this.setTooltip=this.setTooltip.bind(this),this.setClickEvent=this.setClickEvent.bind(this),this.setCssStyle=this.setCssStyle.bind(this)}static{o(this,"ClassDB")}splitClassNameAndType(e){let r=tt.sanitizeText(e,ge()),n="",i=r;if(r.indexOf("~")>0){let a=r.split("~");i=c0(a[0]),n=c0(a[1])}return{className:i,type:n}}setClassLabel(e,r){let n=tt.sanitizeText(e,ge());r&&(r=c0(r));let{className:i}=this.splitClassNameAndType(n);this.classes.get(i).label=r,this.classes.get(i).text=`${r}${this.classes.get(i).type?`<${this.classes.get(i).type}>`:""}`}addClass(e){let r=tt.sanitizeText(e,ge()),{className:n,type:i}=this.splitClassNameAndType(r);if(this.classes.has(n))return;let a=tt.sanitizeText(n,ge());this.classes.set(a,{id:a,type:i,label:a,text:`${a}${i?`<${i}>`:""}`,shape:"classBox",cssClasses:"default",methods:[],members:[],annotations:[],styles:[],domId:iC+a+"-"+nve}),nve++}addInterface(e,r){let n={id:`interface${this.interfaces.length}`,label:e,classId:r};this.interfaces.push(n)}lookUpDomId(e){let r=tt.sanitizeText(e,ge());if(this.classes.has(r))return this.classes.get(r).domId;throw new Error("Class not found: "+r)}clear(){this.relations=[],this.classes=new Map,this.notes=[],this.interfaces=[],this.functions=[],this.functions.push(this.setupToolTips.bind(this)),this.namespaces=new Map,this.namespaceCounter=0,this.direction="TB",Sr()}getClass(e){return this.classes.get(e)}getClasses(){return this.classes}getRelations(){return this.relations}getNotes(){return this.notes}addRelation(e){X.debug("Adding relation: "+JSON.stringify(e));let r=[this.relationType.LOLLIPOP,this.relationType.AGGREGATION,this.relationType.COMPOSITION,this.relationType.DEPENDENCY,this.relationType.EXTENSION];e.relation.type1===this.relationType.LOLLIPOP&&!r.includes(e.relation.type2)?(this.addClass(e.id2),this.addInterface(e.id1,e.id2),e.id1=`interface${this.interfaces.length-1}`):e.relation.type2===this.relationType.LOLLIPOP&&!r.includes(e.relation.type1)?(this.addClass(e.id1),this.addInterface(e.id2,e.id1),e.id2=`interface${this.interfaces.length-1}`):(this.addClass(e.id1),this.addClass(e.id2)),e.id1=this.splitClassNameAndType(e.id1).className,e.id2=this.splitClassNameAndType(e.id2).className,e.relationTitle1=tt.sanitizeText(e.relationTitle1.trim(),ge()),e.relationTitle2=tt.sanitizeText(e.relationTitle2.trim(),ge()),this.relations.push(e)}addAnnotation(e,r){let n=this.splitClassNameAndType(e).className;this.classes.get(n).annotations.push(r)}addMember(e,r){this.addClass(e);let n=this.splitClassNameAndType(e).className,i=this.classes.get(n);if(typeof r=="string"){let a=r.trim();a.startsWith("<<")&&a.endsWith(">>")?i.annotations.push(c0(a.substring(2,a.length-2))):a.indexOf(")")>0?i.methods.push(new E4(a,"method")):a&&i.members.push(new E4(a,"attribute"))}}addMembers(e,r){Array.isArray(r)&&(r.reverse(),r.forEach(n=>this.addMember(e,n)))}addNote(e,r){let n={id:`note${this.notes.length}`,class:r,text:e};this.notes.push(n)}cleanupLabel(e){return e.startsWith(":")&&(e=e.substring(1)),c0(e.trim())}setCssClass(e,r){e.split(",").forEach(n=>{let i=n;/\d/.exec(n[0])&&(i=iC+i);let a=this.classes.get(i);a&&(a.cssClasses+=" "+r)})}defineClass(e,r){for(let n of e){let i=this.styleClasses.get(n);i===void 0&&(i={id:n,styles:[],textStyles:[]},this.styleClasses.set(n,i)),r&&r.forEach(a=>{if(/color/.exec(a)){let s=a.replace("fill","bgFill");i.textStyles.push(s)}i.styles.push(a)}),this.classes.forEach(a=>{a.cssClasses.includes(n)&&a.styles.push(...r.flatMap(s=>s.split(",")))})}}setTooltip(e,r){e.split(",").forEach(n=>{r!==void 0&&(this.classes.get(n).tooltip=c0(r))})}getTooltip(e,r){return r&&this.namespaces.has(r)?this.namespaces.get(r).classes.get(e).tooltip:this.classes.get(e).tooltip}setLink(e,r,n){let i=ge();e.split(",").forEach(a=>{let s=a;/\d/.exec(a[0])&&(s=iC+s);let l=this.classes.get(s);l&&(l.link=qt.formatUrl(r,i),i.securityLevel==="sandbox"?l.linkTarget="_top":typeof n=="string"?l.linkTarget=c0(n):l.linkTarget="_blank")}),this.setCssClass(e,"clickable")}setClickEvent(e,r,n){e.split(",").forEach(i=>{this.setClickFunc(i,r,n),this.classes.get(i).haveCallback=!0}),this.setCssClass(e,"clickable")}setClickFunc(e,r,n){let i=tt.sanitizeText(e,ge());if(ge().securityLevel!=="loose"||r===void 0)return;let s=i;if(this.classes.has(s)){let l=this.lookUpDomId(s),u=[];if(typeof n=="string"){u=n.split(/,(?=(?:(?:[^"]*"){2})*[^"]*$)/);for(let h=0;h{let h=document.querySelector(`[id="${l}"]`);h!==null&&h.addEventListener("click",()=>{qt.runFunc(r,...u)},!1)})}}bindFunctions(e){this.functions.forEach(r=>{r(e)})}getDirection(){return this.direction}setDirection(e){this.direction=e}addNamespace(e){this.namespaces.has(e)||(this.namespaces.set(e,{id:e,classes:new Map,children:{},domId:iC+e+"-"+this.namespaceCounter}),this.namespaceCounter++)}getNamespace(e){return this.namespaces.get(e)}getNamespaces(){return this.namespaces}addClassesToNamespace(e,r){if(this.namespaces.has(e))for(let n of r){let{className:i}=this.splitClassNameAndType(n);this.classes.get(i).parent=e,this.namespaces.get(e).classes.set(i,this.classes.get(i))}}setCssStyle(e,r){let n=this.classes.get(e);if(!(!r||!n))for(let i of r)i.includes(",")?n.styles.push(...i.split(",")):n.styles.push(i)}getArrowMarker(e){let r;switch(e){case 0:r="aggregation";break;case 1:r="extension";break;case 2:r="composition";break;case 3:r="dependency";break;case 4:r="lollipop";break;default:r="none"}return r}getData(){let e=[],r=[],n=ge();for(let a of this.namespaces.keys()){let s=this.namespaces.get(a);if(s){let l={id:s.id,label:s.id,isGroup:!0,padding:n.class.padding??16,shape:"rect",cssStyles:["fill: none","stroke: black"],look:n.look};e.push(l)}}for(let a of this.classes.keys()){let s=this.classes.get(a);if(s){let l=s;l.parentId=s.parent,l.look=n.look,e.push(l)}}let i=0;for(let a of this.notes){i++;let s={id:a.id,label:a.text,isGroup:!1,shape:"note",padding:n.class.padding??6,cssStyles:["text-align: left","white-space: nowrap",`fill: ${n.themeVariables.noteBkgColor}`,`stroke: ${n.themeVariables.noteBorderColor}`],look:n.look};e.push(s);let l=this.classes.get(a.class)?.id??"";if(l){let u={id:`edgeNote${i}`,start:a.id,end:l,type:"normal",thickness:"normal",classes:"relation",arrowTypeStart:"none",arrowTypeEnd:"none",arrowheadStyle:"",labelStyle:[""],style:["fill: none"],pattern:"dotted",look:n.look};r.push(u)}}for(let a of this.interfaces){let s={id:a.id,label:a.label,isGroup:!1,shape:"rect",cssStyles:["opacity: 0;"],look:n.look};e.push(s)}i=0;for(let a of this.relations){i++;let s={id:xc(a.id1,a.id2,{prefix:"id",counter:i}),start:a.id1,end:a.id2,type:"normal",label:a.title,labelpos:"c",thickness:"normal",classes:"relation",arrowTypeStart:this.getArrowMarker(a.relation.type1),arrowTypeEnd:this.getArrowMarker(a.relation.type2),startLabelRight:a.relationTitle1==="none"?"":a.relationTitle1,endLabelLeft:a.relationTitle2==="none"?"":a.relationTitle2,arrowheadStyle:"",labelStyle:["display: inline-block"],style:a.style||"",pattern:a.relation.lineType==1?"dashed":"solid",look:n.look};r.push(s)}return{nodes:e,edges:r,other:{},config:n,direction:this.getDirection()}}}});var VJe,aC,h$=M(()=>{"use strict";yg();VJe=o(t=>`g.classGroup text { + fill: ${t.nodeBorder||t.classText}; + stroke: none; + font-family: ${t.fontFamily}; + font-size: 10px; + + .title { + font-weight: bolder; + } + +} + +.nodeLabel, .edgeLabel { + color: ${t.classText}; +} +.edgeLabel .label rect { + fill: ${t.mainBkg}; +} +.label text { + fill: ${t.classText}; +} + +.labelBkg { + background: ${t.mainBkg}; +} +.edgeLabel .label span { + background: ${t.mainBkg}; +} + +.classTitle { + font-weight: bolder; +} +.node rect, + .node circle, + .node ellipse, + .node polygon, + .node path { + fill: ${t.mainBkg}; + stroke: ${t.nodeBorder}; + stroke-width: 1px; + } + + +.divider { + stroke: ${t.nodeBorder}; + stroke-width: 1; +} + +g.clickable { + cursor: pointer; +} + +g.classGroup rect { + fill: ${t.mainBkg}; + stroke: ${t.nodeBorder}; +} + +g.classGroup line { + stroke: ${t.nodeBorder}; + stroke-width: 1; +} + +.classLabel .box { + stroke: none; + stroke-width: 0; + fill: ${t.mainBkg}; + opacity: 0.5; +} + +.classLabel .label { + fill: ${t.nodeBorder}; + font-size: 10px; +} + +.relation { + stroke: ${t.lineColor}; + stroke-width: 1; + fill: none; +} + +.dashed-line{ + stroke-dasharray: 3; +} + +.dotted-line{ + stroke-dasharray: 1 2; +} + +#compositionStart, .composition { + fill: ${t.lineColor} !important; + stroke: ${t.lineColor} !important; + stroke-width: 1; +} + +#compositionEnd, .composition { + fill: ${t.lineColor} !important; + stroke: ${t.lineColor} !important; + stroke-width: 1; +} + +#dependencyStart, .dependency { + fill: ${t.lineColor} !important; + stroke: ${t.lineColor} !important; + stroke-width: 1; +} + +#dependencyStart, .dependency { + fill: ${t.lineColor} !important; + stroke: ${t.lineColor} !important; + stroke-width: 1; +} + +#extensionStart, .extension { + fill: transparent !important; + stroke: ${t.lineColor} !important; + stroke-width: 1; +} + +#extensionEnd, .extension { + fill: transparent !important; + stroke: ${t.lineColor} !important; + stroke-width: 1; +} + +#aggregationStart, .aggregation { + fill: transparent !important; + stroke: ${t.lineColor} !important; + stroke-width: 1; +} + +#aggregationEnd, .aggregation { + fill: transparent !important; + stroke: ${t.lineColor} !important; + stroke-width: 1; +} + +#lollipopStart, .lollipop { + fill: ${t.mainBkg} !important; + stroke: ${t.lineColor} !important; + stroke-width: 1; +} + +#lollipopEnd, .lollipop { + fill: ${t.mainBkg} !important; + stroke: ${t.lineColor} !important; + stroke-width: 1; +} + +.edgeTerminals { + font-size: 11px; + line-height: initial; +} + +.classTitleText { + text-anchor: middle; + font-size: 18px; + fill: ${t.textColor}; +} + ${zc()} +`,"getStyles"),aC=VJe});var UJe,HJe,qJe,sC,f$=M(()=>{"use strict";Xt();pt();ep();Nf();Mf();tr();UJe=o((t,e="TB")=>{if(!t.doc)return e;let r=e;for(let n of t.doc)n.stmt==="dir"&&(r=n.value);return r},"getDir"),HJe=o(function(t,e){return e.db.getClasses()},"getClasses"),qJe=o(async function(t,e,r,n){X.info("REF0:"),X.info("Drawing class diagram (v3)",e);let{securityLevel:i,state:a,layout:s}=ge(),l=n.db.getData(),u=Vo(e,i);l.type=n.type,l.layoutAlgorithm=$c(s),l.nodeSpacing=a?.nodeSpacing||50,l.rankSpacing=a?.rankSpacing||50,l.markers=["aggregation","extension","composition","dependency","lollipop"],l.diagramId=e,await Qo(l,u);let h=8;qt.insertTitle(u,"classDiagramTitleText",a?.titleTopMargin??25,n.db.getDiagramTitle()),Ws(u,h,"classDiagram",a?.useMaxWidth??!0)},"draw"),sC={getClasses:HJe,draw:qJe,getDir:UJe}});var ive={};dr(ive,{diagram:()=>WJe});var WJe,ave=M(()=>{"use strict";c$();u$();h$();f$();WJe={parser:nC,get db(){return new oy},renderer:sC,styles:aC,init:o(t=>{t.class||(t.class={}),t.class.arrowMarkerAbsolute=t.arrowMarkerAbsolute},"init")}});var lve={};dr(lve,{diagram:()=>KJe});var KJe,cve=M(()=>{"use strict";c$();u$();h$();f$();KJe={parser:nC,get db(){return new oy},renderer:sC,styles:aC,init:o(t=>{t.class||(t.class={}),t.class.arrowMarkerAbsolute=t.arrowMarkerAbsolute},"init")}});var d$,oC,p$=M(()=>{"use strict";d$=(function(){var t=o(function(F,V,$,U){for($=$||{},U=F.length;U--;$[F[U]]=V);return $},"o"),e=[1,2],r=[1,3],n=[1,4],i=[2,4],a=[1,9],s=[1,11],l=[1,16],u=[1,17],h=[1,18],f=[1,19],d=[1,33],p=[1,20],m=[1,21],g=[1,22],y=[1,23],v=[1,24],x=[1,26],b=[1,27],T=[1,28],S=[1,29],w=[1,30],k=[1,31],C=[1,32],A=[1,35],L=[1,36],I=[1,37],R=[1,38],E=[1,34],_=[1,4,5,16,17,19,21,22,24,25,26,27,28,29,33,35,37,38,41,45,48,51,52,53,54,57],D=[1,4,5,14,15,16,17,19,21,22,24,25,26,27,28,29,33,35,37,38,39,40,41,45,48,51,52,53,54,57],O=[4,5,16,17,19,21,22,24,25,26,27,28,29,33,35,37,38,41,45,48,51,52,53,54,57],N={trace:o(function(){},"trace"),yy:{},symbols_:{error:2,start:3,SPACE:4,NL:5,SD:6,document:7,line:8,statement:9,classDefStatement:10,styleStatement:11,cssClassStatement:12,idStatement: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:29,notePosition:30,NOTE_TEXT:31,direction:32,acc_title:33,acc_title_value:34,acc_descr:35,acc_descr_value:36,acc_descr_multiline_value:37,CLICK:38,STRING:39,HREF:40,classDef:41,CLASSDEF_ID:42,CLASSDEF_STYLEOPTS:43,DEFAULT:44,style:45,STYLE_IDS:46,STYLEDEF_STYLEOPTS:47,class:48,CLASSENTITY_IDS:49,STYLECLASS:50,direction_tb:51,direction_bt:52,direction_rl:53,direction_lr:54,eol:55,";":56,EDGE_STATE:57,STYLE_SEPARATOR:58,left_of:59,right_of:60,$accept:0,$end:1},terminals_:{2:"error",4:"SPACE",5:"NL",6:"SD",14:"DESCR",15:"-->",16:"HIDE_EMPTY",17:"scale",18:"WIDTH",19:"COMPOSIT_STATE",20:"STRUCT_START",21:"STRUCT_STOP",22:"STATE_DESCR",23:"AS",24:"ID",25:"FORK",26:"JOIN",27:"CHOICE",28:"CONCURRENT",29:"note",31:"NOTE_TEXT",33:"acc_title",34:"acc_title_value",35:"acc_descr",36:"acc_descr_value",37:"acc_descr_multiline_value",38:"CLICK",39:"STRING",40:"HREF",41:"classDef",42:"CLASSDEF_ID",43:"CLASSDEF_STYLEOPTS",44:"DEFAULT",45:"style",46:"STYLE_IDS",47:"STYLEDEF_STYLEOPTS",48:"class",49:"CLASSENTITY_IDS",50:"STYLECLASS",51:"direction_tb",52:"direction_bt",53:"direction_rl",54:"direction_lr",56:";",57:"EDGE_STATE",58:"STYLE_SEPARATOR",59:"left_of",60:"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,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],[9,5],[9,5],[10,3],[10,3],[11,3],[12,3],[32,1],[32,1],[32,1],[32,1],[55,1],[55,1],[13,1],[13,1],[13,3],[13,3],[30,1],[30,1]],performAction:o(function(V,$,U,j,ee,q,oe){var Q=q.length-1;switch(ee){case 3:return j.setRootDoc(q[Q]),q[Q];break;case 4:this.$=[];break;case 5:q[Q]!="nl"&&(q[Q-1].push(q[Q]),this.$=q[Q-1]);break;case 6:case 7:this.$=q[Q];break;case 8:this.$="nl";break;case 12:this.$=q[Q];break;case 13:let J=q[Q-1];J.description=j.trimColon(q[Q]),this.$=J;break;case 14:this.$={stmt:"relation",state1:q[Q-2],state2:q[Q]};break;case 15:let K=j.trimColon(q[Q]);this.$={stmt:"relation",state1:q[Q-3],state2:q[Q-1],description:K};break;case 19:this.$={stmt:"state",id:q[Q-3],type:"default",description:"",doc:q[Q-1]};break;case 20:var ue=q[Q],te=q[Q-2].trim();if(q[Q].match(":")){var re=q[Q].split(":");ue=re[0],te=[te,re[1]]}this.$={stmt:"state",id:ue,type:"default",description:te};break;case 21:this.$={stmt:"state",id:q[Q-3],type:"default",description:q[Q-5],doc:q[Q-1]};break;case 22:this.$={stmt:"state",id:q[Q],type:"fork"};break;case 23:this.$={stmt:"state",id:q[Q],type:"join"};break;case 24:this.$={stmt:"state",id:q[Q],type:"choice"};break;case 25:this.$={stmt:"state",id:j.getDividerId(),type:"divider"};break;case 26:this.$={stmt:"state",id:q[Q-1].trim(),note:{position:q[Q-2].trim(),text:q[Q].trim()}};break;case 29:this.$=q[Q].trim(),j.setAccTitle(this.$);break;case 30:case 31:this.$=q[Q].trim(),j.setAccDescription(this.$);break;case 32:this.$={stmt:"click",id:q[Q-3],url:q[Q-2],tooltip:q[Q-1]};break;case 33:this.$={stmt:"click",id:q[Q-3],url:q[Q-1],tooltip:""};break;case 34:case 35:this.$={stmt:"classDef",id:q[Q-1].trim(),classes:q[Q].trim()};break;case 36:this.$={stmt:"style",id:q[Q-1].trim(),styleClass:q[Q].trim()};break;case 37:this.$={stmt:"applyClass",id:q[Q-1].trim(),styleClass:q[Q].trim()};break;case 38:j.setDirection("TB"),this.$={stmt:"dir",value:"TB"};break;case 39:j.setDirection("BT"),this.$={stmt:"dir",value:"BT"};break;case 40:j.setDirection("RL"),this.$={stmt:"dir",value:"RL"};break;case 41:j.setDirection("LR"),this.$={stmt:"dir",value:"LR"};break;case 44:case 45:this.$={stmt:"state",id:q[Q].trim(),type:"default",description:""};break;case 46:this.$={stmt:"state",id:q[Q-2].trim(),classes:[q[Q].trim()],type:"default",description:""};break;case 47:this.$={stmt:"state",id:q[Q-2].trim(),classes:[q[Q].trim()],type:"default",description:""};break}},"anonymous"),table:[{3:1,4:e,5:r,6:n},{1:[3]},{3:5,4:e,5:r,6:n},{3:6,4:e,5:r,6:n},t([1,4,5,16,17,19,22,24,25,26,27,28,29,33,35,37,38,41,45,48,51,52,53,54,57],i,{7:7}),{1:[2,1]},{1:[2,2]},{1:[2,3],4:a,5:s,8:8,9:10,10:12,11:13,12:14,13:15,16:l,17:u,19:h,22:f,24:d,25:p,26:m,27:g,28:y,29:v,32:25,33:x,35:b,37:T,38:S,41:w,45:k,48:C,51:A,52:L,53:I,54:R,57:E},t(_,[2,5]),{9:39,10:12,11:13,12:14,13:15,16:l,17:u,19:h,22:f,24:d,25:p,26:m,27:g,28:y,29:v,32:25,33:x,35:b,37:T,38:S,41:w,45:k,48:C,51:A,52:L,53:I,54:R,57:E},t(_,[2,7]),t(_,[2,8]),t(_,[2,9]),t(_,[2,10]),t(_,[2,11]),t(_,[2,12],{14:[1,40],15:[1,41]}),t(_,[2,16]),{18:[1,42]},t(_,[2,18],{20:[1,43]}),{23:[1,44]},t(_,[2,22]),t(_,[2,23]),t(_,[2,24]),t(_,[2,25]),{30:45,31:[1,46],59:[1,47],60:[1,48]},t(_,[2,28]),{34:[1,49]},{36:[1,50]},t(_,[2,31]),{13:51,24:d,57:E},{42:[1,52],44:[1,53]},{46:[1,54]},{49:[1,55]},t(D,[2,44],{58:[1,56]}),t(D,[2,45],{58:[1,57]}),t(_,[2,38]),t(_,[2,39]),t(_,[2,40]),t(_,[2,41]),t(_,[2,6]),t(_,[2,13]),{13:58,24:d,57:E},t(_,[2,17]),t(O,i,{7:59}),{24:[1,60]},{24:[1,61]},{23:[1,62]},{24:[2,48]},{24:[2,49]},t(_,[2,29]),t(_,[2,30]),{39:[1,63],40:[1,64]},{43:[1,65]},{43:[1,66]},{47:[1,67]},{50:[1,68]},{24:[1,69]},{24:[1,70]},t(_,[2,14],{14:[1,71]}),{4:a,5:s,8:8,9:10,10:12,11:13,12:14,13:15,16:l,17:u,19:h,21:[1,72],22:f,24:d,25:p,26:m,27:g,28:y,29:v,32:25,33:x,35:b,37:T,38:S,41:w,45:k,48:C,51:A,52:L,53:I,54:R,57:E},t(_,[2,20],{20:[1,73]}),{31:[1,74]},{24:[1,75]},{39:[1,76]},{39:[1,77]},t(_,[2,34]),t(_,[2,35]),t(_,[2,36]),t(_,[2,37]),t(D,[2,46]),t(D,[2,47]),t(_,[2,15]),t(_,[2,19]),t(O,i,{7:78}),t(_,[2,26]),t(_,[2,27]),{5:[1,79]},{5:[1,80]},{4:a,5:s,8:8,9:10,10:12,11:13,12:14,13:15,16:l,17:u,19:h,21:[1,81],22:f,24:d,25:p,26:m,27:g,28:y,29:v,32:25,33:x,35:b,37:T,38:S,41:w,45:k,48:C,51:A,52:L,53:I,54:R,57:E},t(_,[2,32]),t(_,[2,33]),t(_,[2,21])],defaultActions:{5:[2,1],6:[2,2],47:[2,48],48:[2,49]},parseError:o(function(V,$){if($.recoverable)this.trace(V);else{var U=new Error(V);throw U.hash=$,U}},"parseError"),parse:o(function(V){var $=this,U=[0],j=[],ee=[null],q=[],oe=this.table,Q="",ue=0,te=0,re=0,J=2,K=1,ae=q.slice.call(arguments,1),Z=Object.create(this.lexer),de={yy:{}};for(var ne in this.yy)Object.prototype.hasOwnProperty.call(this.yy,ne)&&(de.yy[ne]=this.yy[ne]);Z.setInput(V,de.yy),de.yy.lexer=Z,de.yy.parser=this,typeof Z.yylloc>"u"&&(Z.yylloc={});var Te=Z.yylloc;q.push(Te);var W=Z.options&&Z.options.ranges;typeof de.yy.parseError=="function"?this.parseError=de.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function Ve(z){U.length=U.length-2*z,ee.length=ee.length-z,q.length=q.length-z}o(Ve,"popStack");function pe(){var z;return z=j.pop()||Z.lex()||K,typeof z!="number"&&(z instanceof Array&&(j=z,z=j.pop()),z=$.symbols_[z]||z),z}o(pe,"lex");for(var Be,Ye,He,Le,Ie,Ne,Ce={},Fe,fe,xe,Y;;){if(He=U[U.length-1],this.defaultActions[He]?Le=this.defaultActions[He]:((Be===null||typeof Be>"u")&&(Be=pe()),Le=oe[He]&&oe[He][Be]),typeof Le>"u"||!Le.length||!Le[0]){var he="";Y=[];for(Fe in oe[He])this.terminals_[Fe]&&Fe>J&&Y.push("'"+this.terminals_[Fe]+"'");Z.showPosition?he="Parse error on line "+(ue+1)+`: +`+Z.showPosition()+` +Expecting `+Y.join(", ")+", got '"+(this.terminals_[Be]||Be)+"'":he="Parse error on line "+(ue+1)+": Unexpected "+(Be==K?"end of input":"'"+(this.terminals_[Be]||Be)+"'"),this.parseError(he,{text:Z.match,token:this.terminals_[Be]||Be,line:Z.yylineno,loc:Te,expected:Y})}if(Le[0]instanceof Array&&Le.length>1)throw new Error("Parse Error: multiple actions possible at state: "+He+", token: "+Be);switch(Le[0]){case 1:U.push(Be),ee.push(Z.yytext),q.push(Z.yylloc),U.push(Le[1]),Be=null,Ye?(Be=Ye,Ye=null):(te=Z.yyleng,Q=Z.yytext,ue=Z.yylineno,Te=Z.yylloc,re>0&&re--);break;case 2:if(fe=this.productions_[Le[1]][1],Ce.$=ee[ee.length-fe],Ce._$={first_line:q[q.length-(fe||1)].first_line,last_line:q[q.length-1].last_line,first_column:q[q.length-(fe||1)].first_column,last_column:q[q.length-1].last_column},W&&(Ce._$.range=[q[q.length-(fe||1)].range[0],q[q.length-1].range[1]]),Ne=this.performAction.apply(Ce,[Q,te,ue,de.yy,Le[1],ee,q].concat(ae)),typeof Ne<"u")return Ne;fe&&(U=U.slice(0,-1*fe*2),ee=ee.slice(0,-1*fe),q=q.slice(0,-1*fe)),U.push(this.productions_[Le[1]][0]),ee.push(Ce.$),q.push(Ce._$),xe=oe[U[U.length-2]][U[U.length-1]],U.push(xe);break;case 3:return!0}}return!0},"parse")},P=(function(){var F={EOF:1,parseError:o(function($,U){if(this.yy.parser)this.yy.parser.parseError($,U);else throw new Error($)},"parseError"),setInput:o(function(V,$){return this.yy=$||this.yy||{},this._input=V,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},"setInput"),input:o(function(){var V=this._input[0];this.yytext+=V,this.yyleng++,this.offset++,this.match+=V,this.matched+=V;var $=V.match(/(?:\r\n?|\n).*/g);return $?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),V},"input"),unput:o(function(V){var $=V.length,U=V.split(/(?:\r\n?|\n)/g);this._input=V+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-$),this.offset-=$;var j=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 ee=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===j.length?this.yylloc.first_column:0)+j[j.length-U.length].length-U[0].length:this.yylloc.first_column-$},this.options.ranges&&(this.yylloc.range=[ee[0],ee[0]+this.yyleng-$]),this.yyleng=this.yytext.length,this},"unput"),more:o(function(){return this._more=!0,this},"more"),reject:o(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},"reject"),less:o(function(V){this.unput(this.match.slice(V))},"less"),pastInput:o(function(){var V=this.matched.substr(0,this.matched.length-this.match.length);return(V.length>20?"...":"")+V.substr(-20).replace(/\n/g,"")},"pastInput"),upcomingInput:o(function(){var V=this.match;return V.length<20&&(V+=this._input.substr(0,20-V.length)),(V.substr(0,20)+(V.length>20?"...":"")).replace(/\n/g,"")},"upcomingInput"),showPosition:o(function(){var V=this.pastInput(),$=new Array(V.length+1).join("-");return V+this.upcomingInput()+` +`+$+"^"},"showPosition"),test_match:o(function(V,$){var U,j,ee;if(this.options.backtrack_lexer&&(ee={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&&(ee.yylloc.range=this.yylloc.range.slice(0))),j=V[0].match(/(?:\r\n?|\n).*/g),j&&(this.yylineno+=j.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:j?j[j.length-1].length-j[j.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+V[0].length},this.yytext+=V[0],this.match+=V[0],this.matches=V,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(V[0].length),this.matched+=V[0],U=this.performAction.call(this,this.yy,this,$,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),U)return U;if(this._backtrack){for(var q in ee)this[q]=ee[q];return!1}return!1},"test_match"),next:o(function(){if(this.done)return this.EOF;this._input||(this.done=!0);var V,$,U,j;this._more||(this.yytext="",this.match="");for(var ee=this._currentRules(),q=0;q$[0].length)){if($=U,j=q,this.options.backtrack_lexer){if(V=this.test_match(U,ee[q]),V!==!1)return V;if(this._backtrack){$=!1;continue}else return!1}else if(!this.options.flex)break}return $?(V=this.test_match($,ee[j]),V!==!1?V:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text. +`+this.showPosition(),{text:"",token:null,line:this.yylineno})},"next"),lex:o(function(){var $=this.next();return $||this.lex()},"lex"),begin:o(function($){this.conditionStack.push($)},"begin"),popState:o(function(){var $=this.conditionStack.length-1;return $>0?this.conditionStack.pop():this.conditionStack[0]},"popState"),_currentRules:o(function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},"_currentRules"),topState:o(function($){return $=this.conditionStack.length-1-Math.abs($||0),$>=0?this.conditionStack[$]:"INITIAL"},"topState"),pushState:o(function($){this.begin($)},"pushState"),stateStackSize:o(function(){return this.conditionStack.length},"stateStackSize"),options:{"case-insensitive":!0},performAction:o(function($,U,j,ee){var q=ee;switch(j){case 0:return 38;case 1:return 40;case 2:return 39;case 3:return 44;case 4:return 51;case 5:return 52;case 6:return 53;case 7:return 54;case 8:break;case 9:break;case 10:return 5;case 11:break;case 12:break;case 13:break;case 14:break;case 15:return this.pushState("SCALE"),17;break;case 16:return 18;case 17:this.popState();break;case 18:return this.begin("acc_title"),33;break;case 19:return this.popState(),"acc_title_value";break;case 20:return this.begin("acc_descr"),35;break;case 21:return this.popState(),"acc_descr_value";break;case 22:this.begin("acc_descr_multiline");break;case 23:this.popState();break;case 24:return"acc_descr_multiline_value";case 25:return this.pushState("CLASSDEF"),41;break;case 26:return this.popState(),this.pushState("CLASSDEFID"),"DEFAULT_CLASSDEF_ID";break;case 27:return this.popState(),this.pushState("CLASSDEFID"),42;break;case 28:return this.popState(),43;break;case 29:return this.pushState("CLASS"),48;break;case 30:return this.popState(),this.pushState("CLASS_STYLE"),49;break;case 31:return this.popState(),50;break;case 32:return this.pushState("STYLE"),45;break;case 33:return this.popState(),this.pushState("STYLEDEF_STYLES"),46;break;case 34:return this.popState(),47;break;case 35:return this.pushState("SCALE"),17;break;case 36:return 18;case 37:this.popState();break;case 38:this.pushState("STATE");break;case 39:return this.popState(),U.yytext=U.yytext.slice(0,-8).trim(),25;break;case 40:return this.popState(),U.yytext=U.yytext.slice(0,-8).trim(),26;break;case 41:return this.popState(),U.yytext=U.yytext.slice(0,-10).trim(),27;break;case 42:return this.popState(),U.yytext=U.yytext.slice(0,-8).trim(),25;break;case 43:return this.popState(),U.yytext=U.yytext.slice(0,-8).trim(),26;break;case 44:return this.popState(),U.yytext=U.yytext.slice(0,-10).trim(),27;break;case 45:return 51;case 46:return 52;case 47:return 53;case 48:return 54;case 49:this.pushState("STATE_STRING");break;case 50:return this.pushState("STATE_ID"),"AS";break;case 51:return this.popState(),"ID";break;case 52:this.popState();break;case 53:return"STATE_DESCR";case 54:return 19;case 55:this.popState();break;case 56:return this.popState(),this.pushState("struct"),20;break;case 57:break;case 58:return this.popState(),21;break;case 59:break;case 60:return this.begin("NOTE"),29;break;case 61:return this.popState(),this.pushState("NOTE_ID"),59;break;case 62:return this.popState(),this.pushState("NOTE_ID"),60;break;case 63:this.popState(),this.pushState("FLOATING_NOTE");break;case 64:return this.popState(),this.pushState("FLOATING_NOTE_ID"),"AS";break;case 65:break;case 66:return"NOTE_TEXT";case 67:return this.popState(),"ID";break;case 68:return this.popState(),this.pushState("NOTE_TEXT"),24;break;case 69:return this.popState(),U.yytext=U.yytext.substr(2).trim(),31;break;case 70:return this.popState(),U.yytext=U.yytext.slice(0,-8).trim(),31;break;case 71:return 6;case 72:return 6;case 73:return 16;case 74:return 57;case 75:return 24;case 76:return U.yytext=U.yytext.trim(),14;break;case 77:return 15;case 78:return 28;case 79:return 58;case 80:return 5;case 81:return"INVALID"}},"anonymous"),rules:[/^(?:click\b)/i,/^(?:href\b)/i,/^(?:"[^"]*")/i,/^(?: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,/^(?:style\s+)/i,/^(?:[\w,]+\s+)/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:[12,13],inclusive:!1},struct:{rules:[12,13,25,29,32,38,45,46,47,48,57,58,59,60,74,75,76,77,78],inclusive:!1},FLOATING_NOTE_ID:{rules:[67],inclusive:!1},FLOATING_NOTE:{rules:[64,65,66],inclusive:!1},NOTE_TEXT:{rules:[69,70],inclusive:!1},NOTE_ID:{rules:[68],inclusive:!1},NOTE:{rules:[61,62,63],inclusive:!1},STYLEDEF_STYLEOPTS:{rules:[],inclusive:!1},STYLEDEF_STYLES:{rules:[34],inclusive:!1},STYLE_IDS:{rules:[],inclusive:!1},STYLE:{rules:[33],inclusive:!1},CLASS_STYLE:{rules:[31],inclusive:!1},CLASS:{rules:[30],inclusive:!1},CLASSDEFID:{rules:[28],inclusive:!1},CLASSDEF:{rules:[26,27],inclusive:!1},acc_descr_multiline:{rules:[23,24],inclusive:!1},acc_descr:{rules:[21],inclusive:!1},acc_title:{rules:[19],inclusive:!1},SCALE:{rules:[16,17,36,37],inclusive:!1},ALIAS:{rules:[],inclusive:!1},STATE_ID:{rules:[51],inclusive:!1},STATE_STRING:{rules:[52,53],inclusive:!1},FORK_STATE:{rules:[],inclusive:!1},STATE:{rules:[12,13,39,40,41,42,43,44,49,50,54,55,56],inclusive:!1},ID:{rules:[12,13],inclusive:!1},INITIAL:{rules:[0,1,2,3,4,5,6,7,8,9,10,11,13,14,15,18,20,22,25,29,32,35,38,56,60,71,72,73,74,75,76,77,79,80,81],inclusive:!0}}};return F})();N.lexer=P;function B(){this.yy={}}return o(B,"Parser"),B.prototype=N,N.Parser=B,new B})();d$.parser=d$;oC=d$});var Qf,u0,S4,fve,dve,pve,h0,lC,m$,g$,y$,v$,cC,uC,mve,gve,x$,b$,yve,vve,ly,eet,xve,T$,tet,ret,bve,Tve,net,wve,iet,kve,w$,k$,Eve,hC,Sve,E$,fC=M(()=>{"use strict";Qf="state",u0="root",S4="relation",fve="classDef",dve="style",pve="applyClass",h0="default",lC="divider",m$="fill:none",g$="fill: #333",y$="text",v$="normal",cC="rect",uC="rectWithTitle",mve="stateStart",gve="stateEnd",x$="divider",b$="roundedWithTitle",yve="note",vve="noteGroup",ly="statediagram",eet="state",xve=`${ly}-${eet}`,T$="transition",tet="note",ret="note-edge",bve=`${T$} ${ret}`,Tve=`${ly}-${tet}`,net="cluster",wve=`${ly}-${net}`,iet="cluster-alt",kve=`${ly}-${iet}`,w$="parent",k$="note",Eve="state",hC="----",Sve=`${hC}${k$}`,E$=`${hC}${w$}`});function S$(t="",e=0,r="",n=hC){let i=r!==null&&r.length>0?`${n}${r}`:"";return`${Eve}-${t}${i}-${e}`}function dC(t,e,r){if(!e.id||e.id===""||e.id==="")return;e.cssClasses&&(Array.isArray(e.cssCompiledStyles)||(e.cssCompiledStyles=[]),e.cssClasses.split(" ").forEach(i=>{let a=r.get(i);a&&(e.cssCompiledStyles=[...e.cssCompiledStyles??[],...a.styles])}));let n=t.find(i=>i.id===e.id);n?Object.assign(n,e):t.push(e)}function set(t){return t?.classes?.join(" ")??""}function oet(t){return t?.styles??[]}var pC,Zf,aet,Cve,cy,_ve,Dve=M(()=>{"use strict";Xt();pt();gr();fC();pC=new Map,Zf=0;o(S$,"stateDomId");aet=o((t,e,r,n,i,a,s,l)=>{X.trace("items",e),e.forEach(u=>{switch(u.stmt){case Qf:cy(t,u,r,n,i,a,s,l);break;case h0:cy(t,u,r,n,i,a,s,l);break;case S4:{cy(t,u.state1,r,n,i,a,s,l),cy(t,u.state2,r,n,i,a,s,l);let h={id:"edge"+Zf,start:u.state1.id,end:u.state2.id,arrowhead:"normal",arrowTypeEnd:"arrow_barb",style:m$,labelStyle:"",label:tt.sanitizeText(u.description??"",ge()),arrowheadStyle:g$,labelpos:"c",labelType:y$,thickness:v$,classes:T$,look:s};i.push(h),Zf++}break}})},"setupDoc"),Cve=o((t,e="TB")=>{let r=e;if(t.doc)for(let n of t.doc)n.stmt==="dir"&&(r=n.value);return r},"getDir");o(dC,"insertOrUpdateNode");o(set,"getClassesFromDbInfo");o(oet,"getStylesFromDbInfo");cy=o((t,e,r,n,i,a,s,l)=>{let u=e.id,h=r.get(u),f=set(h),d=oet(h),p=ge();if(X.info("dataFetcher parsedItem",e,h,d),u!=="root"){let m=cC;e.start===!0?m=mve:e.start===!1&&(m=gve),e.type!==h0&&(m=e.type),pC.get(u)||pC.set(u,{id:u,shape:m,description:tt.sanitizeText(u,p),cssClasses:`${f} ${xve}`,cssStyles:d});let g=pC.get(u);e.description&&(Array.isArray(g.description)?(g.shape=uC,g.description.push(e.description)):g.description?.length&&g.description.length>0?(g.shape=uC,g.description===u?g.description=[e.description]:g.description=[g.description,e.description]):(g.shape=cC,g.description=e.description),g.description=tt.sanitizeTextOrArray(g.description,p)),g.description?.length===1&&g.shape===uC&&(g.type==="group"?g.shape=b$:g.shape=cC),!g.type&&e.doc&&(X.info("Setting cluster for XCX",u,Cve(e)),g.type="group",g.isGroup=!0,g.dir=Cve(e),g.shape=e.type===lC?x$:b$,g.cssClasses=`${g.cssClasses} ${wve} ${a?kve:""}`);let y={labelStyle:"",shape:g.shape,label:g.description,cssClasses:g.cssClasses,cssCompiledStyles:[],cssStyles:g.cssStyles,id:u,dir:g.dir,domId:S$(u,Zf),type:g.type,isGroup:g.type==="group",padding:8,rx:10,ry:10,look:s};if(y.shape===x$&&(y.label=""),t&&t.id!=="root"&&(X.trace("Setting node ",u," to be child of its parent ",t.id),y.parentId=t.id),y.centerLabel=!0,e.note){let v={labelStyle:"",shape:yve,label:e.note.text,cssClasses:Tve,cssStyles:[],cssCompiledStyles:[],id:u+Sve+"-"+Zf,domId:S$(u,Zf,k$),type:g.type,isGroup:g.type==="group",padding:p.flowchart?.padding,look:s,position:e.note.position},x=u+E$,b={labelStyle:"",shape:vve,label:e.note.text,cssClasses:g.cssClasses,cssStyles:[],id:u+E$,domId:S$(u,Zf,w$),type:"group",isGroup:!0,padding:16,look:s,position:e.note.position};Zf++,b.id=x,v.parentId=x,dC(n,b,l),dC(n,v,l),dC(n,y,l);let T=u,S=v.id;e.note.position==="left of"&&(T=v.id,S=u),i.push({id:T+"-"+S,start:T,end:S,arrowhead:"none",arrowTypeEnd:"",style:m$,labelStyle:"",classes:bve,arrowheadStyle:g$,labelpos:"c",labelType:y$,thickness:v$,look:s})}else dC(n,y,l)}e.doc&&(X.trace("Adding nodes children "),aet(e,e.doc,r,n,i,!a,s,l))},"dataFetcher"),_ve=o(()=>{pC.clear(),Zf=0},"reset")});var A$,cet,uet,Lve,_$=M(()=>{"use strict";Xt();pt();ep();Nf();Mf();tr();fC();A$=o((t,e="TB")=>{if(!t.doc)return e;let r=e;for(let n of t.doc)n.stmt==="dir"&&(r=n.value);return r},"getDir"),cet=o(function(t,e){return e.db.getClasses()},"getClasses"),uet=o(async function(t,e,r,n){X.info("REF0:"),X.info("Drawing state diagram (v2)",e);let{securityLevel:i,state:a,layout:s}=ge();n.db.extract(n.db.getRootDocV2());let l=n.db.getData(),u=Vo(e,i);l.type=n.type,l.layoutAlgorithm=s,l.nodeSpacing=a?.nodeSpacing||50,l.rankSpacing=a?.rankSpacing||50,l.markers=["barb"],l.diagramId=e,await Qo(l,u);let h=8;try{(typeof n.db.getLinks=="function"?n.db.getLinks():new Map).forEach((d,p)=>{let m=typeof p=="string"?p:typeof p?.id=="string"?p.id:"";if(!m){X.warn("\u26A0\uFE0F Invalid or missing stateId from key:",JSON.stringify(p));return}let g=u.node()?.querySelectorAll("g"),y;if(g?.forEach(T=>{T.textContent?.trim()===m&&(y=T)}),!y){X.warn("\u26A0\uFE0F Could not find node matching text:",m);return}let v=y.parentNode;if(!v){X.warn("\u26A0\uFE0F Node has no parent, cannot wrap:",m);return}let x=document.createElementNS("http://www.w3.org/2000/svg","a"),b=d.url.replace(/^"+|"+$/g,"");if(x.setAttributeNS("http://www.w3.org/1999/xlink","xlink:href",b),x.setAttribute("target","_blank"),d.tooltip){let T=d.tooltip.replace(/^"+|"+$/g,"");x.setAttribute("title",T)}v.replaceChild(x,y),x.appendChild(y),X.info("\u{1F517} Wrapped node in
    tag for:",m,d.url)})}catch(f){X.error("\u274C Error injecting clickable links:",f)}qt.insertTitle(u,"statediagramTitleText",a?.titleTopMargin??25,n.db.getDiagramTitle()),Ws(u,h,ly,a?.useMaxWidth??!0)},"draw"),Lve={getClasses:cet,draw:uet,getDir:A$}});var ws,Nve,Mve,mC,al,gC=M(()=>{"use strict";Xt();pt();tr();gr();ci();Dve();_$();fC();ws={START_NODE:"[*]",START_TYPE:"start",END_NODE:"[*]",END_TYPE:"end",COLOR_KEYWORD:"color",FILL_KEYWORD:"fill",BG_FILL:"bgFill",STYLECLASS_SEP:","},Nve=o(()=>new Map,"newClassesList"),Mve=o(()=>({relations:[],states:new Map,documents:{}}),"newDoc"),mC=o(t=>JSON.parse(JSON.stringify(t)),"clone"),al=class{constructor(e){this.version=e;this.nodes=[];this.edges=[];this.rootDoc=[];this.classes=Nve();this.documents={root:Mve()};this.currentDocument=this.documents.root;this.startEndCount=0;this.dividerCnt=0;this.links=new Map;this.getAccTitle=Mr;this.setAccTitle=Rr;this.getAccDescription=Or;this.setAccDescription=Ir;this.setDiagramTitle=$r;this.getDiagramTitle=Pr;this.clear(),this.setRootDoc=this.setRootDoc.bind(this),this.getDividerId=this.getDividerId.bind(this),this.setDirection=this.setDirection.bind(this),this.trimColon=this.trimColon.bind(this)}static{o(this,"StateDB")}static{this.relationType={AGGREGATION:0,EXTENSION:1,COMPOSITION:2,DEPENDENCY:3}}extract(e){this.clear(!0);for(let i of Array.isArray(e)?e:e.doc)switch(i.stmt){case Qf:this.addState(i.id.trim(),i.type,i.doc,i.description,i.note);break;case S4:this.addRelation(i.state1,i.state2,i.description);break;case fve:this.addStyleClass(i.id.trim(),i.classes);break;case dve:this.handleStyleDef(i);break;case pve:this.setCssClass(i.id.trim(),i.styleClass);break;case"click":this.addLink(i.id,i.url,i.tooltip);break}let r=this.getStates(),n=ge();_ve(),cy(void 0,this.getRootDocV2(),r,this.nodes,this.edges,!0,n.look,this.classes);for(let i of this.nodes)if(Array.isArray(i.label)){if(i.description=i.label.slice(1),i.isGroup&&i.description.length>0)throw new Error(`Group nodes can only have label. Remove the additional description for node [${i.id}]`);i.label=i.label[0]}}handleStyleDef(e){let r=e.id.trim().split(","),n=e.styleClass.split(",");for(let i of r){let a=this.getState(i);if(!a){let s=i.trim();this.addState(s),a=this.getState(s)}a&&(a.styles=n.map(s=>s.replace(/;/g,"")?.trim()))}}setRootDoc(e){X.info("Setting root doc",e),this.rootDoc=e,this.version===1?this.extract(e):this.extract(this.getRootDocV2())}docTranslator(e,r,n){if(r.stmt===S4){this.docTranslator(e,r.state1,!0),this.docTranslator(e,r.state2,!1);return}if(r.stmt===Qf&&(r.id===ws.START_NODE?(r.id=e.id+(n?"_start":"_end"),r.start=n):r.id=r.id.trim()),r.stmt!==u0&&r.stmt!==Qf||!r.doc)return;let i=[],a=[];for(let s of r.doc)if(s.type===lC){let l=mC(s);l.doc=mC(a),i.push(l),a=[]}else a.push(s);if(i.length>0&&a.length>0){let s={stmt:Qf,id:GL(),type:"divider",doc:mC(a)};i.push(mC(s)),r.doc=i}r.doc.forEach(s=>this.docTranslator(r,s,!0))}getRootDocV2(){return this.docTranslator({id:u0,stmt:u0},{id:u0,stmt:u0,doc:this.rootDoc},!0),{id:u0,doc:this.rootDoc}}addState(e,r=h0,n=void 0,i=void 0,a=void 0,s=void 0,l=void 0,u=void 0){let h=e?.trim();if(!this.currentDocument.states.has(h))X.info("Adding state ",h,i),this.currentDocument.states.set(h,{stmt:Qf,id:h,descriptions:[],type:r,doc:n,note:a,classes:[],styles:[],textStyles:[]});else{let f=this.currentDocument.states.get(h);if(!f)throw new Error(`State not found: ${h}`);f.doc||(f.doc=n),f.type||(f.type=r)}if(i&&(X.info("Setting state description",h,i),(Array.isArray(i)?i:[i]).forEach(d=>this.addDescription(h,d.trim()))),a){let f=this.currentDocument.states.get(h);if(!f)throw new Error(`State not found: ${h}`);f.note=a,f.note.text=tt.sanitizeText(f.note.text,ge())}s&&(X.info("Setting state classes",h,s),(Array.isArray(s)?s:[s]).forEach(d=>this.setCssClass(h,d.trim()))),l&&(X.info("Setting state styles",h,l),(Array.isArray(l)?l:[l]).forEach(d=>this.setStyle(h,d.trim()))),u&&(X.info("Setting state styles",h,l),(Array.isArray(u)?u:[u]).forEach(d=>this.setTextStyle(h,d.trim())))}clear(e){this.nodes=[],this.edges=[],this.documents={root:Mve()},this.currentDocument=this.documents.root,this.startEndCount=0,this.classes=Nve(),e||(this.links=new Map,Sr())}getState(e){return this.currentDocument.states.get(e)}getStates(){return this.currentDocument.states}logDocuments(){X.info("Documents = ",this.documents)}getRelations(){return this.currentDocument.relations}addLink(e,r,n){this.links.set(e,{url:r,tooltip:n}),X.warn("Adding link",e,r,n)}getLinks(){return this.links}startIdIfNeeded(e=""){return e===ws.START_NODE?(this.startEndCount++,`${ws.START_TYPE}${this.startEndCount}`):e}startTypeIfNeeded(e="",r=h0){return e===ws.START_NODE?ws.START_TYPE:r}endIdIfNeeded(e=""){return e===ws.END_NODE?(this.startEndCount++,`${ws.END_TYPE}${this.startEndCount}`):e}endTypeIfNeeded(e="",r=h0){return e===ws.END_NODE?ws.END_TYPE:r}addRelationObjs(e,r,n=""){let i=this.startIdIfNeeded(e.id.trim()),a=this.startTypeIfNeeded(e.id.trim(),e.type),s=this.startIdIfNeeded(r.id.trim()),l=this.startTypeIfNeeded(r.id.trim(),r.type);this.addState(i,a,e.doc,e.description,e.note,e.classes,e.styles,e.textStyles),this.addState(s,l,r.doc,r.description,r.note,r.classes,r.styles,r.textStyles),this.currentDocument.relations.push({id1:i,id2:s,relationTitle:tt.sanitizeText(n,ge())})}addRelation(e,r,n){if(typeof e=="object"&&typeof r=="object")this.addRelationObjs(e,r,n);else if(typeof e=="string"&&typeof r=="string"){let i=this.startIdIfNeeded(e.trim()),a=this.startTypeIfNeeded(e),s=this.endIdIfNeeded(r.trim()),l=this.endTypeIfNeeded(r);this.addState(i,a),this.addState(s,l),this.currentDocument.relations.push({id1:i,id2:s,relationTitle:n?tt.sanitizeText(n,ge()):void 0})}}addDescription(e,r){let n=this.currentDocument.states.get(e),i=r.startsWith(":")?r.replace(":","").trim():r;n?.descriptions?.push(tt.sanitizeText(i,ge()))}cleanupLabel(e){return e.startsWith(":")?e.slice(2).trim():e.trim()}getDividerId(){return this.dividerCnt++,`divider-id-${this.dividerCnt}`}addStyleClass(e,r=""){this.classes.has(e)||this.classes.set(e,{id:e,styles:[],textStyles:[]});let n=this.classes.get(e);r&&n&&r.split(ws.STYLECLASS_SEP).forEach(i=>{let a=i.replace(/([^;]*);/,"$1").trim();if(RegExp(ws.COLOR_KEYWORD).exec(i)){let l=a.replace(ws.FILL_KEYWORD,ws.BG_FILL).replace(ws.COLOR_KEYWORD,ws.FILL_KEYWORD);n.textStyles.push(l)}n.styles.push(a)})}getClasses(){return this.classes}setCssClass(e,r){e.split(",").forEach(n=>{let i=this.getState(n);if(!i){let a=n.trim();this.addState(a),i=this.getState(a)}i?.classes?.push(r)})}setStyle(e,r){this.getState(e)?.styles?.push(r)}setTextStyle(e,r){this.getState(e)?.textStyles?.push(r)}getDirectionStatement(){return this.rootDoc.find(e=>e.stmt==="dir")}getDirection(){return this.getDirectionStatement()?.value??"TB"}setDirection(e){let r=this.getDirectionStatement();r?r.value=e:this.rootDoc.unshift({stmt:"dir",value:e})}trimColon(e){return e.startsWith(":")?e.slice(1).trim():e.trim()}getData(){let e=ge();return{nodes:this.nodes,edges:this.edges,other:{},config:e,direction:A$(this.getRootDocV2())}}getConfig(){return ge().state}}});var fet,yC,D$=M(()=>{"use strict";fet=o(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 { + background-color: ${t.edgeLabelBackground}; + p { + background-color: ${t.edgeLabelBackground}; + } + rect { + opacity: 0.5; + background-color: ${t.edgeLabelBackground}; + fill: ${t.edgeLabelBackground}; + } + text-align: center; +} +.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}; + // line-height: 1; +} + +.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}; +} +`,"getStyles"),yC=fet});var det,pet,met,get,Ove,yet,vet,xet,bet,L$,Ive,Pve,Bve=M(()=>{"use strict";yr();gC();tr();gr();Xt();pt();det=o(t=>t.append("circle").attr("class","start-state").attr("r",ge().state.sizeUnit).attr("cx",ge().state.padding+ge().state.sizeUnit).attr("cy",ge().state.padding+ge().state.sizeUnit),"drawStartState"),pet=o(t=>t.append("line").style("stroke","grey").style("stroke-dasharray","3").attr("x1",ge().state.textHeight).attr("class","divider").attr("x2",ge().state.textHeight*2).attr("y1",0).attr("y2",0),"drawDivider"),met=o((t,e)=>{let r=t.append("text").attr("x",2*ge().state.padding).attr("y",ge().state.textHeight+2*ge().state.padding).attr("font-size",ge().state.fontSize).attr("class","state-title").text(e.id),n=r.node().getBBox();return t.insert("rect",":first-child").attr("x",ge().state.padding).attr("y",ge().state.padding).attr("width",n.width+2*ge().state.padding).attr("height",n.height+2*ge().state.padding).attr("rx",ge().state.radius),r},"drawSimpleState"),get=o((t,e)=>{let r=o(function(p,m,g){let y=p.append("tspan").attr("x",2*ge().state.padding).text(m);g||y.attr("dy",ge().state.textHeight)},"addTspan"),i=t.append("text").attr("x",2*ge().state.padding).attr("y",ge().state.textHeight+1.3*ge().state.padding).attr("font-size",ge().state.fontSize).attr("class","state-title").text(e.descriptions[0]).node().getBBox(),a=i.height,s=t.append("text").attr("x",ge().state.padding).attr("y",a+ge().state.padding*.4+ge().state.dividerMargin+ge().state.textHeight).attr("class","state-description"),l=!0,u=!0;e.descriptions.forEach(function(p){l||(r(s,p,u),u=!1),l=!1});let h=t.append("line").attr("x1",ge().state.padding).attr("y1",ge().state.padding+a+ge().state.dividerMargin/2).attr("y2",ge().state.padding+a+ge().state.dividerMargin/2).attr("class","descr-divider"),f=s.node().getBBox(),d=Math.max(f.width,i.width);return h.attr("x2",d+3*ge().state.padding),t.insert("rect",":first-child").attr("x",ge().state.padding).attr("y",ge().state.padding).attr("width",d+2*ge().state.padding).attr("height",f.height+a+2*ge().state.padding).attr("rx",ge().state.radius),t},"drawDescrState"),Ove=o((t,e,r)=>{let n=ge().state.padding,i=2*ge().state.padding,a=t.node().getBBox(),s=a.width,l=a.x,u=t.append("text").attr("x",0).attr("y",ge().state.titleShift).attr("font-size",ge().state.fontSize).attr("class","state-title").text(e.id),f=u.node().getBBox().width+i,d=Math.max(f,s);d===s&&(d=d+i);let p,m=t.node().getBBox();e.doc,p=l-n,f>s&&(p=(s-d)/2+n),Math.abs(l-m.x)s&&(p=l-(f-s)/2);let g=1-ge().state.textHeight;return t.insert("rect",":first-child").attr("x",p).attr("y",g).attr("class",r?"alt-composit":"composit").attr("width",d).attr("height",m.height+ge().state.textHeight+ge().state.titleShift+1).attr("rx","0"),u.attr("x",p+n),f<=s&&u.attr("x",l+(d-i)/2-f/2+n),t.insert("rect",":first-child").attr("x",p).attr("y",ge().state.titleShift-ge().state.textHeight-ge().state.padding).attr("width",d).attr("height",ge().state.textHeight*3).attr("rx",ge().state.radius),t.insert("rect",":first-child").attr("x",p).attr("y",ge().state.titleShift-ge().state.textHeight-ge().state.padding).attr("width",d).attr("height",m.height+3+2*ge().state.textHeight).attr("rx",ge().state.radius),t},"addTitleAndBox"),yet=o(t=>(t.append("circle").attr("class","end-state-outer").attr("r",ge().state.sizeUnit+ge().state.miniPadding).attr("cx",ge().state.padding+ge().state.sizeUnit+ge().state.miniPadding).attr("cy",ge().state.padding+ge().state.sizeUnit+ge().state.miniPadding),t.append("circle").attr("class","end-state-inner").attr("r",ge().state.sizeUnit).attr("cx",ge().state.padding+ge().state.sizeUnit+2).attr("cy",ge().state.padding+ge().state.sizeUnit+2)),"drawEndState"),vet=o((t,e)=>{let r=ge().state.forkWidth,n=ge().state.forkHeight;if(e.parentId){let i=r;r=n,n=i}return t.append("rect").style("stroke","black").style("fill","black").attr("width",r).attr("height",n).attr("x",ge().state.padding).attr("y",ge().state.padding)},"drawForkJoinState"),xet=o((t,e,r,n)=>{let i=0,a=n.append("text");a.style("text-anchor","start"),a.attr("class","noteText");let s=t.replace(/\r\n/g,"
    ");s=s.replace(/\n/g,"
    ");let l=s.split(tt.lineBreakRegex),u=1.25*ge().state.noteMargin;for(let h of l){let f=h.trim();if(f.length>0){let d=a.append("tspan");if(d.text(f),u===0){let p=d.node().getBBox();u+=p.height}i+=u,d.attr("x",e+ge().state.noteMargin),d.attr("y",r+i+1.25*ge().state.noteMargin)}}return{textWidth:a.node().getBBox().width,textHeight:i}},"_drawLongText"),bet=o((t,e)=>{e.attr("class","state-note");let r=e.append("rect").attr("x",0).attr("y",ge().state.padding),n=e.append("g"),{textWidth:i,textHeight:a}=xet(t,0,0,n);return r.attr("height",a+2*ge().state.noteMargin),r.attr("width",i+ge().state.noteMargin*2),r},"drawNote"),L$=o(function(t,e){let r=e.id,n={id:r,label:e.id,width:0,height:0},i=t.append("g").attr("id",r).attr("class","stateGroup");e.type==="start"&&det(i),e.type==="end"&&yet(i),(e.type==="fork"||e.type==="join")&&vet(i,e),e.type==="note"&&bet(e.note.text,i),e.type==="divider"&&pet(i),e.type==="default"&&e.descriptions.length===0&&met(i,e),e.type==="default"&&e.descriptions.length>0&&get(i,e);let a=i.node().getBBox();return n.width=a.width+2*ge().state.padding,n.height=a.height+2*ge().state.padding,n},"drawState"),Ive=0,Pve=o(function(t,e,r){let n=o(function(u){switch(u){case al.relationType.AGGREGATION:return"aggregation";case al.relationType.EXTENSION:return"extension";case al.relationType.COMPOSITION:return"composition";case al.relationType.DEPENDENCY:return"dependency"}},"getRelationType");e.points=e.points.filter(u=>!Number.isNaN(u.y));let i=e.points,a=Cl().x(function(u){return u.x}).y(function(u){return u.y}).curve(No),s=t.append("path").attr("d",a(i)).attr("id","edge"+Ive).attr("class","transition"),l="";if(ge().state.arrowMarkerAbsolute&&(l=md(!0)),s.attr("marker-end","url("+l+"#"+n(al.relationType.DEPENDENCY)+"End)"),r.title!==void 0){let u=t.append("g").attr("class","stateLabel"),{x:h,y:f}=qt.calcLabelPosition(e.points),d=tt.getRows(r.title),p=0,m=[],g=0,y=0;for(let b=0;b<=d.length;b++){let T=u.append("text").attr("text-anchor","middle").text(d[b]).attr("x",h).attr("y",f+p),S=T.node().getBBox();g=Math.max(g,S.width),y=Math.min(y,S.x),X.info(S.x,h,f+p),p===0&&(p=T.node().getBBox().height,X.info("Title height",p,f)),m.push(T)}let v=p*d.length;if(d.length>1){let b=(d.length-1)*p*.5;m.forEach((T,S)=>T.attr("y",f+S*p-b)),v=p*d.length}let x=u.node().getBBox();u.insert("rect",":first-child").attr("class","box").attr("x",h-g/2-ge().state.padding/2).attr("y",f-v/2-ge().state.padding/2-3.5).attr("width",g+ge().state.padding).attr("height",v+ge().state.padding),X.info(x)}Ive++},"drawEdge")});var bo,R$,Tet,wet,ket,Eet,Fve,$ve,zve=M(()=>{"use strict";yr();hN();qo();pt();gr();Bve();Xt();Ei();R$={},Tet=o(function(){},"setConf"),wet=o(function(t){t.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")},"insertMarkers"),ket=o(function(t,e,r,n){bo=ge().state;let i=ge().securityLevel,a;i==="sandbox"&&(a=qe("#i"+e));let s=i==="sandbox"?qe(a.nodes()[0].contentDocument.body):qe("body"),l=i==="sandbox"?a.nodes()[0].contentDocument:document;X.debug("Rendering diagram "+t);let u=s.select(`[id='${e}']`);wet(u);let h=n.db.getRootDoc();Fve(h,u,void 0,!1,s,l,n);let f=bo.padding,d=u.node().getBBox(),p=d.width+f*2,m=d.height+f*2,g=p*1.75;mn(u,m,g,bo.useMaxWidth),u.attr("viewBox",`${d.x-bo.padding} ${d.y-bo.padding} `+p+" "+m)},"draw"),Eet=o(t=>t?t.length*bo.fontSizeFactor:1,"getLabelWidth"),Fve=o((t,e,r,n,i,a,s)=>{let l=new cn({compound:!0,multigraph:!0}),u,h=!0;for(u=0;u{let w=S.parentElement,k=0,C=0;w&&(w.parentElement&&(k=w.parentElement.getBBox().width),C=parseInt(w.getAttribute("data-x-shift"),10),Number.isNaN(C)&&(C=0)),S.setAttribute("x1",0-C+8),S.setAttribute("x2",k-C-8)})):X.debug("No Node "+b+": "+JSON.stringify(l.node(b)))});let v=y.getBBox();l.edges().forEach(function(b){b!==void 0&&l.edge(b)!==void 0&&(X.debug("Edge "+b.v+" -> "+b.w+": "+JSON.stringify(l.edge(b))),Pve(e,l.edge(b),l.edge(b).relation))}),v=y.getBBox();let x={id:r||"root",label:r||"root",width:0,height:0};return x.width=v.width+2*bo.padding,x.height=v.height+2*bo.padding,X.debug("Doc rendered",x,l),x},"renderDoc"),$ve={setConf:Tet,draw:ket}});var Gve={};dr(Gve,{diagram:()=>Cet});var Cet,Vve=M(()=>{"use strict";p$();gC();D$();zve();Cet={parser:oC,get db(){return new al(1)},renderer:$ve,styles:yC,init:o(t=>{t.state||(t.state={}),t.state.arrowMarkerAbsolute=t.arrowMarkerAbsolute},"init")}});var qve={};dr(qve,{diagram:()=>Let});var Let,Wve=M(()=>{"use strict";p$();gC();D$();_$();Let={parser:oC,get db(){return new al(2)},renderer:Lve,styles:yC,init:o(t=>{t.state||(t.state={}),t.state.arrowMarkerAbsolute=t.arrowMarkerAbsolute},"init")}});var N$,jve,Kve=M(()=>{"use strict";N$=(function(){var t=o(function(d,p,m,g){for(m=m||{},g=d.length;g--;m[d[g]]=p);return m},"o"),e=[6,8,10,11,12,14,16,17,18],r=[1,9],n=[1,10],i=[1,11],a=[1,12],s=[1,13],l=[1,14],u={trace:o(function(){},"trace"),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:o(function(p,m,g,y,v,x,b){var T=x.length-1;switch(v){case 1:return x[T-1];case 2:this.$=[];break;case 3:x[T-1].push(x[T]),this.$=x[T-1];break;case 4:case 5:this.$=x[T];break;case 6:case 7:this.$=[];break;case 8:y.setDiagramTitle(x[T].substr(6)),this.$=x[T].substr(6);break;case 9:this.$=x[T].trim(),y.setAccTitle(this.$);break;case 10:case 11:this.$=x[T].trim(),y.setAccDescription(this.$);break;case 12:y.addSection(x[T].substr(8)),this.$=x[T].substr(8);break;case 13:y.addTask(x[T-1],x[T]),this.$="task";break}},"anonymous"),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:r,12:n,14:i,16:a,17:s,18:l},t(e,[2,7],{1:[2,1]}),t(e,[2,3]),{9:15,11:r,12:n,14:i,16:a,17:s,18:l},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:o(function(p,m){if(m.recoverable)this.trace(p);else{var g=new Error(p);throw g.hash=m,g}},"parseError"),parse:o(function(p){var m=this,g=[0],y=[],v=[null],x=[],b=this.table,T="",S=0,w=0,k=0,C=2,A=1,L=x.slice.call(arguments,1),I=Object.create(this.lexer),R={yy:{}};for(var E in this.yy)Object.prototype.hasOwnProperty.call(this.yy,E)&&(R.yy[E]=this.yy[E]);I.setInput(p,R.yy),R.yy.lexer=I,R.yy.parser=this,typeof I.yylloc>"u"&&(I.yylloc={});var _=I.yylloc;x.push(_);var D=I.options&&I.options.ranges;typeof R.yy.parseError=="function"?this.parseError=R.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function O(te){g.length=g.length-2*te,v.length=v.length-te,x.length=x.length-te}o(O,"popStack");function N(){var te;return te=y.pop()||I.lex()||A,typeof te!="number"&&(te instanceof Array&&(y=te,te=y.pop()),te=m.symbols_[te]||te),te}o(N,"lex");for(var P,B,F,V,$,U,j={},ee,q,oe,Q;;){if(F=g[g.length-1],this.defaultActions[F]?V=this.defaultActions[F]:((P===null||typeof P>"u")&&(P=N()),V=b[F]&&b[F][P]),typeof V>"u"||!V.length||!V[0]){var ue="";Q=[];for(ee in b[F])this.terminals_[ee]&&ee>C&&Q.push("'"+this.terminals_[ee]+"'");I.showPosition?ue="Parse error on line "+(S+1)+`: +`+I.showPosition()+` +Expecting `+Q.join(", ")+", got '"+(this.terminals_[P]||P)+"'":ue="Parse error on line "+(S+1)+": Unexpected "+(P==A?"end of input":"'"+(this.terminals_[P]||P)+"'"),this.parseError(ue,{text:I.match,token:this.terminals_[P]||P,line:I.yylineno,loc:_,expected:Q})}if(V[0]instanceof Array&&V.length>1)throw new Error("Parse Error: multiple actions possible at state: "+F+", token: "+P);switch(V[0]){case 1:g.push(P),v.push(I.yytext),x.push(I.yylloc),g.push(V[1]),P=null,B?(P=B,B=null):(w=I.yyleng,T=I.yytext,S=I.yylineno,_=I.yylloc,k>0&&k--);break;case 2:if(q=this.productions_[V[1]][1],j.$=v[v.length-q],j._$={first_line:x[x.length-(q||1)].first_line,last_line:x[x.length-1].last_line,first_column:x[x.length-(q||1)].first_column,last_column:x[x.length-1].last_column},D&&(j._$.range=[x[x.length-(q||1)].range[0],x[x.length-1].range[1]]),U=this.performAction.apply(j,[T,w,S,R.yy,V[1],v,x].concat(L)),typeof U<"u")return U;q&&(g=g.slice(0,-1*q*2),v=v.slice(0,-1*q),x=x.slice(0,-1*q)),g.push(this.productions_[V[1]][0]),v.push(j.$),x.push(j._$),oe=b[g[g.length-2]][g[g.length-1]],g.push(oe);break;case 3:return!0}}return!0},"parse")},h=(function(){var d={EOF:1,parseError:o(function(m,g){if(this.yy.parser)this.yy.parser.parseError(m,g);else throw new Error(m)},"parseError"),setInput:o(function(p,m){return this.yy=m||this.yy||{},this._input=p,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},"setInput"),input:o(function(){var p=this._input[0];this.yytext+=p,this.yyleng++,this.offset++,this.match+=p,this.matched+=p;var m=p.match(/(?:\r\n?|\n).*/g);return m?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),p},"input"),unput:o(function(p){var m=p.length,g=p.split(/(?:\r\n?|\n)/g);this._input=p+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-m),this.offset-=m;var y=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),g.length-1&&(this.yylineno-=g.length-1);var v=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:g?(g.length===y.length?this.yylloc.first_column:0)+y[y.length-g.length].length-g[0].length:this.yylloc.first_column-m},this.options.ranges&&(this.yylloc.range=[v[0],v[0]+this.yyleng-m]),this.yyleng=this.yytext.length,this},"unput"),more:o(function(){return this._more=!0,this},"more"),reject:o(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},"reject"),less:o(function(p){this.unput(this.match.slice(p))},"less"),pastInput:o(function(){var p=this.matched.substr(0,this.matched.length-this.match.length);return(p.length>20?"...":"")+p.substr(-20).replace(/\n/g,"")},"pastInput"),upcomingInput:o(function(){var p=this.match;return p.length<20&&(p+=this._input.substr(0,20-p.length)),(p.substr(0,20)+(p.length>20?"...":"")).replace(/\n/g,"")},"upcomingInput"),showPosition:o(function(){var p=this.pastInput(),m=new Array(p.length+1).join("-");return p+this.upcomingInput()+` +`+m+"^"},"showPosition"),test_match:o(function(p,m){var g,y,v;if(this.options.backtrack_lexer&&(v={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&&(v.yylloc.range=this.yylloc.range.slice(0))),y=p[0].match(/(?:\r\n?|\n).*/g),y&&(this.yylineno+=y.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:y?y[y.length-1].length-y[y.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+p[0].length},this.yytext+=p[0],this.match+=p[0],this.matches=p,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(p[0].length),this.matched+=p[0],g=this.performAction.call(this,this.yy,this,m,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),g)return g;if(this._backtrack){for(var x in v)this[x]=v[x];return!1}return!1},"test_match"),next:o(function(){if(this.done)return this.EOF;this._input||(this.done=!0);var p,m,g,y;this._more||(this.yytext="",this.match="");for(var v=this._currentRules(),x=0;xm[0].length)){if(m=g,y=x,this.options.backtrack_lexer){if(p=this.test_match(g,v[x]),p!==!1)return p;if(this._backtrack){m=!1;continue}else return!1}else if(!this.options.flex)break}return m?(p=this.test_match(m,v[y]),p!==!1?p:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text. +`+this.showPosition(),{text:"",token:null,line:this.yylineno})},"next"),lex:o(function(){var m=this.next();return m||this.lex()},"lex"),begin:o(function(m){this.conditionStack.push(m)},"begin"),popState:o(function(){var m=this.conditionStack.length-1;return m>0?this.conditionStack.pop():this.conditionStack[0]},"popState"),_currentRules:o(function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},"_currentRules"),topState:o(function(m){return m=this.conditionStack.length-1-Math.abs(m||0),m>=0?this.conditionStack[m]:"INITIAL"},"topState"),pushState:o(function(m){this.begin(m)},"pushState"),stateStackSize:o(function(){return this.conditionStack.length},"stateStackSize"),options:{"case-insensitive":!0},performAction:o(function(m,g,y,v){var x=v;switch(y){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;break;case 8:return this.popState(),"acc_title_value";break;case 9:return this.begin("acc_descr"),14;break;case 10:return this.popState(),"acc_descr_value";break;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"}},"anonymous"),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 d})();u.lexer=h;function f(){this.yy={}}return o(f,"Parser"),f.prototype=u,u.Parser=f,new f})();N$.parser=N$;jve=N$});var uy,M$,C4,A4,Iet,Oet,Pet,Bet,Fet,$et,zet,Qve,Get,I$,Zve=M(()=>{"use strict";Xt();ci();uy="",M$=[],C4=[],A4=[],Iet=o(function(){M$.length=0,C4.length=0,uy="",A4.length=0,Sr()},"clear"),Oet=o(function(t){uy=t,M$.push(t)},"addSection"),Pet=o(function(){return M$},"getSections"),Bet=o(function(){let t=Qve(),e=100,r=0;for(;!t&&r{r.people&&t.push(...r.people)}),[...new Set(t)].sort()},"updateActors"),$et=o(function(t,e){let r=e.substr(1).split(":"),n=0,i=[];r.length===1?(n=Number(r[0]),i=[]):(n=Number(r[0]),i=r[1].split(","));let a=i.map(l=>l.trim()),s={section:uy,type:uy,people:a,task:t,score:n};A4.push(s)},"addTask"),zet=o(function(t){let e={section:uy,type:uy,description:t,task:t,classes:[]};C4.push(e)},"addTaskOrg"),Qve=o(function(){let t=o(function(r){return A4[r].processed},"compileTask"),e=!0;for(let[r,n]of A4.entries())t(r),e=e&&n.processed;return e},"compileTasks"),Get=o(function(){return Fet()},"getActors"),I$={getConfig:o(()=>ge().journey,"getConfig"),clear:Iet,setDiagramTitle:$r,getDiagramTitle:Pr,setAccTitle:Rr,getAccTitle:Mr,setAccDescription:Ir,getAccDescription:Or,addSection:Oet,getSections:Pet,getTasks:Bet,addTask:$et,addTaskOrg:zet,getActors:Get}});var Vet,Jve,e2e=M(()=>{"use strict";yg();Vet=o(t=>`.label { + font-family: ${t.fontFamily}; + color: ${t.textColor}; + } + .mouth { + stroke: #666; + } + + line { + stroke: ${t.textColor} + } + + .legend { + fill: ${t.textColor}; + font-family: ${t.fontFamily}; + } + + .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: ${t.fontFamily}; + 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}`:""}; + } + ${zc()} +`,"getStyles"),Jve=Vet});var O$,Uet,r2e,n2e,Het,qet,t2e,Wet,Yet,i2e,Xet,hy,a2e=M(()=>{"use strict";yr();n2();O$=o(function(t,e){return Fd(t,e)},"drawRect"),Uet=o(function(t,e){let n=t.append("circle").attr("cx",e.cx).attr("cy",e.cy).attr("class","face").attr("r",15).attr("stroke-width",2).attr("overflow","visible"),i=t.append("g");i.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"),i.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 a(u){let h=Sl().startAngle(Math.PI/2).endAngle(3*(Math.PI/2)).innerRadius(7.5).outerRadius(6.8181818181818175);u.append("path").attr("class","mouth").attr("d",h).attr("transform","translate("+e.cx+","+(e.cy+2)+")")}o(a,"smile");function s(u){let h=Sl().startAngle(3*Math.PI/2).endAngle(5*(Math.PI/2)).innerRadius(7.5).outerRadius(6.8181818181818175);u.append("path").attr("class","mouth").attr("d",h).attr("transform","translate("+e.cx+","+(e.cy+7)+")")}o(s,"sad");function l(u){u.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 o(l,"ambivalent"),e.score>3?a(i):e.score<3?s(i):l(i),n},"drawFace"),r2e=o(function(t,e){let r=t.append("circle");return r.attr("cx",e.cx),r.attr("cy",e.cy),r.attr("class","actor-"+e.pos),r.attr("fill",e.fill),r.attr("stroke",e.stroke),r.attr("r",e.r),r.class!==void 0&&r.attr("class",r.class),e.title!==void 0&&r.append("title").text(e.title),r},"drawCircle"),n2e=o(function(t,e){return kj(t,e)},"drawText"),Het=o(function(t,e){function r(i,a,s,l,u){return i+","+a+" "+(i+s)+","+a+" "+(i+s)+","+(a+l-u)+" "+(i+s-u*1.2)+","+(a+l)+" "+i+","+(a+l)}o(r,"genPoints");let n=t.append("polygon");n.attr("points",r(e.x,e.y,50,20,7)),n.attr("class","labelBox"),e.y=e.y+e.labelMargin,e.x=e.x+.5*e.labelMargin,n2e(t,e)},"drawLabel"),qet=o(function(t,e,r){let n=t.append("g"),i=ha();i.x=e.x,i.y=e.y,i.fill=e.fill,i.width=r.width*e.taskCount+r.diagramMarginX*(e.taskCount-1),i.height=r.height,i.class="journey-section section-type-"+e.num,i.rx=3,i.ry=3,O$(n,i),i2e(r)(e.text,n,i.x,i.y,i.width,i.height,{class:"journey-section section-type-"+e.num},r,e.colour)},"drawSection"),t2e=-1,Wet=o(function(t,e,r){let n=e.x+r.width/2,i=t.append("g");t2e++,i.append("line").attr("id","task"+t2e).attr("x1",n).attr("y1",e.y).attr("x2",n).attr("y2",450).attr("class","task-line").attr("stroke-width","1px").attr("stroke-dasharray","4 2").attr("stroke","#666"),Uet(i,{cx:n,cy:300+(5-e.score)*30,score:e.score});let s=ha();s.x=e.x,s.y=e.y,s.fill=e.fill,s.width=r.width,s.height=r.height,s.class="task task-type-"+e.num,s.rx=3,s.ry=3,O$(i,s);let l=e.x+14;e.people.forEach(u=>{let h=e.actors[u].color,f={cx:l,cy:e.y,r:7,fill:h,stroke:"#000",title:u,pos:e.actors[u].position};r2e(i,f),l+=10}),i2e(r)(e.task,i,s.x,s.y,s.width,s.height,{class:"task"},r,e.colour)},"drawTask"),Yet=o(function(t,e){oT(t,e)},"drawBackgroundRect"),i2e=(function(){function t(i,a,s,l,u,h,f,d){let p=a.append("text").attr("x",s+u/2).attr("y",l+h/2+5).style("font-color",d).style("text-anchor","middle").text(i);n(p,f)}o(t,"byText");function e(i,a,s,l,u,h,f,d,p){let{taskFontSize:m,taskFontFamily:g}=d,y=i.split(//gi);for(let v=0;v{let a=lh[i].color,s={cx:20,cy:n,r:7,fill:a,stroke:"#000",pos:lh[i].position};hy.drawCircle(t,s);let l=t.append("text").attr("visibility","hidden").text(i),u=l.node().getBoundingClientRect().width;l.remove();let h=[];if(u<=r)h=[i];else{let f=i.split(" "),d="";l=t.append("text").attr("visibility","hidden"),f.forEach(p=>{let m=d?`${d} ${p}`:p;if(l.text(m),l.node().getBoundingClientRect().width>r){if(d&&h.push(d),d=p,l.text(p),l.node().getBoundingClientRect().width>r){let y="";for(let v of p)y+=v,l.text(y+"-"),l.node().getBoundingClientRect().width>r&&(h.push(y.slice(0,-1)+"-"),y=v);d=y}}else d=m}),d&&h.push(d),l.remove()}h.forEach((f,d)=>{let p={x:40,y:n+7+d*20,fill:"#666",text:f,textMargin:e.boxTextMargin??5},g=hy.drawText(t,p).node().getBoundingClientRect().width;g>vC&&g>e.leftMargin-g&&(vC=g)}),n+=Math.max(20,h.length*20)})}var jet,lh,vC,Hl,Jf,Qet,sl,P$,s2e,Zet,B$,o2e=M(()=>{"use strict";yr();a2e();Xt();Ei();jet=o(function(t){Object.keys(t).forEach(function(r){Hl[r]=t[r]})},"setConf"),lh={},vC=0;o(Ket,"drawActorLegend");Hl=ge().journey,Jf=0,Qet=o(function(t,e,r,n){let i=ge(),a=i.journey.titleColor,s=i.journey.titleFontSize,l=i.journey.titleFontFamily,u=i.securityLevel,h;u==="sandbox"&&(h=qe("#i"+e));let f=u==="sandbox"?qe(h.nodes()[0].contentDocument.body):qe("body");sl.init();let d=f.select("#"+e);hy.initGraphics(d);let p=n.db.getTasks(),m=n.db.getDiagramTitle(),g=n.db.getActors();for(let S in lh)delete lh[S];let y=0;g.forEach(S=>{lh[S]={color:Hl.actorColours[y%Hl.actorColours.length],position:y},y++}),Ket(d),Jf=Hl.leftMargin+vC,sl.insert(0,0,Jf,Object.keys(lh).length*50),Zet(d,p,0);let v=sl.getBounds();m&&d.append("text").text(m).attr("x",Jf).attr("font-size",s).attr("font-weight","bold").attr("y",25).attr("fill",a).attr("font-family",l);let x=v.stopy-v.starty+2*Hl.diagramMarginY,b=Jf+v.stopx+2*Hl.diagramMarginX;mn(d,x,b,Hl.useMaxWidth),d.append("line").attr("x1",Jf).attr("y1",Hl.height*4).attr("x2",b-Jf-4).attr("y2",Hl.height*4).attr("stroke-width",4).attr("stroke","black").attr("marker-end","url(#arrowhead)");let T=m?70:0;d.attr("viewBox",`${v.startx} -25 ${b} ${x+T}`),d.attr("preserveAspectRatio","xMinYMin meet"),d.attr("height",x+T+25)},"draw"),sl={data:{startx:void 0,stopx:void 0,starty:void 0,stopy:void 0},verticalPos:0,sequenceItems:[],init:o(function(){this.sequenceItems=[],this.data={startx:void 0,stopx:void 0,starty:void 0,stopy:void 0},this.verticalPos=0},"init"),updateVal:o(function(t,e,r,n){t[e]===void 0?t[e]=r:t[e]=n(r,t[e])},"updateVal"),updateBounds:o(function(t,e,r,n){let i=ge().journey,a=this,s=0;function l(u){return o(function(f){s++;let d=a.sequenceItems.length-s+1;a.updateVal(f,"starty",e-d*i.boxMargin,Math.min),a.updateVal(f,"stopy",n+d*i.boxMargin,Math.max),a.updateVal(sl.data,"startx",t-d*i.boxMargin,Math.min),a.updateVal(sl.data,"stopx",r+d*i.boxMargin,Math.max),u!=="activation"&&(a.updateVal(f,"startx",t-d*i.boxMargin,Math.min),a.updateVal(f,"stopx",r+d*i.boxMargin,Math.max),a.updateVal(sl.data,"starty",e-d*i.boxMargin,Math.min),a.updateVal(sl.data,"stopy",n+d*i.boxMargin,Math.max))},"updateItemBounds")}o(l,"updateFn"),this.sequenceItems.forEach(l())},"updateBounds"),insert:o(function(t,e,r,n){let i=Math.min(t,r),a=Math.max(t,r),s=Math.min(e,n),l=Math.max(e,n);this.updateVal(sl.data,"startx",i,Math.min),this.updateVal(sl.data,"starty",s,Math.min),this.updateVal(sl.data,"stopx",a,Math.max),this.updateVal(sl.data,"stopy",l,Math.max),this.updateBounds(i,s,a,l)},"insert"),bumpVerticalPos:o(function(t){this.verticalPos=this.verticalPos+t,this.data.stopy=this.verticalPos},"bumpVerticalPos"),getVerticalPos:o(function(){return this.verticalPos},"getVerticalPos"),getBounds:o(function(){return this.data},"getBounds")},P$=Hl.sectionFills,s2e=Hl.sectionColours,Zet=o(function(t,e,r){let n=ge().journey,i="",a=n.height*2+n.diagramMarginY,s=r+a,l=0,u="#CCC",h="black",f=0;for(let[d,p]of e.entries()){if(i!==p.section){u=P$[l%P$.length],f=l%P$.length,h=s2e[l%s2e.length];let g=0,y=p.section;for(let x=d;x(lh[y]&&(g[y]=lh[y]),g),{});p.x=d*n.taskMargin+d*n.width+Jf,p.y=s,p.width=n.diagramMarginX,p.height=n.diagramMarginY,p.colour=h,p.fill=u,p.num=f,p.actors=m,hy.drawTask(t,p,n),sl.insert(p.x,p.y,p.x+p.width+n.taskMargin,450)}},"drawTasks"),B$={setConf:jet,draw:Qet}});var l2e={};dr(l2e,{diagram:()=>Jet});var Jet,c2e=M(()=>{"use strict";Kve();Zve();e2e();o2e();Jet={parser:jve,db:I$,renderer:B$,styles:Jve,init:o(t=>{B$.setConf(t.journey),I$.clear()},"init")}});var $$,g2e,y2e=M(()=>{"use strict";$$=(function(){var t=o(function(p,m,g,y){for(g=g||{},y=p.length;y--;g[p[y]]=m);return g},"o"),e=[6,8,10,11,12,14,16,17,20,21],r=[1,9],n=[1,10],i=[1,11],a=[1,12],s=[1,13],l=[1,16],u=[1,17],h={trace:o(function(){},"trace"),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:o(function(m,g,y,v,x,b,T){var S=b.length-1;switch(x){case 1:return b[S-1];case 2:this.$=[];break;case 3:b[S-1].push(b[S]),this.$=b[S-1];break;case 4:case 5:this.$=b[S];break;case 6:case 7:this.$=[];break;case 8:v.getCommonDb().setDiagramTitle(b[S].substr(6)),this.$=b[S].substr(6);break;case 9:this.$=b[S].trim(),v.getCommonDb().setAccTitle(this.$);break;case 10:case 11:this.$=b[S].trim(),v.getCommonDb().setAccDescription(this.$);break;case 12:v.addSection(b[S].substr(8)),this.$=b[S].substr(8);break;case 15:v.addTask(b[S],0,""),this.$=b[S];break;case 16:v.addEvent(b[S].substr(2)),this.$=b[S];break}},"anonymous"),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:r,12:n,14:i,16:a,17:s,18:14,19:15,20:l,21:u},t(e,[2,7],{1:[2,1]}),t(e,[2,3]),{9:18,11:r,12:n,14:i,16:a,17:s,18:14,19:15,20:l,21:u},t(e,[2,5]),t(e,[2,6]),t(e,[2,8]),{13:[1,19]},{15:[1,20]},t(e,[2,11]),t(e,[2,12]),t(e,[2,13]),t(e,[2,14]),t(e,[2,15]),t(e,[2,16]),t(e,[2,4]),t(e,[2,9]),t(e,[2,10])],defaultActions:{},parseError:o(function(m,g){if(g.recoverable)this.trace(m);else{var y=new Error(m);throw y.hash=g,y}},"parseError"),parse:o(function(m){var g=this,y=[0],v=[],x=[null],b=[],T=this.table,S="",w=0,k=0,C=0,A=2,L=1,I=b.slice.call(arguments,1),R=Object.create(this.lexer),E={yy:{}};for(var _ in this.yy)Object.prototype.hasOwnProperty.call(this.yy,_)&&(E.yy[_]=this.yy[_]);R.setInput(m,E.yy),E.yy.lexer=R,E.yy.parser=this,typeof R.yylloc>"u"&&(R.yylloc={});var D=R.yylloc;b.push(D);var O=R.options&&R.options.ranges;typeof E.yy.parseError=="function"?this.parseError=E.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function N(re){y.length=y.length-2*re,x.length=x.length-re,b.length=b.length-re}o(N,"popStack");function P(){var re;return re=v.pop()||R.lex()||L,typeof re!="number"&&(re instanceof Array&&(v=re,re=v.pop()),re=g.symbols_[re]||re),re}o(P,"lex");for(var B,F,V,$,U,j,ee={},q,oe,Q,ue;;){if(V=y[y.length-1],this.defaultActions[V]?$=this.defaultActions[V]:((B===null||typeof B>"u")&&(B=P()),$=T[V]&&T[V][B]),typeof $>"u"||!$.length||!$[0]){var te="";ue=[];for(q in T[V])this.terminals_[q]&&q>A&&ue.push("'"+this.terminals_[q]+"'");R.showPosition?te="Parse error on line "+(w+1)+`: +`+R.showPosition()+` +Expecting `+ue.join(", ")+", got '"+(this.terminals_[B]||B)+"'":te="Parse error on line "+(w+1)+": Unexpected "+(B==L?"end of input":"'"+(this.terminals_[B]||B)+"'"),this.parseError(te,{text:R.match,token:this.terminals_[B]||B,line:R.yylineno,loc:D,expected:ue})}if($[0]instanceof Array&&$.length>1)throw new Error("Parse Error: multiple actions possible at state: "+V+", token: "+B);switch($[0]){case 1:y.push(B),x.push(R.yytext),b.push(R.yylloc),y.push($[1]),B=null,F?(B=F,F=null):(k=R.yyleng,S=R.yytext,w=R.yylineno,D=R.yylloc,C>0&&C--);break;case 2:if(oe=this.productions_[$[1]][1],ee.$=x[x.length-oe],ee._$={first_line:b[b.length-(oe||1)].first_line,last_line:b[b.length-1].last_line,first_column:b[b.length-(oe||1)].first_column,last_column:b[b.length-1].last_column},O&&(ee._$.range=[b[b.length-(oe||1)].range[0],b[b.length-1].range[1]]),j=this.performAction.apply(ee,[S,k,w,E.yy,$[1],x,b].concat(I)),typeof j<"u")return j;oe&&(y=y.slice(0,-1*oe*2),x=x.slice(0,-1*oe),b=b.slice(0,-1*oe)),y.push(this.productions_[$[1]][0]),x.push(ee.$),b.push(ee._$),Q=T[y[y.length-2]][y[y.length-1]],y.push(Q);break;case 3:return!0}}return!0},"parse")},f=(function(){var p={EOF:1,parseError:o(function(g,y){if(this.yy.parser)this.yy.parser.parseError(g,y);else throw new Error(g)},"parseError"),setInput:o(function(m,g){return this.yy=g||this.yy||{},this._input=m,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},"setInput"),input:o(function(){var m=this._input[0];this.yytext+=m,this.yyleng++,this.offset++,this.match+=m,this.matched+=m;var g=m.match(/(?:\r\n?|\n).*/g);return g?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),m},"input"),unput:o(function(m){var g=m.length,y=m.split(/(?:\r\n?|\n)/g);this._input=m+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-g),this.offset-=g;var v=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),y.length-1&&(this.yylineno-=y.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:y?(y.length===v.length?this.yylloc.first_column:0)+v[v.length-y.length].length-y[0].length:this.yylloc.first_column-g},this.options.ranges&&(this.yylloc.range=[x[0],x[0]+this.yyleng-g]),this.yyleng=this.yytext.length,this},"unput"),more:o(function(){return this._more=!0,this},"more"),reject:o(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},"reject"),less:o(function(m){this.unput(this.match.slice(m))},"less"),pastInput:o(function(){var m=this.matched.substr(0,this.matched.length-this.match.length);return(m.length>20?"...":"")+m.substr(-20).replace(/\n/g,"")},"pastInput"),upcomingInput:o(function(){var m=this.match;return m.length<20&&(m+=this._input.substr(0,20-m.length)),(m.substr(0,20)+(m.length>20?"...":"")).replace(/\n/g,"")},"upcomingInput"),showPosition:o(function(){var m=this.pastInput(),g=new Array(m.length+1).join("-");return m+this.upcomingInput()+` +`+g+"^"},"showPosition"),test_match:o(function(m,g){var y,v,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))),v=m[0].match(/(?:\r\n?|\n).*/g),v&&(this.yylineno+=v.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:v?v[v.length-1].length-v[v.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+m[0].length},this.yytext+=m[0],this.match+=m[0],this.matches=m,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(m[0].length),this.matched+=m[0],y=this.performAction.call(this,this.yy,this,g,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),y)return y;if(this._backtrack){for(var b in x)this[b]=x[b];return!1}return!1},"test_match"),next:o(function(){if(this.done)return this.EOF;this._input||(this.done=!0);var m,g,y,v;this._more||(this.yytext="",this.match="");for(var x=this._currentRules(),b=0;bg[0].length)){if(g=y,v=b,this.options.backtrack_lexer){if(m=this.test_match(y,x[b]),m!==!1)return m;if(this._backtrack){g=!1;continue}else return!1}else if(!this.options.flex)break}return g?(m=this.test_match(g,x[v]),m!==!1?m:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text. +`+this.showPosition(),{text:"",token:null,line:this.yylineno})},"next"),lex:o(function(){var g=this.next();return g||this.lex()},"lex"),begin:o(function(g){this.conditionStack.push(g)},"begin"),popState:o(function(){var g=this.conditionStack.length-1;return g>0?this.conditionStack.pop():this.conditionStack[0]},"popState"),_currentRules:o(function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},"_currentRules"),topState:o(function(g){return g=this.conditionStack.length-1-Math.abs(g||0),g>=0?this.conditionStack[g]:"INITIAL"},"topState"),pushState:o(function(g){this.begin(g)},"pushState"),stateStackSize:o(function(){return this.conditionStack.length},"stateStackSize"),options:{"case-insensitive":!0},performAction:o(function(g,y,v,x){var b=x;switch(v){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;break;case 8:return this.popState(),"acc_title_value";break;case 9:return this.begin("acc_descr"),14;break;case 10:return this.popState(),"acc_descr_value";break;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"}},"anonymous"),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]|:(?!\s))+)/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 p})();h.lexer=f;function d(){this.yy={}}return o(d,"Parser"),d.prototype=h,h.Parser=d,new d})();$$.parser=$$;g2e=$$});var G$={};dr(G$,{addEvent:()=>C2e,addSection:()=>w2e,addTask:()=>S2e,addTaskOrg:()=>A2e,clear:()=>T2e,default:()=>ltt,getCommonDb:()=>b2e,getSections:()=>k2e,getTasks:()=>E2e});var fy,x2e,z$,xC,dy,b2e,T2e,w2e,k2e,E2e,S2e,C2e,A2e,v2e,ltt,_2e=M(()=>{"use strict";ci();fy="",x2e=0,z$=[],xC=[],dy=[],b2e=o(()=>nv,"getCommonDb"),T2e=o(function(){z$.length=0,xC.length=0,fy="",dy.length=0,Sr()},"clear"),w2e=o(function(t){fy=t,z$.push(t)},"addSection"),k2e=o(function(){return z$},"getSections"),E2e=o(function(){let t=v2e(),e=100,r=0;for(;!t&&rr.id===x2e-1).events.push(t)},"addEvent"),A2e=o(function(t){let e={section:fy,type:fy,description:t,task:t,classes:[]};xC.push(e)},"addTaskOrg"),v2e=o(function(){let t=o(function(r){return dy[r].processed},"compileTask"),e=!0;for(let[r,n]of dy.entries())t(r),e=e&&n.processed;return e},"compileTasks"),ltt={clear:T2e,getCommonDb:b2e,addSection:w2e,getSections:k2e,getTasks:E2e,addTask:S2e,addTaskOrg:A2e,addEvent:C2e}});function N2e(t,e){t.each(function(){var r=qe(this),n=r.text().split(/(\s+|
    )/).reverse(),i,a=[],s=1.1,l=r.attr("y"),u=parseFloat(r.attr("dy")),h=r.text(null).append("tspan").attr("x",0).attr("y",l).attr("dy",u+"em");for(let f=0;fe||i==="
    ")&&(a.pop(),h.text(a.join(" ").trim()),i==="
    "?a=[""]:a=[i],h=r.append("tspan").attr("x",0).attr("y",l).attr("dy",s+"em").text(i))})}var ctt,bC,utt,htt,L2e,ftt,dtt,D2e,ptt,mtt,gtt,V$,R2e,ytt,vtt,xtt,btt,ed,M2e=M(()=>{"use strict";yr();ctt=12,bC=o(function(t,e){let r=t.append("rect");return r.attr("x",e.x),r.attr("y",e.y),r.attr("fill",e.fill),r.attr("stroke",e.stroke),r.attr("width",e.width),r.attr("height",e.height),r.attr("rx",e.rx),r.attr("ry",e.ry),e.class!==void 0&&r.attr("class",e.class),r},"drawRect"),utt=o(function(t,e){let n=t.append("circle").attr("cx",e.cx).attr("cy",e.cy).attr("class","face").attr("r",15).attr("stroke-width",2).attr("overflow","visible"),i=t.append("g");i.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"),i.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 a(u){let h=Sl().startAngle(Math.PI/2).endAngle(3*(Math.PI/2)).innerRadius(7.5).outerRadius(6.8181818181818175);u.append("path").attr("class","mouth").attr("d",h).attr("transform","translate("+e.cx+","+(e.cy+2)+")")}o(a,"smile");function s(u){let h=Sl().startAngle(3*Math.PI/2).endAngle(5*(Math.PI/2)).innerRadius(7.5).outerRadius(6.8181818181818175);u.append("path").attr("class","mouth").attr("d",h).attr("transform","translate("+e.cx+","+(e.cy+7)+")")}o(s,"sad");function l(u){u.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 o(l,"ambivalent"),e.score>3?a(i):e.score<3?s(i):l(i),n},"drawFace"),htt=o(function(t,e){let r=t.append("circle");return r.attr("cx",e.cx),r.attr("cy",e.cy),r.attr("class","actor-"+e.pos),r.attr("fill",e.fill),r.attr("stroke",e.stroke),r.attr("r",e.r),r.class!==void 0&&r.attr("class",r.class),e.title!==void 0&&r.append("title").text(e.title),r},"drawCircle"),L2e=o(function(t,e){let r=e.text.replace(//gi," "),n=t.append("text");n.attr("x",e.x),n.attr("y",e.y),n.attr("class","legend"),n.style("text-anchor",e.anchor),e.class!==void 0&&n.attr("class",e.class);let i=n.append("tspan");return i.attr("x",e.x+e.textMargin*2),i.text(r),n},"drawText"),ftt=o(function(t,e){function r(i,a,s,l,u){return i+","+a+" "+(i+s)+","+a+" "+(i+s)+","+(a+l-u)+" "+(i+s-u*1.2)+","+(a+l)+" "+i+","+(a+l)}o(r,"genPoints");let n=t.append("polygon");n.attr("points",r(e.x,e.y,50,20,7)),n.attr("class","labelBox"),e.y=e.y+e.labelMargin,e.x=e.x+.5*e.labelMargin,L2e(t,e)},"drawLabel"),dtt=o(function(t,e,r){let n=t.append("g"),i=V$();i.x=e.x,i.y=e.y,i.fill=e.fill,i.width=r.width,i.height=r.height,i.class="journey-section section-type-"+e.num,i.rx=3,i.ry=3,bC(n,i),R2e(r)(e.text,n,i.x,i.y,i.width,i.height,{class:"journey-section section-type-"+e.num},r,e.colour)},"drawSection"),D2e=-1,ptt=o(function(t,e,r){let n=e.x+r.width/2,i=t.append("g");D2e++,i.append("line").attr("id","task"+D2e).attr("x1",n).attr("y1",e.y).attr("x2",n).attr("y2",450).attr("class","task-line").attr("stroke-width","1px").attr("stroke-dasharray","4 2").attr("stroke","#666"),utt(i,{cx:n,cy:300+(5-e.score)*30,score:e.score});let s=V$();s.x=e.x,s.y=e.y,s.fill=e.fill,s.width=r.width,s.height=r.height,s.class="task task-type-"+e.num,s.rx=3,s.ry=3,bC(i,s),R2e(r)(e.task,i,s.x,s.y,s.width,s.height,{class:"task"},r,e.colour)},"drawTask"),mtt=o(function(t,e){bC(t,{x:e.startx,y:e.starty,width:e.stopx-e.startx,height:e.stopy-e.starty,fill:e.fill,class:"rect"}).lower()},"drawBackgroundRect"),gtt=o(function(){return{x:0,y:0,fill:void 0,"text-anchor":"start",width:100,height:100,textMargin:0,rx:0,ry:0}},"getTextObj"),V$=o(function(){return{x:0,y:0,width:100,anchor:"start",height:100,rx:0,ry:0}},"getNoteRect"),R2e=(function(){function t(i,a,s,l,u,h,f,d){let p=a.append("text").attr("x",s+u/2).attr("y",l+h/2+5).style("font-color",d).style("text-anchor","middle").text(i);n(p,f)}o(t,"byText");function e(i,a,s,l,u,h,f,d,p){let{taskFontSize:m,taskFontFamily:g}=d,y=i.split(//gi);for(let v=0;v{"use strict";yr();M2e();pt();Xt();Ei();Ttt=o(function(t,e,r,n){let i=ge(),a=i.timeline?.leftMargin??50;X.debug("timeline",n.db);let s=i.securityLevel,l;s==="sandbox"&&(l=qe("#i"+e));let h=(s==="sandbox"?qe(l.nodes()[0].contentDocument.body):qe("body")).select("#"+e);h.append("g");let f=n.db.getTasks(),d=n.db.getCommonDb().getDiagramTitle();X.debug("task",f),ed.initGraphics(h);let p=n.db.getSections();X.debug("sections",p);let m=0,g=0,y=0,v=0,x=50+a,b=50;v=50;let T=0,S=!0;p.forEach(function(L){let I={number:T,descr:L,section:T,width:150,padding:20,maxHeight:m},R=ed.getVirtualNodeHeight(h,I,i);X.debug("sectionHeight before draw",R),m=Math.max(m,R+20)});let w=0,k=0;X.debug("tasks.length",f.length);for(let[L,I]of f.entries()){let R={number:L,descr:I,section:I.section,width:150,padding:20,maxHeight:g},E=ed.getVirtualNodeHeight(h,R,i);X.debug("taskHeight before draw",E),g=Math.max(g,E+20),w=Math.max(w,I.events.length);let _=0;for(let D of I.events){let O={descr:D,section:I.section,number:I.section,width:150,padding:20,maxHeight:50};_+=ed.getVirtualNodeHeight(h,O,i)}I.events.length>0&&(_+=(I.events.length-1)*10),k=Math.max(k,_)}X.debug("maxSectionHeight before draw",m),X.debug("maxTaskHeight before draw",g),p&&p.length>0?p.forEach(L=>{let I=f.filter(D=>D.section===L),R={number:T,descr:L,section:T,width:200*Math.max(I.length,1)-50,padding:20,maxHeight:m};X.debug("sectionNode",R);let E=h.append("g"),_=ed.drawNode(E,R,T,i);X.debug("sectionNode output",_),E.attr("transform",`translate(${x}, ${v})`),b+=m+50,I.length>0&&I2e(h,I,T,x,b,g,i,w,k,m,!1),x+=200*Math.max(I.length,1),b=v,T++}):(S=!1,I2e(h,f,T,x,b,g,i,w,k,m,!0));let C=h.node().getBBox();X.debug("bounds",C),d&&h.append("text").text(d).attr("x",C.width/2-a).attr("font-size","4ex").attr("font-weight","bold").attr("y",20),y=S?m+g+150:g+100,h.append("g").attr("class","lineWrapper").append("line").attr("x1",a).attr("y1",y).attr("x2",C.width+3*a).attr("y2",y).attr("stroke-width",4).attr("stroke","black").attr("marker-end","url(#arrowhead)"),ic(void 0,h,i.timeline?.padding??50,i.timeline?.useMaxWidth??!1)},"draw"),I2e=o(function(t,e,r,n,i,a,s,l,u,h,f){for(let d of e){let p={descr:d.task,section:r,number:r,width:150,padding:20,maxHeight:a};X.debug("taskNode",p);let m=t.append("g").attr("class","taskWrapper"),y=ed.drawNode(m,p,r,s).height;if(X.debug("taskHeight after draw",y),m.attr("transform",`translate(${n}, ${i})`),a=Math.max(a,y),d.events){let v=t.append("g").attr("class","lineWrapper"),x=a;i+=100,x=x+wtt(t,d.events,r,n,i,s),i-=100,v.append("line").attr("x1",n+190/2).attr("y1",i+a).attr("x2",n+190/2).attr("y2",i+a+100+u+100).attr("stroke-width",2).attr("stroke","black").attr("marker-end","url(#arrowhead)").attr("stroke-dasharray","5,5")}n=n+200,f&&!s.timeline?.disableMulticolor&&r++}i=i-10},"drawTasks"),wtt=o(function(t,e,r,n,i,a){let s=0,l=i;i=i+100;for(let u of e){let h={descr:u,section:r,number:r,width:150,padding:20,maxHeight:50};X.debug("eventNode",h);let f=t.append("g").attr("class","eventWrapper"),p=ed.drawNode(f,h,r,a).height;s=s+p,f.attr("transform",`translate(${n}, ${i})`),i=i+10+p}return i=l,s},"drawEvents"),O2e={setConf:o(()=>{},"setConf"),draw:Ttt}});var ktt,Ett,B2e,F2e=M(()=>{"use strict";eo();ktt=o(t=>{let e="";for(let r=0;r` + .edge { + stroke-width: 3; + } + ${ktt(t)} + .section-root rect, .section-root path, .section-root circle { + fill: ${t.git0}; + } + .section-root text { + fill: ${t.gitBranchLabel0}; + } + .icon-container { + height:100%; + display: flex; + justify-content: center; + align-items: center; + } + .edge { + fill: none; + } + .eventWrapper { + filter: brightness(120%); + } +`,"getStyles"),B2e=Ett});var $2e={};dr($2e,{diagram:()=>Stt});var Stt,z2e=M(()=>{"use strict";y2e();_2e();P2e();F2e();Stt={db:G$,renderer:O2e,parser:g2e,styles:B2e}});var U$,U2e,H2e=M(()=>{"use strict";U$=(function(){var t=o(function(S,w,k,C){for(k=k||{},C=S.length;C--;k[S[C]]=w);return k},"o"),e=[1,4],r=[1,13],n=[1,12],i=[1,15],a=[1,16],s=[1,20],l=[1,19],u=[6,7,8],h=[1,26],f=[1,24],d=[1,25],p=[6,7,11],m=[1,6,13,15,16,19,22],g=[1,33],y=[1,34],v=[1,6,7,11,13,15,16,19,22],x={trace:o(function(){},"trace"),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:o(function(w,k,C,A,L,I,R){var E=I.length-1;switch(L){case 6:case 7:return A;case 8:A.getLogger().trace("Stop NL ");break;case 9:A.getLogger().trace("Stop EOF ");break;case 11:A.getLogger().trace("Stop NL2 ");break;case 12:A.getLogger().trace("Stop EOF2 ");break;case 15:A.getLogger().info("Node: ",I[E].id),A.addNode(I[E-1].length,I[E].id,I[E].descr,I[E].type);break;case 16:A.getLogger().trace("Icon: ",I[E]),A.decorateNode({icon:I[E]});break;case 17:case 21:A.decorateNode({class:I[E]});break;case 18:A.getLogger().trace("SPACELIST");break;case 19:A.getLogger().trace("Node: ",I[E].id),A.addNode(0,I[E].id,I[E].descr,I[E].type);break;case 20:A.decorateNode({icon:I[E]});break;case 25:A.getLogger().trace("node found ..",I[E-2]),this.$={id:I[E-1],descr:I[E-1],type:A.getType(I[E-2],I[E])};break;case 26:this.$={id:I[E],descr:I[E],type:A.nodeType.DEFAULT};break;case 27:A.getLogger().trace("node found ..",I[E-3]),this.$={id:I[E-3],descr:I[E-1],type:A.getType(I[E-2],I[E])};break}},"anonymous"),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:n,14:14,15:i,16:a,17:17,18:18,19:s,22:l},t(u,[2,3]),{1:[2,2]},t(u,[2,4]),t(u,[2,5]),{1:[2,6],6:r,12:21,13:n,14:14,15:i,16:a,17:17,18:18,19:s,22:l},{6:r,9:22,12:11,13:n,14:14,15:i,16:a,17:17,18:18,19:s,22:l},{6:h,7:f,10:23,11:d},t(p,[2,22],{17:17,18:18,14:27,15:[1,28],16:[1,29],19:s,22:l}),t(p,[2,18]),t(p,[2,19]),t(p,[2,20]),t(p,[2,21]),t(p,[2,23]),t(p,[2,24]),t(p,[2,26],{19:[1,30]}),{20:[1,31]},{6:h,7:f,10:32,11:d},{1:[2,7],6:r,12:21,13:n,14:14,15:i,16:a,17:17,18:18,19:s,22:l},t(m,[2,14],{7:g,11:y}),t(v,[2,8]),t(v,[2,9]),t(v,[2,10]),t(p,[2,15]),t(p,[2,16]),t(p,[2,17]),{20:[1,35]},{21:[1,36]},t(m,[2,13],{7:g,11:y}),t(v,[2,11]),t(v,[2,12]),{21:[1,37]},t(p,[2,25]),t(p,[2,27])],defaultActions:{2:[2,1],6:[2,2]},parseError:o(function(w,k){if(k.recoverable)this.trace(w);else{var C=new Error(w);throw C.hash=k,C}},"parseError"),parse:o(function(w){var k=this,C=[0],A=[],L=[null],I=[],R=this.table,E="",_=0,D=0,O=0,N=2,P=1,B=I.slice.call(arguments,1),F=Object.create(this.lexer),V={yy:{}};for(var $ in this.yy)Object.prototype.hasOwnProperty.call(this.yy,$)&&(V.yy[$]=this.yy[$]);F.setInput(w,V.yy),V.yy.lexer=F,V.yy.parser=this,typeof F.yylloc>"u"&&(F.yylloc={});var U=F.yylloc;I.push(U);var j=F.options&&F.options.ranges;typeof V.yy.parseError=="function"?this.parseError=V.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function ee(W){C.length=C.length-2*W,L.length=L.length-W,I.length=I.length-W}o(ee,"popStack");function q(){var W;return W=A.pop()||F.lex()||P,typeof W!="number"&&(W instanceof Array&&(A=W,W=A.pop()),W=k.symbols_[W]||W),W}o(q,"lex");for(var oe,Q,ue,te,re,J,K={},ae,Z,de,ne;;){if(ue=C[C.length-1],this.defaultActions[ue]?te=this.defaultActions[ue]:((oe===null||typeof oe>"u")&&(oe=q()),te=R[ue]&&R[ue][oe]),typeof te>"u"||!te.length||!te[0]){var Te="";ne=[];for(ae in R[ue])this.terminals_[ae]&&ae>N&&ne.push("'"+this.terminals_[ae]+"'");F.showPosition?Te="Parse error on line "+(_+1)+`: +`+F.showPosition()+` +Expecting `+ne.join(", ")+", got '"+(this.terminals_[oe]||oe)+"'":Te="Parse error on line "+(_+1)+": Unexpected "+(oe==P?"end of input":"'"+(this.terminals_[oe]||oe)+"'"),this.parseError(Te,{text:F.match,token:this.terminals_[oe]||oe,line:F.yylineno,loc:U,expected:ne})}if(te[0]instanceof Array&&te.length>1)throw new Error("Parse Error: multiple actions possible at state: "+ue+", token: "+oe);switch(te[0]){case 1:C.push(oe),L.push(F.yytext),I.push(F.yylloc),C.push(te[1]),oe=null,Q?(oe=Q,Q=null):(D=F.yyleng,E=F.yytext,_=F.yylineno,U=F.yylloc,O>0&&O--);break;case 2:if(Z=this.productions_[te[1]][1],K.$=L[L.length-Z],K._$={first_line:I[I.length-(Z||1)].first_line,last_line:I[I.length-1].last_line,first_column:I[I.length-(Z||1)].first_column,last_column:I[I.length-1].last_column},j&&(K._$.range=[I[I.length-(Z||1)].range[0],I[I.length-1].range[1]]),J=this.performAction.apply(K,[E,D,_,V.yy,te[1],L,I].concat(B)),typeof J<"u")return J;Z&&(C=C.slice(0,-1*Z*2),L=L.slice(0,-1*Z),I=I.slice(0,-1*Z)),C.push(this.productions_[te[1]][0]),L.push(K.$),I.push(K._$),de=R[C[C.length-2]][C[C.length-1]],C.push(de);break;case 3:return!0}}return!0},"parse")},b=(function(){var S={EOF:1,parseError:o(function(k,C){if(this.yy.parser)this.yy.parser.parseError(k,C);else throw new Error(k)},"parseError"),setInput:o(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},"setInput"),input:o(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},"input"),unput:o(function(w){var k=w.length,C=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 A=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 L=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===A.length?this.yylloc.first_column:0)+A[A.length-C.length].length-C[0].length:this.yylloc.first_column-k},this.options.ranges&&(this.yylloc.range=[L[0],L[0]+this.yyleng-k]),this.yyleng=this.yytext.length,this},"unput"),more:o(function(){return this._more=!0,this},"more"),reject:o(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},"reject"),less:o(function(w){this.unput(this.match.slice(w))},"less"),pastInput:o(function(){var w=this.matched.substr(0,this.matched.length-this.match.length);return(w.length>20?"...":"")+w.substr(-20).replace(/\n/g,"")},"pastInput"),upcomingInput:o(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,"")},"upcomingInput"),showPosition:o(function(){var w=this.pastInput(),k=new Array(w.length+1).join("-");return w+this.upcomingInput()+` +`+k+"^"},"showPosition"),test_match:o(function(w,k){var C,A,L;if(this.options.backtrack_lexer&&(L={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&&(L.yylloc.range=this.yylloc.range.slice(0))),A=w[0].match(/(?:\r\n?|\n).*/g),A&&(this.yylineno+=A.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:A?A[A.length-1].length-A[A.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],C=this.performAction.call(this,this.yy,this,k,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),C)return C;if(this._backtrack){for(var I in L)this[I]=L[I];return!1}return!1},"test_match"),next:o(function(){if(this.done)return this.EOF;this._input||(this.done=!0);var w,k,C,A;this._more||(this.yytext="",this.match="");for(var L=this._currentRules(),I=0;Ik[0].length)){if(k=C,A=I,this.options.backtrack_lexer){if(w=this.test_match(C,L[I]),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,L[A]),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})},"next"),lex:o(function(){var k=this.next();return k||this.lex()},"lex"),begin:o(function(k){this.conditionStack.push(k)},"begin"),popState:o(function(){var k=this.conditionStack.length-1;return k>0?this.conditionStack.pop():this.conditionStack[0]},"popState"),_currentRules:o(function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},"_currentRules"),topState:o(function(k){return k=this.conditionStack.length-1-Math.abs(k||0),k>=0?this.conditionStack[k]:"INITIAL"},"topState"),pushState:o(function(k){this.begin(k)},"pushState"),stateStackSize:o(function(){return this.conditionStack.length},"stateStackSize"),options:{"case-insensitive":!0},performAction:o(function(k,C,A,L){var I=L;switch(A){case 0:return k.getLogger().trace("Found comment",C.yytext),6;break;case 1:return 8;case 2:this.begin("CLASS");break;case 3:return this.popState(),16;break;case 4:this.popState();break;case 5:k.getLogger().trace("Begin icon"),this.begin("ICON");break;case 6:return k.getLogger().trace("SPACELINE"),6;break;case 7:return 7;case 8:return 15;case 9:k.getLogger().trace("end icon"),this.popState();break;case 10:return k.getLogger().trace("Exploding node"),this.begin("NODE"),19;break;case 11:return k.getLogger().trace("Cloud"),this.begin("NODE"),19;break;case 12:return k.getLogger().trace("Explosion Bang"),this.begin("NODE"),19;break;case 13:return k.getLogger().trace("Cloud Bang"),this.begin("NODE"),19;break;case 14:return this.begin("NODE"),19;break;case 15:return this.begin("NODE"),19;break;case 16:return this.begin("NODE"),19;break;case 17:return this.begin("NODE"),19;break;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:k.getLogger().trace("Starting NSTR"),this.begin("NSTR");break;case 25:return k.getLogger().trace("description:",C.yytext),"NODE_DESCR";break;case 26:this.popState();break;case 27:return this.popState(),k.getLogger().trace("node end ))"),"NODE_DEND";break;case 28:return this.popState(),k.getLogger().trace("node end )"),"NODE_DEND";break;case 29:return this.popState(),k.getLogger().trace("node end ...",C.yytext),"NODE_DEND";break;case 30:return this.popState(),k.getLogger().trace("node end (("),"NODE_DEND";break;case 31:return this.popState(),k.getLogger().trace("node end (-"),"NODE_DEND";break;case 32:return this.popState(),k.getLogger().trace("node end (-"),"NODE_DEND";break;case 33:return this.popState(),k.getLogger().trace("node end (("),"NODE_DEND";break;case 34:return this.popState(),k.getLogger().trace("node end (("),"NODE_DEND";break;case 35:return k.getLogger().trace("Long description:",C.yytext),20;break;case 36:return k.getLogger().trace("Long description:",C.yytext),20;break}},"anonymous"),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 S})();x.lexer=b;function T(){this.yy={}}return o(T,"Parser"),T.prototype=x,x.Parser=T,new T})();U$.parser=U$;U2e=U$});function q2e(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]]).toLowerCase()}var _a,W2e=M(()=>{"use strict";_a=[];for(let t=0;t<256;++t)_a.push((t+256).toString(16).slice(1));o(q2e,"unsafeStringify")});function q$(){if(!H$){if(typeof crypto>"u"||!crypto.getRandomValues)throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");H$=crypto.getRandomValues.bind(crypto)}return H$(Dtt)}var H$,Dtt,Y2e=M(()=>{"use strict";Dtt=new Uint8Array(16);o(q$,"rng")});var Ltt,W$,X2e=M(()=>{"use strict";Ltt=typeof crypto<"u"&&crypto.randomUUID&&crypto.randomUUID.bind(crypto),W$={randomUUID:Ltt}});function Rtt(t,e,r){if(W$.randomUUID&&!e&&!t)return W$.randomUUID();t=t||{};let n=t.random??t.rng?.()??q$();if(n.length<16)throw new Error("Random bytes length must be >= 16");if(n[6]=n[6]&15|64,n[8]=n[8]&63|128,e){if(r=r||0,r<0||r+16>e.length)throw new RangeError(`UUID byte range ${r}:${r+15} is out of buffer bounds`);for(let i=0;i<16;++i)e[r+i]=n[i];return e}return q2e(n)}var Y$,j2e=M(()=>{"use strict";X2e();Y2e();W2e();o(Rtt,"v4");Y$=Rtt});var K2e=M(()=>{"use strict";j2e()});var ch,TC,Q2e=M(()=>{"use strict";Xt();K2e();gr();pt();Ra();qn();ch={DEFAULT:0,NO_BORDER:0,ROUNDED_RECT:1,RECT:2,CIRCLE:3,CLOUD:4,BANG:5,HEXAGON:6},TC=class{constructor(){this.nodes=[];this.count=0;this.elements={};this.getLogger=this.getLogger.bind(this),this.nodeType=ch,this.clear(),this.getType=this.getType.bind(this),this.getElementById=this.getElementById.bind(this),this.getParent=this.getParent.bind(this),this.getMindmap=this.getMindmap.bind(this),this.addNode=this.addNode.bind(this),this.decorateNode=this.decorateNode.bind(this)}static{o(this,"MindmapDB")}clear(){this.nodes=[],this.count=0,this.elements={},this.baseLevel=void 0}getParent(e){for(let r=this.nodes.length-1;r>=0;r--)if(this.nodes[r].level0?this.nodes[0]:null}addNode(e,r,n,i){X.info("addNode",e,r,n,i);let a=!1;this.nodes.length===0?(this.baseLevel=e,e=0,a=!0):this.baseLevel!==void 0&&(e=e-this.baseLevel,a=!1);let s=ge(),l=s.mindmap?.padding??ur.mindmap.padding;switch(i){case this.nodeType.ROUNDED_RECT:case this.nodeType.RECT:case this.nodeType.HEXAGON:l*=2;break}let u={id:this.count++,nodeId:sr(r,s),level:e,descr:sr(n,s),type:i,children:[],width:s.mindmap?.maxNodeWidth??ur.mindmap.maxNodeWidth,padding:l,isRoot:a},h=this.getParent(e);if(h)h.children.push(u),this.nodes.push(u);else if(a)this.nodes.push(u);else throw new Error(`There can be only one root. No parent could be found for ("${u.descr}")`)}getType(e,r){switch(X.debug("In get type",e,r),e){case"[":return this.nodeType.RECT;case"(":return r===")"?this.nodeType.ROUNDED_RECT:this.nodeType.CLOUD;case"((":return this.nodeType.CIRCLE;case")":return this.nodeType.CLOUD;case"))":return this.nodeType.BANG;case"{{":return this.nodeType.HEXAGON;default:return this.nodeType.DEFAULT}}setElementForId(e,r){this.elements[e]=r}getElementById(e){return this.elements[e]}decorateNode(e){if(!e)return;let r=ge(),n=this.nodes[this.nodes.length-1];e.icon&&(n.icon=sr(e.icon,r)),e.class&&(n.class=sr(e.class,r))}type2Str(e){switch(e){case this.nodeType.DEFAULT:return"no-border";case this.nodeType.RECT:return"rect";case this.nodeType.ROUNDED_RECT:return"rounded-rect";case this.nodeType.CIRCLE:return"circle";case this.nodeType.CLOUD:return"cloud";case this.nodeType.BANG:return"bang";case this.nodeType.HEXAGON:return"hexgon";default:return"no-border"}}assignSections(e,r){if(e.level===0?e.section=void 0:e.section=r,e.children)for(let[n,i]of e.children.entries()){let a=e.level===0?n:r;this.assignSections(i,a)}}flattenNodes(e,r){let n=["mindmap-node"];e.isRoot===!0?n.push("section-root","section--1"):e.section!==void 0&&n.push(`section-${e.section}`),e.class&&n.push(e.class);let i=n.join(" "),a=o(l=>{switch(l){case ch.CIRCLE:return"mindmapCircle";case ch.RECT:return"rect";case ch.ROUNDED_RECT:return"rounded";case ch.CLOUD:return"cloud";case ch.BANG:return"bang";case ch.HEXAGON:return"hexagon";case ch.DEFAULT:return"defaultMindmapNode";case ch.NO_BORDER:default:return"rect"}},"getShapeFromType"),s={id:e.id.toString(),domId:"node_"+e.id.toString(),label:e.descr,isGroup:!1,shape:a(e.type),width:e.width,height:e.height??0,padding:e.padding,cssClasses:i,cssStyles:[],look:"default",icon:e.icon,x:e.x,y:e.y,level:e.level,nodeId:e.nodeId,type:e.type,section:e.section};if(r.push(s),e.children)for(let l of e.children)this.flattenNodes(l,r)}generateEdges(e,r){if(e.children)for(let n of e.children){let i="edge";n.section!==void 0&&(i+=` section-edge-${n.section}`);let a=e.level+1;i+=` edge-depth-${a}`;let s={id:`edge_${e.id}_${n.id}`,start:e.id.toString(),end:n.id.toString(),type:"normal",curve:"basis",thickness:"normal",look:"default",classes:i,depth:e.level,section:n.section};r.push(s),this.generateEdges(n,r)}}getData(){let e=this.getMindmap(),r=ge(),i=nV().layout!==void 0,a=r;if(i||(a.layout="cose-bilkent"),!e)return{nodes:[],edges:[],config:a};X.debug("getData: mindmapRoot",e,r),this.assignSections(e);let s=[],l=[];this.flattenNodes(e,s),this.generateEdges(e,l),X.debug(`getData: processed ${s.length} nodes and ${l.length} edges`);let u=new Map;for(let h of s)u.set(h.id,{shape:h.shape,width:h.width,height:h.height,padding:h.padding});return{nodes:s,edges:l,config:a,rootNode:e,markers:["point"],direction:"TB",nodeSpacing:50,rankSpacing:50,shapes:Object.fromEntries(u),type:"mindmap",diagramId:"mindmap-"+Y$()}}getLogger(){return X}}});var Ntt,Z2e,J2e=M(()=>{"use strict";pt();ep();Nf();Mf();Ra();Ntt=o(async(t,e,r,n)=>{X.debug(`Rendering mindmap diagram +`+t);let i=n.db,a=i.getData(),s=Vo(e,a.config.securityLevel);a.type=n.type,a.layoutAlgorithm=$c(a.config.layout,{fallback:"cose-bilkent"}),a.diagramId=e,i.getMindmap()&&(a.nodes.forEach(u=>{u.shape==="rounded"?(u.radius=15,u.taper=15,u.stroke="none",u.width=0,u.padding=15):u.shape==="circle"?u.padding=10:u.shape==="rect"&&(u.width=0,u.padding=10)}),await Qo(a,s),Ws(s,a.config.mindmap?.padding??ur.mindmap.padding,"mindmapDiagram",a.config.mindmap?.useMaxWidth??ur.mindmap.useMaxWidth))},"draw"),Z2e={draw:Ntt}});var Mtt,Itt,exe,txe=M(()=>{"use strict";eo();Mtt=o(t=>{let e="";for(let r=0;r` + .edge { + stroke-width: 3; + } + ${Mtt(t)} + .section-root rect, .section-root path, .section-root circle, .section-root polygon { + fill: ${t.git0}; + } + .section-root text { + fill: ${t.gitBranchLabel0}; + } + .section-root span { + color: ${t.gitBranchLabel0}; + } + .section-2 span { + color: ${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; + } +`,"getStyles"),exe=Itt});var rxe={};dr(rxe,{diagram:()=>Ott});var Ott,nxe=M(()=>{"use strict";H2e();Q2e();J2e();txe();Ott={get db(){return new TC},renderer:Z2e,parser:U2e,styles:exe}});var X$,sxe,oxe=M(()=>{"use strict";X$=(function(){var t=o(function(C,A,L,I){for(L=L||{},I=C.length;I--;L[C[I]]=A);return L},"o"),e=[1,4],r=[1,13],n=[1,12],i=[1,15],a=[1,16],s=[1,20],l=[1,19],u=[6,7,8],h=[1,26],f=[1,24],d=[1,25],p=[6,7,11],m=[1,31],g=[6,7,11,24],y=[1,6,13,16,17,20,23],v=[1,35],x=[1,36],b=[1,6,7,11,13,16,17,20,23],T=[1,38],S={trace:o(function(){},"trace"),yy:{},symbols_:{error:2,start:3,mindMap:4,spaceLines:5,SPACELINE:6,NL:7,KANBAN:8,document:9,stop:10,EOF:11,statement:12,SPACELIST:13,node:14,shapeData:15,ICON:16,CLASS:17,nodeWithId:18,nodeWithoutId:19,NODE_DSTART:20,NODE_DESCR:21,NODE_DEND:22,NODE_ID:23,SHAPE_DATA:24,$accept:0,$end:1},terminals_:{2:"error",6:"SPACELINE",7:"NL",8:"KANBAN",11:"EOF",13:"SPACELIST",16:"ICON",17:"CLASS",20:"NODE_DSTART",21:"NODE_DESCR",22:"NODE_DEND",23:"NODE_ID",24:"SHAPE_DATA"},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,3],[12,2],[12,2],[12,2],[12,1],[12,2],[12,1],[12,1],[12,1],[12,1],[14,1],[14,1],[19,3],[18,1],[18,4],[15,2],[15,1]],performAction:o(function(A,L,I,R,E,_,D){var O=_.length-1;switch(E){case 6:case 7:return R;case 8:R.getLogger().trace("Stop NL ");break;case 9:R.getLogger().trace("Stop EOF ");break;case 11:R.getLogger().trace("Stop NL2 ");break;case 12:R.getLogger().trace("Stop EOF2 ");break;case 15:R.getLogger().info("Node: ",_[O-1].id),R.addNode(_[O-2].length,_[O-1].id,_[O-1].descr,_[O-1].type,_[O]);break;case 16:R.getLogger().info("Node: ",_[O].id),R.addNode(_[O-1].length,_[O].id,_[O].descr,_[O].type);break;case 17:R.getLogger().trace("Icon: ",_[O]),R.decorateNode({icon:_[O]});break;case 18:case 23:R.decorateNode({class:_[O]});break;case 19:R.getLogger().trace("SPACELIST");break;case 20:R.getLogger().trace("Node: ",_[O-1].id),R.addNode(0,_[O-1].id,_[O-1].descr,_[O-1].type,_[O]);break;case 21:R.getLogger().trace("Node: ",_[O].id),R.addNode(0,_[O].id,_[O].descr,_[O].type);break;case 22:R.decorateNode({icon:_[O]});break;case 27:R.getLogger().trace("node found ..",_[O-2]),this.$={id:_[O-1],descr:_[O-1],type:R.getType(_[O-2],_[O])};break;case 28:this.$={id:_[O],descr:_[O],type:0};break;case 29:R.getLogger().trace("node found ..",_[O-3]),this.$={id:_[O-3],descr:_[O-1],type:R.getType(_[O-2],_[O])};break;case 30:this.$=_[O-1]+_[O];break;case 31:this.$=_[O];break}},"anonymous"),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:n,14:14,16:i,17:a,18:17,19:18,20:s,23:l},t(u,[2,3]),{1:[2,2]},t(u,[2,4]),t(u,[2,5]),{1:[2,6],6:r,12:21,13:n,14:14,16:i,17:a,18:17,19:18,20:s,23:l},{6:r,9:22,12:11,13:n,14:14,16:i,17:a,18:17,19:18,20:s,23:l},{6:h,7:f,10:23,11:d},t(p,[2,24],{18:17,19:18,14:27,16:[1,28],17:[1,29],20:s,23:l}),t(p,[2,19]),t(p,[2,21],{15:30,24:m}),t(p,[2,22]),t(p,[2,23]),t(g,[2,25]),t(g,[2,26]),t(g,[2,28],{20:[1,32]}),{21:[1,33]},{6:h,7:f,10:34,11:d},{1:[2,7],6:r,12:21,13:n,14:14,16:i,17:a,18:17,19:18,20:s,23:l},t(y,[2,14],{7:v,11:x}),t(b,[2,8]),t(b,[2,9]),t(b,[2,10]),t(p,[2,16],{15:37,24:m}),t(p,[2,17]),t(p,[2,18]),t(p,[2,20],{24:T}),t(g,[2,31]),{21:[1,39]},{22:[1,40]},t(y,[2,13],{7:v,11:x}),t(b,[2,11]),t(b,[2,12]),t(p,[2,15],{24:T}),t(g,[2,30]),{22:[1,41]},t(g,[2,27]),t(g,[2,29])],defaultActions:{2:[2,1],6:[2,2]},parseError:o(function(A,L){if(L.recoverable)this.trace(A);else{var I=new Error(A);throw I.hash=L,I}},"parseError"),parse:o(function(A){var L=this,I=[0],R=[],E=[null],_=[],D=this.table,O="",N=0,P=0,B=0,F=2,V=1,$=_.slice.call(arguments,1),U=Object.create(this.lexer),j={yy:{}};for(var ee in this.yy)Object.prototype.hasOwnProperty.call(this.yy,ee)&&(j.yy[ee]=this.yy[ee]);U.setInput(A,j.yy),j.yy.lexer=U,j.yy.parser=this,typeof U.yylloc>"u"&&(U.yylloc={});var q=U.yylloc;_.push(q);var oe=U.options&&U.options.ranges;typeof j.yy.parseError=="function"?this.parseError=j.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function Q(Be){I.length=I.length-2*Be,E.length=E.length-Be,_.length=_.length-Be}o(Q,"popStack");function ue(){var Be;return Be=R.pop()||U.lex()||V,typeof Be!="number"&&(Be instanceof Array&&(R=Be,Be=R.pop()),Be=L.symbols_[Be]||Be),Be}o(ue,"lex");for(var te,re,J,K,ae,Z,de={},ne,Te,W,Ve;;){if(J=I[I.length-1],this.defaultActions[J]?K=this.defaultActions[J]:((te===null||typeof te>"u")&&(te=ue()),K=D[J]&&D[J][te]),typeof K>"u"||!K.length||!K[0]){var pe="";Ve=[];for(ne in D[J])this.terminals_[ne]&&ne>F&&Ve.push("'"+this.terminals_[ne]+"'");U.showPosition?pe="Parse error on line "+(N+1)+`: +`+U.showPosition()+` +Expecting `+Ve.join(", ")+", got '"+(this.terminals_[te]||te)+"'":pe="Parse error on line "+(N+1)+": Unexpected "+(te==V?"end of input":"'"+(this.terminals_[te]||te)+"'"),this.parseError(pe,{text:U.match,token:this.terminals_[te]||te,line:U.yylineno,loc:q,expected:Ve})}if(K[0]instanceof Array&&K.length>1)throw new Error("Parse Error: multiple actions possible at state: "+J+", token: "+te);switch(K[0]){case 1:I.push(te),E.push(U.yytext),_.push(U.yylloc),I.push(K[1]),te=null,re?(te=re,re=null):(P=U.yyleng,O=U.yytext,N=U.yylineno,q=U.yylloc,B>0&&B--);break;case 2:if(Te=this.productions_[K[1]][1],de.$=E[E.length-Te],de._$={first_line:_[_.length-(Te||1)].first_line,last_line:_[_.length-1].last_line,first_column:_[_.length-(Te||1)].first_column,last_column:_[_.length-1].last_column},oe&&(de._$.range=[_[_.length-(Te||1)].range[0],_[_.length-1].range[1]]),Z=this.performAction.apply(de,[O,P,N,j.yy,K[1],E,_].concat($)),typeof Z<"u")return Z;Te&&(I=I.slice(0,-1*Te*2),E=E.slice(0,-1*Te),_=_.slice(0,-1*Te)),I.push(this.productions_[K[1]][0]),E.push(de.$),_.push(de._$),W=D[I[I.length-2]][I[I.length-1]],I.push(W);break;case 3:return!0}}return!0},"parse")},w=(function(){var C={EOF:1,parseError:o(function(L,I){if(this.yy.parser)this.yy.parser.parseError(L,I);else throw new Error(L)},"parseError"),setInput:o(function(A,L){return this.yy=L||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},"setInput"),input:o(function(){var A=this._input[0];this.yytext+=A,this.yyleng++,this.offset++,this.match+=A,this.matched+=A;var L=A.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),A},"input"),unput:o(function(A){var L=A.length,I=A.split(/(?:\r\n?|\n)/g);this._input=A+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-L),this.offset-=L;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),I.length-1&&(this.yylineno-=I.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:I?(I.length===R.length?this.yylloc.first_column:0)+R[R.length-I.length].length-I[0].length:this.yylloc.first_column-L},this.options.ranges&&(this.yylloc.range=[E[0],E[0]+this.yyleng-L]),this.yyleng=this.yytext.length,this},"unput"),more:o(function(){return this._more=!0,this},"more"),reject:o(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},"reject"),less:o(function(A){this.unput(this.match.slice(A))},"less"),pastInput:o(function(){var A=this.matched.substr(0,this.matched.length-this.match.length);return(A.length>20?"...":"")+A.substr(-20).replace(/\n/g,"")},"pastInput"),upcomingInput:o(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,"")},"upcomingInput"),showPosition:o(function(){var A=this.pastInput(),L=new Array(A.length+1).join("-");return A+this.upcomingInput()+` +`+L+"^"},"showPosition"),test_match:o(function(A,L){var I,R,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))),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],I=this.performAction.call(this,this.yy,this,L,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),I)return I;if(this._backtrack){for(var _ in E)this[_]=E[_];return!1}return!1},"test_match"),next:o(function(){if(this.done)return this.EOF;this._input||(this.done=!0);var A,L,I,R;this._more||(this.yytext="",this.match="");for(var E=this._currentRules(),_=0;_L[0].length)){if(L=I,R=_,this.options.backtrack_lexer){if(A=this.test_match(I,E[_]),A!==!1)return A;if(this._backtrack){L=!1;continue}else return!1}else if(!this.options.flex)break}return L?(A=this.test_match(L,E[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})},"next"),lex:o(function(){var L=this.next();return L||this.lex()},"lex"),begin:o(function(L){this.conditionStack.push(L)},"begin"),popState:o(function(){var L=this.conditionStack.length-1;return L>0?this.conditionStack.pop():this.conditionStack[0]},"popState"),_currentRules:o(function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},"_currentRules"),topState:o(function(L){return L=this.conditionStack.length-1-Math.abs(L||0),L>=0?this.conditionStack[L]:"INITIAL"},"topState"),pushState:o(function(L){this.begin(L)},"pushState"),stateStackSize:o(function(){return this.conditionStack.length},"stateStackSize"),options:{"case-insensitive":!0},performAction:o(function(L,I,R,E){var _=E;switch(R){case 0:return this.pushState("shapeData"),I.yytext="",24;break;case 1:return this.pushState("shapeDataStr"),24;break;case 2:return this.popState(),24;break;case 3:let D=/\n\s*/g;return I.yytext=I.yytext.replace(D,"
    "),24;break;case 4:return 24;case 5:this.popState();break;case 6:return L.getLogger().trace("Found comment",I.yytext),6;break;case 7:return 8;case 8:this.begin("CLASS");break;case 9:return this.popState(),17;break;case 10:this.popState();break;case 11:L.getLogger().trace("Begin icon"),this.begin("ICON");break;case 12:return L.getLogger().trace("SPACELINE"),6;break;case 13:return 7;case 14:return 16;case 15:L.getLogger().trace("end icon"),this.popState();break;case 16:return L.getLogger().trace("Exploding node"),this.begin("NODE"),20;break;case 17:return L.getLogger().trace("Cloud"),this.begin("NODE"),20;break;case 18:return L.getLogger().trace("Explosion Bang"),this.begin("NODE"),20;break;case 19:return L.getLogger().trace("Cloud Bang"),this.begin("NODE"),20;break;case 20:return this.begin("NODE"),20;break;case 21:return this.begin("NODE"),20;break;case 22:return this.begin("NODE"),20;break;case 23:return this.begin("NODE"),20;break;case 24:return 13;case 25:return 23;case 26:return 11;case 27:this.begin("NSTR2");break;case 28:return"NODE_DESCR";case 29:this.popState();break;case 30:L.getLogger().trace("Starting NSTR"),this.begin("NSTR");break;case 31:return L.getLogger().trace("description:",I.yytext),"NODE_DESCR";break;case 32:this.popState();break;case 33:return this.popState(),L.getLogger().trace("node end ))"),"NODE_DEND";break;case 34:return this.popState(),L.getLogger().trace("node end )"),"NODE_DEND";break;case 35:return this.popState(),L.getLogger().trace("node end ...",I.yytext),"NODE_DEND";break;case 36:return this.popState(),L.getLogger().trace("node end (("),"NODE_DEND";break;case 37:return this.popState(),L.getLogger().trace("node end (-"),"NODE_DEND";break;case 38:return this.popState(),L.getLogger().trace("node end (-"),"NODE_DEND";break;case 39:return this.popState(),L.getLogger().trace("node end (("),"NODE_DEND";break;case 40:return this.popState(),L.getLogger().trace("node end (("),"NODE_DEND";break;case 41:return L.getLogger().trace("Long description:",I.yytext),21;break;case 42:return L.getLogger().trace("Long description:",I.yytext),21;break}},"anonymous"),rules:[/^(?:@\{)/i,/^(?:["])/i,/^(?:["])/i,/^(?:[^\"]+)/i,/^(?:[^}^"]+)/i,/^(?:\})/i,/^(?:\s*%%.*)/i,/^(?:kanban\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:{shapeDataEndBracket:{rules:[],inclusive:!1},shapeDataStr:{rules:[2,3],inclusive:!1},shapeData:{rules:[1,4,5],inclusive:!1},CLASS:{rules:[9,10],inclusive:!1},ICON:{rules:[14,15],inclusive:!1},NSTR2:{rules:[28,29],inclusive:!1},NSTR:{rules:[31,32],inclusive:!1},NODE:{rules:[27,30,33,34,35,36,37,38,39,40,41,42],inclusive:!1},INITIAL:{rules:[0,6,7,8,11,12,13,16,17,18,19,20,21,22,23,24,25,26],inclusive:!0}}};return C})();S.lexer=w;function k(){this.yy={}}return o(k,"Parser"),k.prototype=S,S.Parser=k,new k})();X$.parser=X$;sxe=X$});var ol,K$,j$,Q$,$tt,ztt,lxe,Gtt,Vtt,Ui,Utt,Htt,qtt,Wtt,Ytt,Xtt,jtt,cxe,uxe=M(()=>{"use strict";Xt();gr();pt();Ra();k2();ol=[],K$=[],j$=0,Q$={},$tt=o(()=>{ol=[],K$=[],j$=0,Q$={}},"clear"),ztt=o(t=>{if(ol.length===0)return null;let e=ol[0].level,r=null;for(let n=ol.length-1;n>=0;n--)if(ol[n].level===e&&!r&&(r=ol[n]),ol[n].levell.parentId===i.id);for(let l of s){let u={id:l.id,parentId:i.id,label:sr(l.label??"",n),isGroup:!1,ticket:l?.ticket,priority:l?.priority,assigned:l?.assigned,icon:l?.icon,shape:"kanbanItem",level:l.level,rx:5,ry:5,cssStyles:["text-align: left"]};e.push(u)}}return{nodes:e,edges:t,other:{},config:ge()}},"getData"),Vtt=o((t,e,r,n,i)=>{let a=ge(),s=a.mindmap?.padding??ur.mindmap.padding;switch(n){case Ui.ROUNDED_RECT:case Ui.RECT:case Ui.HEXAGON:s*=2}let l={id:sr(e,a)||"kbn"+j$++,level:t,label:sr(r,a),width:a.mindmap?.maxNodeWidth??ur.mindmap.maxNodeWidth,padding:s,isGroup:!1};if(i!==void 0){let h;i.includes(` +`)?h=i+` +`:h=`{ +`+i+` +}`;let f=Kh(h,{schema:jh});if(f.shape&&(f.shape!==f.shape.toLowerCase()||f.shape.includes("_")))throw new Error(`No such shape: ${f.shape}. Shape names should be lowercase.`);f?.shape&&f.shape==="kanbanItem"&&(l.shape=f?.shape),f?.label&&(l.label=f?.label),f?.icon&&(l.icon=f?.icon.toString()),f?.assigned&&(l.assigned=f?.assigned.toString()),f?.ticket&&(l.ticket=f?.ticket.toString()),f?.priority&&(l.priority=f?.priority)}let u=ztt(t);u?l.parentId=u.id||"kbn"+j$++:K$.push(l),ol.push(l)},"addNode"),Ui={DEFAULT:0,NO_BORDER:0,ROUNDED_RECT:1,RECT:2,CIRCLE:3,CLOUD:4,BANG:5,HEXAGON:6},Utt=o((t,e)=>{switch(X.debug("In get type",t,e),t){case"[":return Ui.RECT;case"(":return e===")"?Ui.ROUNDED_RECT:Ui.CLOUD;case"((":return Ui.CIRCLE;case")":return Ui.CLOUD;case"))":return Ui.BANG;case"{{":return Ui.HEXAGON;default:return Ui.DEFAULT}},"getType"),Htt=o((t,e)=>{Q$[t]=e},"setElementForId"),qtt=o(t=>{if(!t)return;let e=ge(),r=ol[ol.length-1];t.icon&&(r.icon=sr(t.icon,e)),t.class&&(r.cssClasses=sr(t.class,e))},"decorateNode"),Wtt=o(t=>{switch(t){case Ui.DEFAULT:return"no-border";case Ui.RECT:return"rect";case Ui.ROUNDED_RECT:return"rounded-rect";case Ui.CIRCLE:return"circle";case Ui.CLOUD:return"cloud";case Ui.BANG:return"bang";case Ui.HEXAGON:return"hexgon";default:return"no-border"}},"type2Str"),Ytt=o(()=>X,"getLogger"),Xtt=o(t=>Q$[t],"getElementById"),jtt={clear:$tt,addNode:Vtt,getSections:lxe,getData:Gtt,nodeType:Ui,getType:Utt,setElementForId:Htt,decorateNode:qtt,type2Str:Wtt,getLogger:Ytt,getElementById:Xtt},cxe=jtt});var Ktt,hxe,fxe=M(()=>{"use strict";Xt();pt();tu();Ei();Ra();uw();Tw();Ktt=o(async(t,e,r,n)=>{X.debug(`Rendering kanban diagram +`+t);let a=n.db.getData(),s=ge();s.htmlLabels=!1;let l=aa(e),u=l.append("g");u.attr("class","sections");let h=l.append("g");h.attr("class","items");let f=a.nodes.filter(v=>v.isGroup),d=0,p=10,m=[],g=25;for(let v of f){let x=s?.kanban?.sectionWidth||200;d=d+1,v.x=x*d+(d-1)*p/2,v.width=x,v.y=0,v.height=x*3,v.rx=5,v.ry=5,v.cssClasses=v.cssClasses+" section-"+d;let b=await Sm(u,v);g=Math.max(g,b?.labelBBox?.height),m.push(b)}let y=0;for(let v of f){let x=m[y];y=y+1;let b=s?.kanban?.sectionWidth||200,T=-b*3/2+g,S=T,w=a.nodes.filter(A=>A.parentId===v.id);for(let A of w){if(A.isGroup)throw new Error("Groups within groups are not allowed in Kanban diagrams");A.x=v.x,A.width=b-1.5*p;let I=(await Cm(h,A,{config:s})).node().getBBox();A.y=S+I.height/2,await B2(A),S=A.y+I.height/2+p/2}let k=x.cluster.select("rect"),C=Math.max(S-T+3*p,50)+(g-25);k.attr("height",C)}ic(void 0,l,s.mindmap?.padding??ur.kanban.padding,s.mindmap?.useMaxWidth??ur.kanban.useMaxWidth)},"draw"),hxe={draw:Ktt}});var Qtt,Ztt,dxe,pxe=M(()=>{"use strict";eo();yg();Qtt=o(t=>{let e="";for(let n=0;nt.darkMode?Pt(n,i):Rt(n,i),"adjuster");for(let n=0;n` + .edge { + stroke-width: 3; + } + ${Qtt(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; + } + .cluster-label, .label { + color: ${t.textColor}; + fill: ${t.textColor}; + } + .kanban-label { + dy: 1em; + alignment-baseline: middle; + text-anchor: middle; + dominant-baseline: middle; + text-align: center; + } + ${zc()} +`,"getStyles"),dxe=Ztt});var mxe={};dr(mxe,{diagram:()=>Jtt});var Jtt,gxe=M(()=>{"use strict";oxe();uxe();fxe();pxe();Jtt={db:cxe,renderer:hxe,parser:sxe,styles:dxe}});var Z$,_4,xxe=M(()=>{"use strict";Z$=(function(){var t=o(function(l,u,h,f){for(h=h||{},f=l.length;f--;h[l[f]]=u);return h},"o"),e=[1,9],r=[1,10],n=[1,5,10,12],i={trace:o(function(){},"trace"),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:o(function(u,h,f,d,p,m,g){var y=m.length-1;switch(p){case 7:let v=d.findOrCreateNode(m[y-4].trim().replaceAll('""','"')),x=d.findOrCreateNode(m[y-2].trim().replaceAll('""','"')),b=parseFloat(m[y].trim());d.addLink(v,x,b);break;case 8:case 9:case 11:this.$=m[y];break;case 10:this.$=m[y-1];break}},"anonymous"),table:[{3:1,4:[1,2]},{1:[3]},{5:[1,3]},{6:4,8:5,15:6,16:7,17:8,18:e,20:r},{1:[2,6],7:11,10:[1,12]},t(r,[2,4],{9:13,5:[1,14]}),{12:[1,15]},t(n,[2,8]),t(n,[2,9]),{19:[1,16]},t(n,[2,11]),{1:[2,1]},{1:[2,5]},t(r,[2,2]),{6:17,8:5,15:6,16:7,17:8,18:e,20:r},{15:18,16:7,17:8,18:e,20:r},{18:[1,19]},t(r,[2,3]),{12:[1,20]},t(n,[2,10]),{15:21,16:7,17:8,18:e,20:r},t([1,5,10],[2,7])],defaultActions:{11:[2,1],12:[2,5]},parseError:o(function(u,h){if(h.recoverable)this.trace(u);else{var f=new Error(u);throw f.hash=h,f}},"parseError"),parse:o(function(u){var h=this,f=[0],d=[],p=[null],m=[],g=this.table,y="",v=0,x=0,b=0,T=2,S=1,w=m.slice.call(arguments,1),k=Object.create(this.lexer),C={yy:{}};for(var A in this.yy)Object.prototype.hasOwnProperty.call(this.yy,A)&&(C.yy[A]=this.yy[A]);k.setInput(u,C.yy),C.yy.lexer=k,C.yy.parser=this,typeof k.yylloc>"u"&&(k.yylloc={});var L=k.yylloc;m.push(L);var I=k.options&&k.options.ranges;typeof C.yy.parseError=="function"?this.parseError=C.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function R(q){f.length=f.length-2*q,p.length=p.length-q,m.length=m.length-q}o(R,"popStack");function E(){var q;return q=d.pop()||k.lex()||S,typeof q!="number"&&(q instanceof Array&&(d=q,q=d.pop()),q=h.symbols_[q]||q),q}o(E,"lex");for(var _,D,O,N,P,B,F={},V,$,U,j;;){if(O=f[f.length-1],this.defaultActions[O]?N=this.defaultActions[O]:((_===null||typeof _>"u")&&(_=E()),N=g[O]&&g[O][_]),typeof N>"u"||!N.length||!N[0]){var ee="";j=[];for(V in g[O])this.terminals_[V]&&V>T&&j.push("'"+this.terminals_[V]+"'");k.showPosition?ee="Parse error on line "+(v+1)+`: +`+k.showPosition()+` +Expecting `+j.join(", ")+", got '"+(this.terminals_[_]||_)+"'":ee="Parse error on line "+(v+1)+": Unexpected "+(_==S?"end of input":"'"+(this.terminals_[_]||_)+"'"),this.parseError(ee,{text:k.match,token:this.terminals_[_]||_,line:k.yylineno,loc:L,expected:j})}if(N[0]instanceof Array&&N.length>1)throw new Error("Parse Error: multiple actions possible at state: "+O+", token: "+_);switch(N[0]){case 1:f.push(_),p.push(k.yytext),m.push(k.yylloc),f.push(N[1]),_=null,D?(_=D,D=null):(x=k.yyleng,y=k.yytext,v=k.yylineno,L=k.yylloc,b>0&&b--);break;case 2:if($=this.productions_[N[1]][1],F.$=p[p.length-$],F._$={first_line:m[m.length-($||1)].first_line,last_line:m[m.length-1].last_line,first_column:m[m.length-($||1)].first_column,last_column:m[m.length-1].last_column},I&&(F._$.range=[m[m.length-($||1)].range[0],m[m.length-1].range[1]]),B=this.performAction.apply(F,[y,x,v,C.yy,N[1],p,m].concat(w)),typeof B<"u")return B;$&&(f=f.slice(0,-1*$*2),p=p.slice(0,-1*$),m=m.slice(0,-1*$)),f.push(this.productions_[N[1]][0]),p.push(F.$),m.push(F._$),U=g[f[f.length-2]][f[f.length-1]],f.push(U);break;case 3:return!0}}return!0},"parse")},a=(function(){var l={EOF:1,parseError:o(function(h,f){if(this.yy.parser)this.yy.parser.parseError(h,f);else throw new Error(h)},"parseError"),setInput:o(function(u,h){return this.yy=h||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},"setInput"),input:o(function(){var u=this._input[0];this.yytext+=u,this.yyleng++,this.offset++,this.match+=u,this.matched+=u;var h=u.match(/(?:\r\n?|\n).*/g);return h?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),u},"input"),unput:o(function(u){var h=u.length,f=u.split(/(?:\r\n?|\n)/g);this._input=u+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-h),this.offset-=h;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),f.length-1&&(this.yylineno-=f.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:f?(f.length===d.length?this.yylloc.first_column:0)+d[d.length-f.length].length-f[0].length:this.yylloc.first_column-h},this.options.ranges&&(this.yylloc.range=[p[0],p[0]+this.yyleng-h]),this.yyleng=this.yytext.length,this},"unput"),more:o(function(){return this._more=!0,this},"more"),reject:o(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},"reject"),less:o(function(u){this.unput(this.match.slice(u))},"less"),pastInput:o(function(){var u=this.matched.substr(0,this.matched.length-this.match.length);return(u.length>20?"...":"")+u.substr(-20).replace(/\n/g,"")},"pastInput"),upcomingInput:o(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,"")},"upcomingInput"),showPosition:o(function(){var u=this.pastInput(),h=new Array(u.length+1).join("-");return u+this.upcomingInput()+` +`+h+"^"},"showPosition"),test_match:o(function(u,h){var f,d,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))),d=u[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+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],f=this.performAction.call(this,this.yy,this,h,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),f)return f;if(this._backtrack){for(var m in p)this[m]=p[m];return!1}return!1},"test_match"),next:o(function(){if(this.done)return this.EOF;this._input||(this.done=!0);var u,h,f,d;this._more||(this.yytext="",this.match="");for(var p=this._currentRules(),m=0;mh[0].length)){if(h=f,d=m,this.options.backtrack_lexer){if(u=this.test_match(f,p[m]),u!==!1)return u;if(this._backtrack){h=!1;continue}else return!1}else if(!this.options.flex)break}return h?(u=this.test_match(h,p[d]),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})},"next"),lex:o(function(){var h=this.next();return h||this.lex()},"lex"),begin:o(function(h){this.conditionStack.push(h)},"begin"),popState:o(function(){var h=this.conditionStack.length-1;return h>0?this.conditionStack.pop():this.conditionStack[0]},"popState"),_currentRules:o(function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},"_currentRules"),topState:o(function(h){return h=this.conditionStack.length-1-Math.abs(h||0),h>=0?this.conditionStack[h]:"INITIAL"},"topState"),pushState:o(function(h){this.begin(h)},"pushState"),stateStackSize:o(function(){return this.conditionStack.length},"stateStackSize"),options:{"case-insensitive":!0},performAction:o(function(h,f,d,p){var m=p;switch(d){case 0:return this.pushState("csv"),4;break;case 1:return this.pushState("csv"),4;break;case 2:return 10;case 3:return 5;case 4:return 12;case 5:return this.pushState("escaped_text"),18;break;case 6:return 20;case 7:return this.popState("escaped_text"),18;break;case 8:return 19}},"anonymous"),rules:[/^(?:sankey-beta\b)/i,/^(?:sankey\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:[2,3,4,5,6,7,8],inclusive:!1},escaped_text:{rules:[7,8],inclusive:!1},INITIAL:{rules:[0,1,2,3,4,5,6,7,8],inclusive:!0}}};return l})();i.lexer=a;function s(){this.yy={}}return o(s,"Parser"),s.prototype=i,i.Parser=s,new s})();Z$.parser=Z$;_4=Z$});var kC,EC,wC,nrt,J$,irt,ez,art,srt,ort,lrt,bxe,Txe=M(()=>{"use strict";Xt();gr();ci();kC=[],EC=[],wC=new Map,nrt=o(()=>{kC=[],EC=[],wC=new Map,Sr()},"clear"),J$=class{constructor(e,r,n=0){this.source=e;this.target=r;this.value=n}static{o(this,"SankeyLink")}},irt=o((t,e,r)=>{kC.push(new J$(t,e,r))},"addLink"),ez=class{constructor(e){this.ID=e}static{o(this,"SankeyNode")}},art=o(t=>{t=tt.sanitizeText(t,ge());let e=wC.get(t);return e===void 0&&(e=new ez(t),wC.set(t,e),EC.push(e)),e},"findOrCreateNode"),srt=o(()=>EC,"getNodes"),ort=o(()=>kC,"getLinks"),lrt=o(()=>({nodes:EC.map(t=>({id:t.ID})),links:kC.map(t=>({source:t.source.ID,target:t.target.ID,value:t.value}))}),"getGraph"),bxe={nodesMap:wC,getConfig:o(()=>ge().sankey,"getConfig"),getNodes:srt,getLinks:ort,getGraph:lrt,addLink:irt,findOrCreateNode:art,getAccTitle:Mr,setAccTitle:Rr,getAccDescription:Or,setAccDescription:Ir,getDiagramTitle:Pr,setDiagramTitle:$r,clear:nrt}});function D4(t,e){let r;if(e===void 0)for(let n of t)n!=null&&(r=n)&&(r=n);else{let n=-1;for(let i of t)(i=e(i,++n,t))!=null&&(r=i)&&(r=i)}return r}var wxe=M(()=>{"use strict";o(D4,"max")});function py(t,e){let r;if(e===void 0)for(let n of t)n!=null&&(r>n||r===void 0&&n>=n)&&(r=n);else{let n=-1;for(let i of t)(i=e(i,++n,t))!=null&&(r>i||r===void 0&&i>=i)&&(r=i)}return r}var kxe=M(()=>{"use strict";o(py,"min")});function my(t,e){let r=0;if(e===void 0)for(let n of t)(n=+n)&&(r+=n);else{let n=-1;for(let i of t)(i=+e(i,++n,t))&&(r+=i)}return r}var Exe=M(()=>{"use strict";o(my,"sum")});var tz=M(()=>{"use strict";wxe();kxe();Exe()});function crt(t){return t.target.depth}function rz(t){return t.depth}function nz(t,e){return e-1-t.height}function L4(t,e){return t.sourceLinks.length?t.depth:e-1}function iz(t){return t.targetLinks.length?t.depth:t.sourceLinks.length?py(t.sourceLinks,crt)-1:0}var az=M(()=>{"use strict";tz();o(crt,"targetDepth");o(rz,"left");o(nz,"right");o(L4,"justify");o(iz,"center")});function gy(t){return function(){return t}}var Sxe=M(()=>{"use strict";o(gy,"constant")});function Cxe(t,e){return SC(t.source,e.source)||t.index-e.index}function Axe(t,e){return SC(t.target,e.target)||t.index-e.index}function SC(t,e){return t.y0-e.y0}function sz(t){return t.value}function urt(t){return t.index}function hrt(t){return t.nodes}function frt(t){return t.links}function _xe(t,e){let r=t.get(e);if(!r)throw new Error("missing: "+e);return r}function Dxe({nodes:t}){for(let e of t){let r=e.y0,n=r;for(let i of e.sourceLinks)i.y0=r+i.width/2,r+=i.width;for(let i of e.targetLinks)i.y1=n+i.width/2,n+=i.width}}function CC(){let t=0,e=0,r=1,n=1,i=24,a=8,s,l=urt,u=L4,h,f,d=hrt,p=frt,m=6;function g(){let O={nodes:d.apply(null,arguments),links:p.apply(null,arguments)};return y(O),v(O),x(O),b(O),w(O),Dxe(O),O}o(g,"sankey"),g.update=function(O){return Dxe(O),O},g.nodeId=function(O){return arguments.length?(l=typeof O=="function"?O:gy(O),g):l},g.nodeAlign=function(O){return arguments.length?(u=typeof O=="function"?O:gy(O),g):u},g.nodeSort=function(O){return arguments.length?(h=O,g):h},g.nodeWidth=function(O){return arguments.length?(i=+O,g):i},g.nodePadding=function(O){return arguments.length?(a=s=+O,g):a},g.nodes=function(O){return arguments.length?(d=typeof O=="function"?O:gy(O),g):d},g.links=function(O){return arguments.length?(p=typeof O=="function"?O:gy(O),g):p},g.linkSort=function(O){return arguments.length?(f=O,g):f},g.size=function(O){return arguments.length?(t=e=0,r=+O[0],n=+O[1],g):[r-t,n-e]},g.extent=function(O){return arguments.length?(t=+O[0][0],r=+O[1][0],e=+O[0][1],n=+O[1][1],g):[[t,e],[r,n]]},g.iterations=function(O){return arguments.length?(m=+O,g):m};function y({nodes:O,links:N}){for(let[B,F]of O.entries())F.index=B,F.sourceLinks=[],F.targetLinks=[];let P=new Map(O.map((B,F)=>[l(B,F,O),B]));for(let[B,F]of N.entries()){F.index=B;let{source:V,target:$}=F;typeof V!="object"&&(V=F.source=_xe(P,V)),typeof $!="object"&&($=F.target=_xe(P,$)),V.sourceLinks.push(F),$.targetLinks.push(F)}if(f!=null)for(let{sourceLinks:B,targetLinks:F}of O)B.sort(f),F.sort(f)}o(y,"computeNodeLinks");function v({nodes:O}){for(let N of O)N.value=N.fixedValue===void 0?Math.max(my(N.sourceLinks,sz),my(N.targetLinks,sz)):N.fixedValue}o(v,"computeNodeValues");function x({nodes:O}){let N=O.length,P=new Set(O),B=new Set,F=0;for(;P.size;){for(let V of P){V.depth=F;for(let{target:$}of V.sourceLinks)B.add($)}if(++F>N)throw new Error("circular link");P=B,B=new Set}}o(x,"computeNodeDepths");function b({nodes:O}){let N=O.length,P=new Set(O),B=new Set,F=0;for(;P.size;){for(let V of P){V.height=F;for(let{source:$}of V.targetLinks)B.add($)}if(++F>N)throw new Error("circular link");P=B,B=new Set}}o(b,"computeNodeHeights");function T({nodes:O}){let N=D4(O,F=>F.depth)+1,P=(r-t-i)/(N-1),B=new Array(N);for(let F of O){let V=Math.max(0,Math.min(N-1,Math.floor(u.call(null,F,N))));F.layer=V,F.x0=t+V*P,F.x1=F.x0+i,B[V]?B[V].push(F):B[V]=[F]}if(h)for(let F of B)F.sort(h);return B}o(T,"computeNodeLayers");function S(O){let N=py(O,P=>(n-e-(P.length-1)*s)/my(P,sz));for(let P of O){let B=e;for(let F of P){F.y0=B,F.y1=B+F.value*N,B=F.y1+s;for(let V of F.sourceLinks)V.width=V.value*N}B=(n-B+s)/(P.length+1);for(let F=0;FP.length)-1)),S(N);for(let P=0;P0))continue;let ee=(U/j-$.y0)*N;$.y0+=ee,$.y1+=ee,R($)}h===void 0&&V.sort(SC),A(V,P)}}o(k,"relaxLeftToRight");function C(O,N,P){for(let B=O.length,F=B-2;F>=0;--F){let V=O[F];for(let $ of V){let U=0,j=0;for(let{target:q,value:oe}of $.sourceLinks){let Q=oe*(q.layer-$.layer);U+=D($,q)*Q,j+=Q}if(!(j>0))continue;let ee=(U/j-$.y0)*N;$.y0+=ee,$.y1+=ee,R($)}h===void 0&&V.sort(SC),A(V,P)}}o(C,"relaxRightToLeft");function A(O,N){let P=O.length>>1,B=O[P];I(O,B.y0-s,P-1,N),L(O,B.y1+s,P+1,N),I(O,n,O.length-1,N),L(O,e,0,N)}o(A,"resolveCollisions");function L(O,N,P,B){for(;P1e-6&&(F.y0+=V,F.y1+=V),N=F.y1+s}}o(L,"resolveCollisionsTopToBottom");function I(O,N,P,B){for(;P>=0;--P){let F=O[P],V=(F.y1-N)*B;V>1e-6&&(F.y0-=V,F.y1-=V),N=F.y0-s}}o(I,"resolveCollisionsBottomToTop");function R({sourceLinks:O,targetLinks:N}){if(f===void 0){for(let{source:{sourceLinks:P}}of N)P.sort(Axe);for(let{target:{targetLinks:P}}of O)P.sort(Cxe)}}o(R,"reorderNodeLinks");function E(O){if(f===void 0)for(let{sourceLinks:N,targetLinks:P}of O)N.sort(Axe),P.sort(Cxe)}o(E,"reorderLinks");function _(O,N){let P=O.y0-(O.sourceLinks.length-1)*s/2;for(let{target:B,width:F}of O.sourceLinks){if(B===N)break;P+=F+s}for(let{source:B,width:F}of N.targetLinks){if(B===O)break;P-=F}return P}o(_,"targetTop");function D(O,N){let P=N.y0-(N.targetLinks.length-1)*s/2;for(let{source:B,width:F}of N.targetLinks){if(B===O)break;P+=F+s}for(let{target:B,width:F}of O.sourceLinks){if(B===N)break;P-=F}return P}return o(D,"sourceTop"),g}var Lxe=M(()=>{"use strict";tz();az();Sxe();o(Cxe,"ascendingSourceBreadth");o(Axe,"ascendingTargetBreadth");o(SC,"ascendingBreadth");o(sz,"value");o(urt,"defaultId");o(hrt,"defaultNodes");o(frt,"defaultLinks");o(_xe,"find");o(Dxe,"computeLinkBreadths");o(CC,"Sankey")});function cz(){this._x0=this._y0=this._x1=this._y1=null,this._=""}function Rxe(){return new cz}var oz,lz,f0,drt,uz,Nxe=M(()=>{"use strict";oz=Math.PI,lz=2*oz,f0=1e-6,drt=lz-f0;o(cz,"Path");o(Rxe,"path");cz.prototype=Rxe.prototype={constructor:cz,moveTo:o(function(t,e){this._+="M"+(this._x0=this._x1=+t)+","+(this._y0=this._y1=+e)},"moveTo"),closePath:o(function(){this._x1!==null&&(this._x1=this._x0,this._y1=this._y0,this._+="Z")},"closePath"),lineTo:o(function(t,e){this._+="L"+(this._x1=+t)+","+(this._y1=+e)},"lineTo"),quadraticCurveTo:o(function(t,e,r,n){this._+="Q"+ +t+","+ +e+","+(this._x1=+r)+","+(this._y1=+n)},"quadraticCurveTo"),bezierCurveTo:o(function(t,e,r,n,i,a){this._+="C"+ +t+","+ +e+","+ +r+","+ +n+","+(this._x1=+i)+","+(this._y1=+a)},"bezierCurveTo"),arcTo:o(function(t,e,r,n,i){t=+t,e=+e,r=+r,n=+n,i=+i;var a=this._x1,s=this._y1,l=r-t,u=n-e,h=a-t,f=s-e,d=h*h+f*f;if(i<0)throw new Error("negative radius: "+i);if(this._x1===null)this._+="M"+(this._x1=t)+","+(this._y1=e);else if(d>f0)if(!(Math.abs(f*l-u*h)>f0)||!i)this._+="L"+(this._x1=t)+","+(this._y1=e);else{var p=r-a,m=n-s,g=l*l+u*u,y=p*p+m*m,v=Math.sqrt(g),x=Math.sqrt(d),b=i*Math.tan((oz-Math.acos((g+d-y)/(2*v*x)))/2),T=b/x,S=b/v;Math.abs(T-1)>f0&&(this._+="L"+(t+T*h)+","+(e+T*f)),this._+="A"+i+","+i+",0,0,"+ +(f*p>h*m)+","+(this._x1=t+S*l)+","+(this._y1=e+S*u)}},"arcTo"),arc:o(function(t,e,r,n,i,a){t=+t,e=+e,r=+r,a=!!a;var s=r*Math.cos(n),l=r*Math.sin(n),u=t+s,h=e+l,f=1^a,d=a?n-i:i-n;if(r<0)throw new Error("negative radius: "+r);this._x1===null?this._+="M"+u+","+h:(Math.abs(this._x1-u)>f0||Math.abs(this._y1-h)>f0)&&(this._+="L"+u+","+h),r&&(d<0&&(d=d%lz+lz),d>drt?this._+="A"+r+","+r+",0,1,"+f+","+(t-s)+","+(e-l)+"A"+r+","+r+",0,1,"+f+","+(this._x1=u)+","+(this._y1=h):d>f0&&(this._+="A"+r+","+r+",0,"+ +(d>=oz)+","+f+","+(this._x1=t+r*Math.cos(i))+","+(this._y1=e+r*Math.sin(i))))},"arc"),rect:o(function(t,e,r,n){this._+="M"+(this._x0=this._x1=+t)+","+(this._y0=this._y1=+e)+"h"+ +r+"v"+ +n+"h"+-r+"Z"},"rect"),toString:o(function(){return this._},"toString")};uz=Rxe});var Mxe=M(()=>{"use strict";Nxe()});function AC(t){return o(function(){return t},"constant")}var Ixe=M(()=>{"use strict";o(AC,"default")});function Oxe(t){return t[0]}function Pxe(t){return t[1]}var Bxe=M(()=>{"use strict";o(Oxe,"x");o(Pxe,"y")});var Fxe,$xe=M(()=>{"use strict";Fxe=Array.prototype.slice});function prt(t){return t.source}function mrt(t){return t.target}function grt(t){var e=prt,r=mrt,n=Oxe,i=Pxe,a=null;function s(){var l,u=Fxe.call(arguments),h=e.apply(this,u),f=r.apply(this,u);if(a||(a=l=uz()),t(a,+n.apply(this,(u[0]=h,u)),+i.apply(this,u),+n.apply(this,(u[0]=f,u)),+i.apply(this,u)),l)return a=null,l+""||null}return o(s,"link"),s.source=function(l){return arguments.length?(e=l,s):e},s.target=function(l){return arguments.length?(r=l,s):r},s.x=function(l){return arguments.length?(n=typeof l=="function"?l:AC(+l),s):n},s.y=function(l){return arguments.length?(i=typeof l=="function"?l:AC(+l),s):i},s.context=function(l){return arguments.length?(a=l??null,s):a},s}function yrt(t,e,r,n,i){t.moveTo(e,r),t.bezierCurveTo(e=(e+n)/2,r,e,i,n,i)}function hz(){return grt(yrt)}var zxe=M(()=>{"use strict";Mxe();$xe();Ixe();Bxe();o(prt,"linkSource");o(mrt,"linkTarget");o(grt,"link");o(yrt,"curveHorizontal");o(hz,"linkHorizontal")});var Gxe=M(()=>{"use strict";zxe()});function vrt(t){return[t.source.x1,t.y0]}function xrt(t){return[t.target.x0,t.y1]}function _C(){return hz().source(vrt).target(xrt)}var Vxe=M(()=>{"use strict";Gxe();o(vrt,"horizontalSource");o(xrt,"horizontalTarget");o(_C,"default")});var Uxe=M(()=>{"use strict";Lxe();az();Vxe()});var R4,Hxe=M(()=>{"use strict";R4=class t{static{o(this,"Uid")}static{this.count=0}static next(e){return new t(e+ ++t.count)}constructor(e){this.id=e,this.href=`#${e}`}toString(){return"url("+this.href+")"}}});var brt,Trt,qxe,Wxe=M(()=>{"use strict";Xt();yr();Uxe();Ei();Hxe();brt={left:rz,right:nz,center:iz,justify:L4},Trt=o(function(t,e,r,n){let{securityLevel:i,sankey:a}=ge(),s=V3.sankey,l;i==="sandbox"&&(l=qe("#i"+e));let u=i==="sandbox"?qe(l.nodes()[0].contentDocument.body):qe("body"),h=i==="sandbox"?u.select(`[id="${e}"]`):qe(`[id="${e}"]`),f=a?.width??s.width,d=a?.height??s.width,p=a?.useMaxWidth??s.useMaxWidth,m=a?.nodeAlignment??s.nodeAlignment,g=a?.prefix??s.prefix,y=a?.suffix??s.suffix,v=a?.showValues??s.showValues,x=n.db.getGraph(),b=brt[m];CC().nodeId(I=>I.id).nodeWidth(10).nodePadding(10+(v?15:0)).nodeAlign(b).extent([[0,0],[f,d]])(x);let w=no(YD);h.append("g").attr("class","nodes").selectAll(".node").data(x.nodes).join("g").attr("class","node").attr("id",I=>(I.uid=R4.next("node-")).id).attr("transform",function(I){return"translate("+I.x0+","+I.y0+")"}).attr("x",I=>I.x0).attr("y",I=>I.y0).append("rect").attr("height",I=>I.y1-I.y0).attr("width",I=>I.x1-I.x0).attr("fill",I=>w(I.id));let k=o(({id:I,value:R})=>v?`${I} +${g}${Math.round(R*100)/100}${y}`:I,"getText");h.append("g").attr("class","node-labels").attr("font-size",14).selectAll("text").data(x.nodes).join("text").attr("x",I=>I.x0(I.y1+I.y0)/2).attr("dy",`${v?"0":"0.35"}em`).attr("text-anchor",I=>I.x0(R.uid=R4.next("linearGradient-")).id).attr("gradientUnits","userSpaceOnUse").attr("x1",R=>R.source.x1).attr("x2",R=>R.target.x0);I.append("stop").attr("offset","0%").attr("stop-color",R=>w(R.source.id)),I.append("stop").attr("offset","100%").attr("stop-color",R=>w(R.target.id))}let L;switch(A){case"gradient":L=o(I=>I.uid,"coloring");break;case"source":L=o(I=>w(I.source.id),"coloring");break;case"target":L=o(I=>w(I.target.id),"coloring");break;default:L=A}C.append("path").attr("d",_C()).attr("stroke",L).attr("stroke-width",I=>Math.max(1,I.width)),ic(void 0,h,0,p)},"draw"),qxe={draw:Trt}});var Yxe,Xxe=M(()=>{"use strict";Yxe=o(t=>t.replaceAll(/^[^\S\n\r]+|[^\S\n\r]+$/g,"").replaceAll(/([\n\r])+/g,` +`).trim(),"prepareTextForParsing")});var wrt,jxe,Kxe=M(()=>{"use strict";wrt=o(t=>`.label { + font-family: ${t.fontFamily}; + }`,"getStyles"),jxe=wrt});var Qxe={};dr(Qxe,{diagram:()=>Ert});var krt,Ert,Zxe=M(()=>{"use strict";xxe();Txe();Wxe();Xxe();Kxe();krt=_4.parse.bind(_4);_4.parse=t=>krt(Yxe(t));Ert={styles:jxe,parser:_4,db:bxe,renderer:qxe}});var _rt,yy,fz=M(()=>{"use strict";qn();Ra();tr();ci();_rt=ur.packet,yy=class{constructor(){this.packet=[];this.setAccTitle=Rr;this.getAccTitle=Mr;this.setDiagramTitle=$r;this.getDiagramTitle=Pr;this.getAccDescription=Or;this.setAccDescription=Ir}static{o(this,"PacketDB")}getConfig(){let e=Vn({..._rt,...Qt().packet});return e.showBits&&(e.paddingY+=10),e}getPacket(){return this.packet}pushWord(e){e.length>0&&this.packet.push(e)}clear(){Sr(),this.packet=[]}}});var Drt,Lrt,Rrt,dz,tbe=M(()=>{"use strict";Uf();pt();r0();fz();Drt=1e4,Lrt=o((t,e)=>{nl(t,e);let r=-1,n=[],i=1,{bitsPerRow:a}=e.getConfig();for(let{start:s,end:l,bits:u,label:h}of t.blocks){if(s!==void 0&&l!==void 0&&l{if(t.start===void 0)throw new Error("start should have been set during first phase");if(t.end===void 0)throw new Error("end should have been set during first phase");if(t.start>t.end)throw new Error(`Block start ${t.start} is greater than block end ${t.end}.`);if(t.end+1<=e*r)return[t,void 0];let n=e*r-1,i=e*r;return[{start:t.start,end:n,label:t.label,bits:n-t.start},{start:i,end:t.end,label:t.label,bits:t.end-i}]},"getNextFittingBlock"),dz={parser:{yy:void 0},parse:o(async t=>{let e=await bs("packet",t),r=dz.parser?.yy;if(!(r instanceof yy))throw new Error("parser.parser?.yy was not a PacketDB. This is due to a bug within Mermaid, please report this issue at https://github.com/mermaid-js/mermaid/issues.");X.debug(e),Lrt(e,r)},"parse")}});var Nrt,Mrt,rbe,nbe=M(()=>{"use strict";tu();Ei();Nrt=o((t,e,r,n)=>{let i=n.db,a=i.getConfig(),{rowHeight:s,paddingY:l,bitWidth:u,bitsPerRow:h}=a,f=i.getPacket(),d=i.getDiagramTitle(),p=s+l,m=p*(f.length+1)-(d?0:s),g=u*h+2,y=aa(e);y.attr("viewbox",`0 0 ${g} ${m}`),mn(y,m,g,a.useMaxWidth);for(let[v,x]of f.entries())Mrt(y,x,v,a);y.append("text").text(d).attr("x",g/2).attr("y",m-p/2).attr("dominant-baseline","middle").attr("text-anchor","middle").attr("class","packetTitle")},"draw"),Mrt=o((t,e,r,{rowHeight:n,paddingX:i,paddingY:a,bitWidth:s,bitsPerRow:l,showBits:u})=>{let h=t.append("g"),f=r*(n+a)+a;for(let d of e){let p=d.start%l*s+1,m=(d.end-d.start+1)*s-i;if(h.append("rect").attr("x",p).attr("y",f).attr("width",m).attr("height",n).attr("class","packetBlock"),h.append("text").attr("x",p+m/2).attr("y",f+n/2).attr("class","packetLabel").attr("dominant-baseline","middle").attr("text-anchor","middle").text(d.label),!u)continue;let g=d.end===d.start,y=f-2;h.append("text").attr("x",p+(g?m/2:0)).attr("y",y).attr("class","packetByte start").attr("dominant-baseline","auto").attr("text-anchor",g?"middle":"start").text(d.start),g||h.append("text").attr("x",p+m).attr("y",y).attr("class","packetByte end").attr("dominant-baseline","auto").attr("text-anchor","end").text(d.end)}},"drawWord"),rbe={draw:Nrt}});var Irt,ibe,abe=M(()=>{"use strict";tr();Irt={byteFontSize:"10px",startByteColor:"black",endByteColor:"black",labelColor:"black",labelFontSize:"12px",titleColor:"black",titleFontSize:"14px",blockStrokeColor:"black",blockStrokeWidth:"1",blockFillColor:"#efefef"},ibe=o(({packet:t}={})=>{let e=Vn(Irt,t);return` + .packetByte { + font-size: ${e.byteFontSize}; + } + .packetByte.start { + fill: ${e.startByteColor}; + } + .packetByte.end { + fill: ${e.endByteColor}; + } + .packetLabel { + fill: ${e.labelColor}; + font-size: ${e.labelFontSize}; + } + .packetTitle { + fill: ${e.titleColor}; + font-size: ${e.titleFontSize}; + } + .packetBlock { + stroke: ${e.blockStrokeColor}; + stroke-width: ${e.blockStrokeWidth}; + fill: ${e.blockFillColor}; + } + `},"styles")});var sbe={};dr(sbe,{diagram:()=>Ort});var Ort,obe=M(()=>{"use strict";fz();tbe();nbe();abe();Ort={parser:dz,get db(){return new yy},renderer:rbe,styles:ibe}});var vy,ube,d0,Frt,$rt,hbe,zrt,Grt,Vrt,Urt,Hrt,qrt,Wrt,p0,pz=M(()=>{"use strict";qn();Ra();tr();ci();vy={showLegend:!0,ticks:5,max:null,min:0,graticule:"circle"},ube={axes:[],curves:[],options:vy},d0=structuredClone(ube),Frt=ur.radar,$rt=o(()=>Vn({...Frt,...Qt().radar}),"getConfig"),hbe=o(()=>d0.axes,"getAxes"),zrt=o(()=>d0.curves,"getCurves"),Grt=o(()=>d0.options,"getOptions"),Vrt=o(t=>{d0.axes=t.map(e=>({name:e.name,label:e.label??e.name}))},"setAxes"),Urt=o(t=>{d0.curves=t.map(e=>({name:e.name,label:e.label??e.name,entries:Hrt(e.entries)}))},"setCurves"),Hrt=o(t=>{if(t[0].axis==null)return t.map(r=>r.value);let e=hbe();if(e.length===0)throw new Error("Axes must be populated before curves for reference entries");return e.map(r=>{let n=t.find(i=>i.axis?.$refText===r.name);if(n===void 0)throw new Error("Missing entry for axis "+r.label);return n.value})},"computeCurveEntries"),qrt=o(t=>{let e=t.reduce((r,n)=>(r[n.name]=n,r),{});d0.options={showLegend:e.showLegend?.value??vy.showLegend,ticks:e.ticks?.value??vy.ticks,max:e.max?.value??vy.max,min:e.min?.value??vy.min,graticule:e.graticule?.value??vy.graticule}},"setOptions"),Wrt=o(()=>{Sr(),d0=structuredClone(ube)},"clear"),p0={getAxes:hbe,getCurves:zrt,getOptions:Grt,setAxes:Vrt,setCurves:Urt,setOptions:qrt,getConfig:$rt,clear:Wrt,setAccTitle:Rr,getAccTitle:Mr,setDiagramTitle:$r,getDiagramTitle:Pr,getAccDescription:Or,setAccDescription:Ir}});var Yrt,fbe,dbe=M(()=>{"use strict";Uf();pt();r0();pz();Yrt=o(t=>{nl(t,p0);let{axes:e,curves:r,options:n}=t;p0.setAxes(e),p0.setCurves(r),p0.setOptions(n)},"populate"),fbe={parse:o(async t=>{let e=await bs("radar",t);X.debug(e),Yrt(e)},"parse")}});function Zrt(t,e,r,n,i,a,s){let l=e.length,u=Math.min(s.width,s.height)/2;r.forEach((h,f)=>{if(h.entries.length!==l)return;let d=h.entries.map((p,m)=>{let g=2*Math.PI*m/l-Math.PI/2,y=Jrt(p,n,i,u),v=y*Math.cos(g),x=y*Math.sin(g);return{x:v,y:x}});a==="circle"?t.append("path").attr("d",ent(d,s.curveTension)).attr("class",`radarCurve-${f}`):a==="polygon"&&t.append("polygon").attr("points",d.map(p=>`${p.x},${p.y}`).join(" ")).attr("class",`radarCurve-${f}`)})}function Jrt(t,e,r,n){let i=Math.min(Math.max(t,e),r);return n*(i-e)/(r-e)}function ent(t,e){let r=t.length,n=`M${t[0].x},${t[0].y}`;for(let i=0;i{let h=t.append("g").attr("transform",`translate(${i}, ${a+u*s})`);h.append("rect").attr("width",12).attr("height",12).attr("class",`radarLegendBox-${u}`),h.append("text").attr("x",16).attr("y",0).attr("class","radarLegendText").text(l.label)})}var Xrt,jrt,Krt,Qrt,pbe,mbe=M(()=>{"use strict";tu();Xrt=o((t,e,r,n)=>{let i=n.db,a=i.getAxes(),s=i.getCurves(),l=i.getOptions(),u=i.getConfig(),h=i.getDiagramTitle(),f=aa(e),d=jrt(f,u),p=l.max??Math.max(...s.map(y=>Math.max(...y.entries))),m=l.min,g=Math.min(u.width,u.height)/2;Krt(d,a,g,l.ticks,l.graticule),Qrt(d,a,g,u),Zrt(d,a,s,m,p,l.graticule,u),tnt(d,s,l.showLegend,u),d.append("text").attr("class","radarTitle").text(h).attr("x",0).attr("y",-u.height/2-u.marginTop)},"draw"),jrt=o((t,e)=>{let r=e.width+e.marginLeft+e.marginRight,n=e.height+e.marginTop+e.marginBottom,i={x:e.marginLeft+e.width/2,y:e.marginTop+e.height/2};return t.attr("viewbox",`0 0 ${r} ${n}`).attr("width",r).attr("height",n),t.append("g").attr("transform",`translate(${i.x}, ${i.y})`)},"drawFrame"),Krt=o((t,e,r,n,i)=>{if(i==="circle")for(let a=0;a{let d=2*f*Math.PI/a-Math.PI/2,p=l*Math.cos(d),m=l*Math.sin(d);return`${p},${m}`}).join(" ");t.append("polygon").attr("points",u).attr("class","radarGraticule")}}},"drawGraticule"),Qrt=o((t,e,r,n)=>{let i=e.length;for(let a=0;a{"use strict";tr();Py();qn();rnt=o((t,e)=>{let r="";for(let n=0;n{let e=mh(),r=Qt(),n=Vn(e,r.themeVariables),i=Vn(n.radar,t);return{themeVariables:n,radarOptions:i}},"buildRadarStyleOptions"),gbe=o(({radar:t}={})=>{let{themeVariables:e,radarOptions:r}=nnt(t);return` + .radarTitle { + font-size: ${e.fontSize}; + color: ${e.titleColor}; + dominant-baseline: hanging; + text-anchor: middle; + } + .radarAxisLine { + stroke: ${r.axisColor}; + stroke-width: ${r.axisStrokeWidth}; + } + .radarAxisLabel { + dominant-baseline: middle; + text-anchor: middle; + font-size: ${r.axisLabelFontSize}px; + color: ${r.axisColor}; + } + .radarGraticule { + fill: ${r.graticuleColor}; + fill-opacity: ${r.graticuleOpacity}; + stroke: ${r.graticuleColor}; + stroke-width: ${r.graticuleStrokeWidth}; + } + .radarLegendText { + text-anchor: start; + font-size: ${r.legendFontSize}px; + dominant-baseline: hanging; + } + ${rnt(e,r)} + `},"styles")});var vbe={};dr(vbe,{diagram:()=>int});var int,xbe=M(()=>{"use strict";pz();dbe();mbe();ybe();int={parser:fbe,db:p0,renderer:pbe,styles:gbe}});var mz,wbe,kbe=M(()=>{"use strict";mz=(function(){var t=o(function(T,S,w,k){for(w=w||{},k=T.length;k--;w[T[k]]=S);return w},"o"),e=[1,15],r=[1,7],n=[1,13],i=[1,14],a=[1,19],s=[1,16],l=[1,17],u=[1,18],h=[8,30],f=[8,10,21,28,29,30,31,39,43,46],d=[1,23],p=[1,24],m=[8,10,15,16,21,28,29,30,31,39,43,46],g=[8,10,15,16,21,27,28,29,30,31,39,43,46],y=[1,49],v={trace:o(function(){},"trace"),yy:{},symbols_:{error:2,spaceLines:3,SPACELINE:4,NL:5,separator:6,SPACE:7,EOF:8,start:9,BLOCK_DIAGRAM_KEY:10,document:11,stop:12,statement:13,link:14,LINK:15,START_LINK:16,LINK_LABEL:17,STR:18,nodeStatement:19,columnsStatement:20,SPACE_BLOCK:21,blockStatement:22,classDefStatement:23,cssClassStatement:24,styleStatement:25,node:26,SIZE:27,COLUMNS:28,"id-block":29,end:30,NODE_ID:31,nodeShapeNLabel:32,dirList:33,DIR:34,NODE_DSTART:35,NODE_DEND:36,BLOCK_ARROW_START:37,BLOCK_ARROW_END:38,classDef:39,CLASSDEF_ID:40,CLASSDEF_STYLEOPTS:41,DEFAULT:42,class:43,CLASSENTITY_IDS:44,STYLECLASS:45,style:46,STYLE_ENTITY_IDS:47,STYLE_DEFINITION_DATA:48,$accept:0,$end:1},terminals_:{2:"error",4:"SPACELINE",5:"NL",7:"SPACE",8:"EOF",10:"BLOCK_DIAGRAM_KEY",15:"LINK",16:"START_LINK",17:"LINK_LABEL",18:"STR",21:"SPACE_BLOCK",27:"SIZE",28:"COLUMNS",29:"id-block",30:"end",31:"NODE_ID",34:"DIR",35:"NODE_DSTART",36:"NODE_DEND",37:"BLOCK_ARROW_START",38:"BLOCK_ARROW_END",39:"classDef",40:"CLASSDEF_ID",41:"CLASSDEF_STYLEOPTS",42:"DEFAULT",43:"class",44:"CLASSENTITY_IDS",45:"STYLECLASS",46:"style",47:"STYLE_ENTITY_IDS",48:"STYLE_DEFINITION_DATA"},productions_:[0,[3,1],[3,2],[3,2],[6,1],[6,1],[6,1],[9,3],[12,1],[12,1],[12,2],[12,2],[11,1],[11,2],[14,1],[14,4],[13,1],[13,1],[13,1],[13,1],[13,1],[13,1],[13,1],[19,3],[19,2],[19,1],[20,1],[22,4],[22,3],[26,1],[26,2],[33,1],[33,2],[32,3],[32,4],[23,3],[23,3],[24,3],[25,3]],performAction:o(function(S,w,k,C,A,L,I){var R=L.length-1;switch(A){case 4:C.getLogger().debug("Rule: separator (NL) ");break;case 5:C.getLogger().debug("Rule: separator (Space) ");break;case 6:C.getLogger().debug("Rule: separator (EOF) ");break;case 7:C.getLogger().debug("Rule: hierarchy: ",L[R-1]),C.setHierarchy(L[R-1]);break;case 8:C.getLogger().debug("Stop NL ");break;case 9:C.getLogger().debug("Stop EOF ");break;case 10:C.getLogger().debug("Stop NL2 ");break;case 11:C.getLogger().debug("Stop EOF2 ");break;case 12:C.getLogger().debug("Rule: statement: ",L[R]),typeof L[R].length=="number"?this.$=L[R]:this.$=[L[R]];break;case 13:C.getLogger().debug("Rule: statement #2: ",L[R-1]),this.$=[L[R-1]].concat(L[R]);break;case 14:C.getLogger().debug("Rule: link: ",L[R],S),this.$={edgeTypeStr:L[R],label:""};break;case 15:C.getLogger().debug("Rule: LABEL link: ",L[R-3],L[R-1],L[R]),this.$={edgeTypeStr:L[R],label:L[R-1]};break;case 18:let E=parseInt(L[R]),_=C.generateId();this.$={id:_,type:"space",label:"",width:E,children:[]};break;case 23:C.getLogger().debug("Rule: (nodeStatement link node) ",L[R-2],L[R-1],L[R]," typestr: ",L[R-1].edgeTypeStr);let D=C.edgeStrToEdgeData(L[R-1].edgeTypeStr);this.$=[{id:L[R-2].id,label:L[R-2].label,type:L[R-2].type,directions:L[R-2].directions},{id:L[R-2].id+"-"+L[R].id,start:L[R-2].id,end:L[R].id,label:L[R-1].label,type:"edge",directions:L[R].directions,arrowTypeEnd:D,arrowTypeStart:"arrow_open"},{id:L[R].id,label:L[R].label,type:C.typeStr2Type(L[R].typeStr),directions:L[R].directions}];break;case 24:C.getLogger().debug("Rule: nodeStatement (abc88 node size) ",L[R-1],L[R]),this.$={id:L[R-1].id,label:L[R-1].label,type:C.typeStr2Type(L[R-1].typeStr),directions:L[R-1].directions,widthInColumns:parseInt(L[R],10)};break;case 25:C.getLogger().debug("Rule: nodeStatement (node) ",L[R]),this.$={id:L[R].id,label:L[R].label,type:C.typeStr2Type(L[R].typeStr),directions:L[R].directions,widthInColumns:1};break;case 26:C.getLogger().debug("APA123",this?this:"na"),C.getLogger().debug("COLUMNS: ",L[R]),this.$={type:"column-setting",columns:L[R]==="auto"?-1:parseInt(L[R])};break;case 27:C.getLogger().debug("Rule: id-block statement : ",L[R-2],L[R-1]);let O=C.generateId();this.$={...L[R-2],type:"composite",children:L[R-1]};break;case 28:C.getLogger().debug("Rule: blockStatement : ",L[R-2],L[R-1],L[R]);let N=C.generateId();this.$={id:N,type:"composite",label:"",children:L[R-1]};break;case 29:C.getLogger().debug("Rule: node (NODE_ID separator): ",L[R]),this.$={id:L[R]};break;case 30:C.getLogger().debug("Rule: node (NODE_ID nodeShapeNLabel separator): ",L[R-1],L[R]),this.$={id:L[R-1],label:L[R].label,typeStr:L[R].typeStr,directions:L[R].directions};break;case 31:C.getLogger().debug("Rule: dirList: ",L[R]),this.$=[L[R]];break;case 32:C.getLogger().debug("Rule: dirList: ",L[R-1],L[R]),this.$=[L[R-1]].concat(L[R]);break;case 33:C.getLogger().debug("Rule: nodeShapeNLabel: ",L[R-2],L[R-1],L[R]),this.$={typeStr:L[R-2]+L[R],label:L[R-1]};break;case 34:C.getLogger().debug("Rule: BLOCK_ARROW nodeShapeNLabel: ",L[R-3],L[R-2]," #3:",L[R-1],L[R]),this.$={typeStr:L[R-3]+L[R],label:L[R-2],directions:L[R-1]};break;case 35:case 36:this.$={type:"classDef",id:L[R-1].trim(),css:L[R].trim()};break;case 37:this.$={type:"applyClass",id:L[R-1].trim(),styleClass:L[R].trim()};break;case 38:this.$={type:"applyStyles",id:L[R-1].trim(),stylesStr:L[R].trim()};break}},"anonymous"),table:[{9:1,10:[1,2]},{1:[3]},{10:e,11:3,13:4,19:5,20:6,21:r,22:8,23:9,24:10,25:11,26:12,28:n,29:i,31:a,39:s,43:l,46:u},{8:[1,20]},t(h,[2,12],{13:4,19:5,20:6,22:8,23:9,24:10,25:11,26:12,11:21,10:e,21:r,28:n,29:i,31:a,39:s,43:l,46:u}),t(f,[2,16],{14:22,15:d,16:p}),t(f,[2,17]),t(f,[2,18]),t(f,[2,19]),t(f,[2,20]),t(f,[2,21]),t(f,[2,22]),t(m,[2,25],{27:[1,25]}),t(f,[2,26]),{19:26,26:12,31:a},{10:e,11:27,13:4,19:5,20:6,21:r,22:8,23:9,24:10,25:11,26:12,28:n,29:i,31:a,39:s,43:l,46:u},{40:[1,28],42:[1,29]},{44:[1,30]},{47:[1,31]},t(g,[2,29],{32:32,35:[1,33],37:[1,34]}),{1:[2,7]},t(h,[2,13]),{26:35,31:a},{31:[2,14]},{17:[1,36]},t(m,[2,24]),{10:e,11:37,13:4,14:22,15:d,16:p,19:5,20:6,21:r,22:8,23:9,24:10,25:11,26:12,28:n,29:i,31:a,39:s,43:l,46:u},{30:[1,38]},{41:[1,39]},{41:[1,40]},{45:[1,41]},{48:[1,42]},t(g,[2,30]),{18:[1,43]},{18:[1,44]},t(m,[2,23]),{18:[1,45]},{30:[1,46]},t(f,[2,28]),t(f,[2,35]),t(f,[2,36]),t(f,[2,37]),t(f,[2,38]),{36:[1,47]},{33:48,34:y},{15:[1,50]},t(f,[2,27]),t(g,[2,33]),{38:[1,51]},{33:52,34:y,38:[2,31]},{31:[2,15]},t(g,[2,34]),{38:[2,32]}],defaultActions:{20:[2,7],23:[2,14],50:[2,15],52:[2,32]},parseError:o(function(S,w){if(w.recoverable)this.trace(S);else{var k=new Error(S);throw k.hash=w,k}},"parseError"),parse:o(function(S){var w=this,k=[0],C=[],A=[null],L=[],I=this.table,R="",E=0,_=0,D=0,O=2,N=1,P=L.slice.call(arguments,1),B=Object.create(this.lexer),F={yy:{}};for(var V in this.yy)Object.prototype.hasOwnProperty.call(this.yy,V)&&(F.yy[V]=this.yy[V]);B.setInput(S,F.yy),F.yy.lexer=B,F.yy.parser=this,typeof B.yylloc>"u"&&(B.yylloc={});var $=B.yylloc;L.push($);var U=B.options&&B.options.ranges;typeof F.yy.parseError=="function"?this.parseError=F.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function j(Te){k.length=k.length-2*Te,A.length=A.length-Te,L.length=L.length-Te}o(j,"popStack");function ee(){var Te;return Te=C.pop()||B.lex()||N,typeof Te!="number"&&(Te instanceof Array&&(C=Te,Te=C.pop()),Te=w.symbols_[Te]||Te),Te}o(ee,"lex");for(var q,oe,Q,ue,te,re,J={},K,ae,Z,de;;){if(Q=k[k.length-1],this.defaultActions[Q]?ue=this.defaultActions[Q]:((q===null||typeof q>"u")&&(q=ee()),ue=I[Q]&&I[Q][q]),typeof ue>"u"||!ue.length||!ue[0]){var ne="";de=[];for(K in I[Q])this.terminals_[K]&&K>O&&de.push("'"+this.terminals_[K]+"'");B.showPosition?ne="Parse error on line "+(E+1)+`: +`+B.showPosition()+` +Expecting `+de.join(", ")+", got '"+(this.terminals_[q]||q)+"'":ne="Parse error on line "+(E+1)+": Unexpected "+(q==N?"end of input":"'"+(this.terminals_[q]||q)+"'"),this.parseError(ne,{text:B.match,token:this.terminals_[q]||q,line:B.yylineno,loc:$,expected:de})}if(ue[0]instanceof Array&&ue.length>1)throw new Error("Parse Error: multiple actions possible at state: "+Q+", token: "+q);switch(ue[0]){case 1:k.push(q),A.push(B.yytext),L.push(B.yylloc),k.push(ue[1]),q=null,oe?(q=oe,oe=null):(_=B.yyleng,R=B.yytext,E=B.yylineno,$=B.yylloc,D>0&&D--);break;case 2:if(ae=this.productions_[ue[1]][1],J.$=A[A.length-ae],J._$={first_line:L[L.length-(ae||1)].first_line,last_line:L[L.length-1].last_line,first_column:L[L.length-(ae||1)].first_column,last_column:L[L.length-1].last_column},U&&(J._$.range=[L[L.length-(ae||1)].range[0],L[L.length-1].range[1]]),re=this.performAction.apply(J,[R,_,E,F.yy,ue[1],A,L].concat(P)),typeof re<"u")return re;ae&&(k=k.slice(0,-1*ae*2),A=A.slice(0,-1*ae),L=L.slice(0,-1*ae)),k.push(this.productions_[ue[1]][0]),A.push(J.$),L.push(J._$),Z=I[k[k.length-2]][k[k.length-1]],k.push(Z);break;case 3:return!0}}return!0},"parse")},x=(function(){var T={EOF:1,parseError:o(function(w,k){if(this.yy.parser)this.yy.parser.parseError(w,k);else throw new Error(w)},"parseError"),setInput:o(function(S,w){return this.yy=w||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},"setInput"),input:o(function(){var S=this._input[0];this.yytext+=S,this.yyleng++,this.offset++,this.match+=S,this.matched+=S;var w=S.match(/(?:\r\n?|\n).*/g);return w?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),S},"input"),unput:o(function(S){var w=S.length,k=S.split(/(?:\r\n?|\n)/g);this._input=S+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-w),this.offset-=w;var C=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),k.length-1&&(this.yylineno-=k.length-1);var A=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:k?(k.length===C.length?this.yylloc.first_column:0)+C[C.length-k.length].length-k[0].length:this.yylloc.first_column-w},this.options.ranges&&(this.yylloc.range=[A[0],A[0]+this.yyleng-w]),this.yyleng=this.yytext.length,this},"unput"),more:o(function(){return this._more=!0,this},"more"),reject:o(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},"reject"),less:o(function(S){this.unput(this.match.slice(S))},"less"),pastInput:o(function(){var S=this.matched.substr(0,this.matched.length-this.match.length);return(S.length>20?"...":"")+S.substr(-20).replace(/\n/g,"")},"pastInput"),upcomingInput:o(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,"")},"upcomingInput"),showPosition:o(function(){var S=this.pastInput(),w=new Array(S.length+1).join("-");return S+this.upcomingInput()+` +`+w+"^"},"showPosition"),test_match:o(function(S,w){var k,C,A;if(this.options.backtrack_lexer&&(A={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&&(A.yylloc.range=this.yylloc.range.slice(0))),C=S[0].match(/(?:\r\n?|\n).*/g),C&&(this.yylineno+=C.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:C?C[C.length-1].length-C[C.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],k=this.performAction.call(this,this.yy,this,w,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),k)return k;if(this._backtrack){for(var L in A)this[L]=A[L];return!1}return!1},"test_match"),next:o(function(){if(this.done)return this.EOF;this._input||(this.done=!0);var S,w,k,C;this._more||(this.yytext="",this.match="");for(var A=this._currentRules(),L=0;Lw[0].length)){if(w=k,C=L,this.options.backtrack_lexer){if(S=this.test_match(k,A[L]),S!==!1)return S;if(this._backtrack){w=!1;continue}else return!1}else if(!this.options.flex)break}return w?(S=this.test_match(w,A[C]),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})},"next"),lex:o(function(){var w=this.next();return w||this.lex()},"lex"),begin:o(function(w){this.conditionStack.push(w)},"begin"),popState:o(function(){var w=this.conditionStack.length-1;return w>0?this.conditionStack.pop():this.conditionStack[0]},"popState"),_currentRules:o(function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},"_currentRules"),topState:o(function(w){return w=this.conditionStack.length-1-Math.abs(w||0),w>=0?this.conditionStack[w]:"INITIAL"},"topState"),pushState:o(function(w){this.begin(w)},"pushState"),stateStackSize:o(function(){return this.conditionStack.length},"stateStackSize"),options:{},performAction:o(function(w,k,C,A){var L=A;switch(C){case 0:return w.getLogger().debug("Found block-beta"),10;break;case 1:return w.getLogger().debug("Found id-block"),29;break;case 2:return w.getLogger().debug("Found block"),10;break;case 3:w.getLogger().debug(".",k.yytext);break;case 4:w.getLogger().debug("_",k.yytext);break;case 5:return 5;case 6:return k.yytext=-1,28;break;case 7:return k.yytext=k.yytext.replace(/columns\s+/,""),w.getLogger().debug("COLUMNS (LEX)",k.yytext),28;break;case 8:this.pushState("md_string");break;case 9:return"MD_STR";case 10:this.popState();break;case 11:this.pushState("string");break;case 12:w.getLogger().debug("LEX: POPPING STR:",k.yytext),this.popState();break;case 13:return w.getLogger().debug("LEX: STR end:",k.yytext),"STR";break;case 14:return k.yytext=k.yytext.replace(/space\:/,""),w.getLogger().debug("SPACE NUM (LEX)",k.yytext),21;break;case 15:return k.yytext="1",w.getLogger().debug("COLUMNS (LEX)",k.yytext),21;break;case 16:return 42;case 17:return"LINKSTYLE";case 18:return"INTERPOLATE";case 19:return this.pushState("CLASSDEF"),39;break;case 20:return this.popState(),this.pushState("CLASSDEFID"),"DEFAULT_CLASSDEF_ID";break;case 21:return this.popState(),this.pushState("CLASSDEFID"),40;break;case 22:return this.popState(),41;break;case 23:return this.pushState("CLASS"),43;break;case 24:return this.popState(),this.pushState("CLASS_STYLE"),44;break;case 25:return this.popState(),45;break;case 26:return this.pushState("STYLE_STMNT"),46;break;case 27:return this.popState(),this.pushState("STYLE_DEFINITION"),47;break;case 28:return this.popState(),48;break;case 29:return this.pushState("acc_title"),"acc_title";break;case 30:return this.popState(),"acc_title_value";break;case 31:return this.pushState("acc_descr"),"acc_descr";break;case 32:return this.popState(),"acc_descr_value";break;case 33:this.pushState("acc_descr_multiline");break;case 34:this.popState();break;case 35:return"acc_descr_multiline_value";case 36:return 30;case 37:return this.popState(),w.getLogger().debug("Lex: (("),"NODE_DEND";break;case 38:return this.popState(),w.getLogger().debug("Lex: (("),"NODE_DEND";break;case 39:return this.popState(),w.getLogger().debug("Lex: ))"),"NODE_DEND";break;case 40:return this.popState(),w.getLogger().debug("Lex: (("),"NODE_DEND";break;case 41:return this.popState(),w.getLogger().debug("Lex: (("),"NODE_DEND";break;case 42:return this.popState(),w.getLogger().debug("Lex: (-"),"NODE_DEND";break;case 43:return this.popState(),w.getLogger().debug("Lex: -)"),"NODE_DEND";break;case 44:return this.popState(),w.getLogger().debug("Lex: (("),"NODE_DEND";break;case 45:return this.popState(),w.getLogger().debug("Lex: ]]"),"NODE_DEND";break;case 46:return this.popState(),w.getLogger().debug("Lex: ("),"NODE_DEND";break;case 47:return this.popState(),w.getLogger().debug("Lex: ])"),"NODE_DEND";break;case 48:return this.popState(),w.getLogger().debug("Lex: /]"),"NODE_DEND";break;case 49:return this.popState(),w.getLogger().debug("Lex: /]"),"NODE_DEND";break;case 50:return this.popState(),w.getLogger().debug("Lex: )]"),"NODE_DEND";break;case 51:return this.popState(),w.getLogger().debug("Lex: )"),"NODE_DEND";break;case 52:return this.popState(),w.getLogger().debug("Lex: ]>"),"NODE_DEND";break;case 53:return this.popState(),w.getLogger().debug("Lex: ]"),"NODE_DEND";break;case 54:return w.getLogger().debug("Lexa: -)"),this.pushState("NODE"),35;break;case 55:return w.getLogger().debug("Lexa: (-"),this.pushState("NODE"),35;break;case 56:return w.getLogger().debug("Lexa: ))"),this.pushState("NODE"),35;break;case 57:return w.getLogger().debug("Lexa: )"),this.pushState("NODE"),35;break;case 58:return w.getLogger().debug("Lex: ((("),this.pushState("NODE"),35;break;case 59:return w.getLogger().debug("Lexa: )"),this.pushState("NODE"),35;break;case 60:return w.getLogger().debug("Lexa: )"),this.pushState("NODE"),35;break;case 61:return w.getLogger().debug("Lexa: )"),this.pushState("NODE"),35;break;case 62:return w.getLogger().debug("Lexc: >"),this.pushState("NODE"),35;break;case 63:return w.getLogger().debug("Lexa: (["),this.pushState("NODE"),35;break;case 64:return w.getLogger().debug("Lexa: )"),this.pushState("NODE"),35;break;case 65:return this.pushState("NODE"),35;break;case 66:return this.pushState("NODE"),35;break;case 67:return this.pushState("NODE"),35;break;case 68:return this.pushState("NODE"),35;break;case 69:return this.pushState("NODE"),35;break;case 70:return this.pushState("NODE"),35;break;case 71:return this.pushState("NODE"),35;break;case 72:return w.getLogger().debug("Lexa: ["),this.pushState("NODE"),35;break;case 73:return this.pushState("BLOCK_ARROW"),w.getLogger().debug("LEX ARR START"),37;break;case 74:return w.getLogger().debug("Lex: NODE_ID",k.yytext),31;break;case 75:return w.getLogger().debug("Lex: EOF",k.yytext),8;break;case 76:this.pushState("md_string");break;case 77:this.pushState("md_string");break;case 78:return"NODE_DESCR";case 79:this.popState();break;case 80:w.getLogger().debug("Lex: Starting string"),this.pushState("string");break;case 81:w.getLogger().debug("LEX ARR: Starting string"),this.pushState("string");break;case 82:return w.getLogger().debug("LEX: NODE_DESCR:",k.yytext),"NODE_DESCR";break;case 83:w.getLogger().debug("LEX POPPING"),this.popState();break;case 84:w.getLogger().debug("Lex: =>BAE"),this.pushState("ARROW_DIR");break;case 85:return k.yytext=k.yytext.replace(/^,\s*/,""),w.getLogger().debug("Lex (right): dir:",k.yytext),"DIR";break;case 86:return k.yytext=k.yytext.replace(/^,\s*/,""),w.getLogger().debug("Lex (left):",k.yytext),"DIR";break;case 87:return k.yytext=k.yytext.replace(/^,\s*/,""),w.getLogger().debug("Lex (x):",k.yytext),"DIR";break;case 88:return k.yytext=k.yytext.replace(/^,\s*/,""),w.getLogger().debug("Lex (y):",k.yytext),"DIR";break;case 89:return k.yytext=k.yytext.replace(/^,\s*/,""),w.getLogger().debug("Lex (up):",k.yytext),"DIR";break;case 90:return k.yytext=k.yytext.replace(/^,\s*/,""),w.getLogger().debug("Lex (down):",k.yytext),"DIR";break;case 91:return k.yytext="]>",w.getLogger().debug("Lex (ARROW_DIR end):",k.yytext),this.popState(),this.popState(),"BLOCK_ARROW_END";break;case 92:return w.getLogger().debug("Lex: LINK","#"+k.yytext+"#"),15;break;case 93:return w.getLogger().debug("Lex: LINK",k.yytext),15;break;case 94:return w.getLogger().debug("Lex: LINK",k.yytext),15;break;case 95:return w.getLogger().debug("Lex: LINK",k.yytext),15;break;case 96:return w.getLogger().debug("Lex: START_LINK",k.yytext),this.pushState("LLABEL"),16;break;case 97:return w.getLogger().debug("Lex: START_LINK",k.yytext),this.pushState("LLABEL"),16;break;case 98:return w.getLogger().debug("Lex: START_LINK",k.yytext),this.pushState("LLABEL"),16;break;case 99:this.pushState("md_string");break;case 100:return w.getLogger().debug("Lex: Starting string"),this.pushState("string"),"LINK_LABEL";break;case 101:return this.popState(),w.getLogger().debug("Lex: LINK","#"+k.yytext+"#"),15;break;case 102:return this.popState(),w.getLogger().debug("Lex: LINK",k.yytext),15;break;case 103:return this.popState(),w.getLogger().debug("Lex: LINK",k.yytext),15;break;case 104:return w.getLogger().debug("Lex: COLON",k.yytext),k.yytext=k.yytext.slice(1),27;break}},"anonymous"),rules:[/^(?:block-beta\b)/,/^(?:block:)/,/^(?:block\b)/,/^(?:[\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:[28],inclusive:!1},STYLE_STMNT:{rules:[27],inclusive:!1},CLASSDEFID:{rules:[22],inclusive:!1},CLASSDEF:{rules:[20,21],inclusive:!1},CLASS_STYLE:{rules:[25],inclusive:!1},CLASS:{rules:[24],inclusive:!1},LLABEL:{rules:[99,100,101,102,103],inclusive:!1},ARROW_DIR:{rules:[85,86,87,88,89,90,91],inclusive:!1},BLOCK_ARROW:{rules:[76,81,84],inclusive:!1},NODE:{rules:[37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,77,80],inclusive:!1},md_string:{rules:[9,10,78,79],inclusive:!1},space:{rules:[],inclusive:!1},string:{rules:[12,13,82,83],inclusive:!1},acc_descr_multiline:{rules:[34,35],inclusive:!1},acc_descr:{rules:[32],inclusive:!1},acc_title:{rules:[30],inclusive:!1},INITIAL:{rules:[0,1,2,3,4,5,6,7,8,11,14,15,16,17,18,19,23,26,29,31,33,36,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,92,93,94,95,96,97,98,104],inclusive:!0}}};return T})();v.lexer=x;function b(){this.yy={}}return o(b,"Parser"),b.prototype=v,v.Parser=b,new b})();mz.parser=mz;wbe=mz});function pnt(t){switch(X.debug("typeStr2Type",t),t){case"[]":return"square";case"()":return X.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 mnt(t){switch(X.debug("typeStr2Type",t),t){case"==":return"thick";default:return"normal"}}function gnt(t){switch(t.replace(/^[\s-]+|[\s-]+$/g,"")){case"x":return"arrow_cross";case"o":return"arrow_circle";case">":return"arrow_point";default:return""}}var ql,yz,gz,Ebe,Sbe,ont,Abe,lnt,DC,cnt,unt,hnt,fnt,_be,vz,N4,dnt,Cbe,ynt,vnt,xnt,bnt,Tnt,wnt,knt,Ent,Snt,Cnt,Ant,Dbe,Lbe=M(()=>{"use strict";hR();qn();Xt();pt();gr();ci();ql=new Map,yz=[],gz=new Map,Ebe="color",Sbe="fill",ont="bgFill",Abe=",",lnt=ge(),DC=new Map,cnt=o(t=>tt.sanitizeText(t,lnt),"sanitizeText"),unt=o(function(t,e=""){let r=DC.get(t);r||(r={id:t,styles:[],textStyles:[]},DC.set(t,r)),e?.split(Abe).forEach(n=>{let i=n.replace(/([^;]*);/,"$1").trim();if(RegExp(Ebe).exec(n)){let s=i.replace(Sbe,ont).replace(Ebe,Sbe);r.textStyles.push(s)}r.styles.push(i)})},"addStyleClass"),hnt=o(function(t,e=""){let r=ql.get(t);e!=null&&(r.styles=e.split(Abe))},"addStyle2Node"),fnt=o(function(t,e){t.split(",").forEach(function(r){let n=ql.get(r);if(n===void 0){let i=r.trim();n={id:i,type:"na",children:[]},ql.set(i,n)}n.classes||(n.classes=[]),n.classes.push(e)})},"setCssClass"),_be=o((t,e)=>{let r=t.flat(),n=[],a=r.find(s=>s?.type==="column-setting")?.columns??-1;for(let s of r){if(typeof a=="number"&&a>0&&s.type!=="column-setting"&&typeof s.widthInColumns=="number"&&s.widthInColumns>a&&X.warn(`Block ${s.id} width ${s.widthInColumns} exceeds configured column width ${a}`),s.label&&(s.label=cnt(s.label)),s.type==="classDef"){unt(s.id,s.css);continue}if(s.type==="applyClass"){fnt(s.id,s?.styleClass??"");continue}if(s.type==="applyStyles"){s?.stylesStr&&hnt(s.id,s?.stylesStr);continue}if(s.type==="column-setting")e.columns=s.columns??-1;else if(s.type==="edge"){let l=(gz.get(s.id)??0)+1;gz.set(s.id,l),s.id=l+"-"+s.id,yz.push(s)}else{s.label||(s.type==="composite"?s.label="":s.label=s.id);let l=ql.get(s.id);if(l===void 0?ql.set(s.id,s):(s.type!=="na"&&(l.type=s.type),s.label!==s.id&&(l.label=s.label)),s.children&&_be(s.children,s),s.type==="space"){let u=s.width??1;for(let h=0;h{X.debug("Clear called"),Sr(),N4={id:"root",type:"composite",children:[],columns:-1},ql=new Map([["root",N4]]),vz=[],DC=new Map,yz=[],gz=new Map},"clear");o(pnt,"typeStr2Type");o(mnt,"edgeTypeStr2Type");o(gnt,"edgeStrToEdgeData");Cbe=0,ynt=o(()=>(Cbe++,"id-"+Math.random().toString(36).substr(2,12)+"-"+Cbe),"generateId"),vnt=o(t=>{N4.children=t,_be(t,N4),vz=N4.children},"setHierarchy"),xnt=o(t=>{let e=ql.get(t);return e?e.columns?e.columns:e.children?e.children.length:-1:-1},"getColumns"),bnt=o(()=>[...ql.values()],"getBlocksFlat"),Tnt=o(()=>vz||[],"getBlocks"),wnt=o(()=>yz,"getEdges"),knt=o(t=>ql.get(t),"getBlock"),Ent=o(t=>{ql.set(t.id,t)},"setBlock"),Snt=o(()=>X,"getLogger"),Cnt=o(function(){return DC},"getClasses"),Ant={getConfig:o(()=>Qt().block,"getConfig"),typeStr2Type:pnt,edgeTypeStr2Type:mnt,edgeStrToEdgeData:gnt,getLogger:Snt,getBlocksFlat:bnt,getBlocks:Tnt,getEdges:wnt,setHierarchy:vnt,getBlock:knt,setBlock:Ent,getColumns:xnt,getClasses:Cnt,clear:dnt,generateId:ynt},Dbe=Ant});var LC,_nt,Rbe,Nbe=M(()=>{"use strict";eo();yg();LC=o((t,e)=>{let r=ld,n=r(t,"r"),i=r(t,"g"),a=r(t,"b");return Ka(n,i,a,e)},"fade"),_nt=o(t=>`.label { + font-family: ${t.fontFamily}; + color: ${t.nodeTextColor||t.textColor}; + } + .cluster-label text { + fill: ${t.titleColor}; + } + .cluster-label span,p { + color: ${t.titleColor}; + } + + + + .label text,span,p { + fill: ${t.nodeTextColor||t.textColor}; + color: ${t.nodeTextColor||t.textColor}; + } + + .node rect, + .node circle, + .node ellipse, + .node polygon, + .node path { + fill: ${t.mainBkg}; + stroke: ${t.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: ${t.arrowheadColor}; + } + + .edgePath .path { + stroke: ${t.lineColor}; + stroke-width: 2.0px; + } + + .flowchart-link { + stroke: ${t.lineColor}; + fill: none; + } + + .edgeLabel { + background-color: ${t.edgeLabelBackground}; + rect { + opacity: 0.5; + background-color: ${t.edgeLabelBackground}; + fill: ${t.edgeLabelBackground}; + } + text-align: center; + } + + /* For html labels only */ + .labelBkg { + background-color: ${LC(t.edgeLabelBackground,.5)}; + // background-color: + } + + .node .cluster { + // fill: ${LC(t.mainBkg,.5)}; + fill: ${LC(t.clusterBkg,.5)}; + stroke: ${LC(t.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: ${t.titleColor}; + } + + .cluster span,p { + color: ${t.titleColor}; + } + /* .cluster div { + color: ${t.titleColor}; + } */ + + div.mermaidTooltip { + position: absolute; + text-align: center; + max-width: 200px; + padding: 2px; + font-family: ${t.fontFamily}; + font-size: 12px; + background: ${t.tertiaryColor}; + border: 1px solid ${t.border2}; + border-radius: 2px; + pointer-events: none; + z-index: 100; + } + + .flowchartTitleText { + text-anchor: middle; + font-size: 18px; + fill: ${t.textColor}; + } + ${zc()} +`,"getStyles"),Rbe=_nt});var Dnt,Lnt,Rnt,Nnt,Mnt,Int,Ont,Pnt,Bnt,Fnt,$nt,Mbe,Ibe=M(()=>{"use strict";pt();Dnt=o((t,e,r,n)=>{e.forEach(i=>{$nt[i](t,r,n)})},"insertMarkers"),Lnt=o((t,e,r)=>{X.trace("Making markers for ",r),t.append("defs").append("marker").attr("id",r+"_"+e+"-extensionStart").attr("class","marker extension "+e).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"),t.append("defs").append("marker").attr("id",r+"_"+e+"-extensionEnd").attr("class","marker extension "+e).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")},"extension"),Rnt=o((t,e,r)=>{t.append("defs").append("marker").attr("id",r+"_"+e+"-compositionStart").attr("class","marker composition "+e).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"),t.append("defs").append("marker").attr("id",r+"_"+e+"-compositionEnd").attr("class","marker composition "+e).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")},"composition"),Nnt=o((t,e,r)=>{t.append("defs").append("marker").attr("id",r+"_"+e+"-aggregationStart").attr("class","marker aggregation "+e).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"),t.append("defs").append("marker").attr("id",r+"_"+e+"-aggregationEnd").attr("class","marker aggregation "+e).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")},"aggregation"),Mnt=o((t,e,r)=>{t.append("defs").append("marker").attr("id",r+"_"+e+"-dependencyStart").attr("class","marker dependency "+e).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"),t.append("defs").append("marker").attr("id",r+"_"+e+"-dependencyEnd").attr("class","marker dependency "+e).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")},"dependency"),Int=o((t,e,r)=>{t.append("defs").append("marker").attr("id",r+"_"+e+"-lollipopStart").attr("class","marker lollipop "+e).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),t.append("defs").append("marker").attr("id",r+"_"+e+"-lollipopEnd").attr("class","marker lollipop "+e).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)},"lollipop"),Ont=o((t,e,r)=>{t.append("marker").attr("id",r+"_"+e+"-pointEnd").attr("class","marker "+e).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"),t.append("marker").attr("id",r+"_"+e+"-pointStart").attr("class","marker "+e).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")},"point"),Pnt=o((t,e,r)=>{t.append("marker").attr("id",r+"_"+e+"-circleEnd").attr("class","marker "+e).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"),t.append("marker").attr("id",r+"_"+e+"-circleStart").attr("class","marker "+e).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")},"circle"),Bnt=o((t,e,r)=>{t.append("marker").attr("id",r+"_"+e+"-crossEnd").attr("class","marker cross "+e).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"),t.append("marker").attr("id",r+"_"+e+"-crossStart").attr("class","marker cross "+e).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")},"cross"),Fnt=o((t,e,r)=>{t.append("defs").append("marker").attr("id",r+"_"+e+"-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")},"barb"),$nt={extension:Lnt,composition:Rnt,aggregation:Nnt,dependency:Mnt,lollipop:Int,point:Ont,circle:Pnt,cross:Bnt,barb:Fnt},Mbe=Dnt});function znt(t,e){if(t===0||!Number.isInteger(t))throw new Error("Columns must be an integer !== 0.");if(e<0||!Number.isInteger(e))throw new Error("Position must be a non-negative integer."+e);if(t<0)return{px:e,py:0};if(t===1)return{px:0,py:e};let r=e%t,n=Math.floor(e/t);return{px:r,py:n}}function xz(t,e,r=0,n=0){X.debug("setBlockSizes abc95 (start)",t.id,t?.size?.x,"block width =",t?.size,"siblingWidth",r),t?.size?.width||(t.size={width:r,height:n,x:0,y:0});let i=0,a=0;if(t.children?.length>0){for(let m of t.children)xz(m,e);let s=Gnt(t);i=s.width,a=s.height,X.debug("setBlockSizes abc95 maxWidth of",t.id,":s children is ",i,a);for(let m of t.children)m.size&&(X.debug(`abc95 Setting size of children of ${t.id} id=${m.id} ${i} ${a} ${JSON.stringify(m.size)}`),m.size.width=i*(m.widthInColumns??1)+Ti*((m.widthInColumns??1)-1),m.size.height=a,m.size.x=0,m.size.y=0,X.debug(`abc95 updating size of ${t.id} children child:${m.id} maxWidth:${i} maxHeight:${a}`));for(let m of t.children)xz(m,e,i,a);let l=t.columns??-1,u=0;for(let m of t.children)u+=m.widthInColumns??1;let h=t.children.length;l>0&&l0?Math.min(t.children.length,l):t.children.length;if(m>0){let g=(d-m*Ti-Ti)/m;X.debug("abc95 (growing to fit) width",t.id,d,t.size?.width,g);for(let y of t.children)y.size&&(y.size.width=g)}}t.size={width:d,height:p,x:0,y:0}}X.debug("setBlockSizes abc94 (done)",t.id,t?.size?.x,t?.size?.width,t?.size?.y,t?.size?.height)}function Obe(t,e){X.debug(`abc85 layout blocks (=>layoutBlocks) ${t.id} x: ${t?.size?.x} y: ${t?.size?.y} width: ${t?.size?.width}`);let r=t.columns??-1;if(X.debug("layoutBlocks columns abc95",t.id,"=>",r,t),t.children&&t.children.length>0){let n=t?.children[0]?.size?.width??0,i=t.children.length*n+(t.children.length-1)*Ti;X.debug("widthOfChildren 88",i,"posX");let a=0;X.debug("abc91 block?.size?.x",t.id,t?.size?.x);let s=t?.size?.x?t?.size?.x+(-t?.size?.width/2||0):-Ti,l=0;for(let u of t.children){let h=t;if(!u.size)continue;let{width:f,height:d}=u.size,{px:p,py:m}=znt(r,a);if(m!=l&&(l=m,s=t?.size?.x?t?.size?.x+(-t?.size?.width/2||0):-Ti,X.debug("New row in layout for block",t.id," and child ",u.id,l)),X.debug(`abc89 layout blocks (child) id: ${u.id} Pos: ${a} (px, py) ${p},${m} (${h?.size?.x},${h?.size?.y}) parent: ${h.id} width: ${f}${Ti}`),h.size){let y=f/2;u.size.x=s+Ti+y,X.debug(`abc91 layout blocks (calc) px, pyid:${u.id} startingPos=X${s} new startingPosX${u.size.x} ${y} padding=${Ti} width=${f} halfWidth=${y} => x:${u.size.x} y:${u.size.y} ${u.widthInColumns} (width * (child?.w || 1)) / 2 ${f*(u?.widthInColumns??1)/2}`),s=u.size.x+y,u.size.y=h.size.y-h.size.height/2+m*(d+Ti)+d/2+Ti,X.debug(`abc88 layout blocks (calc) px, pyid:${u.id}startingPosX${s}${Ti}${y}=>x:${u.size.x}y:${u.size.y}${u.widthInColumns}(width * (child?.w || 1)) / 2${f*(u?.widthInColumns??1)/2}`)}u.children&&Obe(u,e);let g=u?.widthInColumns??1;r>0&&(g=Math.min(g,r-a%r)),a+=g,X.debug("abc88 columnsPos",u,a)}}X.debug(`layout blocks (<==layoutBlocks) ${t.id} x: ${t?.size?.x} y: ${t?.size?.y} width: ${t?.size?.width}`)}function Pbe(t,{minX:e,minY:r,maxX:n,maxY:i}={minX:0,minY:0,maxX:0,maxY:0}){if(t.size&&t.id!=="root"){let{x:a,y:s,width:l,height:u}=t.size;a-l/2n&&(n=a+l/2),s+u/2>i&&(i=s+u/2)}if(t.children)for(let a of t.children)({minX:e,minY:r,maxX:n,maxY:i}=Pbe(a,{minX:e,minY:r,maxX:n,maxY:i}));return{minX:e,minY:r,maxX:n,maxY:i}}function Bbe(t){let e=t.getBlock("root");if(!e)return;xz(e,t,0,0),Obe(e,t),X.debug("getBlocks",JSON.stringify(e,null,2));let{minX:r,minY:n,maxX:i,maxY:a}=Pbe(e),s=a-n,l=i-r;return{x:r,y:n,width:l,height:s}}var Ti,Gnt,Fbe=M(()=>{"use strict";pt();Xt();Ti=ge()?.block?.padding??8;o(znt,"calculateBlockPosition");Gnt=o(t=>{let e=0,r=0;for(let n of t.children){let{width:i,height:a,x:s,y:l}=n.size??{width:0,height:0,x:0,y:0};X.debug("getMaxChildSize abc95 child:",n.id,"width:",i,"height:",a,"x:",s,"y:",l,n.type),n.type!=="space"&&(i>e&&(e=i/(t.widthInColumns??1)),a>r&&(r=a))}return{width:e,height:r}},"getMaxChildSize");o(xz,"setBlockSizes");o(Obe,"layoutBlocks");o(Pbe,"findBounds");o(Bbe,"layout")});function $be(t,e){e&&t.attr("style",e)}function Vnt(t,e){let r=qe(document.createElementNS("http://www.w3.org/2000/svg","foreignObject")),n=r.append("xhtml:div"),i=t.label,a=t.isNode?"nodeLabel":"edgeLabel",s=n.append("span");return s.html(sr(i,e)),$be(s,t.labelStyle),s.attr("class",a),$be(n,t.labelStyle),n.style("display","inline-block"),n.style("white-space","nowrap"),n.attr("xmlns","http://www.w3.org/1999/xhtml"),r.node()}var Unt,ks,RC=M(()=>{"use strict";yr();Xt();gr();pt();zo();tr();o($be,"applyStyle");o(Vnt,"addHtmlLabel");Unt=o(async(t,e,r,n)=>{let i=t||"";typeof i=="object"&&(i=i[0]);let a=ge();if(vr(a.flowchart.htmlLabels)){i=i.replace(/\\n|\n/g,"
    "),X.debug("vertexText"+i);let s=await k9(Ji(i)),l={isNode:n,label:s,labelStyle:e.replace("fill:","color:")};return Vnt(l,a)}else{let s=document.createElementNS("http://www.w3.org/2000/svg","text");s.setAttribute("style",e.replace("color:","fill:"));let l=[];typeof i=="string"?l=i.split(/\\n|\n|/gi):Array.isArray(i)?l=i:l=[];for(let u of l){let h=document.createElementNS("http://www.w3.org/2000/svg","tspan");h.setAttributeNS("http://www.w3.org/XML/1998/namespace","xml:space","preserve"),h.setAttribute("dy","1em"),h.setAttribute("x","0"),r?h.setAttribute("class","title-row"):h.setAttribute("class","row"),h.textContent=u.trim(),s.appendChild(h)}return s}},"createLabel"),ks=Unt});var Gbe,Hnt,zbe,Vbe=M(()=>{"use strict";pt();Gbe=o((t,e,r,n,i)=>{e.arrowTypeStart&&zbe(t,"start",e.arrowTypeStart,r,n,i),e.arrowTypeEnd&&zbe(t,"end",e.arrowTypeEnd,r,n,i)},"addEdgeMarkers"),Hnt={arrow_cross:"cross",arrow_point:"point",arrow_barb:"barb",arrow_circle:"circle",aggregation:"aggregation",extension:"extension",composition:"composition",dependency:"dependency",lollipop:"lollipop"},zbe=o((t,e,r,n,i,a)=>{let s=Hnt[r];if(!s){X.warn(`Unknown arrow type: ${r}`);return}let l=e==="start"?"Start":"End";t.attr(`marker-${e}`,`url(${n}#${i}_${a}-${s}${l})`)},"addEdgeMarker")});function NC(t,e){ge().flowchart.htmlLabels&&t&&(t.style.width=e.length*9+"px",t.style.height="12px")}var bz,Ya,Hbe,qbe,qnt,Wnt,Ube,Wbe,Ybe=M(()=>{"use strict";pt();RC();zo();yr();Xt();tr();gr();X9();P2();Vbe();bz={},Ya={},Hbe=o(async(t,e)=>{let r=ge(),n=vr(r.flowchart.htmlLabels),i=e.labelType==="markdown"?di(t,e.label,{style:e.labelStyle,useHtmlLabels:n,addSvgBackground:!0},r):await ks(e.label,e.labelStyle),a=t.insert("g").attr("class","edgeLabel"),s=a.insert("g").attr("class","label");s.node().appendChild(i);let l=i.getBBox();if(n){let h=i.children[0],f=qe(i);l=h.getBoundingClientRect(),f.attr("width",l.width),f.attr("height",l.height)}s.attr("transform","translate("+-l.width/2+", "+-l.height/2+")"),bz[e.id]=a,e.width=l.width,e.height=l.height;let u;if(e.startLabelLeft){let h=await ks(e.startLabelLeft,e.labelStyle),f=t.insert("g").attr("class","edgeTerminals"),d=f.insert("g").attr("class","inner");u=d.node().appendChild(h);let p=h.getBBox();d.attr("transform","translate("+-p.width/2+", "+-p.height/2+")"),Ya[e.id]||(Ya[e.id]={}),Ya[e.id].startLeft=f,NC(u,e.startLabelLeft)}if(e.startLabelRight){let h=await ks(e.startLabelRight,e.labelStyle),f=t.insert("g").attr("class","edgeTerminals"),d=f.insert("g").attr("class","inner");u=f.node().appendChild(h),d.node().appendChild(h);let p=h.getBBox();d.attr("transform","translate("+-p.width/2+", "+-p.height/2+")"),Ya[e.id]||(Ya[e.id]={}),Ya[e.id].startRight=f,NC(u,e.startLabelRight)}if(e.endLabelLeft){let h=await ks(e.endLabelLeft,e.labelStyle),f=t.insert("g").attr("class","edgeTerminals"),d=f.insert("g").attr("class","inner");u=d.node().appendChild(h);let p=h.getBBox();d.attr("transform","translate("+-p.width/2+", "+-p.height/2+")"),f.node().appendChild(h),Ya[e.id]||(Ya[e.id]={}),Ya[e.id].endLeft=f,NC(u,e.endLabelLeft)}if(e.endLabelRight){let h=await ks(e.endLabelRight,e.labelStyle),f=t.insert("g").attr("class","edgeTerminals"),d=f.insert("g").attr("class","inner");u=d.node().appendChild(h);let p=h.getBBox();d.attr("transform","translate("+-p.width/2+", "+-p.height/2+")"),f.node().appendChild(h),Ya[e.id]||(Ya[e.id]={}),Ya[e.id].endRight=f,NC(u,e.endLabelRight)}return i},"insertEdgeLabel");o(NC,"setTerminalWidth");qbe=o((t,e)=>{X.debug("Moving label abc88 ",t.id,t.label,bz[t.id],e);let r=e.updatedPath?e.updatedPath:e.originalPath,n=ge(),{subGraphTitleTotalMargin:i}=Pu(n);if(t.label){let a=bz[t.id],s=t.x,l=t.y;if(r){let u=qt.calcLabelPosition(r);X.debug("Moving label "+t.label+" from (",s,",",l,") to (",u.x,",",u.y,") abc88"),e.updatedPath&&(s=u.x,l=u.y)}a.attr("transform",`translate(${s}, ${l+i/2})`)}if(t.startLabelLeft){let a=Ya[t.id].startLeft,s=t.x,l=t.y;if(r){let u=qt.calcTerminalLabelPosition(t.arrowTypeStart?10:0,"start_left",r);s=u.x,l=u.y}a.attr("transform",`translate(${s}, ${l})`)}if(t.startLabelRight){let a=Ya[t.id].startRight,s=t.x,l=t.y;if(r){let u=qt.calcTerminalLabelPosition(t.arrowTypeStart?10:0,"start_right",r);s=u.x,l=u.y}a.attr("transform",`translate(${s}, ${l})`)}if(t.endLabelLeft){let a=Ya[t.id].endLeft,s=t.x,l=t.y;if(r){let u=qt.calcTerminalLabelPosition(t.arrowTypeEnd?10:0,"end_left",r);s=u.x,l=u.y}a.attr("transform",`translate(${s}, ${l})`)}if(t.endLabelRight){let a=Ya[t.id].endRight,s=t.x,l=t.y;if(r){let u=qt.calcTerminalLabelPosition(t.arrowTypeEnd?10:0,"end_right",r);s=u.x,l=u.y}a.attr("transform",`translate(${s}, ${l})`)}},"positionEdgeLabel"),qnt=o((t,e)=>{let r=t.x,n=t.y,i=Math.abs(e.x-r),a=Math.abs(e.y-n),s=t.width/2,l=t.height/2;return i>=s||a>=l},"outsideNode"),Wnt=o((t,e,r)=>{X.debug(`intersection calc abc89: + outsidePoint: ${JSON.stringify(e)} + insidePoint : ${JSON.stringify(r)} + node : x:${t.x} y:${t.y} w:${t.width} h:${t.height}`);let n=t.x,i=t.y,a=Math.abs(n-r.x),s=t.width/2,l=r.xMath.abs(n-e.x)*u){let d=r.y{X.debug("abc88 cutPathAtIntersect",t,e);let r=[],n=t[0],i=!1;return t.forEach(a=>{if(!qnt(e,a)&&!i){let s=Wnt(e,n,a),l=!1;r.forEach(u=>{l=l||u.x===s.x&&u.y===s.y}),r.some(u=>u.x===s.x&&u.y===s.y)||r.push(s),i=!0}else n=a,i||r.push(a)}),r},"cutPathAtIntersect"),Wbe=o(function(t,e,r,n,i,a,s){let l=r.points;X.debug("abc88 InsertEdge: edge=",r,"e=",e);let u=!1,h=a.node(e.v);var f=a.node(e.w);f?.intersect&&h?.intersect&&(l=l.slice(1,r.points.length-1),l.unshift(h.intersect(l[0])),l.push(f.intersect(l[l.length-1]))),r.toCluster&&(X.debug("to cluster abc88",n[r.toCluster]),l=Ube(r.points,n[r.toCluster].node),u=!0),r.fromCluster&&(X.debug("from cluster abc88",n[r.fromCluster]),l=Ube(l.reverse(),n[r.fromCluster].node).reverse(),u=!0);let d=l.filter(S=>!Number.isNaN(S.y)),p=No;r.curve&&(i==="graph"||i==="flowchart")&&(p=r.curve);let{x:m,y:g}=fw(r),y=Cl().x(m).y(g).curve(p),v;switch(r.thickness){case"normal":v="edge-thickness-normal";break;case"thick":v="edge-thickness-thick";break;case"invisible":v="edge-thickness-thick";break;default:v=""}switch(r.pattern){case"solid":v+=" edge-pattern-solid";break;case"dotted":v+=" edge-pattern-dotted";break;case"dashed":v+=" edge-pattern-dashed";break}let x=t.append("path").attr("d",y(d)).attr("id",r.id).attr("class"," "+v+(r.classes?" "+r.classes:"")).attr("style",r.style),b="";(ge().flowchart.arrowMarkerAbsolute||ge().state.arrowMarkerAbsolute)&&(b=md(!0)),Gbe(x,r,b,s,i);let T={};return u&&(T.updatedPath=l),T.originalPath=r.points,T},"insertEdge")});var Ynt,Xbe,jbe=M(()=>{"use strict";Ynt=o(t=>{let e=new Set;for(let r of t)switch(r){case"x":e.add("right"),e.add("left");break;case"y":e.add("up"),e.add("down");break;default:e.add(r);break}return e},"expandAndDeduplicateDirections"),Xbe=o((t,e,r)=>{let n=Ynt(t),i=2,a=e.height+2*r.padding,s=a/i,l=e.width+2*s+r.padding,u=r.padding/2;return n.has("right")&&n.has("left")&&n.has("up")&&n.has("down")?[{x:0,y:0},{x:s,y:0},{x:l/2,y:2*u},{x:l-s,y:0},{x:l,y:0},{x:l,y:-a/3},{x:l+2*u,y:-a/2},{x:l,y:-2*a/3},{x:l,y:-a},{x:l-s,y:-a},{x:l/2,y:-a-2*u},{x:s,y:-a},{x:0,y:-a},{x:0,y:-2*a/3},{x:-2*u,y:-a/2},{x:0,y:-a/3}]:n.has("right")&&n.has("left")&&n.has("up")?[{x:s,y:0},{x:l-s,y:0},{x:l,y:-a/2},{x:l-s,y:-a},{x:s,y:-a},{x:0,y:-a/2}]:n.has("right")&&n.has("left")&&n.has("down")?[{x:0,y:0},{x:s,y:-a},{x:l-s,y:-a},{x:l,y:0}]:n.has("right")&&n.has("up")&&n.has("down")?[{x:0,y:0},{x:l,y:-s},{x:l,y:-a+s},{x:0,y:-a}]:n.has("left")&&n.has("up")&&n.has("down")?[{x:l,y:0},{x:0,y:-s},{x:0,y:-a+s},{x:l,y:-a}]:n.has("right")&&n.has("left")?[{x:s,y:0},{x:s,y:-u},{x:l-s,y:-u},{x:l-s,y:0},{x:l,y:-a/2},{x:l-s,y:-a},{x:l-s,y:-a+u},{x:s,y:-a+u},{x:s,y:-a},{x:0,y:-a/2}]:n.has("up")&&n.has("down")?[{x:l/2,y:0},{x:0,y:-u},{x:s,y:-u},{x:s,y:-a+u},{x:0,y:-a+u},{x:l/2,y:-a},{x:l,y:-a+u},{x:l-s,y:-a+u},{x:l-s,y:-u},{x:l,y:-u}]:n.has("right")&&n.has("up")?[{x:0,y:0},{x:l,y:-s},{x:0,y:-a}]:n.has("right")&&n.has("down")?[{x:0,y:0},{x:l,y:0},{x:0,y:-a}]:n.has("left")&&n.has("up")?[{x:l,y:0},{x:0,y:-s},{x:l,y:-a}]:n.has("left")&&n.has("down")?[{x:l,y:0},{x:0,y:0},{x:l,y:-a}]:n.has("right")?[{x:s,y:-u},{x:s,y:-u},{x:l-s,y:-u},{x:l-s,y:0},{x:l,y:-a/2},{x:l-s,y:-a},{x:l-s,y:-a+u},{x:s,y:-a+u},{x:s,y:-a+u}]:n.has("left")?[{x:s,y:0},{x:s,y:-u},{x:l-s,y:-u},{x:l-s,y:-a+u},{x:s,y:-a+u},{x:s,y:-a},{x:0,y:-a/2}]:n.has("up")?[{x:s,y:-u},{x:s,y:-a+u},{x:0,y:-a+u},{x:l/2,y:-a},{x:l,y:-a+u},{x:l-s,y:-a+u},{x:l-s,y:-u}]:n.has("down")?[{x:l/2,y:0},{x:0,y:-u},{x:s,y:-u},{x:s,y:-a+u},{x:l-s,y:-a+u},{x:l-s,y:-u},{x:l,y:-u}]:[{x:0,y:0}]},"getArrowPoints")});function Xnt(t,e){return t.intersect(e)}var Kbe,Qbe=M(()=>{"use strict";o(Xnt,"intersectNode");Kbe=Xnt});function jnt(t,e,r,n){var i=t.x,a=t.y,s=i-n.x,l=a-n.y,u=Math.sqrt(e*e*l*l+r*r*s*s),h=Math.abs(e*r*s/u);n.x{"use strict";o(jnt,"intersectEllipse");MC=jnt});function Knt(t,e,r){return MC(t,e,e,r)}var Zbe,Jbe=M(()=>{"use strict";Tz();o(Knt,"intersectCircle");Zbe=Knt});function Qnt(t,e,r,n){var i,a,s,l,u,h,f,d,p,m,g,y,v,x,b;if(i=e.y-t.y,s=t.x-e.x,u=e.x*t.y-t.x*e.y,p=i*r.x+s*r.y+u,m=i*n.x+s*n.y+u,!(p!==0&&m!==0&&e4e(p,m))&&(a=n.y-r.y,l=r.x-n.x,h=n.x*r.y-r.x*n.y,f=a*t.x+l*t.y+h,d=a*e.x+l*e.y+h,!(f!==0&&d!==0&&e4e(f,d))&&(g=i*l-a*s,g!==0)))return y=Math.abs(g/2),v=s*h-l*u,x=v<0?(v-y)/g:(v+y)/g,v=a*u-i*h,b=v<0?(v-y)/g:(v+y)/g,{x,y:b}}function e4e(t,e){return t*e>0}var t4e,r4e=M(()=>{"use strict";o(Qnt,"intersectLine");o(e4e,"sameSign");t4e=Qnt});function Znt(t,e,r){var n=t.x,i=t.y,a=[],s=Number.POSITIVE_INFINITY,l=Number.POSITIVE_INFINITY;typeof e.forEach=="function"?e.forEach(function(g){s=Math.min(s,g.x),l=Math.min(l,g.y)}):(s=Math.min(s,e.x),l=Math.min(l,e.y));for(var u=n-t.width/2-s,h=i-t.height/2-l,f=0;f1&&a.sort(function(g,y){var v=g.x-r.x,x=g.y-r.y,b=Math.sqrt(v*v+x*x),T=y.x-r.x,S=y.y-r.y,w=Math.sqrt(T*T+S*S);return b{"use strict";r4e();n4e=Znt;o(Znt,"intersectPolygon")});var Jnt,a4e,s4e=M(()=>{"use strict";Jnt=o((t,e)=>{var r=t.x,n=t.y,i=e.x-r,a=e.y-n,s=t.width/2,l=t.height/2,u,h;return Math.abs(a)*s>Math.abs(i)*l?(a<0&&(l=-l),u=a===0?0:l*i/a,h=l):(i<0&&(s=-s),u=s,h=i===0?0:s*a/i),{x:r+u,y:n+h}},"intersectRect"),a4e=Jnt});var $n,wz=M(()=>{"use strict";Qbe();Jbe();Tz();i4e();s4e();$n={node:Kbe,circle:Zbe,ellipse:MC,polygon:n4e,rect:a4e}});function Wl(t,e,r,n){return t.insert("polygon",":first-child").attr("points",n.map(function(i){return i.x+","+i.y}).join(" ")).attr("class","label-container").attr("transform","translate("+-e/2+","+r/2+")")}var Li,ti,kz=M(()=>{"use strict";RC();zo();Xt();yr();gr();tr();Li=o(async(t,e,r,n)=>{let i=ge(),a,s=e.useHtmlLabels||vr(i.flowchart.htmlLabels);r?a=r:a="node default";let l=t.insert("g").attr("class",a).attr("id",e.domId||e.id),u=l.insert("g").attr("class","label").attr("style",e.labelStyle),h;e.labelText===void 0?h="":h=typeof e.labelText=="string"?e.labelText:e.labelText[0];let f=u.node(),d;e.labelType==="markdown"?d=di(u,sr(Ji(h),i),{useHtmlLabels:s,width:e.width||i.flowchart.wrappingWidth,classes:"markdown-node-label"},i):d=f.appendChild(await ks(sr(Ji(h),i),e.labelStyle,!1,n));let p=d.getBBox(),m=e.padding/2;if(vr(i.flowchart.htmlLabels)){let g=d.children[0],y=qe(d),v=g.getElementsByTagName("img");if(v){let x=h.replace(/]*>/g,"").trim()==="";await Promise.all([...v].map(b=>new Promise(T=>{function S(){if(b.style.display="flex",b.style.flexDirection="column",x){let w=i.fontSize?i.fontSize:window.getComputedStyle(document.body).fontSize,C=parseInt(w,10)*5+"px";b.style.minWidth=C,b.style.maxWidth=C}else b.style.width="100%";T(b)}o(S,"setupImage"),setTimeout(()=>{b.complete&&S()}),b.addEventListener("error",S),b.addEventListener("load",S)})))}p=g.getBoundingClientRect(),y.attr("width",p.width),y.attr("height",p.height)}return s?u.attr("transform","translate("+-p.width/2+", "+-p.height/2+")"):u.attr("transform","translate(0, "+-p.height/2+")"),e.centerLabel&&u.attr("transform","translate("+-p.width/2+", "+-p.height/2+")"),u.insert("rect",":first-child"),{shapeSvg:l,bbox:p,halfPadding:m,label:u}},"labelHelper"),ti=o((t,e)=>{let r=e.node().getBBox();t.width=r.width,t.height=r.height},"updateNodeBounds");o(Wl,"insertPolygonShape")});var eit,o4e,l4e=M(()=>{"use strict";kz();pt();Xt();wz();eit=o(async(t,e)=>{e.useHtmlLabels||ge().flowchart.htmlLabels||(e.centerLabel=!0);let{shapeSvg:n,bbox:i,halfPadding:a}=await Li(t,e,"node "+e.classes,!0);X.info("Classes = ",e.classes);let s=n.insert("rect",":first-child");return s.attr("rx",e.rx).attr("ry",e.ry).attr("x",-i.width/2-a).attr("y",-i.height/2-a).attr("width",i.width+e.padding).attr("height",i.height+e.padding),ti(e,s),e.intersect=function(l){return $n.rect(e,l)},n},"note"),o4e=eit});function Ez(t,e,r,n){let i=[],a=o(l=>{i.push(l,0)},"addBorder"),s=o(l=>{i.push(0,l)},"skipBorder");e.includes("t")?(X.debug("add top border"),a(r)):s(r),e.includes("r")?(X.debug("add right border"),a(n)):s(n),e.includes("b")?(X.debug("add bottom border"),a(r)):s(r),e.includes("l")?(X.debug("add left border"),a(n)):s(n),t.attr("stroke-dasharray",i.join(" "))}var c4e,To,u4e,tit,rit,nit,iit,ait,sit,oit,lit,cit,uit,hit,fit,dit,pit,mit,git,yit,vit,xit,h4e,bit,Tit,f4e,IC,Sz,d4e,p4e=M(()=>{"use strict";yr();Xt();gr();pt();jbe();RC();wz();l4e();kz();c4e=o(t=>t?" "+t:"","formatClass"),To=o((t,e)=>`${e||"node default"}${c4e(t.classes)} ${c4e(t.class)}`,"getClassesFromNode"),u4e=o(async(t,e)=>{let{shapeSvg:r,bbox:n}=await Li(t,e,To(e,void 0),!0),i=n.width+e.padding,a=n.height+e.padding,s=i+a,l=[{x:s/2,y:0},{x:s,y:-s/2},{x:s/2,y:-s},{x:0,y:-s/2}];X.info("Question main (Circle)");let u=Wl(r,s,s,l);return u.attr("style",e.style),ti(e,u),e.intersect=function(h){return X.warn("Intersect called"),$n.polygon(e,l,h)},r},"question"),tit=o((t,e)=>{let r=t.insert("g").attr("class","node default").attr("id",e.domId||e.id),n=28,i=[{x:0,y:n/2},{x:n/2,y:0},{x:0,y:-n/2},{x:-n/2,y:0}];return r.insert("polygon",":first-child").attr("points",i.map(function(s){return s.x+","+s.y}).join(" ")).attr("class","state-start").attr("r",7).attr("width",28).attr("height",28),e.width=28,e.height=28,e.intersect=function(s){return $n.circle(e,14,s)},r},"choice"),rit=o(async(t,e)=>{let{shapeSvg:r,bbox:n}=await Li(t,e,To(e,void 0),!0),i=4,a=n.height+e.padding,s=a/i,l=n.width+2*s+e.padding,u=[{x:s,y:0},{x:l-s,y:0},{x:l,y:-a/2},{x:l-s,y:-a},{x:s,y:-a},{x:0,y:-a/2}],h=Wl(r,l,a,u);return h.attr("style",e.style),ti(e,h),e.intersect=function(f){return $n.polygon(e,u,f)},r},"hexagon"),nit=o(async(t,e)=>{let{shapeSvg:r,bbox:n}=await Li(t,e,void 0,!0),i=2,a=n.height+2*e.padding,s=a/i,l=n.width+2*s+e.padding,u=Xbe(e.directions,n,e),h=Wl(r,l,a,u);return h.attr("style",e.style),ti(e,h),e.intersect=function(f){return $n.polygon(e,u,f)},r},"block_arrow"),iit=o(async(t,e)=>{let{shapeSvg:r,bbox:n}=await Li(t,e,To(e,void 0),!0),i=n.width+e.padding,a=n.height+e.padding,s=[{x:-a/2,y:0},{x:i,y:0},{x:i,y:-a},{x:-a/2,y:-a},{x:0,y:-a/2}];return Wl(r,i,a,s).attr("style",e.style),e.width=i+a,e.height=a,e.intersect=function(u){return $n.polygon(e,s,u)},r},"rect_left_inv_arrow"),ait=o(async(t,e)=>{let{shapeSvg:r,bbox:n}=await Li(t,e,To(e),!0),i=n.width+e.padding,a=n.height+e.padding,s=[{x:-2*a/6,y:0},{x:i-a/6,y:0},{x:i+2*a/6,y:-a},{x:a/6,y:-a}],l=Wl(r,i,a,s);return l.attr("style",e.style),ti(e,l),e.intersect=function(u){return $n.polygon(e,s,u)},r},"lean_right"),sit=o(async(t,e)=>{let{shapeSvg:r,bbox:n}=await Li(t,e,To(e,void 0),!0),i=n.width+e.padding,a=n.height+e.padding,s=[{x:2*a/6,y:0},{x:i+a/6,y:0},{x:i-2*a/6,y:-a},{x:-a/6,y:-a}],l=Wl(r,i,a,s);return l.attr("style",e.style),ti(e,l),e.intersect=function(u){return $n.polygon(e,s,u)},r},"lean_left"),oit=o(async(t,e)=>{let{shapeSvg:r,bbox:n}=await Li(t,e,To(e,void 0),!0),i=n.width+e.padding,a=n.height+e.padding,s=[{x:-2*a/6,y:0},{x:i+2*a/6,y:0},{x:i-a/6,y:-a},{x:a/6,y:-a}],l=Wl(r,i,a,s);return l.attr("style",e.style),ti(e,l),e.intersect=function(u){return $n.polygon(e,s,u)},r},"trapezoid"),lit=o(async(t,e)=>{let{shapeSvg:r,bbox:n}=await Li(t,e,To(e,void 0),!0),i=n.width+e.padding,a=n.height+e.padding,s=[{x:a/6,y:0},{x:i-a/6,y:0},{x:i+2*a/6,y:-a},{x:-2*a/6,y:-a}],l=Wl(r,i,a,s);return l.attr("style",e.style),ti(e,l),e.intersect=function(u){return $n.polygon(e,s,u)},r},"inv_trapezoid"),cit=o(async(t,e)=>{let{shapeSvg:r,bbox:n}=await Li(t,e,To(e,void 0),!0),i=n.width+e.padding,a=n.height+e.padding,s=[{x:0,y:0},{x:i+a/2,y:0},{x:i,y:-a/2},{x:i+a/2,y:-a},{x:0,y:-a}],l=Wl(r,i,a,s);return l.attr("style",e.style),ti(e,l),e.intersect=function(u){return $n.polygon(e,s,u)},r},"rect_right_inv_arrow"),uit=o(async(t,e)=>{let{shapeSvg:r,bbox:n}=await Li(t,e,To(e,void 0),!0),i=n.width+e.padding,a=i/2,s=a/(2.5+i/50),l=n.height+s+e.padding,u="M 0,"+s+" a "+a+","+s+" 0,0,0 "+i+" 0 a "+a+","+s+" 0,0,0 "+-i+" 0 l 0,"+l+" a "+a+","+s+" 0,0,0 "+i+" 0 l 0,"+-l,h=r.attr("label-offset-y",s).insert("path",":first-child").attr("style",e.style).attr("d",u).attr("transform","translate("+-i/2+","+-(l/2+s)+")");return ti(e,h),e.intersect=function(f){let d=$n.rect(e,f),p=d.x-e.x;if(a!=0&&(Math.abs(p)e.height/2-s)){let m=s*s*(1-p*p/(a*a));m!=0&&(m=Math.sqrt(m)),m=s-m,f.y-e.y>0&&(m=-m),d.y+=m}return d},r},"cylinder"),hit=o(async(t,e)=>{let{shapeSvg:r,bbox:n,halfPadding:i}=await Li(t,e,"node "+e.classes+" "+e.class,!0),a=r.insert("rect",":first-child"),s=e.positioned?e.width:n.width+e.padding,l=e.positioned?e.height:n.height+e.padding,u=e.positioned?-s/2:-n.width/2-i,h=e.positioned?-l/2:-n.height/2-i;if(a.attr("class","basic label-container").attr("style",e.style).attr("rx",e.rx).attr("ry",e.ry).attr("x",u).attr("y",h).attr("width",s).attr("height",l),e.props){let f=new Set(Object.keys(e.props));e.props.borders&&(Ez(a,e.props.borders,s,l),f.delete("borders")),f.forEach(d=>{X.warn(`Unknown node property ${d}`)})}return ti(e,a),e.intersect=function(f){return $n.rect(e,f)},r},"rect"),fit=o(async(t,e)=>{let{shapeSvg:r,bbox:n,halfPadding:i}=await Li(t,e,"node "+e.classes,!0),a=r.insert("rect",":first-child"),s=e.positioned?e.width:n.width+e.padding,l=e.positioned?e.height:n.height+e.padding,u=e.positioned?-s/2:-n.width/2-i,h=e.positioned?-l/2:-n.height/2-i;if(a.attr("class","basic cluster composite label-container").attr("style",e.style).attr("rx",e.rx).attr("ry",e.ry).attr("x",u).attr("y",h).attr("width",s).attr("height",l),e.props){let f=new Set(Object.keys(e.props));e.props.borders&&(Ez(a,e.props.borders,s,l),f.delete("borders")),f.forEach(d=>{X.warn(`Unknown node property ${d}`)})}return ti(e,a),e.intersect=function(f){return $n.rect(e,f)},r},"composite"),dit=o(async(t,e)=>{let{shapeSvg:r}=await Li(t,e,"label",!0);X.trace("Classes = ",e.class);let n=r.insert("rect",":first-child"),i=0,a=0;if(n.attr("width",i).attr("height",a),r.attr("class","label edgeLabel"),e.props){let s=new Set(Object.keys(e.props));e.props.borders&&(Ez(n,e.props.borders,i,a),s.delete("borders")),s.forEach(l=>{X.warn(`Unknown node property ${l}`)})}return ti(e,n),e.intersect=function(s){return $n.rect(e,s)},r},"labelRect");o(Ez,"applyNodePropertyBorders");pit=o(async(t,e)=>{let r;e.classes?r="node "+e.classes:r="node default";let n=t.insert("g").attr("class",r).attr("id",e.domId||e.id),i=n.insert("rect",":first-child"),a=n.insert("line"),s=n.insert("g").attr("class","label"),l=e.labelText.flat?e.labelText.flat():e.labelText,u="";typeof l=="object"?u=l[0]:u=l,X.info("Label text abc79",u,l,typeof l=="object");let h=s.node().appendChild(await ks(u,e.labelStyle,!0,!0)),f={width:0,height:0};if(vr(ge().flowchart.htmlLabels)){let y=h.children[0],v=qe(h);f=y.getBoundingClientRect(),v.attr("width",f.width),v.attr("height",f.height)}X.info("Text 2",l);let d=l.slice(1,l.length),p=h.getBBox(),m=s.node().appendChild(await ks(d.join?d.join("
    "):d,e.labelStyle,!0,!0));if(vr(ge().flowchart.htmlLabels)){let y=m.children[0],v=qe(m);f=y.getBoundingClientRect(),v.attr("width",f.width),v.attr("height",f.height)}let g=e.padding/2;return qe(m).attr("transform","translate( "+(f.width>p.width?0:(p.width-f.width)/2)+", "+(p.height+g+5)+")"),qe(h).attr("transform","translate( "+(f.width{let{shapeSvg:r,bbox:n}=await Li(t,e,To(e,void 0),!0),i=n.height+e.padding,a=n.width+i/4+e.padding,s=r.insert("rect",":first-child").attr("style",e.style).attr("rx",i/2).attr("ry",i/2).attr("x",-a/2).attr("y",-i/2).attr("width",a).attr("height",i);return ti(e,s),e.intersect=function(l){return $n.rect(e,l)},r},"stadium"),git=o(async(t,e)=>{let{shapeSvg:r,bbox:n,halfPadding:i}=await Li(t,e,To(e,void 0),!0),a=r.insert("circle",":first-child");return a.attr("style",e.style).attr("rx",e.rx).attr("ry",e.ry).attr("r",n.width/2+i).attr("width",n.width+e.padding).attr("height",n.height+e.padding),X.info("Circle main"),ti(e,a),e.intersect=function(s){return X.info("Circle intersect",e,n.width/2+i,s),$n.circle(e,n.width/2+i,s)},r},"circle"),yit=o(async(t,e)=>{let{shapeSvg:r,bbox:n,halfPadding:i}=await Li(t,e,To(e,void 0),!0),a=5,s=r.insert("g",":first-child"),l=s.insert("circle"),u=s.insert("circle");return s.attr("class",e.class),l.attr("style",e.style).attr("rx",e.rx).attr("ry",e.ry).attr("r",n.width/2+i+a).attr("width",n.width+e.padding+a*2).attr("height",n.height+e.padding+a*2),u.attr("style",e.style).attr("rx",e.rx).attr("ry",e.ry).attr("r",n.width/2+i).attr("width",n.width+e.padding).attr("height",n.height+e.padding),X.info("DoubleCircle main"),ti(e,l),e.intersect=function(h){return X.info("DoubleCircle intersect",e,n.width/2+i+a,h),$n.circle(e,n.width/2+i+a,h)},r},"doublecircle"),vit=o(async(t,e)=>{let{shapeSvg:r,bbox:n}=await Li(t,e,To(e,void 0),!0),i=n.width+e.padding,a=n.height+e.padding,s=[{x:0,y:0},{x:i,y:0},{x:i,y:-a},{x:0,y:-a},{x:0,y:0},{x:-8,y:0},{x:i+8,y:0},{x:i+8,y:-a},{x:-8,y:-a},{x:-8,y:0}],l=Wl(r,i,a,s);return l.attr("style",e.style),ti(e,l),e.intersect=function(u){return $n.polygon(e,s,u)},r},"subroutine"),xit=o((t,e)=>{let r=t.insert("g").attr("class","node default").attr("id",e.domId||e.id),n=r.insert("circle",":first-child");return n.attr("class","state-start").attr("r",7).attr("width",14).attr("height",14),ti(e,n),e.intersect=function(i){return $n.circle(e,7,i)},r},"start"),h4e=o((t,e,r)=>{let n=t.insert("g").attr("class","node default").attr("id",e.domId||e.id),i=70,a=10;r==="LR"&&(i=10,a=70);let s=n.append("rect").attr("x",-1*i/2).attr("y",-1*a/2).attr("width",i).attr("height",a).attr("class","fork-join");return ti(e,s),e.height=e.height+e.padding/2,e.width=e.width+e.padding/2,e.intersect=function(l){return $n.rect(e,l)},n},"forkJoin"),bit=o((t,e)=>{let r=t.insert("g").attr("class","node default").attr("id",e.domId||e.id),n=r.insert("circle",":first-child"),i=r.insert("circle",":first-child");return i.attr("class","state-start").attr("r",7).attr("width",14).attr("height",14),n.attr("class","state-end").attr("r",5).attr("width",10).attr("height",10),ti(e,i),e.intersect=function(a){return $n.circle(e,7,a)},r},"end"),Tit=o(async(t,e)=>{let r=e.padding/2,n=4,i=8,a;e.classes?a="node "+e.classes:a="node default";let s=t.insert("g").attr("class",a).attr("id",e.domId||e.id),l=s.insert("rect",":first-child"),u=s.insert("line"),h=s.insert("line"),f=0,d=n,p=s.insert("g").attr("class","label"),m=0,g=e.classData.annotations?.[0],y=e.classData.annotations[0]?"\xAB"+e.classData.annotations[0]+"\xBB":"",v=p.node().appendChild(await ks(y,e.labelStyle,!0,!0)),x=v.getBBox();if(vr(ge().flowchart.htmlLabels)){let A=v.children[0],L=qe(v);x=A.getBoundingClientRect(),L.attr("width",x.width),L.attr("height",x.height)}e.classData.annotations[0]&&(d+=x.height+n,f+=x.width);let b=e.classData.label;e.classData.type!==void 0&&e.classData.type!==""&&(ge().flowchart.htmlLabels?b+="<"+e.classData.type+">":b+="<"+e.classData.type+">");let T=p.node().appendChild(await ks(b,e.labelStyle,!0,!0));qe(T).attr("class","classTitle");let S=T.getBBox();if(vr(ge().flowchart.htmlLabels)){let A=T.children[0],L=qe(T);S=A.getBoundingClientRect(),L.attr("width",S.width),L.attr("height",S.height)}d+=S.height+n,S.width>f&&(f=S.width);let w=[];e.classData.members.forEach(async A=>{let L=A.getDisplayDetails(),I=L.displayText;ge().flowchart.htmlLabels&&(I=I.replace(//g,">"));let R=p.node().appendChild(await ks(I,L.cssStyle?L.cssStyle:e.labelStyle,!0,!0)),E=R.getBBox();if(vr(ge().flowchart.htmlLabels)){let _=R.children[0],D=qe(R);E=_.getBoundingClientRect(),D.attr("width",E.width),D.attr("height",E.height)}E.width>f&&(f=E.width),d+=E.height+n,w.push(R)}),d+=i;let k=[];if(e.classData.methods.forEach(async A=>{let L=A.getDisplayDetails(),I=L.displayText;ge().flowchart.htmlLabels&&(I=I.replace(//g,">"));let R=p.node().appendChild(await ks(I,L.cssStyle?L.cssStyle:e.labelStyle,!0,!0)),E=R.getBBox();if(vr(ge().flowchart.htmlLabels)){let _=R.children[0],D=qe(R);E=_.getBoundingClientRect(),D.attr("width",E.width),D.attr("height",E.height)}E.width>f&&(f=E.width),d+=E.height+n,k.push(R)}),d+=i,g){let A=(f-x.width)/2;qe(v).attr("transform","translate( "+(-1*f/2+A)+", "+-1*d/2+")"),m=x.height+n}let C=(f-S.width)/2;return qe(T).attr("transform","translate( "+(-1*f/2+C)+", "+(-1*d/2+m)+")"),m+=S.height+n,u.attr("class","divider").attr("x1",-f/2-r).attr("x2",f/2+r).attr("y1",-d/2-r+i+m).attr("y2",-d/2-r+i+m),m+=i,w.forEach(A=>{qe(A).attr("transform","translate( "+-f/2+", "+(-1*d/2+m+i/2)+")");let L=A?.getBBox();m+=(L?.height??0)+n}),m+=i,h.attr("class","divider").attr("x1",-f/2-r).attr("x2",f/2+r).attr("y1",-d/2-r+i+m).attr("y2",-d/2-r+i+m),m+=i,k.forEach(A=>{qe(A).attr("transform","translate( "+-f/2+", "+(-1*d/2+m)+")");let L=A?.getBBox();m+=(L?.height??0)+n}),l.attr("style",e.style).attr("class","outer title-state").attr("x",-f/2-r).attr("y",-(d/2)-r).attr("width",f+e.padding).attr("height",d+e.padding),ti(e,l),e.intersect=function(A){return $n.rect(e,A)},s},"class_box"),f4e={rhombus:u4e,composite:fit,question:u4e,rect:hit,labelRect:dit,rectWithTitle:pit,choice:tit,circle:git,doublecircle:yit,stadium:mit,hexagon:rit,block_arrow:nit,rect_left_inv_arrow:iit,lean_right:ait,lean_left:sit,trapezoid:oit,inv_trapezoid:lit,rect_right_inv_arrow:cit,cylinder:uit,start:xit,end:bit,note:o4e,subroutine:vit,fork:h4e,join:h4e,class_box:Tit},IC={},Sz=o(async(t,e,r)=>{let n,i;if(e.link){let a;ge().securityLevel==="sandbox"?a="_top":e.linkTarget&&(a=e.linkTarget||"_blank"),n=t.insert("svg:a").attr("xlink:href",e.link).attr("target",a),i=await f4e[e.shape](n,e,r)}else i=await f4e[e.shape](t,e,r),n=i;return e.tooltip&&i.attr("title",e.tooltip),e.class&&i.attr("class","node default "+e.class),IC[e.id]=n,e.haveCallback&&IC[e.id].attr("class",IC[e.id].attr("class")+" clickable"),n},"insertNode"),d4e=o(t=>{let e=IC[t.id];X.trace("Transforming node",t.diff,t,"translate("+(t.x-t.width/2-5)+", "+t.width/2+")");let r=8,n=t.diff||0;return t.clusterNode?e.attr("transform","translate("+(t.x+n-t.width/2)+", "+(t.y-t.height/2-r)+")"):e.attr("transform","translate("+t.x+", "+t.y+")"),n},"positionNode")});function m4e(t,e,r=!1){let n=t,i="default";(n?.classes?.length||0)>0&&(i=(n?.classes??[]).join(" ")),i=i+" flowchart-label";let a=0,s="",l;switch(n.type){case"round":a=5,s="rect";break;case"composite":a=0,s="composite",l=0;break;case"square":s="rect";break;case"diamond":s="question";break;case"hexagon":s="hexagon";break;case"block_arrow":s="block_arrow";break;case"odd":s="rect_left_inv_arrow";break;case"lean_right":s="lean_right";break;case"lean_left":s="lean_left";break;case"trapezoid":s="trapezoid";break;case"inv_trapezoid":s="inv_trapezoid";break;case"rect_left_inv_arrow":s="rect_left_inv_arrow";break;case"circle":s="circle";break;case"ellipse":s="ellipse";break;case"stadium":s="stadium";break;case"subroutine":s="subroutine";break;case"cylinder":s="cylinder";break;case"group":s="rect";break;case"doublecircle":s="doublecircle";break;default:s="rect"}let u=zL(n?.styles??[]),h=n.label,f=n.size??{width:0,height:0,x:0,y:0};return{labelStyle:u.labelStyle,shape:s,labelText:h,rx:a,ry:a,class:i,style:u.style,id:n.id,directions:n.directions,width:f.width,height:f.height,x:f.x,y:f.y,positioned:r,intersect:void 0,type:n.type,padding:l??Qt()?.block?.padding??0}}async function wit(t,e,r){let n=m4e(e,r,!1);if(n.type==="group")return;let i=Qt(),a=await Sz(t,n,{config:i}),s=a.node().getBBox(),l=r.getBlock(n.id);l.size={width:s.width,height:s.height,x:0,y:0,node:a},r.setBlock(l),a.remove()}async function kit(t,e,r){let n=m4e(e,r,!0);if(r.getBlock(n.id).type!=="space"){let a=Qt();await Sz(t,n,{config:a}),e.intersect=n?.intersect,d4e(n)}}async function Cz(t,e,r,n){for(let i of e)await n(t,i,r),i.children&&await Cz(t,i.children,r,n)}async function g4e(t,e,r){await Cz(t,e,r,wit)}async function y4e(t,e,r){await Cz(t,e,r,kit)}async function v4e(t,e,r,n,i){let a=new cn({multigraph:!0,compound:!0});a.setGraph({rankdir:"TB",nodesep:10,ranksep:10,marginx:8,marginy:8});for(let s of r)s.size&&a.setNode(s.id,{width:s.size.width,height:s.size.height,intersect:s.intersect});for(let s of e)if(s.start&&s.end){let l=n.getBlock(s.start),u=n.getBlock(s.end);if(l?.size&&u?.size){let h=l.size,f=u.size,d=[{x:h.x,y:h.y},{x:h.x+(f.x-h.x)/2,y:h.y+(f.y-h.y)/2},{x:f.x,y:f.y}];Wbe(t,{v:s.start,w:s.end,name:s.id},{...s,arrowTypeEnd:s.arrowTypeEnd,arrowTypeStart:s.arrowTypeStart,points:d,classes:"edge-thickness-normal edge-pattern-solid flowchart-link LS-a1 LE-b1"},void 0,"block",a,i),s.label&&(await Hbe(t,{...s,label:s.label,labelStyle:"stroke: #333; stroke-width: 1.5px;fill:none;",arrowTypeEnd:s.arrowTypeEnd,arrowTypeStart:s.arrowTypeStart,points:d,classes:"edge-thickness-normal edge-pattern-solid flowchart-link LS-a1 LE-b1"}),qbe({...s,x:d[1].x,y:d[1].y},{originalPath:d}))}}}var x4e=M(()=>{"use strict";qo();qn();Ybe();p4e();tr();o(m4e,"getNodeFromBlock");o(wit,"calculateBlockSize");o(kit,"insertBlockPositioned");o(Cz,"performOperations");o(g4e,"calculateBlockSizes");o(y4e,"insertBlocks");o(v4e,"insertEdges")});var Eit,Sit,b4e,T4e=M(()=>{"use strict";yr();qn();Ibe();pt();Ei();Fbe();x4e();Eit=o(function(t,e){return e.db.getClasses()},"getClasses"),Sit=o(async function(t,e,r,n){let{securityLevel:i,block:a}=Qt(),s=n.db,l;i==="sandbox"&&(l=qe("#i"+e));let u=i==="sandbox"?qe(l.nodes()[0].contentDocument.body):qe("body"),h=i==="sandbox"?u.select(`[id="${e}"]`):qe(`[id="${e}"]`);Mbe(h,["point","circle","cross"],n.type,e);let d=s.getBlocks(),p=s.getBlocksFlat(),m=s.getEdges(),g=h.insert("g").attr("class","block");await g4e(g,d,s);let y=Bbe(s);if(await y4e(g,d,s),await v4e(g,m,p,s,e),y){let v=y,x=Math.max(1,Math.round(.125*(v.width/v.height))),b=v.height+x+10,T=v.width+10,{useMaxWidth:S}=a;mn(h,b,T,!!S),X.debug("Here Bounds",y,v),h.attr("viewBox",`${v.x-5} ${v.y-5} ${v.width+10} ${v.height+10}`)}},"draw"),b4e={draw:Sit,getClasses:Eit}});var w4e={};dr(w4e,{diagram:()=>Cit});var Cit,k4e=M(()=>{"use strict";kbe();Lbe();Nbe();T4e();Cit={parser:wbe,db:Dbe,renderer:b4e,styles:Rbe}});var Az,_z,M4,C4e,Dz,Xa,nu,I4,A4e,Lit,O4,_4e,D4e,L4e,R4e,N4e,OC,td,PC=M(()=>{"use strict";Az={L:"left",R:"right",T:"top",B:"bottom"},_z={L:o(t=>`${t},${t/2} 0,${t} 0,0`,"L"),R:o(t=>`0,${t/2} ${t},0 ${t},${t}`,"R"),T:o(t=>`0,0 ${t},0 ${t/2},${t}`,"T"),B:o(t=>`${t/2},0 ${t},${t} 0,${t}`,"B")},M4={L:o((t,e)=>t-e+2,"L"),R:o((t,e)=>t-2,"R"),T:o((t,e)=>t-e+2,"T"),B:o((t,e)=>t-2,"B")},C4e=o(function(t){return Xa(t)?t==="L"?"R":"L":t==="T"?"B":"T"},"getOppositeArchitectureDirection"),Dz=o(function(t){let e=t;return e==="L"||e==="R"||e==="T"||e==="B"},"isArchitectureDirection"),Xa=o(function(t){let e=t;return e==="L"||e==="R"},"isArchitectureDirectionX"),nu=o(function(t){let e=t;return e==="T"||e==="B"},"isArchitectureDirectionY"),I4=o(function(t,e){let r=Xa(t)&&nu(e),n=nu(t)&&Xa(e);return r||n},"isArchitectureDirectionXY"),A4e=o(function(t){let e=t[0],r=t[1],n=Xa(e)&&nu(r),i=nu(e)&&Xa(r);return n||i},"isArchitecturePairXY"),Lit=o(function(t){return t!=="LL"&&t!=="RR"&&t!=="TT"&&t!=="BB"},"isValidArchitectureDirectionPair"),O4=o(function(t,e){let r=`${t}${e}`;return Lit(r)?r:void 0},"getArchitectureDirectionPair"),_4e=o(function([t,e],r){let n=r[0],i=r[1];return Xa(n)?nu(i)?[t+(n==="L"?-1:1),e+(i==="T"?1:-1)]:[t+(n==="L"?-1:1),e]:Xa(i)?[t+(i==="L"?1:-1),e+(n==="T"?1:-1)]:[t,e+(n==="T"?1:-1)]},"shiftPositionByArchitectureDirectionPair"),D4e=o(function(t){return t==="LT"||t==="TL"?[1,1]:t==="BL"||t==="LB"?[1,-1]:t==="BR"||t==="RB"?[-1,-1]:[-1,1]},"getArchitectureDirectionXYFactors"),L4e=o(function(t,e){return I4(t,e)?"bend":Xa(t)?"horizontal":"vertical"},"getArchitectureDirectionAlignment"),R4e=o(function(t){return t.type==="service"},"isArchitectureService"),N4e=o(function(t){return t.type==="junction"},"isArchitectureJunction"),OC=o(t=>t.data(),"edgeData"),td=o(t=>t.data(),"nodeData")});var Rit,xy,Lz=M(()=>{"use strict";qn();Ra();tr();ci();PC();Rit=ur.architecture,xy=class{constructor(){this.nodes={};this.groups={};this.edges=[];this.registeredIds={};this.elements={};this.setAccTitle=Rr;this.getAccTitle=Mr;this.setDiagramTitle=$r;this.getDiagramTitle=Pr;this.getAccDescription=Or;this.setAccDescription=Ir;this.clear()}static{o(this,"ArchitectureDB")}clear(){this.nodes={},this.groups={},this.edges=[],this.registeredIds={},this.dataStructures=void 0,this.elements={},Sr()}addService({id:e,icon:r,in:n,title:i,iconText:a}){if(this.registeredIds[e]!==void 0)throw new Error(`The service id [${e}] is already in use by another ${this.registeredIds[e]}`);if(n!==void 0){if(e===n)throw new Error(`The service [${e}] cannot be placed within itself`);if(this.registeredIds[n]===void 0)throw new Error(`The service [${e}]'s parent does not exist. Please make sure the parent is created before this service`);if(this.registeredIds[n]==="node")throw new Error(`The service [${e}]'s parent is not a group`)}this.registeredIds[e]="node",this.nodes[e]={id:e,type:"service",icon:r,iconText:a,title:i,edges:[],in:n}}getServices(){return Object.values(this.nodes).filter(R4e)}addJunction({id:e,in:r}){this.registeredIds[e]="node",this.nodes[e]={id:e,type:"junction",edges:[],in:r}}getJunctions(){return Object.values(this.nodes).filter(N4e)}getNodes(){return Object.values(this.nodes)}getNode(e){return this.nodes[e]??null}addGroup({id:e,icon:r,in:n,title:i}){if(this.registeredIds?.[e]!==void 0)throw new Error(`The group id [${e}] is already in use by another ${this.registeredIds[e]}`);if(n!==void 0){if(e===n)throw new Error(`The group [${e}] cannot be placed within itself`);if(this.registeredIds?.[n]===void 0)throw new Error(`The group [${e}]'s parent does not exist. Please make sure the parent is created before this group`);if(this.registeredIds?.[n]==="node")throw new Error(`The group [${e}]'s parent is not a group`)}this.registeredIds[e]="group",this.groups[e]={id:e,icon:r,title:i,in:n}}getGroups(){return Object.values(this.groups)}addEdge({lhsId:e,rhsId:r,lhsDir:n,rhsDir:i,lhsInto:a,rhsInto:s,lhsGroup:l,rhsGroup:u,title:h}){if(!Dz(n))throw new Error(`Invalid direction given for left hand side of edge ${e}--${r}. Expected (L,R,T,B) got ${String(n)}`);if(!Dz(i))throw new Error(`Invalid direction given for right hand side of edge ${e}--${r}. Expected (L,R,T,B) got ${String(i)}`);if(this.nodes[e]===void 0&&this.groups[e]===void 0)throw new Error(`The left-hand id [${e}] does not yet exist. Please create the service/group before declaring an edge to it.`);if(this.nodes[r]===void 0&&this.groups[r]===void 0)throw new Error(`The right-hand id [${r}] does not yet exist. Please create the service/group before declaring an edge to it.`);let f=this.nodes[e].in,d=this.nodes[r].in;if(l&&f&&d&&f==d)throw new Error(`The left-hand id [${e}] is modified to traverse the group boundary, but the edge does not pass through two groups.`);if(u&&f&&d&&f==d)throw new Error(`The right-hand id [${r}] is modified to traverse the group boundary, but the edge does not pass through two groups.`);let p={lhsId:e,lhsDir:n,lhsInto:a,lhsGroup:l,rhsId:r,rhsDir:i,rhsInto:s,rhsGroup:u,title:h};this.edges.push(p),this.nodes[e]&&this.nodes[r]&&(this.nodes[e].edges.push(this.edges[this.edges.length-1]),this.nodes[r].edges.push(this.edges[this.edges.length-1]))}getEdges(){return this.edges}getDataStructures(){if(this.dataStructures===void 0){let e={},r=Object.entries(this.nodes).reduce((u,[h,f])=>(u[h]=f.edges.reduce((d,p)=>{let m=this.getNode(p.lhsId)?.in,g=this.getNode(p.rhsId)?.in;if(m&&g&&m!==g){let y=L4e(p.lhsDir,p.rhsDir);y!=="bend"&&(e[m]??={},e[m][g]=y,e[g]??={},e[g][m]=y)}if(p.lhsId===h){let y=O4(p.lhsDir,p.rhsDir);y&&(d[y]=p.rhsId)}else{let y=O4(p.rhsDir,p.lhsDir);y&&(d[y]=p.lhsId)}return d},{}),u),{}),n=Object.keys(r)[0],i={[n]:1},a=Object.keys(r).reduce((u,h)=>h===n?u:{...u,[h]:1},{}),s=o(u=>{let h={[u]:[0,0]},f=[u];for(;f.length>0;){let d=f.shift();if(d){i[d]=1,delete a[d];let p=r[d],[m,g]=h[d];Object.entries(p).forEach(([y,v])=>{i[v]||(h[v]=_4e([m,g],y),f.push(v))})}}return h},"BFS"),l=[s(n)];for(;Object.keys(a).length>0;)l.push(s(Object.keys(a)[0]));this.dataStructures={adjList:r,spatialMaps:l,groupAlignments:e}}return this.dataStructures}setElementForId(e,r){this.elements[e]=r}getElementById(e){return this.elements[e]}getConfig(){return Vn({...Rit,...Qt().architecture})}getConfigField(e){return this.getConfig()[e]}}});var Nit,Rz,M4e=M(()=>{"use strict";Uf();pt();r0();Lz();Nit=o((t,e)=>{nl(t,e),t.groups.map(r=>e.addGroup(r)),t.services.map(r=>e.addService({...r,type:"service"})),t.junctions.map(r=>e.addJunction({...r,type:"junction"})),t.edges.map(r=>e.addEdge(r))},"populateDb"),Rz={parser:{yy:void 0},parse:o(async t=>{let e=await bs("architecture",t);X.debug(e);let r=Rz.parser?.yy;if(!(r instanceof xy))throw new Error("parser.parser?.yy was not a ArchitectureDB. This is due to a bug within Mermaid, please report this issue at https://github.com/mermaid-js/mermaid/issues.");Nit(e,r)},"parse")}});var Mit,I4e,O4e=M(()=>{"use strict";Mit=o(t=>` + .edge { + stroke-width: ${t.archEdgeWidth}; + stroke: ${t.archEdgeColor}; + fill: none; + } + + .arrow { + fill: ${t.archEdgeArrowColor}; + } + + .node-bkg { + fill: none; + stroke: ${t.archGroupBorderColor}; + stroke-width: ${t.archGroupBorderWidth}; + stroke-dasharray: 8; + } + .node-icon-text { + display: flex; + align-items: center; + } + + .node-icon-text > div { + color: #fff; + margin: 1px; + height: fit-content; + text-align: center; + overflow: hidden; + display: -webkit-box; + -webkit-box-orient: vertical; + } +`,"getStyles"),I4e=Mit});var Mz=sa((P4,Nz)=>{"use strict";o((function(e,r){typeof P4=="object"&&typeof Nz=="object"?Nz.exports=r():typeof define=="function"&&define.amd?define([],r):typeof P4=="object"?P4.layoutBase=r():e.layoutBase=r()}),"webpackUniversalModuleDefinition")(P4,function(){return(function(t){var e={};function r(n){if(e[n])return e[n].exports;var i=e[n]={i:n,l:!1,exports:{}};return t[n].call(i.exports,i,i.exports,r),i.l=!0,i.exports}return o(r,"__webpack_require__"),r.m=t,r.c=e,r.i=function(n){return n},r.d=function(n,i,a){r.o(n,i)||Object.defineProperty(n,i,{configurable:!1,enumerable:!0,get:a})},r.n=function(n){var i=n&&n.__esModule?o(function(){return n.default},"getDefault"):o(function(){return n},"getModuleExports");return r.d(i,"a",i),i},r.o=function(n,i){return Object.prototype.hasOwnProperty.call(n,i)},r.p="",r(r.s=28)})([(function(t,e,r){"use strict";function n(){}o(n,"LayoutConstants"),n.QUALITY=1,n.DEFAULT_CREATE_BENDS_AS_NEEDED=!1,n.DEFAULT_INCREMENTAL=!1,n.DEFAULT_ANIMATION_ON_LAYOUT=!0,n.DEFAULT_ANIMATION_DURING_LAYOUT=!1,n.DEFAULT_ANIMATION_PERIOD=50,n.DEFAULT_UNIFORM_LEAF_NODE_SIZES=!1,n.DEFAULT_GRAPH_MARGIN=15,n.NODE_DIMENSIONS_INCLUDE_LABELS=!1,n.SIMPLE_NODE_SIZE=40,n.SIMPLE_NODE_HALF_SIZE=n.SIMPLE_NODE_SIZE/2,n.EMPTY_COMPOUND_NODE_SIZE=40,n.MIN_EDGE_LENGTH=1,n.WORLD_BOUNDARY=1e6,n.INITIAL_WORLD_BOUNDARY=n.WORLD_BOUNDARY/1e3,n.WORLD_CENTER_X=1200,n.WORLD_CENTER_Y=900,t.exports=n}),(function(t,e,r){"use strict";var n=r(2),i=r(8),a=r(9);function s(u,h,f){n.call(this,f),this.isOverlapingSourceAndTarget=!1,this.vGraphObject=f,this.bendpoints=[],this.source=u,this.target=h}o(s,"LEdge"),s.prototype=Object.create(n.prototype);for(var l in n)s[l]=n[l];s.prototype.getSource=function(){return this.source},s.prototype.getTarget=function(){return this.target},s.prototype.isInterGraph=function(){return this.isInterGraph},s.prototype.getLength=function(){return this.length},s.prototype.isOverlapingSourceAndTarget=function(){return this.isOverlapingSourceAndTarget},s.prototype.getBendpoints=function(){return this.bendpoints},s.prototype.getLca=function(){return this.lca},s.prototype.getSourceInLca=function(){return this.sourceInLca},s.prototype.getTargetInLca=function(){return this.targetInLca},s.prototype.getOtherEnd=function(u){if(this.source===u)return this.target;if(this.target===u)return this.source;throw"Node is not incident with this edge"},s.prototype.getOtherEndInGraph=function(u,h){for(var f=this.getOtherEnd(u),d=h.getGraphManager().getRoot();;){if(f.getOwner()==h)return f;if(f.getOwner()==d)break;f=f.getOwner().getParent()}return null},s.prototype.updateLength=function(){var u=new Array(4);this.isOverlapingSourceAndTarget=i.getIntersection(this.target.getRect(),this.source.getRect(),u),this.isOverlapingSourceAndTarget||(this.lengthX=u[0]-u[2],this.lengthY=u[1]-u[3],Math.abs(this.lengthX)<1&&(this.lengthX=a.sign(this.lengthX)),Math.abs(this.lengthY)<1&&(this.lengthY=a.sign(this.lengthY)),this.length=Math.sqrt(this.lengthX*this.lengthX+this.lengthY*this.lengthY))},s.prototype.updateLengthSimple=function(){this.lengthX=this.target.getCenterX()-this.source.getCenterX(),this.lengthY=this.target.getCenterY()-this.source.getCenterY(),Math.abs(this.lengthX)<1&&(this.lengthX=a.sign(this.lengthX)),Math.abs(this.lengthY)<1&&(this.lengthY=a.sign(this.lengthY)),this.length=Math.sqrt(this.lengthX*this.lengthX+this.lengthY*this.lengthY)},t.exports=s}),(function(t,e,r){"use strict";function n(i){this.vGraphObject=i}o(n,"LGraphObject"),t.exports=n}),(function(t,e,r){"use strict";var n=r(2),i=r(10),a=r(13),s=r(0),l=r(16),u=r(5);function h(d,p,m,g){m==null&&g==null&&(g=p),n.call(this,g),d.graphManager!=null&&(d=d.graphManager),this.estimatedSize=i.MIN_VALUE,this.inclusionTreeDepth=i.MAX_VALUE,this.vGraphObject=g,this.edges=[],this.graphManager=d,m!=null&&p!=null?this.rect=new a(p.x,p.y,m.width,m.height):this.rect=new a}o(h,"LNode"),h.prototype=Object.create(n.prototype);for(var f in n)h[f]=n[f];h.prototype.getEdges=function(){return this.edges},h.prototype.getChild=function(){return this.child},h.prototype.getOwner=function(){return this.owner},h.prototype.getWidth=function(){return this.rect.width},h.prototype.setWidth=function(d){this.rect.width=d},h.prototype.getHeight=function(){return this.rect.height},h.prototype.setHeight=function(d){this.rect.height=d},h.prototype.getCenterX=function(){return this.rect.x+this.rect.width/2},h.prototype.getCenterY=function(){return this.rect.y+this.rect.height/2},h.prototype.getCenter=function(){return new u(this.rect.x+this.rect.width/2,this.rect.y+this.rect.height/2)},h.prototype.getLocation=function(){return new u(this.rect.x,this.rect.y)},h.prototype.getRect=function(){return this.rect},h.prototype.getDiagonal=function(){return Math.sqrt(this.rect.width*this.rect.width+this.rect.height*this.rect.height)},h.prototype.getHalfTheDiagonal=function(){return Math.sqrt(this.rect.height*this.rect.height+this.rect.width*this.rect.width)/2},h.prototype.setRect=function(d,p){this.rect.x=d.x,this.rect.y=d.y,this.rect.width=p.width,this.rect.height=p.height},h.prototype.setCenter=function(d,p){this.rect.x=d-this.rect.width/2,this.rect.y=p-this.rect.height/2},h.prototype.setLocation=function(d,p){this.rect.x=d,this.rect.y=p},h.prototype.moveBy=function(d,p){this.rect.x+=d,this.rect.y+=p},h.prototype.getEdgeListToNode=function(d){var p=[],m,g=this;return g.edges.forEach(function(y){if(y.target==d){if(y.source!=g)throw"Incorrect edge source!";p.push(y)}}),p},h.prototype.getEdgesBetween=function(d){var p=[],m,g=this;return g.edges.forEach(function(y){if(!(y.source==g||y.target==g))throw"Incorrect edge source and/or target";(y.target==d||y.source==d)&&p.push(y)}),p},h.prototype.getNeighborsList=function(){var d=new Set,p=this;return p.edges.forEach(function(m){if(m.source==p)d.add(m.target);else{if(m.target!=p)throw"Incorrect incidency!";d.add(m.source)}}),d},h.prototype.withChildren=function(){var d=new Set,p,m;if(d.add(this),this.child!=null)for(var g=this.child.getNodes(),y=0;yp?(this.rect.x-=(this.labelWidth-p)/2,this.setWidth(this.labelWidth)):this.labelPosHorizontal=="right"&&this.setWidth(p+this.labelWidth)),this.labelHeight&&(this.labelPosVertical=="top"?(this.rect.y-=this.labelHeight,this.setHeight(m+this.labelHeight)):this.labelPosVertical=="center"&&this.labelHeight>m?(this.rect.y-=(this.labelHeight-m)/2,this.setHeight(this.labelHeight)):this.labelPosVertical=="bottom"&&this.setHeight(m+this.labelHeight))}}},h.prototype.getInclusionTreeDepth=function(){if(this.inclusionTreeDepth==i.MAX_VALUE)throw"assert failed";return this.inclusionTreeDepth},h.prototype.transform=function(d){var p=this.rect.x;p>s.WORLD_BOUNDARY?p=s.WORLD_BOUNDARY:p<-s.WORLD_BOUNDARY&&(p=-s.WORLD_BOUNDARY);var m=this.rect.y;m>s.WORLD_BOUNDARY?m=s.WORLD_BOUNDARY:m<-s.WORLD_BOUNDARY&&(m=-s.WORLD_BOUNDARY);var g=new u(p,m),y=d.inverseTransformPoint(g);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()},t.exports=h}),(function(t,e,r){"use strict";var n=r(0);function i(){}o(i,"FDLayoutConstants");for(var a in n)i[a]=n[a];i.MAX_ITERATIONS=2500,i.DEFAULT_EDGE_LENGTH=50,i.DEFAULT_SPRING_STRENGTH=.45,i.DEFAULT_REPULSION_STRENGTH=4500,i.DEFAULT_GRAVITY_STRENGTH=.4,i.DEFAULT_COMPOUND_GRAVITY_STRENGTH=1,i.DEFAULT_GRAVITY_RANGE_FACTOR=3.8,i.DEFAULT_COMPOUND_GRAVITY_RANGE_FACTOR=1.5,i.DEFAULT_USE_SMART_IDEAL_EDGE_LENGTH_CALCULATION=!0,i.DEFAULT_USE_SMART_REPULSION_RANGE_CALCULATION=!0,i.DEFAULT_COOLING_FACTOR_INCREMENTAL=.3,i.COOLING_ADAPTATION_FACTOR=.33,i.ADAPTATION_LOWER_NODE_LIMIT=1e3,i.ADAPTATION_UPPER_NODE_LIMIT=5e3,i.MAX_NODE_DISPLACEMENT_INCREMENTAL=100,i.MAX_NODE_DISPLACEMENT=i.MAX_NODE_DISPLACEMENT_INCREMENTAL*3,i.MIN_REPULSION_DIST=i.DEFAULT_EDGE_LENGTH/10,i.CONVERGENCE_CHECK_PERIOD=100,i.PER_LEVEL_IDEAL_EDGE_LENGTH_FACTOR=.1,i.MIN_EDGE_LENGTH=1,i.GRID_CALCULATION_CHECK_PERIOD=10,t.exports=i}),(function(t,e,r){"use strict";function n(i,a){i==null&&a==null?(this.x=0,this.y=0):(this.x=i,this.y=a)}o(n,"PointD"),n.prototype.getX=function(){return this.x},n.prototype.getY=function(){return this.y},n.prototype.setX=function(i){this.x=i},n.prototype.setY=function(i){this.y=i},n.prototype.getDifference=function(i){return new DimensionD(this.x-i.x,this.y-i.y)},n.prototype.getCopy=function(){return new n(this.x,this.y)},n.prototype.translate=function(i){return this.x+=i.width,this.y+=i.height,this},t.exports=n}),(function(t,e,r){"use strict";var n=r(2),i=r(10),a=r(0),s=r(7),l=r(3),u=r(1),h=r(13),f=r(12),d=r(11);function p(g,y,v){n.call(this,v),this.estimatedSize=i.MIN_VALUE,this.margin=a.DEFAULT_GRAPH_MARGIN,this.edges=[],this.nodes=[],this.isConnected=!1,this.parent=g,y!=null&&y instanceof s?this.graphManager=y:y!=null&&y instanceof Layout&&(this.graphManager=y.graphManager)}o(p,"LGraph"),p.prototype=Object.create(n.prototype);for(var m in n)p[m]=n[m];p.prototype.getNodes=function(){return this.nodes},p.prototype.getEdges=function(){return this.edges},p.prototype.getGraphManager=function(){return this.graphManager},p.prototype.getParent=function(){return this.parent},p.prototype.getLeft=function(){return this.left},p.prototype.getRight=function(){return this.right},p.prototype.getTop=function(){return this.top},p.prototype.getBottom=function(){return this.bottom},p.prototype.isConnected=function(){return this.isConnected},p.prototype.add=function(g,y,v){if(y==null&&v==null){var x=g;if(this.graphManager==null)throw"Graph has no graph mgr!";if(this.getNodes().indexOf(x)>-1)throw"Node already in graph!";return x.owner=this,this.getNodes().push(x),x}else{var b=g;if(!(this.getNodes().indexOf(y)>-1&&this.getNodes().indexOf(v)>-1))throw"Source or target not in graph!";if(!(y.owner==v.owner&&y.owner==this))throw"Both owners must be this graph!";return y.owner!=v.owner?null:(b.source=y,b.target=v,b.isInterGraph=!1,this.getEdges().push(b),y.edges.push(b),v!=y&&v.edges.push(b),b)}},p.prototype.remove=function(g){var y=g;if(g 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 v=y.edges.slice(),x,b=v.length,T=0;T-1&&k>-1))throw"Source and/or target doesn't know this edge!";x.source.edges.splice(w,1),x.target!=x.source&&x.target.edges.splice(k,1);var S=x.source.owner.getEdges().indexOf(x);if(S==-1)throw"Not in owner's edge list!";x.source.owner.getEdges().splice(S,1)}},p.prototype.updateLeftTop=function(){for(var g=i.MAX_VALUE,y=i.MAX_VALUE,v,x,b,T=this.getNodes(),S=T.length,w=0;wv&&(g=v),y>x&&(y=x)}return g==i.MAX_VALUE?null:(T[0].getParent().paddingLeft!=null?b=T[0].getParent().paddingLeft:b=this.margin,this.left=y-b,this.top=g-b,new f(this.left,this.top))},p.prototype.updateBounds=function(g){for(var y=i.MAX_VALUE,v=-i.MAX_VALUE,x=i.MAX_VALUE,b=-i.MAX_VALUE,T,S,w,k,C,A=this.nodes,L=A.length,I=0;IT&&(y=T),vw&&(x=w),bT&&(y=T),vw&&(x=w),b=this.nodes.length){var L=0;v.forEach(function(I){I.owner==g&&L++}),L==this.nodes.length&&(this.isConnected=!0)}},t.exports=p}),(function(t,e,r){"use strict";var n,i=r(1);function a(s){n=r(6),this.layout=s,this.graphs=[],this.edges=[]}o(a,"LGraphManager"),a.prototype.addRoot=function(){var s=this.layout.newGraph(),l=this.layout.newNode(null),u=this.add(s,l);return this.setRootGraph(u),this.rootGraph},a.prototype.add=function(s,l,u,h,f){if(u==null&&h==null&&f==null){if(s==null)throw"Graph is null!";if(l==null)throw"Parent node is null!";if(this.graphs.indexOf(s)>-1)throw"Graph already in this graph mgr!";if(this.graphs.push(s),s.parent!=null)throw"Already has a parent!";if(l.child!=null)throw"Already has a child!";return s.parent=l,l.child=s,s}else{f=u,h=l,u=s;var d=h.getOwner(),p=f.getOwner();if(!(d!=null&&d.getGraphManager()==this))throw"Source not in this graph mgr!";if(!(p!=null&&p.getGraphManager()==this))throw"Target not in this graph mgr!";if(d==p)return u.isInterGraph=!1,d.add(u,h,f);if(u.isInterGraph=!0,u.source=h,u.target=f,this.edges.indexOf(u)>-1)throw"Edge already in inter-graph edge list!";if(this.edges.push(u),!(u.source!=null&&u.target!=null))throw"Edge source and/or target is null!";if(!(u.source.edges.indexOf(u)==-1&&u.target.edges.indexOf(u)==-1))throw"Edge already in source and/or target incidency list!";return u.source.edges.push(u),u.target.edges.push(u),u}},a.prototype.remove=function(s){if(s instanceof n){var l=s;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 u=[];u=u.concat(l.getEdges());for(var h,f=u.length,d=0;d=s.getRight()?l[0]+=Math.min(s.getX()-a.getX(),a.getRight()-s.getRight()):s.getX()<=a.getX()&&s.getRight()>=a.getRight()&&(l[0]+=Math.min(a.getX()-s.getX(),s.getRight()-a.getRight())),a.getY()<=s.getY()&&a.getBottom()>=s.getBottom()?l[1]+=Math.min(s.getY()-a.getY(),a.getBottom()-s.getBottom()):s.getY()<=a.getY()&&s.getBottom()>=a.getBottom()&&(l[1]+=Math.min(a.getY()-s.getY(),s.getBottom()-a.getBottom()));var f=Math.abs((s.getCenterY()-a.getCenterY())/(s.getCenterX()-a.getCenterX()));s.getCenterY()===a.getCenterY()&&s.getCenterX()===a.getCenterX()&&(f=1);var d=f*l[0],p=l[1]/f;l[0]d)return l[0]=u,l[1]=m,l[2]=f,l[3]=A,!1;if(hf)return l[0]=p,l[1]=h,l[2]=k,l[3]=d,!1;if(uf?(l[0]=y,l[1]=v,E=!0):(l[0]=g,l[1]=m,E=!0):D===N&&(u>f?(l[0]=p,l[1]=m,E=!0):(l[0]=x,l[1]=v,E=!0)),-O===N?f>u?(l[2]=C,l[3]=A,_=!0):(l[2]=k,l[3]=w,_=!0):O===N&&(f>u?(l[2]=S,l[3]=w,_=!0):(l[2]=L,l[3]=A,_=!0)),E&&_)return!1;if(u>f?h>d?(P=this.getCardinalDirection(D,N,4),B=this.getCardinalDirection(O,N,2)):(P=this.getCardinalDirection(-D,N,3),B=this.getCardinalDirection(-O,N,1)):h>d?(P=this.getCardinalDirection(-D,N,1),B=this.getCardinalDirection(-O,N,3)):(P=this.getCardinalDirection(D,N,2),B=this.getCardinalDirection(O,N,4)),!E)switch(P){case 1:V=m,F=u+-T/N,l[0]=F,l[1]=V;break;case 2:F=x,V=h+b*N,l[0]=F,l[1]=V;break;case 3:V=v,F=u+T/N,l[0]=F,l[1]=V;break;case 4:F=y,V=h+-b*N,l[0]=F,l[1]=V;break}if(!_)switch(B){case 1:U=w,$=f+-R/N,l[2]=$,l[3]=U;break;case 2:$=L,U=d+I*N,l[2]=$,l[3]=U;break;case 3:U=A,$=f+R/N,l[2]=$,l[3]=U;break;case 4:$=C,U=d+-I*N,l[2]=$,l[3]=U;break}}return!1},i.getCardinalDirection=function(a,s,l){return a>s?l:1+l%4},i.getIntersection=function(a,s,l,u){if(u==null)return this.getIntersection2(a,s,l);var h=a.x,f=a.y,d=s.x,p=s.y,m=l.x,g=l.y,y=u.x,v=u.y,x=void 0,b=void 0,T=void 0,S=void 0,w=void 0,k=void 0,C=void 0,A=void 0,L=void 0;return T=p-f,w=h-d,C=d*f-h*p,S=v-g,k=m-y,A=y*g-m*v,L=T*k-S*w,L===0?null:(x=(w*A-k*C)/L,b=(S*C-T*A)/L,new n(x,b))},i.angleOfVector=function(a,s,l,u){var h=void 0;return a!==l?(h=Math.atan((u-s)/(l-a)),l=0){var v=(-m+Math.sqrt(m*m-4*p*g))/(2*p),x=(-m-Math.sqrt(m*m-4*p*g))/(2*p),b=null;return v>=0&&v<=1?[v]:x>=0&&x<=1?[x]:b}else return null},i.HALF_PI=.5*Math.PI,i.ONE_AND_HALF_PI=1.5*Math.PI,i.TWO_PI=2*Math.PI,i.THREE_PI=3*Math.PI,t.exports=i}),(function(t,e,r){"use strict";function n(){}o(n,"IMath"),n.sign=function(i){return i>0?1:i<0?-1:0},n.floor=function(i){return i<0?Math.ceil(i):Math.floor(i)},n.ceil=function(i){return i<0?Math.floor(i):Math.ceil(i)},t.exports=n}),(function(t,e,r){"use strict";function n(){}o(n,"Integer"),n.MAX_VALUE=2147483647,n.MIN_VALUE=-2147483648,t.exports=n}),(function(t,e,r){"use strict";var n=(function(){function h(f,d){for(var p=0;p"u"?"undefined":n(a);return a==null||s!="object"&&s!="function"},t.exports=i}),(function(t,e,r){"use strict";function n(m){if(Array.isArray(m)){for(var g=0,y=Array(m.length);g0&&g;){for(T.push(w[0]);T.length>0&&g;){var k=T[0];T.splice(0,1),b.add(k);for(var C=k.getEdges(),x=0;x-1&&w.splice(R,1)}b=new Set,S=new Map}}return m},p.prototype.createDummyNodesForBendpoints=function(m){for(var g=[],y=m.source,v=this.graphManager.calcLowestCommonAncestor(m.source,m.target),x=0;x0){for(var v=this.edgeToDummyNodes.get(y),x=0;x=0&&g.splice(A,1);var L=S.getNeighborsList();L.forEach(function(E){if(y.indexOf(E)<0){var _=v.get(E),D=_-1;D==1&&k.push(E),v.set(E,D)}})}y=y.concat(k),(g.length==1||g.length==2)&&(x=!0,b=g[0])}return b},p.prototype.setGraphManager=function(m){this.graphManager=m},t.exports=p}),(function(t,e,r){"use strict";function n(){}o(n,"RandomSeed"),n.seed=1,n.x=0,n.nextDouble=function(){return n.x=Math.sin(n.seed++)*1e4,n.x-Math.floor(n.x)},t.exports=n}),(function(t,e,r){"use strict";var n=r(5);function i(a,s){this.lworldOrgX=0,this.lworldOrgY=0,this.ldeviceOrgX=0,this.ldeviceOrgY=0,this.lworldExtX=1,this.lworldExtY=1,this.ldeviceExtX=1,this.ldeviceExtY=1}o(i,"Transform"),i.prototype.getWorldOrgX=function(){return this.lworldOrgX},i.prototype.setWorldOrgX=function(a){this.lworldOrgX=a},i.prototype.getWorldOrgY=function(){return this.lworldOrgY},i.prototype.setWorldOrgY=function(a){this.lworldOrgY=a},i.prototype.getWorldExtX=function(){return this.lworldExtX},i.prototype.setWorldExtX=function(a){this.lworldExtX=a},i.prototype.getWorldExtY=function(){return this.lworldExtY},i.prototype.setWorldExtY=function(a){this.lworldExtY=a},i.prototype.getDeviceOrgX=function(){return this.ldeviceOrgX},i.prototype.setDeviceOrgX=function(a){this.ldeviceOrgX=a},i.prototype.getDeviceOrgY=function(){return this.ldeviceOrgY},i.prototype.setDeviceOrgY=function(a){this.ldeviceOrgY=a},i.prototype.getDeviceExtX=function(){return this.ldeviceExtX},i.prototype.setDeviceExtX=function(a){this.ldeviceExtX=a},i.prototype.getDeviceExtY=function(){return this.ldeviceExtY},i.prototype.setDeviceExtY=function(a){this.ldeviceExtY=a},i.prototype.transformX=function(a){var s=0,l=this.lworldExtX;return l!=0&&(s=this.ldeviceOrgX+(a-this.lworldOrgX)*this.ldeviceExtX/l),s},i.prototype.transformY=function(a){var s=0,l=this.lworldExtY;return l!=0&&(s=this.ldeviceOrgY+(a-this.lworldOrgY)*this.ldeviceExtY/l),s},i.prototype.inverseTransformX=function(a){var s=0,l=this.ldeviceExtX;return l!=0&&(s=this.lworldOrgX+(a-this.ldeviceOrgX)*this.lworldExtX/l),s},i.prototype.inverseTransformY=function(a){var s=0,l=this.ldeviceExtY;return l!=0&&(s=this.lworldOrgY+(a-this.ldeviceOrgY)*this.lworldExtY/l),s},i.prototype.inverseTransformPoint=function(a){var s=new n(this.inverseTransformX(a.x),this.inverseTransformY(a.y));return s},t.exports=i}),(function(t,e,r){"use strict";function n(d){if(Array.isArray(d)){for(var p=0,m=Array(d.length);pa.ADAPTATION_LOWER_NODE_LIMIT&&(this.coolingFactor=Math.max(this.coolingFactor*a.COOLING_ADAPTATION_FACTOR,this.coolingFactor-(d-a.ADAPTATION_LOWER_NODE_LIMIT)/(a.ADAPTATION_UPPER_NODE_LIMIT-a.ADAPTATION_LOWER_NODE_LIMIT)*this.coolingFactor*(1-a.COOLING_ADAPTATION_FACTOR))),this.maxNodeDisplacement=a.MAX_NODE_DISPLACEMENT_INCREMENTAL):(d>a.ADAPTATION_LOWER_NODE_LIMIT?this.coolingFactor=Math.max(a.COOLING_ADAPTATION_FACTOR,1-(d-a.ADAPTATION_LOWER_NODE_LIMIT)/(a.ADAPTATION_UPPER_NODE_LIMIT-a.ADAPTATION_LOWER_NODE_LIMIT)*(1-a.COOLING_ADAPTATION_FACTOR)):this.coolingFactor=1,this.initialCoolingFactor=this.coolingFactor,this.maxNodeDisplacement=a.MAX_NODE_DISPLACEMENT),this.maxIterations=Math.max(this.getAllNodes().length*5,this.maxIterations),this.displacementThresholdPerNode=3*a.DEFAULT_EDGE_LENGTH/100,this.totalDisplacementThreshold=this.displacementThresholdPerNode*this.getAllNodes().length,this.repulsionRange=this.calcRepulsionRange()},h.prototype.calcSpringForces=function(){for(var d=this.getAllEdges(),p,m=0;m0&&arguments[0]!==void 0?arguments[0]:!0,p=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1,m,g,y,v,x=this.getAllNodes(),b;if(this.useFRGridVariant)for(this.totalIterations%a.GRID_CALCULATION_CHECK_PERIOD==1&&d&&this.updateGrid(),b=new Set,m=0;mT||b>T)&&(d.gravitationForceX=-this.gravityConstant*y,d.gravitationForceY=-this.gravityConstant*v)):(T=p.getEstimatedSize()*this.compoundGravityRangeFactor,(x>T||b>T)&&(d.gravitationForceX=-this.gravityConstant*y*this.compoundGravityConstant,d.gravitationForceY=-this.gravityConstant*v*this.compoundGravityConstant))},h.prototype.isConverged=function(){var d,p=!1;return this.totalIterations>this.maxIterations/3&&(p=Math.abs(this.totalDisplacement-this.oldTotalDisplacement)<2),d=this.totalDisplacement=x.length||T>=x[0].length)){for(var S=0;Sh},"_defaultCompareFunction")}]),l})();t.exports=s}),(function(t,e,r){"use strict";function n(){}o(n,"SVD"),n.svd=function(i){this.U=null,this.V=null,this.s=null,this.m=0,this.n=0,this.m=i.length,this.n=i[0].length;var a=Math.min(this.m,this.n);this.s=(function(dt){for(var nt=[];dt-- >0;)nt.push(0);return nt})(Math.min(this.m+1,this.n)),this.U=(function(dt){var nt=o(function bt(wt){if(wt.length==0)return 0;for(var yt=[],ft=0;ft0;)nt.push(0);return nt})(this.n),l=(function(dt){for(var nt=[];dt-- >0;)nt.push(0);return nt})(this.m),u=!0,h=!0,f=Math.min(this.m-1,this.n),d=Math.max(0,Math.min(this.n-2,this.m)),p=0;p=0;N--)if(this.s[N]!==0){for(var P=N+1;P=0;ee--){if((function(dt,nt){return dt&&nt})(ee0;){var Z=void 0,de=void 0;for(Z=_-2;Z>=-1&&Z!==-1;Z--)if(Math.abs(s[Z])<=ae+K*(Math.abs(this.s[Z])+Math.abs(this.s[Z+1]))){s[Z]=0;break}if(Z===_-2)de=4;else{var ne=void 0;for(ne=_-1;ne>=Z&&ne!==Z;ne--){var Te=(ne!==_?Math.abs(s[ne]):0)+(ne!==Z+1?Math.abs(s[ne-1]):0);if(Math.abs(this.s[ne])<=ae+K*Te){this.s[ne]=0;break}}ne===Z?de=3:ne===_-1?de=1:(de=2,Z=ne)}switch(Z++,de){case 1:{var W=s[_-2];s[_-2]=0;for(var Ve=_-2;Ve>=Z;Ve--){var pe=n.hypot(this.s[Ve],W),Be=this.s[Ve]/pe,Ye=W/pe;if(this.s[Ve]=pe,Ve!==Z&&(W=-Ye*s[Ve-1],s[Ve-1]=Be*s[Ve-1]),h)for(var He=0;He=this.s[Z+1]);){var lt=this.s[Z];if(this.s[Z]=this.s[Z+1],this.s[Z+1]=lt,h&&ZMath.abs(a)?(s=a/i,s=Math.abs(i)*Math.sqrt(1+s*s)):a!=0?(s=i/a,s=Math.abs(a)*Math.sqrt(1+s*s)):s=0,s},t.exports=n}),(function(t,e,r){"use strict";var n=(function(){function s(l,u){for(var h=0;h2&&arguments[2]!==void 0?arguments[2]:1,f=arguments.length>3&&arguments[3]!==void 0?arguments[3]:-1,d=arguments.length>4&&arguments[4]!==void 0?arguments[4]:-1;i(this,s),this.sequence1=l,this.sequence2=u,this.match_score=h,this.mismatch_penalty=f,this.gap_penalty=d,this.iMax=l.length+1,this.jMax=u.length+1,this.grid=new Array(this.iMax);for(var p=0;p=0;l--){var u=this.listeners[l];u.event===a&&u.callback===s&&this.listeners.splice(l,1)}},i.emit=function(a,s){for(var l=0;l{"use strict";o((function(e,r){typeof B4=="object"&&typeof Iz=="object"?Iz.exports=r(Mz()):typeof define=="function"&&define.amd?define(["layout-base"],r):typeof B4=="object"?B4.coseBase=r(Mz()):e.coseBase=r(e.layoutBase)}),"webpackUniversalModuleDefinition")(B4,function(t){return(()=>{"use strict";var e={45:((a,s,l)=>{var u={};u.layoutBase=l(551),u.CoSEConstants=l(806),u.CoSEEdge=l(767),u.CoSEGraph=l(880),u.CoSEGraphManager=l(578),u.CoSELayout=l(765),u.CoSENode=l(991),u.ConstraintHandler=l(902),a.exports=u}),806:((a,s,l)=>{var u=l(551).FDLayoutConstants;function h(){}o(h,"CoSEConstants");for(var f in u)h[f]=u[f];h.DEFAULT_USE_MULTI_LEVEL_SCALING=!1,h.DEFAULT_RADIAL_SEPARATION=u.DEFAULT_EDGE_LENGTH,h.DEFAULT_COMPONENT_SEPERATION=60,h.TILE=!0,h.TILING_PADDING_VERTICAL=10,h.TILING_PADDING_HORIZONTAL=10,h.TRANSFORM_ON_CONSTRAINT_HANDLING=!0,h.ENFORCE_CONSTRAINTS=!0,h.APPLY_LAYOUT=!0,h.RELAX_MOVEMENT_ON_CONSTRAINTS=!0,h.TREE_REDUCTION_ON_INCREMENTAL=!0,h.PURE_INCREMENTAL=h.DEFAULT_INCREMENTAL,a.exports=h}),767:((a,s,l)=>{var u=l(551).FDLayoutEdge;function h(d,p,m){u.call(this,d,p,m)}o(h,"CoSEEdge"),h.prototype=Object.create(u.prototype);for(var f in u)h[f]=u[f];a.exports=h}),880:((a,s,l)=>{var u=l(551).LGraph;function h(d,p,m){u.call(this,d,p,m)}o(h,"CoSEGraph"),h.prototype=Object.create(u.prototype);for(var f in u)h[f]=u[f];a.exports=h}),578:((a,s,l)=>{var u=l(551).LGraphManager;function h(d){u.call(this,d)}o(h,"CoSEGraphManager"),h.prototype=Object.create(u.prototype);for(var f in u)h[f]=u[f];a.exports=h}),765:((a,s,l)=>{var u=l(551).FDLayout,h=l(578),f=l(880),d=l(991),p=l(767),m=l(806),g=l(902),y=l(551).FDLayoutConstants,v=l(551).LayoutConstants,x=l(551).Point,b=l(551).PointD,T=l(551).DimensionD,S=l(551).Layout,w=l(551).Integer,k=l(551).IGeometry,C=l(551).LGraph,A=l(551).Transform,L=l(551).LinkedList;function I(){u.call(this),this.toBeTiled={},this.constraints={}}o(I,"CoSELayout"),I.prototype=Object.create(u.prototype);for(var R in u)I[R]=u[R];I.prototype.newGraphManager=function(){var E=new h(this);return this.graphManager=E,E},I.prototype.newGraph=function(E){return new f(null,this.graphManager,E)},I.prototype.newNode=function(E){return new d(this.graphManager,E)},I.prototype.newEdge=function(E){return new p(null,null,E)},I.prototype.initParameters=function(){u.prototype.initParameters.call(this,arguments),this.isSubLayout||(m.DEFAULT_EDGE_LENGTH<10?this.idealEdgeLength=10:this.idealEdgeLength=m.DEFAULT_EDGE_LENGTH,this.useSmartIdealEdgeLengthCalculation=m.DEFAULT_USE_SMART_IDEAL_EDGE_LENGTH_CALCULATION,this.gravityConstant=y.DEFAULT_GRAVITY_STRENGTH,this.compoundGravityConstant=y.DEFAULT_COMPOUND_GRAVITY_STRENGTH,this.gravityRangeFactor=y.DEFAULT_GRAVITY_RANGE_FACTOR,this.compoundGravityRangeFactor=y.DEFAULT_COMPOUND_GRAVITY_RANGE_FACTOR,this.prunedNodesAll=[],this.growTreeIterations=0,this.afterGrowthIterations=0,this.isTreeGrowing=!1,this.isGrowthFinished=!1)},I.prototype.initSpringEmbedder=function(){u.prototype.initSpringEmbedder.call(this),this.coolingCycle=0,this.maxCoolingCycle=this.maxIterations/y.CONVERGENCE_CHECK_PERIOD,this.finalTemperature=.04,this.coolingAdjuster=1},I.prototype.layout=function(){var E=v.DEFAULT_CREATE_BENDS_AS_NEEDED;return E&&(this.createBendpoints(),this.graphManager.resetAllEdges()),this.level=0,this.classicLayout()},I.prototype.classicLayout=function(){if(this.nodesWithGravity=this.calculateNodesToApplyGravitationTo(),this.graphManager.setAllNodesToApplyGravitation(this.nodesWithGravity),this.calcNoOfChildrenForAllNodes(),this.graphManager.calcLowestCommonAncestors(),this.graphManager.calcInclusionTreeDepths(),this.graphManager.getRoot().calcEstimatedSize(),this.calcIdealEdgeLengths(),this.incremental){if(m.TREE_REDUCTION_ON_INCREMENTAL){this.reduceTrees(),this.graphManager.resetAllNodesToApplyGravitation();var _=new Set(this.getAllNodes()),D=this.nodesWithGravity.filter(function(P){return _.has(P)});this.graphManager.setAllNodesToApplyGravitation(D)}}else{var E=this.getFlatForest();if(E.length>0)this.positionNodesRadially(E);else{this.reduceTrees(),this.graphManager.resetAllNodesToApplyGravitation();var _=new Set(this.getAllNodes()),D=this.nodesWithGravity.filter(function(O){return _.has(O)});this.graphManager.setAllNodesToApplyGravitation(D),this.positionNodesRandomly()}}return Object.keys(this.constraints).length>0&&(g.handleConstraints(this),this.initConstraintVariables()),this.initSpringEmbedder(),m.APPLY_LAYOUT&&this.runSpringEmbedder(),!0},I.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%y.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()),_=this.nodesWithGravity.filter(function(N){return E.has(N)});this.graphManager.setAllNodesToApplyGravitation(_),this.graphManager.updateBounds(),this.updateGrid(),m.PURE_INCREMENTAL?this.coolingFactor=y.DEFAULT_COOLING_FACTOR_INCREMENTAL/2:this.coolingFactor=y.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()),m.PURE_INCREMENTAL?this.coolingFactor=y.DEFAULT_COOLING_FACTOR_INCREMENTAL/2*((100-this.afterGrowthIterations)/100):this.coolingFactor=y.DEFAULT_COOLING_FACTOR_INCREMENTAL*((100-this.afterGrowthIterations)/100),this.afterGrowthIterations++}var D=!this.isTreeGrowing&&!this.isGrowthFinished,O=this.growTreeIterations%10==1&&this.isTreeGrowing||this.afterGrowthIterations%10==1&&this.isGrowthFinished;return this.totalDisplacement=0,this.graphManager.updateBounds(),this.calcSpringForces(),this.calcRepulsionForces(D,O),this.calcGravitationalForces(),this.moveNodes(),this.animate(),!1},I.prototype.getPositionsData=function(){for(var E=this.graphManager.getAllNodes(),_={},D=0;D0&&this.updateDisplacements();for(var D=0;D0&&(O.fixedNodeWeight=P)}}if(this.constraints.relativePlacementConstraint){var B=new Map,F=new Map;if(this.dummyToNodeForVerticalAlignment=new Map,this.dummyToNodeForHorizontalAlignment=new Map,this.fixedNodesOnHorizontal=new Set,this.fixedNodesOnVertical=new Set,this.fixedNodeSet.forEach(function(Q){E.fixedNodesOnHorizontal.add(Q),E.fixedNodesOnVertical.add(Q)}),this.constraints.alignmentConstraint){if(this.constraints.alignmentConstraint.vertical)for(var V=this.constraints.alignmentConstraint.vertical,D=0;D=2*Q.length/3;re--)ue=Math.floor(Math.random()*(re+1)),te=Q[re],Q[re]=Q[ue],Q[ue]=te;return Q},this.nodesInRelativeHorizontal=[],this.nodesInRelativeVertical=[],this.nodeToRelativeConstraintMapHorizontal=new Map,this.nodeToRelativeConstraintMapVertical=new Map,this.nodeToTempPositionMapHorizontal=new Map,this.nodeToTempPositionMapVertical=new Map,this.constraints.relativePlacementConstraint.forEach(function(Q){if(Q.left){var ue=B.has(Q.left)?B.get(Q.left):Q.left,te=B.has(Q.right)?B.get(Q.right):Q.right;E.nodesInRelativeHorizontal.includes(ue)||(E.nodesInRelativeHorizontal.push(ue),E.nodeToRelativeConstraintMapHorizontal.set(ue,[]),E.dummyToNodeForVerticalAlignment.has(ue)?E.nodeToTempPositionMapHorizontal.set(ue,E.idToNodeMap.get(E.dummyToNodeForVerticalAlignment.get(ue)[0]).getCenterX()):E.nodeToTempPositionMapHorizontal.set(ue,E.idToNodeMap.get(ue).getCenterX())),E.nodesInRelativeHorizontal.includes(te)||(E.nodesInRelativeHorizontal.push(te),E.nodeToRelativeConstraintMapHorizontal.set(te,[]),E.dummyToNodeForVerticalAlignment.has(te)?E.nodeToTempPositionMapHorizontal.set(te,E.idToNodeMap.get(E.dummyToNodeForVerticalAlignment.get(te)[0]).getCenterX()):E.nodeToTempPositionMapHorizontal.set(te,E.idToNodeMap.get(te).getCenterX())),E.nodeToRelativeConstraintMapHorizontal.get(ue).push({right:te,gap:Q.gap}),E.nodeToRelativeConstraintMapHorizontal.get(te).push({left:ue,gap:Q.gap})}else{var re=F.has(Q.top)?F.get(Q.top):Q.top,J=F.has(Q.bottom)?F.get(Q.bottom):Q.bottom;E.nodesInRelativeVertical.includes(re)||(E.nodesInRelativeVertical.push(re),E.nodeToRelativeConstraintMapVertical.set(re,[]),E.dummyToNodeForHorizontalAlignment.has(re)?E.nodeToTempPositionMapVertical.set(re,E.idToNodeMap.get(E.dummyToNodeForHorizontalAlignment.get(re)[0]).getCenterY()):E.nodeToTempPositionMapVertical.set(re,E.idToNodeMap.get(re).getCenterY())),E.nodesInRelativeVertical.includes(J)||(E.nodesInRelativeVertical.push(J),E.nodeToRelativeConstraintMapVertical.set(J,[]),E.dummyToNodeForHorizontalAlignment.has(J)?E.nodeToTempPositionMapVertical.set(J,E.idToNodeMap.get(E.dummyToNodeForHorizontalAlignment.get(J)[0]).getCenterY()):E.nodeToTempPositionMapVertical.set(J,E.idToNodeMap.get(J).getCenterY())),E.nodeToRelativeConstraintMapVertical.get(re).push({bottom:J,gap:Q.gap}),E.nodeToRelativeConstraintMapVertical.get(J).push({top:re,gap:Q.gap})}});else{var U=new Map,j=new Map;this.constraints.relativePlacementConstraint.forEach(function(Q){if(Q.left){var ue=B.has(Q.left)?B.get(Q.left):Q.left,te=B.has(Q.right)?B.get(Q.right):Q.right;U.has(ue)?U.get(ue).push(te):U.set(ue,[te]),U.has(te)?U.get(te).push(ue):U.set(te,[ue])}else{var re=F.has(Q.top)?F.get(Q.top):Q.top,J=F.has(Q.bottom)?F.get(Q.bottom):Q.bottom;j.has(re)?j.get(re).push(J):j.set(re,[J]),j.has(J)?j.get(J).push(re):j.set(J,[re])}});var ee=o(function(ue,te){var re=[],J=[],K=new L,ae=new Set,Z=0;return ue.forEach(function(de,ne){if(!ae.has(ne)){re[Z]=[],J[Z]=!1;var Te=ne;for(K.push(Te),ae.add(Te),re[Z].push(Te);K.length!=0;){Te=K.shift(),te.has(Te)&&(J[Z]=!0);var W=ue.get(Te);W.forEach(function(Ve){ae.has(Ve)||(K.push(Ve),ae.add(Ve),re[Z].push(Ve))})}Z++}}),{components:re,isFixed:J}},"constructComponents"),q=ee(U,E.fixedNodesOnHorizontal);this.componentsOnHorizontal=q.components,this.fixedComponentsOnHorizontal=q.isFixed;var oe=ee(j,E.fixedNodesOnVertical);this.componentsOnVertical=oe.components,this.fixedComponentsOnVertical=oe.isFixed}}},I.prototype.updateDisplacements=function(){var E=this;if(this.constraints.fixedNodeConstraint&&this.constraints.fixedNodeConstraint.forEach(function(oe){var Q=E.idToNodeMap.get(oe.nodeId);Q.displacementX=0,Q.displacementY=0}),this.constraints.alignmentConstraint){if(this.constraints.alignmentConstraint.vertical)for(var _=this.constraints.alignmentConstraint.vertical,D=0;D<_.length;D++){for(var O=0,N=0;N<_[D].length;N++){if(this.fixedNodeSet.has(_[D][N])){O=0;break}O+=this.idToNodeMap.get(_[D][N]).displacementX}for(var P=O/_[D].length,N=0;N<_[D].length;N++)this.idToNodeMap.get(_[D][N]).displacementX=P}if(this.constraints.alignmentConstraint.horizontal)for(var B=this.constraints.alignmentConstraint.horizontal,D=0;D1){var F;for(F=0;FO&&(O=Math.floor(B.y)),P=Math.floor(B.x+m.DEFAULT_COMPONENT_SEPERATION)}this.transform(new b(v.WORLD_CENTER_X-B.x/2,v.WORLD_CENTER_Y-B.y/2))},I.radialLayout=function(E,_,D){var O=Math.max(this.maxDiagonalInTree(E),m.DEFAULT_RADIAL_SEPARATION);I.branchRadialLayout(_,null,0,359,0,O);var N=C.calculateBounds(E),P=new A;P.setDeviceOrgX(N.getMinX()),P.setDeviceOrgY(N.getMinY()),P.setWorldOrgX(D.x),P.setWorldOrgY(D.y);for(var B=0;B1;){var re=te[0];te.splice(0,1);var J=ee.indexOf(re);J>=0&&ee.splice(J,1),Q--,q--}_!=null?ue=(ee.indexOf(te[0])+1)%Q:ue=0;for(var K=Math.abs(O-D)/q,ae=ue;oe!=q;ae=++ae%Q){var Z=ee[ae].getOtherEnd(E);if(Z!=_){var de=(D+oe*K)%360,ne=(de+K)%360;I.branchRadialLayout(Z,E,de,ne,N+P,P),oe++}}},I.maxDiagonalInTree=function(E){for(var _=w.MIN_VALUE,D=0;D_&&(_=N)}return _},I.prototype.calcRepulsionRange=function(){return 2*(this.level+1)*this.idealEdgeLength},I.prototype.groupZeroDegreeMembers=function(){var E=this,_={};this.memberGroups={},this.idToDummyNode={};for(var D=[],O=this.graphManager.getAllNodes(),N=0;N"u"&&(_[F]=[]),_[F]=_[F].concat(P)}Object.keys(_).forEach(function(V){if(_[V].length>1){var $="DummyCompound_"+V;E.memberGroups[$]=_[V];var U=_[V][0].getParent(),j=new d(E.graphManager);j.id=$,j.paddingLeft=U.paddingLeft||0,j.paddingRight=U.paddingRight||0,j.paddingBottom=U.paddingBottom||0,j.paddingTop=U.paddingTop||0,E.idToDummyNode[$]=j;var ee=E.getGraphManager().add(E.newGraph(),j),q=U.getChild();q.add(j);for(var oe=0;oe<_[V].length;oe++){var Q=_[V][oe];q.remove(Q),ee.add(Q)}}})},I.prototype.clearCompounds=function(){var E={},_={};this.performDFSOnCompounds();for(var D=0;DN?(O.rect.x-=(O.labelWidth-N)/2,O.setWidth(O.labelWidth),O.labelMarginLeft=(O.labelWidth-N)/2):O.labelPosHorizontal=="right"&&O.setWidth(N+O.labelWidth)),O.labelHeight&&(O.labelPosVertical=="top"?(O.rect.y-=O.labelHeight,O.setHeight(P+O.labelHeight),O.labelMarginTop=O.labelHeight):O.labelPosVertical=="center"&&O.labelHeight>P?(O.rect.y-=(O.labelHeight-P)/2,O.setHeight(O.labelHeight),O.labelMarginTop=(O.labelHeight-P)/2):O.labelPosVertical=="bottom"&&O.setHeight(P+O.labelHeight))}})},I.prototype.repopulateCompounds=function(){for(var E=this.compoundOrder.length-1;E>=0;E--){var _=this.compoundOrder[E],D=_.id,O=_.paddingLeft,N=_.paddingTop,P=_.labelMarginLeft,B=_.labelMarginTop;this.adjustLocations(this.tiledMemberPack[D],_.rect.x,_.rect.y,O,N,P,B)}},I.prototype.repopulateZeroDegreeMembers=function(){var E=this,_=this.tiledZeroDegreePack;Object.keys(_).forEach(function(D){var O=E.idToDummyNode[D],N=O.paddingLeft,P=O.paddingTop,B=O.labelMarginLeft,F=O.labelMarginTop;E.adjustLocations(_[D],O.rect.x,O.rect.y,N,P,B,F)})},I.prototype.getToBeTiled=function(E){var _=E.id;if(this.toBeTiled[_]!=null)return this.toBeTiled[_];var D=E.getChild();if(D==null)return this.toBeTiled[_]=!1,!1;for(var O=D.getNodes(),N=0;N0)return this.toBeTiled[_]=!1,!1;if(P.getChild()==null){this.toBeTiled[P.id]=!1;continue}if(!this.getToBeTiled(P))return this.toBeTiled[_]=!1,!1}return this.toBeTiled[_]=!0,!0},I.prototype.getNodeDegree=function(E){for(var _=E.id,D=E.getEdges(),O=0,N=0;NU&&(U=ee.rect.height)}D+=U+E.verticalPadding}},I.prototype.tileCompoundMembers=function(E,_){var D=this;this.tiledMemberPack=[],Object.keys(E).forEach(function(O){var N=_[O];if(D.tiledMemberPack[O]=D.tileNodes(E[O],N.paddingLeft+N.paddingRight),N.rect.width=D.tiledMemberPack[O].width,N.rect.height=D.tiledMemberPack[O].height,N.setCenter(D.tiledMemberPack[O].centerX,D.tiledMemberPack[O].centerY),N.labelMarginLeft=0,N.labelMarginTop=0,m.NODE_DIMENSIONS_INCLUDE_LABELS){var P=N.rect.width,B=N.rect.height;N.labelWidth&&(N.labelPosHorizontal=="left"?(N.rect.x-=N.labelWidth,N.setWidth(P+N.labelWidth),N.labelMarginLeft=N.labelWidth):N.labelPosHorizontal=="center"&&N.labelWidth>P?(N.rect.x-=(N.labelWidth-P)/2,N.setWidth(N.labelWidth),N.labelMarginLeft=(N.labelWidth-P)/2):N.labelPosHorizontal=="right"&&N.setWidth(P+N.labelWidth)),N.labelHeight&&(N.labelPosVertical=="top"?(N.rect.y-=N.labelHeight,N.setHeight(B+N.labelHeight),N.labelMarginTop=N.labelHeight):N.labelPosVertical=="center"&&N.labelHeight>B?(N.rect.y-=(N.labelHeight-B)/2,N.setHeight(N.labelHeight),N.labelMarginTop=(N.labelHeight-B)/2):N.labelPosVertical=="bottom"&&N.setHeight(B+N.labelHeight))}})},I.prototype.tileNodes=function(E,_){var D=this.tileNodesByFavoringDim(E,_,!0),O=this.tileNodesByFavoringDim(E,_,!1),N=this.getOrgRatio(D),P=this.getOrgRatio(O),B;return PF&&(F=oe.getWidth())});var V=P/N,$=B/N,U=Math.pow(D-O,2)+4*(V+O)*($+D)*N,j=(O-D+Math.sqrt(U))/(2*(V+O)),ee;_?(ee=Math.ceil(j),ee==j&&ee++):ee=Math.floor(j);var q=ee*(V+O)-O;return F>q&&(q=F),q+=O*2,q},I.prototype.tileNodesByFavoringDim=function(E,_,D){var O=m.TILING_PADDING_VERTICAL,N=m.TILING_PADDING_HORIZONTAL,P=m.TILING_COMPARE_BY,B={rows:[],rowWidth:[],rowHeight:[],width:0,height:_,verticalPadding:O,horizontalPadding:N,centerX:0,centerY:0};P&&(B.idealRowWidth=this.calcIdealRowWidth(E,D));var F=o(function(Q){return Q.rect.width*Q.rect.height},"getNodeArea"),V=o(function(Q,ue){return F(ue)-F(Q)},"areaCompareFcn");E.sort(function(oe,Q){var ue=V;return B.idealRowWidth?(ue=P,ue(oe.id,Q.id)):ue(oe,Q)});for(var $=0,U=0,j=0;j0&&(B+=E.horizontalPadding),E.rowWidth[D]=B,E.width0&&(F+=E.verticalPadding);var V=0;F>E.rowHeight[D]&&(V=E.rowHeight[D],E.rowHeight[D]=F,V=E.rowHeight[D]-V),E.height+=V,E.rows[D].push(_)},I.prototype.getShortestRowIndex=function(E){for(var _=-1,D=Number.MAX_VALUE,O=0;OD&&(_=O,D=E.rowWidth[O]);return _},I.prototype.canAddHorizontal=function(E,_,D){if(E.idealRowWidth){var O=E.rows.length-1,N=E.rowWidth[O];return N+_+E.horizontalPadding<=E.idealRowWidth}var P=this.getShortestRowIndex(E);if(P<0)return!0;var B=E.rowWidth[P];if(B+E.horizontalPadding+_<=E.width)return!0;var F=0;E.rowHeight[P]0&&(F=D+E.verticalPadding-E.rowHeight[P]);var V;E.width-B>=_+E.horizontalPadding?V=(E.height+F)/(B+_+E.horizontalPadding):V=(E.height+F)/E.width,F=D+E.verticalPadding;var $;return E.width<_?$=(E.height+F)/_:$=(E.height+F)/E.width,$<1&&($=1/$),V<1&&(V=1/V),V<$},I.prototype.shiftToLastRow=function(E){var _=this.getLongestRowIndex(E),D=E.rowWidth.length-1,O=E.rows[_],N=O[O.length-1],P=N.width+E.horizontalPadding;if(E.width-E.rowWidth[D]>P&&_!=D){O.splice(-1,1),E.rows[D].push(N),E.rowWidth[_]=E.rowWidth[_]-P,E.rowWidth[D]=E.rowWidth[D]+P,E.width=E.rowWidth[instance.getLongestRowIndex(E)];for(var B=Number.MIN_VALUE,F=0;FB&&(B=O[F].height);_>0&&(B+=E.verticalPadding);var V=E.rowHeight[_]+E.rowHeight[D];E.rowHeight[_]=B,E.rowHeight[D]0)for(var q=N;q<=P;q++)ee[0]+=this.grid[q][B-1].length+this.grid[q][B].length-1;if(P0)for(var q=B;q<=F;q++)ee[3]+=this.grid[N-1][q].length+this.grid[N][q].length-1;for(var oe=w.MAX_VALUE,Q,ue,te=0;te{var u=l(551).FDLayoutNode,h=l(551).IMath;function f(p,m,g,y){u.call(this,p,m,g,y)}o(f,"CoSENode"),f.prototype=Object.create(u.prototype);for(var d in u)f[d]=u[d];f.prototype.calculateDisplacement=function(){var p=this.graphManager.getLayout();this.getChild()!=null&&this.fixedNodeWeight?(this.displacementX+=p.coolingFactor*(this.springForceX+this.repulsionForceX+this.gravitationForceX)/this.fixedNodeWeight,this.displacementY+=p.coolingFactor*(this.springForceY+this.repulsionForceY+this.gravitationForceY)/this.fixedNodeWeight):(this.displacementX+=p.coolingFactor*(this.springForceX+this.repulsionForceX+this.gravitationForceX)/this.noOfChildren,this.displacementY+=p.coolingFactor*(this.springForceY+this.repulsionForceY+this.gravitationForceY)/this.noOfChildren),Math.abs(this.displacementX)>p.coolingFactor*p.maxNodeDisplacement&&(this.displacementX=p.coolingFactor*p.maxNodeDisplacement*h.sign(this.displacementX)),Math.abs(this.displacementY)>p.coolingFactor*p.maxNodeDisplacement&&(this.displacementY=p.coolingFactor*p.maxNodeDisplacement*h.sign(this.displacementY)),this.child&&this.child.getNodes().length>0&&this.propogateDisplacementToChildren(this.displacementX,this.displacementY)},f.prototype.propogateDisplacementToChildren=function(p,m){for(var g=this.getChild().getNodes(),y,v=0;v{function u(g){if(Array.isArray(g)){for(var y=0,v=Array(g.length);y0){var et=0;Oe.forEach(function(lt){he=="horizontal"?(ye.set(lt,x.has(lt)?b[x.get(lt)]:se.get(lt)),et+=ye.get(lt)):(ye.set(lt,x.has(lt)?T[x.get(lt)]:se.get(lt)),et+=ye.get(lt))}),et=et/Oe.length,We.forEach(function(lt){z.has(lt)||ye.set(lt,et)})}else{var Ue=0;We.forEach(function(lt){he=="horizontal"?Ue+=x.has(lt)?b[x.get(lt)]:se.get(lt):Ue+=x.has(lt)?T[x.get(lt)]:se.get(lt)}),Ue=Ue/We.length,We.forEach(function(lt){ye.set(lt,Ue)})}});for(var ze=o(function(){var Oe=_e.shift(),et=Y.get(Oe);et.forEach(function(Ue){if(ye.get(Ue.id)lt&&(lt=yt),ftGt&&(Gt=ft)}}catch(Ct){Lt=!0,dt=Ct}finally{try{!vt&&nt.return&&nt.return()}finally{if(Lt)throw dt}}var Ur=(et+lt)/2-(Ue+Gt)/2,_t=!0,bn=!1,Br=void 0;try{for(var cr=We[Symbol.iterator](),ar;!(_t=(ar=cr.next()).done);_t=!0){var _r=ar.value;ye.set(_r,ye.get(_r)+Ur)}}catch(Ct){bn=!0,Br=Ct}finally{try{!_t&&cr.return&&cr.return()}finally{if(bn)throw Br}}})}return ye},"findAppropriatePositionForRelativePlacement"),R=o(function(Y){var he=0,z=0,se=0,le=0;if(Y.forEach(function(Re){Re.left?b[x.get(Re.left)]-b[x.get(Re.right)]>=0?he++:z++:T[x.get(Re.top)]-T[x.get(Re.bottom)]>=0?se++:le++}),he>z&&se>le)for(var ke=0;kez)for(var ve=0;vele)for(var ye=0;ye1)y.fixedNodeConstraint.forEach(function(xe,Y){O[Y]=[xe.position.x,xe.position.y],N[Y]=[b[x.get(xe.nodeId)],T[x.get(xe.nodeId)]]}),P=!0;else if(y.alignmentConstraint)(function(){var xe=0;if(y.alignmentConstraint.vertical){for(var Y=y.alignmentConstraint.vertical,he=o(function(ye){var Re=new Set;Y[ye].forEach(function(Ke){Re.add(Ke)});var _e=new Set([].concat(u(Re)).filter(function(Ke){return F.has(Ke)})),ze=void 0;_e.size>0?ze=b[x.get(_e.values().next().value)]:ze=L(Re).x,Y[ye].forEach(function(Ke){O[xe]=[ze,T[x.get(Ke)]],N[xe]=[b[x.get(Ke)],T[x.get(Ke)]],xe++})},"_loop2"),z=0;z0?ze=b[x.get(_e.values().next().value)]:ze=L(Re).y,se[ye].forEach(function(Ke){O[xe]=[b[x.get(Ke)],ze],N[xe]=[b[x.get(Ke)],T[x.get(Ke)]],xe++})},"_loop3"),ke=0;kej&&(j=U[q].length,ee=q);if(j<$.size/2)R(y.relativePlacementConstraint),P=!1,B=!1;else{var oe=new Map,Q=new Map,ue=[];U[ee].forEach(function(xe){V.get(xe).forEach(function(Y){Y.direction=="horizontal"?(oe.has(xe)?oe.get(xe).push(Y):oe.set(xe,[Y]),oe.has(Y.id)||oe.set(Y.id,[]),ue.push({left:xe,right:Y.id})):(Q.has(xe)?Q.get(xe).push(Y):Q.set(xe,[Y]),Q.has(Y.id)||Q.set(Y.id,[]),ue.push({top:xe,bottom:Y.id}))})}),R(ue),B=!1;var te=I(oe,"horizontal"),re=I(Q,"vertical");U[ee].forEach(function(xe,Y){N[Y]=[b[x.get(xe)],T[x.get(xe)]],O[Y]=[],te.has(xe)?O[Y][0]=te.get(xe):O[Y][0]=b[x.get(xe)],re.has(xe)?O[Y][1]=re.get(xe):O[Y][1]=T[x.get(xe)]}),P=!0}}if(P){for(var J=void 0,K=d.transpose(O),ae=d.transpose(N),Z=0;Z0){var Be={x:0,y:0};y.fixedNodeConstraint.forEach(function(xe,Y){var he={x:b[x.get(xe.nodeId)],y:T[x.get(xe.nodeId)]},z=xe.position,se=A(z,he);Be.x+=se.x,Be.y+=se.y}),Be.x/=y.fixedNodeConstraint.length,Be.y/=y.fixedNodeConstraint.length,b.forEach(function(xe,Y){b[Y]+=Be.x}),T.forEach(function(xe,Y){T[Y]+=Be.y}),y.fixedNodeConstraint.forEach(function(xe){b[x.get(xe.nodeId)]=xe.position.x,T[x.get(xe.nodeId)]=xe.position.y})}if(y.alignmentConstraint){if(y.alignmentConstraint.vertical)for(var Ye=y.alignmentConstraint.vertical,He=o(function(Y){var he=new Set;Ye[Y].forEach(function(le){he.add(le)});var z=new Set([].concat(u(he)).filter(function(le){return F.has(le)})),se=void 0;z.size>0?se=b[x.get(z.values().next().value)]:se=L(he).x,he.forEach(function(le){F.has(le)||(b[x.get(le)]=se)})},"_loop4"),Le=0;Le0?se=T[x.get(z.values().next().value)]:se=L(he).y,he.forEach(function(le){F.has(le)||(T[x.get(le)]=se)})},"_loop5"),Ce=0;Ce{a.exports=t})},r={};function n(a){var s=r[a];if(s!==void 0)return s.exports;var l=r[a]={exports:{}};return e[a](l,l.exports,n),l.exports}o(n,"__webpack_require__");var i=n(45);return i})()})});var P4e=sa((F4,Pz)=>{"use strict";o((function(e,r){typeof F4=="object"&&typeof Pz=="object"?Pz.exports=r(Oz()):typeof define=="function"&&define.amd?define(["cose-base"],r):typeof F4=="object"?F4.cytoscapeFcose=r(Oz()):e.cytoscapeFcose=r(e.coseBase)}),"webpackUniversalModuleDefinition")(F4,function(t){return(()=>{"use strict";var e={658:(a=>{a.exports=Object.assign!=null?Object.assign.bind(Object):function(s){for(var l=arguments.length,u=Array(l>1?l-1:0),h=1;h{var u=(function(){function d(p,m){var g=[],y=!0,v=!1,x=void 0;try{for(var b=p[Symbol.iterator](),T;!(y=(T=b.next()).done)&&(g.push(T.value),!(m&&g.length===m));y=!0);}catch(S){v=!0,x=S}finally{try{!y&&b.return&&b.return()}finally{if(v)throw x}}return g}return o(d,"sliceIterator"),function(p,m){if(Array.isArray(p))return p;if(Symbol.iterator in Object(p))return d(p,m);throw new TypeError("Invalid attempt to destructure non-iterable instance")}})(),h=l(140).layoutBase.LinkedList,f={};f.getTopMostNodes=function(d){for(var p={},m=0;m0&&P.merge($)});for(var B=0;B1){T=x[0],S=T.connectedEdges().length,x.forEach(function(N){N.connectedEdges().length0&&g.set("dummy"+(g.size+1),C),A},f.relocateComponent=function(d,p,m){if(!m.fixedNodeConstraint){var g=Number.POSITIVE_INFINITY,y=Number.NEGATIVE_INFINITY,v=Number.POSITIVE_INFINITY,x=Number.NEGATIVE_INFINITY;if(m.quality=="draft"){var b=!0,T=!1,S=void 0;try{for(var w=p.nodeIndexes[Symbol.iterator](),k;!(b=(k=w.next()).done);b=!0){var C=k.value,A=u(C,2),L=A[0],I=A[1],R=m.cy.getElementById(L);if(R){var E=R.boundingBox(),_=p.xCoords[I]-E.w/2,D=p.xCoords[I]+E.w/2,O=p.yCoords[I]-E.h/2,N=p.yCoords[I]+E.h/2;_y&&(y=D),Ox&&(x=N)}}}catch($){T=!0,S=$}finally{try{!b&&w.return&&w.return()}finally{if(T)throw S}}var P=d.x-(y+g)/2,B=d.y-(x+v)/2;p.xCoords=p.xCoords.map(function($){return $+P}),p.yCoords=p.yCoords.map(function($){return $+B})}else{Object.keys(p).forEach(function($){var U=p[$],j=U.getRect().x,ee=U.getRect().x+U.getRect().width,q=U.getRect().y,oe=U.getRect().y+U.getRect().height;jy&&(y=ee),qx&&(x=oe)});var F=d.x-(y+g)/2,V=d.y-(x+v)/2;Object.keys(p).forEach(function($){var U=p[$];U.setCenter(U.getCenterX()+F,U.getCenterY()+V)})}}},f.calcBoundingBox=function(d,p,m,g){for(var y=Number.MAX_SAFE_INTEGER,v=Number.MIN_SAFE_INTEGER,x=Number.MAX_SAFE_INTEGER,b=Number.MIN_SAFE_INTEGER,T=void 0,S=void 0,w=void 0,k=void 0,C=d.descendants().not(":parent"),A=C.length,L=0;LT&&(y=T),vw&&(x=w),b{var u=l(548),h=l(140).CoSELayout,f=l(140).CoSENode,d=l(140).layoutBase.PointD,p=l(140).layoutBase.DimensionD,m=l(140).layoutBase.LayoutConstants,g=l(140).layoutBase.FDLayoutConstants,y=l(140).CoSEConstants,v=o(function(b,T){var S=b.cy,w=b.eles,k=w.nodes(),C=w.edges(),A=void 0,L=void 0,I=void 0,R={};b.randomize&&(A=T.nodeIndexes,L=T.xCoords,I=T.yCoords);var E=o(function($){return typeof $=="function"},"isFn"),_=o(function($,U){return E($)?$(U):$},"optFn"),D=u.calcParentsWithoutChildren(S,w),O=o(function V($,U,j,ee){for(var q=U.length,oe=0;oe0){var K=void 0;K=j.getGraphManager().add(j.newGraph(),te),V(K,ue,j,ee)}}},"processChildrenList"),N=o(function($,U,j){for(var ee=0,q=0,oe=0;oe0?y.DEFAULT_EDGE_LENGTH=g.DEFAULT_EDGE_LENGTH=ee/q:E(b.idealEdgeLength)?y.DEFAULT_EDGE_LENGTH=g.DEFAULT_EDGE_LENGTH=50:y.DEFAULT_EDGE_LENGTH=g.DEFAULT_EDGE_LENGTH=b.idealEdgeLength,y.MIN_REPULSION_DIST=g.MIN_REPULSION_DIST=g.DEFAULT_EDGE_LENGTH/10,y.DEFAULT_RADIAL_SEPARATION=g.DEFAULT_EDGE_LENGTH)},"processEdges"),P=o(function($,U){U.fixedNodeConstraint&&($.constraints.fixedNodeConstraint=U.fixedNodeConstraint),U.alignmentConstraint&&($.constraints.alignmentConstraint=U.alignmentConstraint),U.relativePlacementConstraint&&($.constraints.relativePlacementConstraint=U.relativePlacementConstraint)},"processConstraints");b.nestingFactor!=null&&(y.PER_LEVEL_IDEAL_EDGE_LENGTH_FACTOR=g.PER_LEVEL_IDEAL_EDGE_LENGTH_FACTOR=b.nestingFactor),b.gravity!=null&&(y.DEFAULT_GRAVITY_STRENGTH=g.DEFAULT_GRAVITY_STRENGTH=b.gravity),b.numIter!=null&&(y.MAX_ITERATIONS=g.MAX_ITERATIONS=b.numIter),b.gravityRange!=null&&(y.DEFAULT_GRAVITY_RANGE_FACTOR=g.DEFAULT_GRAVITY_RANGE_FACTOR=b.gravityRange),b.gravityCompound!=null&&(y.DEFAULT_COMPOUND_GRAVITY_STRENGTH=g.DEFAULT_COMPOUND_GRAVITY_STRENGTH=b.gravityCompound),b.gravityRangeCompound!=null&&(y.DEFAULT_COMPOUND_GRAVITY_RANGE_FACTOR=g.DEFAULT_COMPOUND_GRAVITY_RANGE_FACTOR=b.gravityRangeCompound),b.initialEnergyOnIncremental!=null&&(y.DEFAULT_COOLING_FACTOR_INCREMENTAL=g.DEFAULT_COOLING_FACTOR_INCREMENTAL=b.initialEnergyOnIncremental),b.tilingCompareBy!=null&&(y.TILING_COMPARE_BY=b.tilingCompareBy),b.quality=="proof"?m.QUALITY=2:m.QUALITY=0,y.NODE_DIMENSIONS_INCLUDE_LABELS=g.NODE_DIMENSIONS_INCLUDE_LABELS=m.NODE_DIMENSIONS_INCLUDE_LABELS=b.nodeDimensionsIncludeLabels,y.DEFAULT_INCREMENTAL=g.DEFAULT_INCREMENTAL=m.DEFAULT_INCREMENTAL=!b.randomize,y.ANIMATE=g.ANIMATE=m.ANIMATE=b.animate,y.TILE=b.tile,y.TILING_PADDING_VERTICAL=typeof b.tilingPaddingVertical=="function"?b.tilingPaddingVertical.call():b.tilingPaddingVertical,y.TILING_PADDING_HORIZONTAL=typeof b.tilingPaddingHorizontal=="function"?b.tilingPaddingHorizontal.call():b.tilingPaddingHorizontal,y.DEFAULT_INCREMENTAL=g.DEFAULT_INCREMENTAL=m.DEFAULT_INCREMENTAL=!0,y.PURE_INCREMENTAL=!b.randomize,m.DEFAULT_UNIFORM_LEAF_NODE_SIZES=b.uniformNodeDimensions,b.step=="transformed"&&(y.TRANSFORM_ON_CONSTRAINT_HANDLING=!0,y.ENFORCE_CONSTRAINTS=!1,y.APPLY_LAYOUT=!1),b.step=="enforced"&&(y.TRANSFORM_ON_CONSTRAINT_HANDLING=!1,y.ENFORCE_CONSTRAINTS=!0,y.APPLY_LAYOUT=!1),b.step=="cose"&&(y.TRANSFORM_ON_CONSTRAINT_HANDLING=!1,y.ENFORCE_CONSTRAINTS=!1,y.APPLY_LAYOUT=!0),b.step=="all"&&(b.randomize?y.TRANSFORM_ON_CONSTRAINT_HANDLING=!0:y.TRANSFORM_ON_CONSTRAINT_HANDLING=!1,y.ENFORCE_CONSTRAINTS=!0,y.APPLY_LAYOUT=!0),b.fixedNodeConstraint||b.alignmentConstraint||b.relativePlacementConstraint?y.TREE_REDUCTION_ON_INCREMENTAL=!1:y.TREE_REDUCTION_ON_INCREMENTAL=!0;var B=new h,F=B.newGraphManager();return O(F.addRoot(),u.getTopMostNodes(k),B,b),N(B,F,C),P(B,b),B.runLayout(),R},"coseLayout");a.exports={coseLayout:v}}),212:((a,s,l)=>{var u=(function(){function b(T,S){for(var w=0;w0)if(N){var F=d.getTopMostNodes(w.eles.nodes());if(E=d.connectComponents(k,w.eles,F),E.forEach(function(Te){var W=Te.boundingBox();_.push({x:W.x1+W.w/2,y:W.y1+W.h/2})}),w.randomize&&E.forEach(function(Te){w.eles=Te,A.push(m(w))}),w.quality=="default"||w.quality=="proof"){var V=k.collection();if(w.tile){var $=new Map,U=[],j=[],ee=0,q={nodeIndexes:$,xCoords:U,yCoords:j},oe=[];if(E.forEach(function(Te,W){Te.edges().length==0&&(Te.nodes().forEach(function(Ve,pe){V.merge(Te.nodes()[pe]),Ve.isParent()||(q.nodeIndexes.set(Te.nodes()[pe].id(),ee++),q.xCoords.push(Te.nodes()[0].position().x),q.yCoords.push(Te.nodes()[0].position().y))}),oe.push(W))}),V.length>1){var Q=V.boundingBox();_.push({x:Q.x1+Q.w/2,y:Q.y1+Q.h/2}),E.push(V),A.push(q);for(var ue=oe.length-1;ue>=0;ue--)E.splice(oe[ue],1),A.splice(oe[ue],1),_.splice(oe[ue],1)}}E.forEach(function(Te,W){w.eles=Te,R.push(y(w,A[W])),d.relocateComponent(_[W],R[W],w)})}else E.forEach(function(Te,W){d.relocateComponent(_[W],A[W],w)});var te=new Set;if(E.length>1){var re=[],J=C.filter(function(Te){return Te.css("display")=="none"});E.forEach(function(Te,W){var Ve=void 0;if(w.quality=="draft"&&(Ve=A[W].nodeIndexes),Te.nodes().not(J).length>0){var pe={};pe.edges=[],pe.nodes=[];var Be=void 0;Te.nodes().not(J).forEach(function(Ye){if(w.quality=="draft")if(!Ye.isParent())Be=Ve.get(Ye.id()),pe.nodes.push({x:A[W].xCoords[Be]-Ye.boundingbox().w/2,y:A[W].yCoords[Be]-Ye.boundingbox().h/2,width:Ye.boundingbox().w,height:Ye.boundingbox().h});else{var He=d.calcBoundingBox(Ye,A[W].xCoords,A[W].yCoords,Ve);pe.nodes.push({x:He.topLeftX,y:He.topLeftY,width:He.width,height:He.height})}else R[W][Ye.id()]&&pe.nodes.push({x:R[W][Ye.id()].getLeft(),y:R[W][Ye.id()].getTop(),width:R[W][Ye.id()].getWidth(),height:R[W][Ye.id()].getHeight()})}),Te.edges().forEach(function(Ye){var He=Ye.source(),Le=Ye.target();if(He.css("display")!="none"&&Le.css("display")!="none")if(w.quality=="draft"){var Ie=Ve.get(He.id()),Ne=Ve.get(Le.id()),Ce=[],Fe=[];if(He.isParent()){var fe=d.calcBoundingBox(He,A[W].xCoords,A[W].yCoords,Ve);Ce.push(fe.topLeftX+fe.width/2),Ce.push(fe.topLeftY+fe.height/2)}else Ce.push(A[W].xCoords[Ie]),Ce.push(A[W].yCoords[Ie]);if(Le.isParent()){var xe=d.calcBoundingBox(Le,A[W].xCoords,A[W].yCoords,Ve);Fe.push(xe.topLeftX+xe.width/2),Fe.push(xe.topLeftY+xe.height/2)}else Fe.push(A[W].xCoords[Ne]),Fe.push(A[W].yCoords[Ne]);pe.edges.push({startX:Ce[0],startY:Ce[1],endX:Fe[0],endY:Fe[1]})}else R[W][He.id()]&&R[W][Le.id()]&&pe.edges.push({startX:R[W][He.id()].getCenterX(),startY:R[W][He.id()].getCenterY(),endX:R[W][Le.id()].getCenterX(),endY:R[W][Le.id()].getCenterY()})}),pe.nodes.length>0&&(re.push(pe),te.add(W))}});var K=O.packComponents(re,w.randomize).shifts;if(w.quality=="draft")A.forEach(function(Te,W){var Ve=Te.xCoords.map(function(Be){return Be+K[W].dx}),pe=Te.yCoords.map(function(Be){return Be+K[W].dy});Te.xCoords=Ve,Te.yCoords=pe});else{var ae=0;te.forEach(function(Te){Object.keys(R[Te]).forEach(function(W){var Ve=R[Te][W];Ve.setCenter(Ve.getCenterX()+K[ae].dx,Ve.getCenterY()+K[ae].dy)}),ae++})}}}else{var P=w.eles.boundingBox();if(_.push({x:P.x1+P.w/2,y:P.y1+P.h/2}),w.randomize){var B=m(w);A.push(B)}w.quality=="default"||w.quality=="proof"?(R.push(y(w,A[0])),d.relocateComponent(_[0],R[0],w)):d.relocateComponent(_[0],A[0],w)}var Z=o(function(W,Ve){if(w.quality=="default"||w.quality=="proof"){typeof W=="number"&&(W=Ve);var pe=void 0,Be=void 0,Ye=W.data("id");return R.forEach(function(Le){Ye in Le&&(pe={x:Le[Ye].getRect().getCenterX(),y:Le[Ye].getRect().getCenterY()},Be=Le[Ye])}),w.nodeDimensionsIncludeLabels&&(Be.labelWidth&&(Be.labelPosHorizontal=="left"?pe.x+=Be.labelWidth/2:Be.labelPosHorizontal=="right"&&(pe.x-=Be.labelWidth/2)),Be.labelHeight&&(Be.labelPosVertical=="top"?pe.y+=Be.labelHeight/2:Be.labelPosVertical=="bottom"&&(pe.y-=Be.labelHeight/2))),pe==null&&(pe={x:W.position("x"),y:W.position("y")}),{x:pe.x,y:pe.y}}else{var He=void 0;return A.forEach(function(Le){var Ie=Le.nodeIndexes.get(W.id());Ie!=null&&(He={x:Le.xCoords[Ie],y:Le.yCoords[Ie]})}),He==null&&(He={x:W.position("x"),y:W.position("y")}),{x:He.x,y:He.y}}},"getPositions");if(w.quality=="default"||w.quality=="proof"||w.randomize){var de=d.calcParentsWithoutChildren(k,C),ne=C.filter(function(Te){return Te.css("display")=="none"});w.eles=C.not(ne),C.nodes().not(":parent").not(ne).layoutPositions(S,w,Z),de.length>0&&de.forEach(function(Te){Te.position(Z(Te))})}else console.log("If randomize option is set to false, then quality option must be 'default' or 'proof'.")},"run")}]),b})();a.exports=x}),657:((a,s,l)=>{var u=l(548),h=l(140).layoutBase.Matrix,f=l(140).layoutBase.SVD,d=o(function(m){var g=m.cy,y=m.eles,v=y.nodes(),x=y.nodes(":parent"),b=new Map,T=new Map,S=new Map,w=[],k=[],C=[],A=[],L=[],I=[],R=[],E=[],_=void 0,D=void 0,O=1e8,N=1e-9,P=m.piTol,B=m.samplingType,F=m.nodeSeparation,V=void 0,$=o(function(){for(var he=0,z=0,se=!1;z=ke;){ye=le[ke++];for(var We=w[ye],Oe=0;Oeze&&(ze=L[Ue],Ke=Ue)}return Ke},"BFS"),j=o(function(he){var z=void 0;if(he){z=Math.floor(Math.random()*D),_=z;for(var le=0;le=1)break;ze=_e}for(var We=0;We=1)break;ze=_e}for(var et=0;et0&&(z.isParent()?w[he].push(S.get(z.id())):w[he].push(z.id()))})});var de=o(function(he){var z=T.get(he),se=void 0;b.get(he).forEach(function(le){g.getElementById(le).isParent()?se=S.get(le):se=le,w[z].push(se),w[T.get(se)].push(he)})},"_loop"),ne=!0,Te=!1,W=void 0;try{for(var Ve=b.keys()[Symbol.iterator](),pe;!(ne=(pe=Ve.next()).done);ne=!0){var Be=pe.value;de(Be)}}catch(Y){Te=!0,W=Y}finally{try{!ne&&Ve.return&&Ve.return()}finally{if(Te)throw W}}D=T.size;var Ye=void 0;if(D>2){V=D{var u=l(212),h=o(function(d){d&&d("layout","fcose",u)},"register");typeof cytoscape<"u"&&h(cytoscape),a.exports=h}),140:(a=>{a.exports=t})},r={};function n(a){var s=r[a];if(s!==void 0)return s.exports;var l=r[a]={exports:{}};return e[a](l,l.exports,n),l.exports}o(n,"__webpack_require__");var i=n(579);return i})()})});var by,m0,Bz=M(()=>{"use strict";nc();by=o(t=>`${t}`,"wrapIcon"),m0={prefix:"mermaid-architecture",height:80,width:80,icons:{database:{body:by('')},server:{body:by('')},disk:{body:by('')},internet:{body:by('')},cloud:{body:by('')},unknown:AA,blank:{body:by("")}}}});var B4e,F4e,$4e,z4e,G4e=M(()=>{"use strict";Xt();zo();nc();gr();Bz();PC();tr();B4e=o(async function(t,e,r){let n=r.getConfigField("padding"),i=r.getConfigField("iconSize"),a=i/2,s=i/6,l=s/2;await Promise.all(e.edges().map(async u=>{let{source:h,sourceDir:f,sourceArrow:d,sourceGroup:p,target:m,targetDir:g,targetArrow:y,targetGroup:v,label:x}=OC(u),{x:b,y:T}=u[0].sourceEndpoint(),{x:S,y:w}=u[0].midpoint(),{x:k,y:C}=u[0].targetEndpoint(),A=n+4;if(p&&(Xa(f)?b+=f==="L"?-A:A:T+=f==="T"?-A:A+18),v&&(Xa(g)?k+=g==="L"?-A:A:C+=g==="T"?-A:A+18),!p&&r.getNode(h)?.type==="junction"&&(Xa(f)?b+=f==="L"?a:-a:T+=f==="T"?a:-a),!v&&r.getNode(m)?.type==="junction"&&(Xa(g)?k+=g==="L"?a:-a:C+=g==="T"?a:-a),u[0]._private.rscratch){let L=t.insert("g");if(L.insert("path").attr("d",`M ${b},${T} L ${S},${w} L${k},${C} `).attr("class","edge").attr("id",xc(h,m,{prefix:"L"})),d){let I=Xa(f)?M4[f](b,s):b-l,R=nu(f)?M4[f](T,s):T-l;L.insert("polygon").attr("points",_z[f](s)).attr("transform",`translate(${I},${R})`).attr("class","arrow")}if(y){let I=Xa(g)?M4[g](k,s):k-l,R=nu(g)?M4[g](C,s):C-l;L.insert("polygon").attr("points",_z[g](s)).attr("transform",`translate(${I},${R})`).attr("class","arrow")}if(x){let I=I4(f,g)?"XY":Xa(f)?"X":"Y",R=0;I==="X"?R=Math.abs(b-k):I==="Y"?R=Math.abs(T-C)/1.5:R=Math.abs(b-k)/2;let E=L.append("g");if(await di(E,x,{useHtmlLabels:!1,width:R,classes:"architecture-service-label"},ge()),E.attr("dy","1em").attr("alignment-baseline","middle").attr("dominant-baseline","middle").attr("text-anchor","middle"),I==="X")E.attr("transform","translate("+S+", "+w+")");else if(I==="Y")E.attr("transform","translate("+S+", "+w+") rotate(-90)");else if(I==="XY"){let _=O4(f,g);if(_&&A4e(_)){let D=E.node().getBoundingClientRect(),[O,N]=D4e(_);E.attr("dominant-baseline","auto").attr("transform",`rotate(${-1*O*N*45})`);let P=E.node().getBoundingClientRect();E.attr("transform",` + translate(${S}, ${w-D.height/2}) + translate(${O*P.width/2}, ${N*P.height/2}) + rotate(${-1*O*N*45}, 0, ${D.height/2}) + `)}}}}}))},"drawEdges"),F4e=o(async function(t,e,r){let i=r.getConfigField("padding")*.75,a=r.getConfigField("fontSize"),l=r.getConfigField("iconSize")/2;await Promise.all(e.nodes().map(async u=>{let h=td(u);if(h.type==="group"){let{h:f,w:d,x1:p,y1:m}=u.boundingBox(),g=t.append("rect");g.attr("id",`group-${h.id}`).attr("x",p+l).attr("y",m+l).attr("width",d).attr("height",f).attr("class","node-bkg");let y=t.append("g"),v=p,x=m;if(h.icon){let b=y.append("g");b.html(`${await _s(h.icon,{height:i,width:i,fallbackPrefix:m0.prefix})}`),b.attr("transform","translate("+(v+l+1)+", "+(x+l+1)+")"),v+=i,x+=a/2-1-2}if(h.label){let b=y.append("g");await di(b,h.label,{useHtmlLabels:!1,width:d,classes:"architecture-service-label"},ge()),b.attr("dy","1em").attr("alignment-baseline","middle").attr("dominant-baseline","start").attr("text-anchor","start"),b.attr("transform","translate("+(v+l+4)+", "+(x+l+2)+")")}r.setElementForId(h.id,g)}}))},"drawGroups"),$4e=o(async function(t,e,r){let n=ge();for(let i of r){let a=e.append("g"),s=t.getConfigField("iconSize");if(i.title){let f=a.append("g");await di(f,i.title,{useHtmlLabels:!1,width:s*1.5,classes:"architecture-service-label"},n),f.attr("dy","1em").attr("alignment-baseline","middle").attr("dominant-baseline","middle").attr("text-anchor","middle"),f.attr("transform","translate("+s/2+", "+s+")")}let l=a.append("g");if(i.icon)l.html(`${await _s(i.icon,{height:s,width:s,fallbackPrefix:m0.prefix})}`);else if(i.iconText){l.html(`${await _s("blank",{height:s,width:s,fallbackPrefix:m0.prefix})}`);let p=l.append("g").append("foreignObject").attr("width",s).attr("height",s).append("div").attr("class","node-icon-text").attr("style",`height: ${s}px;`).append("div").html(sr(i.iconText,n)),m=parseInt(window.getComputedStyle(p.node(),null).getPropertyValue("font-size").replace(/\D/g,""))??16;p.attr("style",`-webkit-line-clamp: ${Math.floor((s-2)/m)};`)}else l.append("path").attr("class","node-bkg").attr("id","node-"+i.id).attr("d",`M0 ${s} v${-s} q0,-5 5,-5 h${s} q5,0 5,5 v${s} H0 Z`);a.attr("id",`service-${i.id}`).attr("class","architecture-service");let{width:u,height:h}=a.node().getBBox();i.width=u,i.height=h,t.setElementForId(i.id,a)}return 0},"drawServices"),z4e=o(function(t,e,r){r.forEach(n=>{let i=e.append("g"),a=t.getConfigField("iconSize");i.append("g").append("rect").attr("id","node-"+n.id).attr("fill-opacity","0").attr("width",a).attr("height",a),i.attr("class","architecture-junction");let{width:l,height:u}=i._groups[0][0].getBBox();i.width=l,i.height=u,t.setElementForId(n.id,i)})},"drawJunctions")});function Iit(t,e,r){t.forEach(n=>{e.add({group:"nodes",data:{type:"service",id:n.id,icon:n.icon,label:n.title,parent:n.in,width:r.getConfigField("iconSize"),height:r.getConfigField("iconSize")},classes:"node-service"})})}function Oit(t,e,r){t.forEach(n=>{e.add({group:"nodes",data:{type:"junction",id:n.id,parent:n.in,width:r.getConfigField("iconSize"),height:r.getConfigField("iconSize")},classes:"node-junction"})})}function Pit(t,e){e.nodes().map(r=>{let n=td(r);if(n.type==="group")return;n.x=r.position().x,n.y=r.position().y,t.getElementById(n.id).attr("transform","translate("+(n.x||0)+","+(n.y||0)+")")})}function Bit(t,e){t.forEach(r=>{e.add({group:"nodes",data:{type:"group",id:r.id,icon:r.icon,label:r.title,parent:r.in},classes:"node-group"})})}function Fit(t,e){t.forEach(r=>{let{lhsId:n,rhsId:i,lhsInto:a,lhsGroup:s,rhsInto:l,lhsDir:u,rhsDir:h,rhsGroup:f,title:d}=r,p=I4(r.lhsDir,r.rhsDir)?"segments":"straight",m={id:`${n}-${i}`,label:d,source:n,sourceDir:u,sourceArrow:a,sourceGroup:s,sourceEndpoint:u==="L"?"0 50%":u==="R"?"100% 50%":u==="T"?"50% 0":"50% 100%",target:i,targetDir:h,targetArrow:l,targetGroup:f,targetEndpoint:h==="L"?"0 50%":h==="R"?"100% 50%":h==="T"?"50% 0":"50% 100%"};e.add({group:"edges",data:m,classes:p})})}function $it(t,e,r){let n=o((l,u)=>Object.entries(l).reduce((h,[f,d])=>{let p=0,m=Object.entries(d);if(m.length===1)return h[f]=m[0][1],h;for(let g=0;g{let u={},h={};return Object.entries(l).forEach(([f,[d,p]])=>{let m=t.getNode(f)?.in??"default";u[p]??={},u[p][m]??=[],u[p][m].push(f),h[d]??={},h[d][m]??=[],h[d][m].push(f)}),{horiz:Object.values(n(u,"horizontal")).filter(f=>f.length>1),vert:Object.values(n(h,"vertical")).filter(f=>f.length>1)}}),[a,s]=i.reduce(([l,u],{horiz:h,vert:f})=>[[...l,...h],[...u,...f]],[[],[]]);return{horizontal:a,vertical:s}}function zit(t,e){let r=[],n=o(a=>`${a[0]},${a[1]}`,"posToStr"),i=o(a=>a.split(",").map(s=>parseInt(s)),"strToPos");return t.forEach(a=>{let s=Object.fromEntries(Object.entries(a).map(([f,d])=>[n(d),f])),l=[n([0,0])],u={},h={L:[-1,0],R:[1,0],T:[0,1],B:[0,-1]};for(;l.length>0;){let f=l.shift();if(f){u[f]=1;let d=s[f];if(d){let p=i(f);Object.entries(h).forEach(([m,g])=>{let y=n([p[0]+g[0],p[1]+g[1]]),v=s[y];v&&!u[y]&&(l.push(y),r.push({[Az[m]]:v,[Az[C4e(m)]]:d,gap:1.5*e.getConfigField("iconSize")}))})}}}}),r}function Git(t,e,r,n,i,{spatialMaps:a,groupAlignments:s}){return new Promise(l=>{let u=qe("body").append("div").attr("id","cy").attr("style","display:none"),h=Ko({container:document.getElementById("cy"),style:[{selector:"edge",style:{"curve-style":"straight",label:"data(label)","source-endpoint":"data(sourceEndpoint)","target-endpoint":"data(targetEndpoint)"}},{selector:"edge.segments",style:{"curve-style":"segments","segment-weights":"0","segment-distances":[.5],"edge-distances":"endpoints","source-endpoint":"data(sourceEndpoint)","target-endpoint":"data(targetEndpoint)"}},{selector:"node",style:{"compound-sizing-wrt-labels":"include"}},{selector:"node[label]",style:{"text-valign":"bottom","text-halign":"center","font-size":`${i.getConfigField("fontSize")}px`}},{selector:".node-service",style:{label:"data(label)",width:"data(width)",height:"data(height)"}},{selector:".node-junction",style:{width:"data(width)",height:"data(height)"}},{selector:".node-group",style:{padding:`${i.getConfigField("padding")}px`}}],layout:{name:"grid",boundingBox:{x1:0,x2:100,y1:0,y2:100}}});u.remove(),Bit(r,h),Iit(t,h,i),Oit(e,h,i),Fit(n,h);let f=$it(i,a,s),d=zit(a,i),p=h.layout({name:"fcose",quality:"proof",styleEnabled:!1,animate:!1,nodeDimensionsIncludeLabels:!1,idealEdgeLength(m){let[g,y]=m.connectedNodes(),{parent:v}=td(g),{parent:x}=td(y);return v===x?1.5*i.getConfigField("iconSize"):.5*i.getConfigField("iconSize")},edgeElasticity(m){let[g,y]=m.connectedNodes(),{parent:v}=td(g),{parent:x}=td(y);return v===x?.45:.001},alignmentConstraint:f,relativePlacementConstraint:d});p.one("layoutstop",()=>{function m(g,y,v,x){let b,T,{x:S,y:w}=g,{x:k,y:C}=y;T=(x-w+(S-v)*(w-C)/(S-k))/Math.sqrt(1+Math.pow((w-C)/(S-k),2)),b=Math.sqrt(Math.pow(x-w,2)+Math.pow(v-S,2)-Math.pow(T,2));let A=Math.sqrt(Math.pow(k-S,2)+Math.pow(C-w,2));b=b/A;let L=(k-S)*(x-w)-(C-w)*(v-S);switch(!0){case L>=0:L=1;break;case L<0:L=-1;break}let I=(k-S)*(v-S)+(C-w)*(x-w);switch(!0){case I>=0:I=1;break;case I<0:I=-1;break}return T=Math.abs(T)*L,b=b*I,{distances:T,weights:b}}o(m,"getSegmentWeights"),h.startBatch();for(let g of Object.values(h.edges()))if(g.data?.()){let{x:y,y:v}=g.source().position(),{x,y:b}=g.target().position();if(y!==x&&v!==b){let T=g.sourceEndpoint(),S=g.targetEndpoint(),{sourceDir:w}=OC(g),[k,C]=nu(w)?[T.x,S.y]:[S.x,T.y],{weights:A,distances:L}=m(T,S,k,C);g.style("segment-distances",L),g.style("segment-weights",A)}}h.endBatch(),p.run()}),p.run(),h.ready(m=>{X.info("Ready",m),l(h)})})}var V4e,Vit,U4e,H4e=M(()=>{"use strict";II();V4e=La(P4e(),1);yr();pt();nc();tu();Ei();Bz();PC();G4e();P3([{name:m0.prefix,icons:m0}]);Ko.use(V4e.default);o(Iit,"addServices");o(Oit,"addJunctions");o(Pit,"positionNodes");o(Bit,"addGroups");o(Fit,"addEdges");o($it,"getAlignments");o(zit,"getRelativeConstraints");o(Git,"layoutArchitecture");Vit=o(async(t,e,r,n)=>{let i=n.db,a=i.getServices(),s=i.getJunctions(),l=i.getGroups(),u=i.getEdges(),h=i.getDataStructures(),f=aa(e),d=f.append("g");d.attr("class","architecture-edges");let p=f.append("g");p.attr("class","architecture-services");let m=f.append("g");m.attr("class","architecture-groups"),await $4e(i,p,a),z4e(i,p,s);let g=await Git(a,s,l,u,i,h);await B4e(d,g,i),await F4e(m,g,i),Pit(i,g),ic(void 0,f,i.getConfigField("padding"),i.getConfigField("useMaxWidth"))},"draw"),U4e={draw:Vit}});var q4e={};dr(q4e,{diagram:()=>Uit});var Uit,W4e=M(()=>{"use strict";M4e();Lz();O4e();H4e();Uit={parser:Rz,get db(){return new xy},renderer:U4e,styles:I4e}});var Ty,Fz=M(()=>{"use strict";Ra();qn();tr();$t();ci();Ty=class{constructor(){this.nodes=[];this.levels=new Map;this.outerNodes=[];this.classes=new Map;this.setAccTitle=Rr;this.getAccTitle=Mr;this.setDiagramTitle=$r;this.getDiagramTitle=Pr;this.getAccDescription=Or;this.setAccDescription=Ir}static{o(this,"TreeMapDB")}getNodes(){return this.nodes}getConfig(){let e=ur,r=Qt();return Vn({...e.treemap,...r.treemap??{}})}addNode(e,r){this.nodes.push(e),this.levels.set(e,r),r===0&&(this.outerNodes.push(e),this.root??=e)}getRoot(){return{name:"",children:this.outerNodes}}addClass(e,r){let n=this.classes.get(e)??{id:e,styles:[],textStyles:[]},i=r.replace(/\\,/g,"\xA7\xA7\xA7").replace(/,/g,";").replace(/§§§/g,",").split(";");i&&i.forEach(a=>{D2(a)&&(n?.textStyles?n.textStyles.push(a):n.textStyles=[a]),n?.styles?n.styles.push(a):n.styles=[a]}),this.classes.set(e,n)}getClasses(){return this.classes}getStylesForClass(e){return this.classes.get(e)?.styles??[]}clear(){Sr(),this.nodes=[],this.levels=new Map,this.outerNodes=[],this.classes=new Map,this.root=void 0}}});function j4e(t){if(!t.length)return[];let e=[],r=[];return t.forEach(n=>{let i={name:n.name,children:n.type==="Leaf"?void 0:[]};for(i.classSelector=n?.classSelector,n?.cssCompiledStyles&&(i.cssCompiledStyles=[n.cssCompiledStyles]),n.type==="Leaf"&&n.value!==void 0&&(i.value=n.value);r.length>0&&r[r.length-1].level>=n.level;)r.pop();if(r.length===0)e.push(i);else{let a=r[r.length-1].node;a.children?a.children.push(i):a.children=[i]}n.type!=="Leaf"&&r.push({node:i,level:n.level})}),e}var K4e=M(()=>{"use strict";o(j4e,"buildHierarchy")});var Yit,Xit,$z,Q4e=M(()=>{"use strict";Uf();pt();r0();K4e();Fz();Yit=o((t,e)=>{nl(t,e);let r=[];for(let a of t.TreemapRows??[])a.$type==="ClassDefStatement"&&e.addClass(a.className??"",a.styleText??"");for(let a of t.TreemapRows??[]){let s=a.item;if(!s)continue;let l=a.indent?parseInt(a.indent):0,u=Xit(s),h=s.classSelector?e.getStylesForClass(s.classSelector):[],f=h.length>0?h.join(";"):void 0,d={level:l,name:u,type:s.$type,value:s.value,classSelector:s.classSelector,cssCompiledStyles:f};r.push(d)}let n=j4e(r),i=o((a,s)=>{for(let l of a)e.addNode(l,s),l.children&&l.children.length>0&&i(l.children,s+1)},"addNodesRecursively");i(n,0)},"populate"),Xit=o(t=>t.name?String(t.name):"","getItemName"),$z={parser:{yy:void 0},parse:o(async t=>{try{let r=await bs("treemap",t);X.debug("Treemap AST:",r);let n=$z.parser?.yy;if(!(n instanceof Ty))throw new Error("parser.parser?.yy was not a TreemapDB. This is due to a bug within Mermaid, please report this issue at https://github.com/mermaid-js/mermaid/issues.");Yit(r,n)}catch(e){throw X.error("Error parsing treemap:",e),e}},"parse")}});var jit,wy,$4,Kit,Qit,Z4e,J4e=M(()=>{"use strict";tu();Mf();Ei();yr();$t();qn();pt();jit=10,wy=10,$4=25,Kit=o((t,e,r,n)=>{let i=n.db,a=i.getConfig(),s=a.padding??jit,l=i.getDiagramTitle(),u=i.getRoot(),{themeVariables:h}=Qt();if(!u)return;let f=l?30:0,d=aa(e),p=a.nodeWidth?a.nodeWidth*wy:960,m=a.nodeHeight?a.nodeHeight*wy:500,g=p,y=m+f;d.attr("viewBox",`0 0 ${g} ${y}`),mn(d,y,g,a.useMaxWidth);let v;try{let D=a.valueFormat||",";if(D==="$0,0")v=o(O=>"$"+cc(",")(O),"valueFormat");else if(D.startsWith("$")&&D.includes(",")){let O=/\.\d+/.exec(D),N=O?O[0]:"";v=o(P=>"$"+cc(","+N)(P),"valueFormat")}else if(D.startsWith("$")){let O=D.substring(1);v=o(N=>"$"+cc(O||"")(N),"valueFormat")}else v=cc(D)}catch(D){X.error("Error creating format function:",D),v=cc(",")}let x=no().range(["transparent",h.cScale0,h.cScale1,h.cScale2,h.cScale3,h.cScale4,h.cScale5,h.cScale6,h.cScale7,h.cScale8,h.cScale9,h.cScale10,h.cScale11]),b=no().range(["transparent",h.cScalePeer0,h.cScalePeer1,h.cScalePeer2,h.cScalePeer3,h.cScalePeer4,h.cScalePeer5,h.cScalePeer6,h.cScalePeer7,h.cScalePeer8,h.cScalePeer9,h.cScalePeer10,h.cScalePeer11]),T=no().range([h.cScaleLabel0,h.cScaleLabel1,h.cScaleLabel2,h.cScaleLabel3,h.cScaleLabel4,h.cScaleLabel5,h.cScaleLabel6,h.cScaleLabel7,h.cScaleLabel8,h.cScaleLabel9,h.cScaleLabel10,h.cScaleLabel11]);l&&d.append("text").attr("x",g/2).attr("y",f/2).attr("class","treemapTitle").attr("text-anchor","middle").attr("dominant-baseline","middle").text(l);let S=d.append("g").attr("transform",`translate(0, ${f})`).attr("class","treemapContainer"),w=U0(u).sum(D=>D.value??0).sort((D,O)=>(O.value??0)-(D.value??0)),C=N5().size([p,m]).paddingTop(D=>D.children&&D.children.length>0?$4+wy:0).paddingInner(s).paddingLeft(D=>D.children&&D.children.length>0?wy:0).paddingRight(D=>D.children&&D.children.length>0?wy:0).paddingBottom(D=>D.children&&D.children.length>0?wy:0).round(!0)(w),A=C.descendants().filter(D=>D.children&&D.children.length>0),L=S.selectAll(".treemapSection").data(A).enter().append("g").attr("class","treemapSection").attr("transform",D=>`translate(${D.x0},${D.y0})`);L.append("rect").attr("width",D=>D.x1-D.x0).attr("height",$4).attr("class","treemapSectionHeader").attr("fill","none").attr("fill-opacity",.6).attr("stroke-width",.6).attr("style",D=>D.depth===0?"display: none;":""),L.append("clipPath").attr("id",(D,O)=>`clip-section-${e}-${O}`).append("rect").attr("width",D=>Math.max(0,D.x1-D.x0-12)).attr("height",$4),L.append("rect").attr("width",D=>D.x1-D.x0).attr("height",D=>D.y1-D.y0).attr("class",(D,O)=>`treemapSection section${O}`).attr("fill",D=>x(D.data.name)).attr("fill-opacity",.6).attr("stroke",D=>b(D.data.name)).attr("stroke-width",2).attr("stroke-opacity",.4).attr("style",D=>{if(D.depth===0)return"display: none;";let O=je({cssCompiledStyles:D.data.cssCompiledStyles});return O.nodeStyles+";"+O.borderStyles.join(";")}),L.append("text").attr("class","treemapSectionLabel").attr("x",6).attr("y",$4/2).attr("dominant-baseline","middle").text(D=>D.depth===0?"":D.data.name).attr("font-weight","bold").attr("style",D=>{if(D.depth===0)return"display: none;";let O="dominant-baseline: middle; font-size: 12px; fill:"+T(D.data.name)+"; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;",N=je({cssCompiledStyles:D.data.cssCompiledStyles});return O+N.labelStyles.replace("color:","fill:")}).each(function(D){if(D.depth===0)return;let O=qe(this),N=D.data.name;O.text(N);let P=D.x1-D.x0,B=6,F;a.showValues!==!1&&D.value?F=P-10-30-10-B:F=P-B-6;let $=Math.max(15,F),U=O.node();if(U.getComputedTextLength()>$){let q=N;for(;q.length>0;){if(q=N.substring(0,q.length-1),q.length===0){O.text("..."),U.getComputedTextLength()>$&&O.text("");break}if(O.text(q+"..."),U.getComputedTextLength()<=$)break}}}),a.showValues!==!1&&L.append("text").attr("class","treemapSectionValue").attr("x",D=>D.x1-D.x0-10).attr("y",$4/2).attr("text-anchor","end").attr("dominant-baseline","middle").text(D=>D.value?v(D.value):"").attr("font-style","italic").attr("style",D=>{if(D.depth===0)return"display: none;";let O="text-anchor: end; dominant-baseline: middle; font-size: 10px; fill:"+T(D.data.name)+"; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;",N=je({cssCompiledStyles:D.data.cssCompiledStyles});return O+N.labelStyles.replace("color:","fill:")});let I=C.leaves(),R=S.selectAll(".treemapLeafGroup").data(I).enter().append("g").attr("class",(D,O)=>`treemapNode treemapLeafGroup leaf${O}${D.data.classSelector?` ${D.data.classSelector}`:""}x`).attr("transform",D=>`translate(${D.x0},${D.y0})`);R.append("rect").attr("width",D=>D.x1-D.x0).attr("height",D=>D.y1-D.y0).attr("class","treemapLeaf").attr("fill",D=>D.parent?x(D.parent.data.name):x(D.data.name)).attr("style",D=>je({cssCompiledStyles:D.data.cssCompiledStyles}).nodeStyles).attr("fill-opacity",.3).attr("stroke",D=>D.parent?x(D.parent.data.name):x(D.data.name)).attr("stroke-width",3),R.append("clipPath").attr("id",(D,O)=>`clip-${e}-${O}`).append("rect").attr("width",D=>Math.max(0,D.x1-D.x0-4)).attr("height",D=>Math.max(0,D.y1-D.y0-4)),R.append("text").attr("class","treemapLabel").attr("x",D=>(D.x1-D.x0)/2).attr("y",D=>(D.y1-D.y0)/2).attr("style",D=>{let O="text-anchor: middle; dominant-baseline: middle; font-size: 38px;fill:"+T(D.data.name)+";",N=je({cssCompiledStyles:D.data.cssCompiledStyles});return O+N.labelStyles.replace("color:","fill:")}).attr("clip-path",(D,O)=>`url(#clip-${e}-${O})`).text(D=>D.data.name).each(function(D){let O=qe(this),N=D.x1-D.x0,P=D.y1-D.y0,B=O.node(),F=4,V=N-2*F,$=P-2*F;if(V<10||$<10){O.style("display","none");return}let U=parseInt(O.style("font-size"),10),j=8,ee=28,q=.6,oe=6,Q=2;for(;B.getComputedTextLength()>V&&U>j;)U--,O.style("font-size",`${U}px`);let ue=Math.max(oe,Math.min(ee,Math.round(U*q))),te=U+Q+ue;for(;te>$&&U>j&&(U--,ue=Math.max(oe,Math.min(ee,Math.round(U*q))),!(ue$;O.style("font-size",`${U}px`),(B.getComputedTextLength()>V||U(O.x1-O.x0)/2).attr("y",function(O){return(O.y1-O.y0)/2}).attr("style",O=>{let N="text-anchor: middle; dominant-baseline: hanging; font-size: 28px;fill:"+T(O.data.name)+";",P=je({cssCompiledStyles:O.data.cssCompiledStyles});return N+P.labelStyles.replace("color:","fill:")}).attr("clip-path",(O,N)=>`url(#clip-${e}-${N})`).text(O=>O.value?v(O.value):"").each(function(O){let N=qe(this),P=this.parentNode;if(!P){N.style("display","none");return}let B=qe(P).select(".treemapLabel");if(B.empty()||B.style("display")==="none"){N.style("display","none");return}let F=parseFloat(B.style("font-size")),V=28,$=.6,U=6,j=2,ee=Math.max(U,Math.min(V,Math.round(F*$)));N.style("font-size",`${ee}px`);let oe=(O.y1-O.y0)/2+F/2+j;N.attr("y",oe);let Q=O.x1-O.x0,re=O.y1-O.y0-4,J=Q-8;N.node().getComputedTextLength()>J||oe+ee>re||ee{"use strict";tr();Zit={sectionStrokeColor:"black",sectionStrokeWidth:"1",sectionFillColor:"#efefef",leafStrokeColor:"black",leafStrokeWidth:"1",leafFillColor:"#efefef",labelColor:"black",labelFontSize:"12px",valueFontSize:"10px",valueColor:"black",titleColor:"black",titleFontSize:"14px"},Jit=o(({treemap:t}={})=>{let e=Vn(Zit,t);return` + .treemapNode.section { + stroke: ${e.sectionStrokeColor}; + stroke-width: ${e.sectionStrokeWidth}; + fill: ${e.sectionFillColor}; + } + .treemapNode.leaf { + stroke: ${e.leafStrokeColor}; + stroke-width: ${e.leafStrokeWidth}; + fill: ${e.leafFillColor}; + } + .treemapLabel { + fill: ${e.labelColor}; + font-size: ${e.labelFontSize}; + } + .treemapValue { + fill: ${e.valueColor}; + font-size: ${e.valueFontSize}; + } + .treemapTitle { + fill: ${e.titleColor}; + font-size: ${e.titleFontSize}; + } + `},"getStyles"),e3e=Jit});var r3e={};dr(r3e,{diagram:()=>eat});var eat,n3e=M(()=>{"use strict";Fz();Q4e();J4e();t3e();eat={parser:$z,get db(){return new Ty},renderer:Z4e,styles:e3e}});var zat={};dr(zat,{default:()=>$at});nc();_A();vd();var z_e=o(t=>/^\s*C4Context|C4Container|C4Component|C4Dynamic|C4Deployment/.test(t),"detector"),G_e=o(async()=>{let{diagram:t}=await Promise.resolve().then(()=>(OQ(),IQ));return{id:"c4",diagram:t}},"loader"),V_e={id:"c4",detector:z_e,loader:G_e},PQ=V_e;var bfe="flowchart",oWe=o((t,e)=>e?.flowchart?.defaultRenderer==="dagre-wrapper"||e?.flowchart?.defaultRenderer==="elk"?!1:/^\s*graph/.test(t),"detector"),lWe=o(async()=>{let{diagram:t}=await Promise.resolve().then(()=>(_E(),AE));return{id:bfe,diagram:t}},"loader"),cWe={id:bfe,detector:oWe,loader:lWe},Tfe=cWe;var wfe="flowchart-v2",uWe=o((t,e)=>e?.flowchart?.defaultRenderer==="dagre-d3"?!1:(e?.flowchart?.defaultRenderer==="elk"&&(e.layout="elk"),/^\s*graph/.test(t)&&e?.flowchart?.defaultRenderer==="dagre-wrapper"?!0:/^\s*flowchart/.test(t)),"detector"),hWe=o(async()=>{let{diagram:t}=await Promise.resolve().then(()=>(_E(),AE));return{id:wfe,diagram:t}},"loader"),fWe={id:wfe,detector:uWe,loader:hWe},kfe=fWe;var yWe=o(t=>/^\s*erDiagram/.test(t),"detector"),vWe=o(async()=>{let{diagram:t}=await Promise.resolve().then(()=>(Rfe(),Lfe));return{id:"er",diagram:t}},"loader"),xWe={id:"er",detector:yWe,loader:vWe},Nfe=xWe;var $ge="gitGraph",jKe=o(t=>/^\s*gitGraph/.test(t),"detector"),KKe=o(async()=>{let{diagram:t}=await Promise.resolve().then(()=>(Fge(),Bge));return{id:$ge,diagram:t}},"loader"),QKe={id:$ge,detector:jKe,loader:KKe},zge=QKe;var v1e="gantt",FQe=o(t=>/^\s*gantt/.test(t),"detector"),$Qe=o(async()=>{let{diagram:t}=await Promise.resolve().then(()=>(y1e(),g1e));return{id:v1e,diagram:t}},"loader"),zQe={id:v1e,detector:FQe,loader:$Qe},x1e=zQe;var _1e="info",WQe=o(t=>/^\s*info/.test(t),"detector"),YQe=o(async()=>{let{diagram:t}=await Promise.resolve().then(()=>(A1e(),C1e));return{id:_1e,diagram:t}},"loader"),D1e={id:_1e,detector:WQe,loader:YQe};var sZe=o(t=>/^\s*pie/.test(t),"detector"),oZe=o(async()=>{let{diagram:t}=await Promise.resolve().then(()=>(F1e(),B1e));return{id:"pie",diagram:t}},"loader"),$1e={id:"pie",detector:sZe,loader:oZe};var Z1e="quadrantChart",SZe=o(t=>/^\s*quadrantChart/.test(t),"detector"),CZe=o(async()=>{let{diagram:t}=await Promise.resolve().then(()=>(Q1e(),K1e));return{id:Z1e,diagram:t}},"loader"),AZe={id:Z1e,detector:SZe,loader:CZe},J1e=AZe;var Cye="xychart",HZe=o(t=>/^\s*xychart(-beta)?/.test(t),"detector"),qZe=o(async()=>{let{diagram:t}=await Promise.resolve().then(()=>(Sye(),Eye));return{id:Cye,diagram:t}},"loader"),WZe={id:Cye,detector:HZe,loader:qZe},Aye=WZe;var Pye="requirement",KZe=o(t=>/^\s*requirement(Diagram)?/.test(t),"detector"),QZe=o(async()=>{let{diagram:t}=await Promise.resolve().then(()=>(Oye(),Iye));return{id:Pye,diagram:t}},"loader"),ZZe={id:Pye,detector:KZe,loader:QZe},Bye=ZZe;var Jye="sequence",$Je=o(t=>/^\s*sequenceDiagram/.test(t),"detector"),zJe=o(async()=>{let{diagram:t}=await Promise.resolve().then(()=>(Zye(),Qye));return{id:Jye,diagram:t}},"loader"),GJe={id:Jye,detector:$Je,loader:zJe},eve=GJe;var sve="class",YJe=o((t,e)=>e?.class?.defaultRenderer==="dagre-wrapper"?!1:/^\s*classDiagram/.test(t),"detector"),XJe=o(async()=>{let{diagram:t}=await Promise.resolve().then(()=>(ave(),ive));return{id:sve,diagram:t}},"loader"),jJe={id:sve,detector:YJe,loader:XJe},ove=jJe;var uve="classDiagram",QJe=o((t,e)=>/^\s*classDiagram/.test(t)&&e?.class?.defaultRenderer==="dagre-wrapper"?!0:/^\s*classDiagram-v2/.test(t),"detector"),ZJe=o(async()=>{let{diagram:t}=await Promise.resolve().then(()=>(cve(),lve));return{id:uve,diagram:t}},"loader"),JJe={id:uve,detector:QJe,loader:ZJe},hve=JJe;var Uve="state",Aet=o((t,e)=>e?.state?.defaultRenderer==="dagre-wrapper"?!1:/^\s*stateDiagram/.test(t),"detector"),_et=o(async()=>{let{diagram:t}=await Promise.resolve().then(()=>(Vve(),Gve));return{id:Uve,diagram:t}},"loader"),Det={id:Uve,detector:Aet,loader:_et},Hve=Det;var Yve="stateDiagram",Ret=o((t,e)=>!!(/^\s*stateDiagram-v2/.test(t)||/^\s*stateDiagram/.test(t)&&e?.state?.defaultRenderer==="dagre-wrapper"),"detector"),Net=o(async()=>{let{diagram:t}=await Promise.resolve().then(()=>(Wve(),qve));return{id:Yve,diagram:t}},"loader"),Met={id:Yve,detector:Ret,loader:Net},Xve=Met;var u2e="journey",ett=o(t=>/^\s*journey/.test(t),"detector"),ttt=o(async()=>{let{diagram:t}=await Promise.resolve().then(()=>(c2e(),l2e));return{id:u2e,diagram:t}},"loader"),rtt={id:u2e,detector:ett,loader:ttt},h2e=rtt;pt();tu();Ei();var ntt=o((t,e,r)=>{X.debug(`rendering svg for syntax error +`);let n=aa(e),i=n.append("g");n.attr("viewBox","0 0 2412 512"),mn(n,100,512,!0),i.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"),i.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"),i.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"),i.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"),i.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"),i.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"),i.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"),i.append("text").attr("class","error-text").attr("x",1250).attr("y",400).attr("font-size","100px").style("text-anchor","middle").text(`mermaid version ${r}`)},"draw"),F$={draw:ntt},f2e=F$;var itt={db:{},renderer:F$,parser:{parse:o(()=>{},"parse")}},d2e=itt;var p2e="flowchart-elk",att=o((t,e={})=>/^\s*flowchart-elk/.test(t)||/^\s*(flowchart|graph)/.test(t)&&e?.flowchart?.defaultRenderer==="elk"?(e.layout="elk",!0):!1,"detector"),stt=o(async()=>{let{diagram:t}=await Promise.resolve().then(()=>(_E(),AE));return{id:p2e,diagram:t}},"loader"),ott={id:p2e,detector:att,loader:stt},m2e=ott;var G2e="timeline",Ctt=o(t=>/^\s*timeline/.test(t),"detector"),Att=o(async()=>{let{diagram:t}=await Promise.resolve().then(()=>(z2e(),$2e));return{id:G2e,diagram:t}},"loader"),_tt={id:G2e,detector:Ctt,loader:Att},V2e=_tt;var ixe="mindmap",Ptt=o(t=>/^\s*mindmap/.test(t),"detector"),Btt=o(async()=>{let{diagram:t}=await Promise.resolve().then(()=>(nxe(),rxe));return{id:ixe,diagram:t}},"loader"),Ftt={id:ixe,detector:Ptt,loader:Btt},axe=Ftt;var yxe="kanban",ert=o(t=>/^\s*kanban/.test(t),"detector"),trt=o(async()=>{let{diagram:t}=await Promise.resolve().then(()=>(gxe(),mxe));return{id:yxe,diagram:t}},"loader"),rrt={id:yxe,detector:ert,loader:trt},vxe=rrt;var Jxe="sankey",Srt=o(t=>/^\s*sankey(-beta)?/.test(t),"detector"),Crt=o(async()=>{let{diagram:t}=await Promise.resolve().then(()=>(Zxe(),Qxe));return{id:Jxe,diagram:t}},"loader"),Art={id:Jxe,detector:Srt,loader:Crt},ebe=Art;var lbe="packet",Prt=o(t=>/^\s*packet(-beta)?/.test(t),"detector"),Brt=o(async()=>{let{diagram:t}=await Promise.resolve().then(()=>(obe(),sbe));return{id:lbe,diagram:t}},"loader"),cbe={id:lbe,detector:Prt,loader:Brt};var bbe="radar",ant=o(t=>/^\s*radar-beta/.test(t),"detector"),snt=o(async()=>{let{diagram:t}=await Promise.resolve().then(()=>(xbe(),vbe));return{id:bbe,diagram:t}},"loader"),Tbe={id:bbe,detector:ant,loader:snt};var E4e="block",Ait=o(t=>/^\s*block(-beta)?/.test(t),"detector"),_it=o(async()=>{let{diagram:t}=await Promise.resolve().then(()=>(k4e(),w4e));return{id:E4e,diagram:t}},"loader"),Dit={id:E4e,detector:Ait,loader:_it},S4e=Dit;var Y4e="architecture",Hit=o(t=>/^\s*architecture/.test(t),"detector"),qit=o(async()=>{let{diagram:t}=await Promise.resolve().then(()=>(W4e(),q4e));return{id:Y4e,diagram:t}},"loader"),Wit={id:Y4e,detector:Hit,loader:qit},X4e=Wit;vd();Xt();var i3e="treemap",tat=o(t=>/^\s*treemap/.test(t),"detector"),rat=o(async()=>{let{diagram:t}=await Promise.resolve().then(()=>(n3e(),r3e));return{id:i3e,diagram:t}},"loader"),a3e={id:i3e,detector:tat,loader:rat};var s3e=!1,ky=o(()=>{s3e||(s3e=!0,xd("error",d2e,t=>t.toLowerCase().trim()==="error"),xd("---",{db:{clear:o(()=>{},"clear")},styles:{},renderer:{draw:o(()=>{},"draw")},parser:{parse:o(()=>{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")},"parse")},init:o(()=>null,"init")},t=>t.toLowerCase().trimStart().startsWith("---")),tv(m2e,axe,X4e),tv(PQ,vxe,hve,ove,Nfe,x1e,D1e,$1e,Bye,eve,kfe,Tfe,V2e,zge,Xve,Hve,h2e,J1e,ebe,cbe,Aye,S4e,Tbe,a3e))},"addDiagrams");pt();vd();Xt();var o3e=o(async()=>{X.debug("Loading registered diagrams");let e=(await Promise.allSettled(Object.entries(gu).map(async([r,{detector:n,loader:i}])=>{if(i)try{sv(r)}catch{try{let{diagram:a,id:s}=await i();xd(s,a,n)}catch(a){throw X.error(`Failed to load external diagram with key ${r}. Removing from detectors.`),delete gu[r],a}}}))).filter(r=>r.status==="rejected");if(e.length>0){X.error(`Failed to load ${e.length} external diagrams`);for(let r of e)X.error(r);throw new Error(`Failed to load ${e.length} external diagrams`)}},"loadRegisteredDiagrams");pt();yr();var BC="comm",FC="rule",$C="decl";var l3e="@import";var c3e="@namespace",u3e="@keyframes";var h3e="@layer";var zz=Math.abs,z4=String.fromCharCode;function zC(t){return t.trim()}o(zC,"trim");function G4(t,e,r){return t.replace(e,r)}o(G4,"replace");function f3e(t,e,r){return t.indexOf(e,r)}o(f3e,"indexof");function rd(t,e){return t.charCodeAt(e)|0}o(rd,"charat");function nd(t,e,r){return t.slice(e,r)}o(nd,"substr");function wo(t){return t.length}o(wo,"strlen");function d3e(t){return t.length}o(d3e,"sizeof");function Ey(t,e){return e.push(t),t}o(Ey,"append");var GC=1,Sy=1,p3e=0,ll=0,Ri=0,Ay="";function VC(t,e,r,n,i,a,s,l){return{value:t,root:e,parent:r,type:n,props:i,children:a,line:GC,column:Sy,length:s,return:"",siblings:l}}o(VC,"node");function m3e(){return Ri}o(m3e,"char");function g3e(){return Ri=ll>0?rd(Ay,--ll):0,Sy--,Ri===10&&(Sy=1,GC--),Ri}o(g3e,"prev");function cl(){return Ri=ll2||Cy(Ri)>3?"":" "}o(x3e,"whitespace");function b3e(t,e){for(;--e&&cl()&&!(Ri<48||Ri>102||Ri>57&&Ri<65||Ri>70&&Ri<97););return UC(t,V4()+(e<6&&uh()==32&&cl()==32))}o(b3e,"escaping");function Gz(t){for(;cl();)switch(Ri){case t:return ll;case 34:case 39:t!==34&&t!==39&&Gz(Ri);break;case 40:t===41&&Gz(t);break;case 92:cl();break}return ll}o(Gz,"delimiter");function T3e(t,e){for(;cl()&&t+Ri!==57;)if(t+Ri===84&&uh()===47)break;return"/*"+UC(e,ll-1)+"*"+z4(t===47?t:cl())}o(T3e,"commenter");function w3e(t){for(;!Cy(uh());)cl();return UC(t,ll)}o(w3e,"identifier");function S3e(t){return v3e(qC("",null,null,null,[""],t=y3e(t),0,[0],t))}o(S3e,"compile");function qC(t,e,r,n,i,a,s,l,u){for(var h=0,f=0,d=s,p=0,m=0,g=0,y=1,v=1,x=1,b=0,T="",S=i,w=a,k=n,C=T;v;)switch(g=b,b=cl()){case 40:if(g!=108&&rd(C,d-1)==58){f3e(C+=G4(HC(b),"&","&\f"),"&\f",zz(h?l[h-1]:0))!=-1&&(x=-1);break}case 34:case 39:case 91:C+=HC(b);break;case 9:case 10:case 13:case 32:C+=x3e(g);break;case 92:C+=b3e(V4()-1,7);continue;case 47:switch(uh()){case 42:case 47:Ey(nat(T3e(cl(),V4()),e,r,u),u),(Cy(g||1)==5||Cy(uh()||1)==5)&&wo(C)&&nd(C,-1,void 0)!==" "&&(C+=" ");break;default:C+="/"}break;case 123*y:l[h++]=wo(C)*x;case 125*y:case 59:case 0:switch(b){case 0:case 125:v=0;case 59+f:x==-1&&(C=G4(C,/\f/g,"")),m>0&&(wo(C)-d||y===0&&g===47)&&Ey(m>32?E3e(C+";",n,r,d-1,u):E3e(G4(C," ","")+";",n,r,d-2,u),u);break;case 59:C+=";";default:if(Ey(k=k3e(C,e,r,h,f,i,l,T,S=[],w=[],d,a),a),b===123)if(f===0)qC(C,e,k,k,S,a,d,l,w);else{switch(p){case 99:if(rd(C,3)===110)break;case 108:if(rd(C,2)===97)break;default:f=0;case 100:case 109:case 115:}f?qC(t,k,k,n&&Ey(k3e(t,k,k,0,0,i,l,T,i,S=[],d,w),w),i,w,d,l,n?S:w):qC(C,k,k,k,[""],w,0,l,w)}}h=f=m=0,y=x=1,T=C="",d=s;break;case 58:d=1+wo(C),m=g;default:if(y<1){if(b==123)--y;else if(b==125&&y++==0&&g3e()==125)continue}switch(C+=z4(b),b*y){case 38:x=f>0?1:(C+="\f",-1);break;case 44:l[h++]=(wo(C)-1)*x,x=1;break;case 64:uh()===45&&(C+=HC(cl())),p=uh(),f=d=wo(T=C+=w3e(V4())),b++;break;case 45:g===45&&wo(C)==2&&(y=0)}}return a}o(qC,"parse");function k3e(t,e,r,n,i,a,s,l,u,h,f,d){for(var p=i-1,m=i===0?a:[""],g=d3e(m),y=0,v=0,x=0;y0?m[b]+" "+T:G4(T,/&\f/g,m[b])))&&(u[x++]=S);return VC(t,e,r,i===0?FC:l,u,h,f,d)}o(k3e,"ruleset");function nat(t,e,r,n){return VC(t,e,r,BC,z4(m3e()),nd(t,2,-2),0,n)}o(nat,"comment");function E3e(t,e,r,n,i){return VC(t,e,r,$C,nd(t,0,n),nd(t,n+1,-1),n,i)}o(E3e,"declaration");function WC(t,e){for(var r="",n=0;n{D3e.forEach(t=>{t()}),D3e=[]},"attachFunctions");pt();var R3e=o(t=>t.replace(/^\s*%%(?!{)[^\n]+\n?/gm,"").trimStart(),"cleanupComments");$3();k2();function N3e(t){let e=t.match(F3);if(!e)return{text:t,metadata:{}};let r=Kh(e[1],{schema:jh})??{};r=typeof r=="object"&&!Array.isArray(r)?r:{};let n={};return r.displayMode&&(n.displayMode=r.displayMode.toString()),r.title&&(n.title=r.title.toString()),r.config&&(n.config=r.config),{text:t.slice(e[0].length),metadata:n}}o(N3e,"extractFrontMatter");tr();var aat=o(t=>t.replace(/\r\n?/g,` +`).replace(/<(\w+)([^>]*)>/g,(e,r,n)=>"<"+r+n.replace(/="([^"]*)"/g,"='$1'")+">"),"cleanupText"),sat=o(t=>{let{text:e,metadata:r}=N3e(t),{displayMode:n,title:i,config:a={}}=r;return n&&(a.gantt||(a.gantt={}),a.gantt.displayMode=n),{title:i,config:a,text:e}},"processFrontmatter"),oat=o(t=>{let e=qt.detectInit(t)??{},r=qt.detectDirective(t,"wrap");return Array.isArray(r)?e.wrap=r.some(({type:n})=>n==="wrap"):r?.type==="wrap"&&(e.wrap=!0),{text:kQ(t),directive:e}},"processDirectives");function Vz(t){let e=aat(t),r=sat(e),n=oat(r.text),i=Vn(r.config,n.directive);return t=R3e(n.text),{code:t,title:r.title,config:i}}o(Vz,"preprocessDiagram");NA();t3();tr();function M3e(t){let e=new TextEncoder().encode(t),r=Array.from(e,n=>String.fromCodePoint(n)).join("");return btoa(r)}o(M3e,"toBase64");var lat=5e4,cat="graph TB;a[Maximum text size in diagram exceeded];style a fill:#faa",uat="sandbox",hat="loose",fat="http://www.w3.org/2000/svg",dat="http://www.w3.org/1999/xlink",pat="http://www.w3.org/1999/xhtml",mat="100%",gat="100%",yat="border:0;margin:0;",vat="margin:0",xat="allow-top-navigation-by-user-activation allow-popups",bat='The "iframe" tag is not supported by your browser.',Tat=["foreignobject"],wat=["dominant-baseline"];function B3e(t){let e=Vz(t);return Fy(),tV(e.config??{}),e}o(B3e,"processAndSetConfigs");async function kat(t,e){ky();try{let{code:r,config:n}=B3e(t);return{diagramType:(await F3e(r)).type,config:n}}catch(r){if(e?.suppressErrors)return!1;throw r}}o(kat,"parse");var I3e=o((t,e,r=[])=>` +.${t} ${e} { ${r.join(" !important; ")} !important; }`,"cssImportantStyles"),Eat=o((t,e=new Map)=>{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}}`),e instanceof Map){let s=t.htmlLabels??t.flowchart?.htmlLabels?["> *","span"]:["rect","polygon","ellipse","circle","path"];e.forEach(l=>{mr(l.styles)||s.forEach(u=>{r+=I3e(l.id,u,l.styles)}),mr(l.textStyles)||(r+=I3e(l.id,"tspan",(l?.textStyles||[]).map(u=>u.replace("color","fill"))))})}return r},"createCssStyles"),Sat=o((t,e,r,n)=>{let i=Eat(t,r),a=lH(e,i,t.themeVariables);return WC(S3e(`${n}{${a}}`),C3e)},"createUserStyles"),Cat=o((t="",e,r)=>{let n=t;return!r&&!e&&(n=n.replace(/marker-end="url\([\d+./:=?A-Za-z-]*?#/g,'marker-end="url(#')),n=Ji(n),n=n.replace(/
    /g,"
    "),n},"cleanUpSvgCode"),Aat=o((t="",e)=>{let r=e?.viewBox?.baseVal?.height?e.viewBox.baseVal.height+"px":gat,n=M3e(`${t}`);return``},"putIntoIFrame"),O3e=o((t,e,r,n,i)=>{let a=t.append("div");a.attr("id",r),n&&a.attr("style",n);let s=a.append("svg").attr("id",e).attr("width","100%").attr("xmlns",fat);return i&&s.attr("xmlns:xlink",i),s.append("g"),t},"appendDivSvgG");function P3e(t,e){return t.append("iframe").attr("id",e).attr("style","width: 100%; height: 100%;").attr("sandbox","")}o(P3e,"sandboxedIframe");var _at=o((t,e,r,n)=>{t.getElementById(e)?.remove(),t.getElementById(r)?.remove(),t.getElementById(n)?.remove()},"removeExistingElements"),Dat=o(async function(t,e,r){ky();let n=B3e(e);e=n.code;let i=Qt();X.debug(i),e.length>(i?.maxTextSize??lat)&&(e=cat);let a="#"+t,s="i"+t,l="#"+s,u="d"+t,h="#"+u,f=o(()=>{let _=qe(p?l:h).node();_&&"remove"in _&&_.remove()},"removeTempElements"),d=qe("body"),p=i.securityLevel===uat,m=i.securityLevel===hat,g=i.fontFamily;if(r!==void 0){if(r&&(r.innerHTML=""),p){let E=P3e(qe(r),s);d=qe(E.nodes()[0].contentDocument.body),d.node().style.margin=0}else d=qe(r);O3e(d,t,u,`font-family: ${g}`,dat)}else{if(_at(document,t,u,s),p){let E=P3e(qe("body"),s);d=qe(E.nodes()[0].contentDocument.body),d.node().style.margin=0}else d=qe("body");O3e(d,t,u)}let y,v;try{y=await _y.fromText(e,{title:n.title})}catch(E){if(i.suppressErrorRendering)throw f(),E;y=await _y.fromText("error"),v=E}let x=d.select(h).node(),b=y.type,T=x.firstChild,S=T.firstChild,w=y.renderer.getClasses?.(e,y),k=Sat(i,b,w,a),C=document.createElement("style");C.innerHTML=k,T.insertBefore(C,S);try{await y.renderer.draw(e,t,y4.version,y)}catch(E){throw i.suppressErrorRendering?f():f2e.draw(e,t,y4.version),E}let A=d.select(`${h} svg`),L=y.db.getAccTitle?.(),I=y.db.getAccDescription?.();Rat(b,A,L,I),d.select(`[id="${t}"]`).selectAll("foreignobject > *").attr("xmlns",pat);let R=d.select(h).node().innerHTML;if(X.debug("config.arrowMarkerAbsolute",i.arrowMarkerAbsolute),R=Cat(R,p,vr(i.arrowMarkerAbsolute)),p){let E=d.select(h+" svg").node();R=Aat(R,E)}else m||(R=yh.sanitize(R,{ADD_TAGS:Tat,ADD_ATTR:wat,HTML_INTEGRATION_POINTS:{foreignobject:!0}}));if(L3e(),v)throw v;return f(),{diagramType:b,svg:R,bindFunctions:y.db.bindFunctions}},"render");function Lat(t={}){let e=Rn({},t);e?.fontFamily&&!e.themeVariables?.fontFamily&&(e.themeVariables||(e.themeVariables={}),e.themeVariables.fontFamily=e.fontFamily),ZG(e),e?.theme&&e.theme in So?e.themeVariables=So[e.theme].getThemeVariables(e.themeVariables):e&&(e.themeVariables=So.default.getThemeVariables(e.themeVariables));let r=typeof e=="object"?C7(e):A7();Ly(r.logLevel),ky()}o(Lat,"initialize");var F3e=o((t,e={})=>{let{code:r}=Vz(t);return _y.fromText(r,e)},"getDiagramFromText");function Rat(t,e,r,n){A3e(e,t),_3e(e,r,n,e.attr("id"))}o(Rat,"addA11yInfo");var id=Object.freeze({render:Dat,parse:kat,getDiagramFromText:F3e,initialize:Lat,getConfig:Qt,setConfig:i3,getSiteConfig:A7,updateSiteConfig:JG,reset:o(()=>{Fy()},"reset"),globalReset:o(()=>{Fy(gh)},"globalReset"),defaultConfig:gh});Ly(Qt().logLevel);Fy(Qt());Nf();tr();var Nat=o((t,e,r)=>{X.warn(t),qL(t)?(r&&r(t.str,t.hash),e.push({...t,message:t.str,error:t})):(r&&r(t),t instanceof Error&&e.push({str:t.message,message:t.message,hash:t.name,error:t}))},"handleError"),$3e=o(async function(t={querySelector:".mermaid"}){try{await Mat(t)}catch(e){if(qL(e)&&X.error(e.str),hh.parseError&&hh.parseError(e),!t.suppressErrors)throw X.error("Use the suppressErrors option to suppress these errors"),e}},"run"),Mat=o(async function({postRenderCallback:t,querySelector:e,nodes:r}={querySelector:".mermaid"}){let n=id.getConfig();X.debug(`${t?"":"No "}Callback function found`);let i;if(r)i=r;else if(e)i=document.querySelectorAll(e);else throw new Error("Nodes and querySelector are both undefined");X.debug(`Found ${i.length} diagrams`),n?.startOnLoad!==void 0&&(X.debug("Start On Load: "+n?.startOnLoad),id.updateSiteConfig({startOnLoad:n?.startOnLoad}));let a=new qt.InitIDGenerator(n.deterministicIds,n.deterministicIDSeed),s,l=[];for(let u of Array.from(i)){X.info("Rendering diagram: "+u.id);if(u.getAttribute("data-processed"))continue;u.setAttribute("data-processed","true");let h=`mermaid-${a.next()}`;s=u.innerHTML,s=B3(qt.entityDecode(s)).trim().replace(//gi,"
    ");let f=qt.detectInit(s);f&&X.debug("Detected early reinit: ",f);try{let{svg:d,bindFunctions:p}=await U3e(h,s,u);u.innerHTML=d,t&&await t(h),p&&p(u)}catch(d){Nat(d,l,hh.parseError)}}if(l.length>0)throw l[0]},"runThrowsErrors"),z3e=o(function(t){id.initialize(t)},"initialize"),Iat=o(async function(t,e,r){X.warn("mermaid.init is deprecated. Please use run instead."),t&&z3e(t);let n={postRenderCallback:r,querySelector:".mermaid"};typeof e=="string"?n.querySelector=e:e&&(e instanceof HTMLElement?n.nodes=[e]:n.nodes=e),await $3e(n)},"init"),Oat=o(async(t,{lazyLoad:e=!0}={})=>{ky(),tv(...t),e===!1&&await o3e()},"registerExternalDiagrams"),G3e=o(function(){if(hh.startOnLoad){let{startOnLoad:t}=id.getConfig();t&&hh.run().catch(e=>X.error("Mermaid failed to initialize",e))}},"contentLoaded");if(typeof document<"u"){window.addEventListener("load",G3e,!1)}var Pat=o(function(t){hh.parseError=t},"setParseErrorHandler"),YC=[],Uz=!1,V3e=o(async()=>{if(!Uz){for(Uz=!0;YC.length>0;){let t=YC.shift();if(t)try{await t()}catch(e){X.error("Error executing queue",e)}}Uz=!1}},"executeQueue"),Bat=o(async(t,e)=>new Promise((r,n)=>{let i=o(()=>new Promise((a,s)=>{id.parse(t,e).then(l=>{a(l),r(l)},l=>{X.error("Error parsing",l),hh.parseError?.(l),s(l),n(l)})}),"performCall");YC.push(i),V3e().catch(n)}),"parse"),U3e=o((t,e,r)=>new Promise((n,i)=>{let a=o(()=>new Promise((s,l)=>{id.render(t,e,r).then(u=>{s(u),n(u)},u=>{X.error("Error parsing",u),hh.parseError?.(u),l(u),i(u)})}),"performCall");YC.push(a),V3e().catch(i)}),"render"),Fat=o(()=>Object.keys(gu).map(t=>({id:t})),"getRegisteredDiagramsMetadata"),hh={startOnLoad:!0,mermaidAPI:id,parse:Bat,render:U3e,init:Iat,run:$3e,registerExternalDiagrams:Oat,registerLayoutLoaders:zI,initialize:z3e,parseError:void 0,contentLoaded:G3e,setParseErrorHandler:Pat,detectType:_0,registerIconPacks:P3,getRegisteredDiagramsMetadata:Fat},$at=hh;return Z3e(zat);})(); +/*! Check if previously processed */ +/*! + * Wait for document loaded before starting the execution + */ +/*! Bundled license information: + +dompurify/dist/purify.es.mjs: + (*! @license DOMPurify 3.2.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.2.6/LICENSE *) + +js-yaml/dist/js-yaml.mjs: + (*! js-yaml 4.1.0 https://github.com/nodeca/js-yaml @license MIT *) + +lodash-es/lodash.js: + (** + * @license + * Lodash (Custom Build) + * Build: `lodash modularize exports="es" -o ./` + * Copyright OpenJS Foundation and other contributors + * Released under MIT license + * Based on Underscore.js 1.8.3 + * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors + *) + +cytoscape/dist/cytoscape.esm.mjs: + (*! + 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) + *) + (*! + Event object based on jQuery events, MIT license + + https://jquery.org/license/ + https://tldrlegal.com/license/mit-license + https://github.com/jquery/jquery/blob/master/src/event.js + *) + (*! Bezier curve function generator. Copyright Gaetan Renaudeau. MIT License: http://en.wikipedia.org/wiki/MIT_License *) + (*! Runge-Kutta spring physics function generator. Adapted from Framer.js, copyright Koen Bok. MIT License: http://en.wikipedia.org/wiki/MIT_License *) +*/ +globalThis["mermaid"] = globalThis.__esbuild_esm_mermaid_nm["mermaid"].default; diff --git a/0.47/assets/images/favicon.png b/0.47/assets/images/favicon.png new file mode 100644 index 0000000000000000000000000000000000000000..1cf13b9f9d978896599290a74f77d5dbe7d1655c GIT binary patch literal 1870 zcmV-U2eJ5xP)Gc)JR9QMau)O=X#!i9;T z37kk-upj^(fsR36MHs_+1RCI)NNu9}lD0S{B^g8PN?Ww(5|~L#Ng*g{WsqleV}|#l zz8@ri&cTzw_h33bHI+12+kK6WN$h#n5cD8OQt`5kw6p~9H3()bUQ8OS4Q4HTQ=1Ol z_JAocz`fLbT2^{`8n~UAo=#AUOf=SOq4pYkt;XbC&f#7lb$*7=$na!mWCQ`dBQsO0 zLFBSPj*N?#u5&pf2t4XjEGH|=pPQ8xh7tpx;US5Cx_Ju;!O`ya-yF`)b%TEt5>eP1ZX~}sjjA%FJF?h7cX8=b!DZl<6%Cv z*G0uvvU+vmnpLZ2paivG-(cd*y3$hCIcsZcYOGh{$&)A6*XX&kXZd3G8m)G$Zz-LV z^GF3VAW^Mdv!)4OM8EgqRiz~*Cji;uzl2uC9^=8I84vNp;ltJ|q-*uQwGp2ma6cY7 z;`%`!9UXO@fr&Ebapfs34OmS9^u6$)bJxrucutf>`dKPKT%%*d3XlFVKunp9 zasduxjrjs>f8V=D|J=XNZp;_Zy^WgQ$9WDjgY=z@stwiEBm9u5*|34&1Na8BMjjgf3+SHcr`5~>oz1Y?SW^=K z^bTyO6>Gar#P_W2gEMwq)ot3; zREHn~U&Dp0l6YT0&k-wLwYjb?5zGK`W6S2v+K>AM(95m2C20L|3m~rN8dprPr@t)5lsk9Hu*W z?pS990s;Ez=+Rj{x7p``4>+c0G5^pYnB1^!TL=(?HLHZ+HicG{~4F1d^5Awl_2!1jICM-!9eoLhbbT^;yHcefyTAaqRcY zmuctDopPT!%k+}x%lZRKnzykr2}}XfG_ne?nRQO~?%hkzo;@RN{P6o`&mMUWBYMTe z6i8ChtjX&gXl`nvrU>jah)2iNM%JdjqoaeaU%yVn!^70x-flljp6Q5tK}5}&X8&&G zX3fpb3E(!rH=zVI_9Gjl45w@{(ITqngWFe7@9{mX;tO25Z_8 zQHEpI+FkTU#4xu>RkN>b3Tnc3UpWzPXWm#o55GKF09j^Mh~)K7{QqbO_~(@CVq! zS<8954|P8mXN2MRs86xZ&Q4EfM@JB94b=(YGuk)s&^jiSF=t3*oNK3`rD{H`yQ?d; ztE=laAUoZx5?RC8*WKOj`%LXEkgDd>&^Q4M^z`%u0rg-It=hLCVsq!Z%^6eB-OvOT zFZ28TN&cRmgU}Elrnk43)!>Z1FCPL2K$7}gwzIc48NX}#!A1BpJP?#v5wkNprhV** z?Cpalt1oH&{r!o3eSKc&ap)iz2BTn_VV`4>9M^b3;(YY}4>#ML6{~(4mH+?%07*qo IM6N<$f(jP3KmY&$ literal 0 HcmV?d00001 diff --git a/0.47/assets/javascripts/bundle.79ae519e.min.js b/0.47/assets/javascripts/bundle.79ae519e.min.js new file mode 100644 index 0000000..9b61663 --- /dev/null +++ b/0.47/assets/javascripts/bundle.79ae519e.min.js @@ -0,0 +1,16 @@ +"use strict";(()=>{var Zi=Object.create;var _r=Object.defineProperty;var ea=Object.getOwnPropertyDescriptor;var ta=Object.getOwnPropertyNames,Bt=Object.getOwnPropertySymbols,ra=Object.getPrototypeOf,Ar=Object.prototype.hasOwnProperty,bo=Object.prototype.propertyIsEnumerable;var ho=(e,t,r)=>t in e?_r(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,P=(e,t)=>{for(var r in t||(t={}))Ar.call(t,r)&&ho(e,r,t[r]);if(Bt)for(var r of Bt(t))bo.call(t,r)&&ho(e,r,t[r]);return e};var vo=(e,t)=>{var r={};for(var o in e)Ar.call(e,o)&&t.indexOf(o)<0&&(r[o]=e[o]);if(e!=null&&Bt)for(var o of Bt(e))t.indexOf(o)<0&&bo.call(e,o)&&(r[o]=e[o]);return r};var Cr=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports);var oa=(e,t,r,o)=>{if(t&&typeof t=="object"||typeof t=="function")for(let n of ta(t))!Ar.call(e,n)&&n!==r&&_r(e,n,{get:()=>t[n],enumerable:!(o=ea(t,n))||o.enumerable});return e};var $t=(e,t,r)=>(r=e!=null?Zi(ra(e)):{},oa(t||!e||!e.__esModule?_r(r,"default",{value:e,enumerable:!0}):r,e));var go=(e,t,r)=>new Promise((o,n)=>{var i=c=>{try{a(r.next(c))}catch(p){n(p)}},s=c=>{try{a(r.throw(c))}catch(p){n(p)}},a=c=>c.done?o(c.value):Promise.resolve(c.value).then(i,s);a((r=r.apply(e,t)).next())});var xo=Cr((kr,yo)=>{(function(e,t){typeof kr=="object"&&typeof yo!="undefined"?t():typeof define=="function"&&define.amd?define(t):t()})(kr,(function(){"use strict";function e(r){var o=!0,n=!1,i=null,s={text:!0,search:!0,url:!0,tel:!0,email:!0,password:!0,number:!0,date:!0,month:!0,week:!0,time:!0,datetime:!0,"datetime-local":!0};function a(k){return!!(k&&k!==document&&k.nodeName!=="HTML"&&k.nodeName!=="BODY"&&"classList"in k&&"contains"in k.classList)}function c(k){var ut=k.type,je=k.tagName;return!!(je==="INPUT"&&s[ut]&&!k.readOnly||je==="TEXTAREA"&&!k.readOnly||k.isContentEditable)}function p(k){k.classList.contains("focus-visible")||(k.classList.add("focus-visible"),k.setAttribute("data-focus-visible-added",""))}function l(k){k.hasAttribute("data-focus-visible-added")&&(k.classList.remove("focus-visible"),k.removeAttribute("data-focus-visible-added"))}function f(k){k.metaKey||k.altKey||k.ctrlKey||(a(r.activeElement)&&p(r.activeElement),o=!0)}function u(k){o=!1}function d(k){a(k.target)&&(o||c(k.target))&&p(k.target)}function v(k){a(k.target)&&(k.target.classList.contains("focus-visible")||k.target.hasAttribute("data-focus-visible-added"))&&(n=!0,window.clearTimeout(i),i=window.setTimeout(function(){n=!1},100),l(k.target))}function S(k){document.visibilityState==="hidden"&&(n&&(o=!0),X())}function X(){document.addEventListener("mousemove",ee),document.addEventListener("mousedown",ee),document.addEventListener("mouseup",ee),document.addEventListener("pointermove",ee),document.addEventListener("pointerdown",ee),document.addEventListener("pointerup",ee),document.addEventListener("touchmove",ee),document.addEventListener("touchstart",ee),document.addEventListener("touchend",ee)}function re(){document.removeEventListener("mousemove",ee),document.removeEventListener("mousedown",ee),document.removeEventListener("mouseup",ee),document.removeEventListener("pointermove",ee),document.removeEventListener("pointerdown",ee),document.removeEventListener("pointerup",ee),document.removeEventListener("touchmove",ee),document.removeEventListener("touchstart",ee),document.removeEventListener("touchend",ee)}function ee(k){k.target.nodeName&&k.target.nodeName.toLowerCase()==="html"||(o=!1,re())}document.addEventListener("keydown",f,!0),document.addEventListener("mousedown",u,!0),document.addEventListener("pointerdown",u,!0),document.addEventListener("touchstart",u,!0),document.addEventListener("visibilitychange",S,!0),X(),r.addEventListener("focus",d,!0),r.addEventListener("blur",v,!0),r.nodeType===Node.DOCUMENT_FRAGMENT_NODE&&r.host?r.host.setAttribute("data-js-focus-visible",""):r.nodeType===Node.DOCUMENT_NODE&&(document.documentElement.classList.add("js-focus-visible"),document.documentElement.setAttribute("data-js-focus-visible",""))}if(typeof window!="undefined"&&typeof document!="undefined"){window.applyFocusVisiblePolyfill=e;var t;try{t=new CustomEvent("focus-visible-polyfill-ready")}catch(r){t=document.createEvent("CustomEvent"),t.initCustomEvent("focus-visible-polyfill-ready",!1,!1,{})}window.dispatchEvent(t)}typeof document!="undefined"&&e(document)}))});var ro=Cr((jy,Rn)=>{"use strict";/*! + * escape-html + * Copyright(c) 2012-2013 TJ Holowaychuk + * Copyright(c) 2015 Andreas Lubbe + * Copyright(c) 2015 Tiancheng "Timothy" Gu + * MIT Licensed + */var qa=/["'&<>]/;Rn.exports=Ka;function Ka(e){var t=""+e,r=qa.exec(t);if(!r)return t;var o,n="",i=0,s=0;for(i=r.index;i{/*! + * clipboard.js v2.0.11 + * https://clipboardjs.com/ + * + * Licensed MIT © Zeno Rocha + */(function(t,r){typeof Nt=="object"&&typeof io=="object"?io.exports=r():typeof define=="function"&&define.amd?define([],r):typeof Nt=="object"?Nt.ClipboardJS=r():t.ClipboardJS=r()})(Nt,function(){return(function(){var e={686:(function(o,n,i){"use strict";i.d(n,{default:function(){return Xi}});var s=i(279),a=i.n(s),c=i(370),p=i.n(c),l=i(817),f=i.n(l);function u(q){try{return document.execCommand(q)}catch(C){return!1}}var d=function(C){var _=f()(C);return u("cut"),_},v=d;function S(q){var C=document.documentElement.getAttribute("dir")==="rtl",_=document.createElement("textarea");_.style.fontSize="12pt",_.style.border="0",_.style.padding="0",_.style.margin="0",_.style.position="absolute",_.style[C?"right":"left"]="-9999px";var D=window.pageYOffset||document.documentElement.scrollTop;return _.style.top="".concat(D,"px"),_.setAttribute("readonly",""),_.value=q,_}var X=function(C,_){var D=S(C);_.container.appendChild(D);var N=f()(D);return u("copy"),D.remove(),N},re=function(C){var _=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{container:document.body},D="";return typeof C=="string"?D=X(C,_):C instanceof HTMLInputElement&&!["text","search","url","tel","password"].includes(C==null?void 0:C.type)?D=X(C.value,_):(D=f()(C),u("copy")),D},ee=re;function k(q){"@babel/helpers - typeof";return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?k=function(_){return typeof _}:k=function(_){return _&&typeof Symbol=="function"&&_.constructor===Symbol&&_!==Symbol.prototype?"symbol":typeof _},k(q)}var ut=function(){var C=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},_=C.action,D=_===void 0?"copy":_,N=C.container,G=C.target,We=C.text;if(D!=="copy"&&D!=="cut")throw new Error('Invalid "action" value, use either "copy" or "cut"');if(G!==void 0)if(G&&k(G)==="object"&&G.nodeType===1){if(D==="copy"&&G.hasAttribute("disabled"))throw new Error('Invalid "target" attribute. Please use "readonly" instead of "disabled" attribute');if(D==="cut"&&(G.hasAttribute("readonly")||G.hasAttribute("disabled")))throw new Error(`Invalid "target" attribute. You can't cut text from elements with "readonly" or "disabled" attributes`)}else throw new Error('Invalid "target" value, use a valid Element');if(We)return ee(We,{container:N});if(G)return D==="cut"?v(G):ee(G,{container:N})},je=ut;function R(q){"@babel/helpers - typeof";return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?R=function(_){return typeof _}:R=function(_){return _&&typeof Symbol=="function"&&_.constructor===Symbol&&_!==Symbol.prototype?"symbol":typeof _},R(q)}function se(q,C){if(!(q instanceof C))throw new TypeError("Cannot call a class as a function")}function ce(q,C){for(var _=0;_0&&arguments[0]!==void 0?arguments[0]:{};this.action=typeof N.action=="function"?N.action:this.defaultAction,this.target=typeof N.target=="function"?N.target:this.defaultTarget,this.text=typeof N.text=="function"?N.text:this.defaultText,this.container=R(N.container)==="object"?N.container:document.body}},{key:"listenClick",value:function(N){var G=this;this.listener=p()(N,"click",function(We){return G.onClick(We)})}},{key:"onClick",value:function(N){var G=N.delegateTarget||N.currentTarget,We=this.action(G)||"copy",Yt=je({action:We,container:this.container,target:this.target(G),text:this.text(G)});this.emit(Yt?"success":"error",{action:We,text:Yt,trigger:G,clearSelection:function(){G&&G.focus(),window.getSelection().removeAllRanges()}})}},{key:"defaultAction",value:function(N){return Mr("action",N)}},{key:"defaultTarget",value:function(N){var G=Mr("target",N);if(G)return document.querySelector(G)}},{key:"defaultText",value:function(N){return Mr("text",N)}},{key:"destroy",value:function(){this.listener.destroy()}}],[{key:"copy",value:function(N){var G=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{container:document.body};return ee(N,G)}},{key:"cut",value:function(N){return v(N)}},{key:"isSupported",value:function(){var N=arguments.length>0&&arguments[0]!==void 0?arguments[0]:["copy","cut"],G=typeof N=="string"?[N]:N,We=!!document.queryCommandSupported;return G.forEach(function(Yt){We=We&&!!document.queryCommandSupported(Yt)}),We}}]),_})(a()),Xi=Ji}),828:(function(o){var n=9;if(typeof Element!="undefined"&&!Element.prototype.matches){var i=Element.prototype;i.matches=i.matchesSelector||i.mozMatchesSelector||i.msMatchesSelector||i.oMatchesSelector||i.webkitMatchesSelector}function s(a,c){for(;a&&a.nodeType!==n;){if(typeof a.matches=="function"&&a.matches(c))return a;a=a.parentNode}}o.exports=s}),438:(function(o,n,i){var s=i(828);function a(l,f,u,d,v){var S=p.apply(this,arguments);return l.addEventListener(u,S,v),{destroy:function(){l.removeEventListener(u,S,v)}}}function c(l,f,u,d,v){return typeof l.addEventListener=="function"?a.apply(null,arguments):typeof u=="function"?a.bind(null,document).apply(null,arguments):(typeof l=="string"&&(l=document.querySelectorAll(l)),Array.prototype.map.call(l,function(S){return a(S,f,u,d,v)}))}function p(l,f,u,d){return function(v){v.delegateTarget=s(v.target,f),v.delegateTarget&&d.call(l,v)}}o.exports=c}),879:(function(o,n){n.node=function(i){return i!==void 0&&i instanceof HTMLElement&&i.nodeType===1},n.nodeList=function(i){var s=Object.prototype.toString.call(i);return i!==void 0&&(s==="[object NodeList]"||s==="[object HTMLCollection]")&&"length"in i&&(i.length===0||n.node(i[0]))},n.string=function(i){return typeof i=="string"||i instanceof String},n.fn=function(i){var s=Object.prototype.toString.call(i);return s==="[object Function]"}}),370:(function(o,n,i){var s=i(879),a=i(438);function c(u,d,v){if(!u&&!d&&!v)throw new Error("Missing required arguments");if(!s.string(d))throw new TypeError("Second argument must be a String");if(!s.fn(v))throw new TypeError("Third argument must be a Function");if(s.node(u))return p(u,d,v);if(s.nodeList(u))return l(u,d,v);if(s.string(u))return f(u,d,v);throw new TypeError("First argument must be a String, HTMLElement, HTMLCollection, or NodeList")}function p(u,d,v){return u.addEventListener(d,v),{destroy:function(){u.removeEventListener(d,v)}}}function l(u,d,v){return Array.prototype.forEach.call(u,function(S){S.addEventListener(d,v)}),{destroy:function(){Array.prototype.forEach.call(u,function(S){S.removeEventListener(d,v)})}}}function f(u,d,v){return a(document.body,u,d,v)}o.exports=c}),817:(function(o){function n(i){var s;if(i.nodeName==="SELECT")i.focus(),s=i.value;else if(i.nodeName==="INPUT"||i.nodeName==="TEXTAREA"){var a=i.hasAttribute("readonly");a||i.setAttribute("readonly",""),i.select(),i.setSelectionRange(0,i.value.length),a||i.removeAttribute("readonly"),s=i.value}else{i.hasAttribute("contenteditable")&&i.focus();var c=window.getSelection(),p=document.createRange();p.selectNodeContents(i),c.removeAllRanges(),c.addRange(p),s=c.toString()}return s}o.exports=n}),279:(function(o){function n(){}n.prototype={on:function(i,s,a){var c=this.e||(this.e={});return(c[i]||(c[i]=[])).push({fn:s,ctx:a}),this},once:function(i,s,a){var c=this;function p(){c.off(i,p),s.apply(a,arguments)}return p._=s,this.on(i,p,a)},emit:function(i){var s=[].slice.call(arguments,1),a=((this.e||(this.e={}))[i]||[]).slice(),c=0,p=a.length;for(c;c0&&i[i.length-1])&&(p[0]===6||p[0]===2)){r=0;continue}if(p[0]===3&&(!i||p[1]>i[0]&&p[1]=e.length&&(e=void 0),{value:e&&e[o++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")}function K(e,t){var r=typeof Symbol=="function"&&e[Symbol.iterator];if(!r)return e;var o=r.call(e),n,i=[],s;try{for(;(t===void 0||t-- >0)&&!(n=o.next()).done;)i.push(n.value)}catch(a){s={error:a}}finally{try{n&&!n.done&&(r=o.return)&&r.call(o)}finally{if(s)throw s.error}}return i}function B(e,t,r){if(r||arguments.length===2)for(var o=0,n=t.length,i;o1||c(d,S)})},v&&(n[d]=v(n[d])))}function c(d,v){try{p(o[d](v))}catch(S){u(i[0][3],S)}}function p(d){d.value instanceof dt?Promise.resolve(d.value.v).then(l,f):u(i[0][2],d)}function l(d){c("next",d)}function f(d){c("throw",d)}function u(d,v){d(v),i.shift(),i.length&&c(i[0][0],i[0][1])}}function To(e){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var t=e[Symbol.asyncIterator],r;return t?t.call(e):(e=typeof Oe=="function"?Oe(e):e[Symbol.iterator](),r={},o("next"),o("throw"),o("return"),r[Symbol.asyncIterator]=function(){return this},r);function o(i){r[i]=e[i]&&function(s){return new Promise(function(a,c){s=e[i](s),n(a,c,s.done,s.value)})}}function n(i,s,a,c){Promise.resolve(c).then(function(p){i({value:p,done:a})},s)}}function I(e){return typeof e=="function"}function yt(e){var t=function(o){Error.call(o),o.stack=new Error().stack},r=e(t);return r.prototype=Object.create(Error.prototype),r.prototype.constructor=r,r}var Jt=yt(function(e){return function(r){e(this),this.message=r?r.length+` errors occurred during unsubscription: +`+r.map(function(o,n){return n+1+") "+o.toString()}).join(` + `):"",this.name="UnsubscriptionError",this.errors=r}});function Ze(e,t){if(e){var r=e.indexOf(t);0<=r&&e.splice(r,1)}}var qe=(function(){function e(t){this.initialTeardown=t,this.closed=!1,this._parentage=null,this._finalizers=null}return e.prototype.unsubscribe=function(){var t,r,o,n,i;if(!this.closed){this.closed=!0;var s=this._parentage;if(s)if(this._parentage=null,Array.isArray(s))try{for(var a=Oe(s),c=a.next();!c.done;c=a.next()){var p=c.value;p.remove(this)}}catch(S){t={error:S}}finally{try{c&&!c.done&&(r=a.return)&&r.call(a)}finally{if(t)throw t.error}}else s.remove(this);var l=this.initialTeardown;if(I(l))try{l()}catch(S){i=S instanceof Jt?S.errors:[S]}var f=this._finalizers;if(f){this._finalizers=null;try{for(var u=Oe(f),d=u.next();!d.done;d=u.next()){var v=d.value;try{So(v)}catch(S){i=i!=null?i:[],S instanceof Jt?i=B(B([],K(i)),K(S.errors)):i.push(S)}}}catch(S){o={error:S}}finally{try{d&&!d.done&&(n=u.return)&&n.call(u)}finally{if(o)throw o.error}}}if(i)throw new Jt(i)}},e.prototype.add=function(t){var r;if(t&&t!==this)if(this.closed)So(t);else{if(t instanceof e){if(t.closed||t._hasParent(this))return;t._addParent(this)}(this._finalizers=(r=this._finalizers)!==null&&r!==void 0?r:[]).push(t)}},e.prototype._hasParent=function(t){var r=this._parentage;return r===t||Array.isArray(r)&&r.includes(t)},e.prototype._addParent=function(t){var r=this._parentage;this._parentage=Array.isArray(r)?(r.push(t),r):r?[r,t]:t},e.prototype._removeParent=function(t){var r=this._parentage;r===t?this._parentage=null:Array.isArray(r)&&Ze(r,t)},e.prototype.remove=function(t){var r=this._finalizers;r&&Ze(r,t),t instanceof e&&t._removeParent(this)},e.EMPTY=(function(){var t=new e;return t.closed=!0,t})(),e})();var $r=qe.EMPTY;function Xt(e){return e instanceof qe||e&&"closed"in e&&I(e.remove)&&I(e.add)&&I(e.unsubscribe)}function So(e){I(e)?e():e.unsubscribe()}var De={onUnhandledError:null,onStoppedNotification:null,Promise:void 0,useDeprecatedSynchronousErrorHandling:!1,useDeprecatedNextContext:!1};var xt={setTimeout:function(e,t){for(var r=[],o=2;o0},enumerable:!1,configurable:!0}),t.prototype._trySubscribe=function(r){return this._throwIfClosed(),e.prototype._trySubscribe.call(this,r)},t.prototype._subscribe=function(r){return this._throwIfClosed(),this._checkFinalizedStatuses(r),this._innerSubscribe(r)},t.prototype._innerSubscribe=function(r){var o=this,n=this,i=n.hasError,s=n.isStopped,a=n.observers;return i||s?$r:(this.currentObservers=null,a.push(r),new qe(function(){o.currentObservers=null,Ze(a,r)}))},t.prototype._checkFinalizedStatuses=function(r){var o=this,n=o.hasError,i=o.thrownError,s=o.isStopped;n?r.error(i):s&&r.complete()},t.prototype.asObservable=function(){var r=new F;return r.source=this,r},t.create=function(r,o){return new Ho(r,o)},t})(F);var Ho=(function(e){ie(t,e);function t(r,o){var n=e.call(this)||this;return n.destination=r,n.source=o,n}return t.prototype.next=function(r){var o,n;(n=(o=this.destination)===null||o===void 0?void 0:o.next)===null||n===void 0||n.call(o,r)},t.prototype.error=function(r){var o,n;(n=(o=this.destination)===null||o===void 0?void 0:o.error)===null||n===void 0||n.call(o,r)},t.prototype.complete=function(){var r,o;(o=(r=this.destination)===null||r===void 0?void 0:r.complete)===null||o===void 0||o.call(r)},t.prototype._subscribe=function(r){var o,n;return(n=(o=this.source)===null||o===void 0?void 0:o.subscribe(r))!==null&&n!==void 0?n:$r},t})(T);var jr=(function(e){ie(t,e);function t(r){var o=e.call(this)||this;return o._value=r,o}return Object.defineProperty(t.prototype,"value",{get:function(){return this.getValue()},enumerable:!1,configurable:!0}),t.prototype._subscribe=function(r){var o=e.prototype._subscribe.call(this,r);return!o.closed&&r.next(this._value),o},t.prototype.getValue=function(){var r=this,o=r.hasError,n=r.thrownError,i=r._value;if(o)throw n;return this._throwIfClosed(),i},t.prototype.next=function(r){e.prototype.next.call(this,this._value=r)},t})(T);var Rt={now:function(){return(Rt.delegate||Date).now()},delegate:void 0};var It=(function(e){ie(t,e);function t(r,o,n){r===void 0&&(r=1/0),o===void 0&&(o=1/0),n===void 0&&(n=Rt);var i=e.call(this)||this;return i._bufferSize=r,i._windowTime=o,i._timestampProvider=n,i._buffer=[],i._infiniteTimeWindow=!0,i._infiniteTimeWindow=o===1/0,i._bufferSize=Math.max(1,r),i._windowTime=Math.max(1,o),i}return t.prototype.next=function(r){var o=this,n=o.isStopped,i=o._buffer,s=o._infiniteTimeWindow,a=o._timestampProvider,c=o._windowTime;n||(i.push(r),!s&&i.push(a.now()+c)),this._trimBuffer(),e.prototype.next.call(this,r)},t.prototype._subscribe=function(r){this._throwIfClosed(),this._trimBuffer();for(var o=this._innerSubscribe(r),n=this,i=n._infiniteTimeWindow,s=n._buffer,a=s.slice(),c=0;c0?e.prototype.schedule.call(this,r,o):(this.delay=o,this.state=r,this.scheduler.flush(this),this)},t.prototype.execute=function(r,o){return o>0||this.closed?e.prototype.execute.call(this,r,o):this._execute(r,o)},t.prototype.requestAsyncId=function(r,o,n){return n===void 0&&(n=0),n!=null&&n>0||n==null&&this.delay>0?e.prototype.requestAsyncId.call(this,r,o,n):(r.flush(this),0)},t})(St);var Ro=(function(e){ie(t,e);function t(){return e!==null&&e.apply(this,arguments)||this}return t})(Ot);var Dr=new Ro(Po);var Io=(function(e){ie(t,e);function t(r,o){var n=e.call(this,r,o)||this;return n.scheduler=r,n.work=o,n}return t.prototype.requestAsyncId=function(r,o,n){return n===void 0&&(n=0),n!==null&&n>0?e.prototype.requestAsyncId.call(this,r,o,n):(r.actions.push(this),r._scheduled||(r._scheduled=Tt.requestAnimationFrame(function(){return r.flush(void 0)})))},t.prototype.recycleAsyncId=function(r,o,n){var i;if(n===void 0&&(n=0),n!=null?n>0:this.delay>0)return e.prototype.recycleAsyncId.call(this,r,o,n);var s=r.actions;o!=null&&o===r._scheduled&&((i=s[s.length-1])===null||i===void 0?void 0:i.id)!==o&&(Tt.cancelAnimationFrame(o),r._scheduled=void 0)},t})(St);var Fo=(function(e){ie(t,e);function t(){return e!==null&&e.apply(this,arguments)||this}return t.prototype.flush=function(r){this._active=!0;var o;r?o=r.id:(o=this._scheduled,this._scheduled=void 0);var n=this.actions,i;r=r||n.shift();do if(i=r.execute(r.state,r.delay))break;while((r=n[0])&&r.id===o&&n.shift());if(this._active=!1,i){for(;(r=n[0])&&r.id===o&&n.shift();)r.unsubscribe();throw i}},t})(Ot);var ye=new Fo(Io);var y=new F(function(e){return e.complete()});function tr(e){return e&&I(e.schedule)}function Vr(e){return e[e.length-1]}function pt(e){return I(Vr(e))?e.pop():void 0}function Fe(e){return tr(Vr(e))?e.pop():void 0}function rr(e,t){return typeof Vr(e)=="number"?e.pop():t}var Lt=(function(e){return e&&typeof e.length=="number"&&typeof e!="function"});function or(e){return I(e==null?void 0:e.then)}function nr(e){return I(e[wt])}function ir(e){return Symbol.asyncIterator&&I(e==null?void 0:e[Symbol.asyncIterator])}function ar(e){return new TypeError("You provided "+(e!==null&&typeof e=="object"?"an invalid object":"'"+e+"'")+" where a stream was expected. You can provide an Observable, Promise, ReadableStream, Array, AsyncIterable, or Iterable.")}function fa(){return typeof Symbol!="function"||!Symbol.iterator?"@@iterator":Symbol.iterator}var sr=fa();function cr(e){return I(e==null?void 0:e[sr])}function pr(e){return wo(this,arguments,function(){var r,o,n,i;return Gt(this,function(s){switch(s.label){case 0:r=e.getReader(),s.label=1;case 1:s.trys.push([1,,9,10]),s.label=2;case 2:return[4,dt(r.read())];case 3:return o=s.sent(),n=o.value,i=o.done,i?[4,dt(void 0)]:[3,5];case 4:return[2,s.sent()];case 5:return[4,dt(n)];case 6:return[4,s.sent()];case 7:return s.sent(),[3,2];case 8:return[3,10];case 9:return r.releaseLock(),[7];case 10:return[2]}})})}function lr(e){return I(e==null?void 0:e.getReader)}function U(e){if(e instanceof F)return e;if(e!=null){if(nr(e))return ua(e);if(Lt(e))return da(e);if(or(e))return ha(e);if(ir(e))return jo(e);if(cr(e))return ba(e);if(lr(e))return va(e)}throw ar(e)}function ua(e){return new F(function(t){var r=e[wt]();if(I(r.subscribe))return r.subscribe(t);throw new TypeError("Provided object does not correctly implement Symbol.observable")})}function da(e){return new F(function(t){for(var r=0;r=2;return function(o){return o.pipe(e?g(function(n,i){return e(n,i,o)}):be,Ee(1),r?Qe(t):tn(function(){return new fr}))}}function Yr(e){return e<=0?function(){return y}:E(function(t,r){var o=[];t.subscribe(w(r,function(n){o.push(n),e=2,!0))}function le(e){e===void 0&&(e={});var t=e.connector,r=t===void 0?function(){return new T}:t,o=e.resetOnError,n=o===void 0?!0:o,i=e.resetOnComplete,s=i===void 0?!0:i,a=e.resetOnRefCountZero,c=a===void 0?!0:a;return function(p){var l,f,u,d=0,v=!1,S=!1,X=function(){f==null||f.unsubscribe(),f=void 0},re=function(){X(),l=u=void 0,v=S=!1},ee=function(){var k=l;re(),k==null||k.unsubscribe()};return E(function(k,ut){d++,!S&&!v&&X();var je=u=u!=null?u:r();ut.add(function(){d--,d===0&&!S&&!v&&(f=Br(ee,c))}),je.subscribe(ut),!l&&d>0&&(l=new bt({next:function(R){return je.next(R)},error:function(R){S=!0,X(),f=Br(re,n,R),je.error(R)},complete:function(){v=!0,X(),f=Br(re,s),je.complete()}}),U(k).subscribe(l))})(p)}}function Br(e,t){for(var r=[],o=2;oe.next(document)),e}function M(e,t=document){return Array.from(t.querySelectorAll(e))}function j(e,t=document){let r=ue(e,t);if(typeof r=="undefined")throw new ReferenceError(`Missing element: expected "${e}" to be present`);return r}function ue(e,t=document){return t.querySelector(e)||void 0}function Ne(){var e,t,r,o;return(o=(r=(t=(e=document.activeElement)==null?void 0:e.shadowRoot)==null?void 0:t.activeElement)!=null?r:document.activeElement)!=null?o:void 0}var Ra=L(h(document.body,"focusin"),h(document.body,"focusout")).pipe(Ae(1),Q(void 0),m(()=>Ne()||document.body),Z(1));function Ye(e){return Ra.pipe(m(t=>e.contains(t)),Y())}function it(e,t){return H(()=>L(h(e,"mouseenter").pipe(m(()=>!0)),h(e,"mouseleave").pipe(m(()=>!1))).pipe(t?jt(r=>He(+!r*t)):be,Q(e.matches(":hover"))))}function sn(e,t){if(typeof t=="string"||typeof t=="number")e.innerHTML+=t.toString();else if(t instanceof Node)e.appendChild(t);else if(Array.isArray(t))for(let r of t)sn(e,r)}function x(e,t,...r){let o=document.createElement(e);if(t)for(let n of Object.keys(t))typeof t[n]!="undefined"&&(typeof t[n]!="boolean"?o.setAttribute(n,t[n]):o.setAttribute(n,""));for(let n of r)sn(o,n);return o}function br(e){if(e>999){let t=+((e-950)%1e3>99);return`${((e+1e-6)/1e3).toFixed(t)}k`}else return e.toString()}function _t(e){let t=x("script",{src:e});return H(()=>(document.head.appendChild(t),L(h(t,"load"),h(t,"error").pipe(b(()=>Nr(()=>new ReferenceError(`Invalid script: ${e}`))))).pipe(m(()=>{}),A(()=>document.head.removeChild(t)),Ee(1))))}var cn=new T,Ia=H(()=>typeof ResizeObserver=="undefined"?_t("https://unpkg.com/resize-observer-polyfill"):$(void 0)).pipe(m(()=>new ResizeObserver(e=>e.forEach(t=>cn.next(t)))),b(e=>L(tt,$(e)).pipe(A(()=>e.disconnect()))),Z(1));function de(e){return{width:e.offsetWidth,height:e.offsetHeight}}function Le(e){let t=e;for(;t.clientWidth===0&&t.parentElement;)t=t.parentElement;return Ia.pipe(O(r=>r.observe(t)),b(r=>cn.pipe(g(o=>o.target===t),A(()=>r.unobserve(t)))),m(()=>de(e)),Q(de(e)))}function At(e){return{width:e.scrollWidth,height:e.scrollHeight}}function vr(e){let t=e.parentElement;for(;t&&(e.scrollWidth<=t.scrollWidth&&e.scrollHeight<=t.scrollHeight);)t=(e=t).parentElement;return t?e:void 0}function pn(e){let t=[],r=e.parentElement;for(;r;)(e.clientWidth>r.clientWidth||e.clientHeight>r.clientHeight)&&t.push(r),r=(e=r).parentElement;return t.length===0&&t.push(document.documentElement),t}function Be(e){return{x:e.offsetLeft,y:e.offsetTop}}function ln(e){let t=e.getBoundingClientRect();return{x:t.x+window.scrollX,y:t.y+window.scrollY}}function mn(e){return L(h(window,"load"),h(window,"resize")).pipe($e(0,ye),m(()=>Be(e)),Q(Be(e)))}function gr(e){return{x:e.scrollLeft,y:e.scrollTop}}function Ge(e){return L(h(e,"scroll"),h(window,"scroll"),h(window,"resize")).pipe($e(0,ye),m(()=>gr(e)),Q(gr(e)))}var fn=new T,Fa=H(()=>$(new IntersectionObserver(e=>{for(let t of e)fn.next(t)},{threshold:0}))).pipe(b(e=>L(tt,$(e)).pipe(A(()=>e.disconnect()))),Z(1));function mt(e){return Fa.pipe(O(t=>t.observe(e)),b(t=>fn.pipe(g(({target:r})=>r===e),A(()=>t.unobserve(e)),m(({isIntersecting:r})=>r))))}function un(e,t=16){return Ge(e).pipe(m(({y:r})=>{let o=de(e),n=At(e);return r>=n.height-o.height-t}),Y())}var yr={drawer:j("[data-md-toggle=drawer]"),search:j("[data-md-toggle=search]")};function dn(e){return yr[e].checked}function at(e,t){yr[e].checked!==t&&yr[e].click()}function Je(e){let t=yr[e];return h(t,"change").pipe(m(()=>t.checked),Q(t.checked))}function ja(e,t){switch(e.constructor){case HTMLInputElement:return e.type==="radio"?/^Arrow/.test(t):!0;case HTMLSelectElement:case HTMLTextAreaElement:return!0;default:return e.isContentEditable}}function Ua(){return L(h(window,"compositionstart").pipe(m(()=>!0)),h(window,"compositionend").pipe(m(()=>!1))).pipe(Q(!1))}function hn(){let e=h(window,"keydown").pipe(g(t=>!(t.metaKey||t.ctrlKey)),m(t=>({mode:dn("search")?"search":"global",type:t.key,claim(){t.preventDefault(),t.stopPropagation()}})),g(({mode:t,type:r})=>{if(t==="global"){let o=Ne();if(typeof o!="undefined")return!ja(o,r)}return!0}),le());return Ua().pipe(b(t=>t?y:e))}function we(){return new URL(location.href)}function st(e,t=!1){if(V("navigation.instant")&&!t){let r=x("a",{href:e.href});document.body.appendChild(r),r.click(),r.remove()}else location.href=e.href}function bn(){return new T}function vn(){return location.hash.slice(1)}function gn(e){let t=x("a",{href:e});t.addEventListener("click",r=>r.stopPropagation()),t.click()}function Zr(e){return L(h(window,"hashchange"),e).pipe(m(vn),Q(vn()),g(t=>t.length>0),Z(1))}function yn(e){return Zr(e).pipe(m(t=>ue(`[id="${t}"]`)),g(t=>typeof t!="undefined"))}function Wt(e){let t=matchMedia(e);return ur(r=>t.addListener(()=>r(t.matches))).pipe(Q(t.matches))}function xn(){let e=matchMedia("print");return L(h(window,"beforeprint").pipe(m(()=>!0)),h(window,"afterprint").pipe(m(()=>!1))).pipe(Q(e.matches))}function eo(e,t){return e.pipe(b(r=>r?t():y))}function to(e,t){return new F(r=>{let o=new XMLHttpRequest;return o.open("GET",`${e}`),o.responseType="blob",o.addEventListener("load",()=>{o.status>=200&&o.status<300?(r.next(o.response),r.complete()):r.error(new Error(o.statusText))}),o.addEventListener("error",()=>{r.error(new Error("Network error"))}),o.addEventListener("abort",()=>{r.complete()}),typeof(t==null?void 0:t.progress$)!="undefined"&&(o.addEventListener("progress",n=>{var i;if(n.lengthComputable)t.progress$.next(n.loaded/n.total*100);else{let s=(i=o.getResponseHeader("Content-Length"))!=null?i:0;t.progress$.next(n.loaded/+s*100)}}),t.progress$.next(5)),o.send(),()=>o.abort()})}function ze(e,t){return to(e,t).pipe(b(r=>r.text()),m(r=>JSON.parse(r)),Z(1))}function xr(e,t){let r=new DOMParser;return to(e,t).pipe(b(o=>o.text()),m(o=>r.parseFromString(o,"text/html")),Z(1))}function En(e,t){let r=new DOMParser;return to(e,t).pipe(b(o=>o.text()),m(o=>r.parseFromString(o,"text/xml")),Z(1))}function wn(){return{x:Math.max(0,scrollX),y:Math.max(0,scrollY)}}function Tn(){return L(h(window,"scroll",{passive:!0}),h(window,"resize",{passive:!0})).pipe(m(wn),Q(wn()))}function Sn(){return{width:innerWidth,height:innerHeight}}function On(){return h(window,"resize",{passive:!0}).pipe(m(Sn),Q(Sn()))}function Ln(){return z([Tn(),On()]).pipe(m(([e,t])=>({offset:e,size:t})),Z(1))}function Er(e,{viewport$:t,header$:r}){let o=t.pipe(ne("size")),n=z([o,r]).pipe(m(()=>Be(e)));return z([r,t,n]).pipe(m(([{height:i},{offset:s,size:a},{x:c,y:p}])=>({offset:{x:s.x-c,y:s.y-p+i},size:a})))}function Wa(e){return h(e,"message",t=>t.data)}function Da(e){let t=new T;return t.subscribe(r=>e.postMessage(r)),t}function Mn(e,t=new Worker(e)){let r=Wa(t),o=Da(t),n=new T;n.subscribe(o);let i=o.pipe(oe(),ae(!0));return n.pipe(oe(),Ve(r.pipe(W(i))),le())}var Va=j("#__config"),Ct=JSON.parse(Va.textContent);Ct.base=`${new URL(Ct.base,we())}`;function Te(){return Ct}function V(e){return Ct.features.includes(e)}function Me(e,t){return typeof t!="undefined"?Ct.translations[e].replace("#",t.toString()):Ct.translations[e]}function Ce(e,t=document){return j(`[data-md-component=${e}]`,t)}function me(e,t=document){return M(`[data-md-component=${e}]`,t)}function Na(e){let t=j(".md-typeset > :first-child",e);return h(t,"click",{once:!0}).pipe(m(()=>j(".md-typeset",e)),m(r=>({hash:__md_hash(r.innerHTML)})))}function _n(e){if(!V("announce.dismiss")||!e.childElementCount)return y;if(!e.hidden){let t=j(".md-typeset",e);__md_hash(t.innerHTML)===__md_get("__announce")&&(e.hidden=!0)}return H(()=>{let t=new T;return t.subscribe(({hash:r})=>{e.hidden=!0,__md_set("__announce",r)}),Na(e).pipe(O(r=>t.next(r)),A(()=>t.complete()),m(r=>P({ref:e},r)))})}function za(e,{target$:t}){return t.pipe(m(r=>({hidden:r!==e})))}function An(e,t){let r=new T;return r.subscribe(({hidden:o})=>{e.hidden=o}),za(e,t).pipe(O(o=>r.next(o)),A(()=>r.complete()),m(o=>P({ref:e},o)))}function Dt(e,t){return t==="inline"?x("div",{class:"md-tooltip md-tooltip--inline",id:e,role:"tooltip"},x("div",{class:"md-tooltip__inner md-typeset"})):x("div",{class:"md-tooltip",id:e,role:"tooltip"},x("div",{class:"md-tooltip__inner md-typeset"}))}function wr(...e){return x("div",{class:"md-tooltip2",role:"dialog"},x("div",{class:"md-tooltip2__inner md-typeset"},e))}function Cn(...e){return x("div",{class:"md-tooltip2",role:"tooltip"},x("div",{class:"md-tooltip2__inner md-typeset"},e))}function kn(e,t){if(t=t?`${t}_annotation_${e}`:void 0,t){let r=t?`#${t}`:void 0;return x("aside",{class:"md-annotation",tabIndex:0},Dt(t),x("a",{href:r,class:"md-annotation__index",tabIndex:-1},x("span",{"data-md-annotation-id":e})))}else return x("aside",{class:"md-annotation",tabIndex:0},Dt(t),x("span",{class:"md-annotation__index",tabIndex:-1},x("span",{"data-md-annotation-id":e})))}function Hn(e){return x("button",{class:"md-code__button",title:Me("clipboard.copy"),"data-clipboard-target":`#${e} > code`,"data-md-type":"copy"})}function $n(){return x("button",{class:"md-code__button",title:"Toggle line selection","data-md-type":"select"})}function Pn(){return x("nav",{class:"md-code__nav"})}var In=$t(ro());function oo(e,t){let r=t&2,o=t&1,n=Object.keys(e.terms).filter(c=>!e.terms[c]).reduce((c,p)=>[...c,x("del",null,(0,In.default)(p))," "],[]).slice(0,-1),i=Te(),s=new URL(e.location,i.base);V("search.highlight")&&s.searchParams.set("h",Object.entries(e.terms).filter(([,c])=>c).reduce((c,[p])=>`${c} ${p}`.trim(),""));let{tags:a}=Te();return x("a",{href:`${s}`,class:"md-search-result__link",tabIndex:-1},x("article",{class:"md-search-result__article md-typeset","data-md-score":e.score.toFixed(2)},r>0&&x("div",{class:"md-search-result__icon md-icon"}),r>0&&x("h1",null,e.title),r<=0&&x("h2",null,e.title),o>0&&e.text.length>0&&e.text,e.tags&&x("nav",{class:"md-tags"},e.tags.map(c=>{let p=a?c in a?`md-tag-icon md-tag--${a[c]}`:"md-tag-icon":"";return x("span",{class:`md-tag ${p}`},c)})),o>0&&n.length>0&&x("p",{class:"md-search-result__terms"},Me("search.result.term.missing"),": ",...n)))}function Fn(e){let t=e[0].score,r=[...e],o=Te(),n=r.findIndex(l=>!`${new URL(l.location,o.base)}`.includes("#")),[i]=r.splice(n,1),s=r.findIndex(l=>l.scoreoo(l,1)),...c.length?[x("details",{class:"md-search-result__more"},x("summary",{tabIndex:-1},x("div",null,c.length>0&&c.length===1?Me("search.result.more.one"):Me("search.result.more.other",c.length))),...c.map(l=>oo(l,1)))]:[]];return x("li",{class:"md-search-result__item"},p)}function jn(e){return x("ul",{class:"md-source__facts"},Object.entries(e).map(([t,r])=>x("li",{class:`md-source__fact md-source__fact--${t}`},typeof r=="number"?br(r):r)))}function no(e){let t=`tabbed-control tabbed-control--${e}`;return x("div",{class:t,hidden:!0},x("button",{class:"tabbed-button",tabIndex:-1,"aria-hidden":"true"}))}function Un(e){return x("div",{class:"md-typeset__scrollwrap"},x("div",{class:"md-typeset__table"},e))}function Qa(e){var o;let t=Te(),r=new URL(`../${e.version}/`,t.base);return x("li",{class:"md-version__item"},x("a",{href:`${r}`,class:"md-version__link"},e.title,((o=t.version)==null?void 0:o.alias)&&e.aliases.length>0&&x("span",{class:"md-version__alias"},e.aliases[0])))}function Wn(e,t){var o;let r=Te();return e=e.filter(n=>{var i;return!((i=n.properties)!=null&&i.hidden)}),x("div",{class:"md-version"},x("button",{class:"md-version__current","aria-label":Me("select.version")},t.title,((o=r.version)==null?void 0:o.alias)&&t.aliases.length>0&&x("span",{class:"md-version__alias"},t.aliases[0])),x("ul",{class:"md-version__list"},e.map(Qa)))}var Ya=0;function Ba(e,t=250){let r=z([Ye(e),it(e,t)]).pipe(m(([n,i])=>n||i),Y()),o=H(()=>pn(e)).pipe(J(Ge),gt(1),Pe(r),m(()=>ln(e)));return r.pipe(Re(n=>n),b(()=>z([r,o])),m(([n,i])=>({active:n,offset:i})),le())}function Vt(e,t,r=250){let{content$:o,viewport$:n}=t,i=`__tooltip2_${Ya++}`;return H(()=>{let s=new T,a=new jr(!1);s.pipe(oe(),ae(!1)).subscribe(a);let c=a.pipe(jt(l=>He(+!l*250,Dr)),Y(),b(l=>l?o:y),O(l=>l.id=i),le());z([s.pipe(m(({active:l})=>l)),c.pipe(b(l=>it(l,250)),Q(!1))]).pipe(m(l=>l.some(f=>f))).subscribe(a);let p=a.pipe(g(l=>l),te(c,n),m(([l,f,{size:u}])=>{let d=e.getBoundingClientRect(),v=d.width/2;if(f.role==="tooltip")return{x:v,y:8+d.height};if(d.y>=u.height/2){let{height:S}=de(f);return{x:v,y:-16-S}}else return{x:v,y:16+d.height}}));return z([c,s,p]).subscribe(([l,{offset:f},u])=>{l.style.setProperty("--md-tooltip-host-x",`${f.x}px`),l.style.setProperty("--md-tooltip-host-y",`${f.y}px`),l.style.setProperty("--md-tooltip-x",`${u.x}px`),l.style.setProperty("--md-tooltip-y",`${u.y}px`),l.classList.toggle("md-tooltip2--top",u.y<0),l.classList.toggle("md-tooltip2--bottom",u.y>=0)}),a.pipe(g(l=>l),te(c,(l,f)=>f),g(l=>l.role==="tooltip")).subscribe(l=>{let f=de(j(":scope > *",l));l.style.setProperty("--md-tooltip-width",`${f.width}px`),l.style.setProperty("--md-tooltip-tail","0px")}),a.pipe(Y(),xe(ye),te(c)).subscribe(([l,f])=>{f.classList.toggle("md-tooltip2--active",l)}),z([a.pipe(g(l=>l)),c]).subscribe(([l,f])=>{f.role==="dialog"?(e.setAttribute("aria-controls",i),e.setAttribute("aria-haspopup","dialog")):e.setAttribute("aria-describedby",i)}),a.pipe(g(l=>!l)).subscribe(()=>{e.removeAttribute("aria-controls"),e.removeAttribute("aria-describedby"),e.removeAttribute("aria-haspopup")}),Ba(e,r).pipe(O(l=>s.next(l)),A(()=>s.complete()),m(l=>P({ref:e},l)))})}function Xe(e,{viewport$:t},r=document.body){return Vt(e,{content$:new F(o=>{let n=e.title,i=Cn(n);return o.next(i),e.removeAttribute("title"),r.append(i),()=>{i.remove(),e.setAttribute("title",n)}}),viewport$:t},0)}function Ga(e,t){let r=H(()=>z([mn(e),Ge(t)])).pipe(m(([{x:o,y:n},i])=>{let{width:s,height:a}=de(e);return{x:o-i.x+s/2,y:n-i.y+a/2}}));return Ye(e).pipe(b(o=>r.pipe(m(n=>({active:o,offset:n})),Ee(+!o||1/0))))}function Dn(e,t,{target$:r}){let[o,n]=Array.from(e.children);return H(()=>{let i=new T,s=i.pipe(oe(),ae(!0));return i.subscribe({next({offset:a}){e.style.setProperty("--md-tooltip-x",`${a.x}px`),e.style.setProperty("--md-tooltip-y",`${a.y}px`)},complete(){e.style.removeProperty("--md-tooltip-x"),e.style.removeProperty("--md-tooltip-y")}}),mt(e).pipe(W(s)).subscribe(a=>{e.toggleAttribute("data-md-visible",a)}),L(i.pipe(g(({active:a})=>a)),i.pipe(Ae(250),g(({active:a})=>!a))).subscribe({next({active:a}){a?e.prepend(o):o.remove()},complete(){e.prepend(o)}}),i.pipe($e(16,ye)).subscribe(({active:a})=>{o.classList.toggle("md-tooltip--active",a)}),i.pipe(gt(125,ye),g(()=>!!e.offsetParent),m(()=>e.offsetParent.getBoundingClientRect()),m(({x:a})=>a)).subscribe({next(a){a?e.style.setProperty("--md-tooltip-0",`${-a}px`):e.style.removeProperty("--md-tooltip-0")},complete(){e.style.removeProperty("--md-tooltip-0")}}),h(n,"click").pipe(W(s),g(a=>!(a.metaKey||a.ctrlKey))).subscribe(a=>{a.stopPropagation(),a.preventDefault()}),h(n,"mousedown").pipe(W(s),te(i)).subscribe(([a,{active:c}])=>{var p;if(a.button!==0||a.metaKey||a.ctrlKey)a.preventDefault();else if(c){a.preventDefault();let l=e.parentElement.closest(".md-annotation");l instanceof HTMLElement?l.focus():(p=Ne())==null||p.blur()}}),r.pipe(W(s),g(a=>a===o),nt(125)).subscribe(()=>e.focus()),Ga(e,t).pipe(O(a=>i.next(a)),A(()=>i.complete()),m(a=>P({ref:e},a)))})}function Ja(e){let t=Te();if(e.tagName!=="CODE")return[e];let r=[".c",".c1",".cm"];if(t.annotate&&typeof t.annotate=="object"){let o=e.closest("[class|=language]");if(o)for(let n of Array.from(o.classList)){if(!n.startsWith("language-"))continue;let[,i]=n.split("-");i in t.annotate&&r.push(...t.annotate[i])}}return M(r.join(", "),e)}function Xa(e){let t=[];for(let r of Ja(e)){let o=[],n=document.createNodeIterator(r,NodeFilter.SHOW_TEXT);for(let i=n.nextNode();i;i=n.nextNode())o.push(i);for(let i of o){let s;for(;s=/(\(\d+\))(!)?/.exec(i.textContent);){let[,a,c]=s;if(typeof c=="undefined"){let p=i.splitText(s.index);i=p.splitText(a.length),t.push(p)}else{i.textContent=a,t.push(i);break}}}}return t}function Vn(e,t){t.append(...Array.from(e.childNodes))}function Tr(e,t,{target$:r,print$:o}){let n=t.closest("[id]"),i=n==null?void 0:n.id,s=new Map;for(let a of Xa(t)){let[,c]=a.textContent.match(/\((\d+)\)/);ue(`:scope > li:nth-child(${c})`,e)&&(s.set(c,kn(c,i)),a.replaceWith(s.get(c)))}return s.size===0?y:H(()=>{let a=new T,c=a.pipe(oe(),ae(!0)),p=[];for(let[l,f]of s)p.push([j(".md-typeset",f),j(`:scope > li:nth-child(${l})`,e)]);return o.pipe(W(c)).subscribe(l=>{e.hidden=!l,e.classList.toggle("md-annotation-list",l);for(let[f,u]of p)l?Vn(f,u):Vn(u,f)}),L(...[...s].map(([,l])=>Dn(l,t,{target$:r}))).pipe(A(()=>a.complete()),le())})}function Nn(e){if(e.nextElementSibling){let t=e.nextElementSibling;if(t.tagName==="OL")return t;if(t.tagName==="P"&&!t.children.length)return Nn(t)}}function zn(e,t){return H(()=>{let r=Nn(e);return typeof r!="undefined"?Tr(r,e,t):y})}var Kn=$t(ao());var Za=0,qn=L(h(window,"keydown").pipe(m(()=>!0)),L(h(window,"keyup"),h(window,"contextmenu")).pipe(m(()=>!1))).pipe(Q(!1),Z(1));function Qn(e){if(e.nextElementSibling){let t=e.nextElementSibling;if(t.tagName==="OL")return t;if(t.tagName==="P"&&!t.children.length)return Qn(t)}}function es(e){return Le(e).pipe(m(({width:t})=>({scrollable:At(e).width>t})),ne("scrollable"))}function Yn(e,t){let{matches:r}=matchMedia("(hover)"),o=H(()=>{let n=new T,i=n.pipe(Yr(1));n.subscribe(({scrollable:d})=>{d&&r?e.setAttribute("tabindex","0"):e.removeAttribute("tabindex")});let s=[],a=e.closest("pre"),c=a.closest("[id]"),p=c?c.id:Za++;a.id=`__code_${p}`;let l=[],f=e.closest(".highlight");if(f instanceof HTMLElement){let d=Qn(f);if(typeof d!="undefined"&&(f.classList.contains("annotate")||V("content.code.annotate"))){let v=Tr(d,e,t);l.push(Le(f).pipe(W(i),m(({width:S,height:X})=>S&&X),Y(),b(S=>S?v:y)))}}let u=M(":scope > span[id]",e);if(u.length&&(e.classList.add("md-code__content"),e.closest(".select")||V("content.code.select")&&!e.closest(".no-select"))){let d=+u[0].id.split("-").pop(),v=$n();s.push(v),V("content.tooltips")&&l.push(Xe(v,{viewport$}));let S=h(v,"click").pipe(Ut(R=>!R,!1),O(()=>v.blur()),le());S.subscribe(R=>{v.classList.toggle("md-code__button--active",R)});let X=fe(u).pipe(J(R=>it(R).pipe(m(se=>[R,se]))));S.pipe(b(R=>R?X:y)).subscribe(([R,se])=>{let ce=ue(".hll.select",R);if(ce&&!se)ce.replaceWith(...Array.from(ce.childNodes));else if(!ce&&se){let he=document.createElement("span");he.className="hll select",he.append(...Array.from(R.childNodes).slice(1)),R.append(he)}});let re=fe(u).pipe(J(R=>h(R,"mousedown").pipe(O(se=>se.preventDefault()),m(()=>R)))),ee=S.pipe(b(R=>R?re:y),te(qn),m(([R,se])=>{var he;let ce=u.indexOf(R)+d;if(se===!1)return[ce,ce];{let Se=M(".hll",e).map(Ue=>u.indexOf(Ue.parentElement)+d);return(he=window.getSelection())==null||he.removeAllRanges(),[Math.min(ce,...Se),Math.max(ce,...Se)]}})),k=Zr(y).pipe(g(R=>R.startsWith(`__codelineno-${p}-`)));k.subscribe(R=>{let[,,se]=R.split("-"),ce=se.split(":").map(Se=>+Se-d+1);ce.length===1&&ce.push(ce[0]);for(let Se of M(".hll:not(.select)",e))Se.replaceWith(...Array.from(Se.childNodes));let he=u.slice(ce[0]-1,ce[1]);for(let Se of he){let Ue=document.createElement("span");Ue.className="hll",Ue.append(...Array.from(Se.childNodes).slice(1)),Se.append(Ue)}}),k.pipe(Ee(1),xe(pe)).subscribe(R=>{if(R.includes(":")){let se=document.getElementById(R.split(":")[0]);se&&setTimeout(()=>{let ce=se,he=-64;for(;ce!==document.body;)he+=ce.offsetTop,ce=ce.offsetParent;window.scrollTo({top:he})},1)}});let je=fe(M('a[href^="#__codelineno"]',f)).pipe(J(R=>h(R,"click").pipe(O(se=>se.preventDefault()),m(()=>R)))).pipe(W(i),te(qn),m(([R,se])=>{let he=+j(`[id="${R.hash.slice(1)}"]`).parentElement.id.split("-").pop();if(se===!1)return[he,he];{let Se=M(".hll",e).map(Ue=>+Ue.parentElement.id.split("-").pop());return[Math.min(he,...Se),Math.max(he,...Se)]}}));L(ee,je).subscribe(R=>{let se=`#__codelineno-${p}-`;R[0]===R[1]?se+=R[0]:se+=`${R[0]}:${R[1]}`,history.replaceState({},"",se),window.dispatchEvent(new HashChangeEvent("hashchange",{newURL:window.location.origin+window.location.pathname+se,oldURL:window.location.href}))})}if(Kn.default.isSupported()&&(e.closest(".copy")||V("content.code.copy")&&!e.closest(".no-copy"))){let d=Hn(a.id);s.push(d),V("content.tooltips")&&l.push(Xe(d,{viewport$}))}if(s.length){let d=Pn();d.append(...s),a.insertBefore(d,e)}return es(e).pipe(O(d=>n.next(d)),A(()=>n.complete()),m(d=>P({ref:e},d)),Ve(L(...l).pipe(W(i))))});return V("content.lazy")?mt(e).pipe(g(n=>n),Ee(1),b(()=>o)):o}function ts(e,{target$:t,print$:r}){let o=!0;return L(t.pipe(m(n=>n.closest("details:not([open])")),g(n=>e===n),m(()=>({action:"open",reveal:!0}))),r.pipe(g(n=>n||!o),O(()=>o=e.open),m(n=>({action:n?"open":"close"}))))}function Bn(e,t){return H(()=>{let r=new T;return r.subscribe(({action:o,reveal:n})=>{e.toggleAttribute("open",o==="open"),n&&e.scrollIntoView()}),ts(e,t).pipe(O(o=>r.next(o)),A(()=>r.complete()),m(o=>P({ref:e},o)))})}var Gn=0;function rs(e){let t=document.createElement("h3");t.innerHTML=e.innerHTML;let r=[t],o=e.nextElementSibling;for(;o&&!(o instanceof HTMLHeadingElement);)r.push(o),o=o.nextElementSibling;return r}function os(e,t){for(let r of M("[href], [src]",e))for(let o of["href","src"]){let n=r.getAttribute(o);if(n&&!/^(?:[a-z]+:)?\/\//i.test(n)){r[o]=new URL(r.getAttribute(o),t).toString();break}}for(let r of M("[name^=__], [for]",e))for(let o of["id","for","name"]){let n=r.getAttribute(o);n&&r.setAttribute(o,`${n}$preview_${Gn}`)}return Gn++,$(e)}function Jn(e,t){let{sitemap$:r}=t;if(!(e instanceof HTMLAnchorElement))return y;if(!(V("navigation.instant.preview")||e.hasAttribute("data-preview")))return y;e.removeAttribute("title");let o=z([Ye(e),it(e)]).pipe(m(([i,s])=>i||s),Y(),g(i=>i));return rt([r,o]).pipe(b(([i])=>{let s=new URL(e.href);return s.search=s.hash="",i.has(`${s}`)?$(s):y}),b(i=>xr(i).pipe(b(s=>os(s,i)))),b(i=>{let s=e.hash?`article [id="${e.hash.slice(1)}"]`:"article h1",a=ue(s,i);return typeof a=="undefined"?y:$(rs(a))})).pipe(b(i=>{let s=new F(a=>{let c=wr(...i);return a.next(c),document.body.append(c),()=>c.remove()});return Vt(e,P({content$:s},t))}))}var Xn=".node circle,.node ellipse,.node path,.node polygon,.node rect{fill:var(--md-mermaid-node-bg-color);stroke:var(--md-mermaid-node-fg-color)}marker{fill:var(--md-mermaid-edge-color)!important}.edgeLabel .label rect{fill:#0000}.flowchartTitleText{fill:var(--md-mermaid-label-fg-color)}.label{color:var(--md-mermaid-label-fg-color);font-family:var(--md-mermaid-font-family)}.label foreignObject{line-height:normal;overflow:visible}.label div .edgeLabel{color:var(--md-mermaid-label-fg-color)}.edgeLabel,.edgeLabel p,.label div .edgeLabel{background-color:var(--md-mermaid-label-bg-color)}.edgeLabel,.edgeLabel p{fill:var(--md-mermaid-label-bg-color);color:var(--md-mermaid-edge-color)}.edgePath .path,.flowchart-link{stroke:var(--md-mermaid-edge-color)}.edgePath .arrowheadPath{fill:var(--md-mermaid-edge-color);stroke:none}.cluster rect{fill:var(--md-default-fg-color--lightest);stroke:var(--md-default-fg-color--lighter)}.cluster span{color:var(--md-mermaid-label-fg-color);font-family:var(--md-mermaid-font-family)}g #flowchart-circleEnd,g #flowchart-circleStart,g #flowchart-crossEnd,g #flowchart-crossStart,g #flowchart-pointEnd,g #flowchart-pointStart{stroke:none}.classDiagramTitleText{fill:var(--md-mermaid-label-fg-color)}g.classGroup line,g.classGroup rect{fill:var(--md-mermaid-node-bg-color);stroke:var(--md-mermaid-node-fg-color)}g.classGroup text{fill:var(--md-mermaid-label-fg-color);font-family:var(--md-mermaid-font-family)}.classLabel .box{fill:var(--md-mermaid-label-bg-color);background-color:var(--md-mermaid-label-bg-color);opacity:1}.classLabel .label{fill:var(--md-mermaid-label-fg-color);font-family:var(--md-mermaid-font-family)}.node .divider{stroke:var(--md-mermaid-node-fg-color)}.relation{stroke:var(--md-mermaid-edge-color)}.cardinality{fill:var(--md-mermaid-label-fg-color);font-family:var(--md-mermaid-font-family)}.cardinality text{fill:inherit!important}defs marker.marker.composition.class path,defs marker.marker.dependency.class path,defs marker.marker.extension.class path{fill:var(--md-mermaid-edge-color)!important;stroke:var(--md-mermaid-edge-color)!important}defs marker.marker.aggregation.class path{fill:var(--md-mermaid-label-bg-color)!important;stroke:var(--md-mermaid-edge-color)!important}.statediagramTitleText{fill:var(--md-mermaid-label-fg-color)}g.stateGroup rect{fill:var(--md-mermaid-node-bg-color);stroke:var(--md-mermaid-node-fg-color)}g.stateGroup .state-title{fill:var(--md-mermaid-label-fg-color)!important;font-family:var(--md-mermaid-font-family)}g.stateGroup .composit{fill:var(--md-mermaid-label-bg-color)}.nodeLabel,.nodeLabel p{color:var(--md-mermaid-label-fg-color);font-family:var(--md-mermaid-font-family)}a .nodeLabel{text-decoration:underline}.node circle.state-end,.node circle.state-start,.start-state{fill:var(--md-mermaid-edge-color);stroke:none}.end-state-inner,.end-state-outer{fill:var(--md-mermaid-edge-color)}.end-state-inner,.node circle.state-end{stroke:var(--md-mermaid-label-bg-color)}.transition{stroke:var(--md-mermaid-edge-color)}[id^=state-fork] rect,[id^=state-join] rect{fill:var(--md-mermaid-edge-color)!important;stroke:none!important}.statediagram-cluster.statediagram-cluster .inner{fill:var(--md-default-bg-color)}.statediagram-cluster rect{fill:var(--md-mermaid-node-bg-color);stroke:var(--md-mermaid-node-fg-color)}.statediagram-state rect.divider{fill:var(--md-default-fg-color--lightest);stroke:var(--md-default-fg-color--lighter)}defs #statediagram-barbEnd{stroke:var(--md-mermaid-edge-color)}[id^=entity] path,[id^=entity] rect{fill:var(--md-default-bg-color)}.relationshipLine{stroke:var(--md-mermaid-edge-color)}defs .marker.oneOrMore.er *,defs .marker.onlyOne.er *,defs .marker.zeroOrMore.er *,defs .marker.zeroOrOne.er *{stroke:var(--md-mermaid-edge-color)!important}text:not([class]):last-child{fill:var(--md-mermaid-label-fg-color)}.actor{fill:var(--md-mermaid-sequence-actor-bg-color);stroke:var(--md-mermaid-sequence-actor-border-color)}text.actor>tspan{fill:var(--md-mermaid-sequence-actor-fg-color);font-family:var(--md-mermaid-font-family)}line{stroke:var(--md-mermaid-sequence-actor-line-color)}.actor-man circle,.actor-man line{fill:var(--md-mermaid-sequence-actorman-bg-color);stroke:var(--md-mermaid-sequence-actorman-line-color)}.messageLine0,.messageLine1{stroke:var(--md-mermaid-sequence-message-line-color)}.note{fill:var(--md-mermaid-sequence-note-bg-color);stroke:var(--md-mermaid-sequence-note-border-color)}.loopText,.loopText>tspan,.messageText,.noteText>tspan{stroke:none;font-family:var(--md-mermaid-font-family)!important}.messageText{fill:var(--md-mermaid-sequence-message-fg-color)}.loopText,.loopText>tspan{fill:var(--md-mermaid-sequence-loop-fg-color)}.noteText>tspan{fill:var(--md-mermaid-sequence-note-fg-color)}#arrowhead path{fill:var(--md-mermaid-sequence-message-line-color);stroke:none}.loopLine{fill:var(--md-mermaid-sequence-loop-bg-color);stroke:var(--md-mermaid-sequence-loop-border-color)}.labelBox{fill:var(--md-mermaid-sequence-label-bg-color);stroke:none}.labelText,.labelText>span{fill:var(--md-mermaid-sequence-label-fg-color);font-family:var(--md-mermaid-font-family)}.sequenceNumber{fill:var(--md-mermaid-sequence-number-fg-color)}rect.rect{fill:var(--md-mermaid-sequence-box-bg-color);stroke:none}rect.rect+text.text{fill:var(--md-mermaid-sequence-box-fg-color)}defs #sequencenumber{fill:var(--md-mermaid-sequence-number-bg-color)!important}";var so,is=0;function as(){return typeof mermaid=="undefined"||mermaid instanceof Element?_t("assets/external/unpkg.com/mermaid@11/dist/mermaid.min.js"):$(void 0)}function Zn(e){return e.classList.remove("mermaid"),so||(so=as().pipe(O(()=>mermaid.initialize({startOnLoad:!1,themeCSS:Xn,sequence:{actorFontSize:"16px",messageFontSize:"16px",noteFontSize:"16px"}})),m(()=>{}),Z(1))),so.subscribe(()=>go(null,null,function*(){e.classList.add("mermaid");let t=`__mermaid_${is++}`,r=x("div",{class:"mermaid"}),o=e.textContent,{svg:n,fn:i}=yield mermaid.render(t,o),s=r.attachShadow({mode:"closed"});s.innerHTML=n,e.replaceWith(r),i==null||i(s)})),so.pipe(m(()=>({ref:e})))}var ei=x("table");function ti(e){return e.replaceWith(ei),ei.replaceWith(Un(e)),$({ref:e})}function ss(e){let t=e.find(r=>r.checked)||e[0];return L(...e.map(r=>h(r,"change").pipe(m(()=>j(`label[for="${r.id}"]`))))).pipe(Q(j(`label[for="${t.id}"]`)),m(r=>({active:r})))}function ri(e,{viewport$:t,target$:r}){let o=j(".tabbed-labels",e),n=M(":scope > input",e),i=no("prev");e.append(i);let s=no("next");return e.append(s),H(()=>{let a=new T,c=a.pipe(oe(),ae(!0));z([a,Le(e),mt(e)]).pipe(W(c),$e(1,ye)).subscribe({next([{active:p},l]){let f=Be(p),{width:u}=de(p);e.style.setProperty("--md-indicator-x",`${f.x}px`),e.style.setProperty("--md-indicator-width",`${u}px`);let d=gr(o);(f.xd.x+l.width)&&o.scrollTo({left:Math.max(0,f.x-16),behavior:"smooth"})},complete(){e.style.removeProperty("--md-indicator-x"),e.style.removeProperty("--md-indicator-width")}}),z([Ge(o),Le(o)]).pipe(W(c)).subscribe(([p,l])=>{let f=At(o);i.hidden=p.x<16,s.hidden=p.x>f.width-l.width-16}),L(h(i,"click").pipe(m(()=>-1)),h(s,"click").pipe(m(()=>1))).pipe(W(c)).subscribe(p=>{let{width:l}=de(o);o.scrollBy({left:l*p,behavior:"smooth"})}),r.pipe(W(c),g(p=>n.includes(p))).subscribe(p=>p.click()),o.classList.add("tabbed-labels--linked");for(let p of n){let l=j(`label[for="${p.id}"]`);l.replaceChildren(x("a",{href:`#${l.htmlFor}`,tabIndex:-1},...Array.from(l.childNodes))),h(l.firstElementChild,"click").pipe(W(c),g(f=>!(f.metaKey||f.ctrlKey)),O(f=>{f.preventDefault(),f.stopPropagation()})).subscribe(()=>{history.replaceState({},"",`#${l.htmlFor}`),l.click()})}return V("content.tabs.link")&&a.pipe(Ie(1),te(t)).subscribe(([{active:p},{offset:l}])=>{let f=p.innerText.trim();if(p.hasAttribute("data-md-switching"))p.removeAttribute("data-md-switching");else{let u=e.offsetTop-l.y;for(let v of M("[data-tabs]"))for(let S of M(":scope > input",v)){let X=j(`label[for="${S.id}"]`);if(X!==p&&X.innerText.trim()===f){X.setAttribute("data-md-switching",""),S.click();break}}window.scrollTo({top:e.offsetTop-u});let d=__md_get("__tabs")||[];__md_set("__tabs",[...new Set([f,...d])])}}),a.pipe(W(c)).subscribe(()=>{for(let p of M("audio, video",e))p.offsetWidth&&p.autoplay?p.play().catch(()=>{}):p.pause()}),ss(n).pipe(O(p=>a.next(p)),A(()=>a.complete()),m(p=>P({ref:e},p)))}).pipe(et(pe))}function oi(e,t){let{viewport$:r,target$:o,print$:n}=t;return L(...M(".annotate:not(.highlight)",e).map(i=>zn(i,{target$:o,print$:n})),...M("pre:not(.mermaid) > code",e).map(i=>Yn(i,{target$:o,print$:n})),...M("a",e).map(i=>Jn(i,t)),...M("pre.mermaid",e).map(i=>Zn(i)),...M("table:not([class])",e).map(i=>ti(i)),...M("details",e).map(i=>Bn(i,{target$:o,print$:n})),...M("[data-tabs]",e).map(i=>ri(i,{viewport$:r,target$:o})),...M("[title]:not([data-preview])",e).filter(()=>V("content.tooltips")).map(i=>Xe(i,{viewport$:r})),...M(".footnote-ref",e).filter(()=>V("content.footnote.tooltips")).map(i=>Vt(i,{content$:new F(s=>{let a=new URL(i.href).hash.slice(1),c=Array.from(document.getElementById(a).cloneNode(!0).children),p=wr(...c);return s.next(p),document.body.append(p),()=>p.remove()}),viewport$:r})))}function cs(e,{alert$:t}){return t.pipe(b(r=>L($(!0),$(!1).pipe(nt(2e3))).pipe(m(o=>({message:r,active:o})))))}function ni(e,t){let r=j(".md-typeset",e);return H(()=>{let o=new T;return o.subscribe(({message:n,active:i})=>{e.classList.toggle("md-dialog--active",i),r.textContent=n}),cs(e,t).pipe(O(n=>o.next(n)),A(()=>o.complete()),m(n=>P({ref:e},n)))})}var ps=0;function ls(e,t){document.body.append(e);let{width:r}=de(e);e.style.setProperty("--md-tooltip-width",`${r}px`),e.remove();let o=vr(t),n=typeof o!="undefined"?Ge(o):$({x:0,y:0}),i=L(Ye(t),it(t)).pipe(Y());return z([i,n]).pipe(m(([s,a])=>{let{x:c,y:p}=Be(t),l=de(t),f=t.closest("table");return f&&t.parentElement&&(c+=f.offsetLeft+t.parentElement.offsetLeft,p+=f.offsetTop+t.parentElement.offsetTop),{active:s,offset:{x:c-a.x+l.width/2-r/2,y:p-a.y+l.height+8}}}))}function ii(e){let t=e.title;if(!t.length)return y;let r=`__tooltip_${ps++}`,o=Dt(r,"inline"),n=j(".md-typeset",o);return n.innerHTML=t,H(()=>{let i=new T;return i.subscribe({next({offset:s}){o.style.setProperty("--md-tooltip-x",`${s.x}px`),o.style.setProperty("--md-tooltip-y",`${s.y}px`)},complete(){o.style.removeProperty("--md-tooltip-x"),o.style.removeProperty("--md-tooltip-y")}}),L(i.pipe(g(({active:s})=>s)),i.pipe(Ae(250),g(({active:s})=>!s))).subscribe({next({active:s}){s?(e.insertAdjacentElement("afterend",o),e.setAttribute("aria-describedby",r),e.removeAttribute("title")):(o.remove(),e.removeAttribute("aria-describedby"),e.setAttribute("title",t))},complete(){o.remove(),e.removeAttribute("aria-describedby"),e.setAttribute("title",t)}}),i.pipe($e(16,ye)).subscribe(({active:s})=>{o.classList.toggle("md-tooltip--active",s)}),i.pipe(gt(125,ye),g(()=>!!e.offsetParent),m(()=>e.offsetParent.getBoundingClientRect()),m(({x:s})=>s)).subscribe({next(s){s?o.style.setProperty("--md-tooltip-0",`${-s}px`):o.style.removeProperty("--md-tooltip-0")},complete(){o.style.removeProperty("--md-tooltip-0")}}),ls(o,e).pipe(O(s=>i.next(s)),A(()=>i.complete()),m(s=>P({ref:e},s)))}).pipe(et(pe))}function ms({viewport$:e}){if(!V("header.autohide"))return $(!1);let t=e.pipe(m(({offset:{y:n}})=>n),ot(2,1),m(([n,i])=>[nMath.abs(i-n.y)>100),m(([,[n]])=>n),Y()),o=Je("search");return z([e,o]).pipe(m(([{offset:n},i])=>n.y>400&&!i),Y(),b(n=>n?r:$(!1)),Q(!1))}function ai(e,t){return H(()=>z([Le(e),ms(t)])).pipe(m(([{height:r},o])=>({height:r,hidden:o})),Y((r,o)=>r.height===o.height&&r.hidden===o.hidden),Z(1))}function si(e,{header$:t,main$:r}){return H(()=>{let o=new T,n=o.pipe(oe(),ae(!0));o.pipe(ne("active"),Pe(t)).subscribe(([{active:s},{hidden:a}])=>{e.classList.toggle("md-header--shadow",s&&!a),e.hidden=a});let i=fe(M("[title]",e)).pipe(g(()=>V("content.tooltips")),J(s=>ii(s)));return r.subscribe(o),t.pipe(W(n),m(s=>P({ref:e},s)),Ve(i.pipe(W(n))))})}function fs(e,{viewport$:t,header$:r}){return Er(e,{viewport$:t,header$:r}).pipe(m(({offset:{y:o}})=>{let{height:n}=de(e);return{active:n>0&&o>=n}}),ne("active"))}function ci(e,t){return H(()=>{let r=new T;r.subscribe({next({active:n}){e.classList.toggle("md-header__title--active",n)},complete(){e.classList.remove("md-header__title--active")}});let o=ue(".md-content h1");return typeof o=="undefined"?y:fs(o,t).pipe(O(n=>r.next(n)),A(()=>r.complete()),m(n=>P({ref:e},n)))})}function pi(e,{viewport$:t,header$:r}){let o=r.pipe(m(({height:i})=>i),Y()),n=o.pipe(b(()=>Le(e).pipe(m(({height:i})=>({top:e.offsetTop,bottom:e.offsetTop+i})),ne("bottom"))));return z([o,n,t]).pipe(m(([i,{top:s,bottom:a},{offset:{y:c},size:{height:p}}])=>(p=Math.max(0,p-Math.max(0,s-c,i)-Math.max(0,p+c-a)),{offset:s-i,height:p,active:s-i<=c})),Y((i,s)=>i.offset===s.offset&&i.height===s.height&&i.active===s.active))}function us(e){let t=__md_get("__palette")||{index:e.findIndex(o=>matchMedia(o.getAttribute("data-md-color-media")).matches)},r=Math.max(0,Math.min(t.index,e.length-1));return $(...e).pipe(J(o=>h(o,"change").pipe(m(()=>o))),Q(e[r]),m(o=>({index:e.indexOf(o),color:{media:o.getAttribute("data-md-color-media"),scheme:o.getAttribute("data-md-color-scheme"),primary:o.getAttribute("data-md-color-primary"),accent:o.getAttribute("data-md-color-accent")}})),Z(1))}function li(e){let t=M("input",e),r=x("meta",{name:"theme-color"});document.head.appendChild(r);let o=x("meta",{name:"color-scheme"});document.head.appendChild(o);let n=Wt("(prefers-color-scheme: light)");return H(()=>{let i=new T;return i.subscribe(s=>{if(document.body.setAttribute("data-md-color-switching",""),s.color.media==="(prefers-color-scheme)"){let a=matchMedia("(prefers-color-scheme: light)"),c=document.querySelector(a.matches?"[data-md-color-media='(prefers-color-scheme: light)']":"[data-md-color-media='(prefers-color-scheme: dark)']");s.color.scheme=c.getAttribute("data-md-color-scheme"),s.color.primary=c.getAttribute("data-md-color-primary"),s.color.accent=c.getAttribute("data-md-color-accent")}for(let[a,c]of Object.entries(s.color))document.body.setAttribute(`data-md-color-${a}`,c);for(let a=0;as.key==="Enter"),te(i,(s,a)=>a)).subscribe(({index:s})=>{s=(s+1)%t.length,t[s].click(),t[s].focus()}),i.pipe(m(()=>{let s=Ce("header"),a=window.getComputedStyle(s);return o.content=a.colorScheme,a.backgroundColor.match(/\d+/g).map(c=>(+c).toString(16).padStart(2,"0")).join("")})).subscribe(s=>r.content=`#${s}`),i.pipe(xe(pe)).subscribe(()=>{document.body.removeAttribute("data-md-color-switching")}),us(t).pipe(W(n.pipe(Ie(1))),vt(),O(s=>i.next(s)),A(()=>i.complete()),m(s=>P({ref:e},s)))})}function mi(e,{progress$:t}){return H(()=>{let r=new T;return r.subscribe(({value:o})=>{e.style.setProperty("--md-progress-value",`${o}`)}),t.pipe(O(o=>r.next({value:o})),A(()=>r.complete()),m(o=>({ref:e,value:o})))})}function fi(e,t){return e.protocol=t.protocol,e.hostname=t.hostname,e}function ds(e,t){let r=new Map;for(let o of M("url",e)){let n=j("loc",o),i=[fi(new URL(n.textContent),t)];r.set(`${i[0]}`,i);for(let s of M("[rel=alternate]",o)){let a=s.getAttribute("href");a!=null&&i.push(fi(new URL(a),t))}}return r}function kt(e){return En(new URL("sitemap.xml",e)).pipe(m(t=>ds(t,new URL(e))),ve(()=>$(new Map)),le())}function ui({document$:e}){let t=new Map;e.pipe(b(()=>M("link[rel=alternate]")),m(r=>new URL(r.href)),g(r=>!t.has(r.toString())),J(r=>kt(r).pipe(m(o=>[r,o]),ve(()=>y)))).subscribe(([r,o])=>{t.set(r.toString().replace(/\/$/,""),o)}),h(document.body,"click").pipe(g(r=>!r.metaKey&&!r.ctrlKey),b(r=>{if(r.target instanceof Element){let o=r.target.closest("a");if(o&&!o.target){let n=[...t].find(([f])=>o.href.startsWith(`${f}/`));if(typeof n=="undefined")return y;let[i,s]=n,a=we();if(a.href.startsWith(i))return y;let c=Te(),p=a.href.replace(c.base,"");p=`${i}/${p}`;let l=s.has(p.split("#")[0])?new URL(p,c.base):new URL(i);return r.preventDefault(),$(l)}}return y})).subscribe(r=>st(r,!0))}var co=$t(ao());function hs(e){e.setAttribute("data-md-copying","");let t=e.closest("[data-copy]"),r=t?t.getAttribute("data-copy"):e.innerText;return e.removeAttribute("data-md-copying"),r.trimEnd()}function di({alert$:e}){co.default.isSupported()&&new F(t=>{new co.default("[data-clipboard-target], [data-clipboard-text]",{text:r=>r.getAttribute("data-clipboard-text")||hs(j(r.getAttribute("data-clipboard-target")))}).on("success",r=>t.next(r))}).pipe(O(t=>{t.trigger.focus()}),m(()=>Me("clipboard.copied"))).subscribe(e)}function hi(e,t){if(!(e.target instanceof Element))return y;let r=e.target.closest("a");if(r===null)return y;if(r.target||e.metaKey||e.ctrlKey)return y;let o=new URL(r.href);return o.search=o.hash="",t.has(`${o}`)?(e.preventDefault(),$(r)):y}function bi(e){let t=new Map;for(let r of M(":scope > *",e.head))t.set(r.outerHTML,r);return t}function vi(e){for(let t of M("[href], [src]",e))for(let r of["href","src"]){let o=t.getAttribute(r);if(o&&!/^(?:[a-z]+:)?\/\//i.test(o)){t[r]=t[r];break}}return $(e)}function bs(e){for(let o of["[data-md-component=announce]","[data-md-component=container]","[data-md-component=header-topic]","[data-md-component=outdated]","[data-md-component=logo]","[data-md-component=skip]",...V("navigation.tabs.sticky")?["[data-md-component=tabs]"]:[]]){let n=ue(o),i=ue(o,e);typeof n!="undefined"&&typeof i!="undefined"&&n.replaceWith(i)}let t=bi(document);for(let[o,n]of bi(e))t.has(o)?t.delete(o):document.head.appendChild(n);for(let o of t.values()){let n=o.getAttribute("name");n!=="theme-color"&&n!=="color-scheme"&&o.remove()}let r=Ce("container");return Ke(M("script",r)).pipe(b(o=>{let n=e.createElement("script");if(o.src){for(let i of o.getAttributeNames())n.setAttribute(i,o.getAttribute(i));return o.replaceWith(n),new F(i=>{n.onload=()=>i.complete()})}else return n.textContent=o.textContent,o.replaceWith(n),y}),oe(),ae(document))}function gi({sitemap$:e,location$:t,viewport$:r,progress$:o}){if(location.protocol==="file:")return y;$(document).subscribe(vi);let n=h(document.body,"click").pipe(Pe(e),b(([a,c])=>hi(a,c)),m(({href:a})=>new URL(a)),le()),i=h(window,"popstate").pipe(m(we),le());n.pipe(te(r)).subscribe(([a,{offset:c}])=>{history.replaceState(c,""),history.pushState(null,"",a)}),L(n,i).subscribe(t);let s=t.pipe(ne("pathname"),b(a=>xr(a,{progress$:o}).pipe(ve(()=>(st(a,!0),y)))),b(vi),b(bs),le());return L(s.pipe(te(t,(a,c)=>c)),s.pipe(b(()=>t),ne("hash")),t.pipe(Y((a,c)=>a.pathname===c.pathname&&a.hash===c.hash),b(()=>n),O(()=>history.back()))).subscribe(a=>{var c,p;history.state!==null||!a.hash?window.scrollTo(0,(p=(c=history.state)==null?void 0:c.y)!=null?p:0):(history.scrollRestoration="auto",gn(a.hash),history.scrollRestoration="manual")}),t.subscribe(()=>{history.scrollRestoration="manual"}),h(window,"beforeunload").subscribe(()=>{history.scrollRestoration="auto"}),r.pipe(ne("offset"),Ae(100)).subscribe(({offset:a})=>{history.replaceState(a,"")}),V("navigation.instant.prefetch")&&L(h(document.body,"mousemove"),h(document.body,"focusin")).pipe(Pe(e),b(([a,c])=>hi(a,c)),Ae(25),Qr(({href:a})=>a),hr(a=>{let c=document.createElement("link");return c.rel="prefetch",c.href=a.toString(),document.head.appendChild(c),h(c,"load").pipe(m(()=>c),Ee(1))})).subscribe(a=>a.remove()),s}var yi=$t(ro());function xi(e){let t=e.separator.split("|").map(n=>n.replace(/(\(\?[!=<][^)]+\))/g,"").length===0?"\uFFFD":n).join("|"),r=new RegExp(t,"img"),o=(n,i,s)=>`${i}${s}`;return n=>{n=n.replace(/[\s*+\-:~^]+/g," ").replace(/&/g,"&").trim();let i=new RegExp(`(^|${e.separator}|)(${n.replace(/[|\\{}()[\]^$+*?.-]/g,"\\$&").replace(r,"|")})`,"img");return s=>(0,yi.default)(s).replace(i,o).replace(/<\/mark>(\s+)]*>/img,"$1")}}function zt(e){return e.type===1}function Sr(e){return e.type===3}function Ei(e,t){let r=Mn(e);return L($(location.protocol!=="file:"),Je("search")).pipe(Re(o=>o),b(()=>t)).subscribe(({config:o,docs:n})=>r.next({type:0,data:{config:o,docs:n,options:{suggest:V("search.suggest")}}})),r}function wi(e){var l;let{selectedVersionSitemap:t,selectedVersionBaseURL:r,currentLocation:o,currentBaseURL:n}=e,i=(l=po(n))==null?void 0:l.pathname;if(i===void 0)return;let s=ys(o.pathname,i);if(s===void 0)return;let a=Es(t.keys());if(!t.has(a))return;let c=po(s,a);if(!c||!t.has(c.href))return;let p=po(s,r);if(p)return p.hash=o.hash,p.search=o.search,p}function po(e,t){try{return new URL(e,t)}catch(r){return}}function ys(e,t){if(e.startsWith(t))return e.slice(t.length)}function xs(e,t){let r=Math.min(e.length,t.length),o;for(o=0;oy)),o=r.pipe(m(n=>{let[,i]=t.base.match(/([^/]+)\/?$/);return n.find(({version:s,aliases:a})=>s===i||a.includes(i))||n[0]}));r.pipe(m(n=>new Map(n.map(i=>[`${new URL(`../${i.version}/`,t.base)}`,i]))),b(n=>h(document.body,"click").pipe(g(i=>!i.metaKey&&!i.ctrlKey),te(o),b(([i,s])=>{if(i.target instanceof Element){let a=i.target.closest("a");if(a&&!a.target&&n.has(a.href)){let c=a.href;return!i.target.closest(".md-version")&&n.get(c)===s?y:(i.preventDefault(),$(new URL(c)))}}return y}),b(i=>kt(i).pipe(m(s=>{var a;return(a=wi({selectedVersionSitemap:s,selectedVersionBaseURL:i,currentLocation:we(),currentBaseURL:t.base}))!=null?a:i})))))).subscribe(n=>st(n,!0)),z([r,o]).subscribe(([n,i])=>{j(".md-header__topic").appendChild(Wn(n,i))}),e.pipe(b(()=>o)).subscribe(n=>{var a;let i=new URL(t.base),s=__md_get("__outdated",sessionStorage,i);if(s===null){s=!0;let c=((a=t.version)==null?void 0:a.default)||"latest";Array.isArray(c)||(c=[c]);e:for(let p of c)for(let l of n.aliases.concat(n.version))if(new RegExp(p,"i").test(l)){s=!1;break e}__md_set("__outdated",s,sessionStorage,i)}if(s)for(let c of me("outdated"))c.hidden=!1})}function ws(e,{worker$:t}){let{searchParams:r}=we();r.has("q")&&(at("search",!0),e.value=r.get("q"),e.focus(),Je("search").pipe(Re(i=>!i)).subscribe(()=>{let i=we();i.searchParams.delete("q"),history.replaceState({},"",`${i}`)}));let o=Ye(e),n=L(t.pipe(Re(zt)),h(e,"keyup"),o).pipe(m(()=>e.value),Y());return z([n,o]).pipe(m(([i,s])=>({value:i,focus:s})),Z(1))}function Si(e,{worker$:t}){let r=new T,o=r.pipe(oe(),ae(!0));z([t.pipe(Re(zt)),r],(i,s)=>s).pipe(ne("value")).subscribe(({value:i})=>t.next({type:2,data:i})),r.pipe(ne("focus")).subscribe(({focus:i})=>{i&&at("search",i)}),h(e.form,"reset").pipe(W(o)).subscribe(()=>e.focus());let n=j("header [for=__search]");return h(n,"click").subscribe(()=>e.focus()),ws(e,{worker$:t}).pipe(O(i=>r.next(i)),A(()=>r.complete()),m(i=>P({ref:e},i)),Z(1))}function Oi(e,{worker$:t,query$:r}){let o=new T,n=un(e.parentElement).pipe(g(Boolean)),i=e.parentElement,s=j(":scope > :first-child",e),a=j(":scope > :last-child",e);Je("search").subscribe(l=>{a.setAttribute("role",l?"list":"presentation"),a.hidden=!l}),o.pipe(te(r),Gr(t.pipe(Re(zt)))).subscribe(([{items:l},{value:f}])=>{switch(l.length){case 0:s.textContent=f.length?Me("search.result.none"):Me("search.result.placeholder");break;case 1:s.textContent=Me("search.result.one");break;default:let u=br(l.length);s.textContent=Me("search.result.other",u)}});let c=o.pipe(O(()=>a.innerHTML=""),b(({items:l})=>L($(...l.slice(0,10)),$(...l.slice(10)).pipe(ot(4),Xr(n),b(([f])=>f)))),m(Fn),le());return c.subscribe(l=>a.appendChild(l)),c.pipe(J(l=>{let f=ue("details",l);return typeof f=="undefined"?y:h(f,"toggle").pipe(W(o),m(()=>f))})).subscribe(l=>{l.open===!1&&l.offsetTop<=i.scrollTop&&i.scrollTo({top:l.offsetTop})}),t.pipe(g(Sr),m(({data:l})=>l)).pipe(O(l=>o.next(l)),A(()=>o.complete()),m(l=>P({ref:e},l)))}function Ts(e,{query$:t}){return t.pipe(m(({value:r})=>{let o=we();return o.hash="",r=r.replace(/\s+/g,"+").replace(/&/g,"%26").replace(/=/g,"%3D"),o.search=`q=${r}`,{url:o}}))}function Li(e,t){let r=new T,o=r.pipe(oe(),ae(!0));return r.subscribe(({url:n})=>{e.setAttribute("data-clipboard-text",e.href),e.href=`${n}`}),h(e,"click").pipe(W(o)).subscribe(n=>n.preventDefault()),Ts(e,t).pipe(O(n=>r.next(n)),A(()=>r.complete()),m(n=>P({ref:e},n)))}function Mi(e,{worker$:t,keyboard$:r}){let o=new T,n=Ce("search-query"),i=L(h(n,"keydown"),h(n,"focus")).pipe(xe(pe),m(()=>n.value),Y());return o.pipe(Pe(i),m(([{suggest:a},c])=>{let p=c.split(/([\s-]+)/);if(a!=null&&a.length&&p[p.length-1]){let l=a[a.length-1];l.startsWith(p[p.length-1])&&(p[p.length-1]=l)}else p.length=0;return p})).subscribe(a=>e.innerHTML=a.join("").replace(/\s/g," ")),r.pipe(g(({mode:a})=>a==="search")).subscribe(a=>{a.type==="ArrowRight"&&e.innerText.length&&n.selectionStart===n.value.length&&(n.value=e.innerText)}),t.pipe(g(Sr),m(({data:a})=>a)).pipe(O(a=>o.next(a)),A(()=>o.complete()),m(()=>({ref:e})))}function _i(e,{index$:t,keyboard$:r}){let o=Te();try{let n=Ei(o.search,t),i=Ce("search-query",e),s=Ce("search-result",e);h(e,"click").pipe(g(({target:c})=>c instanceof Element&&!!c.closest("a"))).subscribe(()=>at("search",!1)),r.pipe(g(({mode:c})=>c==="search")).subscribe(c=>{let p=Ne();switch(c.type){case"Enter":if(p===i){let l=new Map;for(let f of M(":first-child [href]",s)){let u=f.firstElementChild;l.set(f,parseFloat(u.getAttribute("data-md-score")))}if(l.size){let[[f]]=[...l].sort(([,u],[,d])=>d-u);f.click()}c.claim()}break;case"Escape":case"Tab":at("search",!1),i.blur();break;case"ArrowUp":case"ArrowDown":if(typeof p=="undefined")i.focus();else{let l=[i,...M(":not(details) > [href], summary, details[open] [href]",s)],f=Math.max(0,(Math.max(0,l.indexOf(p))+l.length+(c.type==="ArrowUp"?-1:1))%l.length);l[f].focus()}c.claim();break;default:i!==Ne()&&i.focus()}}),r.pipe(g(({mode:c})=>c==="global")).subscribe(c=>{switch(c.type){case"f":case"s":case"/":i.focus(),i.select(),c.claim();break}});let a=Si(i,{worker$:n});return L(a,Oi(s,{worker$:n,query$:a})).pipe(Ve(...me("search-share",e).map(c=>Li(c,{query$:a})),...me("search-suggest",e).map(c=>Mi(c,{worker$:n,keyboard$:r}))))}catch(n){return e.hidden=!0,tt}}function Ai(e,{index$:t,location$:r}){return z([t,r.pipe(Q(we()),g(o=>!!o.searchParams.get("h")))]).pipe(m(([o,n])=>xi(o.config)(n.searchParams.get("h"))),m(o=>{var s;let n=new Map,i=document.createNodeIterator(e,NodeFilter.SHOW_TEXT);for(let a=i.nextNode();a;a=i.nextNode())if((s=a.parentElement)!=null&&s.offsetHeight){let c=a.textContent,p=o(c);p.length>c.length&&n.set(a,p)}for(let[a,c]of n){let{childNodes:p}=x("span",null,c);a.replaceWith(...Array.from(p))}return{ref:e,nodes:n}}))}function Ss(e,{viewport$:t,main$:r}){let o=e.closest(".md-grid"),n=o.offsetTop-o.parentElement.offsetTop;return z([r,t]).pipe(m(([{offset:i,height:s},{offset:{y:a}}])=>(s=s+Math.min(n,Math.max(0,a-i))-n,{height:s,locked:a>=i+n})),Y((i,s)=>i.height===s.height&&i.locked===s.locked))}function lo(e,o){var n=o,{header$:t}=n,r=vo(n,["header$"]);let i=j(".md-sidebar__scrollwrap",e),{y:s}=Be(i);return H(()=>{let a=new T,c=a.pipe(oe(),ae(!0)),p=a.pipe($e(0,ye));return p.pipe(te(t)).subscribe({next([{height:l},{height:f}]){i.style.height=`${l-2*s}px`,e.style.top=`${f}px`},complete(){i.style.height="",e.style.top=""}}),p.pipe(Re()).subscribe(()=>{for(let l of M(".md-nav__link--active[href]",e)){if(!l.clientHeight)continue;let f=l.closest(".md-sidebar__scrollwrap");if(typeof f!="undefined"){let u=l.offsetTop-f.offsetTop,{height:d}=de(f);f.scrollTo({top:u-d/2})}}}),fe(M("label[tabindex]",e)).pipe(J(l=>h(l,"click").pipe(xe(pe),m(()=>l),W(c)))).subscribe(l=>{let f=j(`[id="${l.htmlFor}"]`);j(`[aria-labelledby="${l.id}"]`).setAttribute("aria-expanded",`${f.checked}`)}),V("content.tooltips")&&fe(M("abbr[title]",e)).pipe(J(l=>Xe(l,{viewport$})),W(c)).subscribe(),Ss(e,r).pipe(O(l=>a.next(l)),A(()=>a.complete()),m(l=>P({ref:e},l)))})}function Ci(e,t){if(typeof t!="undefined"){let r=`https://api.github.com/repos/${e}/${t}`;return rt(ze(`${r}/releases/latest`).pipe(ve(()=>y),m(o=>({version:o.tag_name})),Qe({})),ze(r).pipe(ve(()=>y),m(o=>({stars:o.stargazers_count,forks:o.forks_count})),Qe({}))).pipe(m(([o,n])=>P(P({},o),n)))}else{let r=`https://api.github.com/users/${e}`;return ze(r).pipe(m(o=>({repositories:o.public_repos})),Qe({}))}}function ki(e,t){let r=`https://${e}/api/v4/projects/${encodeURIComponent(t)}`;return rt(ze(`${r}/releases/permalink/latest`).pipe(ve(()=>y),m(({tag_name:o})=>({version:o})),Qe({})),ze(r).pipe(ve(()=>y),m(({star_count:o,forks_count:n})=>({stars:o,forks:n})),Qe({}))).pipe(m(([o,n])=>P(P({},o),n)))}function Hi(e){let t=e.match(/^.+github\.com\/([^/]+)\/?([^/]+)?/i);if(t){let[,r,o]=t;return Ci(r,o)}if(t=e.match(/^.+?([^/]*gitlab[^/]+)\/(.+?)\/?$/i),t){let[,r,o]=t;return ki(r,o)}return y}var Os;function Ls(e){return Os||(Os=H(()=>{let t=__md_get("__source",sessionStorage);if(t)return $(t);if(me("consent").length){let o=__md_get("__consent");if(!(o&&o.github))return y}return Hi(e.href).pipe(O(o=>__md_set("__source",o,sessionStorage)))}).pipe(ve(()=>y),g(t=>Object.keys(t).length>0),m(t=>({facts:t})),Z(1)))}function $i(e){let t=j(":scope > :last-child",e);return H(()=>{let r=new T;return r.subscribe(({facts:o})=>{t.appendChild(jn(o)),t.classList.add("md-source__repository--active")}),Ls(e).pipe(O(o=>r.next(o)),A(()=>r.complete()),m(o=>P({ref:e},o)))})}function Ms(e,{viewport$:t,header$:r}){return Le(document.body).pipe(b(()=>Er(e,{header$:r,viewport$:t})),m(({offset:{y:o}})=>({hidden:o>=10})),ne("hidden"))}function Pi(e,t){return H(()=>{let r=new T;return r.subscribe({next({hidden:o}){e.hidden=o},complete(){e.hidden=!1}}),(V("navigation.tabs.sticky")?$({hidden:!1}):Ms(e,t)).pipe(O(o=>r.next(o)),A(()=>r.complete()),m(o=>P({ref:e},o)))})}function _s(e,{viewport$:t,header$:r}){let o=new Map,n=M(".md-nav__link",e);for(let a of n){let c=decodeURIComponent(a.hash.substring(1)),p=ue(`[id="${c}"]`);typeof p!="undefined"&&o.set(a,p)}let i=r.pipe(ne("height"),m(({height:a})=>{let c=Ce("main"),p=j(":scope > :first-child",c);return a+.8*(p.offsetTop-c.offsetTop)}),le());return Le(document.body).pipe(ne("height"),b(a=>H(()=>{let c=[];return $([...o].reduce((p,[l,f])=>{for(;c.length&&o.get(c[c.length-1]).tagName>=f.tagName;)c.pop();let u=f.offsetTop;for(;!u&&f.parentElement;)f=f.parentElement,u=f.offsetTop;let d=f.offsetParent;for(;d;d=d.offsetParent)u+=d.offsetTop;return p.set([...c=[...c,l]].reverse(),u)},new Map))}).pipe(m(c=>new Map([...c].sort(([,p],[,l])=>p-l))),Pe(i),b(([c,p])=>t.pipe(Ut(([l,f],{offset:{y:u},size:d})=>{let v=u+d.height>=Math.floor(a.height);for(;f.length;){let[,S]=f[0];if(S-p=u&&!v)f=[l.pop(),...f];else break}return[l,f]},[[],[...c]]),Y((l,f)=>l[0]===f[0]&&l[1]===f[1])))))).pipe(m(([a,c])=>({prev:a.map(([p])=>p),next:c.map(([p])=>p)})),Q({prev:[],next:[]}),ot(2,1),m(([a,c])=>a.prev.length{let i=new T,s=i.pipe(oe(),ae(!0));if(i.subscribe(({prev:a,next:c})=>{for(let[p]of c)p.classList.remove("md-nav__link--passed"),p.classList.remove("md-nav__link--active");for(let[p,[l]]of a.entries())l.classList.add("md-nav__link--passed"),l.classList.toggle("md-nav__link--active",p===a.length-1)}),V("toc.follow")){let a=L(t.pipe(Ae(1),m(()=>{})),t.pipe(Ae(250),m(()=>"smooth")));i.pipe(g(({prev:c})=>c.length>0),Pe(o.pipe(xe(pe))),te(a)).subscribe(([[{prev:c}],p])=>{let[l]=c[c.length-1];if(l.offsetHeight){let f=vr(l);if(typeof f!="undefined"){let u=l.offsetTop-f.offsetTop,{height:d}=de(f);f.scrollTo({top:u-d/2,behavior:p})}}})}return V("navigation.tracking")&&t.pipe(W(s),ne("offset"),Ae(250),Ie(1),W(n.pipe(Ie(1))),vt({delay:250}),te(i)).subscribe(([,{prev:a}])=>{let c=we(),p=a[a.length-1];if(p&&p.length){let[l]=p,{hash:f}=new URL(l.href);c.hash!==f&&(c.hash=f,history.replaceState({},"",`${c}`))}else c.hash="",history.replaceState({},"",`${c}`)}),_s(e,{viewport$:t,header$:r}).pipe(O(a=>i.next(a)),A(()=>i.complete()),m(a=>P({ref:e},a)))})}function As(e,{viewport$:t,main$:r,target$:o}){let n=t.pipe(m(({offset:{y:s}})=>s),ot(2,1),m(([s,a])=>s>a&&a>0),Y()),i=r.pipe(m(({active:s})=>s));return z([i,n]).pipe(m(([s,a])=>!(s&&a)),Y(),W(o.pipe(Ie(1))),ae(!0),vt({delay:250}),m(s=>({hidden:s})))}function Ii(e,{viewport$:t,header$:r,main$:o,target$:n}){let i=new T,s=i.pipe(oe(),ae(!0));return i.subscribe({next({hidden:a}){e.hidden=a,a?(e.setAttribute("tabindex","-1"),e.blur()):e.removeAttribute("tabindex")},complete(){e.style.top="",e.hidden=!0,e.removeAttribute("tabindex")}}),r.pipe(W(s),ne("height")).subscribe(({height:a})=>{e.style.top=`${a+16}px`}),h(e,"click").subscribe(a=>{a.preventDefault(),window.scrollTo({top:0})}),As(e,{viewport$:t,main$:o,target$:n}).pipe(O(a=>i.next(a)),A(()=>i.complete()),m(a=>P({ref:e},a)))}function Fi({document$:e,viewport$:t}){e.pipe(b(()=>M(".md-ellipsis")),J(r=>mt(r).pipe(W(e.pipe(Ie(1))),g(o=>o),m(()=>r),Ee(1))),g(r=>r.offsetWidth{let o=r.innerText,n=r.closest("a")||r;return n.title=o,V("content.tooltips")?Xe(n,{viewport$:t}).pipe(W(e.pipe(Ie(1))),A(()=>n.removeAttribute("title"))):y})).subscribe(),V("content.tooltips")&&e.pipe(b(()=>M(".md-status")),J(r=>Xe(r,{viewport$:t}))).subscribe()}function ji({document$:e,tablet$:t}){e.pipe(b(()=>M(".md-toggle--indeterminate")),O(r=>{r.indeterminate=!0,r.checked=!1}),J(r=>h(r,"change").pipe(Jr(()=>r.classList.contains("md-toggle--indeterminate")),m(()=>r))),te(t)).subscribe(([r,o])=>{r.classList.remove("md-toggle--indeterminate"),o&&(r.checked=!1)})}function Cs(){return/(iPad|iPhone|iPod)/.test(navigator.userAgent)}function Ui({document$:e}){e.pipe(b(()=>M("[data-md-scrollfix]")),O(t=>t.removeAttribute("data-md-scrollfix")),g(Cs),J(t=>h(t,"touchstart").pipe(m(()=>t)))).subscribe(t=>{let r=t.scrollTop;r===0?t.scrollTop=1:r+t.offsetHeight===t.scrollHeight&&(t.scrollTop=r-1)})}function Wi({viewport$:e,tablet$:t}){z([Je("search"),t]).pipe(m(([r,o])=>r&&!o),b(r=>$(r).pipe(nt(r?400:100))),te(e)).subscribe(([r,{offset:{y:o}}])=>{if(r)document.body.setAttribute("data-md-scrolllock",""),document.body.style.top=`-${o}px`;else{let n=-1*parseInt(document.body.style.top,10);document.body.removeAttribute("data-md-scrolllock"),document.body.style.top="",n&&window.scrollTo(0,n)}})}Object.entries||(Object.entries=function(e){let t=[];for(let r of Object.keys(e))t.push([r,e[r]]);return t});Object.values||(Object.values=function(e){let t=[];for(let r of Object.keys(e))t.push(e[r]);return t});typeof Element!="undefined"&&(Element.prototype.scrollTo||(Element.prototype.scrollTo=function(e,t){typeof e=="object"?(this.scrollLeft=e.left,this.scrollTop=e.top):(this.scrollLeft=e,this.scrollTop=t)}),Element.prototype.replaceWith||(Element.prototype.replaceWith=function(...e){let t=this.parentNode;if(t){e.length===0&&t.removeChild(this);for(let r=e.length-1;r>=0;r--){let o=e[r];typeof o=="string"?o=document.createTextNode(o):o.parentNode&&o.parentNode.removeChild(o),r?t.insertBefore(this.previousSibling,o):t.replaceChild(o,this)}}}));function ks(){return location.protocol==="file:"?_t(`${new URL("search/search_index.js",Or.base)}`).pipe(m(()=>__index),Z(1)):ze(new URL("search/search_index.json",Or.base))}document.documentElement.classList.remove("no-js");document.documentElement.classList.add("js");var ct=an(),Kt=bn(),Ht=yn(Kt),mo=hn(),ke=Ln(),Lr=Wt("(min-width: 60em)"),Vi=Wt("(min-width: 76.25em)"),Ni=xn(),Or=Te(),zi=document.forms.namedItem("search")?ks():tt,fo=new T;di({alert$:fo});ui({document$:ct});var uo=new T,qi=kt(Or.base);V("navigation.instant")&&gi({sitemap$:qi,location$:Kt,viewport$:ke,progress$:uo}).subscribe(ct);var Di;((Di=Or.version)==null?void 0:Di.provider)==="mike"&&Ti({document$:ct});L(Kt,Ht).pipe(nt(125)).subscribe(()=>{at("drawer",!1),at("search",!1)});mo.pipe(g(({mode:e})=>e==="global")).subscribe(e=>{switch(e.type){case"p":case",":let t=ue("link[rel=prev]");typeof t!="undefined"&&st(t);break;case"n":case".":let r=ue("link[rel=next]");typeof r!="undefined"&&st(r);break;case"Enter":let o=Ne();o instanceof HTMLLabelElement&&o.click()}});Fi({viewport$:ke,document$:ct});ji({document$:ct,tablet$:Lr});Ui({document$:ct});Wi({viewport$:ke,tablet$:Lr});var ft=ai(Ce("header"),{viewport$:ke}),qt=ct.pipe(m(()=>Ce("main")),b(e=>pi(e,{viewport$:ke,header$:ft})),Z(1)),Hs=L(...me("consent").map(e=>An(e,{target$:Ht})),...me("dialog").map(e=>ni(e,{alert$:fo})),...me("palette").map(e=>li(e)),...me("progress").map(e=>mi(e,{progress$:uo})),...me("search").map(e=>_i(e,{index$:zi,keyboard$:mo})),...me("source").map(e=>$i(e))),$s=H(()=>L(...me("announce").map(e=>_n(e)),...me("content").map(e=>oi(e,{sitemap$:qi,viewport$:ke,target$:Ht,print$:Ni})),...me("content").map(e=>V("search.highlight")?Ai(e,{index$:zi,location$:Kt}):y),...me("header").map(e=>si(e,{viewport$:ke,header$:ft,main$:qt})),...me("header-title").map(e=>ci(e,{viewport$:ke,header$:ft})),...me("sidebar").map(e=>e.getAttribute("data-md-type")==="navigation"?eo(Vi,()=>lo(e,{viewport$:ke,header$:ft,main$:qt})):eo(Lr,()=>lo(e,{viewport$:ke,header$:ft,main$:qt}))),...me("tabs").map(e=>Pi(e,{viewport$:ke,header$:ft})),...me("toc").map(e=>Ri(e,{viewport$:ke,header$:ft,main$:qt,target$:Ht})),...me("top").map(e=>Ii(e,{viewport$:ke,header$:ft,main$:qt,target$:Ht})))),Ki=ct.pipe(b(()=>$s),Ve(Hs),Z(1));Ki.subscribe();window.document$=ct;window.location$=Kt;window.target$=Ht;window.keyboard$=mo;window.viewport$=ke;window.tablet$=Lr;window.screen$=Vi;window.print$=Ni;window.alert$=fo;window.progress$=uo;window.component$=Ki;})(); +//# sourceMappingURL=bundle.79ae519e.min.js.map + diff --git a/0.47/assets/javascripts/bundle.79ae519e.min.js.map b/0.47/assets/javascripts/bundle.79ae519e.min.js.map new file mode 100644 index 0000000..5cf0289 --- /dev/null +++ b/0.47/assets/javascripts/bundle.79ae519e.min.js.map @@ -0,0 +1,7 @@ +{ + "version": 3, + "sources": ["node_modules/focus-visible/dist/focus-visible.js", "node_modules/escape-html/index.js", "node_modules/clipboard/dist/clipboard.js", "src/templates/assets/javascripts/bundle.ts", "node_modules/tslib/tslib.es6.mjs", "node_modules/rxjs/src/internal/util/isFunction.ts", "node_modules/rxjs/src/internal/util/createErrorClass.ts", "node_modules/rxjs/src/internal/util/UnsubscriptionError.ts", "node_modules/rxjs/src/internal/util/arrRemove.ts", "node_modules/rxjs/src/internal/Subscription.ts", "node_modules/rxjs/src/internal/config.ts", "node_modules/rxjs/src/internal/scheduler/timeoutProvider.ts", "node_modules/rxjs/src/internal/util/reportUnhandledError.ts", "node_modules/rxjs/src/internal/util/noop.ts", "node_modules/rxjs/src/internal/NotificationFactories.ts", "node_modules/rxjs/src/internal/util/errorContext.ts", "node_modules/rxjs/src/internal/Subscriber.ts", "node_modules/rxjs/src/internal/symbol/observable.ts", "node_modules/rxjs/src/internal/util/identity.ts", "node_modules/rxjs/src/internal/util/pipe.ts", "node_modules/rxjs/src/internal/Observable.ts", "node_modules/rxjs/src/internal/util/lift.ts", "node_modules/rxjs/src/internal/operators/OperatorSubscriber.ts", "node_modules/rxjs/src/internal/scheduler/animationFrameProvider.ts", "node_modules/rxjs/src/internal/util/ObjectUnsubscribedError.ts", "node_modules/rxjs/src/internal/Subject.ts", "node_modules/rxjs/src/internal/BehaviorSubject.ts", "node_modules/rxjs/src/internal/scheduler/dateTimestampProvider.ts", "node_modules/rxjs/src/internal/ReplaySubject.ts", "node_modules/rxjs/src/internal/scheduler/Action.ts", "node_modules/rxjs/src/internal/scheduler/intervalProvider.ts", "node_modules/rxjs/src/internal/scheduler/AsyncAction.ts", "node_modules/rxjs/src/internal/Scheduler.ts", "node_modules/rxjs/src/internal/scheduler/AsyncScheduler.ts", "node_modules/rxjs/src/internal/scheduler/async.ts", "node_modules/rxjs/src/internal/scheduler/QueueAction.ts", "node_modules/rxjs/src/internal/scheduler/QueueScheduler.ts", "node_modules/rxjs/src/internal/scheduler/queue.ts", "node_modules/rxjs/src/internal/scheduler/AnimationFrameAction.ts", "node_modules/rxjs/src/internal/scheduler/AnimationFrameScheduler.ts", "node_modules/rxjs/src/internal/scheduler/animationFrame.ts", "node_modules/rxjs/src/internal/observable/empty.ts", "node_modules/rxjs/src/internal/util/isScheduler.ts", "node_modules/rxjs/src/internal/util/args.ts", "node_modules/rxjs/src/internal/util/isArrayLike.ts", "node_modules/rxjs/src/internal/util/isPromise.ts", "node_modules/rxjs/src/internal/util/isInteropObservable.ts", "node_modules/rxjs/src/internal/util/isAsyncIterable.ts", "node_modules/rxjs/src/internal/util/throwUnobservableError.ts", "node_modules/rxjs/src/internal/symbol/iterator.ts", "node_modules/rxjs/src/internal/util/isIterable.ts", "node_modules/rxjs/src/internal/util/isReadableStreamLike.ts", "node_modules/rxjs/src/internal/observable/innerFrom.ts", "node_modules/rxjs/src/internal/util/executeSchedule.ts", "node_modules/rxjs/src/internal/operators/observeOn.ts", "node_modules/rxjs/src/internal/operators/subscribeOn.ts", "node_modules/rxjs/src/internal/scheduled/scheduleObservable.ts", "node_modules/rxjs/src/internal/scheduled/schedulePromise.ts", "node_modules/rxjs/src/internal/scheduled/scheduleArray.ts", "node_modules/rxjs/src/internal/scheduled/scheduleIterable.ts", "node_modules/rxjs/src/internal/scheduled/scheduleAsyncIterable.ts", "node_modules/rxjs/src/internal/scheduled/scheduleReadableStreamLike.ts", "node_modules/rxjs/src/internal/scheduled/scheduled.ts", "node_modules/rxjs/src/internal/observable/from.ts", "node_modules/rxjs/src/internal/observable/of.ts", "node_modules/rxjs/src/internal/observable/throwError.ts", "node_modules/rxjs/src/internal/util/EmptyError.ts", "node_modules/rxjs/src/internal/util/isDate.ts", "node_modules/rxjs/src/internal/operators/map.ts", "node_modules/rxjs/src/internal/util/mapOneOrManyArgs.ts", "node_modules/rxjs/src/internal/util/argsArgArrayOrObject.ts", "node_modules/rxjs/src/internal/util/createObject.ts", "node_modules/rxjs/src/internal/observable/combineLatest.ts", "node_modules/rxjs/src/internal/operators/mergeInternals.ts", "node_modules/rxjs/src/internal/operators/mergeMap.ts", "node_modules/rxjs/src/internal/operators/mergeAll.ts", "node_modules/rxjs/src/internal/operators/concatAll.ts", "node_modules/rxjs/src/internal/observable/concat.ts", "node_modules/rxjs/src/internal/observable/defer.ts", "node_modules/rxjs/src/internal/observable/fromEvent.ts", "node_modules/rxjs/src/internal/observable/fromEventPattern.ts", "node_modules/rxjs/src/internal/observable/timer.ts", "node_modules/rxjs/src/internal/observable/merge.ts", "node_modules/rxjs/src/internal/observable/never.ts", "node_modules/rxjs/src/internal/util/argsOrArgArray.ts", "node_modules/rxjs/src/internal/operators/filter.ts", "node_modules/rxjs/src/internal/observable/zip.ts", "node_modules/rxjs/src/internal/operators/audit.ts", "node_modules/rxjs/src/internal/operators/auditTime.ts", "node_modules/rxjs/src/internal/operators/bufferCount.ts", "node_modules/rxjs/src/internal/operators/catchError.ts", "node_modules/rxjs/src/internal/operators/scanInternals.ts", "node_modules/rxjs/src/internal/operators/combineLatest.ts", "node_modules/rxjs/src/internal/operators/combineLatestWith.ts", "node_modules/rxjs/src/internal/operators/debounce.ts", "node_modules/rxjs/src/internal/operators/debounceTime.ts", "node_modules/rxjs/src/internal/operators/defaultIfEmpty.ts", "node_modules/rxjs/src/internal/operators/take.ts", "node_modules/rxjs/src/internal/operators/ignoreElements.ts", "node_modules/rxjs/src/internal/operators/mapTo.ts", "node_modules/rxjs/src/internal/operators/delayWhen.ts", "node_modules/rxjs/src/internal/operators/delay.ts", "node_modules/rxjs/src/internal/operators/distinct.ts", "node_modules/rxjs/src/internal/operators/distinctUntilChanged.ts", "node_modules/rxjs/src/internal/operators/distinctUntilKeyChanged.ts", "node_modules/rxjs/src/internal/operators/throwIfEmpty.ts", "node_modules/rxjs/src/internal/operators/endWith.ts", "node_modules/rxjs/src/internal/operators/exhaustMap.ts", "node_modules/rxjs/src/internal/operators/finalize.ts", "node_modules/rxjs/src/internal/operators/first.ts", "node_modules/rxjs/src/internal/operators/takeLast.ts", "node_modules/rxjs/src/internal/operators/merge.ts", "node_modules/rxjs/src/internal/operators/mergeWith.ts", "node_modules/rxjs/src/internal/operators/repeat.ts", "node_modules/rxjs/src/internal/operators/scan.ts", "node_modules/rxjs/src/internal/operators/share.ts", "node_modules/rxjs/src/internal/operators/shareReplay.ts", "node_modules/rxjs/src/internal/operators/skip.ts", "node_modules/rxjs/src/internal/operators/skipUntil.ts", "node_modules/rxjs/src/internal/operators/startWith.ts", "node_modules/rxjs/src/internal/operators/switchMap.ts", "node_modules/rxjs/src/internal/operators/takeUntil.ts", "node_modules/rxjs/src/internal/operators/takeWhile.ts", "node_modules/rxjs/src/internal/operators/tap.ts", "node_modules/rxjs/src/internal/operators/throttle.ts", "node_modules/rxjs/src/internal/operators/throttleTime.ts", "node_modules/rxjs/src/internal/operators/withLatestFrom.ts", "node_modules/rxjs/src/internal/operators/zip.ts", "node_modules/rxjs/src/internal/operators/zipWith.ts", "src/templates/assets/javascripts/browser/document/index.ts", "src/templates/assets/javascripts/browser/element/_/index.ts", "src/templates/assets/javascripts/browser/element/focus/index.ts", "src/templates/assets/javascripts/browser/element/hover/index.ts", "src/templates/assets/javascripts/utilities/h/index.ts", "src/templates/assets/javascripts/utilities/round/index.ts", "src/templates/assets/javascripts/browser/script/index.ts", "src/templates/assets/javascripts/browser/element/size/_/index.ts", "src/templates/assets/javascripts/browser/element/size/content/index.ts", "src/templates/assets/javascripts/browser/element/offset/_/index.ts", "src/templates/assets/javascripts/browser/element/offset/content/index.ts", "src/templates/assets/javascripts/browser/element/visibility/index.ts", "src/templates/assets/javascripts/browser/toggle/index.ts", "src/templates/assets/javascripts/browser/keyboard/index.ts", "src/templates/assets/javascripts/browser/location/_/index.ts", "src/templates/assets/javascripts/browser/location/hash/index.ts", "src/templates/assets/javascripts/browser/media/index.ts", "src/templates/assets/javascripts/browser/request/index.ts", "src/templates/assets/javascripts/browser/viewport/offset/index.ts", "src/templates/assets/javascripts/browser/viewport/size/index.ts", "src/templates/assets/javascripts/browser/viewport/_/index.ts", "src/templates/assets/javascripts/browser/viewport/at/index.ts", "src/templates/assets/javascripts/browser/worker/index.ts", "src/templates/assets/javascripts/_/index.ts", "src/templates/assets/javascripts/components/_/index.ts", "src/templates/assets/javascripts/components/announce/index.ts", "src/templates/assets/javascripts/components/consent/index.ts", "src/templates/assets/javascripts/templates/tooltip/index.tsx", "src/templates/assets/javascripts/templates/annotation/index.tsx", "src/templates/assets/javascripts/templates/clipboard/index.tsx", "src/templates/assets/javascripts/templates/search/index.tsx", "src/templates/assets/javascripts/templates/source/index.tsx", "src/templates/assets/javascripts/templates/tabbed/index.tsx", "src/templates/assets/javascripts/templates/table/index.tsx", "src/templates/assets/javascripts/templates/version/index.tsx", "src/templates/assets/javascripts/components/tooltip2/index.ts", "src/templates/assets/javascripts/components/content/annotation/_/index.ts", "src/templates/assets/javascripts/components/content/annotation/list/index.ts", "src/templates/assets/javascripts/components/content/annotation/block/index.ts", "src/templates/assets/javascripts/components/content/code/_/index.ts", "src/templates/assets/javascripts/components/content/details/index.ts", "src/templates/assets/javascripts/components/content/link/index.ts", "src/templates/assets/javascripts/components/content/mermaid/index.css", "src/templates/assets/javascripts/components/content/mermaid/index.ts", "src/templates/assets/javascripts/components/content/table/index.ts", "src/templates/assets/javascripts/components/content/tabs/index.ts", "src/templates/assets/javascripts/components/content/_/index.ts", "src/templates/assets/javascripts/components/dialog/index.ts", "src/templates/assets/javascripts/components/tooltip/index.ts", "src/templates/assets/javascripts/components/header/_/index.ts", "src/templates/assets/javascripts/components/header/title/index.ts", "src/templates/assets/javascripts/components/main/index.ts", "src/templates/assets/javascripts/components/palette/index.ts", "src/templates/assets/javascripts/components/progress/index.ts", "src/templates/assets/javascripts/integrations/sitemap/index.ts", "src/templates/assets/javascripts/integrations/alternate/index.ts", "src/templates/assets/javascripts/integrations/clipboard/index.ts", "src/templates/assets/javascripts/integrations/instant/index.ts", "src/templates/assets/javascripts/integrations/search/highlighter/index.ts", "src/templates/assets/javascripts/integrations/search/worker/message/index.ts", "src/templates/assets/javascripts/integrations/search/worker/_/index.ts", "src/templates/assets/javascripts/integrations/version/findurl/index.ts", "src/templates/assets/javascripts/integrations/version/index.ts", "src/templates/assets/javascripts/components/search/query/index.ts", "src/templates/assets/javascripts/components/search/result/index.ts", "src/templates/assets/javascripts/components/search/share/index.ts", "src/templates/assets/javascripts/components/search/suggest/index.ts", "src/templates/assets/javascripts/components/search/_/index.ts", "src/templates/assets/javascripts/components/search/highlight/index.ts", "src/templates/assets/javascripts/components/sidebar/index.ts", "src/templates/assets/javascripts/components/source/facts/github/index.ts", "src/templates/assets/javascripts/components/source/facts/gitlab/index.ts", "src/templates/assets/javascripts/components/source/facts/_/index.ts", "src/templates/assets/javascripts/components/source/_/index.ts", "src/templates/assets/javascripts/components/tabs/index.ts", "src/templates/assets/javascripts/components/toc/index.ts", "src/templates/assets/javascripts/components/top/index.ts", "src/templates/assets/javascripts/patches/ellipsis/index.ts", "src/templates/assets/javascripts/patches/indeterminate/index.ts", "src/templates/assets/javascripts/patches/scrollfix/index.ts", "src/templates/assets/javascripts/patches/scrolllock/index.ts", "src/templates/assets/javascripts/polyfills/index.ts"], + "sourcesContent": ["(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? factory() :\n typeof define === 'function' && define.amd ? define(factory) :\n (factory());\n}(this, (function () { 'use strict';\n\n /**\n * Applies the :focus-visible polyfill at the given scope.\n * A scope in this case is either the top-level Document or a Shadow Root.\n *\n * @param {(Document|ShadowRoot)} scope\n * @see https://github.com/WICG/focus-visible\n */\n function applyFocusVisiblePolyfill(scope) {\n var hadKeyboardEvent = true;\n var hadFocusVisibleRecently = false;\n var hadFocusVisibleRecentlyTimeout = null;\n\n var inputTypesAllowlist = {\n text: true,\n search: true,\n url: true,\n tel: true,\n email: true,\n password: true,\n number: true,\n date: true,\n month: true,\n week: true,\n time: true,\n datetime: true,\n 'datetime-local': true\n };\n\n /**\n * Helper function for legacy browsers and iframes which sometimes focus\n * elements like document, body, and non-interactive SVG.\n * @param {Element} el\n */\n function isValidFocusTarget(el) {\n if (\n el &&\n el !== document &&\n el.nodeName !== 'HTML' &&\n el.nodeName !== 'BODY' &&\n 'classList' in el &&\n 'contains' in el.classList\n ) {\n return true;\n }\n return false;\n }\n\n /**\n * Computes whether the given element should automatically trigger the\n * `focus-visible` class being added, i.e. whether it should always match\n * `:focus-visible` when focused.\n * @param {Element} el\n * @return {boolean}\n */\n function focusTriggersKeyboardModality(el) {\n var type = el.type;\n var tagName = el.tagName;\n\n if (tagName === 'INPUT' && inputTypesAllowlist[type] && !el.readOnly) {\n return true;\n }\n\n if (tagName === 'TEXTAREA' && !el.readOnly) {\n return true;\n }\n\n if (el.isContentEditable) {\n return true;\n }\n\n return false;\n }\n\n /**\n * Add the `focus-visible` class to the given element if it was not added by\n * the author.\n * @param {Element} el\n */\n function addFocusVisibleClass(el) {\n if (el.classList.contains('focus-visible')) {\n return;\n }\n el.classList.add('focus-visible');\n el.setAttribute('data-focus-visible-added', '');\n }\n\n /**\n * Remove the `focus-visible` class from the given element if it was not\n * originally added by the author.\n * @param {Element} el\n */\n function removeFocusVisibleClass(el) {\n if (!el.hasAttribute('data-focus-visible-added')) {\n return;\n }\n el.classList.remove('focus-visible');\n el.removeAttribute('data-focus-visible-added');\n }\n\n /**\n * If the most recent user interaction was via the keyboard;\n * and the key press did not include a meta, alt/option, or control key;\n * then the modality is keyboard. Otherwise, the modality is not keyboard.\n * Apply `focus-visible` to any current active element and keep track\n * of our keyboard modality state with `hadKeyboardEvent`.\n * @param {KeyboardEvent} e\n */\n function onKeyDown(e) {\n if (e.metaKey || e.altKey || e.ctrlKey) {\n return;\n }\n\n if (isValidFocusTarget(scope.activeElement)) {\n addFocusVisibleClass(scope.activeElement);\n }\n\n hadKeyboardEvent = true;\n }\n\n /**\n * If at any point a user clicks with a pointing device, ensure that we change\n * the modality away from keyboard.\n * This avoids the situation where a user presses a key on an already focused\n * element, and then clicks on a different element, focusing it with a\n * pointing device, while we still think we're in keyboard modality.\n * @param {Event} e\n */\n function onPointerDown(e) {\n hadKeyboardEvent = false;\n }\n\n /**\n * On `focus`, add the `focus-visible` class to the target if:\n * - the target received focus as a result of keyboard navigation, or\n * - the event target is an element that will likely require interaction\n * via the keyboard (e.g. a text box)\n * @param {Event} e\n */\n function onFocus(e) {\n // Prevent IE from focusing the document or HTML element.\n if (!isValidFocusTarget(e.target)) {\n return;\n }\n\n if (hadKeyboardEvent || focusTriggersKeyboardModality(e.target)) {\n addFocusVisibleClass(e.target);\n }\n }\n\n /**\n * On `blur`, remove the `focus-visible` class from the target.\n * @param {Event} e\n */\n function onBlur(e) {\n if (!isValidFocusTarget(e.target)) {\n return;\n }\n\n if (\n e.target.classList.contains('focus-visible') ||\n e.target.hasAttribute('data-focus-visible-added')\n ) {\n // To detect a tab/window switch, we look for a blur event followed\n // rapidly by a visibility change.\n // If we don't see a visibility change within 100ms, it's probably a\n // regular focus change.\n hadFocusVisibleRecently = true;\n window.clearTimeout(hadFocusVisibleRecentlyTimeout);\n hadFocusVisibleRecentlyTimeout = window.setTimeout(function() {\n hadFocusVisibleRecently = false;\n }, 100);\n removeFocusVisibleClass(e.target);\n }\n }\n\n /**\n * If the user changes tabs, keep track of whether or not the previously\n * focused element had .focus-visible.\n * @param {Event} e\n */\n function onVisibilityChange(e) {\n if (document.visibilityState === 'hidden') {\n // If the tab becomes active again, the browser will handle calling focus\n // on the element (Safari actually calls it twice).\n // If this tab change caused a blur on an element with focus-visible,\n // re-apply the class when the user switches back to the tab.\n if (hadFocusVisibleRecently) {\n hadKeyboardEvent = true;\n }\n addInitialPointerMoveListeners();\n }\n }\n\n /**\n * Add a group of listeners to detect usage of any pointing devices.\n * These listeners will be added when the polyfill first loads, and anytime\n * the window is blurred, so that they are active when the window regains\n * focus.\n */\n function addInitialPointerMoveListeners() {\n document.addEventListener('mousemove', onInitialPointerMove);\n document.addEventListener('mousedown', onInitialPointerMove);\n document.addEventListener('mouseup', onInitialPointerMove);\n document.addEventListener('pointermove', onInitialPointerMove);\n document.addEventListener('pointerdown', onInitialPointerMove);\n document.addEventListener('pointerup', onInitialPointerMove);\n document.addEventListener('touchmove', onInitialPointerMove);\n document.addEventListener('touchstart', onInitialPointerMove);\n document.addEventListener('touchend', onInitialPointerMove);\n }\n\n function removeInitialPointerMoveListeners() {\n document.removeEventListener('mousemove', onInitialPointerMove);\n document.removeEventListener('mousedown', onInitialPointerMove);\n document.removeEventListener('mouseup', onInitialPointerMove);\n document.removeEventListener('pointermove', onInitialPointerMove);\n document.removeEventListener('pointerdown', onInitialPointerMove);\n document.removeEventListener('pointerup', onInitialPointerMove);\n document.removeEventListener('touchmove', onInitialPointerMove);\n document.removeEventListener('touchstart', onInitialPointerMove);\n document.removeEventListener('touchend', onInitialPointerMove);\n }\n\n /**\n * When the polfyill first loads, assume the user is in keyboard modality.\n * If any event is received from a pointing device (e.g. mouse, pointer,\n * touch), turn off keyboard modality.\n * This accounts for situations where focus enters the page from the URL bar.\n * @param {Event} e\n */\n function onInitialPointerMove(e) {\n // Work around a Safari quirk that fires a mousemove on whenever the\n // window blurs, even if you're tabbing out of the page. \u00AF\\_(\u30C4)_/\u00AF\n if (e.target.nodeName && e.target.nodeName.toLowerCase() === 'html') {\n return;\n }\n\n hadKeyboardEvent = false;\n removeInitialPointerMoveListeners();\n }\n\n // For some kinds of state, we are interested in changes at the global scope\n // only. For example, global pointer input, global key presses and global\n // visibility change should affect the state at every scope:\n document.addEventListener('keydown', onKeyDown, true);\n document.addEventListener('mousedown', onPointerDown, true);\n document.addEventListener('pointerdown', onPointerDown, true);\n document.addEventListener('touchstart', onPointerDown, true);\n document.addEventListener('visibilitychange', onVisibilityChange, true);\n\n addInitialPointerMoveListeners();\n\n // For focus and blur, we specifically care about state changes in the local\n // scope. This is because focus / blur events that originate from within a\n // shadow root are not re-dispatched from the host element if it was already\n // the active element in its own scope:\n scope.addEventListener('focus', onFocus, true);\n scope.addEventListener('blur', onBlur, true);\n\n // We detect that a node is a ShadowRoot by ensuring that it is a\n // DocumentFragment and also has a host property. This check covers native\n // implementation and polyfill implementation transparently. If we only cared\n // about the native implementation, we could just check if the scope was\n // an instance of a ShadowRoot.\n if (scope.nodeType === Node.DOCUMENT_FRAGMENT_NODE && scope.host) {\n // Since a ShadowRoot is a special kind of DocumentFragment, it does not\n // have a root element to add a class to. So, we add this attribute to the\n // host element instead:\n scope.host.setAttribute('data-js-focus-visible', '');\n } else if (scope.nodeType === Node.DOCUMENT_NODE) {\n document.documentElement.classList.add('js-focus-visible');\n document.documentElement.setAttribute('data-js-focus-visible', '');\n }\n }\n\n // It is important to wrap all references to global window and document in\n // these checks to support server-side rendering use cases\n // @see https://github.com/WICG/focus-visible/issues/199\n if (typeof window !== 'undefined' && typeof document !== 'undefined') {\n // Make the polyfill helper globally available. This can be used as a signal\n // to interested libraries that wish to coordinate with the polyfill for e.g.,\n // applying the polyfill to a shadow root:\n window.applyFocusVisiblePolyfill = applyFocusVisiblePolyfill;\n\n // Notify interested libraries of the polyfill's presence, in case the\n // polyfill was loaded lazily:\n var event;\n\n try {\n event = new CustomEvent('focus-visible-polyfill-ready');\n } catch (error) {\n // IE11 does not support using CustomEvent as a constructor directly:\n event = document.createEvent('CustomEvent');\n event.initCustomEvent('focus-visible-polyfill-ready', false, false, {});\n }\n\n window.dispatchEvent(event);\n }\n\n if (typeof document !== 'undefined') {\n // Apply the polyfill to the global document, so that no JavaScript\n // coordination is required to use the polyfill in the top-level document:\n applyFocusVisiblePolyfill(document);\n }\n\n})));\n", "/*!\n * escape-html\n * Copyright(c) 2012-2013 TJ Holowaychuk\n * Copyright(c) 2015 Andreas Lubbe\n * Copyright(c) 2015 Tiancheng \"Timothy\" Gu\n * MIT Licensed\n */\n\n'use strict';\n\n/**\n * Module variables.\n * @private\n */\n\nvar matchHtmlRegExp = /[\"'&<>]/;\n\n/**\n * Module exports.\n * @public\n */\n\nmodule.exports = escapeHtml;\n\n/**\n * Escape special characters in the given string of html.\n *\n * @param {string} string The string to escape for inserting into HTML\n * @return {string}\n * @public\n */\n\nfunction escapeHtml(string) {\n var str = '' + string;\n var match = matchHtmlRegExp.exec(str);\n\n if (!match) {\n return str;\n }\n\n var escape;\n var html = '';\n var index = 0;\n var lastIndex = 0;\n\n for (index = match.index; index < str.length; index++) {\n switch (str.charCodeAt(index)) {\n case 34: // \"\n escape = '"';\n break;\n case 38: // &\n escape = '&';\n break;\n case 39: // '\n escape = ''';\n break;\n case 60: // <\n escape = '<';\n break;\n case 62: // >\n escape = '>';\n break;\n default:\n continue;\n }\n\n if (lastIndex !== index) {\n html += str.substring(lastIndex, index);\n }\n\n lastIndex = index + 1;\n html += escape;\n }\n\n return lastIndex !== index\n ? html + str.substring(lastIndex, index)\n : html;\n}\n", "/*!\n * clipboard.js v2.0.11\n * https://clipboardjs.com/\n *\n * Licensed MIT \u00A9 Zeno Rocha\n */\n(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"ClipboardJS\"] = factory();\n\telse\n\t\troot[\"ClipboardJS\"] = factory();\n})(this, function() {\nreturn /******/ (function() { // webpackBootstrap\n/******/ \tvar __webpack_modules__ = ({\n\n/***/ 686:\n/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n\n// EXPORTS\n__webpack_require__.d(__webpack_exports__, {\n \"default\": function() { return /* binding */ clipboard; }\n});\n\n// EXTERNAL MODULE: ./node_modules/tiny-emitter/index.js\nvar tiny_emitter = __webpack_require__(279);\nvar tiny_emitter_default = /*#__PURE__*/__webpack_require__.n(tiny_emitter);\n// EXTERNAL MODULE: ./node_modules/good-listener/src/listen.js\nvar listen = __webpack_require__(370);\nvar listen_default = /*#__PURE__*/__webpack_require__.n(listen);\n// EXTERNAL MODULE: ./node_modules/select/src/select.js\nvar src_select = __webpack_require__(817);\nvar select_default = /*#__PURE__*/__webpack_require__.n(src_select);\n;// CONCATENATED MODULE: ./src/common/command.js\n/**\n * Executes a given operation type.\n * @param {String} type\n * @return {Boolean}\n */\nfunction command(type) {\n try {\n return document.execCommand(type);\n } catch (err) {\n return false;\n }\n}\n;// CONCATENATED MODULE: ./src/actions/cut.js\n\n\n/**\n * Cut action wrapper.\n * @param {String|HTMLElement} target\n * @return {String}\n */\n\nvar ClipboardActionCut = function ClipboardActionCut(target) {\n var selectedText = select_default()(target);\n command('cut');\n return selectedText;\n};\n\n/* harmony default export */ var actions_cut = (ClipboardActionCut);\n;// CONCATENATED MODULE: ./src/common/create-fake-element.js\n/**\n * Creates a fake textarea element with a value.\n * @param {String} value\n * @return {HTMLElement}\n */\nfunction createFakeElement(value) {\n var isRTL = document.documentElement.getAttribute('dir') === 'rtl';\n var fakeElement = document.createElement('textarea'); // Prevent zooming on iOS\n\n fakeElement.style.fontSize = '12pt'; // Reset box model\n\n fakeElement.style.border = '0';\n fakeElement.style.padding = '0';\n fakeElement.style.margin = '0'; // Move element out of screen horizontally\n\n fakeElement.style.position = 'absolute';\n fakeElement.style[isRTL ? 'right' : 'left'] = '-9999px'; // Move element to the same position vertically\n\n var yPosition = window.pageYOffset || document.documentElement.scrollTop;\n fakeElement.style.top = \"\".concat(yPosition, \"px\");\n fakeElement.setAttribute('readonly', '');\n fakeElement.value = value;\n return fakeElement;\n}\n;// CONCATENATED MODULE: ./src/actions/copy.js\n\n\n\n/**\n * Create fake copy action wrapper using a fake element.\n * @param {String} target\n * @param {Object} options\n * @return {String}\n */\n\nvar fakeCopyAction = function fakeCopyAction(value, options) {\n var fakeElement = createFakeElement(value);\n options.container.appendChild(fakeElement);\n var selectedText = select_default()(fakeElement);\n command('copy');\n fakeElement.remove();\n return selectedText;\n};\n/**\n * Copy action wrapper.\n * @param {String|HTMLElement} target\n * @param {Object} options\n * @return {String}\n */\n\n\nvar ClipboardActionCopy = function ClipboardActionCopy(target) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n container: document.body\n };\n var selectedText = '';\n\n if (typeof target === 'string') {\n selectedText = fakeCopyAction(target, options);\n } else if (target instanceof HTMLInputElement && !['text', 'search', 'url', 'tel', 'password'].includes(target === null || target === void 0 ? void 0 : target.type)) {\n // If input type doesn't support `setSelectionRange`. Simulate it. https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement/setSelectionRange\n selectedText = fakeCopyAction(target.value, options);\n } else {\n selectedText = select_default()(target);\n command('copy');\n }\n\n return selectedText;\n};\n\n/* harmony default export */ var actions_copy = (ClipboardActionCopy);\n;// CONCATENATED MODULE: ./src/actions/default.js\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n\n\n/**\n * Inner function which performs selection from either `text` or `target`\n * properties and then executes copy or cut operations.\n * @param {Object} options\n */\n\nvar ClipboardActionDefault = function ClipboardActionDefault() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n // Defines base properties passed from constructor.\n var _options$action = options.action,\n action = _options$action === void 0 ? 'copy' : _options$action,\n container = options.container,\n target = options.target,\n text = options.text; // Sets the `action` to be performed which can be either 'copy' or 'cut'.\n\n if (action !== 'copy' && action !== 'cut') {\n throw new Error('Invalid \"action\" value, use either \"copy\" or \"cut\"');\n } // Sets the `target` property using an element that will be have its content copied.\n\n\n if (target !== undefined) {\n if (target && _typeof(target) === 'object' && target.nodeType === 1) {\n if (action === 'copy' && target.hasAttribute('disabled')) {\n throw new Error('Invalid \"target\" attribute. Please use \"readonly\" instead of \"disabled\" attribute');\n }\n\n if (action === 'cut' && (target.hasAttribute('readonly') || target.hasAttribute('disabled'))) {\n throw new Error('Invalid \"target\" attribute. You can\\'t cut text from elements with \"readonly\" or \"disabled\" attributes');\n }\n } else {\n throw new Error('Invalid \"target\" value, use a valid Element');\n }\n } // Define selection strategy based on `text` property.\n\n\n if (text) {\n return actions_copy(text, {\n container: container\n });\n } // Defines which selection strategy based on `target` property.\n\n\n if (target) {\n return action === 'cut' ? actions_cut(target) : actions_copy(target, {\n container: container\n });\n }\n};\n\n/* harmony default export */ var actions_default = (ClipboardActionDefault);\n;// CONCATENATED MODULE: ./src/clipboard.js\nfunction clipboard_typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { clipboard_typeof = function _typeof(obj) { return typeof obj; }; } else { clipboard_typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return clipboard_typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (clipboard_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\n\n\n\n\n\n/**\n * Helper function to retrieve attribute value.\n * @param {String} suffix\n * @param {Element} element\n */\n\nfunction getAttributeValue(suffix, element) {\n var attribute = \"data-clipboard-\".concat(suffix);\n\n if (!element.hasAttribute(attribute)) {\n return;\n }\n\n return element.getAttribute(attribute);\n}\n/**\n * Base class which takes one or more elements, adds event listeners to them,\n * and instantiates a new `ClipboardAction` on each click.\n */\n\n\nvar Clipboard = /*#__PURE__*/function (_Emitter) {\n _inherits(Clipboard, _Emitter);\n\n var _super = _createSuper(Clipboard);\n\n /**\n * @param {String|HTMLElement|HTMLCollection|NodeList} trigger\n * @param {Object} options\n */\n function Clipboard(trigger, options) {\n var _this;\n\n _classCallCheck(this, Clipboard);\n\n _this = _super.call(this);\n\n _this.resolveOptions(options);\n\n _this.listenClick(trigger);\n\n return _this;\n }\n /**\n * Defines if attributes would be resolved using internal setter functions\n * or custom functions that were passed in the constructor.\n * @param {Object} options\n */\n\n\n _createClass(Clipboard, [{\n key: \"resolveOptions\",\n value: function resolveOptions() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n this.action = typeof options.action === 'function' ? options.action : this.defaultAction;\n this.target = typeof options.target === 'function' ? options.target : this.defaultTarget;\n this.text = typeof options.text === 'function' ? options.text : this.defaultText;\n this.container = clipboard_typeof(options.container) === 'object' ? options.container : document.body;\n }\n /**\n * Adds a click event listener to the passed trigger.\n * @param {String|HTMLElement|HTMLCollection|NodeList} trigger\n */\n\n }, {\n key: \"listenClick\",\n value: function listenClick(trigger) {\n var _this2 = this;\n\n this.listener = listen_default()(trigger, 'click', function (e) {\n return _this2.onClick(e);\n });\n }\n /**\n * Defines a new `ClipboardAction` on each click event.\n * @param {Event} e\n */\n\n }, {\n key: \"onClick\",\n value: function onClick(e) {\n var trigger = e.delegateTarget || e.currentTarget;\n var action = this.action(trigger) || 'copy';\n var text = actions_default({\n action: action,\n container: this.container,\n target: this.target(trigger),\n text: this.text(trigger)\n }); // Fires an event based on the copy operation result.\n\n this.emit(text ? 'success' : 'error', {\n action: action,\n text: text,\n trigger: trigger,\n clearSelection: function clearSelection() {\n if (trigger) {\n trigger.focus();\n }\n\n window.getSelection().removeAllRanges();\n }\n });\n }\n /**\n * Default `action` lookup function.\n * @param {Element} trigger\n */\n\n }, {\n key: \"defaultAction\",\n value: function defaultAction(trigger) {\n return getAttributeValue('action', trigger);\n }\n /**\n * Default `target` lookup function.\n * @param {Element} trigger\n */\n\n }, {\n key: \"defaultTarget\",\n value: function defaultTarget(trigger) {\n var selector = getAttributeValue('target', trigger);\n\n if (selector) {\n return document.querySelector(selector);\n }\n }\n /**\n * Allow fire programmatically a copy action\n * @param {String|HTMLElement} target\n * @param {Object} options\n * @returns Text copied.\n */\n\n }, {\n key: \"defaultText\",\n\n /**\n * Default `text` lookup function.\n * @param {Element} trigger\n */\n value: function defaultText(trigger) {\n return getAttributeValue('text', trigger);\n }\n /**\n * Destroy lifecycle.\n */\n\n }, {\n key: \"destroy\",\n value: function destroy() {\n this.listener.destroy();\n }\n }], [{\n key: \"copy\",\n value: function copy(target) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n container: document.body\n };\n return actions_copy(target, options);\n }\n /**\n * Allow fire programmatically a cut action\n * @param {String|HTMLElement} target\n * @returns Text cutted.\n */\n\n }, {\n key: \"cut\",\n value: function cut(target) {\n return actions_cut(target);\n }\n /**\n * Returns the support of the given action, or all actions if no action is\n * given.\n * @param {String} [action]\n */\n\n }, {\n key: \"isSupported\",\n value: function isSupported() {\n var action = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : ['copy', 'cut'];\n var actions = typeof action === 'string' ? [action] : action;\n var support = !!document.queryCommandSupported;\n actions.forEach(function (action) {\n support = support && !!document.queryCommandSupported(action);\n });\n return support;\n }\n }]);\n\n return Clipboard;\n}((tiny_emitter_default()));\n\n/* harmony default export */ var clipboard = (Clipboard);\n\n/***/ }),\n\n/***/ 828:\n/***/ (function(module) {\n\nvar DOCUMENT_NODE_TYPE = 9;\n\n/**\n * A polyfill for Element.matches()\n */\nif (typeof Element !== 'undefined' && !Element.prototype.matches) {\n var proto = Element.prototype;\n\n proto.matches = proto.matchesSelector ||\n proto.mozMatchesSelector ||\n proto.msMatchesSelector ||\n proto.oMatchesSelector ||\n proto.webkitMatchesSelector;\n}\n\n/**\n * Finds the closest parent that matches a selector.\n *\n * @param {Element} element\n * @param {String} selector\n * @return {Function}\n */\nfunction closest (element, selector) {\n while (element && element.nodeType !== DOCUMENT_NODE_TYPE) {\n if (typeof element.matches === 'function' &&\n element.matches(selector)) {\n return element;\n }\n element = element.parentNode;\n }\n}\n\nmodule.exports = closest;\n\n\n/***/ }),\n\n/***/ 438:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar closest = __webpack_require__(828);\n\n/**\n * Delegates event to a selector.\n *\n * @param {Element} element\n * @param {String} selector\n * @param {String} type\n * @param {Function} callback\n * @param {Boolean} useCapture\n * @return {Object}\n */\nfunction _delegate(element, selector, type, callback, useCapture) {\n var listenerFn = listener.apply(this, arguments);\n\n element.addEventListener(type, listenerFn, useCapture);\n\n return {\n destroy: function() {\n element.removeEventListener(type, listenerFn, useCapture);\n }\n }\n}\n\n/**\n * Delegates event to a selector.\n *\n * @param {Element|String|Array} [elements]\n * @param {String} selector\n * @param {String} type\n * @param {Function} callback\n * @param {Boolean} useCapture\n * @return {Object}\n */\nfunction delegate(elements, selector, type, callback, useCapture) {\n // Handle the regular Element usage\n if (typeof elements.addEventListener === 'function') {\n return _delegate.apply(null, arguments);\n }\n\n // Handle Element-less usage, it defaults to global delegation\n if (typeof type === 'function') {\n // Use `document` as the first parameter, then apply arguments\n // This is a short way to .unshift `arguments` without running into deoptimizations\n return _delegate.bind(null, document).apply(null, arguments);\n }\n\n // Handle Selector-based usage\n if (typeof elements === 'string') {\n elements = document.querySelectorAll(elements);\n }\n\n // Handle Array-like based usage\n return Array.prototype.map.call(elements, function (element) {\n return _delegate(element, selector, type, callback, useCapture);\n });\n}\n\n/**\n * Finds closest match and invokes callback.\n *\n * @param {Element} element\n * @param {String} selector\n * @param {String} type\n * @param {Function} callback\n * @return {Function}\n */\nfunction listener(element, selector, type, callback) {\n return function(e) {\n e.delegateTarget = closest(e.target, selector);\n\n if (e.delegateTarget) {\n callback.call(element, e);\n }\n }\n}\n\nmodule.exports = delegate;\n\n\n/***/ }),\n\n/***/ 879:\n/***/ (function(__unused_webpack_module, exports) {\n\n/**\n * Check if argument is a HTML element.\n *\n * @param {Object} value\n * @return {Boolean}\n */\nexports.node = function(value) {\n return value !== undefined\n && value instanceof HTMLElement\n && value.nodeType === 1;\n};\n\n/**\n * Check if argument is a list of HTML elements.\n *\n * @param {Object} value\n * @return {Boolean}\n */\nexports.nodeList = function(value) {\n var type = Object.prototype.toString.call(value);\n\n return value !== undefined\n && (type === '[object NodeList]' || type === '[object HTMLCollection]')\n && ('length' in value)\n && (value.length === 0 || exports.node(value[0]));\n};\n\n/**\n * Check if argument is a string.\n *\n * @param {Object} value\n * @return {Boolean}\n */\nexports.string = function(value) {\n return typeof value === 'string'\n || value instanceof String;\n};\n\n/**\n * Check if argument is a function.\n *\n * @param {Object} value\n * @return {Boolean}\n */\nexports.fn = function(value) {\n var type = Object.prototype.toString.call(value);\n\n return type === '[object Function]';\n};\n\n\n/***/ }),\n\n/***/ 370:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar is = __webpack_require__(879);\nvar delegate = __webpack_require__(438);\n\n/**\n * Validates all params and calls the right\n * listener function based on its target type.\n *\n * @param {String|HTMLElement|HTMLCollection|NodeList} target\n * @param {String} type\n * @param {Function} callback\n * @return {Object}\n */\nfunction listen(target, type, callback) {\n if (!target && !type && !callback) {\n throw new Error('Missing required arguments');\n }\n\n if (!is.string(type)) {\n throw new TypeError('Second argument must be a String');\n }\n\n if (!is.fn(callback)) {\n throw new TypeError('Third argument must be a Function');\n }\n\n if (is.node(target)) {\n return listenNode(target, type, callback);\n }\n else if (is.nodeList(target)) {\n return listenNodeList(target, type, callback);\n }\n else if (is.string(target)) {\n return listenSelector(target, type, callback);\n }\n else {\n throw new TypeError('First argument must be a String, HTMLElement, HTMLCollection, or NodeList');\n }\n}\n\n/**\n * Adds an event listener to a HTML element\n * and returns a remove listener function.\n *\n * @param {HTMLElement} node\n * @param {String} type\n * @param {Function} callback\n * @return {Object}\n */\nfunction listenNode(node, type, callback) {\n node.addEventListener(type, callback);\n\n return {\n destroy: function() {\n node.removeEventListener(type, callback);\n }\n }\n}\n\n/**\n * Add an event listener to a list of HTML elements\n * and returns a remove listener function.\n *\n * @param {NodeList|HTMLCollection} nodeList\n * @param {String} type\n * @param {Function} callback\n * @return {Object}\n */\nfunction listenNodeList(nodeList, type, callback) {\n Array.prototype.forEach.call(nodeList, function(node) {\n node.addEventListener(type, callback);\n });\n\n return {\n destroy: function() {\n Array.prototype.forEach.call(nodeList, function(node) {\n node.removeEventListener(type, callback);\n });\n }\n }\n}\n\n/**\n * Add an event listener to a selector\n * and returns a remove listener function.\n *\n * @param {String} selector\n * @param {String} type\n * @param {Function} callback\n * @return {Object}\n */\nfunction listenSelector(selector, type, callback) {\n return delegate(document.body, selector, type, callback);\n}\n\nmodule.exports = listen;\n\n\n/***/ }),\n\n/***/ 817:\n/***/ (function(module) {\n\nfunction select(element) {\n var selectedText;\n\n if (element.nodeName === 'SELECT') {\n element.focus();\n\n selectedText = element.value;\n }\n else if (element.nodeName === 'INPUT' || element.nodeName === 'TEXTAREA') {\n var isReadOnly = element.hasAttribute('readonly');\n\n if (!isReadOnly) {\n element.setAttribute('readonly', '');\n }\n\n element.select();\n element.setSelectionRange(0, element.value.length);\n\n if (!isReadOnly) {\n element.removeAttribute('readonly');\n }\n\n selectedText = element.value;\n }\n else {\n if (element.hasAttribute('contenteditable')) {\n element.focus();\n }\n\n var selection = window.getSelection();\n var range = document.createRange();\n\n range.selectNodeContents(element);\n selection.removeAllRanges();\n selection.addRange(range);\n\n selectedText = selection.toString();\n }\n\n return selectedText;\n}\n\nmodule.exports = select;\n\n\n/***/ }),\n\n/***/ 279:\n/***/ (function(module) {\n\nfunction E () {\n // Keep this empty so it's easier to inherit from\n // (via https://github.com/lipsmack from https://github.com/scottcorgan/tiny-emitter/issues/3)\n}\n\nE.prototype = {\n on: function (name, callback, ctx) {\n var e = this.e || (this.e = {});\n\n (e[name] || (e[name] = [])).push({\n fn: callback,\n ctx: ctx\n });\n\n return this;\n },\n\n once: function (name, callback, ctx) {\n var self = this;\n function listener () {\n self.off(name, listener);\n callback.apply(ctx, arguments);\n };\n\n listener._ = callback\n return this.on(name, listener, ctx);\n },\n\n emit: function (name) {\n var data = [].slice.call(arguments, 1);\n var evtArr = ((this.e || (this.e = {}))[name] || []).slice();\n var i = 0;\n var len = evtArr.length;\n\n for (i; i < len; i++) {\n evtArr[i].fn.apply(evtArr[i].ctx, data);\n }\n\n return this;\n },\n\n off: function (name, callback) {\n var e = this.e || (this.e = {});\n var evts = e[name];\n var liveEvents = [];\n\n if (evts && callback) {\n for (var i = 0, len = evts.length; i < len; i++) {\n if (evts[i].fn !== callback && evts[i].fn._ !== callback)\n liveEvents.push(evts[i]);\n }\n }\n\n // Remove event from queue to prevent memory leak\n // Suggested by https://github.com/lazd\n // Ref: https://github.com/scottcorgan/tiny-emitter/commit/c6ebfaa9bc973b33d110a84a307742b7cf94c953#commitcomment-5024910\n\n (liveEvents.length)\n ? e[name] = liveEvents\n : delete e[name];\n\n return this;\n }\n};\n\nmodule.exports = E;\nmodule.exports.TinyEmitter = E;\n\n\n/***/ })\n\n/******/ \t});\n/************************************************************************/\n/******/ \t// The module cache\n/******/ \tvar __webpack_module_cache__ = {};\n/******/ \t\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(__webpack_module_cache__[moduleId]) {\n/******/ \t\t\treturn __webpack_module_cache__[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = __webpack_module_cache__[moduleId] = {\n/******/ \t\t\t// no module.id needed\n/******/ \t\t\t// no module.loaded needed\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/ \t\n/******/ \t\t// Execute the module function\n/******/ \t\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n/******/ \t\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/ \t\n/************************************************************************/\n/******/ \t/* webpack/runtime/compat get default export */\n/******/ \t!function() {\n/******/ \t\t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t\t__webpack_require__.n = function(module) {\n/******/ \t\t\tvar getter = module && module.__esModule ?\n/******/ \t\t\t\tfunction() { return module['default']; } :\n/******/ \t\t\t\tfunction() { return module; };\n/******/ \t\t\t__webpack_require__.d(getter, { a: getter });\n/******/ \t\t\treturn getter;\n/******/ \t\t};\n/******/ \t}();\n/******/ \t\n/******/ \t/* webpack/runtime/define property getters */\n/******/ \t!function() {\n/******/ \t\t// define getter functions for harmony exports\n/******/ \t\t__webpack_require__.d = function(exports, definition) {\n/******/ \t\t\tfor(var key in definition) {\n/******/ \t\t\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n/******/ \t\t\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n/******/ \t\t\t\t}\n/******/ \t\t\t}\n/******/ \t\t};\n/******/ \t}();\n/******/ \t\n/******/ \t/* webpack/runtime/hasOwnProperty shorthand */\n/******/ \t!function() {\n/******/ \t\t__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }\n/******/ \t}();\n/******/ \t\n/************************************************************************/\n/******/ \t// module exports must be returned from runtime so entry inlining is disabled\n/******/ \t// startup\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(686);\n/******/ })()\n.default;\n});", "/*\n * Copyright (c) 2016-2025 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport \"focus-visible\"\n\nimport {\n EMPTY,\n NEVER,\n Observable,\n Subject,\n defer,\n delay,\n filter,\n map,\n merge,\n mergeWith,\n shareReplay,\n switchMap\n} from \"rxjs\"\n\nimport { configuration, feature } from \"./_\"\nimport {\n at,\n getActiveElement,\n getOptionalElement,\n requestJSON,\n setLocation,\n setToggle,\n watchDocument,\n watchKeyboard,\n watchLocation,\n watchLocationTarget,\n watchMedia,\n watchPrint,\n watchScript,\n watchViewport\n} from \"./browser\"\nimport {\n getComponentElement,\n getComponentElements,\n mountAnnounce,\n mountBackToTop,\n mountConsent,\n mountContent,\n mountDialog,\n mountHeader,\n mountHeaderTitle,\n mountPalette,\n mountProgress,\n mountSearch,\n mountSearchHiglight,\n mountSidebar,\n mountSource,\n mountTableOfContents,\n mountTabs,\n watchHeader,\n watchMain\n} from \"./components\"\nimport {\n SearchIndex,\n fetchSitemap,\n setupAlternate,\n setupClipboardJS,\n setupInstantNavigation,\n setupVersionSelector\n} from \"./integrations\"\nimport {\n patchEllipsis,\n patchIndeterminate,\n patchScrollfix,\n patchScrolllock\n} from \"./patches\"\nimport \"./polyfills\"\n\n/* ----------------------------------------------------------------------------\n * Functions - @todo refactor\n * ------------------------------------------------------------------------- */\n\n/**\n * Fetch search index\n *\n * @returns Search index observable\n */\nfunction fetchSearchIndex(): Observable {\n if (location.protocol === \"file:\") {\n return watchScript(\n `${new URL(\"search/search_index.js\", config.base)}`\n )\n .pipe(\n // @ts-ignore - @todo fix typings\n map(() => __index),\n shareReplay(1)\n )\n } else {\n return requestJSON(\n new URL(\"search/search_index.json\", config.base)\n )\n }\n}\n\n/* ----------------------------------------------------------------------------\n * Application\n * ------------------------------------------------------------------------- */\n\n/* Yay, JavaScript is available */\ndocument.documentElement.classList.remove(\"no-js\")\ndocument.documentElement.classList.add(\"js\")\n\n/* Set up navigation observables and subjects */\nconst document$ = watchDocument()\nconst location$ = watchLocation()\nconst target$ = watchLocationTarget(location$)\nconst keyboard$ = watchKeyboard()\n\n/* Set up media observables */\nconst viewport$ = watchViewport()\nconst tablet$ = watchMedia(\"(min-width: 60em)\")\nconst screen$ = watchMedia(\"(min-width: 76.25em)\")\nconst print$ = watchPrint()\n\n/* Retrieve search index, if search is enabled */\nconst config = configuration()\nconst index$ = document.forms.namedItem(\"search\")\n ? fetchSearchIndex()\n : NEVER\n\n/* Set up Clipboard.js integration */\nconst alert$ = new Subject()\nsetupClipboardJS({ alert$ })\n\n/* Set up language selector */\nsetupAlternate({ document$ })\n\n/* Set up progress indicator */\nconst progress$ = new Subject()\n\n/* Set up sitemap for instant navigation and previews */\nconst sitemap$ = fetchSitemap(config.base)\n\n/* Set up instant navigation, if enabled */\nif (feature(\"navigation.instant\"))\n setupInstantNavigation({ sitemap$, location$, viewport$, progress$ })\n .subscribe(document$)\n\n/* Set up version selector */\nif (config.version?.provider === \"mike\")\n setupVersionSelector({ document$ })\n\n/* Always close drawer and search on navigation */\nmerge(location$, target$)\n .pipe(\n delay(125)\n )\n .subscribe(() => {\n setToggle(\"drawer\", false)\n setToggle(\"search\", false)\n })\n\n/* Set up global keyboard handlers */\nkeyboard$\n .pipe(\n filter(({ mode }) => mode === \"global\")\n )\n .subscribe(key => {\n switch (key.type) {\n\n /* Go to previous page */\n case \"p\":\n case \",\":\n const prev = getOptionalElement(\"link[rel=prev]\")\n if (typeof prev !== \"undefined\")\n setLocation(prev)\n break\n\n /* Go to next page */\n case \"n\":\n case \".\":\n const next = getOptionalElement(\"link[rel=next]\")\n if (typeof next !== \"undefined\")\n setLocation(next)\n break\n\n /* Expand navigation, see https://bit.ly/3ZjG5io */\n case \"Enter\":\n const active = getActiveElement()\n if (active instanceof HTMLLabelElement)\n active.click()\n }\n })\n\n/* Set up patches */\npatchEllipsis({ viewport$, document$ })\npatchIndeterminate({ document$, tablet$ })\npatchScrollfix({ document$ })\npatchScrolllock({ viewport$, tablet$ })\n\n/* Set up header and main area observable */\nconst header$ = watchHeader(getComponentElement(\"header\"), { viewport$ })\nconst main$ = document$\n .pipe(\n map(() => getComponentElement(\"main\")),\n switchMap(el => watchMain(el, { viewport$, header$ })),\n shareReplay(1)\n )\n\n/* Set up control component observables */\nconst control$ = merge(\n\n /* Consent */\n ...getComponentElements(\"consent\")\n .map(el => mountConsent(el, { target$ })),\n\n /* Dialog */\n ...getComponentElements(\"dialog\")\n .map(el => mountDialog(el, { alert$ })),\n\n /* Color palette */\n ...getComponentElements(\"palette\")\n .map(el => mountPalette(el)),\n\n /* Progress bar */\n ...getComponentElements(\"progress\")\n .map(el => mountProgress(el, { progress$ })),\n\n /* Search */\n ...getComponentElements(\"search\")\n .map(el => mountSearch(el, { index$, keyboard$ })),\n\n /* Repository information */\n ...getComponentElements(\"source\")\n .map(el => mountSource(el))\n)\n\n/* Set up content component observables */\nconst content$ = defer(() => merge(\n\n /* Announcement bar */\n ...getComponentElements(\"announce\")\n .map(el => mountAnnounce(el)),\n\n /* Content */\n ...getComponentElements(\"content\")\n .map(el => mountContent(el, { sitemap$, viewport$, target$, print$ })),\n\n /* Search highlighting */\n ...getComponentElements(\"content\")\n .map(el => feature(\"search.highlight\")\n ? mountSearchHiglight(el, { index$, location$ })\n : EMPTY\n ),\n\n /* Header */\n ...getComponentElements(\"header\")\n .map(el => mountHeader(el, { viewport$, header$, main$ })),\n\n /* Header title */\n ...getComponentElements(\"header-title\")\n .map(el => mountHeaderTitle(el, { viewport$, header$ })),\n\n /* Sidebar */\n ...getComponentElements(\"sidebar\")\n .map(el => el.getAttribute(\"data-md-type\") === \"navigation\"\n ? at(screen$, () => mountSidebar(el, { viewport$, header$, main$ }))\n : at(tablet$, () => mountSidebar(el, { viewport$, header$, main$ }))\n ),\n\n /* Navigation tabs */\n ...getComponentElements(\"tabs\")\n .map(el => mountTabs(el, { viewport$, header$ })),\n\n /* Table of contents */\n ...getComponentElements(\"toc\")\n .map(el => mountTableOfContents(el, {\n viewport$, header$, main$, target$\n })),\n\n /* Back-to-top button */\n ...getComponentElements(\"top\")\n .map(el => mountBackToTop(el, { viewport$, header$, main$, target$ }))\n))\n\n/* Set up component observables */\nconst component$ = document$\n .pipe(\n switchMap(() => content$),\n mergeWith(control$),\n shareReplay(1)\n )\n\n/* Subscribe to all components */\ncomponent$.subscribe()\n\n/* ----------------------------------------------------------------------------\n * Exports\n * ------------------------------------------------------------------------- */\n\nwindow.document$ = document$ /* Document observable */\nwindow.location$ = location$ /* Location subject */\nwindow.target$ = target$ /* Location target observable */\nwindow.keyboard$ = keyboard$ /* Keyboard observable */\nwindow.viewport$ = viewport$ /* Viewport observable */\nwindow.tablet$ = tablet$ /* Media tablet observable */\nwindow.screen$ = screen$ /* Media screen observable */\nwindow.print$ = print$ /* Media print observable */\nwindow.alert$ = alert$ /* Alert subject */\nwindow.progress$ = progress$ /* Progress indicator subject */\nwindow.component$ = component$ /* Component observable */\n", "/******************************************************************************\nCopyright (c) Microsoft Corporation.\n\nPermission to use, copy, modify, and/or distribute this software for any\npurpose with or without fee is hereby granted.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\nPERFORMANCE OF THIS SOFTWARE.\n***************************************************************************** */\n/* global Reflect, Promise, SuppressedError, Symbol, Iterator */\n\nvar extendStatics = function(d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n};\n\nexport function __extends(d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n}\n\nexport var __assign = function() {\n __assign = Object.assign || function __assign(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n return t;\n }\n return __assign.apply(this, arguments);\n}\n\nexport function __rest(s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n}\n\nexport function __decorate(decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n}\n\nexport function __param(paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n}\n\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\n var _, done = false;\n for (var i = decorators.length - 1; i >= 0; i--) {\n var context = {};\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\n if (kind === \"accessor\") {\n if (result === void 0) continue;\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\n if (_ = accept(result.get)) descriptor.get = _;\n if (_ = accept(result.set)) descriptor.set = _;\n if (_ = accept(result.init)) initializers.unshift(_);\n }\n else if (_ = accept(result)) {\n if (kind === \"field\") initializers.unshift(_);\n else descriptor[key] = _;\n }\n }\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\n done = true;\n};\n\nexport function __runInitializers(thisArg, initializers, value) {\n var useValue = arguments.length > 2;\n for (var i = 0; i < initializers.length; i++) {\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\n }\n return useValue ? value : void 0;\n};\n\nexport function __propKey(x) {\n return typeof x === \"symbol\" ? x : \"\".concat(x);\n};\n\nexport function __setFunctionName(f, name, prefix) {\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\n};\n\nexport function __metadata(metadataKey, metadataValue) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\n}\n\nexport function __awaiter(thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n}\n\nexport function __generator(thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === \"function\" ? Iterator : Object).prototype);\n return g.next = verb(0), g[\"throw\"] = verb(1), g[\"return\"] = verb(2), typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n}\n\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n});\n\nexport function __exportStar(m, o) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\n}\n\nexport function __values(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n}\n\nexport function __read(o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n}\n\n/** @deprecated */\nexport function __spread() {\n for (var ar = [], i = 0; i < arguments.length; i++)\n ar = ar.concat(__read(arguments[i]));\n return ar;\n}\n\n/** @deprecated */\nexport function __spreadArrays() {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n r[k] = a[j];\n return r;\n}\n\nexport function __spreadArray(to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n}\n\nexport function __await(v) {\n return this instanceof __await ? (this.v = v, this) : new __await(v);\n}\n\nexport function __asyncGenerator(thisArg, _arguments, generator) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\n return i = Object.create((typeof AsyncIterator === \"function\" ? AsyncIterator : Object).prototype), verb(\"next\"), verb(\"throw\"), verb(\"return\", awaitReturn), i[Symbol.asyncIterator] = function () { return this; }, i;\n function awaitReturn(f) { return function (v) { return Promise.resolve(v).then(f, reject); }; }\n function verb(n, f) { if (g[n]) { i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; if (f) i[n] = f(i[n]); } }\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\n function fulfill(value) { resume(\"next\", value); }\n function reject(value) { resume(\"throw\", value); }\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\n}\n\nexport function __asyncDelegator(o) {\n var i, p;\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\n}\n\nexport function __asyncValues(o) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var m = o[Symbol.asyncIterator], i;\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\n}\n\nexport function __makeTemplateObject(cooked, raw) {\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\n return cooked;\n};\n\nvar __setModuleDefault = Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n};\n\nexport function __importStar(mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n}\n\nexport function __importDefault(mod) {\n return (mod && mod.__esModule) ? mod : { default: mod };\n}\n\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n}\n\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n}\n\nexport function __classPrivateFieldIn(state, receiver) {\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\n}\n\nexport function __addDisposableResource(env, value, async) {\n if (value !== null && value !== void 0) {\n if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\n var dispose, inner;\n if (async) {\n if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\n dispose = value[Symbol.asyncDispose];\n }\n if (dispose === void 0) {\n if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\n dispose = value[Symbol.dispose];\n if (async) inner = dispose;\n }\n if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\n if (inner) dispose = function() { try { inner.call(this); } catch (e) { return Promise.reject(e); } };\n env.stack.push({ value: value, dispose: dispose, async: async });\n }\n else if (async) {\n env.stack.push({ async: true });\n }\n return value;\n}\n\nvar _SuppressedError = typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\n var e = new Error(message);\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\n};\n\nexport function __disposeResources(env) {\n function fail(e) {\n env.error = env.hasError ? new _SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\n env.hasError = true;\n }\n var r, s = 0;\n function next() {\n while (r = env.stack.pop()) {\n try {\n if (!r.async && s === 1) return s = 0, env.stack.push(r), Promise.resolve().then(next);\n if (r.dispose) {\n var result = r.dispose.call(r.value);\n if (r.async) return s |= 2, Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\n }\n else s |= 1;\n }\n catch (e) {\n fail(e);\n }\n }\n if (s === 1) return env.hasError ? Promise.reject(env.error) : Promise.resolve();\n if (env.hasError) throw env.error;\n }\n return next();\n}\n\nexport default {\n __extends,\n __assign,\n __rest,\n __decorate,\n __param,\n __metadata,\n __awaiter,\n __generator,\n __createBinding,\n __exportStar,\n __values,\n __read,\n __spread,\n __spreadArrays,\n __spreadArray,\n __await,\n __asyncGenerator,\n __asyncDelegator,\n __asyncValues,\n __makeTemplateObject,\n __importStar,\n __importDefault,\n __classPrivateFieldGet,\n __classPrivateFieldSet,\n __classPrivateFieldIn,\n __addDisposableResource,\n __disposeResources,\n};\n", "/**\n * Returns true if the object is a function.\n * @param value The value to check\n */\nexport function isFunction(value: any): value is (...args: any[]) => any {\n return typeof value === 'function';\n}\n", "/**\n * Used to create Error subclasses until the community moves away from ES5.\n *\n * This is because compiling from TypeScript down to ES5 has issues with subclassing Errors\n * as well as other built-in types: https://github.com/Microsoft/TypeScript/issues/12123\n *\n * @param createImpl A factory function to create the actual constructor implementation. The returned\n * function should be a named function that calls `_super` internally.\n */\nexport function createErrorClass(createImpl: (_super: any) => any): T {\n const _super = (instance: any) => {\n Error.call(instance);\n instance.stack = new Error().stack;\n };\n\n const ctorFunc = createImpl(_super);\n ctorFunc.prototype = Object.create(Error.prototype);\n ctorFunc.prototype.constructor = ctorFunc;\n return ctorFunc;\n}\n", "import { createErrorClass } from './createErrorClass';\n\nexport interface UnsubscriptionError extends Error {\n readonly errors: any[];\n}\n\nexport interface UnsubscriptionErrorCtor {\n /**\n * @deprecated Internal implementation detail. Do not construct error instances.\n * Cannot be tagged as internal: https://github.com/ReactiveX/rxjs/issues/6269\n */\n new (errors: any[]): UnsubscriptionError;\n}\n\n/**\n * An error thrown when one or more errors have occurred during the\n * `unsubscribe` of a {@link Subscription}.\n */\nexport const UnsubscriptionError: UnsubscriptionErrorCtor = createErrorClass(\n (_super) =>\n function UnsubscriptionErrorImpl(this: any, errors: (Error | string)[]) {\n _super(this);\n this.message = errors\n ? `${errors.length} errors occurred during unsubscription:\n${errors.map((err, i) => `${i + 1}) ${err.toString()}`).join('\\n ')}`\n : '';\n this.name = 'UnsubscriptionError';\n this.errors = errors;\n }\n);\n", "/**\n * Removes an item from an array, mutating it.\n * @param arr The array to remove the item from\n * @param item The item to remove\n */\nexport function arrRemove(arr: T[] | undefined | null, item: T) {\n if (arr) {\n const index = arr.indexOf(item);\n 0 <= index && arr.splice(index, 1);\n }\n}\n", "import { isFunction } from './util/isFunction';\nimport { UnsubscriptionError } from './util/UnsubscriptionError';\nimport { SubscriptionLike, TeardownLogic, Unsubscribable } from './types';\nimport { arrRemove } from './util/arrRemove';\n\n/**\n * Represents a disposable resource, such as the execution of an Observable. A\n * Subscription has one important method, `unsubscribe`, that takes no argument\n * and just disposes the resource held by the subscription.\n *\n * Additionally, subscriptions may be grouped together through the `add()`\n * method, which will attach a child Subscription to the current Subscription.\n * When a Subscription is unsubscribed, all its children (and its grandchildren)\n * will be unsubscribed as well.\n */\nexport class Subscription implements SubscriptionLike {\n public static EMPTY = (() => {\n const empty = new Subscription();\n empty.closed = true;\n return empty;\n })();\n\n /**\n * A flag to indicate whether this Subscription has already been unsubscribed.\n */\n public closed = false;\n\n private _parentage: Subscription[] | Subscription | null = null;\n\n /**\n * The list of registered finalizers to execute upon unsubscription. Adding and removing from this\n * list occurs in the {@link #add} and {@link #remove} methods.\n */\n private _finalizers: Exclude[] | null = null;\n\n /**\n * @param initialTeardown A function executed first as part of the finalization\n * process that is kicked off when {@link #unsubscribe} is called.\n */\n constructor(private initialTeardown?: () => void) {}\n\n /**\n * Disposes the resources held by the subscription. May, for instance, cancel\n * an ongoing Observable execution or cancel any other type of work that\n * started when the Subscription was created.\n */\n unsubscribe(): void {\n let errors: any[] | undefined;\n\n if (!this.closed) {\n this.closed = true;\n\n // Remove this from it's parents.\n const { _parentage } = this;\n if (_parentage) {\n this._parentage = null;\n if (Array.isArray(_parentage)) {\n for (const parent of _parentage) {\n parent.remove(this);\n }\n } else {\n _parentage.remove(this);\n }\n }\n\n const { initialTeardown: initialFinalizer } = this;\n if (isFunction(initialFinalizer)) {\n try {\n initialFinalizer();\n } catch (e) {\n errors = e instanceof UnsubscriptionError ? e.errors : [e];\n }\n }\n\n const { _finalizers } = this;\n if (_finalizers) {\n this._finalizers = null;\n for (const finalizer of _finalizers) {\n try {\n execFinalizer(finalizer);\n } catch (err) {\n errors = errors ?? [];\n if (err instanceof UnsubscriptionError) {\n errors = [...errors, ...err.errors];\n } else {\n errors.push(err);\n }\n }\n }\n }\n\n if (errors) {\n throw new UnsubscriptionError(errors);\n }\n }\n }\n\n /**\n * Adds a finalizer to this subscription, so that finalization will be unsubscribed/called\n * when this subscription is unsubscribed. If this subscription is already {@link #closed},\n * because it has already been unsubscribed, then whatever finalizer is passed to it\n * will automatically be executed (unless the finalizer itself is also a closed subscription).\n *\n * Closed Subscriptions cannot be added as finalizers to any subscription. Adding a closed\n * subscription to a any subscription will result in no operation. (A noop).\n *\n * Adding a subscription to itself, or adding `null` or `undefined` will not perform any\n * operation at all. (A noop).\n *\n * `Subscription` instances that are added to this instance will automatically remove themselves\n * if they are unsubscribed. Functions and {@link Unsubscribable} objects that you wish to remove\n * will need to be removed manually with {@link #remove}\n *\n * @param teardown The finalization logic to add to this subscription.\n */\n add(teardown: TeardownLogic): void {\n // Only add the finalizer if it's not undefined\n // and don't add a subscription to itself.\n if (teardown && teardown !== this) {\n if (this.closed) {\n // If this subscription is already closed,\n // execute whatever finalizer is handed to it automatically.\n execFinalizer(teardown);\n } else {\n if (teardown instanceof Subscription) {\n // We don't add closed subscriptions, and we don't add the same subscription\n // twice. Subscription unsubscribe is idempotent.\n if (teardown.closed || teardown._hasParent(this)) {\n return;\n }\n teardown._addParent(this);\n }\n (this._finalizers = this._finalizers ?? []).push(teardown);\n }\n }\n }\n\n /**\n * Checks to see if a this subscription already has a particular parent.\n * This will signal that this subscription has already been added to the parent in question.\n * @param parent the parent to check for\n */\n private _hasParent(parent: Subscription) {\n const { _parentage } = this;\n return _parentage === parent || (Array.isArray(_parentage) && _parentage.includes(parent));\n }\n\n /**\n * Adds a parent to this subscription so it can be removed from the parent if it\n * unsubscribes on it's own.\n *\n * NOTE: THIS ASSUMES THAT {@link _hasParent} HAS ALREADY BEEN CHECKED.\n * @param parent The parent subscription to add\n */\n private _addParent(parent: Subscription) {\n const { _parentage } = this;\n this._parentage = Array.isArray(_parentage) ? (_parentage.push(parent), _parentage) : _parentage ? [_parentage, parent] : parent;\n }\n\n /**\n * Called on a child when it is removed via {@link #remove}.\n * @param parent The parent to remove\n */\n private _removeParent(parent: Subscription) {\n const { _parentage } = this;\n if (_parentage === parent) {\n this._parentage = null;\n } else if (Array.isArray(_parentage)) {\n arrRemove(_parentage, parent);\n }\n }\n\n /**\n * Removes a finalizer from this subscription that was previously added with the {@link #add} method.\n *\n * Note that `Subscription` instances, when unsubscribed, will automatically remove themselves\n * from every other `Subscription` they have been added to. This means that using the `remove` method\n * is not a common thing and should be used thoughtfully.\n *\n * If you add the same finalizer instance of a function or an unsubscribable object to a `Subscription` instance\n * more than once, you will need to call `remove` the same number of times to remove all instances.\n *\n * All finalizer instances are removed to free up memory upon unsubscription.\n *\n * @param teardown The finalizer to remove from this subscription\n */\n remove(teardown: Exclude): void {\n const { _finalizers } = this;\n _finalizers && arrRemove(_finalizers, teardown);\n\n if (teardown instanceof Subscription) {\n teardown._removeParent(this);\n }\n }\n}\n\nexport const EMPTY_SUBSCRIPTION = Subscription.EMPTY;\n\nexport function isSubscription(value: any): value is Subscription {\n return (\n value instanceof Subscription ||\n (value && 'closed' in value && isFunction(value.remove) && isFunction(value.add) && isFunction(value.unsubscribe))\n );\n}\n\nfunction execFinalizer(finalizer: Unsubscribable | (() => void)) {\n if (isFunction(finalizer)) {\n finalizer();\n } else {\n finalizer.unsubscribe();\n }\n}\n", "import { Subscriber } from './Subscriber';\nimport { ObservableNotification } from './types';\n\n/**\n * The {@link GlobalConfig} object for RxJS. It is used to configure things\n * like how to react on unhandled errors.\n */\nexport const config: GlobalConfig = {\n onUnhandledError: null,\n onStoppedNotification: null,\n Promise: undefined,\n useDeprecatedSynchronousErrorHandling: false,\n useDeprecatedNextContext: false,\n};\n\n/**\n * The global configuration object for RxJS, used to configure things\n * like how to react on unhandled errors. Accessible via {@link config}\n * object.\n */\nexport interface GlobalConfig {\n /**\n * A registration point for unhandled errors from RxJS. These are errors that\n * cannot were not handled by consuming code in the usual subscription path. For\n * example, if you have this configured, and you subscribe to an observable without\n * providing an error handler, errors from that subscription will end up here. This\n * will _always_ be called asynchronously on another job in the runtime. This is because\n * we do not want errors thrown in this user-configured handler to interfere with the\n * behavior of the library.\n */\n onUnhandledError: ((err: any) => void) | null;\n\n /**\n * A registration point for notifications that cannot be sent to subscribers because they\n * have completed, errored or have been explicitly unsubscribed. By default, next, complete\n * and error notifications sent to stopped subscribers are noops. However, sometimes callers\n * might want a different behavior. For example, with sources that attempt to report errors\n * to stopped subscribers, a caller can configure RxJS to throw an unhandled error instead.\n * This will _always_ be called asynchronously on another job in the runtime. This is because\n * we do not want errors thrown in this user-configured handler to interfere with the\n * behavior of the library.\n */\n onStoppedNotification: ((notification: ObservableNotification, subscriber: Subscriber) => void) | null;\n\n /**\n * The promise constructor used by default for {@link Observable#toPromise toPromise} and {@link Observable#forEach forEach}\n * methods.\n *\n * @deprecated As of version 8, RxJS will no longer support this sort of injection of a\n * Promise constructor. If you need a Promise implementation other than native promises,\n * please polyfill/patch Promise as you see appropriate. Will be removed in v8.\n */\n Promise?: PromiseConstructorLike;\n\n /**\n * If true, turns on synchronous error rethrowing, which is a deprecated behavior\n * in v6 and higher. This behavior enables bad patterns like wrapping a subscribe\n * call in a try/catch block. It also enables producer interference, a nasty bug\n * where a multicast can be broken for all observers by a downstream consumer with\n * an unhandled error. DO NOT USE THIS FLAG UNLESS IT'S NEEDED TO BUY TIME\n * FOR MIGRATION REASONS.\n *\n * @deprecated As of version 8, RxJS will no longer support synchronous throwing\n * of unhandled errors. All errors will be thrown on a separate call stack to prevent bad\n * behaviors described above. Will be removed in v8.\n */\n useDeprecatedSynchronousErrorHandling: boolean;\n\n /**\n * If true, enables an as-of-yet undocumented feature from v5: The ability to access\n * `unsubscribe()` via `this` context in `next` functions created in observers passed\n * to `subscribe`.\n *\n * This is being removed because the performance was severely problematic, and it could also cause\n * issues when types other than POJOs are passed to subscribe as subscribers, as they will likely have\n * their `this` context overwritten.\n *\n * @deprecated As of version 8, RxJS will no longer support altering the\n * context of next functions provided as part of an observer to Subscribe. Instead,\n * you will have access to a subscription or a signal or token that will allow you to do things like\n * unsubscribe and test closed status. Will be removed in v8.\n */\n useDeprecatedNextContext: boolean;\n}\n", "import type { TimerHandle } from './timerHandle';\ntype SetTimeoutFunction = (handler: () => void, timeout?: number, ...args: any[]) => TimerHandle;\ntype ClearTimeoutFunction = (handle: TimerHandle) => void;\n\ninterface TimeoutProvider {\n setTimeout: SetTimeoutFunction;\n clearTimeout: ClearTimeoutFunction;\n delegate:\n | {\n setTimeout: SetTimeoutFunction;\n clearTimeout: ClearTimeoutFunction;\n }\n | undefined;\n}\n\nexport const timeoutProvider: TimeoutProvider = {\n // When accessing the delegate, use the variable rather than `this` so that\n // the functions can be called without being bound to the provider.\n setTimeout(handler: () => void, timeout?: number, ...args) {\n const { delegate } = timeoutProvider;\n if (delegate?.setTimeout) {\n return delegate.setTimeout(handler, timeout, ...args);\n }\n return setTimeout(handler, timeout, ...args);\n },\n clearTimeout(handle) {\n const { delegate } = timeoutProvider;\n return (delegate?.clearTimeout || clearTimeout)(handle as any);\n },\n delegate: undefined,\n};\n", "import { config } from '../config';\nimport { timeoutProvider } from '../scheduler/timeoutProvider';\n\n/**\n * Handles an error on another job either with the user-configured {@link onUnhandledError},\n * or by throwing it on that new job so it can be picked up by `window.onerror`, `process.on('error')`, etc.\n *\n * This should be called whenever there is an error that is out-of-band with the subscription\n * or when an error hits a terminal boundary of the subscription and no error handler was provided.\n *\n * @param err the error to report\n */\nexport function reportUnhandledError(err: any) {\n timeoutProvider.setTimeout(() => {\n const { onUnhandledError } = config;\n if (onUnhandledError) {\n // Execute the user-configured error handler.\n onUnhandledError(err);\n } else {\n // Throw so it is picked up by the runtime's uncaught error mechanism.\n throw err;\n }\n });\n}\n", "/* tslint:disable:no-empty */\nexport function noop() { }\n", "import { CompleteNotification, NextNotification, ErrorNotification } from './types';\n\n/**\n * A completion object optimized for memory use and created to be the\n * same \"shape\" as other notifications in v8.\n * @internal\n */\nexport const COMPLETE_NOTIFICATION = (() => createNotification('C', undefined, undefined) as CompleteNotification)();\n\n/**\n * Internal use only. Creates an optimized error notification that is the same \"shape\"\n * as other notifications.\n * @internal\n */\nexport function errorNotification(error: any): ErrorNotification {\n return createNotification('E', undefined, error) as any;\n}\n\n/**\n * Internal use only. Creates an optimized next notification that is the same \"shape\"\n * as other notifications.\n * @internal\n */\nexport function nextNotification(value: T) {\n return createNotification('N', value, undefined) as NextNotification;\n}\n\n/**\n * Ensures that all notifications created internally have the same \"shape\" in v8.\n *\n * TODO: This is only exported to support a crazy legacy test in `groupBy`.\n * @internal\n */\nexport function createNotification(kind: 'N' | 'E' | 'C', value: any, error: any) {\n return {\n kind,\n value,\n error,\n };\n}\n", "import { config } from '../config';\n\nlet context: { errorThrown: boolean; error: any } | null = null;\n\n/**\n * Handles dealing with errors for super-gross mode. Creates a context, in which\n * any synchronously thrown errors will be passed to {@link captureError}. Which\n * will record the error such that it will be rethrown after the call back is complete.\n * TODO: Remove in v8\n * @param cb An immediately executed function.\n */\nexport function errorContext(cb: () => void) {\n if (config.useDeprecatedSynchronousErrorHandling) {\n const isRoot = !context;\n if (isRoot) {\n context = { errorThrown: false, error: null };\n }\n cb();\n if (isRoot) {\n const { errorThrown, error } = context!;\n context = null;\n if (errorThrown) {\n throw error;\n }\n }\n } else {\n // This is the general non-deprecated path for everyone that\n // isn't crazy enough to use super-gross mode (useDeprecatedSynchronousErrorHandling)\n cb();\n }\n}\n\n/**\n * Captures errors only in super-gross mode.\n * @param err the error to capture\n */\nexport function captureError(err: any) {\n if (config.useDeprecatedSynchronousErrorHandling && context) {\n context.errorThrown = true;\n context.error = err;\n }\n}\n", "import { isFunction } from './util/isFunction';\nimport { Observer, ObservableNotification } from './types';\nimport { isSubscription, Subscription } from './Subscription';\nimport { config } from './config';\nimport { reportUnhandledError } from './util/reportUnhandledError';\nimport { noop } from './util/noop';\nimport { nextNotification, errorNotification, COMPLETE_NOTIFICATION } from './NotificationFactories';\nimport { timeoutProvider } from './scheduler/timeoutProvider';\nimport { captureError } from './util/errorContext';\n\n/**\n * Implements the {@link Observer} interface and extends the\n * {@link Subscription} class. While the {@link Observer} is the public API for\n * consuming the values of an {@link Observable}, all Observers get converted to\n * a Subscriber, in order to provide Subscription-like capabilities such as\n * `unsubscribe`. Subscriber is a common type in RxJS, and crucial for\n * implementing operators, but it is rarely used as a public API.\n */\nexport class Subscriber extends Subscription implements Observer {\n /**\n * A static factory for a Subscriber, given a (potentially partial) definition\n * of an Observer.\n * @param next The `next` callback of an Observer.\n * @param error The `error` callback of an\n * Observer.\n * @param complete The `complete` callback of an\n * Observer.\n * @return A Subscriber wrapping the (partially defined)\n * Observer represented by the given arguments.\n * @deprecated Do not use. Will be removed in v8. There is no replacement for this\n * method, and there is no reason to be creating instances of `Subscriber` directly.\n * If you have a specific use case, please file an issue.\n */\n static create(next?: (x?: T) => void, error?: (e?: any) => void, complete?: () => void): Subscriber {\n return new SafeSubscriber(next, error, complete);\n }\n\n /** @deprecated Internal implementation detail, do not use directly. Will be made internal in v8. */\n protected isStopped: boolean = false;\n /** @deprecated Internal implementation detail, do not use directly. Will be made internal in v8. */\n protected destination: Subscriber | Observer; // this `any` is the escape hatch to erase extra type param (e.g. R)\n\n /**\n * @deprecated Internal implementation detail, do not use directly. Will be made internal in v8.\n * There is no reason to directly create an instance of Subscriber. This type is exported for typings reasons.\n */\n constructor(destination?: Subscriber | Observer) {\n super();\n if (destination) {\n this.destination = destination;\n // Automatically chain subscriptions together here.\n // if destination is a Subscription, then it is a Subscriber.\n if (isSubscription(destination)) {\n destination.add(this);\n }\n } else {\n this.destination = EMPTY_OBSERVER;\n }\n }\n\n /**\n * The {@link Observer} callback to receive notifications of type `next` from\n * the Observable, with a value. The Observable may call this method 0 or more\n * times.\n * @param value The `next` value.\n */\n next(value: T): void {\n if (this.isStopped) {\n handleStoppedNotification(nextNotification(value), this);\n } else {\n this._next(value!);\n }\n }\n\n /**\n * The {@link Observer} callback to receive notifications of type `error` from\n * the Observable, with an attached `Error`. Notifies the Observer that\n * the Observable has experienced an error condition.\n * @param err The `error` exception.\n */\n error(err?: any): void {\n if (this.isStopped) {\n handleStoppedNotification(errorNotification(err), this);\n } else {\n this.isStopped = true;\n this._error(err);\n }\n }\n\n /**\n * The {@link Observer} callback to receive a valueless notification of type\n * `complete` from the Observable. Notifies the Observer that the Observable\n * has finished sending push-based notifications.\n */\n complete(): void {\n if (this.isStopped) {\n handleStoppedNotification(COMPLETE_NOTIFICATION, this);\n } else {\n this.isStopped = true;\n this._complete();\n }\n }\n\n unsubscribe(): void {\n if (!this.closed) {\n this.isStopped = true;\n super.unsubscribe();\n this.destination = null!;\n }\n }\n\n protected _next(value: T): void {\n this.destination.next(value);\n }\n\n protected _error(err: any): void {\n try {\n this.destination.error(err);\n } finally {\n this.unsubscribe();\n }\n }\n\n protected _complete(): void {\n try {\n this.destination.complete();\n } finally {\n this.unsubscribe();\n }\n }\n}\n\n/**\n * This bind is captured here because we want to be able to have\n * compatibility with monoid libraries that tend to use a method named\n * `bind`. In particular, a library called Monio requires this.\n */\nconst _bind = Function.prototype.bind;\n\nfunction bind any>(fn: Fn, thisArg: any): Fn {\n return _bind.call(fn, thisArg);\n}\n\n/**\n * Internal optimization only, DO NOT EXPOSE.\n * @internal\n */\nclass ConsumerObserver implements Observer {\n constructor(private partialObserver: Partial>) {}\n\n next(value: T): void {\n const { partialObserver } = this;\n if (partialObserver.next) {\n try {\n partialObserver.next(value);\n } catch (error) {\n handleUnhandledError(error);\n }\n }\n }\n\n error(err: any): void {\n const { partialObserver } = this;\n if (partialObserver.error) {\n try {\n partialObserver.error(err);\n } catch (error) {\n handleUnhandledError(error);\n }\n } else {\n handleUnhandledError(err);\n }\n }\n\n complete(): void {\n const { partialObserver } = this;\n if (partialObserver.complete) {\n try {\n partialObserver.complete();\n } catch (error) {\n handleUnhandledError(error);\n }\n }\n }\n}\n\nexport class SafeSubscriber extends Subscriber {\n constructor(\n observerOrNext?: Partial> | ((value: T) => void) | null,\n error?: ((e?: any) => void) | null,\n complete?: (() => void) | null\n ) {\n super();\n\n let partialObserver: Partial>;\n if (isFunction(observerOrNext) || !observerOrNext) {\n // The first argument is a function, not an observer. The next\n // two arguments *could* be observers, or they could be empty.\n partialObserver = {\n next: (observerOrNext ?? undefined) as ((value: T) => void) | undefined,\n error: error ?? undefined,\n complete: complete ?? undefined,\n };\n } else {\n // The first argument is a partial observer.\n let context: any;\n if (this && config.useDeprecatedNextContext) {\n // This is a deprecated path that made `this.unsubscribe()` available in\n // next handler functions passed to subscribe. This only exists behind a flag\n // now, as it is *very* slow.\n context = Object.create(observerOrNext);\n context.unsubscribe = () => this.unsubscribe();\n partialObserver = {\n next: observerOrNext.next && bind(observerOrNext.next, context),\n error: observerOrNext.error && bind(observerOrNext.error, context),\n complete: observerOrNext.complete && bind(observerOrNext.complete, context),\n };\n } else {\n // The \"normal\" path. Just use the partial observer directly.\n partialObserver = observerOrNext;\n }\n }\n\n // Wrap the partial observer to ensure it's a full observer, and\n // make sure proper error handling is accounted for.\n this.destination = new ConsumerObserver(partialObserver);\n }\n}\n\nfunction handleUnhandledError(error: any) {\n if (config.useDeprecatedSynchronousErrorHandling) {\n captureError(error);\n } else {\n // Ideal path, we report this as an unhandled error,\n // which is thrown on a new call stack.\n reportUnhandledError(error);\n }\n}\n\n/**\n * An error handler used when no error handler was supplied\n * to the SafeSubscriber -- meaning no error handler was supplied\n * do the `subscribe` call on our observable.\n * @param err The error to handle\n */\nfunction defaultErrorHandler(err: any) {\n throw err;\n}\n\n/**\n * A handler for notifications that cannot be sent to a stopped subscriber.\n * @param notification The notification being sent.\n * @param subscriber The stopped subscriber.\n */\nfunction handleStoppedNotification(notification: ObservableNotification, subscriber: Subscriber) {\n const { onStoppedNotification } = config;\n onStoppedNotification && timeoutProvider.setTimeout(() => onStoppedNotification(notification, subscriber));\n}\n\n/**\n * The observer used as a stub for subscriptions where the user did not\n * pass any arguments to `subscribe`. Comes with the default error handling\n * behavior.\n */\nexport const EMPTY_OBSERVER: Readonly> & { closed: true } = {\n closed: true,\n next: noop,\n error: defaultErrorHandler,\n complete: noop,\n};\n", "/**\n * Symbol.observable or a string \"@@observable\". Used for interop\n *\n * @deprecated We will no longer be exporting this symbol in upcoming versions of RxJS.\n * Instead polyfill and use Symbol.observable directly *or* use https://www.npmjs.com/package/symbol-observable\n */\nexport const observable: string | symbol = (() => (typeof Symbol === 'function' && Symbol.observable) || '@@observable')();\n", "/**\n * This function takes one parameter and just returns it. Simply put,\n * this is like `(x: T): T => x`.\n *\n * ## Examples\n *\n * This is useful in some cases when using things like `mergeMap`\n *\n * ```ts\n * import { interval, take, map, range, mergeMap, identity } from 'rxjs';\n *\n * const source$ = interval(1000).pipe(take(5));\n *\n * const result$ = source$.pipe(\n * map(i => range(i)),\n * mergeMap(identity) // same as mergeMap(x => x)\n * );\n *\n * result$.subscribe({\n * next: console.log\n * });\n * ```\n *\n * Or when you want to selectively apply an operator\n *\n * ```ts\n * import { interval, take, identity } from 'rxjs';\n *\n * const shouldLimit = () => Math.random() < 0.5;\n *\n * const source$ = interval(1000);\n *\n * const result$ = source$.pipe(shouldLimit() ? take(5) : identity);\n *\n * result$.subscribe({\n * next: console.log\n * });\n * ```\n *\n * @param x Any value that is returned by this function\n * @returns The value passed as the first parameter to this function\n */\nexport function identity(x: T): T {\n return x;\n}\n", "import { identity } from './identity';\nimport { UnaryFunction } from '../types';\n\nexport function pipe(): typeof identity;\nexport function pipe(fn1: UnaryFunction): UnaryFunction;\nexport function pipe(fn1: UnaryFunction, fn2: UnaryFunction): UnaryFunction;\nexport function pipe(fn1: UnaryFunction, fn2: UnaryFunction, fn3: UnaryFunction): UnaryFunction;\nexport function pipe(\n fn1: UnaryFunction,\n fn2: UnaryFunction,\n fn3: UnaryFunction,\n fn4: UnaryFunction\n): UnaryFunction;\nexport function pipe(\n fn1: UnaryFunction,\n fn2: UnaryFunction,\n fn3: UnaryFunction,\n fn4: UnaryFunction,\n fn5: UnaryFunction\n): UnaryFunction;\nexport function pipe(\n fn1: UnaryFunction,\n fn2: UnaryFunction,\n fn3: UnaryFunction,\n fn4: UnaryFunction,\n fn5: UnaryFunction,\n fn6: UnaryFunction\n): UnaryFunction;\nexport function pipe(\n fn1: UnaryFunction,\n fn2: UnaryFunction,\n fn3: UnaryFunction,\n fn4: UnaryFunction,\n fn5: UnaryFunction,\n fn6: UnaryFunction,\n fn7: UnaryFunction\n): UnaryFunction;\nexport function pipe(\n fn1: UnaryFunction,\n fn2: UnaryFunction,\n fn3: UnaryFunction,\n fn4: UnaryFunction,\n fn5: UnaryFunction,\n fn6: UnaryFunction,\n fn7: UnaryFunction,\n fn8: UnaryFunction\n): UnaryFunction;\nexport function pipe(\n fn1: UnaryFunction,\n fn2: UnaryFunction,\n fn3: UnaryFunction,\n fn4: UnaryFunction,\n fn5: UnaryFunction,\n fn6: UnaryFunction,\n fn7: UnaryFunction,\n fn8: UnaryFunction,\n fn9: UnaryFunction\n): UnaryFunction;\nexport function pipe(\n fn1: UnaryFunction,\n fn2: UnaryFunction,\n fn3: UnaryFunction,\n fn4: UnaryFunction,\n fn5: UnaryFunction,\n fn6: UnaryFunction,\n fn7: UnaryFunction,\n fn8: UnaryFunction,\n fn9: UnaryFunction,\n ...fns: UnaryFunction[]\n): UnaryFunction;\n\n/**\n * pipe() can be called on one or more functions, each of which can take one argument (\"UnaryFunction\")\n * and uses it to return a value.\n * It returns a function that takes one argument, passes it to the first UnaryFunction, and then\n * passes the result to the next one, passes that result to the next one, and so on. \n */\nexport function pipe(...fns: Array>): UnaryFunction {\n return pipeFromArray(fns);\n}\n\n/** @internal */\nexport function pipeFromArray(fns: Array>): UnaryFunction {\n if (fns.length === 0) {\n return identity as UnaryFunction;\n }\n\n if (fns.length === 1) {\n return fns[0];\n }\n\n return function piped(input: T): R {\n return fns.reduce((prev: any, fn: UnaryFunction) => fn(prev), input as any);\n };\n}\n", "import { Operator } from './Operator';\nimport { SafeSubscriber, Subscriber } from './Subscriber';\nimport { isSubscription, Subscription } from './Subscription';\nimport { TeardownLogic, OperatorFunction, Subscribable, Observer } from './types';\nimport { observable as Symbol_observable } from './symbol/observable';\nimport { pipeFromArray } from './util/pipe';\nimport { config } from './config';\nimport { isFunction } from './util/isFunction';\nimport { errorContext } from './util/errorContext';\n\n/**\n * A representation of any set of values over any amount of time. This is the most basic building block\n * of RxJS.\n */\nexport class Observable implements Subscribable {\n /**\n * @deprecated Internal implementation detail, do not use directly. Will be made internal in v8.\n */\n source: Observable | undefined;\n\n /**\n * @deprecated Internal implementation detail, do not use directly. Will be made internal in v8.\n */\n operator: Operator | undefined;\n\n /**\n * @param subscribe The function that is called when the Observable is\n * initially subscribed to. This function is given a Subscriber, to which new values\n * can be `next`ed, or an `error` method can be called to raise an error, or\n * `complete` can be called to notify of a successful completion.\n */\n constructor(subscribe?: (this: Observable, subscriber: Subscriber) => TeardownLogic) {\n if (subscribe) {\n this._subscribe = subscribe;\n }\n }\n\n // HACK: Since TypeScript inherits static properties too, we have to\n // fight against TypeScript here so Subject can have a different static create signature\n /**\n * Creates a new Observable by calling the Observable constructor\n * @param subscribe the subscriber function to be passed to the Observable constructor\n * @return A new observable.\n * @deprecated Use `new Observable()` instead. Will be removed in v8.\n */\n static create: (...args: any[]) => any = (subscribe?: (subscriber: Subscriber) => TeardownLogic) => {\n return new Observable(subscribe);\n };\n\n /**\n * Creates a new Observable, with this Observable instance as the source, and the passed\n * operator defined as the new observable's operator.\n * @param operator the operator defining the operation to take on the observable\n * @return A new observable with the Operator applied.\n * @deprecated Internal implementation detail, do not use directly. Will be made internal in v8.\n * If you have implemented an operator using `lift`, it is recommended that you create an\n * operator by simply returning `new Observable()` directly. See \"Creating new operators from\n * scratch\" section here: https://rxjs.dev/guide/operators\n */\n lift(operator?: Operator): Observable {\n const observable = new Observable();\n observable.source = this;\n observable.operator = operator;\n return observable;\n }\n\n subscribe(observerOrNext?: Partial> | ((value: T) => void)): Subscription;\n /** @deprecated Instead of passing separate callback arguments, use an observer argument. Signatures taking separate callback arguments will be removed in v8. Details: https://rxjs.dev/deprecations/subscribe-arguments */\n subscribe(next?: ((value: T) => void) | null, error?: ((error: any) => void) | null, complete?: (() => void) | null): Subscription;\n /**\n * Invokes an execution of an Observable and registers Observer handlers for notifications it will emit.\n *\n * Use it when you have all these Observables, but still nothing is happening.\n *\n * `subscribe` is not a regular operator, but a method that calls Observable's internal `subscribe` function. It\n * might be for example a function that you passed to Observable's constructor, but most of the time it is\n * a library implementation, which defines what will be emitted by an Observable, and when it be will emitted. This means\n * that calling `subscribe` is actually the moment when Observable starts its work, not when it is created, as it is often\n * the thought.\n *\n * Apart from starting the execution of an Observable, this method allows you to listen for values\n * that an Observable emits, as well as for when it completes or errors. You can achieve this in two\n * of the following ways.\n *\n * The first way is creating an object that implements {@link Observer} interface. It should have methods\n * defined by that interface, but note that it should be just a regular JavaScript object, which you can create\n * yourself in any way you want (ES6 class, classic function constructor, object literal etc.). In particular, do\n * not attempt to use any RxJS implementation details to create Observers - you don't need them. Remember also\n * that your object does not have to implement all methods. If you find yourself creating a method that doesn't\n * do anything, you can simply omit it. Note however, if the `error` method is not provided and an error happens,\n * it will be thrown asynchronously. Errors thrown asynchronously cannot be caught using `try`/`catch`. Instead,\n * use the {@link onUnhandledError} configuration option or use a runtime handler (like `window.onerror` or\n * `process.on('error)`) to be notified of unhandled errors. Because of this, it's recommended that you provide\n * an `error` method to avoid missing thrown errors.\n *\n * The second way is to give up on Observer object altogether and simply provide callback functions in place of its methods.\n * This means you can provide three functions as arguments to `subscribe`, where the first function is equivalent\n * of a `next` method, the second of an `error` method and the third of a `complete` method. Just as in case of an Observer,\n * if you do not need to listen for something, you can omit a function by passing `undefined` or `null`,\n * since `subscribe` recognizes these functions by where they were placed in function call. When it comes\n * to the `error` function, as with an Observer, if not provided, errors emitted by an Observable will be thrown asynchronously.\n *\n * You can, however, subscribe with no parameters at all. This may be the case where you're not interested in terminal events\n * and you also handled emissions internally by using operators (e.g. using `tap`).\n *\n * Whichever style of calling `subscribe` you use, in both cases it returns a Subscription object.\n * This object allows you to call `unsubscribe` on it, which in turn will stop the work that an Observable does and will clean\n * up all resources that an Observable used. Note that cancelling a subscription will not call `complete` callback\n * provided to `subscribe` function, which is reserved for a regular completion signal that comes from an Observable.\n *\n * Remember that callbacks provided to `subscribe` are not guaranteed to be called asynchronously.\n * It is an Observable itself that decides when these functions will be called. For example {@link of}\n * by default emits all its values synchronously. Always check documentation for how given Observable\n * will behave when subscribed and if its default behavior can be modified with a `scheduler`.\n *\n * #### Examples\n *\n * Subscribe with an {@link guide/observer Observer}\n *\n * ```ts\n * import { of } from 'rxjs';\n *\n * const sumObserver = {\n * sum: 0,\n * next(value) {\n * console.log('Adding: ' + value);\n * this.sum = this.sum + value;\n * },\n * error() {\n * // We actually could just remove this method,\n * // since we do not really care about errors right now.\n * },\n * complete() {\n * console.log('Sum equals: ' + this.sum);\n * }\n * };\n *\n * of(1, 2, 3) // Synchronously emits 1, 2, 3 and then completes.\n * .subscribe(sumObserver);\n *\n * // Logs:\n * // 'Adding: 1'\n * // 'Adding: 2'\n * // 'Adding: 3'\n * // 'Sum equals: 6'\n * ```\n *\n * Subscribe with functions ({@link deprecations/subscribe-arguments deprecated})\n *\n * ```ts\n * import { of } from 'rxjs'\n *\n * let sum = 0;\n *\n * of(1, 2, 3).subscribe(\n * value => {\n * console.log('Adding: ' + value);\n * sum = sum + value;\n * },\n * undefined,\n * () => console.log('Sum equals: ' + sum)\n * );\n *\n * // Logs:\n * // 'Adding: 1'\n * // 'Adding: 2'\n * // 'Adding: 3'\n * // 'Sum equals: 6'\n * ```\n *\n * Cancel a subscription\n *\n * ```ts\n * import { interval } from 'rxjs';\n *\n * const subscription = interval(1000).subscribe({\n * next(num) {\n * console.log(num)\n * },\n * complete() {\n * // Will not be called, even when cancelling subscription.\n * console.log('completed!');\n * }\n * });\n *\n * setTimeout(() => {\n * subscription.unsubscribe();\n * console.log('unsubscribed!');\n * }, 2500);\n *\n * // Logs:\n * // 0 after 1s\n * // 1 after 2s\n * // 'unsubscribed!' after 2.5s\n * ```\n *\n * @param observerOrNext Either an {@link Observer} with some or all callback methods,\n * or the `next` handler that is called for each value emitted from the subscribed Observable.\n * @param error A handler for a terminal event resulting from an error. If no error handler is provided,\n * the error will be thrown asynchronously as unhandled.\n * @param complete A handler for a terminal event resulting from successful completion.\n * @return A subscription reference to the registered handlers.\n */\n subscribe(\n observerOrNext?: Partial> | ((value: T) => void) | null,\n error?: ((error: any) => void) | null,\n complete?: (() => void) | null\n ): Subscription {\n const subscriber = isSubscriber(observerOrNext) ? observerOrNext : new SafeSubscriber(observerOrNext, error, complete);\n\n errorContext(() => {\n const { operator, source } = this;\n subscriber.add(\n operator\n ? // We're dealing with a subscription in the\n // operator chain to one of our lifted operators.\n operator.call(subscriber, source)\n : source\n ? // If `source` has a value, but `operator` does not, something that\n // had intimate knowledge of our API, like our `Subject`, must have\n // set it. We're going to just call `_subscribe` directly.\n this._subscribe(subscriber)\n : // In all other cases, we're likely wrapping a user-provided initializer\n // function, so we need to catch errors and handle them appropriately.\n this._trySubscribe(subscriber)\n );\n });\n\n return subscriber;\n }\n\n /** @internal */\n protected _trySubscribe(sink: Subscriber): TeardownLogic {\n try {\n return this._subscribe(sink);\n } catch (err) {\n // We don't need to return anything in this case,\n // because it's just going to try to `add()` to a subscription\n // above.\n sink.error(err);\n }\n }\n\n /**\n * Used as a NON-CANCELLABLE means of subscribing to an observable, for use with\n * APIs that expect promises, like `async/await`. You cannot unsubscribe from this.\n *\n * **WARNING**: Only use this with observables you *know* will complete. If the source\n * observable does not complete, you will end up with a promise that is hung up, and\n * potentially all of the state of an async function hanging out in memory. To avoid\n * this situation, look into adding something like {@link timeout}, {@link take},\n * {@link takeWhile}, or {@link takeUntil} amongst others.\n *\n * #### Example\n *\n * ```ts\n * import { interval, take } from 'rxjs';\n *\n * const source$ = interval(1000).pipe(take(4));\n *\n * async function getTotal() {\n * let total = 0;\n *\n * await source$.forEach(value => {\n * total += value;\n * console.log('observable -> ' + value);\n * });\n *\n * return total;\n * }\n *\n * getTotal().then(\n * total => console.log('Total: ' + total)\n * );\n *\n * // Expected:\n * // 'observable -> 0'\n * // 'observable -> 1'\n * // 'observable -> 2'\n * // 'observable -> 3'\n * // 'Total: 6'\n * ```\n *\n * @param next A handler for each value emitted by the observable.\n * @return A promise that either resolves on observable completion or\n * rejects with the handled error.\n */\n forEach(next: (value: T) => void): Promise;\n\n /**\n * @param next a handler for each value emitted by the observable\n * @param promiseCtor a constructor function used to instantiate the Promise\n * @return a promise that either resolves on observable completion or\n * rejects with the handled error\n * @deprecated Passing a Promise constructor will no longer be available\n * in upcoming versions of RxJS. This is because it adds weight to the library, for very\n * little benefit. If you need this functionality, it is recommended that you either\n * polyfill Promise, or you create an adapter to convert the returned native promise\n * to whatever promise implementation you wanted. Will be removed in v8.\n */\n forEach(next: (value: T) => void, promiseCtor: PromiseConstructorLike): Promise;\n\n forEach(next: (value: T) => void, promiseCtor?: PromiseConstructorLike): Promise {\n promiseCtor = getPromiseCtor(promiseCtor);\n\n return new promiseCtor((resolve, reject) => {\n const subscriber = new SafeSubscriber({\n next: (value) => {\n try {\n next(value);\n } catch (err) {\n reject(err);\n subscriber.unsubscribe();\n }\n },\n error: reject,\n complete: resolve,\n });\n this.subscribe(subscriber);\n }) as Promise;\n }\n\n /** @internal */\n protected _subscribe(subscriber: Subscriber): TeardownLogic {\n return this.source?.subscribe(subscriber);\n }\n\n /**\n * An interop point defined by the es7-observable spec https://github.com/zenparsing/es-observable\n * @return This instance of the observable.\n */\n [Symbol_observable]() {\n return this;\n }\n\n /* tslint:disable:max-line-length */\n pipe(): Observable;\n pipe
    (op1: OperatorFunction): Observable;\n pipe(op1: OperatorFunction, op2: OperatorFunction): Observable;\n pipe(op1: OperatorFunction, op2: OperatorFunction, op3: OperatorFunction): Observable;\n pipe(\n op1: OperatorFunction,\n op2: OperatorFunction,\n op3: OperatorFunction,\n op4: OperatorFunction\n ): Observable;\n pipe(\n op1: OperatorFunction,\n op2: OperatorFunction,\n op3: OperatorFunction,\n op4: OperatorFunction,\n op5: OperatorFunction\n ): Observable;\n pipe(\n op1: OperatorFunction,\n op2: OperatorFunction,\n op3: OperatorFunction,\n op4: OperatorFunction,\n op5: OperatorFunction,\n op6: OperatorFunction\n ): Observable;\n pipe(\n op1: OperatorFunction,\n op2: OperatorFunction,\n op3: OperatorFunction,\n op4: OperatorFunction,\n op5: OperatorFunction,\n op6: OperatorFunction,\n op7: OperatorFunction\n ): Observable;\n pipe(\n op1: OperatorFunction,\n op2: OperatorFunction,\n op3: OperatorFunction,\n op4: OperatorFunction,\n op5: OperatorFunction,\n op6: OperatorFunction,\n op7: OperatorFunction,\n op8: OperatorFunction\n ): Observable;\n pipe(\n op1: OperatorFunction,\n op2: OperatorFunction,\n op3: OperatorFunction,\n op4: OperatorFunction,\n op5: OperatorFunction,\n op6: OperatorFunction,\n op7: OperatorFunction,\n op8: OperatorFunction,\n op9: OperatorFunction\n ): Observable;\n pipe(\n op1: OperatorFunction,\n op2: OperatorFunction,\n op3: OperatorFunction,\n op4: OperatorFunction,\n op5: OperatorFunction,\n op6: OperatorFunction,\n op7: OperatorFunction,\n op8: OperatorFunction,\n op9: OperatorFunction,\n ...operations: OperatorFunction[]\n ): Observable;\n /* tslint:enable:max-line-length */\n\n /**\n * Used to stitch together functional operators into a chain.\n *\n * ## Example\n *\n * ```ts\n * import { interval, filter, map, scan } from 'rxjs';\n *\n * interval(1000)\n * .pipe(\n * filter(x => x % 2 === 0),\n * map(x => x + x),\n * scan((acc, x) => acc + x)\n * )\n * .subscribe(x => console.log(x));\n * ```\n *\n * @return The Observable result of all the operators having been called\n * in the order they were passed in.\n */\n pipe(...operations: OperatorFunction[]): Observable {\n return pipeFromArray(operations)(this);\n }\n\n /* tslint:disable:max-line-length */\n /** @deprecated Replaced with {@link firstValueFrom} and {@link lastValueFrom}. Will be removed in v8. Details: https://rxjs.dev/deprecations/to-promise */\n toPromise(): Promise;\n /** @deprecated Replaced with {@link firstValueFrom} and {@link lastValueFrom}. Will be removed in v8. Details: https://rxjs.dev/deprecations/to-promise */\n toPromise(PromiseCtor: typeof Promise): Promise;\n /** @deprecated Replaced with {@link firstValueFrom} and {@link lastValueFrom}. Will be removed in v8. Details: https://rxjs.dev/deprecations/to-promise */\n toPromise(PromiseCtor: PromiseConstructorLike): Promise;\n /* tslint:enable:max-line-length */\n\n /**\n * Subscribe to this Observable and get a Promise resolving on\n * `complete` with the last emission (if any).\n *\n * **WARNING**: Only use this with observables you *know* will complete. If the source\n * observable does not complete, you will end up with a promise that is hung up, and\n * potentially all of the state of an async function hanging out in memory. To avoid\n * this situation, look into adding something like {@link timeout}, {@link take},\n * {@link takeWhile}, or {@link takeUntil} amongst others.\n *\n * @param [promiseCtor] a constructor function used to instantiate\n * the Promise\n * @return A Promise that resolves with the last value emit, or\n * rejects on an error. If there were no emissions, Promise\n * resolves with undefined.\n * @deprecated Replaced with {@link firstValueFrom} and {@link lastValueFrom}. Will be removed in v8. Details: https://rxjs.dev/deprecations/to-promise\n */\n toPromise(promiseCtor?: PromiseConstructorLike): Promise {\n promiseCtor = getPromiseCtor(promiseCtor);\n\n return new promiseCtor((resolve, reject) => {\n let value: T | undefined;\n this.subscribe(\n (x: T) => (value = x),\n (err: any) => reject(err),\n () => resolve(value)\n );\n }) as Promise;\n }\n}\n\n/**\n * Decides between a passed promise constructor from consuming code,\n * A default configured promise constructor, and the native promise\n * constructor and returns it. If nothing can be found, it will throw\n * an error.\n * @param promiseCtor The optional promise constructor to passed by consuming code\n */\nfunction getPromiseCtor(promiseCtor: PromiseConstructorLike | undefined) {\n return promiseCtor ?? config.Promise ?? Promise;\n}\n\nfunction isObserver(value: any): value is Observer {\n return value && isFunction(value.next) && isFunction(value.error) && isFunction(value.complete);\n}\n\nfunction isSubscriber(value: any): value is Subscriber {\n return (value && value instanceof Subscriber) || (isObserver(value) && isSubscription(value));\n}\n", "import { Observable } from '../Observable';\nimport { Subscriber } from '../Subscriber';\nimport { OperatorFunction } from '../types';\nimport { isFunction } from './isFunction';\n\n/**\n * Used to determine if an object is an Observable with a lift function.\n */\nexport function hasLift(source: any): source is { lift: InstanceType['lift'] } {\n return isFunction(source?.lift);\n}\n\n/**\n * Creates an `OperatorFunction`. Used to define operators throughout the library in a concise way.\n * @param init The logic to connect the liftedSource to the subscriber at the moment of subscription.\n */\nexport function operate(\n init: (liftedSource: Observable, subscriber: Subscriber) => (() => void) | void\n): OperatorFunction {\n return (source: Observable) => {\n if (hasLift(source)) {\n return source.lift(function (this: Subscriber, liftedSource: Observable) {\n try {\n return init(liftedSource, this);\n } catch (err) {\n this.error(err);\n }\n });\n }\n throw new TypeError('Unable to lift unknown Observable type');\n };\n}\n", "import { Subscriber } from '../Subscriber';\n\n/**\n * Creates an instance of an `OperatorSubscriber`.\n * @param destination The downstream subscriber.\n * @param onNext Handles next values, only called if this subscriber is not stopped or closed. Any\n * error that occurs in this function is caught and sent to the `error` method of this subscriber.\n * @param onError Handles errors from the subscription, any errors that occur in this handler are caught\n * and send to the `destination` error handler.\n * @param onComplete Handles completion notification from the subscription. Any errors that occur in\n * this handler are sent to the `destination` error handler.\n * @param onFinalize Additional teardown logic here. This will only be called on teardown if the\n * subscriber itself is not already closed. This is called after all other teardown logic is executed.\n */\nexport function createOperatorSubscriber(\n destination: Subscriber,\n onNext?: (value: T) => void,\n onComplete?: () => void,\n onError?: (err: any) => void,\n onFinalize?: () => void\n): Subscriber {\n return new OperatorSubscriber(destination, onNext, onComplete, onError, onFinalize);\n}\n\n/**\n * A generic helper for allowing operators to be created with a Subscriber and\n * use closures to capture necessary state from the operator function itself.\n */\nexport class OperatorSubscriber extends Subscriber {\n /**\n * Creates an instance of an `OperatorSubscriber`.\n * @param destination The downstream subscriber.\n * @param onNext Handles next values, only called if this subscriber is not stopped or closed. Any\n * error that occurs in this function is caught and sent to the `error` method of this subscriber.\n * @param onError Handles errors from the subscription, any errors that occur in this handler are caught\n * and send to the `destination` error handler.\n * @param onComplete Handles completion notification from the subscription. Any errors that occur in\n * this handler are sent to the `destination` error handler.\n * @param onFinalize Additional finalization logic here. This will only be called on finalization if the\n * subscriber itself is not already closed. This is called after all other finalization logic is executed.\n * @param shouldUnsubscribe An optional check to see if an unsubscribe call should truly unsubscribe.\n * NOTE: This currently **ONLY** exists to support the strange behavior of {@link groupBy}, where unsubscription\n * to the resulting observable does not actually disconnect from the source if there are active subscriptions\n * to any grouped observable. (DO NOT EXPOSE OR USE EXTERNALLY!!!)\n */\n constructor(\n destination: Subscriber,\n onNext?: (value: T) => void,\n onComplete?: () => void,\n onError?: (err: any) => void,\n private onFinalize?: () => void,\n private shouldUnsubscribe?: () => boolean\n ) {\n // It's important - for performance reasons - that all of this class's\n // members are initialized and that they are always initialized in the same\n // order. This will ensure that all OperatorSubscriber instances have the\n // same hidden class in V8. This, in turn, will help keep the number of\n // hidden classes involved in property accesses within the base class as\n // low as possible. If the number of hidden classes involved exceeds four,\n // the property accesses will become megamorphic and performance penalties\n // will be incurred - i.e. inline caches won't be used.\n //\n // The reasons for ensuring all instances have the same hidden class are\n // further discussed in this blog post from Benedikt Meurer:\n // https://benediktmeurer.de/2018/03/23/impact-of-polymorphism-on-component-based-frameworks-like-react/\n super(destination);\n this._next = onNext\n ? function (this: OperatorSubscriber, value: T) {\n try {\n onNext(value);\n } catch (err) {\n destination.error(err);\n }\n }\n : super._next;\n this._error = onError\n ? function (this: OperatorSubscriber, err: any) {\n try {\n onError(err);\n } catch (err) {\n // Send any errors that occur down stream.\n destination.error(err);\n } finally {\n // Ensure finalization.\n this.unsubscribe();\n }\n }\n : super._error;\n this._complete = onComplete\n ? function (this: OperatorSubscriber) {\n try {\n onComplete();\n } catch (err) {\n // Send any errors that occur down stream.\n destination.error(err);\n } finally {\n // Ensure finalization.\n this.unsubscribe();\n }\n }\n : super._complete;\n }\n\n unsubscribe() {\n if (!this.shouldUnsubscribe || this.shouldUnsubscribe()) {\n const { closed } = this;\n super.unsubscribe();\n // Execute additional teardown if we have any and we didn't already do so.\n !closed && this.onFinalize?.();\n }\n }\n}\n", "import { Subscription } from '../Subscription';\n\ninterface AnimationFrameProvider {\n schedule(callback: FrameRequestCallback): Subscription;\n requestAnimationFrame: typeof requestAnimationFrame;\n cancelAnimationFrame: typeof cancelAnimationFrame;\n delegate:\n | {\n requestAnimationFrame: typeof requestAnimationFrame;\n cancelAnimationFrame: typeof cancelAnimationFrame;\n }\n | undefined;\n}\n\nexport const animationFrameProvider: AnimationFrameProvider = {\n // When accessing the delegate, use the variable rather than `this` so that\n // the functions can be called without being bound to the provider.\n schedule(callback) {\n let request = requestAnimationFrame;\n let cancel: typeof cancelAnimationFrame | undefined = cancelAnimationFrame;\n const { delegate } = animationFrameProvider;\n if (delegate) {\n request = delegate.requestAnimationFrame;\n cancel = delegate.cancelAnimationFrame;\n }\n const handle = request((timestamp) => {\n // Clear the cancel function. The request has been fulfilled, so\n // attempting to cancel the request upon unsubscription would be\n // pointless.\n cancel = undefined;\n callback(timestamp);\n });\n return new Subscription(() => cancel?.(handle));\n },\n requestAnimationFrame(...args) {\n const { delegate } = animationFrameProvider;\n return (delegate?.requestAnimationFrame || requestAnimationFrame)(...args);\n },\n cancelAnimationFrame(...args) {\n const { delegate } = animationFrameProvider;\n return (delegate?.cancelAnimationFrame || cancelAnimationFrame)(...args);\n },\n delegate: undefined,\n};\n", "import { createErrorClass } from './createErrorClass';\n\nexport interface ObjectUnsubscribedError extends Error {}\n\nexport interface ObjectUnsubscribedErrorCtor {\n /**\n * @deprecated Internal implementation detail. Do not construct error instances.\n * Cannot be tagged as internal: https://github.com/ReactiveX/rxjs/issues/6269\n */\n new (): ObjectUnsubscribedError;\n}\n\n/**\n * An error thrown when an action is invalid because the object has been\n * unsubscribed.\n *\n * @see {@link Subject}\n * @see {@link BehaviorSubject}\n *\n * @class ObjectUnsubscribedError\n */\nexport const ObjectUnsubscribedError: ObjectUnsubscribedErrorCtor = createErrorClass(\n (_super) =>\n function ObjectUnsubscribedErrorImpl(this: any) {\n _super(this);\n this.name = 'ObjectUnsubscribedError';\n this.message = 'object unsubscribed';\n }\n);\n", "import { Operator } from './Operator';\nimport { Observable } from './Observable';\nimport { Subscriber } from './Subscriber';\nimport { Subscription, EMPTY_SUBSCRIPTION } from './Subscription';\nimport { Observer, SubscriptionLike, TeardownLogic } from './types';\nimport { ObjectUnsubscribedError } from './util/ObjectUnsubscribedError';\nimport { arrRemove } from './util/arrRemove';\nimport { errorContext } from './util/errorContext';\n\n/**\n * A Subject is a special type of Observable that allows values to be\n * multicasted to many Observers. Subjects are like EventEmitters.\n *\n * Every Subject is an Observable and an Observer. You can subscribe to a\n * Subject, and you can call next to feed values as well as error and complete.\n */\nexport class Subject extends Observable implements SubscriptionLike {\n closed = false;\n\n private currentObservers: Observer[] | null = null;\n\n /** @deprecated Internal implementation detail, do not use directly. Will be made internal in v8. */\n observers: Observer[] = [];\n /** @deprecated Internal implementation detail, do not use directly. Will be made internal in v8. */\n isStopped = false;\n /** @deprecated Internal implementation detail, do not use directly. Will be made internal in v8. */\n hasError = false;\n /** @deprecated Internal implementation detail, do not use directly. Will be made internal in v8. */\n thrownError: any = null;\n\n /**\n * Creates a \"subject\" by basically gluing an observer to an observable.\n *\n * @deprecated Recommended you do not use. Will be removed at some point in the future. Plans for replacement still under discussion.\n */\n static create: (...args: any[]) => any = (destination: Observer, source: Observable): AnonymousSubject => {\n return new AnonymousSubject(destination, source);\n };\n\n constructor() {\n // NOTE: This must be here to obscure Observable's constructor.\n super();\n }\n\n /** @deprecated Internal implementation detail, do not use directly. Will be made internal in v8. */\n lift(operator: Operator): Observable {\n const subject = new AnonymousSubject(this, this);\n subject.operator = operator as any;\n return subject as any;\n }\n\n /** @internal */\n protected _throwIfClosed() {\n if (this.closed) {\n throw new ObjectUnsubscribedError();\n }\n }\n\n next(value: T) {\n errorContext(() => {\n this._throwIfClosed();\n if (!this.isStopped) {\n if (!this.currentObservers) {\n this.currentObservers = Array.from(this.observers);\n }\n for (const observer of this.currentObservers) {\n observer.next(value);\n }\n }\n });\n }\n\n error(err: any) {\n errorContext(() => {\n this._throwIfClosed();\n if (!this.isStopped) {\n this.hasError = this.isStopped = true;\n this.thrownError = err;\n const { observers } = this;\n while (observers.length) {\n observers.shift()!.error(err);\n }\n }\n });\n }\n\n complete() {\n errorContext(() => {\n this._throwIfClosed();\n if (!this.isStopped) {\n this.isStopped = true;\n const { observers } = this;\n while (observers.length) {\n observers.shift()!.complete();\n }\n }\n });\n }\n\n unsubscribe() {\n this.isStopped = this.closed = true;\n this.observers = this.currentObservers = null!;\n }\n\n get observed() {\n return this.observers?.length > 0;\n }\n\n /** @internal */\n protected _trySubscribe(subscriber: Subscriber): TeardownLogic {\n this._throwIfClosed();\n return super._trySubscribe(subscriber);\n }\n\n /** @internal */\n protected _subscribe(subscriber: Subscriber): Subscription {\n this._throwIfClosed();\n this._checkFinalizedStatuses(subscriber);\n return this._innerSubscribe(subscriber);\n }\n\n /** @internal */\n protected _innerSubscribe(subscriber: Subscriber) {\n const { hasError, isStopped, observers } = this;\n if (hasError || isStopped) {\n return EMPTY_SUBSCRIPTION;\n }\n this.currentObservers = null;\n observers.push(subscriber);\n return new Subscription(() => {\n this.currentObservers = null;\n arrRemove(observers, subscriber);\n });\n }\n\n /** @internal */\n protected _checkFinalizedStatuses(subscriber: Subscriber) {\n const { hasError, thrownError, isStopped } = this;\n if (hasError) {\n subscriber.error(thrownError);\n } else if (isStopped) {\n subscriber.complete();\n }\n }\n\n /**\n * Creates a new Observable with this Subject as the source. You can do this\n * to create custom Observer-side logic of the Subject and conceal it from\n * code that uses the Observable.\n * @return Observable that this Subject casts to.\n */\n asObservable(): Observable {\n const observable: any = new Observable();\n observable.source = this;\n return observable;\n }\n}\n\nexport class AnonymousSubject extends Subject {\n constructor(\n /** @deprecated Internal implementation detail, do not use directly. Will be made internal in v8. */\n public destination?: Observer,\n source?: Observable\n ) {\n super();\n this.source = source;\n }\n\n next(value: T) {\n this.destination?.next?.(value);\n }\n\n error(err: any) {\n this.destination?.error?.(err);\n }\n\n complete() {\n this.destination?.complete?.();\n }\n\n /** @internal */\n protected _subscribe(subscriber: Subscriber): Subscription {\n return this.source?.subscribe(subscriber) ?? EMPTY_SUBSCRIPTION;\n }\n}\n", "import { Subject } from './Subject';\nimport { Subscriber } from './Subscriber';\nimport { Subscription } from './Subscription';\n\n/**\n * A variant of Subject that requires an initial value and emits its current\n * value whenever it is subscribed to.\n */\nexport class BehaviorSubject extends Subject {\n constructor(private _value: T) {\n super();\n }\n\n get value(): T {\n return this.getValue();\n }\n\n /** @internal */\n protected _subscribe(subscriber: Subscriber): Subscription {\n const subscription = super._subscribe(subscriber);\n !subscription.closed && subscriber.next(this._value);\n return subscription;\n }\n\n getValue(): T {\n const { hasError, thrownError, _value } = this;\n if (hasError) {\n throw thrownError;\n }\n this._throwIfClosed();\n return _value;\n }\n\n next(value: T): void {\n super.next((this._value = value));\n }\n}\n", "import { TimestampProvider } from '../types';\n\ninterface DateTimestampProvider extends TimestampProvider {\n delegate: TimestampProvider | undefined;\n}\n\nexport const dateTimestampProvider: DateTimestampProvider = {\n now() {\n // Use the variable rather than `this` so that the function can be called\n // without being bound to the provider.\n return (dateTimestampProvider.delegate || Date).now();\n },\n delegate: undefined,\n};\n", "import { Subject } from './Subject';\nimport { TimestampProvider } from './types';\nimport { Subscriber } from './Subscriber';\nimport { Subscription } from './Subscription';\nimport { dateTimestampProvider } from './scheduler/dateTimestampProvider';\n\n/**\n * A variant of {@link Subject} that \"replays\" old values to new subscribers by emitting them when they first subscribe.\n *\n * `ReplaySubject` has an internal buffer that will store a specified number of values that it has observed. Like `Subject`,\n * `ReplaySubject` \"observes\" values by having them passed to its `next` method. When it observes a value, it will store that\n * value for a time determined by the configuration of the `ReplaySubject`, as passed to its constructor.\n *\n * When a new subscriber subscribes to the `ReplaySubject` instance, it will synchronously emit all values in its buffer in\n * a First-In-First-Out (FIFO) manner. The `ReplaySubject` will also complete, if it has observed completion; and it will\n * error if it has observed an error.\n *\n * There are two main configuration items to be concerned with:\n *\n * 1. `bufferSize` - This will determine how many items are stored in the buffer, defaults to infinite.\n * 2. `windowTime` - The amount of time to hold a value in the buffer before removing it from the buffer.\n *\n * Both configurations may exist simultaneously. So if you would like to buffer a maximum of 3 values, as long as the values\n * are less than 2 seconds old, you could do so with a `new ReplaySubject(3, 2000)`.\n *\n * ### Differences with BehaviorSubject\n *\n * `BehaviorSubject` is similar to `new ReplaySubject(1)`, with a couple of exceptions:\n *\n * 1. `BehaviorSubject` comes \"primed\" with a single value upon construction.\n * 2. `ReplaySubject` will replay values, even after observing an error, where `BehaviorSubject` will not.\n *\n * @see {@link Subject}\n * @see {@link BehaviorSubject}\n * @see {@link shareReplay}\n */\nexport class ReplaySubject extends Subject {\n private _buffer: (T | number)[] = [];\n private _infiniteTimeWindow = true;\n\n /**\n * @param _bufferSize The size of the buffer to replay on subscription\n * @param _windowTime The amount of time the buffered items will stay buffered\n * @param _timestampProvider An object with a `now()` method that provides the current timestamp. This is used to\n * calculate the amount of time something has been buffered.\n */\n constructor(\n private _bufferSize = Infinity,\n private _windowTime = Infinity,\n private _timestampProvider: TimestampProvider = dateTimestampProvider\n ) {\n super();\n this._infiniteTimeWindow = _windowTime === Infinity;\n this._bufferSize = Math.max(1, _bufferSize);\n this._windowTime = Math.max(1, _windowTime);\n }\n\n next(value: T): void {\n const { isStopped, _buffer, _infiniteTimeWindow, _timestampProvider, _windowTime } = this;\n if (!isStopped) {\n _buffer.push(value);\n !_infiniteTimeWindow && _buffer.push(_timestampProvider.now() + _windowTime);\n }\n this._trimBuffer();\n super.next(value);\n }\n\n /** @internal */\n protected _subscribe(subscriber: Subscriber): Subscription {\n this._throwIfClosed();\n this._trimBuffer();\n\n const subscription = this._innerSubscribe(subscriber);\n\n const { _infiniteTimeWindow, _buffer } = this;\n // We use a copy here, so reentrant code does not mutate our array while we're\n // emitting it to a new subscriber.\n const copy = _buffer.slice();\n for (let i = 0; i < copy.length && !subscriber.closed; i += _infiniteTimeWindow ? 1 : 2) {\n subscriber.next(copy[i] as T);\n }\n\n this._checkFinalizedStatuses(subscriber);\n\n return subscription;\n }\n\n private _trimBuffer() {\n const { _bufferSize, _timestampProvider, _buffer, _infiniteTimeWindow } = this;\n // If we don't have an infinite buffer size, and we're over the length,\n // use splice to truncate the old buffer values off. Note that we have to\n // double the size for instances where we're not using an infinite time window\n // because we're storing the values and the timestamps in the same array.\n const adjustedBufferSize = (_infiniteTimeWindow ? 1 : 2) * _bufferSize;\n _bufferSize < Infinity && adjustedBufferSize < _buffer.length && _buffer.splice(0, _buffer.length - adjustedBufferSize);\n\n // Now, if we're not in an infinite time window, remove all values where the time is\n // older than what is allowed.\n if (!_infiniteTimeWindow) {\n const now = _timestampProvider.now();\n let last = 0;\n // Search the array for the first timestamp that isn't expired and\n // truncate the buffer up to that point.\n for (let i = 1; i < _buffer.length && (_buffer[i] as number) <= now; i += 2) {\n last = i;\n }\n last && _buffer.splice(0, last + 1);\n }\n }\n}\n", "import { Scheduler } from '../Scheduler';\nimport { Subscription } from '../Subscription';\nimport { SchedulerAction } from '../types';\n\n/**\n * A unit of work to be executed in a `scheduler`. An action is typically\n * created from within a {@link SchedulerLike} and an RxJS user does not need to concern\n * themselves about creating and manipulating an Action.\n *\n * ```ts\n * class Action extends Subscription {\n * new (scheduler: Scheduler, work: (state?: T) => void);\n * schedule(state?: T, delay: number = 0): Subscription;\n * }\n * ```\n */\nexport class Action extends Subscription {\n constructor(scheduler: Scheduler, work: (this: SchedulerAction, state?: T) => void) {\n super();\n }\n /**\n * Schedules this action on its parent {@link SchedulerLike} for execution. May be passed\n * some context object, `state`. May happen at some point in the future,\n * according to the `delay` parameter, if specified.\n * @param state Some contextual data that the `work` function uses when called by the\n * Scheduler.\n * @param delay Time to wait before executing the work, where the time unit is implicit\n * and defined by the Scheduler.\n * @return A subscription in order to be able to unsubscribe the scheduled work.\n */\n public schedule(state?: T, delay: number = 0): Subscription {\n return this;\n }\n}\n", "import type { TimerHandle } from './timerHandle';\ntype SetIntervalFunction = (handler: () => void, timeout?: number, ...args: any[]) => TimerHandle;\ntype ClearIntervalFunction = (handle: TimerHandle) => void;\n\ninterface IntervalProvider {\n setInterval: SetIntervalFunction;\n clearInterval: ClearIntervalFunction;\n delegate:\n | {\n setInterval: SetIntervalFunction;\n clearInterval: ClearIntervalFunction;\n }\n | undefined;\n}\n\nexport const intervalProvider: IntervalProvider = {\n // When accessing the delegate, use the variable rather than `this` so that\n // the functions can be called without being bound to the provider.\n setInterval(handler: () => void, timeout?: number, ...args) {\n const { delegate } = intervalProvider;\n if (delegate?.setInterval) {\n return delegate.setInterval(handler, timeout, ...args);\n }\n return setInterval(handler, timeout, ...args);\n },\n clearInterval(handle) {\n const { delegate } = intervalProvider;\n return (delegate?.clearInterval || clearInterval)(handle as any);\n },\n delegate: undefined,\n};\n", "import { Action } from './Action';\nimport { SchedulerAction } from '../types';\nimport { Subscription } from '../Subscription';\nimport { AsyncScheduler } from './AsyncScheduler';\nimport { intervalProvider } from './intervalProvider';\nimport { arrRemove } from '../util/arrRemove';\nimport { TimerHandle } from './timerHandle';\n\nexport class AsyncAction extends Action {\n public id: TimerHandle | undefined;\n public state?: T;\n // @ts-ignore: Property has no initializer and is not definitely assigned\n public delay: number;\n protected pending: boolean = false;\n\n constructor(protected scheduler: AsyncScheduler, protected work: (this: SchedulerAction, state?: T) => void) {\n super(scheduler, work);\n }\n\n public schedule(state?: T, delay: number = 0): Subscription {\n if (this.closed) {\n return this;\n }\n\n // Always replace the current state with the new state.\n this.state = state;\n\n const id = this.id;\n const scheduler = this.scheduler;\n\n //\n // Important implementation note:\n //\n // Actions only execute once by default, unless rescheduled from within the\n // scheduled callback. This allows us to implement single and repeat\n // actions via the same code path, without adding API surface area, as well\n // as mimic traditional recursion but across asynchronous boundaries.\n //\n // However, JS runtimes and timers distinguish between intervals achieved by\n // serial `setTimeout` calls vs. a single `setInterval` call. An interval of\n // serial `setTimeout` calls can be individually delayed, which delays\n // scheduling the next `setTimeout`, and so on. `setInterval` attempts to\n // guarantee the interval callback will be invoked more precisely to the\n // interval period, regardless of load.\n //\n // Therefore, we use `setInterval` to schedule single and repeat actions.\n // If the action reschedules itself with the same delay, the interval is not\n // canceled. If the action doesn't reschedule, or reschedules with a\n // different delay, the interval will be canceled after scheduled callback\n // execution.\n //\n if (id != null) {\n this.id = this.recycleAsyncId(scheduler, id, delay);\n }\n\n // Set the pending flag indicating that this action has been scheduled, or\n // has recursively rescheduled itself.\n this.pending = true;\n\n this.delay = delay;\n // If this action has already an async Id, don't request a new one.\n this.id = this.id ?? this.requestAsyncId(scheduler, this.id, delay);\n\n return this;\n }\n\n protected requestAsyncId(scheduler: AsyncScheduler, _id?: TimerHandle, delay: number = 0): TimerHandle {\n return intervalProvider.setInterval(scheduler.flush.bind(scheduler, this), delay);\n }\n\n protected recycleAsyncId(_scheduler: AsyncScheduler, id?: TimerHandle, delay: number | null = 0): TimerHandle | undefined {\n // If this action is rescheduled with the same delay time, don't clear the interval id.\n if (delay != null && this.delay === delay && this.pending === false) {\n return id;\n }\n // Otherwise, if the action's delay time is different from the current delay,\n // or the action has been rescheduled before it's executed, clear the interval id\n if (id != null) {\n intervalProvider.clearInterval(id);\n }\n\n return undefined;\n }\n\n /**\n * Immediately executes this action and the `work` it contains.\n */\n public execute(state: T, delay: number): any {\n if (this.closed) {\n return new Error('executing a cancelled action');\n }\n\n this.pending = false;\n const error = this._execute(state, delay);\n if (error) {\n return error;\n } else if (this.pending === false && this.id != null) {\n // Dequeue if the action didn't reschedule itself. Don't call\n // unsubscribe(), because the action could reschedule later.\n // For example:\n // ```\n // scheduler.schedule(function doWork(counter) {\n // /* ... I'm a busy worker bee ... */\n // var originalAction = this;\n // /* wait 100ms before rescheduling the action */\n // setTimeout(function () {\n // originalAction.schedule(counter + 1);\n // }, 100);\n // }, 1000);\n // ```\n this.id = this.recycleAsyncId(this.scheduler, this.id, null);\n }\n }\n\n protected _execute(state: T, _delay: number): any {\n let errored: boolean = false;\n let errorValue: any;\n try {\n this.work(state);\n } catch (e) {\n errored = true;\n // HACK: Since code elsewhere is relying on the \"truthiness\" of the\n // return here, we can't have it return \"\" or 0 or false.\n // TODO: Clean this up when we refactor schedulers mid-version-8 or so.\n errorValue = e ? e : new Error('Scheduled action threw falsy error');\n }\n if (errored) {\n this.unsubscribe();\n return errorValue;\n }\n }\n\n unsubscribe() {\n if (!this.closed) {\n const { id, scheduler } = this;\n const { actions } = scheduler;\n\n this.work = this.state = this.scheduler = null!;\n this.pending = false;\n\n arrRemove(actions, this);\n if (id != null) {\n this.id = this.recycleAsyncId(scheduler, id, null);\n }\n\n this.delay = null!;\n super.unsubscribe();\n }\n }\n}\n", "import { Action } from './scheduler/Action';\nimport { Subscription } from './Subscription';\nimport { SchedulerLike, SchedulerAction } from './types';\nimport { dateTimestampProvider } from './scheduler/dateTimestampProvider';\n\n/**\n * An execution context and a data structure to order tasks and schedule their\n * execution. Provides a notion of (potentially virtual) time, through the\n * `now()` getter method.\n *\n * Each unit of work in a Scheduler is called an `Action`.\n *\n * ```ts\n * class Scheduler {\n * now(): number;\n * schedule(work, delay?, state?): Subscription;\n * }\n * ```\n *\n * @deprecated Scheduler is an internal implementation detail of RxJS, and\n * should not be used directly. Rather, create your own class and implement\n * {@link SchedulerLike}. Will be made internal in v8.\n */\nexport class Scheduler implements SchedulerLike {\n public static now: () => number = dateTimestampProvider.now;\n\n constructor(private schedulerActionCtor: typeof Action, now: () => number = Scheduler.now) {\n this.now = now;\n }\n\n /**\n * A getter method that returns a number representing the current time\n * (at the time this function was called) according to the scheduler's own\n * internal clock.\n * @return A number that represents the current time. May or may not\n * have a relation to wall-clock time. May or may not refer to a time unit\n * (e.g. milliseconds).\n */\n public now: () => number;\n\n /**\n * Schedules a function, `work`, for execution. May happen at some point in\n * the future, according to the `delay` parameter, if specified. May be passed\n * some context object, `state`, which will be passed to the `work` function.\n *\n * The given arguments will be processed an stored as an Action object in a\n * queue of actions.\n *\n * @param work A function representing a task, or some unit of work to be\n * executed by the Scheduler.\n * @param delay Time to wait before executing the work, where the time unit is\n * implicit and defined by the Scheduler itself.\n * @param state Some contextual data that the `work` function uses when called\n * by the Scheduler.\n * @return A subscription in order to be able to unsubscribe the scheduled work.\n */\n public schedule(work: (this: SchedulerAction, state?: T) => void, delay: number = 0, state?: T): Subscription {\n return new this.schedulerActionCtor(this, work).schedule(state, delay);\n }\n}\n", "import { Scheduler } from '../Scheduler';\nimport { Action } from './Action';\nimport { AsyncAction } from './AsyncAction';\nimport { TimerHandle } from './timerHandle';\n\nexport class AsyncScheduler extends Scheduler {\n public actions: Array> = [];\n /**\n * A flag to indicate whether the Scheduler is currently executing a batch of\n * queued actions.\n * @internal\n */\n public _active: boolean = false;\n /**\n * An internal ID used to track the latest asynchronous task such as those\n * coming from `setTimeout`, `setInterval`, `requestAnimationFrame`, and\n * others.\n * @internal\n */\n public _scheduled: TimerHandle | undefined;\n\n constructor(SchedulerAction: typeof Action, now: () => number = Scheduler.now) {\n super(SchedulerAction, now);\n }\n\n public flush(action: AsyncAction): void {\n const { actions } = this;\n\n if (this._active) {\n actions.push(action);\n return;\n }\n\n let error: any;\n this._active = true;\n\n do {\n if ((error = action.execute(action.state, action.delay))) {\n break;\n }\n } while ((action = actions.shift()!)); // exhaust the scheduler queue\n\n this._active = false;\n\n if (error) {\n while ((action = actions.shift()!)) {\n action.unsubscribe();\n }\n throw error;\n }\n }\n}\n", "import { AsyncAction } from './AsyncAction';\nimport { AsyncScheduler } from './AsyncScheduler';\n\n/**\n *\n * Async Scheduler\n *\n * Schedule task as if you used setTimeout(task, duration)\n *\n * `async` scheduler schedules tasks asynchronously, by putting them on the JavaScript\n * event loop queue. It is best used to delay tasks in time or to schedule tasks repeating\n * in intervals.\n *\n * If you just want to \"defer\" task, that is to perform it right after currently\n * executing synchronous code ends (commonly achieved by `setTimeout(deferredTask, 0)`),\n * better choice will be the {@link asapScheduler} scheduler.\n *\n * ## Examples\n * Use async scheduler to delay task\n * ```ts\n * import { asyncScheduler } from 'rxjs';\n *\n * const task = () => console.log('it works!');\n *\n * asyncScheduler.schedule(task, 2000);\n *\n * // After 2 seconds logs:\n * // \"it works!\"\n * ```\n *\n * Use async scheduler to repeat task in intervals\n * ```ts\n * import { asyncScheduler } from 'rxjs';\n *\n * function task(state) {\n * console.log(state);\n * this.schedule(state + 1, 1000); // `this` references currently executing Action,\n * // which we reschedule with new state and delay\n * }\n *\n * asyncScheduler.schedule(task, 3000, 0);\n *\n * // Logs:\n * // 0 after 3s\n * // 1 after 4s\n * // 2 after 5s\n * // 3 after 6s\n * ```\n */\n\nexport const asyncScheduler = new AsyncScheduler(AsyncAction);\n\n/**\n * @deprecated Renamed to {@link asyncScheduler}. Will be removed in v8.\n */\nexport const async = asyncScheduler;\n", "import { AsyncAction } from './AsyncAction';\nimport { Subscription } from '../Subscription';\nimport { QueueScheduler } from './QueueScheduler';\nimport { SchedulerAction } from '../types';\nimport { TimerHandle } from './timerHandle';\n\nexport class QueueAction extends AsyncAction {\n constructor(protected scheduler: QueueScheduler, protected work: (this: SchedulerAction, state?: T) => void) {\n super(scheduler, work);\n }\n\n public schedule(state?: T, delay: number = 0): Subscription {\n if (delay > 0) {\n return super.schedule(state, delay);\n }\n this.delay = delay;\n this.state = state;\n this.scheduler.flush(this);\n return this;\n }\n\n public execute(state: T, delay: number): any {\n return delay > 0 || this.closed ? super.execute(state, delay) : this._execute(state, delay);\n }\n\n protected requestAsyncId(scheduler: QueueScheduler, id?: TimerHandle, delay: number = 0): TimerHandle {\n // If delay exists and is greater than 0, or if the delay is null (the\n // action wasn't rescheduled) but was originally scheduled as an async\n // action, then recycle as an async action.\n\n if ((delay != null && delay > 0) || (delay == null && this.delay > 0)) {\n return super.requestAsyncId(scheduler, id, delay);\n }\n\n // Otherwise flush the scheduler starting with this action.\n scheduler.flush(this);\n\n // HACK: In the past, this was returning `void`. However, `void` isn't a valid\n // `TimerHandle`, and generally the return value here isn't really used. So the\n // compromise is to return `0` which is both \"falsy\" and a valid `TimerHandle`,\n // as opposed to refactoring every other instanceo of `requestAsyncId`.\n return 0;\n }\n}\n", "import { AsyncScheduler } from './AsyncScheduler';\n\nexport class QueueScheduler extends AsyncScheduler {\n}\n", "import { QueueAction } from './QueueAction';\nimport { QueueScheduler } from './QueueScheduler';\n\n/**\n *\n * Queue Scheduler\n *\n * Put every next task on a queue, instead of executing it immediately\n *\n * `queue` scheduler, when used with delay, behaves the same as {@link asyncScheduler} scheduler.\n *\n * When used without delay, it schedules given task synchronously - executes it right when\n * it is scheduled. However when called recursively, that is when inside the scheduled task,\n * another task is scheduled with queue scheduler, instead of executing immediately as well,\n * that task will be put on a queue and wait for current one to finish.\n *\n * This means that when you execute task with `queue` scheduler, you are sure it will end\n * before any other task scheduled with that scheduler will start.\n *\n * ## Examples\n * Schedule recursively first, then do something\n * ```ts\n * import { queueScheduler } from 'rxjs';\n *\n * queueScheduler.schedule(() => {\n * queueScheduler.schedule(() => console.log('second')); // will not happen now, but will be put on a queue\n *\n * console.log('first');\n * });\n *\n * // Logs:\n * // \"first\"\n * // \"second\"\n * ```\n *\n * Reschedule itself recursively\n * ```ts\n * import { queueScheduler } from 'rxjs';\n *\n * queueScheduler.schedule(function(state) {\n * if (state !== 0) {\n * console.log('before', state);\n * this.schedule(state - 1); // `this` references currently executing Action,\n * // which we reschedule with new state\n * console.log('after', state);\n * }\n * }, 0, 3);\n *\n * // In scheduler that runs recursively, you would expect:\n * // \"before\", 3\n * // \"before\", 2\n * // \"before\", 1\n * // \"after\", 1\n * // \"after\", 2\n * // \"after\", 3\n *\n * // But with queue it logs:\n * // \"before\", 3\n * // \"after\", 3\n * // \"before\", 2\n * // \"after\", 2\n * // \"before\", 1\n * // \"after\", 1\n * ```\n */\n\nexport const queueScheduler = new QueueScheduler(QueueAction);\n\n/**\n * @deprecated Renamed to {@link queueScheduler}. Will be removed in v8.\n */\nexport const queue = queueScheduler;\n", "import { AsyncAction } from './AsyncAction';\nimport { AnimationFrameScheduler } from './AnimationFrameScheduler';\nimport { SchedulerAction } from '../types';\nimport { animationFrameProvider } from './animationFrameProvider';\nimport { TimerHandle } from './timerHandle';\n\nexport class AnimationFrameAction extends AsyncAction {\n constructor(protected scheduler: AnimationFrameScheduler, protected work: (this: SchedulerAction, state?: T) => void) {\n super(scheduler, work);\n }\n\n protected requestAsyncId(scheduler: AnimationFrameScheduler, id?: TimerHandle, delay: number = 0): TimerHandle {\n // If delay is greater than 0, request as an async action.\n if (delay !== null && delay > 0) {\n return super.requestAsyncId(scheduler, id, delay);\n }\n // Push the action to the end of the scheduler queue.\n scheduler.actions.push(this);\n // If an animation frame has already been requested, don't request another\n // one. If an animation frame hasn't been requested yet, request one. Return\n // the current animation frame request id.\n return scheduler._scheduled || (scheduler._scheduled = animationFrameProvider.requestAnimationFrame(() => scheduler.flush(undefined)));\n }\n\n protected recycleAsyncId(scheduler: AnimationFrameScheduler, id?: TimerHandle, delay: number = 0): TimerHandle | undefined {\n // If delay exists and is greater than 0, or if the delay is null (the\n // action wasn't rescheduled) but was originally scheduled as an async\n // action, then recycle as an async action.\n if (delay != null ? delay > 0 : this.delay > 0) {\n return super.recycleAsyncId(scheduler, id, delay);\n }\n // If the scheduler queue has no remaining actions with the same async id,\n // cancel the requested animation frame and set the scheduled flag to\n // undefined so the next AnimationFrameAction will request its own.\n const { actions } = scheduler;\n if (id != null && id === scheduler._scheduled && actions[actions.length - 1]?.id !== id) {\n animationFrameProvider.cancelAnimationFrame(id as number);\n scheduler._scheduled = undefined;\n }\n // Return undefined so the action knows to request a new async id if it's rescheduled.\n return undefined;\n }\n}\n", "import { AsyncAction } from './AsyncAction';\nimport { AsyncScheduler } from './AsyncScheduler';\n\nexport class AnimationFrameScheduler extends AsyncScheduler {\n public flush(action?: AsyncAction): void {\n this._active = true;\n // The async id that effects a call to flush is stored in _scheduled.\n // Before executing an action, it's necessary to check the action's async\n // id to determine whether it's supposed to be executed in the current\n // flush.\n // Previous implementations of this method used a count to determine this,\n // but that was unsound, as actions that are unsubscribed - i.e. cancelled -\n // are removed from the actions array and that can shift actions that are\n // scheduled to be executed in a subsequent flush into positions at which\n // they are executed within the current flush.\n let flushId;\n if (action) {\n flushId = action.id;\n } else {\n flushId = this._scheduled;\n this._scheduled = undefined;\n }\n\n const { actions } = this;\n let error: any;\n action = action || actions.shift()!;\n\n do {\n if ((error = action.execute(action.state, action.delay))) {\n break;\n }\n } while ((action = actions[0]) && action.id === flushId && actions.shift());\n\n this._active = false;\n\n if (error) {\n while ((action = actions[0]) && action.id === flushId && actions.shift()) {\n action.unsubscribe();\n }\n throw error;\n }\n }\n}\n", "import { AnimationFrameAction } from './AnimationFrameAction';\nimport { AnimationFrameScheduler } from './AnimationFrameScheduler';\n\n/**\n *\n * Animation Frame Scheduler\n *\n * Perform task when `window.requestAnimationFrame` would fire\n *\n * When `animationFrame` scheduler is used with delay, it will fall back to {@link asyncScheduler} scheduler\n * behaviour.\n *\n * Without delay, `animationFrame` scheduler can be used to create smooth browser animations.\n * It makes sure scheduled task will happen just before next browser content repaint,\n * thus performing animations as efficiently as possible.\n *\n * ## Example\n * Schedule div height animation\n * ```ts\n * // html:
    \n * import { animationFrameScheduler } from 'rxjs';\n *\n * const div = document.querySelector('div');\n *\n * animationFrameScheduler.schedule(function(height) {\n * div.style.height = height + \"px\";\n *\n * this.schedule(height + 1); // `this` references currently executing Action,\n * // which we reschedule with new state\n * }, 0, 0);\n *\n * // You will see a div element growing in height\n * ```\n */\n\nexport const animationFrameScheduler = new AnimationFrameScheduler(AnimationFrameAction);\n\n/**\n * @deprecated Renamed to {@link animationFrameScheduler}. Will be removed in v8.\n */\nexport const animationFrame = animationFrameScheduler;\n", "import { Observable } from '../Observable';\nimport { SchedulerLike } from '../types';\n\n/**\n * A simple Observable that emits no items to the Observer and immediately\n * emits a complete notification.\n *\n * Just emits 'complete', and nothing else.\n *\n * ![](empty.png)\n *\n * A simple Observable that only emits the complete notification. It can be used\n * for composing with other Observables, such as in a {@link mergeMap}.\n *\n * ## Examples\n *\n * Log complete notification\n *\n * ```ts\n * import { EMPTY } from 'rxjs';\n *\n * EMPTY.subscribe({\n * next: () => console.log('Next'),\n * complete: () => console.log('Complete!')\n * });\n *\n * // Outputs\n * // Complete!\n * ```\n *\n * Emit the number 7, then complete\n *\n * ```ts\n * import { EMPTY, startWith } from 'rxjs';\n *\n * const result = EMPTY.pipe(startWith(7));\n * result.subscribe(x => console.log(x));\n *\n * // Outputs\n * // 7\n * ```\n *\n * Map and flatten only odd numbers to the sequence `'a'`, `'b'`, `'c'`\n *\n * ```ts\n * import { interval, mergeMap, of, EMPTY } from 'rxjs';\n *\n * const interval$ = interval(1000);\n * const result = interval$.pipe(\n * mergeMap(x => x % 2 === 1 ? of('a', 'b', 'c') : EMPTY),\n * );\n * result.subscribe(x => console.log(x));\n *\n * // Results in the following to the console:\n * // x is equal to the count on the interval, e.g. (0, 1, 2, 3, ...)\n * // x will occur every 1000ms\n * // if x % 2 is equal to 1, print a, b, c (each on its own)\n * // if x % 2 is not equal to 1, nothing will be output\n * ```\n *\n * @see {@link Observable}\n * @see {@link NEVER}\n * @see {@link of}\n * @see {@link throwError}\n */\nexport const EMPTY = new Observable((subscriber) => subscriber.complete());\n\n/**\n * @param scheduler A {@link SchedulerLike} to use for scheduling\n * the emission of the complete notification.\n * @deprecated Replaced with the {@link EMPTY} constant or {@link scheduled} (e.g. `scheduled([], scheduler)`). Will be removed in v8.\n */\nexport function empty(scheduler?: SchedulerLike) {\n return scheduler ? emptyScheduled(scheduler) : EMPTY;\n}\n\nfunction emptyScheduled(scheduler: SchedulerLike) {\n return new Observable((subscriber) => scheduler.schedule(() => subscriber.complete()));\n}\n", "import { SchedulerLike } from '../types';\nimport { isFunction } from './isFunction';\n\nexport function isScheduler(value: any): value is SchedulerLike {\n return value && isFunction(value.schedule);\n}\n", "import { SchedulerLike } from '../types';\nimport { isFunction } from './isFunction';\nimport { isScheduler } from './isScheduler';\n\nfunction last(arr: T[]): T | undefined {\n return arr[arr.length - 1];\n}\n\nexport function popResultSelector(args: any[]): ((...args: unknown[]) => unknown) | undefined {\n return isFunction(last(args)) ? args.pop() : undefined;\n}\n\nexport function popScheduler(args: any[]): SchedulerLike | undefined {\n return isScheduler(last(args)) ? args.pop() : undefined;\n}\n\nexport function popNumber(args: any[], defaultValue: number): number {\n return typeof last(args) === 'number' ? args.pop()! : defaultValue;\n}\n", "export const isArrayLike = ((x: any): x is ArrayLike => x && typeof x.length === 'number' && typeof x !== 'function');", "import { isFunction } from \"./isFunction\";\n\n/**\n * Tests to see if the object is \"thennable\".\n * @param value the object to test\n */\nexport function isPromise(value: any): value is PromiseLike {\n return isFunction(value?.then);\n}\n", "import { InteropObservable } from '../types';\nimport { observable as Symbol_observable } from '../symbol/observable';\nimport { isFunction } from './isFunction';\n\n/** Identifies an input as being Observable (but not necessary an Rx Observable) */\nexport function isInteropObservable(input: any): input is InteropObservable {\n return isFunction(input[Symbol_observable]);\n}\n", "import { isFunction } from './isFunction';\n\nexport function isAsyncIterable(obj: any): obj is AsyncIterable {\n return Symbol.asyncIterator && isFunction(obj?.[Symbol.asyncIterator]);\n}\n", "/**\n * Creates the TypeError to throw if an invalid object is passed to `from` or `scheduled`.\n * @param input The object that was passed.\n */\nexport function createInvalidObservableTypeError(input: any) {\n // TODO: We should create error codes that can be looked up, so this can be less verbose.\n return new TypeError(\n `You provided ${\n input !== null && typeof input === 'object' ? 'an invalid object' : `'${input}'`\n } where a stream was expected. You can provide an Observable, Promise, ReadableStream, Array, AsyncIterable, or Iterable.`\n );\n}\n", "export function getSymbolIterator(): symbol {\n if (typeof Symbol !== 'function' || !Symbol.iterator) {\n return '@@iterator' as any;\n }\n\n return Symbol.iterator;\n}\n\nexport const iterator = getSymbolIterator();\n", "import { iterator as Symbol_iterator } from '../symbol/iterator';\nimport { isFunction } from './isFunction';\n\n/** Identifies an input as being an Iterable */\nexport function isIterable(input: any): input is Iterable {\n return isFunction(input?.[Symbol_iterator]);\n}\n", "import { ReadableStreamLike } from '../types';\nimport { isFunction } from './isFunction';\n\nexport async function* readableStreamLikeToAsyncGenerator(readableStream: ReadableStreamLike): AsyncGenerator {\n const reader = readableStream.getReader();\n try {\n while (true) {\n const { value, done } = await reader.read();\n if (done) {\n return;\n }\n yield value!;\n }\n } finally {\n reader.releaseLock();\n }\n}\n\nexport function isReadableStreamLike(obj: any): obj is ReadableStreamLike {\n // We don't want to use instanceof checks because they would return\n // false for instances from another Realm, like an

    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 iel4LV?tK0001Q`*zR( literal 0 HcmV?d00001 diff --git a/0.47/assets/external/fonts.gstatic.com/s/roboto/v30/KFOjCnqEu92Fr1Mu51TzBic6CsQ.woff2 b/0.47/assets/external/fonts.gstatic.com/s/roboto/v30/KFOjCnqEu92Fr1Mu51TzBic6CsQ.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..a56a6edefa0446274a5cbc44620d9ae79eeb18e0 GIT binary patch literal 17032 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 literal 0 HcmV?d00001 diff --git a/0.47/assets/external/fonts.gstatic.com/s/roboto/v30/KFOkCnqEu92Fr1Mu51xEIzIFKw.woff2 b/0.47/assets/external/fonts.gstatic.com/s/roboto/v30/KFOkCnqEu92Fr1Mu51xEIzIFKw.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..508baefbc1f609769c689c8883067a4a346bf7a4 GIT binary patch literal 1512 zcmV23I`wzfD`_NMZN zsD`poX_QD)PaIBPh#X2F)M9IGo*NYLX8G?+2uUAc3{naqB=n$1Akbxq6FO{c?*}8u zp^fdTS&@c0E#dCo?Nvy6xIMQL-Or{X>jI$eKl^x=Z=j2TrFg~W1H^pXmwkl?4Rj25 z?Z!?{SJNTg5k@)afa|iZrC&|>0ZEMN|yTq@Rv|MBw&0D&zx zI6|?<+wSSK!)cQS6{HGy*oB_PNM{n9={mp}4~D!9T=@lHEeJSEFSz1Pu$7NPU-Is?@2_+De#fyX%a3i5p8+(V7WvpPO zWmdtBcyVf$FsaO0e%G8L2Qh)ZEMWru;Ymmiy;Y2Cv;!{kVPfQ0J#YM#dp5!NN z`6|$8GEa`EnShckM=y^bc|QW_5gH|QYJ*N5>0Z}I+CYG-sB}yYG^f;yL?^WM4L8)! zRq*nxULffW91NJT%P2(C(HX4lI_-fFFz!Aryto8*Lwff8rW_#2t2+ojbH5c|b2gu8dli(TaKP-LiY|-H$#RdT-#J5A>S%-|v5W|9h~0dsI@tGw&?_%=g zhW?xRTWb2>eRnA1X(&ECP0x)2TiK2^?E1m5`>R`MG(R;hG^M;+fdYg)x#HRDK0~pdU#{iY$|Jx*Vo^8Kl z``C9?qt#}!my#h*;B~mD?{4j(jxP{BZyim#IA5GuenrZN~(Xe(?RB!xM zHNtF~C6qO4w(D|oRZntC2zZ|Ac?9)d^=fU@8g-+7RrWCde&E+x09(R&Ik`Z3gQ~@Z z#&Em2AVC!l4I3P~5=ovBS^oo&P^8PSgXbPGGtlvPV+ zRtvEX4&GwImS}Jt5lSohik0IlEask~kFAZ^R3=z?w~PM>EeI~mSr^7{ zg4*fYIt@DY^+6HCH|3ydf2CbEtK9jaC!0VvH7ry%Qmu%+;XZ3wPHMmk+HJTmn#(2L zIkVwDYPh*1LkPOJt{~MdnDLH^Y@c9@ge0Fua9d-Ic>$rhWcO%Uvd|t{=q~jOU4KJS znp5a^O|})qPa2NTcJ3C&4^(BQLYSOZqmC2iioEnV+n}Yp2GJo<2MwBR0{?+?)ovGx zsMS6cRwr6I3_&ZRcF_i1MCT|5iPlcFnkMLQ+!B8{z7apA!+{?dBw7)5f-a)hC>E&R OZGwsDTs{$n0RRA;cFpSm literal 0 HcmV?d00001 diff --git a/0.47/assets/external/fonts.gstatic.com/s/roboto/v30/KFOkCnqEu92Fr1Mu51xFIzIFKw.woff2 b/0.47/assets/external/fonts.gstatic.com/s/roboto/v30/KFOkCnqEu92Fr1Mu51xFIzIFKw.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..9213da013c15b7c14d8bad77594e99599bfcfbb7 GIT binary patch literal 16676 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 literal 0 HcmV?d00001 diff --git a/0.47/assets/external/fonts.gstatic.com/s/roboto/v30/KFOkCnqEu92Fr1Mu51xGIzIFKw.woff2 b/0.47/assets/external/fonts.gstatic.com/s/roboto/v30/KFOkCnqEu92Fr1Mu51xGIzIFKw.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..ef920e5ae091a3c4cc6d740107b7146243273255 GIT binary patch literal 12704 zcmV;RF<;JiPew8T0RR9105PBd5&!@I0CPY905LoO0RR9100000000000000000000 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 aO2z3TAwsQiTiDWe^Mm?I$Yw|hNdo}Y-(hY5 literal 0 HcmV?d00001 diff --git a/0.47/assets/external/fonts.gstatic.com/s/roboto/v30/KFOkCnqEu92Fr1Mu51xHIzIFKw.woff2 b/0.47/assets/external/fonts.gstatic.com/s/roboto/v30/KFOkCnqEu92Fr1Mu51xHIzIFKw.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..9a378af0cf3ea1a86da4840efddb917cec5b758c GIT binary patch literal 5928 zcmV+@7uV=_Pew8T0RR9102e3#5&!@I05yC702asq0RR9100000000000000000000 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 KcS|UGTSCS6y=Wl- literal 0 HcmV?d00001 diff --git a/0.47/assets/external/fonts.gstatic.com/s/roboto/v30/KFOkCnqEu92Fr1Mu51xIIzI.woff2 b/0.47/assets/external/fonts.gstatic.com/s/roboto/v30/KFOkCnqEu92Fr1Mu51xIIzI.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..e1b7a79f91f29f10e58c3a255fe0f2804a9c19b9 GIT binary patch literal 17368 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.IQi(wS`Rph{L7HS(io&gTqB)B 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 G!T|u%&BW^f literal 0 HcmV?d00001 diff --git a/0.47/assets/external/fonts.gstatic.com/s/roboto/v30/KFOlCnqEu92Fr1MmSU5fABc4EsA.woff2 b/0.47/assets/external/fonts.gstatic.com/s/roboto/v30/KFOlCnqEu92Fr1MmSU5fABc4EsA.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..9d7fb7f8780e829b48b20ace4398ea1729aa055d GIT binary patch literal 9576 zcmV-uC70TFPew8T0RR9103~Pu5&!@I09W(?03`(g0RR9100000000000000000000 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 SjT2?6sU{iFd1eU30{{SY&x$?( literal 0 HcmV?d00001 diff --git a/0.47/assets/external/fonts.gstatic.com/s/roboto/v30/KFOlCnqEu92Fr1MmSU5fBBc4.woff2 b/0.47/assets/external/fonts.gstatic.com/s/roboto/v30/KFOlCnqEu92Fr1MmSU5fBBc4.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..60681387e7bf93c19f6b2fcfac98037032e63531 GIT binary patch literal 15740 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 literal 0 HcmV?d00001 diff --git a/0.47/assets/external/fonts.gstatic.com/s/roboto/v30/KFOlCnqEu92Fr1MmSU5fBxc4EsA.woff2 b/0.47/assets/external/fonts.gstatic.com/s/roboto/v30/KFOlCnqEu92Fr1MmSU5fBxc4EsA.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..b289f0029261f2a06af8b7c6a4efebf7b1ec788a GIT binary patch literal 7120 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 Gr~m*%Pl@pW literal 0 HcmV?d00001 diff --git a/0.47/assets/external/fonts.gstatic.com/s/roboto/v30/KFOlCnqEu92Fr1MmSU5fCBc4EsA.woff2 b/0.47/assets/external/fonts.gstatic.com/s/roboto/v30/KFOlCnqEu92Fr1MmSU5fCBc4EsA.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..87711c048c61236049707439fd024faf9733391d GIT binary patch literal 1480 zcmV;(1vmP4Pew8T0RR9100qbZ5&!@I015B_00nCR0RR9100000000000000000000 z0000QCL16eHU?k-GzeG;gFF!o3WI!uTMG~X5)=V80we<*1Rw>1d*t`LpnVh+j>pXi^n9(OlJ>((j@Habx2kf~6Rv zRsVCk4q=dE{Tw=n2A!0-ewa%k403FxUtN(7W4KyVySo>%9~Da|{3ll3eE_ilFg_Kw zPW@B?D?k<1@in5(RR~*Gb0fwzn_x&fPj7DkeG3GQ2mnwH!9)-Q4F~}t1P~xVf-*?Y z-UCMx0zd(H-Wh9c>Y~)D%~&+Mh?=>xvkSYaXxiKo4*+~I<@LHsO9}&w!$u2`>iv-Z zGC2We26mORug?wXL)RVT?=s0Crw?n`$O!<|-f*z7(bJ&5R0bU}NnxV`;jQd>(O>$} z-3R~;$ur(mqn%{15?gtS!KUi%F`!IlDrK}I#Jnuw%mEU54T7pYWz;rehC>;%0%gsI zh-ni@SPH{@8xtS^q{{FQWnbiD0`bmJ3E!_zClZn((t8D&Dxswy4TXfBA`f~Uuf=IY z5Bt$?^{_qK%~w!$USji6>&LhZff2kXFp>qjn%Hvl+L)Y#O2t(EF%A_vBw+_pT>cV9 zs;sWpZE%yZQpM0!*?J*Jiomz;S|5w}nK@QuOBn+;3amnGizc-Jy!++#D- zPYbN{x!9wY=|LVkH4xqbUHj1M=vrFY*p06Yk}>0**Sv{MDoVniDz{lH!XV6iAccn7 zAc)EPg;IV!`$mru{OxKf%fQENWSgg<`#WaHqt@OY*tfev7O(u$emI4$pZ#PF*iTw2 zwhPI)@~Kz_LBogUc|-xQ0Ehs7pc62Y!;txN3}}L;D=2sPSHvQwKOR{UUAQE#z*jgi zS|EjyB`e?hD6shpT~@vO>9&vG9yM~!JAut_X{>%bxaD1a$%G(dXMB*?M-6@B4XOVa zhVz)7JrTo-ukJPf$KZlbPw6sgqfFA%gCE)S^yVgV=91U0sP+CQw>FovLpimjp7zM% zsP%n=7oYv9Vd$X#W8)WI{<>kXZ`s#&uj{n3>;oK~$*Dae}d%S>gneV{5!s`8R-) zRcbVChIHPsUUIAm1cYnyjxtc2jh8AqMw1FP5m-V%D1JF0K*(<@&`jL~5J0PySU32> zj49EMzxyis0C?=Dcw>OqW%#H6*#E!oujHEp_|X6mu!=Gv@VEKL&h+wELKyrkeJe9v zDZjudU|H^9N;#P|n6AYR$}x_C01yEUZ8jzX_{gCn$`4G&+AdUJvRxy>{7HRpQo(Le zm$eBK+RM+4Fw!IRkXCAu+4AMeGnY+sn$m1E+w_s!7JG5=F>hq@#Xl+$% zW)5!OH2Soc33!;h7EEkkD`)9Fe8al8tW(~@->ymRO0itvY%ZA7Ep%#aZvWIV+(^Vq zI{bmJcb$aHafb%Rx$a6R9n5pPRN|9UKr5h$ajrXr(zJtakO$R6Dw>D$1Pak=(s&wz iQdY?y0o9vx-6=*p=tc4pUCv5w6FZRxw`P5r0{{S2D6;JU literal 0 HcmV?d00001 diff --git a/0.47/assets/external/fonts.gstatic.com/s/roboto/v30/KFOlCnqEu92Fr1MmSU5fCRc4EsA.woff2 b/0.47/assets/external/fonts.gstatic.com/s/roboto/v30/KFOlCnqEu92Fr1MmSU5fCRc4EsA.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..0f6e60b8eaadfa0df7c314807d6f9159390d896f GIT binary patch literal 15000 zcmV;JI%maqPew8T0RR9106Lfe5&!@I0E+wo06H=N0RR9100000000000000000000 z0000QfleEeLL4>*U;u(x2v`Y&JP`~Ef#Xzx%pnVdS^yG(cmXy7Bm;*q1Rw>1d22i?|&i@jIP$L{YCdD{>^lZct7>!T%oweJ*v;ML_O83@WBfsuoHBOaAeaWM4y}v+^6OK1 z+f*Pfg`Ypy!b=@w{vn}@I;NCFF|I$x*?d&U>Ey!$GTynq7?U`Y37 z`@c2+wKJPXMRJHjvI26|6{>FL&SqzKCi$C%_uua3VfNGJ5hwXQ*?a_50tM)RlM;gJ zQ)SoVD@=v2tab<%|Ic()`hOc{nwB2?+H-6)Y_v&OtuZb;8>LMNQLQdDM$#Ij@m90W zP+c$&74RNvj@)G`cf znInc6`|jU&jPw8V=XwLLB0}qOM;Rj(2&@i2_D@3)a2WtdAXaWcvSkP2 z%mu`a8;A!_5MKcx!3ZGtkw79ufJBQ2NkIn5kO7h<3nWh-$ODBS#fm{nm4Z~O1!>R> zLa_ky)mM-et03#PKp+UfVt^GOK&;#W6nGOBAxR$1&bt~~0_l@N{JntmY5s1WK>BQ_ zKyM%oI_ngFZ@>=1iVHv&96R7d0{Y^;uFs+YtRMVwC#I4$zKo(|&DVE!T%(Af6pW;O zpp(9N;`!iCL|s_aU-^=CVhXKmp);4usBtS@MgAE?UQ_VW+Awa87pDhCRk4|+%Q&bm z5;R|7C6ZeqS~-6c!6IX|Rc~-jZ zmT9}O3sc%Y9Y&-{CC#;}nTxR9i3l!hb|!df9$9l6EzHA$>&4e&8?PSub32|Z`dvHy z33JIIcvrOd@cwC!PMcbtLA3W*5tFZx=Z_8@x;rCD>R zUU}~`6)#w}VhtV48D>7fGZms(rhVBC6)^-M*+C1oEW`?;Wf_)a`Kr(|MtG%QWw@KEVwcKF>!QVgt#0sruzxP#6aXBL_Hbhm)Vr zEJj9gWE2XoZ5)?HBt!*Y@#wt7Tb0UFrcBu$%12Zfn<5z&nXbQ!j&AM+*cze*8D?b> ziMIvH)NE1Yz$@5<+{lU^sE5pOJ=g&Z1>3{3=zxrfLgmk%#|X2PkvV3j;4O=_t1k~C zetcGc27HQp*<~NCO@FUy_RscEv!8xFJ$m&U@KyG8e;z@F+Jn%p5rQ5e=@TadV&Fh@ zoQZ`Cv2i6vSYqT(jQoj30I`WDNHTFqAr@p}Q$w6;i9r*wdPwY=iOC~k&_XO)iA_5p zbP%mhLg*q|J%rM$=;u36ZxF;{h}cXLWQvfU5z-5yGebOH5`$UdF-Huj#N!n)cu&ke z6SoE8@RevR6PFd@wx$?scDWV;fbXBcy$3W{(fyd8fv^pP<&~mEFu9e@07(lC!4r8} z61(x^!|D zPpzOi&D39{d}&wM6?eszc<^VW_s_3!UXh0a@~%_?%F6g;eFt{oteS0}&^NPlQBVq(y1e$D`